:root{--bg:#070a09;--panel:#101512;--panel-2:#151c18;--ink:#f1f5f2;--muted:#98a49d;--line:#2a332e;--green:#7ee2ad;--yellow:#f6c85f;--red:#ff8378;--blue:#78b9ff;--radius:16px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 15% 0,#13251c 0,transparent 28%),var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-wrap:anywhere}
button,input,select,textarea{font:inherit}
button,select{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:9px;padding:9px 12px}
button{cursor:pointer}
button:hover{border-color:var(--green);color:var(--green)}
button:disabled{cursor:not-allowed;opacity:.45}
button:disabled:hover{border-color:var(--line);color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 60%,transparent);outline-offset:2px}
.primary{background:var(--green);border-color:var(--green);color:#07110b;font-weight:800}
.primary:hover{color:#07110b;filter:brightness(1.08)}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(16px,4vw,54px);background:rgba(7,10,9,.9);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
h1,h2,h3,p{margin-top:0}
.topbar h1{margin:3px 0 0;font-size:clamp(22px,3vw,36px)}
.topbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.eyebrow,.kicker{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:900;color:var(--green)}
main{width:min(1120px,calc(100% - 32px));margin:28px auto 80px}
.production-dashboard{margin-bottom:28px}
.dashboard-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.dashboard-heading h2{margin:3px 0 6px;font-size:clamp(26px,4vw,44px);letter-spacing:-.035em}
.dashboard-provenance{margin:0;color:var(--muted);font-size:12px}
.dashboard-filters{display:flex;gap:10px;flex-wrap:wrap}
.dashboard-filters label{display:grid;gap:6px;min-width:180px;color:var(--muted);font-size:12px}
.dashboard-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px;margin-bottom:18px}
.summary-card{display:grid;gap:3px;text-align:left;padding:13px 14px;background:#0b100d}
.summary-card strong{font-size:27px;line-height:1;color:var(--ink)}
.summary-card span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.dashboard-table-wrap{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.dashboard-table{width:100%;border-collapse:collapse;font-size:13px}
.dashboard-table th{position:sticky;top:0;z-index:1;background:#111713;color:var(--muted);text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.09em}
.dashboard-table th,.dashboard-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.dashboard-table tr:last-child td{border-bottom:0}
.dashboard-table tr:hover td{background:rgba(126,226,173,.035)}
.dashboard-episode-link{padding:0;border:0;background:transparent;text-align:left;color:var(--ink);font-weight:750}
.dashboard-episode-link:hover{color:var(--green)}
.production-badge{display:inline-block;padding:4px 7px;border-radius:999px;background:#252d28;color:var(--muted);white-space:nowrap;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:850}
.stage-published{color:var(--blue)}
.stage-upload-ready{color:var(--green)}
.stage-awaiting-review,.stage-narration-review{color:var(--yellow)}
.stage-produce-next{color:#c5a2ff}
.stage-script-review{color:#ffb77d}
.episode-navigation{display:grid;grid-template-columns:minmax(210px,.65fr) max-content minmax(260px,1fr) max-content;align-items:end;gap:10px;margin-bottom:28px}
.episode-navigation label{display:grid;gap:6px;color:var(--muted);font-size:12px}
.episode-navigation select{width:100%}
.episode-navigation option:disabled{color:#68726c}
.episode-heading{margin-bottom:20px}
.episode-heading h2{font-size:clamp(30px,5vw,56px);letter-spacing:-.04em;margin:5px 0 8px}
.episode-heading p{color:var(--muted);font-size:clamp(16px,2vw,20px);margin:0}
.panel{min-width:0;background:linear-gradient(145deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:clamp(16px,3vw,26px)}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:22px}
.panel h3{margin-bottom:8px}
.clock{font-variant-numeric:tabular-nums;color:var(--green);font-size:clamp(16px,2vw,22px)}
.control-row{display:flex;gap:8px;flex-wrap:wrap}
.teleprompter-controls{display:grid;gap:10px;margin:14px 0}
.teleprompter-seek{display:grid;gap:6px;color:var(--muted);font-size:12px}
.teleprompter-seek input{width:100%;accent-color:var(--green)}
.keyboard-help{margin:0;color:var(--muted);font-size:12px}
.active-cue{--cue-row-height:clamp(94px,10vw,138px);--cue-inline-pad:clamp(20px,4vw,52px);position:relative;height:calc(var(--cue-row-height) * 3);min-height:282px;overflow:hidden;background:#060806;border:1px solid #334139;border-radius:14px;line-height:1.08;letter-spacing:-.035em;mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%)}
.karaoke-track{position:absolute;top:var(--cue-row-height);left:0;right:0;display:grid;grid-auto-rows:var(--cue-row-height);will-change:transform}
.karaoke-track.instant{transition:none}
.karaoke-line{display:flex;align-items:center;align-content:center;flex-wrap:wrap;gap:.22em;min-width:0;padding:0 var(--cue-inline-pad);transform-origin:left center;transition:font-size 300ms ease,color 300ms ease,opacity 300ms ease,transform 300ms ease}
.karaoke-line.previous,.karaoke-line.past-due{font-size:clamp(15px,1.65vw,24px);color:var(--yellow);opacity:.72}
.karaoke-line.current{font-size:clamp(29px,4.2vw,62px);font-weight:760}
.karaoke-line.current .word{color:#dbe3de}
.karaoke-line.current .word.active{color:var(--green);text-decoration:underline;text-decoration-thickness:.09em;text-underline-offset:.12em}
.karaoke-line.current .word.past{color:color-mix(in srgb,var(--green) 58%,#dbe3de)}
.active-cue.estimated .karaoke-line.current .word.active{color:var(--yellow)}
.active-cue.estimated .karaoke-line.current .word.past{color:color-mix(in srgb,var(--yellow) 58%,#dbe3de)}
.karaoke-line.next{font-size:clamp(16px,2vw,28px);color:var(--muted)}
.narration-status{display:inline-block;padding:4px 7px;border-radius:999px;background:#242b27;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.narration-status.approved{color:var(--green)}
.narration-status.candidate-awaiting-review,.narration-status.draft{color:var(--yellow)}
.script-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 8px}
.script-editor-heading label{font-weight:800}
.script-editor-heading>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.script-draft-status{padding:4px 7px;border-radius:999px;background:#222b26;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.script-draft-status.draft{color:var(--yellow)}
.script-save-status{color:var(--muted);font-size:11px}
.script-save-status.saved{color:var(--green)}
.script-save-status.failed{color:var(--red)}
.full-script{display:block;width:100%;height:190px;min-height:190px;max-height:360px;overflow-y:auto;scrollbar-gutter:stable;resize:vertical;border:1px solid var(--line);background:#090c0a;color:#cbd3ce;border-radius:8px;padding:14px;font-size:17px;line-height:1.55}
.script-editor-help{margin:7px 2px 0;color:var(--muted);font-size:12px}
.toast{position:fixed;z-index:50;right:20px;bottom:20px;max-width:calc(100% - 40px);padding:12px 16px;background:#eaf8ef;color:#07110b;border-radius:10px;box-shadow:0 15px 50px #000;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}
.toast.on{opacity:1;transform:none}
.count-in{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(3,5,4,.86);backdrop-filter:blur(8px)}
.count-in span{font-size:min(45vw,420px);font-weight:950;color:var(--green);font-variant-numeric:tabular-nums;text-shadow:0 0 80px color-mix(in srgb,var(--green) 35%,transparent)}
body.teleprompter-presenting{overflow:hidden;background:#060806}
body.teleprompter-presenting .topbar,body.teleprompter-presenting .production-dashboard,body.teleprompter-presenting .episode-navigation,body.teleprompter-presenting .episode-heading,body.teleprompter-presenting .teleprompter-panel>.panel-heading,body.teleprompter-presenting .teleprompter-controls,body.teleprompter-presenting .script-editor-heading,body.teleprompter-presenting .full-script,body.teleprompter-presenting .script-editor-help{display:none}
body.teleprompter-presenting main{width:100%;height:100vh;height:100dvh;margin:0}
body.teleprompter-presenting .teleprompter-panel{position:fixed;inset:0;z-index:90;display:grid;width:100%;height:100vh;height:100dvh;padding:0;border:0;border-radius:0;background:#060806}
body.teleprompter-presenting .active-cue{--cue-row-height:33.333333vh;--cue-row-height:33.333333dvh;--cue-inline-pad:clamp(28px,7vw,112px);width:100%;height:100vh;height:100dvh;min-height:0;border:0;border-radius:0}
body.teleprompter-presenting .karaoke-line.previous,body.teleprompter-presenting .karaoke-line.past-due{font-size:clamp(22px,3vw,46px)}
body.teleprompter-presenting .karaoke-line.current{font-size:clamp(36px,6vw,92px)}
body.teleprompter-presenting .karaoke-line.next{font-size:clamp(24px,3.6vw,54px)}
[hidden]{display:none!important}
@media(max-width:650px){main{width:min(100% - 20px,1120px);margin-top:20px}.topbar,.panel-heading,.dashboard-heading{align-items:stretch;flex-direction:column}.topbar-actions{justify-content:stretch}.topbar-actions button{flex:1}.dashboard-filters label{min-width:0;flex:1}.dashboard-table th:nth-child(2),.dashboard-table td:nth-child(2),.dashboard-table th:nth-child(4),.dashboard-table td:nth-child(4){display:none}.episode-navigation{grid-template-columns:1fr 1fr}.episode-navigation label{grid-column:1/-1}.episode-navigation button{width:100%}.active-cue{--cue-row-height:clamp(88px,25vw,116px);min-height:264px}.karaoke-line.current{font-size:clamp(25px,8vw,42px)}.script-editor-heading{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.karaoke-track,.karaoke-line{transition:none}}
