:root{color-scheme:dark;--bg:#101814;--panel:#19241e;--line:#344039;--muted:#acb9ae;--text:#f1f3e9;--accent:#d7eb9b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,sans-serif}header,footer{display:flex;justify-content:space-between;align-items:center;padding:24px 4vw;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{font-size:30px;font-weight:800;letter-spacing:-1.5px}.brand span{display:block;font-size:10px;letter-spacing:2px;font-weight:500;text-transform:uppercase}.headright,.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}main{max-width:1440px;margin:auto;padding:40px 4vw 64px}h1,h2,p{margin:0 0 16px}h1{font-size:clamp(28px,4vw,46px);line-height:1.1;letter-spacing:-1.5px}h2{line-height:1.2}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--accent)}.muted,#connection{color:var(--muted);font-size:14px}button,input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:9px;background:#212e26;color:var(--text);padding:12px 16px}button{cursor:pointer;font-weight:600;min-height:48px}button:hover{border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}.primary{background:var(--accent);color:#162414;border-color:var(--accent)}input,textarea{width:100%}input{min-width:0}select{max-width:230px}label{display:block;font-size:14px;margin:16px 0 8px}textarea{resize:vertical;font-size:14px;line-height:1.6}#welcome{padding:7vh 0;max-width:780px}#welcome h1{font-size:clamp(38px,6vw,70px)}.intro{color:var(--muted);font-size:20px}#login{margin:32px 0 20px}#login input{flex:1;min-width:200px}.toolbar{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}#tools{justify-content:flex-end;max-width:620px}#tools button{font-size:13px}.notice{padding:12px 16px;border-left:3px solid var(--accent);background:#202d25;color:var(--muted)}.runner{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin:24px 0 40px}.now,.next{border:1px solid var(--line);border-radius:16px;padding:30px;background:var(--panel)}.now{border-top:4px solid var(--accent)}.cardtop{display:flex;justify-content:space-between}.cardtop span{font-size:13px;color:var(--muted)}.now h2{font-size:clamp(32px,4vw,58px);letter-spacing:-1px;margin:28px 0}.cue{font-size:20px;white-space:pre-wrap;min-height:60px;color:#e3e9d7}.timing{display:flex;gap:20px;align-items:baseline;margin:28px 0}.timing strong{font:500 48px/1 ui-monospace,monospace}.timing span{color:var(--muted)}.next h2{font-size:30px;margin-top:28px}.projection{border-top:1px solid var(--line);margin-top:40px;padding-top:24px}.projection strong{font-size:32px}.sectiontitle{display:flex;justify-content:space-between;gap:16px}.rundown ol,.history ol{list-style:none;padding:0}.rundown li{display:grid;grid-template-columns:36px 1fr auto;gap:16px;padding:20px;border-bottom:1px solid var(--line)}.rundown li.active{background:#293a26;border-radius:10px;border-left:3px solid var(--accent)}.rundown li p{margin:5px 0 0;color:var(--muted);white-space:pre-wrap}.rundown li strong{font-size:17px}.history{margin-top:40px}.history li{padding:12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:28px;width:min(700px,94vw)}dialog::backdrop{background:#000b}#shareUrl{margin-bottom:20px}#error,#editError{color:#ffc4ab}#error{padding:16px;background:#47291f;border-radius:8px}footer{border-top:1px solid var(--line);border-bottom:0;color:var(--muted);font-size:12px}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media(max-width:800px){header{padding:16px 5vw}.toolbar{display:block}#tools{justify-content:flex-start;margin-top:20px}.runner{grid-template-columns:1fr}.now,.next{padding:22px}.projection{margin-top:20px}.sectiontitle{display:block}.headright{max-width:180px}footer{gap:20px}#controls button{flex:1}.rundown li{padding:16px 8px;gap:8px}}

.check{display:flex;align-items:center;gap:12px}.check input{width:20px;height:20px;min-width:20px}.history-result{padding:20px 0;border-bottom:1px solid var(--line)}.history-result button{margin-right:8px}#historyDialog{max-height:90vh}#sourceNote{overflow-wrap:anywhere}#importPanel{padding:20px;border:1px solid var(--line);border-radius:12px;margin-top:20px}#finish{font-size:26px}#login .row{align-items:flex-end}#login label[for=password]{width:100%;margin-bottom:0}#password{flex-basis:60%}#advance{font-size:20px;min-height:64px;min-width:200px}.now{display:flex;flex-direction:column}.now #controls{margin-top:auto}dialog form{max-height:85vh;overflow:auto}#connection{max-width:240px}#historyResults h3{margin-bottom:8px}#tools{max-width:720px}

/* The unattended display is a viewport-sized cue board, not a scrolling page. */
body.display-mode{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}
.display-mode header{flex:none;padding:12px 2.5vw;gap:20px}
.display-mode .brand{font-size:26px}
.display-mode .brand span{font-size:8px}
.display-mode .headright{max-width:none;flex-wrap:nowrap;gap:16px}
.display-mode #connection{font-size:12px;max-width:none}
.display-mode #fullscreen{font-size:13px;min-height:38px;padding:7px 12px;white-space:nowrap}
.display-mode main{width:100%;max-width:none;flex:1;min-height:0;padding:16px 2.5vw 20px;display:flex;flex-direction:column;gap:8px}
.display-mode #workspace{flex:1;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:10px}
.display-mode .toolbar{margin:0;min-height:0;display:block}
.display-mode .toolbar>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px}
.display-mode #mode{display:none}
.display-mode #serviceTitle{font-size:24px;letter-spacing:-.5px;line-height:1.15;margin:0;height:30px;overflow-wrap:anywhere}
.display-mode #serviceMeta{margin:0;font-size:12px;align-self:center}
.display-mode .notice{margin:0;padding:6px 12px;font-size:12px;line-height:1.4}
.display-mode .runner{min-height:0;margin:0;gap:16px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.display-mode .now,.display-mode .next{min-width:0;min-height:0;padding:clamp(14px,2.4vh,30px);display:grid;gap:12px}
.display-mode .now{grid-template-rows:auto minmax(0,.7fr) minmax(0,1fr) auto}
.display-mode .next{grid-template-rows:auto minmax(0,.55fr) minmax(0,.8fr) auto}
.display-mode .now{background:#1c2b21;border-left:5px solid var(--accent)}
.display-mode .next{background:#172126;border-color:#455963}
.display-mode .cardtop .eyebrow,.display-mode .next>.eyebrow{width:max-content;padding:4px 10px;border-radius:5px;font-size:12px;letter-spacing:1.6px;line-height:1.5}
.display-mode .cardtop .eyebrow{color:#162414;background:var(--accent)}
.display-mode .cardtop .eyebrow::before{content:'●';margin-right:8px;font-size:10px}
.display-mode .next>.eyebrow{color:#d8e6ed;border:1px solid #6b8591;background:#25353e}
.display-mode .next>.eyebrow::before{content:'→';margin-right:8px}
.display-mode .next h2{color:#d8e6ed}
.display-mode p,.display-mode h2{margin:0}
.display-mode .cardtop{align-items:center;gap:16px}
.display-mode #current{font-size:clamp(32px,5.5vw,80px);line-height:1.08;letter-spacing:-1.5px}
.display-mode #cue{font-size:clamp(22px,2.5vw,40px);line-height:1.3;min-height:0;color:var(--text)}
.display-mode #next{font-size:clamp(26px,3vw,48px);line-height:1.1;letter-spacing:-.7px}
.display-mode #nextCue{font-size:clamp(18px,1.7vw,28px);line-height:1.3;color:#c1ced5}
.display-mode #current,.display-mode #cue,.display-mode #next,.display-mode #nextCue{min-height:0;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}
.display-mode .sources{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:14px}
.display-mode .source-line{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:4px}
.display-mode .source-label{font-size:11px;line-height:1.3;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);font-weight:700}
.display-mode .next .source-label{color:#9eb5c1}
.display-mode .source-value{min-height:0;min-width:0;display:block;line-height:1.2;overflow-wrap:anywhere}
.display-mode .timing{margin:0;border-top:1px solid var(--line);padding-top:14px;gap:16px;flex-wrap:wrap}
.display-mode .timing strong{font-size:clamp(32px,4.2vw,64px);font-variant-numeric:tabular-nums}
.display-mode #expected{font-size:12px}
.display-mode .projection{margin:0;padding-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;align-items:start}
.display-mode .projection .eyebrow{font-size:9px;letter-spacing:1.2px}
.display-mode #remaining{grid-column:1;grid-row:2;font-size:30px;line-height:1.1}
.display-mode #plannedRemaining{grid-column:1;grid-row:3;font-size:11px}
.display-mode #estimateNote{grid-column:1/-1;grid-row:5;font-size:11px;line-height:1.3}
.display-mode .projection .eyebrow:nth-of-type(4){grid-column:2;grid-row:1}
.display-mode #finish{grid-column:2;grid-row:2;font-size:22px;line-height:1.15}
.display-mode .projection p:last-child{grid-column:2;grid-row:3;font-size:11px}
.display-mode .rundown,.display-mode footer{display:none}
.display-mode #error{flex:none;margin:0;padding:6px 12px;font-size:12px;line-height:1.3}
@media(max-width:700px){
 .display-mode header{padding:9px 4vw;gap:10px}
 .display-mode .brand{font-size:22px}
 .display-mode .headright{gap:8px}
 .display-mode #connection{font-size:10px;max-width:135px}
 .display-mode #fullscreen{font-size:11px;padding:6px 8px;min-height:34px}
 .display-mode main{padding:10px 4vw 12px}
 .display-mode .toolbar>div:first-child{display:block}
 .display-mode #serviceTitle{font-size:20px;height:25px}
 .display-mode #serviceMeta{font-size:10px;margin-top:3px}
 .display-mode .runner{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1.1fr) minmax(0,1fr);gap:10px}
 .display-mode .now,.display-mode .next{padding:12px;gap:6px}
 .display-mode #current{font-size:34px;letter-spacing:-.7px}
 .display-mode #cue{font-size:23px}
 .display-mode #next{font-size:28px}
 .display-mode #nextCue{font-size:18px}
 .display-mode .sources{gap:6px}
 .display-mode .source-label{font-size:9px;letter-spacing:1px}
 .display-mode .timing{padding-top:6px;gap:8px;flex-wrap:nowrap}
 .display-mode .timing strong{font-size:28px}
 .display-mode #expected{font-size:10px}
 .display-mode .projection{padding-top:6px;gap:3px 8px}
 .display-mode #remaining{font-size:23px}
 .display-mode #finish{font-size:18px}
 .display-mode #estimateNote{font-size:9px}
}
@media(max-height:500px) and (min-width:701px){
 .display-mode header{padding:5px 2.5vw}
 .display-mode main{padding-top:6px;padding-bottom:8px}
 .display-mode #workspace{gap:6px}
 .display-mode .now,.display-mode .next{padding:10px;gap:6px}
 .display-mode .timing,.display-mode .projection{padding-top:6px}
 .display-mode .timing strong{font-size:30px}
 .display-mode .projection strong,.display-mode #finish{font-size:20px}
 .display-mode .next{grid-template-rows:auto minmax(0,.6fr) minmax(0,1fr) auto}
 .display-mode .sources{gap:5px}
 .display-mode .source-line{grid-template-columns:80px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:6px}
 .display-mode .source-label{font-size:8px;letter-spacing:.3px;line-height:1.2;white-space:nowrap}
 .display-mode #estimateNote{font-size:9px;line-height:1.2}
 .display-mode .projection .eyebrow{font-size:8px;letter-spacing:.6px}
 .display-mode #plannedRemaining,.display-mode .projection p:last-child{font-size:10px}
}
