/* TV-modus — donker, grote letters, leesbaar op afstand */
:root {
    --tv-bg: #0b1220;
    --tv-card-bg: #131c2e;
    --tv-card-border: #233149;
    --tv-warn-bg: #2c1010;
    --tv-warn-border: #ff4d4f;
}
.tv-body {
    background: var(--tv-bg);
    color: #eaecef;
    font-family: -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;
    margin: 0;
    min-height: 100vh;
}
.tv-header { border-bottom: 1px solid var(--tv-card-border); }
.tv-logo { font-size: 1.6rem; font-weight: 700; letter-spacing: 1px; }
.tv-card {
    background: var(--tv-card-bg);
    border: 1px solid var(--tv-card-border);
    border-radius: 12px;
    padding: 1.25rem;
}
.tv-card h5 { letter-spacing: 1px; font-size: .85rem; font-weight: 700; }
.tv-warn { background: var(--tv-warn-bg); border-color: var(--tv-warn-border); }
.tv-issue {
    padding: .5rem .75rem;
    border-radius: 6px;
    margin-bottom: .35rem;
    font-size: 1.05rem;
    background: rgba(255,255,255,.04);
}
.tv-issue.text-bg-danger { background: rgba(220,53,69,.18); color: #fff; }
.tv-issue.text-bg-warning { background: rgba(255,193,7,.15); color: #fff; }
.tv-pulse { animation: tv-pulse 1.5s infinite; }
@keyframes tv-pulse { 50% { opacity: .55; } }
.tv-uptime-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 6px;
}
.tv-up {
    height: 38px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    overflow: hidden;
}
.tv-up span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 6px; }
.tv-up-ok { background: #1b4d2c; color: #c4f5d2; }
.tv-up-warn { background: #5a4310; color: #ffe6a3; }
.tv-up-bad { background: #5c1d22; color: #ffc0c5; }
.tv-up-unknown { background: #2a3142; color: #8a93a3; }
