:root{color-scheme:dark;--canvas:#141414;--surface:#1C1C1C;--surface-hover:#292929;--border:#3A3A3A;--control-border:#777777;--text:#F2F0EA;--text-secondary:#B8B8B3;--text-muted:#999995;--accent:#C7F28B;--accent-hover:#D6FAA7;--on-accent:#182010;--focus:#F2F0EA;--danger-text:#F0B8AE;--danger-fill:#922F27;--notes-size:32px}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{color:var(--text);background:var(--surface);border:1px solid var(--control-border);border-radius:7px;padding:10px 15px;cursor:pointer;white-space:nowrap}button:hover{background:var(--surface-hover)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.notesBody:focus-visible{outline:2px solid var(--focus);outline-offset:3px}button.quiet{background:transparent}.textButton{border:0;background:transparent;padding:4px;color:var(--text-muted);font-size:12px}.textButton:hover{color:var(--text);background:transparent}kbd{font:10px ui-monospace,monospace;color:inherit;margin-left:9px;border:1px solid currentColor;padding:2px 4px;border-radius:3px}#console{height:100dvh;display:grid;grid-template-rows:66px minmax(0,1fr) 92px 30px}.topbar{display:flex;align-items:center;gap:12px;padding:0 28px;border-bottom:1px solid var(--border)}.wordmark{margin-right:auto;font-size:14px;font-weight:750;letter-spacing:1.8px}.mark{color:var(--text);font-size:23px;vertical-align:middle;margin-right:8px}.consoleLabel{margin-left:24px;font-size:10px;font-weight:500;color:var(--text-muted);letter-spacing:1.5px}#clock{font:16px ui-monospace,monospace;color:var(--text-muted);margin-right:14px}.danger{color:var(--danger-text);border-color:var(--danger-text);background:transparent}.danger.active{background:var(--danger-fill);color:var(--text)}.workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 310px}main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:24px 28px 20px}.cuehead{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:23px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;color:var(--text-muted)}h1{font-size:22px;letter-spacing:-.5px;font-weight:550;margin:7px 0 0}.cueNumber{font:12px ui-monospace,monospace;color:var(--text-muted);white-space:nowrap}.notes{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--border)}.noteheader{display:flex;align-items:center;gap:14px;padding:17px 0;font-size:10px;font-weight:650;letter-spacing:1px;color:var(--text-muted)}#cueKind{color:var(--text)}#cueId{margin-left:auto;font:11px ui-monospace,monospace;color:var(--text-muted)}.textControls{display:flex;gap:4px}.textControls button{padding:5px 8px;font-size:12px;background:transparent;border-color:var(--border)}.notesBody{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable;padding:12px 16px 30px 0}#speaker{font-size:14px;letter-spacing:1px;color:var(--text);font-weight:650;margin-bottom:19px}#lineText{font-size:var(--notes-size);line-height:1.5;letter-spacing:-.3px;max-width:65ch;white-space:pre-line}.spokenBeat{margin:0 0 24px}.spokenBeat:last-child{margin-bottom:0}.beatSpeaker{display:block;font-size:14px;letter-spacing:1px;color:var(--text);margin-bottom:8px}.actingBeat{font-size:19px;color:var(--text-secondary);font-style:italic;line-height:1.6;margin:12px 0 24px}.beatDirection{display:block;font-size:18px;color:var(--text-secondary);font-style:italic;letter-spacing:0;margin-bottom:9px}#direction{font-size:18px;font-style:italic;line-height:1.6;color:var(--text-secondary);margin:18px 0 0}#direction:empty,#adaptation:empty{display:none}#adaptation{font-size:11px;line-height:1.5;color:var(--text-muted)}#sourceDirection{margin-top:24px;color:var(--text-muted);font-size:12px}#sourceDirectionText{font-size:16px;line-height:1.6;white-space:pre-line}#screenNotes{font-size:16px;line-height:1.6;color:var(--text-secondary);border-left:2px solid var(--text-secondary);padding-left:16px;margin-top:25px;white-space:pre-line}.monitorPanel{min-height:0;overflow:auto;padding:20px 16px;border-left:1px solid var(--border);background:var(--surface)}.panelHead{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:22px}.monitors{display:grid;gap:20px}.monitorlabel{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.monitorlabel span:last-child{font-size:9px;letter-spacing:0}.monitors iframe{width:100%;aspect-ratio:16/9;border:1px solid var(--border);border-radius:5px;display:block;background:black;pointer-events:none}.previewCaption{font-size:10px;color:var(--text-muted);margin-top:7px;line-height:1.4}.upNext{flex-shrink:0;border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.upNextHead{display:flex;align-items:center;gap:12px}.nextType{font-size:12px;color:var(--text-secondary)}.nextType.alert{background:var(--text);color:var(--canvas);border-radius:4px;padding:2px 8px;font-weight:750;letter-spacing:.8px}#nextText{font-size:15px;line-height:1.6;color:var(--text-secondary);margin-top:10px;max-width:65ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}#nextText strong{display:block;color:var(--text);font-size:11px;letter-spacing:1px;margin-bottom:9px}.transport{display:flex;align-items:center;gap:25px;padding:16px 28px;border-top:1px solid var(--border);background:var(--surface)}.transportSecondary{display:flex;gap:9px;align-items:center}.transportSecondary #play{min-width:160px}.playbackInfo{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:7px}#audioStatus{font-size:12px;color:var(--text-muted);max-width:260px}#audioStatus.error{color:var(--danger-text)}.go{min-width:215px;display:flex;align-items:center;gap:17px;background:var(--accent);color:var(--on-accent);border-color:var(--text);font-size:23px;font-weight:750;padding:15px 22px}.go:hover{background:var(--accent-hover)}.go span{font-size:13px;font-weight:500;flex:1;text-align:left}.go kbd{font-size:14px;margin:0}footer{display:flex;justify-content:space-between;align-items:center;padding:0 28px;color:var(--text-muted);font-size:10px;border-top:1px solid var(--surface)}dialog{color:var(--text);background:var(--surface);border:1px solid var(--control-border);border-radius:12px;padding:0;width:min(900px,calc(100vw - 40px));max-height:85dvh}dialog::backdrop{background:rgba(0,0,0,.75)}.dialogHead{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid var(--border);gap:20px}h2{font-size:24px;font-weight:550;letter-spacing:-.4px;margin:6px 0 0}h3{font-size:16px;font-weight:600;margin:0 0 12px}.settingsBody{max-height:calc(85dvh - 100px);overflow:auto;padding:0 28px}.settingsSection{padding:25px 0;border-bottom:1px solid var(--border)}.settingsSection p{font-size:13px;line-height:1.6;color:var(--text-muted);margin:0 0 16px}.buttonRow{display:flex;gap:9px;flex-wrap:wrap}.sectionHead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.sectionHead h3{margin:0}.sectionHead button{font-size:12px}.characterModes{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px}.characterMode{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}.characterMode small{display:block;font-size:10px;color:var(--text-muted);margin-top:4px}select,input[type=number]{background:var(--surface);color:var(--text);border:1px solid var(--control-border);border-radius:5px;padding:8px}.characterMode select{width:120px;font-size:12px}input[type=range]{accent-color:var(--text)}.speedControl{display:flex;align-items:center;gap:18px;margin-bottom:12px}.speedControl input{flex:1}.speedControl output{min-width:45px;font-variant-numeric:tabular-nums}.volume{display:flex;align-items:center;gap:25px;margin-top:20px}.volume input{width:210px}summary{cursor:pointer;font-size:14px;font-weight:600}.clipSettings[open] summary{margin-bottom:18px}.clipedit{display:grid;grid-template-columns:1fr 1fr;gap:20px}.clipSettings label{display:block;margin:12px 0;color:var(--text-muted);font-size:12px}.clipSettings input,.clipSettings select{display:block;margin-top:7px;max-width:100%}.clipSettings input[type=file]{font-size:11px}.settingsFooter{padding:22px 0;display:flex;justify-content:space-between;align-items:center}.settingsFooter a{color:var(--text);font-size:12px;text-decoration:none}#sceneDialog{height:80dvh;overflow:hidden}#sceneDialog[open]{display:flex;flex-direction:column}#search{margin:20px 28px;padding:13px 15px;color:var(--text);background:var(--canvas);border:1px solid var(--control-border);border-radius:6px}.navigationGrid{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:0;flex:1}.runningOrder,.cueRail{min-height:0;display:flex;flex-direction:column}.runningOrder{border-right:1px solid var(--border)}.sidehead{font-size:10px;letter-spacing:1.5px;color:var(--text-muted);display:flex;justify-content:space-between;padding:12px 25px}#sceneList,#cueList{overflow:auto;flex:1}.sceneButton{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;border:0;background:transparent;border-radius:0;padding:11px 25px;font-size:13px;white-space:normal;line-height:1.5}.sceneButton .num{color:var(--text-muted);width:25px;flex-shrink:0;font:11px ui-monospace,monospace;margin-top:4px}.sceneButton.active,.cueItem.active{background:var(--surface-hover);border-left:3px solid var(--accent);color:var(--text)}.movement{font-size:9px;letter-spacing:1.8px;color:var(--text-muted);padding:20px 25px 8px}.cueItem{width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;white-space:normal;padding:14px 25px}.cueItem small{font-size:10px;color:var(--text-muted)}.cueItem p{font-size:14px;line-height:1.5;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}[hidden]{display:none!important}
@media(min-width:1700px){.workspace{grid-template-columns:minmax(0,1fr) 370px}main{padding:32px 40px}.notesBody{padding-top:25px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 255px}main{padding:22px 25px}.monitorPanel{padding:20px 14px}.consoleLabel{display:none}.transport{gap:15px;padding:14px 22px}.go{min-width:170px}.transportSecondary button{padding:10px}.transportSecondary #play{min-width:145px}#audioStatus{max-width:170px;font-size:11px}}
@media(max-width:760px){#console{grid-template-rows:58px minmax(0,1fr) 80px 24px}.topbar{padding:0 14px;gap:7px}.wordmark{font-size:11px;letter-spacing:.5px}.mark{display:none}#clock{display:none}.topbar button{font-size:12px;padding:8px}.topbar kbd{display:none}.workspace{grid-template-columns:1fr}.monitorPanel{display:none}main{padding:20px}.cuehead{padding-bottom:15px}h1{font-size:19px}.notesBody{padding-right:5px}#lineText{font-size:var(--notes-size)}.transport{padding:10px 14px;gap:10px}.transportSecondary{gap:6px}.transportSecondary #replay{display:none}.transportSecondary #play{min-width:0}.transport kbd{display:none}.go{min-width:90px;justify-content:center;padding:14px;font-size:22px}.go span{display:none}.playbackInfo{flex:1;min-width:0}#audioStatus{max-width:140px;font-size:10px}footer{padding:0 14px;font-size:9px}footer span:last-child{display:none}.characterModes{grid-template-columns:1fr}.sectionHead{align-items:flex-start;flex-direction:column}.navigationGrid{grid-template-columns:170px 1fr}.sceneButton,.cueItem{padding:10px 15px}.sidehead,.movement{padding-left:15px;padding-right:15px}.dialogHead{padding:18px}.settingsBody{padding:0 18px}.speedControl{gap:9px}.speedControl label{font-size:12px}.speedControl input{width:80px}.clipedit{grid-template-columns:1fr}.noteheader{gap:7px;font-size:9px}#cueId{font-size:10px}}

@media(min-width:761px) and (max-width:1350px){.workspace{grid-template-columns:minmax(0,1fr) 260px}.monitorPanel{padding:20px 14px}.panelHead{margin-bottom:16px}.monitors{gap:16px}}

/* Performance readability and consistent control sizing. */
.topbar button,.transportSecondary button{min-height:44px}.textControls button{border-color:var(--control-border)}#speaker{flex-shrink:0;margin:8px 0 12px}.notesBody{padding-top:8px}#cueId,.previewCaption,.monitorlabel,.monitorlabel span:last-child,.cueItem small,.sceneButton .num,.characterMode small,#nextText strong{font-size:12px}.characterMode select,.sectionHead button,.settingsFooter a{font-size:14px}#cueKind{font-size:12px;letter-spacing:.3px}.eyebrow,.sidehead,.movement{letter-spacing:.8px}.settingsFooter a{text-decoration:underline;text-underline-offset:3px}#blackout{min-width:170px}.go{flex-shrink:0}#screenNotes::before{content:"Screen instructions";display:block;font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px}.playbackInfo{min-width:0}#audioStatus{overflow-wrap:anywhere}.notesBody:focus-visible{outline-offset:-2px}@media(max-width:760px){#blackout{min-width:145px}.topbar button{font-size:14px}.noteheader{flex-wrap:wrap}#cueKind{flex:1 1 100%}#cueId{margin-left:0}.textControls{margin-left:auto}#audioStatus{font-size:12px}h1{font-size:22px}.transportSecondary button{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Optional sharing layout; compact previews remain the startup default. */
#previewSize{font-size:12px;padding:7px 10px;min-height:32px}
.workspace.largePreviews{grid-template-columns:minmax(0,1fr) auto}
/* Previews stack in a right column sized from the screen height, so each stays 16:9 with no letterboxing and the script keeps the rest of the width. */
.monitorPanel{--preview-chrome:375px}.monitorPanel:has(#lightingCard:not([hidden])){--preview-chrome:435px}
.largePreviews .monitorPanel{padding:16px 20px}
.largePreviews .panelHead{flex-direction:row;align-items:center;margin-bottom:12px;gap:12px}
.largePreviews .panelHead .eyebrow{margin-right:auto}
.largePreviews .monitors{gap:12px;width:min(52vw,calc((100dvh - var(--preview-chrome)) / 2 * 16 / 9))}
.largePreviews main{padding:16px 28px;min-height:0}
.largePreviews .cuehead{padding-bottom:12px}
.largePreviews .noteheader{padding:8px 0}
.largePreviews #speaker{margin:4px 0 8px}
.largePreviews .notesBody{padding-bottom:16px}
@media(max-width:760px){#previewSize{display:none}}

/* Actor names must be readable at a glance, independently of dialogue zoom. */
#speaker,.beatSpeaker{font-size:22px;font-weight:750}#nextText strong{font-size:16px}
.lightingCard{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.lightingCard .desks{display:flex;gap:8px}.desk{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--control-border);border-radius:6px;font-size:13px;font-weight:650;color:var(--text-muted)}.desk.lit{background:var(--text);border-color:var(--text);color:var(--canvas)}.lightingUnset{font-size:12px;color:var(--text-muted)}.lightingToggle{display:block;margin:16px 0 8px}

/* Physical outputs: a centred upper screen above a single, very wide LED feed. */
.venueMonitors .upperMonitor{width:78%;margin-inline:auto}
.venueMonitors #wallPreview{aspect-ratio:4608/896}
.wallSections{display:grid;grid-template-columns:2048fr 512fr 2048fr;color:var(--text-muted);font:10px ui-monospace,monospace;text-align:center;margin-top:4px}
.wallSections span+span{border-left:1px solid var(--border)}
.venueMonitors .monitorlabel{flex-wrap:wrap;gap:5px;letter-spacing:0}
.largePreviews .venueMonitors{width:min(58vw,calc((100dvh - 390px) / .64))}
.monitorlabel [data-connected="true"]{color:var(--text)}
.outputLink{display:inline-flex;align-items:center;min-height:44px;color:var(--text);background:var(--surface);border:1px solid var(--control-border);border-radius:7px;padding:10px 15px;text-decoration:none;font-size:14px}
.outputLink:hover{background:var(--surface-hover)}
.outputLink:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
