.app{height:100vh;display:flex;overflow:hidden}.main-content{background-color:var(--brand-screen-bg);flex-direction:column;flex:1;padding:20px;display:flex;overflow-y:auto}.server-status-link{background:var(--brand-screen-bg);color:#fff;border-radius:4px;flex-direction:column;gap:2px;min-width:0;margin-bottom:20px;padding:8px 10px;text-decoration:none;display:flex}.server-status-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.server-status-address{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.server-status-state{font-size:12px}.server-status-state:before{content:"";background:#8a8f98;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.server-status-state.accessible:before{background:#3fb950}.server-status-state.needs_auth:before{background:#d29922}.server-status-state.unreachable:before{background:#e5484d}.navigation{background-color:var(--brand-surface);border-right:1px solid var(--brand-surface-hi);flex-direction:column;width:250px;padding:20px;display:flex;overflow-y:auto}.nav-header h1{color:var(--brand-accent);margin-bottom:30px;font-size:24px}.nav-links{list-style:none}.nav-links li{margin-bottom:10px}.nav-links a{color:#fff;border-radius:4px;padding:10px 15px;text-decoration:none;transition:background-color .2s;display:block}.nav-links a:hover{background-color:var(--brand-screen-bg)}.nav-badge{color:#fff;text-align:center;background:#e5484d;border-radius:9px;min-width:18px;margin-left:8px;padding:0 6px;font-size:12px;line-height:18px;display:inline-block}.access-dialog{gap:8px;width:min(720px,94vw);overflow-y:auto}.access-intro{color:var(--brand-text-muted);margin:0 0 8px;font-size:14px}.access-note{color:var(--brand-gold);margin:4px 0;font-size:14px}.form-warning{color:var(--brand-gold);margin:6px 0;font-size:14px}.access-created{background:var(--brand-surface);border:1px solid var(--brand-accent-dark);border-radius:6px;margin-bottom:10px;padding:10px}.access-links{flex-direction:column;gap:8px;display:flex}.access-link{align-items:flex-end;gap:8px;display:flex}.access-link label{color:var(--brand-text-muted);flex-direction:column;flex:1;gap:4px;font-size:13px;display:flex}.access-link input{width:100%;font-family:monospace;font-size:12px}.access-new{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.access-new label{color:var(--brand-text-muted);flex-direction:column;gap:4px;font-size:14px;display:flex}.access-new label.check{flex-direction:row;align-items:flex-start;gap:8px}.access-new button{align-self:flex-start}.access-tokens{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.access-tokens li{background:var(--brand-surface);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;display:flex}.access-tokens li.revoked{opacity:.6}.access-token-meta{color:var(--brand-text-muted);flex:1;font-size:13px}.access-tokens .check{align-items:center;gap:6px;font-size:13px;display:flex}.health-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.health-healthy{color:var(--brand-accent);background:#5eead42e}.health-needs_attention{color:var(--brand-gold);background:#f7d77433}.health-disabled{color:var(--brand-text-muted);background:#a9c7cc2e}.save-indicator{color:var(--brand-text-muted);font-size:13px}.save-error{color:#ff8a8a;align-items:center;gap:8px;display:inline-flex}.save-error button{color:#ff8a8a;border-color:#ff8a8a}.lineups-page button,.lineup-editor button,.lineup-dialog button,.button-link{color:var(--brand-text-soft);background:var(--brand-surface-hi);border:1px solid var(--brand-accent-dark);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:14px;text-decoration:none}.lineups-page button:hover:not(:disabled),.lineup-editor button:hover:not(:disabled),.lineup-dialog button:hover:not(:disabled),.button-link:hover{border-color:var(--brand-accent)}.lineups-page button:disabled,.lineup-editor button:disabled,.lineup-dialog button:disabled{opacity:.45;cursor:default}.lineups-page input[type=text],.lineups-page input:not([type]),.lineups-page select,.lineup-editor input[type=text],.lineup-editor input[type=number],.lineup-editor input:not([type]),.lineup-editor select,.lineup-dialog input:not([type=checkbox]),.lineup-dialog select{color:var(--brand-text-soft);background:var(--brand-bg);border:1px solid var(--brand-surface-hi);border-radius:4px;padding:6px 8px}.form-error{color:#ff8a8a;margin:6px 0}.lineup-empty{color:var(--brand-text-muted);margin:8px 0}.lineup-ok{color:var(--brand-accent)}.section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-header h3{margin:0}.lineup-settings label,.lineup-guides label{color:var(--brand-text-muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:14px;display:flex}.lineup-settings label.check{flex-direction:row;align-items:center;gap:8px}.lineup-guides ol{margin-bottom:8px;padding-left:20px}.lineup-guides li{align-items:center;gap:6px;margin-bottom:4px;display:flex}.lineup-guides li span{flex:1}.guide-add{gap:8px;display:flex}.lineup-dialog-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lineup-dialog{background:var(--brand-screen-bg);border:1px solid var(--brand-surface-hi);color:#eee;border-radius:8px;flex-direction:column;width:min(1100px,94vw);max-height:90vh;padding:18px;display:flex}.lineup-dialog h2{color:var(--brand-accent);margin:0 0 12px;font-size:18px}.lineup-dialog h3{text-transform:uppercase;color:var(--brand-text-muted);margin:0 0 6px;font-size:13px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.lineup-dynamic-mark{color:var(--brand-accent)}.rule-form fieldset{border:1px solid var(--brand-surface-hi);border-radius:6px;margin:0 0 12px;padding:8px 10px}.rule-form legend{color:var(--brand-text-muted);text-transform:uppercase;padding:0 4px;font-size:13px}.rule-form label{color:var(--brand-text-muted);flex-direction:column;gap:4px;margin-bottom:8px;font-size:14px;display:flex}.rule-form label.check{flex-direction:row;align-items:center;gap:8px}.rule-phrase{gap:6px;margin-bottom:6px;display:flex}.rule-phrase input{flex:1;min-width:0}.rule-hint{color:var(--brand-text-muted);margin:2px 0 6px;font-size:13px}.rule-columns{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:20px;margin-bottom:12px;display:grid}.rule-dialog{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:20px;display:grid;overflow:auto}.rule-dialog .dialog-actions,.rule-dialog>p{grid-column:1/-1}.rule-dialog-form label{color:var(--brand-text-muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:14px;display:flex}.rule-dialog-form label.check{flex-direction:row;align-items:center;gap:8px}.rule-preview{min-width:0;max-height:60vh;overflow:auto}.rule-preview ul{margin:0;padding:0;list-style:none}.rule-preview>ul>li{margin-bottom:8px}.rule-reasons{color:var(--brand-text-muted);padding-left:12px;font-size:13px}.rule-tag{background:var(--brand-surface-hi);border-radius:8px;padding:0 6px;font-size:11px;display:inline-block}.rule-tag-programme{color:var(--brand-accent)}.inspector-matches h4{color:var(--brand-text-muted);text-transform:uppercase;margin:12px 0 4px;font-size:13px}.inspector-matches ul{padding-left:16px;font-size:13px}.source-url{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.source-url .url{word-break:break-all;margin:0}.source-url.editing{width:100%}.source-url.editing label{flex-direction:column;gap:4px;width:100%;font-size:13px;display:flex}.source-url.editing input{width:100%;font-family:monospace;font-size:12px}.source-url .hint{opacity:.7;margin:0;font-size:12px}.source-url .error{color:#ff8a8a;margin:0}.source-url-actions{gap:8px;display:flex}.api-key-form{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.api-key-form input{flex:1;min-width:200px}.api-key-created{background:var(--brand-surface-hi);border-radius:6px;margin-bottom:12px;padding:10px 12px}.api-key-created p{margin:0 0 8px}.api-key-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.api-key-list li{background:var(--brand-surface-hi);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;display:flex}.api-key-list li.inactive{opacity:.6}.api-key-meta{color:var(--brand-text-muted);flex:1;font-size:13px}.server-discovery{flex-direction:column;gap:24px;width:100%;padding:0;display:flex}.server-discovery h3{color:#e8e8e8;margin:0 0 4px;font-size:1.25rem;font-weight:600}.server-discovery h4{color:#888;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:.95rem;font-weight:600}.discovery-controls{flex-wrap:wrap;gap:10px;display:flex}.manual-entry{background:var(--brand-surface);border:1px solid var(--brand-surface-hi);border-radius:10px;align-items:stretch;gap:10px;padding:14px;display:flex}.manual-entry input{background:var(--brand-surface);color:#e8e8e8;border:1px solid #444;border-radius:6px;outline:none;flex:1;min-width:280px;padding:10px 14px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:14px;transition:border-color .15s}.manual-entry input:focus{border-color:var(--brand-accent-mid)}.server-message{color:#ffb74d;margin:0;font-size:13px}.server-key-entry{flex-basis:100%;gap:10px;display:flex}.server-key-entry input{background:var(--brand-surface);color:#e8e8e8;border:1px solid #444;border-radius:6px;flex:1;padding:8px 12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:14px}.server-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.server-item{background:var(--brand-surface);border:1px solid var(--brand-surface-hi);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;transition:border-color .15s;display:flex}.server-item:hover{border-color:#555}.server-url{color:#d4d4d4;word-break:break-all;flex:1;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.server-status{white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.server-status:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.server-status.accessible{color:#4caf50;background:#4caf501f}.server-status.needs_auth{color:#ff9800;background:#ff98001f}.server-status.unreachable{color:#f44336;background:#f443361f}.server-actions{flex-shrink:0;gap:8px;display:flex}.server-actions .sd-btn{padding:8px 16px;font-size:13px}.server-discovery .empty-state{text-align:center;color:#666;padding:40px 20px;font-size:14px}@media (width<=600px){.server-item{flex-direction:column;align-items:flex-start}.server-actions{justify-content:flex-end;width:100%}.manual-entry{flex-direction:column}.manual-entry input{min-width:0}}.settings{background:#121212;flex-direction:column;height:100%;padding:24px;display:flex;overflow-y:auto}.settings h2{color:#e8e8e8;text-align:left;margin:0 0 24px;font-size:1.5rem;font-weight:600}.tabs{border-bottom:1px solid var(--brand-surface-hi);gap:10px;margin-bottom:24px;display:flex}.tab{color:#999;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-size:14px;font-weight:500;transition:all .3s}.tab:hover{color:#fff}.tab.active{border-bottom-color:var(--brand-accent-mid);color:var(--brand-accent-mid)}.tab-content{flex-direction:column;flex:1;gap:24px;display:flex}.tab-content h3{color:#e8e8e8;text-align:left;margin:0 0 16px;font-size:1.25rem;font-weight:600}.tab-content h4{color:#888;text-transform:uppercase;letter-spacing:.5px;text-align:left;margin:0 0 12px;font-size:.95rem;font-weight:600}.form-section{background:var(--brand-surface);border:1px solid var(--brand-surface-hi);border-radius:10px;margin-bottom:0;padding:24px}.form-section h4{color:#e8e8e8;margin-top:0;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{color:#ddd;margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-group input{background:var(--brand-surface);color:#e8e8e8;border:1px solid #444;border-radius:6px;outline:none;width:100%;padding:10px 14px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:14px;transition:border-color .15s}.form-group input:focus{border-color:var(--brand-accent-mid)}.form-group input[type=number]{font-family:inherit}.sd-btn:disabled{opacity:.5;cursor:not-allowed}.sd-btn.ghost{background:0 0;border:1px solid #444}.sd-btn.ghost:hover:not(:disabled){background:var(--brand-surface-hi)}.sources-list{margin-bottom:0}.sources-list h4{color:#e8e8e8;margin-bottom:12px}.source-item{background:var(--brand-surface);border:1px solid var(--brand-surface-hi);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;padding:18px 20px;display:flex}.source-info{flex:1;min-width:0}.source-info h5{color:var(--brand-accent-mid);margin:0 0 8px;font-size:16px;font-weight:600}.source-info .url{color:#d4d4d4;word-break:break-all;margin:8px 0;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.source-info .meta{color:#aaa;margin:6px 0;font-size:13px}.source-info .error{color:#ff6b6b;margin:6px 0;font-size:13px}.source-actions{white-space:nowrap;flex-shrink:0;gap:8px;margin-left:12px;display:flex}.source-actions select{padding:8px;font-size:13px}.source-actions button{padding:8px 16px;font-size:13px}.source-actions button.delete{background-color:#f44}.source-actions button.delete:hover{background-color:#c00}.status{color:var(--brand-accent-mid);width:100%;margin-top:12px;font-size:13px}@media (width<=900px){.source-item{flex-direction:column;align-items:flex-start}.source-actions{justify-content:flex-end;width:100%;margin-top:12px;margin-left:0}}.form-section .hint{color:#aaa;margin:0 0 12px;font-size:13px}.form-section .checkbox-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.guide-container{background:var(--brand-bg);color:#eee;flex-direction:column;height:100vh;display:flex;overflow:hidden}.guide-header{background:var(--brand-surface);border-bottom:2px solid var(--brand-surface-hi);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:20px;display:flex}.guide-header h1{color:var(--brand-accent);margin:0;font-size:24px}.guide-controls{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.guide-controls button{background:var(--brand-surface-hi);color:var(--brand-accent);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:8px 16px;font-size:14px;transition:all .2s}.guide-controls button:hover{background:var(--brand-accent);color:var(--brand-surface)}.guide-controls .guide-source-select{background:var(--brand-surface-hi);color:var(--brand-accent);border:1px solid var(--brand-accent);text-overflow:ellipsis;border-radius:4px;max-width:260px;padding:8px 12px;font-size:14px}.guide-section{color:var(--brand-accent);background:var(--brand-surface-hi);padding:8px 12px;font-weight:600;position:sticky;left:0}.channel-number{opacity:.7;min-width:2ch;font-size:12px}.guide-empty{padding:24px 0}.guide-time{color:var(--brand-accent);margin-left:20px;font-size:14px}.guide-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.guide-scroll-container{flex-direction:column;flex:1;display:flex;position:relative;overflow:auto}.guide-scroll-inner{width:max-content;min-width:max(100%, calc(var(--channel-width) + var(--timeline-width)));flex-direction:column;display:flex}.guide-row{border-bottom:1px solid var(--brand-surface-hi);flex-shrink:0;min-height:120px;display:flex}.channel-label{border-right:2px solid var(--brand-surface-hi);width:var(--channel-width);text-align:center;background:var(--brand-surface-hi);z-index:6;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;height:120px;padding:12px 8px;display:flex;position:sticky;left:0}.channel-label img{object-fit:contain;border-radius:4px;width:40px;height:40px;margin-bottom:8px}.channel-name{word-break:break-word;color:var(--brand-accent);font-size:12px;font-weight:600}.guide-time-header{background:var(--brand-surface);border-bottom:2px solid var(--brand-surface-hi);z-index:12;flex-shrink:0;height:40px;display:flex;position:sticky;top:0}.guide-time-spacer{width:var(--channel-width);min-width:var(--channel-width);border-right:2px solid var(--brand-surface-hi);background:var(--brand-surface);z-index:13;position:sticky;left:0}.guide-time-slots{min-width:var(--timeline-width);display:flex}.time-slot-header{width:var(--hour-width);color:var(--brand-accent);border-right:1px solid var(--brand-surface-hi);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.channel-row{width:max-content;min-width:var(--timeline-width);background:var(--brand-bg);min-height:120px;display:flex;overflow:visible}.program{min-width:var(--program-min-width);border:1px solid #ffffff1a;border-left:3px solid var(--brand-accent);cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:4px;flex-shrink:0;align-items:flex-start;margin:4px 2px;padding:8px;transition:all .2s;display:flex;overflow:hidden}.program:hover{box-shadow:0 0 10px rgb(var(--brand-accent-rgb) / .5);border-left-width:4px;transform:translateY(-2px)}.program.recording{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);border-left-color:#f44}.program-content{color:#fff;flex-direction:column;gap:4px;width:100%;font-size:11px;display:flex}.program-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.program-time{opacity:.8;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.program-description{opacity:.85;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.recording-badge{color:#f44;align-items:center;gap:2px;font-size:10px;font-weight:700;display:flex}.recording-badge.scheduled{color:var(--brand-gold)}.program.scheduled{border-left-color:var(--brand-gold)}.program.category-sports{background:linear-gradient(135deg,#fa709a 0%,#fee140 100%)}.program.category-news{background:linear-gradient(135deg,#30cfd0 0%,#330867 100%)}.program.category-movies{background:linear-gradient(135deg,#a8edea 0%,#fed6e3 100%)}.program.category-entertainment{background:linear-gradient(135deg,#ff9a56 0%,#ff6a88 100%)}.guide-grid::-webkit-scrollbar{width:8px;height:8px}.guide-channels::-webkit-scrollbar{width:8px;height:8px}.guide-grid::-webkit-scrollbar-track{background:var(--brand-surface-hi)}.guide-channels::-webkit-scrollbar-track{background:var(--brand-surface-hi)}.guide-grid::-webkit-scrollbar-thumb{background:var(--brand-accent);border-radius:4px}.guide-channels::-webkit-scrollbar-thumb{background:var(--brand-accent);border-radius:4px}.guide-grid::-webkit-scrollbar-thumb:hover{background:#00f0ff}.guide-channels::-webkit-scrollbar-thumb:hover{background:#00f0ff}.channel-live-button{border:1px solid var(--brand-accent);background:var(--brand-surface);color:var(--brand-accent);cursor:pointer;border-radius:999px;margin-top:10px;padding:6px 12px;font-size:12px;font-weight:700;transition:all .2s}.channel-live-button:hover{background:var(--brand-accent);color:var(--brand-surface)}.program.loading{opacity:.75}.program-title-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.program-record-button{color:#fff;cursor:pointer;background:#0000002e;border:1px solid #fff6;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.program-record-button:hover{background:#fff3}.program.live{background:linear-gradient(135deg,#2e7d32 0%,#1b5e20 100%)}.recording-dialog-backdrop{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.recording-dialog{color:#eee;background:var(--brand-surface);border:1px solid var(--brand-accent);border-radius:8px;width:min(440px,100%);padding:24px;box-shadow:0 8px 32px #00000080}.recording-dialog h2{color:var(--brand-accent);margin:0 0 16px;font-size:20px}.recording-dialog-program{margin:0 0 6px;font-size:16px;font-weight:600}.recording-dialog-time,.recording-dialog-description{color:var(--brand-text-muted);margin:6px 0;font-size:13px}.recording-dialog-description{max-height:72px;overflow:auto}.recording-dialog-actions{flex-direction:column;gap:10px;margin-top:24px;display:flex}.recording-dialog-actions button,.recording-series-action select{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:9px 12px;font-size:14px}.recording-dialog-actions button:hover:not(:disabled){color:var(--brand-surface);background:var(--brand-accent)}.recording-dialog-actions button:disabled,.recording-series-action select:disabled{cursor:wait;opacity:.6}.recording-series-action{gap:8px;display:flex}.recording-series-action select,.recording-series-action button{flex:1}.recording-dialog-actions .recording-dialog-cancel{color:var(--brand-text-muted);background:0 0;border-color:#53627c}.recording-dialog-error{color:#ff8a8a;margin:16px 0 0;font-size:13px}.playback-choice-dialog{background:var(--brand-surface);color:#eee;border:1px solid var(--brand-surface-hi);border-radius:10px;width:min(420px,100% - 32px);padding:24px;box-shadow:0 18px 40px #00000059}.playback-choice-dialog h2{color:var(--brand-accent);margin:0 0 12px}.playback-choice-program{margin:0;font-size:18px;font-weight:600}.playback-choice-time{color:var(--brand-text-muted);margin:8px 0 20px}.playback-choice-actions{flex-direction:column;gap:10px;display:flex}.playback-choice-actions button{border:1px solid var(--brand-accent);background:var(--brand-surface-hi);color:var(--brand-accent);cursor:pointer;border-radius:6px;padding:10px 14px;transition:all .2s}.playback-choice-actions button:hover{background:var(--brand-accent);color:var(--brand-surface)}.playback-choice-actions .playback-choice-cancel{color:var(--brand-text-soft);border-color:#6f86a5}.playback-choice-actions .playback-choice-cancel:hover{color:var(--brand-surface);background:#6f86a5}.video-player{background:#101827;border:1px solid #1f3d5b;border-radius:12px;flex-direction:column;gap:16px;display:flex;overflow:hidden;box-shadow:0 16px 32px #00000040}.video-player.fullscreen{width:100%;height:100%;box-shadow:none;background:#000;border:none;border-radius:0;gap:0}.video-player.fullscreen .video-surface{aspect-ratio:auto;flex:1;height:100%;min-height:0}.video-player.fullscreen .video-element{object-fit:contain}.video-player:fullscreen{width:100%;height:100%;box-shadow:none;background:#000;border:none;border-radius:0;gap:0}.video-player:fullscreen .video-surface{aspect-ratio:auto;flex:1;height:100%;min-height:0}.video-player:fullscreen .video-element{object-fit:contain}.video-surface{aspect-ratio:16/9;background:#000;position:relative}.video-element{background:#000;width:100%;height:100%;display:block}.video-error{color:#fff;text-align:center;z-index:10;background:#731515eb;border-radius:8px;max-width:calc(100% - 32px);padding:10px 14px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.video-controls-overlay{pointer-events:none;z-index:5;flex-direction:column;justify-content:flex-end;transition:opacity .3s;display:flex;position:absolute;inset:0}.video-controls-overlay.hidden{opacity:0;pointer-events:none}.video-controls-overlay.visible{opacity:1;pointer-events:auto}.video-controls-overlay.paused{opacity:1!important}.video-controls-bottom{pointer-events:auto;background:linear-gradient(#0000,#000000d9);padding:16px}.video-controls-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:12px;display:flex}.control-btn{border:1px solid var(--brand-accent);background:rgb(var(--brand-surface-hi-rgb) / .9);color:var(--brand-accent);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-width:48px;padding:10px 16px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.control-btn:hover:not(:disabled){background:var(--brand-accent);color:var(--brand-surface)}.control-btn:disabled{cursor:not-allowed;opacity:.5;color:#6a8ab0;border-color:#3a5a7a}.volume-control{align-items:center;gap:6px;display:flex}.volume-slider{width:90px;accent-color:var(--brand-accent);cursor:pointer}.control-btn.record-btn.is-recording{color:#e5484d;border-color:#e5484d}.video-progress-row{color:var(--brand-text-soft);font-variant-numeric:tabular-nums;align-items:center;gap:12px;font-size:13px;display:flex}.time-display{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:60px}@media (width<=640px){.time-display{white-space:normal;min-width:0}}.time-display.start-time{text-align:right}.time-display.end-time{text-align:left}.progress-container{cursor:default;flex:1;align-items:center;height:18px;display:flex;position:relative}.progress-container.seekable{cursor:pointer}.progress-track{pointer-events:none;background:#ffffff59;border-radius:2px;width:100%;height:3px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.progress-elapsed{pointer-events:none;z-index:1;background:#b79cf5;border-radius:2px;height:3px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.progress-cached{pointer-events:none;z-index:2;background:#5b21b6;border-radius:3px;height:5px;position:absolute;top:50%;transform:translateY(-50%)}.progress-live-edge{pointer-events:none;z-index:3;background:#ffffffbf;border-radius:1px;width:2px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-gap{z-index:3;background:#f5a623;border-radius:1px;width:4px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.progress-recorded{pointer-events:none;background:#b79cf5;border-radius:2px;height:3px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.progress-playhead{pointer-events:none;z-index:4;width:4px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%)}.playhead-handle{background:#7c3aed;border-radius:2px;width:4px;height:16px;transition:transform .1s;position:absolute;top:0;left:0;box-shadow:0 0 6px #7c3aede6,0 1px 4px #0009}.progress-container:hover .playhead-handle{transform:scaleY(1.25)}.control-btn:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}@media (pointer:coarse){.video-controls-overlay.hidden{opacity:.5}.control-btn{min-width:56px;padding:14px 20px}.progress-container{height:24px}.playhead-handle{width:6px;height:20px}}.live-page{color:#eee;background:var(--brand-bg);flex-direction:column;gap:20px;min-height:100vh;display:flex}.live-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.live-header h1{color:var(--brand-accent);margin:0}.live-back-button,.live-state-actions button{border:1px solid var(--brand-accent);background:var(--brand-surface-hi);color:var(--brand-accent);cursor:pointer;border-radius:6px;padding:10px 16px}.live-back-button:hover,.live-state-actions button:hover{background:var(--brand-accent);color:var(--brand-surface)}.live-subtitle-row{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.live-starting,.live-lag-indicator{letter-spacing:.03em;background:rgb(var(--brand-surface-hi-rgb) / .8);color:var(--brand-text-soft);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.live-lag-indicator.is-live{color:#8cf5ab;background:#4caf502e}.live-state-card{border:1px solid var(--brand-surface-hi);background:var(--brand-surface);color:var(--brand-text-soft);border-radius:12px;padding:24px}.live-state-card p{margin:0}.live-state-actions{gap:10px;margin-top:16px;display:flex}.recording-thumbnail{aspect-ratio:16/9;background:linear-gradient(135deg,#283593,#1a237e);border-radius:4px;flex:none;justify-content:center;align-items:center;width:128px;display:flex;overflow:hidden}.recording-thumbnail img{object-fit:cover;width:100%;height:100%}.recording-thumbnail-placeholder{color:#fff9;font-size:1.5rem}.recordings-page{color:#eee;background:var(--brand-bg);min-height:100vh;padding:20px}.recordings-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.recordings-header h1{color:var(--brand-accent);margin:0;font-size:24px}.recordings-header select{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:8px 12px}.recordings-empty{color:var(--brand-text-muted)}.recordings-error{color:#ff8a8a}.day-group{margin-bottom:24px}.day-header{color:var(--brand-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px;padding-left:4px;font-size:16px;font-weight:600}.recordings-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.recording-item{background:var(--brand-surface);border:1px solid var(--brand-surface-hi);border-left:4px solid #53627c;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.recording-item.status-recording{border-left-color:#f44}.recording-item.status-scheduled{border-left-color:var(--brand-gold)}.recording-item.status-done{border-left-color:#4caf50}.recording-item.status-interrupted{border-left-color:#f5a623}.recording-item.status-failed{border-left-color:#ff8a8a}.recording-title-row{align-items:center;gap:10px;display:flex}.recording-title{font-weight:600}.status-pill.status-recording{color:#fff;background:#f44}.status-pill.status-scheduled{color:var(--brand-surface);background:var(--brand-gold)}.status-pill.status-done{color:var(--brand-surface);background:#4caf50}.status-pill.status-interrupted{color:var(--brand-surface);background:#f5a623}.status-pill.status-failed{color:#fff;background:#a33}.recording-meta{color:var(--brand-text-muted);margin-top:4px;font-size:13px}.recording-error{color:#ff8a8a;margin-top:4px;font-size:13px}.recording-actions{flex-shrink:0;gap:8px;display:flex}.recording-actions button{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:8px 14px}.recording-actions button:hover:not(:disabled){color:var(--brand-surface);background:var(--brand-accent)}.recording-actions button.delete{color:#ff8a8a;border-color:#ff8a8a}.recording-actions button.delete:hover:not(:disabled){color:var(--brand-surface);background:#ff8a8a}.recording-actions button:disabled{cursor:wait;opacity:.6}.recording-item>.recording-main{flex:1;min-width:0}.recording-padding{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.recording-padding button{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:4px 10px}.recording-padding button:disabled{cursor:wait;opacity:.6}.recording-warning{color:#fc6;margin-top:6px;font-size:.9em}.recording-playback-page{color:#eee;background:var(--brand-bg);flex-direction:column;gap:20px;min-height:100vh;display:flex}.recording-playback-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.recording-playback-header h1{color:var(--brand-accent);margin:0}.recording-playback-back,.recording-playback-actions button{border:1px solid var(--brand-accent);background:var(--brand-surface-hi);color:var(--brand-accent);cursor:pointer;border-radius:6px;padding:10px 16px}.recording-playback-back:hover,.recording-playback-actions button:hover{background:var(--brand-accent);color:var(--brand-surface)}.recording-playback-card{border:1px solid var(--brand-surface-hi);background:var(--brand-surface);color:var(--brand-text-soft);border-radius:12px;padding:24px}.recording-playback-card p{margin:0}.recording-playback-actions{gap:10px;margin-top:16px;display:flex}.recording-playback-subtitle-row{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.recording-playback-status,.recording-playback-behind{background:rgb(var(--brand-surface-hi-rgb) / .8);color:var(--brand-text-soft);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-items:center;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.recording-playback-status.status-recording{color:#ff9f9f;background:#ff444426}.recording-playback-status.status-done{color:#9effb0;background:#4caf502e}.recording-playback-status.status-interrupted{color:#ffd08a;background:#f5a6232e}.recording-playback-behind{text-transform:none}.recording-progress-card{flex-direction:column;gap:16px;display:flex}.recording-progress-bar{background:rgb(var(--brand-surface-hi-rgb) / .7);border-radius:999px;height:12px;position:relative;overflow:hidden}.recording-progress-recorded{background:linear-gradient(90deg, var(--brand-accent) 0%, #00ffb2 100%);height:100%}.recording-progress-playhead{background:#fff;border-radius:999px;width:4px;height:20px;position:absolute;top:-4px;transform:translate(-50%);box-shadow:0 0 12px #fffc}.recording-progress-labels{color:var(--brand-text-muted);justify-content:space-between;gap:12px;font-size:13px;display:flex}.recording-progress-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.recording-progress-stats div{background:rgb(var(--brand-surface-hi-rgb) / .5);border-radius:8px;flex-direction:column;gap:4px;padding:12px;display:flex}.recording-playback-error{color:#ff8a8a;margin:0}.search-page{color:#eee;flex-direction:column;gap:16px;height:100%;display:flex}.search-input{border:1px solid var(--brand-surface-hi);background:var(--brand-surface);color:#fff;border-radius:8px;width:100%;padding:12px 16px;font-size:16px}.search-page h2{color:var(--brand-accent);margin:0 0 8px;font-size:18px}.search-empty,.search-none{color:#888;padding:8px 0}.search-message{color:var(--brand-accent)}.search-chips{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.search-chip,.search-card,.search-row,.search-action{background:var(--brand-surface);color:#fff;cursor:pointer;font:inherit;border:1px solid #0000}.search-chip{border-radius:16px;padding:4px 12px}.search-chip.active{background:var(--brand-accent);color:#000}.search-chip.toggle.on{background:color-mix(in srgb, var(--brand-accent) 25%, transparent);color:var(--brand-accent)}.search-chip:hover:not(.active),.search-card:hover,.search-row:hover,.search-row.active{background:var(--brand-surface-hi)}.search-chip:focus-visible,.search-card:focus-visible,.search-row:focus-visible,.search-action:focus-visible,.search-input:focus-visible{outline:2px solid var(--brand-accent);outline-offset:1px}.search-channel-row{gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.search-card{text-align:left;border-radius:8px;align-items:center;gap:10px;min-width:220px;padding:10px 12px;display:flex}.search-card img{object-fit:contain;width:40px;height:40px}.search-card-text{flex-direction:column;min-width:0;display:flex}.search-card-text small,.search-row small{color:#999}.search-programs{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 1.4fr 1.2fr;gap:16px;max-height:55vh;display:grid}.search-pane{flex-direction:column;gap:6px;display:flex;overflow-y:auto}.search-row{text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.search-badge{color:#000;text-transform:uppercase;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:700}.search-badge.live{background:var(--brand-accent)}.search-badge.recording{background:#d32f2f}.search-badge.scheduled{background:#f57f17}.search-badge.done{background:#388e3c}.search-detail{flex-direction:column;gap:8px;display:flex;overflow-y:auto}.search-detail h3{margin:0}.search-detail-channel{color:var(--brand-accent)}.search-action{background:var(--brand-accent);color:#000;border-radius:6px;align-self:flex-start;padding:8px 18px;font-weight:700}.search-modal-backdrop{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.search-modal{background:var(--brand-surface-hi);color:#eee;border-radius:12px;flex-direction:column;gap:10px;width:420px;max-width:90vw;padding:24px;display:flex}.search-modal h3{margin:0}.search-modal .search-action{align-self:stretch}.search-modal .search-chip{align-self:flex-end}.search-overflow{color:var(--brand-gold);padding:4px 0 8px;font-size:.9em}.search-scope{opacity:.85;flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0;font-size:13px;display:flex}.search-scope label{align-items:center;gap:4px;display:flex}.search-card-lineups{opacity:.6}.search-body{align-items:flex-start;gap:20px;min-height:0;display:flex}.search-results{flex-direction:column;flex:1;gap:16px;min-width:0;display:flex}.search-sidebar{flex-direction:column;flex:0 0 200px;gap:16px;display:flex}.search-facet{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.search-facet h3{text-transform:uppercase;letter-spacing:.05em;color:#999;margin:0;font-size:12px}.search-facet .search-chip{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.search-source{color:var(--brand-accent)}.search-modal-description{color:#ccc;max-height:30vh;margin:0;overflow-y:auto}@media (width<=900px){.search-body{flex-direction:column}.search-sidebar{flex-flow:wrap;flex:none;gap:12px 24px}.search-facet{flex-flow:wrap;align-items:center}.search-programs{grid-template-columns:1fr 1fr}}.schedule-page{color:#eee;background:var(--brand-bg);min-height:100vh;padding:20px}.schedule-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.schedule-header h1{color:var(--brand-accent);margin:0;font-size:24px}.schedule-header-actions{gap:8px;display:flex}.schedule-header-actions button{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;white-space:nowrap;border-radius:4px;padding:8px 14px;font-size:13px}.schedule-header-actions button:hover:not(:disabled){color:var(--brand-surface);background:var(--brand-accent)}.schedule-header-actions .nav-link{color:var(--brand-text-muted);border-color:#53627c}.schedule-filters{gap:10px;margin-bottom:16px;display:flex}.schedule-filters select{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:8px 12px;font-size:13px}.schedule-empty{color:var(--brand-text-muted)}.schedule-error{color:#ff8a8a}.schedule-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.schedule-item{background:var(--brand-surface);border:1px solid var(--brand-surface-hi);border-left:4px solid var(--brand-accent);border-radius:6px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.schedule-item.disabled{opacity:.55;border-left-color:#53627c}.schedule-main{flex:1;min-width:0}.schedule-title-row{align-items:center;gap:10px;display:flex}.schedule-title{font-weight:600}.schedule-recurrence{color:var(--brand-text-muted);font-size:13px}.status-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--brand-surface-hi);color:var(--brand-text-muted);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700}.status-pill.status-enabled{color:var(--brand-surface);background:#4caf50}.status-pill.status-disabled{color:var(--brand-text-muted);background:#53627c}.recurrence-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--brand-surface-hi);color:var(--brand-accent);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700}.schedule-meta{color:var(--brand-text-muted);margin-top:4px;font-size:13px}.schedule-description{color:var(--brand-text-muted);max-height:40px;margin-top:4px;font-size:13px;overflow:hidden}.schedule-actions{flex-shrink:0;gap:8px;display:flex}.schedule-actions button{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:8px 14px}.schedule-actions button:hover:not(:disabled){color:var(--brand-surface);background:var(--brand-accent)}.schedule-actions button.delete{color:#ff8a8a;border-color:#ff8a8a}.schedule-actions button.delete:hover:not(:disabled){color:var(--brand-surface);background:#ff8a8a}.schedule-actions button.edit{color:var(--brand-gold);border-color:var(--brand-gold)}.schedule-actions button.edit:hover:not(:disabled){color:var(--brand-surface);background:var(--brand-gold)}.schedule-actions button:disabled{cursor:wait;opacity:.6}.schedule-modal-backdrop{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.schedule-modal{color:#eee;background:var(--brand-surface);border:1px solid var(--brand-accent);border-radius:8px;width:min(640px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.modal-header{border-bottom:1px solid var(--brand-surface-hi);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-header h2{color:var(--brand-accent);margin:0;font-size:18px}.modal-close{color:var(--brand-text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:18px}.modal-close:hover{color:#ff8a8a}.mode-tabs{border-bottom:1px solid var(--brand-surface-hi);gap:0;display:flex}.mode-tab{color:var(--brand-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 16px;font-size:13px;transition:background .15s,color .15s}.mode-tab.active{color:var(--brand-accent);border-bottom-color:var(--brand-accent);background:var(--brand-surface-hi)}.mode-tab:hover{background:var(--brand-surface-hi)}.form-section{padding:20px 24px}.form-section legend{color:var(--brand-accent);margin-bottom:12px;font-size:14px;font-weight:600}.form-field{margin-bottom:14px;display:block}.form-field span,.form-field label{color:var(--brand-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:12px;display:block}.form-field input[type=text],.form-field input[type=date],.form-field input[type=time],.form-field textarea,.form-field select{color:#eee;background:var(--brand-surface-hi);border:1px solid var(--brand-accent);border-radius:4px;width:100%;padding:9px 12px;font-size:14px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{box-shadow:0 0 0 2px rgb(var(--brand-accent-rgb) / .3);outline:none}.form-field-tall textarea{resize:vertical;min-height:60px}.form-row{gap:16px;display:flex}.form-row>.form-field{flex:1}.form-row-wide{flex-wrap:wrap;margin-top:12px}.form-hint{color:var(--brand-text-muted);margin:0 0 12px;font-size:13px}.form-hint a{color:var(--brand-accent)}.weekday-pick{align-items:center;gap:8px;margin-top:12px;display:flex}.weekday-chips{gap:4px;display:flex}.weekday-chip{color:var(--brand-text-muted);background:var(--brand-surface-hi);cursor:pointer;border:1px solid #53627c;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.weekday-chip.on{color:var(--brand-surface);background:var(--brand-accent);border-color:var(--brand-accent)}.weekday-chip:hover:not(.on){border-color:var(--brand-accent);color:var(--brand-accent)}.modal-footer{border-top:1px solid var(--brand-surface-hi);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal-footer button{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;padding:8px 16px;font-size:13px}.modal-footer button.btn-primary{color:var(--brand-surface);background:var(--brand-accent);font-weight:600}.modal-footer button:hover:not(:disabled){opacity:.85}.modal-footer button:disabled{cursor:wait;opacity:.6}.modal-error{color:#ff8a8a;margin:0 24px 16px;font-size:13px}.lineups-page{color:#eee;grid-template-columns:300px 1fr;gap:20px;display:grid}.lineups-page h2{color:var(--brand-accent);margin:0;font-size:18px}.lineups-page h3{color:var(--brand-text-muted);text-transform:uppercase;margin:14px 0 8px;font-size:14px}.lineup-list{background:var(--brand-surface);border-radius:8px;align-self:start;padding:14px}.lineup-list-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.lineup-create{gap:6px;margin-bottom:10px;display:flex}.lineup-create input{flex:1;min-width:0}.lineup-list ul{list-style:none}.lineup-item{text-align:left;justify-content:space-between;align-items:center;width:100%;margin-bottom:4px;display:flex}.lineup-list .lineup-item.selected{border-color:var(--brand-accent);background:var(--brand-accent-dark)}.lineup-item-name{text-overflow:ellipsis;white-space:nowrap;margin-right:8px;overflow:hidden}.lineups-detail{flex-direction:column;gap:16px;min-width:0;display:flex}.lineup-status,.lineup-settings,.lineup-guides{background:var(--brand-surface);border-radius:8px;padding:16px}.lineup-status-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.lineup-status-header .button-link{margin-left:auto}.stat-groups{grid-template-columns:1fr 1fr;gap:20px;display:grid}.stats{list-style:none}.stats li{border-bottom:1px solid var(--brand-surface-hi);justify-content:space-between;padding:4px 0;display:flex}.stats .stat-warn strong{color:var(--brand-gold)}.warnings{color:var(--brand-gold);padding-left:20px}.lineups-notice{color:#8ac8ff;background:#8ac8ff1f;border:1px solid #8ac8ff;border-radius:4px;grid-column:1/-1;margin-bottom:12px;padding:10px}.lineups-error{color:#ff8a8a;background:#ff8a8a1f;border:1px solid #ff8a8a;border-radius:4px;grid-column:1/-1;margin-bottom:12px;padding:10px}.lineup-editor{color:#eee;flex-direction:column;height:calc(100vh - 40px);min-height:0;display:flex}.lineup-editor h1{color:var(--brand-accent);margin-right:auto;font-size:20px}.lineup-editor h2{color:var(--brand-accent);margin:0;font-size:16px}.lineup-editor h3{text-transform:uppercase;color:var(--brand-text-muted);margin:0 0 8px;font-size:13px}.editor-header{align-items:center;gap:14px;margin-bottom:10px;display:flex}.editor-header a{color:var(--brand-accent);text-decoration:none}.editor-notice{border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:8px 12px;display:flex}.editor-notice.info{border:1px solid var(--brand-accent-dark);background:#5eead41f}.editor-notice.error{color:#ff8a8a;background:#ff8a8a1f;border:1px solid #ff8a8a}.editor-panes{flex:1;grid-template-columns:240px minmax(0,1fr) 320px;gap:14px;min-height:0;display:grid}.collection-list,.entry-list,.editor-side{background:var(--brand-surface);border-radius:8px;flex-direction:column;min-height:0;padding:12px;display:flex}.editor-side{gap:18px;overflow-y:auto}.pane-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.icon-buttons{gap:4px;display:flex}.collection-list ul{list-style:none;overflow-y:auto}.collection-item{text-align:left;justify-content:space-between;width:100%;margin-bottom:4px;display:flex}.lineup-editor .collection-item.selected{border-color:var(--brand-accent);background:var(--brand-accent-dark)}.collection-count{color:var(--brand-text-muted)}.entry-toolbar{gap:8px;margin-bottom:8px;display:flex}.entry-toolbar input{flex:1}.entry-filters{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.lineup-editor .entry-filters button.active{border-color:var(--brand-accent);background:var(--brand-accent-dark)}.entry-summary{color:var(--brand-text-muted);justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.virtual-list{background:var(--brand-bg);border-radius:4px;flex:1;min-height:120px;position:relative;overflow-y:auto}.virtual-list-inner{position:relative}.virtual-row{position:absolute;left:0;right:0}.entry-row{border-bottom:1px solid var(--brand-surface-hi);cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;height:100%;padding:0 10px;display:flex}.entry-row:hover{background:var(--brand-surface-hi)}.entry-row.selected{background:var(--brand-accent-dark)}.entry-row:focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}.entry-position{width:40px;color:var(--brand-text-muted);text-align:right}.entry-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.entry-renamed{color:var(--brand-text-muted);font-size:12px}.entry-warning{color:var(--brand-gold);font-size:12px}.entry-tag{background:var(--brand-surface-hi);color:var(--brand-text-muted);border-radius:8px;padding:0 6px;font-size:11px}.entry-disabled{opacity:.55}.entry-loading{color:var(--brand-text-muted)}.entry-inspector label,.collection-options label,.bulk-panel label{color:var(--brand-text-muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:14px;display:flex}.entry-inspector label.check,.collection-options label.check{flex-direction:row;align-items:center;gap:8px}.inspector-source,.inspector-guide{color:var(--brand-text-muted);margin-bottom:8px;font-size:13px}.inspector-logo{background:#fff2;border-radius:4px;max-width:120px;max-height:60px;margin-bottom:8px;padding:4px}.inspector-logo-choice{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.bulk-row{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.bulk-row input,.bulk-row select{flex:1;min-width:0}.dialog-columns{grid-template-columns:1fr 1.2fr 1.6fr;gap:12px;height:420px;min-height:0;display:grid}.dialog-list{background:var(--brand-surface);border-radius:6px;flex-direction:column;gap:6px;min-height:0;padding:10px;display:flex}.dialog-list ul{flex:1;list-style:none;overflow-y:auto}.dialog-list li{align-items:center;gap:6px;padding:2px 0;display:flex}.dialog-list li.current{background:var(--brand-surface-hi);border-radius:4px}.dialog-list li button{text-align:left;color:inherit;background:0 0;border:none;flex:1;padding:4px}.dialog-row{align-items:center;gap:8px;height:100%;padding:0 8px;display:flex}.dialog-row.in-lineup{opacity:.55}.dialog-options{flex-direction:column;gap:4px;margin:12px 0;font-size:14px;display:flex}.dialog-options .check{align-items:center;gap:8px;display:flex}.guide-columns{grid-template-columns:1.4fr 1fr;gap:12px;height:420px;min-height:0;display:grid}.guide-pick-row{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:none}.guide-pick-row small{color:var(--brand-text-muted);margin-left:auto}.guide-pick-row.current{background:var(--brand-surface-hi)}.guide-match{color:var(--brand-text-muted);margin:8px 0 0;font-size:14px}.preview-list{flex:1;font-size:14px;list-style:none;overflow-y:auto}.preview-list li{padding:3px 0}.preview-id{color:var(--brand-text-muted)}.group-syncs{margin-top:10px;font-size:14px}.group-syncs h4{margin:0 0 4px}.group-syncs ul{margin:6px 0 0;padding:0;list-style:none}.group-syncs li{justify-content:space-between;align-items:center;gap:8px;padding:2px 0;display:flex}.jobs-page{color:#eee}.jobs-page h1{color:var(--brand-accent);margin:0 0 16px;font-size:24px}.jobs-table{border-collapse:collapse;width:100%;font-size:14px}.jobs-table th,.jobs-table td{text-align:left;border-bottom:1px solid var(--brand-surface-hi);vertical-align:top;padding:10px 12px}.jobs-row-click{cursor:pointer}.jobs-row-click:hover{background:var(--brand-surface)}.jobs-name{font-weight:600}.jobs-meta{color:var(--brand-text-muted);margin:2px 0;font-size:12px}.jobs-badge{background:var(--brand-surface-hi);color:var(--brand-text-soft);border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.jobs-badge-running{background:var(--brand-accent-mid);color:#fff}.jobs-badge-failed{color:#fff;background:#e5484d}.jobs-badge-paused{background:var(--brand-gold);color:#222}.jobs-actions{white-space:nowrap}.jobs-actions button,.jobs-back{color:var(--brand-accent);background:var(--brand-surface-hi);border:1px solid var(--brand-accent);cursor:pointer;border-radius:4px;margin-right:6px;padding:6px 12px;font-size:13px}.jobs-actions button:disabled{opacity:.5;cursor:default}.jobs-back{margin-bottom:12px}.jobs-error{color:#ffb3b5;white-space:pre-wrap;background:#e5484d26;border-radius:4px;margin:8px 0 12px;padding:8px 12px;font-size:12px}.jobs-logs{background:var(--brand-bg);border-radius:4px;padding:12px;font-size:12px;overflow-x:auto}.jobs-log-warning{color:var(--brand-gold)}.jobs-log-error,.jobs-log-critical{color:#ff8589}.status-tabs{gap:8px;margin-bottom:16px;display:flex}.status-tabs button{color:var(--brand-text-soft);border:1px solid var(--brand-surface-hi);cursor:pointer;background:0 0;border-radius:4px;padding:6px 14px}.status-tabs button.active{color:var(--brand-accent);border-color:var(--brand-accent);background:var(--brand-surface-hi)}.jobs-page h2{margin:20px 0 8px;font-size:18px}.stream-meter{margin-bottom:8px}.stream-meter-label{margin-bottom:6px;font-weight:600}.stream-meter-bar{gap:4px;max-width:320px;display:flex}.stream-meter-slot{background:var(--brand-surface-hi);border-radius:3px;flex:1;height:12px}.stream-meter-slot.used-ok{background:var(--brand-accent-mid)}.stream-meter-slot.used-warn{background:#f59e0b}.stream-meter-slot.used-full{background:#e5484d}.stream-card{background:var(--brand-surface);border-radius:6px;align-items:flex-start;gap:12px;margin-bottom:8px;padding:12px;display:flex}.stream-logo{object-fit:contain;width:48px;height:48px}.stream-body{flex:1;min-width:0}.stream-progress{background:var(--brand-surface-hi);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.stream-progress>div{background:var(--brand-accent);height:100%}.stream-link{color:var(--brand-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.stream-stop{color:#fff;cursor:pointer;background:#e5484d;border:none;border-radius:4px;padding:6px 14px}.log-list{flex-direction:column;gap:12px;width:100%;min-height:0;display:flex}.log-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:0;display:flex}.log-header h3{color:#e8e8e8;text-align:left;margin:0;font-size:1.25rem;font-weight:600}.log-controls{flex-shrink:0;align-items:center;gap:12px;display:flex}.filter-group{align-items:center;gap:8px;display:flex}.filter-group label{color:#aaa;font-size:13px}.filter-group select{background:var(--brand-surface);color:#e8e8e8;cursor:pointer;border:1px solid #444;border-radius:6px;outline:none;padding:6px 10px;font-size:13px}.filter-group select:focus{border-color:var(--brand-accent-mid)}.sd-btn{background:var(--brand-accent-mid);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:background .15s}.sd-btn:hover:not(:disabled){background:var(--brand-accent-dark)}.sd-btn.secondary{background:var(--brand-surface-hi)}.sd-btn.secondary:hover:not(:disabled){background:#4a4a4a}.log-entries{background:var(--brand-screen-bg);border:1px solid var(--brand-surface-hi);border-radius:8px;flex:1;min-height:300px;max-height:calc(100vh - 320px);padding:12px 14px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;overflow-y:auto}.log-entry{border-bottom:1px solid #242424;gap:10px;padding:3px 0;display:flex}.log-entry:last-child{border-bottom:none}.log-time{color:#5a5a5a;flex-shrink:0;min-width:68px}.log-level{flex-shrink:0;min-width:46px;font-weight:600}.log-level.level-info{color:#4caf50}.log-level.level-warn{color:#ff9800}.log-level.level-error{color:#f44336}.log-message{color:#d4d4d4;word-break:break-word;white-space:pre-wrap;flex:1}.empty-state{text-align:center;color:#666;padding:32px 20px;font-size:14px}.log-entries::-webkit-scrollbar{width:8px}.log-entries::-webkit-scrollbar-track{background:var(--brand-screen-bg)}.log-entries::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.log-entries::-webkit-scrollbar-thumb:hover{background:#555}.log-level.level-debug{color:#888}.log-viewer{flex-direction:column;gap:12px;width:100%;display:flex}.log-viewer-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.log-viewer-toggle{display:flex}.log-viewer-toggle button{color:var(--brand-text-soft);border:1px solid var(--brand-surface-hi);cursor:pointer;background:0 0;padding:6px 14px}.log-viewer-toggle button:first-child{border-radius:4px 0 0 4px}.log-viewer-toggle button:last-child{border-radius:0 4px 4px 0}.log-viewer-toggle button.active{color:var(--brand-accent);border-color:var(--brand-accent);background:var(--brand-surface-hi)}.datetime24{border:none;align-items:center;gap:6px;margin:0;padding:0;display:flex}.datetime24 legend{float:left;color:#aaa;padding:0 6px 0 0;font-size:13px}.datetime24 input{background:var(--brand-surface);color:#e8e8e8;border:1px solid #444;border-radius:6px;padding:6px 8px;font-size:13px}.datetime24 input[type=text]{text-align:center;width:64px}.datetime24 input[aria-invalid=true]{border-color:#f44336}.log-viewer-follow{color:#ccc;align-items:center;gap:6px;font-size:13px;display:flex}.log-viewer-problem,.log-viewer-error{color:#f44336;margin:0;font-size:13px}.log-viewer-note{color:#ff9800;margin:0;font-size:13px}.log-viewer-view .log-level.server-level-debug{color:#888}.log-viewer-view .log-level.server-level-info{color:#4caf50}.log-viewer-view .log-level.server-level-warning{color:#ff9800}.log-viewer-view .log-level.server-level-error,.log-viewer-view .log-level.server-level-critical{color:#f44336}.log-viewer-view .log-entry.server-level-warning{background:#ff980012}.log-viewer-view .log-entry.server-level-error,.log-viewer-view .log-entry.server-level-critical{background:#f443361a}.log-viewer-view .log-level{min-width:64px}:root{--brand-accent:#5eead4;--brand-accent-rgb:94, 234, 212;--brand-accent-mid:#0d9488;--brand-accent-dark:#0f766e;--brand-gold:#f7d774;--brand-screen-bg:#0d3643;--brand-bg:#071e29;--brand-surface:#0b2b38;--brand-surface-hi:#0f3d4c;--brand-surface-hi-rgb:15, 61, 76;--brand-text-muted:#a9c7cc;--brand-text-soft:#d1eef0}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--brand-screen-bg);color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto}
