@font-face{font-family:Inter;src:url('/assets/Inter.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ink:#25362f;--muted:#7b8580;--teal:#386b5c;--teal-light:#edf4ef;--line:#e3e7df;--paper:#f8f9f5;--white:#fff;--sans:Inter,Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:13px/1.5 var(--sans);font-optical-sizing:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #609b82;outline-offset:3px}button{color:inherit}a{color:var(--teal)}[hidden]{display:none!important}input[type=checkbox]{accent-color:var(--teal)}
.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:#f0f2eb;border-right:1px solid var(--line);padding:28px 18px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#314c3e;text-decoration:none;font-size:21px;font-weight:550;letter-spacing:-.8px;padding:0 10px 33px}.brand-sub{display:block;font-size:9px;letter-spacing:4px;font-weight:500;color:#819081;margin-top:-2px}.brand-mark{width:33px;height:36px;display:flex;align-items:center;justify-content:center;gap:4px}.brand-mark i{display:block;width:5px;background:#56826a;border-radius:8px;height:20px}.brand-mark i:nth-child(2){height:34px}.brand-mark i:last-child{height:26px}.library-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:650;letter-spacing:1.8px;color:#7a8778;padding:0 10px 15px}.count{font-size:10px;font-weight:550;letter-spacing:0;background:#e8ece4;border-radius:5px;padding:2px 6px;white-space:nowrap}.search-box{display:flex;align-items:center;gap:7px;background:#e8ece3;border-radius:7px;padding:7px 9px;margin-bottom:14px}.search-box>span{font-size:23px;line-height:20px;color:#85917f}.search-box input{border:0;background:none;outline:0;width:100%;font-size:11px}.project-list{overflow-y:auto;flex:1;scrollbar-width:thin}.project-item{width:100%;display:flex;align-items:flex-start;gap:10px;background:none;border:0;border-radius:8px;text-align:left;padding:11px 10px;margin-bottom:4px}.project-item:hover{background:#e7ece2}.project-item.selected{background:#dce7d9}.project-symbol{height:28px;width:28px;background:#e4e9df;border:1px solid #d6ded0;border-radius:7px;color:#719075;display:grid;place-items:center;font-size:13px;flex-shrink:0;margin-top:1px}.selected .project-symbol{background:#fafcf7;border-color:#bacbb3;color:#3f674a}.project-name{display:block;font-size:11px;font-weight:600;line-height:1.4}.project-meta{display:block;font-size:9px;color:#8b9387;margin-top:4px}.new-session{margin-top:18px;background:transparent;border:1px dashed #b9c6b1;border-radius:7px;font-size:12px;padding:11px;text-align:left;color:#617e5b}.new-session>span{padding-left:4px}.sidebar-footer{margin-top:24px;padding:14px 7px 0;border-top:1px solid #dfe5d8;display:flex;align-items:flex-start;gap:9px;font-size:10px;color:#5b755b}.sidebar-footer small{display:block;color:#939c8d;font-size:9px;margin-top:2px}.status-dot{display:inline-block;width:6px;height:6px;background:#79a580;border-radius:100%;margin-right:5px;flex-shrink:0;margin-top:4px}
.workspace{margin-left:232px;padding:0 30px 22px;max-width:2100px}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.breadcrumb{font-size:9px;letter-spacing:1.4px;color:#8f998e;white-space:nowrap}.breadcrumb span{margin:0 13px;color:#c0c7bb}.breadcrumb strong{font-size:11px;letter-spacing:0;font-weight:450;color:#71816f}.top-actions{display:flex;gap:9px;align-items:center}.save-state{font-size:10px;color:#7c8e73;margin-right:7px}.save-state.dirty{color:#a18450}.save-state.error{color:#b4513e}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;padding:9px 14px;border-radius:6px;font-size:11px;font-weight:550;text-decoration:none;white-space:nowrap}.button.primary{background:#386d5c;color:#fff;box-shadow:0 2px 3px #34594212}.button.primary:hover{background:#2e5d4e}.button.outline{background:transparent;border-color:#d3ddd0;color:#5c7756}.button.subtle{background:#eef1e9;color:#667b60}.button .arrow{font-size:16px}.icon-button{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:5px;font-size:20px;color:#8a9586;position:relative}.icon-button:hover{background:#e8eee3}.icon-button small{font-size:9px;position:absolute;top:9px;left:12px}.mobile-nav{display:none}
.session-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0 24px}.eyebrow{font-size:9px;font-weight:550;color:#92a08a;letter-spacing:2.1px;margin-bottom:8px}.session-title{display:block;background:transparent;color:#304333;border:0;width:100%;min-width:280px;max-width:900px;padding:0;outline:0;font-size:29px;font-weight:520;letter-spacing:-1.2px;line-height:1.3}.session-heading p{font-size:11px;color:#8c9588;margin:6px 0 0}.session-badges{display:flex;gap:7px;align-items:center}.pill{padding:5px 8px;background:#e9f0e5;color:#5c8057;border-radius:5px;font-size:9px;white-space:nowrap}.pill.muted{background:#efefea;color:#9b9f91}.validation{background:#fff0e9;color:#a95838;border:1px solid #efd8c9;padding:10px 14px;border-radius:7px;margin-bottom:14px;font-size:12px}.music-panel{display:flex;align-items:center;gap:13px;background:#f0f4eb;border:1px dashed #cedcc3;border-radius:8px;padding:14px 17px}.music-panel.dragover{background:#dae8d2;border-color:#6c9465}.music-icon{background:#e0ead8;color:#759667;border-radius:8px;width:36px;height:38px;display:grid;place-items:center;font-size:22px}.music-info{flex:1;min-width:0}.music-info strong{display:block;font-size:12px;font-weight:520;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-info span{display:block;font-size:10px;color:#8b9c7f;margin-top:2px}.transport{display:flex;align-items:center;gap:14px;padding:19px 0 21px}.play-button{width:35px;height:35px;border:0;border-radius:50%;background:#e5ede1;color:#52724b;font-size:13px;flex-shrink:0}.timeline{flex:1;min-width:0}.timeline-top{display:flex;justify-content:space-between;font-size:9px;color:#a7afa1;margin-bottom:6px}.time-current{color:#65805d;font-variant-numeric:tabular-nums}.time-end{font-variant-numeric:tabular-nums}.seek-track{height:23px;position:relative;border-bottom:2px solid #e2e9db;overflow:hidden}.seek-track img{position:absolute;width:100%;height:100%;object-fit:fill;opacity:.55}.seek-track input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.seek-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#66876416;border-right:2px solid #6d9164;pointer-events:none}
.editor-layout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(310px,375px);gap:22px;align-items:start}.editor-panel{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;min-width:0}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:55px;padding:12px 16px;border-bottom:1px solid #edf0e9}.panel-title{display:flex;align-items:center;gap:8px;white-space:nowrap}.panel-title h2{margin:0;font-size:12px;font-weight:600;letter-spacing:-.2px}.panel-title .count{background:#f0f3ec;color:#8b9881;font-size:9px}.tiny-icon{font-size:21px;color:#9aab90;line-height:16px}.editor-actions{display:flex;gap:9px;align-items:center}.small-action{border:0;background:transparent;color:#829577;padding:0;font-size:10px;white-space:nowrap}.small-action:hover,.text-button:hover{color:#335a35}.editor-actions .icon-button{font-size:16px;width:20px;height:20px}.reference-bar{display:flex;align-items:center;gap:9px;padding:10px 15px;background:#fcfdf9;border-bottom:1px solid #edf0e9;font-size:10px;color:#8d9986}.reference-bar label{display:flex;align-items:center;gap:5px;white-space:nowrap}.reference-bar input[type=checkbox]{margin:0}.reference-bar select{font-size:9px;max-width:140px;color:#8b9983;background:#f5f7f0;border:1px solid #e0e7d9;border-radius:4px;padding:3px}.cue-search{margin-left:auto;min-width:0}.cue-search input{border:0;background:transparent;outline:0;width:130px;font-size:10px}.column-labels{display:grid;grid-template-columns:114px 1fr 25px;gap:12px;padding:12px 15px 8px;color:#a9b1a0;font-size:8px;font-weight:550;letter-spacing:1.4px}.cue-list{height:calc(100vh - 505px);min-height:300px;max-height:1000px;overflow:auto;scrollbar-width:thin;scrollbar-color:#d9e1d2 transparent;padding:0 8px 12px}.cue-row{display:grid;grid-template-columns:106px minmax(0,1fr) 26px;gap:12px;margin:0 0 4px;padding:12px 7px;border:1px solid transparent;border-radius:6px;position:relative}.cue-row:hover{background:#fafcf6}.cue-row.selected{background:#f2f7ec;border-color:#d8e6cc}.cue-row.playing{box-shadow:inset 3px 0 #739a64}.cue-row.invalid{border-color:#da9b7e;background:#fff8f2}.cue-time{display:flex;flex-direction:column;gap:3px}.cue-number{font-size:9px;font-weight:600;color:#a0ae95;display:flex;gap:5px;align-items:center}.cue-number .dot{height:4px;width:4px;border-radius:50%;background:transparent}.playing .cue-number .dot{background:#739a64}.cue-time input{background:transparent;border:1px solid transparent;border-radius:3px;font-family:monospace;font-size:10px;width:99px;padding:2px 3px;color:#8d9c82}.cue-time input:hover,.cue-time input:focus{background:#fff;border-color:#d5e0cd}.cue-time .time-divider{font-size:9px;color:#bac3b2;line-height:4px;padding-left:35px}.cue-body{min-width:0}.cue-text{resize:vertical;min-height:66px;width:100%;padding:3px 0;line-height:1.65;font-size:12px;color:#56644f;background:transparent;border:0;outline:0}.cue-text:focus{color:#2b4430}.reference-text{font-size:10px;color:#9aa48e;line-height:1.6;padding-bottom:8px;margin-bottom:5px;border-bottom:1px dashed #d9e3d0}.row-tools{display:flex;flex-direction:column;gap:3px;align-items:center;opacity:0}.cue-row:hover .row-tools,.cue-row:focus-within .row-tools,.cue-row.selected .row-tools{opacity:1}.row-tools button{width:24px;height:23px;background:transparent;border:0;font-size:13px;color:#9aaa8d;border-radius:3px}.row-tools button:hover{background:#e1ead7;color:#4f7548}.editor-footer{display:flex;gap:10px;align-items:center;padding:10px 15px;border-top:1px solid #edf0e9;color:#a5b19b;font-size:9px}.editor-footer>span{flex:1}.editor-footer .status-dot{width:4px;height:4px}.text-button{border:0;background:none;padding:0;color:#7e9471;font-size:9px}.empty-list{padding:45px 20px;text-align:center;color:#9caa91;font-size:12px}
.preview-column{display:flex;flex-direction:column;gap:16px;min-width:0}.preview-panel,.appearance-panel,.exports-panel{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.preview-panel .panel-top{min-height:48px;padding:9px 14px}.preview-panel .panel-title h2{font-size:11px}.live-dot{width:5px;height:5px;background:#83a575;border-radius:50%}.preview-stage{background:#101d22;aspect-ratio:16/9;position:relative;margin:12px 12px 0;border-radius:4px;overflow:hidden}.preview-stage canvas{display:block;width:100%;height:100%;object-fit:contain}.presenter-hud{display:none}.preview-stage:fullscreen{border-radius:0;margin:0;width:100vw;height:100vh;aspect-ratio:auto;display:grid;place-items:center;background:#000}.preview-stage:fullscreen canvas{max-height:100vh;max-width:100vw;width:100%;object-fit:contain}.preview-stage:fullscreen .presenter-hud{position:absolute;bottom:20px;left:0;right:0;display:flex;gap:10px;justify-content:center;opacity:0;transition:opacity .2s}.preview-stage:fullscreen:hover .presenter-hud,.preview-stage:fullscreen:focus-within .presenter-hud{opacity:1}.preview-caption{display:flex;justify-content:space-between;padding:10px 13px 12px;font-size:8px;letter-spacing:1px;color:#a5b199}.preview-caption>span:last-child{letter-spacing:0;font-size:9px;font-variant-numeric:tabular-nums}.next-prompt{margin:0 12px 12px;background:#f6f8f1;border:1px solid #ecf0e3;border-radius:5px;padding:11px 12px}.next-label{display:flex;justify-content:space-between;font-size:8px;font-weight:600;letter-spacing:1.6px;color:#a3b194}.next-label span{font-weight:400;letter-spacing:0;font-size:9px;color:#8fa582}.next-prompt p{font-size:10px;line-height:1.7;color:#8a9b7c;margin:7px 0 0;max-height:68px;overflow:auto}.appearance-panel,.exports-panel{padding:15px}.section-label{font-size:8px;font-weight:600;letter-spacing:1.7px;color:#9aa98e;display:flex;align-items:center;justify-content:space-between;gap:8px}.themes{display:flex;gap:7px;margin:14px 0 16px}.theme{border:1px solid #e4e9dd;background:#fff;border-radius:5px;padding:6px 7px;font-size:9px;display:flex;align-items:center;gap:5px;color:#9ba88f;flex:1;justify-content:center}.theme.selected{border-color:#93ae80;background:#f5f8ee;color:#6c8859}.swatch{height:12px;width:12px;border-radius:3px;border:1px solid #0000000d}.swatch.midnight{background:#101d22}.swatch.black{background:#080a0b}.swatch.paper{background:#f4f1e9}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#93a285;font-size:10px;margin:13px 0}.setting-row>span{display:flex;align-items:center;gap:12px}.setting-row input[type=range]{accent-color:#87a171;width:116px;height:3px}.setting-row output{width:20px;color:#72915c;font-size:9px}.setting-row select{border:1px solid #e0e6d8;border-radius:4px;background:#fbfcf8;color:#82996f;padding:5px 8px;font-size:9px}.setting-divider{border-top:1px solid #edf0e8;margin-top:17px}.number-unit{border:1px solid #dfe7d5;border-radius:4px;padding:3px 6px;background:#fcfdf9}.number-unit input{border:0;background:none;width:57px;outline:0;text-align:right;color:#6d875c;font-size:10px}.number-unit>span{color:#a3b197;font-size:9px}.setting-help{color:#adb8a3;font-size:9px;line-height:1.7;margin:0}.ready-badge{font-size:6px;background:#eff4e8;letter-spacing:.5px;color:#91a57c;padding:3px 5px;border-radius:3px;white-space:nowrap}.empty-exports{font-size:10px;line-height:1.8;color:#abb7a0;margin:14px 0 2px}.job{margin-top:12px;padding-top:10px;border-top:1px solid #edf1e7}.job-top{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#829c6b}.job small{font-size:9px;color:#a4b295}.job-progress{height:3px;background:#edf2e6;border-radius:4px;overflow:hidden;margin:7px 0}.job-progress i{display:block;height:100%;background:#88a76f}.job a{font-size:10px;text-decoration:none;color:#4e7b5a}.job-error{color:#ad7157;font-size:9px;line-height:1.6}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#304e3d;color:#fff;padding:12px 20px;border-radius:7px;box-shadow:0 5px 30px #12281522;font-size:12px;z-index:100;max-width:80vw}.toast.error{background:#994b34}dialog{border:1px solid #d7e1cc;border-radius:12px;padding:26px;width:650px;max-width:90vw;box-shadow:0 20px 100px #15331c33;color:var(--ink)}dialog::backdrop{background:#18291966;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-heading h2{font-size:22px;font-weight:500;letter-spacing:-.7px;margin:0}.dialog-heading p{font-size:11px;color:#9aa88e}.dialog-search{border:1px solid #dce5d3;background:#f9fbf5;padding:10px 12px;border-radius:6px;width:100%;margin:10px 0;font-size:12px}.archive-list{max-height:50vh;overflow:auto}.archive-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;border:0;background:transparent;border-bottom:1px solid #edf1e7;padding:13px 4px;font-size:11px}.archive-item:hover{background:#f4f8ed}.archive-item small{display:block;font-size:9px;color:#9cac8d;margin-top:3px}.archive-item .pill{font-size:9px;flex-shrink:0}
@media(min-width:1800px){.workspace{padding-left:45px;padding-right:45px}.editor-layout{grid-template-columns:minmax(600px,1fr) 440px;gap:30px}.cue-text{font-size:14px}.preview-panel .preview-stage{margin:15px 15px 0}}
.draft-entry{margin-top:8px;background:#e5eddf;border-style:solid}.sidebar-footer .text-button{margin-top:9px;font-size:10px}.service-form{display:grid;gap:16px;margin-top:20px}.service-form>label{display:grid;gap:6px;color:#61765b;font-size:12px}.service-form>label>input,.service-form select{width:100%;padding:10px 12px;border:1px solid #dce5d3;border-radius:6px;background:#f9fbf5;color:var(--ink)}.key-state{font-size:10px;color:#8b9982}.remove-key{display:flex;align-items:center;gap:7px;font-size:10px;color:#8a9981}.provider-note{font-size:11px;line-height:1.8;color:#819176;background:#f2f6ed;border-radius:7px;padding:12px;margin:0}.form-actions{display:flex;justify-content:flex-end;gap:10px}.draft-history{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.draft-stage{font-size:11px;color:#8a9b7c;margin:5px 0}.draft-job-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:8px 0}.draft-job-actions a{font-size:11px}.draft-job-actions .button{padding:6px 10px}.source-review{display:flex;align-items:center;gap:12px;padding:10px 15px;border-bottom:1px solid #edf0e9;background:#f5f8f0;font-size:10px;color:#8a9b7c}.source-review audio{height:30px;min-width:120px;flex:1}.source-review>span{max-width:100px}#draftDialog{max-height:88vh;overflow:auto}#draftJobs{max-height:230px;overflow:auto}
@media(max-width:1250px){.sidebar{width:200px;padding-left:12px;padding-right:12px}.brand{font-size:18px;gap:8px}.workspace{margin-left:200px;padding:0 20px 20px}.editor-layout{grid-template-columns:minmax(360px,1fr) 300px;gap:14px}.session-title{font-size:24px;min-width:180px}.editor-actions{gap:7px}.editor-actions .small-action{font-size:9px}.panel-top{padding:12px}.reference-bar select{max-width:90px}.cue-search input{width:100px}.cue-row{grid-template-columns:96px 1fr 20px;gap:8px}.column-labels{grid-template-columns:104px 1fr 20px}.cue-time input{width:94px;font-size:9px}.save-state{font-size:9px;margin-right:0}.theme{padding:6px 3px;font-size:8px}.setting-row input[type=range]{width:90px}}
@media(max-width:1080px){.editor-layout{grid-template-columns:1fr}.preview-column{display:grid;grid-template-columns:1fr 1fr}.preview-panel{grid-row:span 2}.cue-list{height:440px;max-height:none}.session-badges .muted{display:none}.preview-column{order:-1}.preview-stage{margin:10px 10px 0}.appearance-panel{padding:14px}.preview-caption{padding:9px 12px}.exports-panel{min-height:100px}.session-heading{padding:23px 0}.breadcrumb{font-size:8px}.breadcrumb strong{font-size:10px}}
@media(max-width:760px){.sidebar{display:none}.sidebar.open{display:flex;width:250px;box-shadow:10px 0 50px #24362733}.workspace{margin-left:0;padding:0 15px 20px}.mobile-nav{display:inline-flex}.topbar{height:65px;gap:8px}.breadcrumb{display:none}.top-actions{margin-left:auto;gap:7px}.save-state{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.button{padding:8px 11px;font-size:10px}.session-heading{gap:10px}.session-title{font-size:23px;width:100%;min-width:0}.session-badges .pill{display:none}.eyebrow{font-size:7px}.music-panel{padding:12px;gap:10px}.music-info span{font-size:9px}.music-info strong{font-size:11px}.music-icon{width:29px;height:33px;font-size:18px}.chooseMusic{font-size:9px}.preview-column{grid-template-columns:1fr}.preview-panel{grid-row:auto}.appearance-panel{display:none}.preview-panel .next-prompt{display:none}.preview-stage{max-height:240px}.exports-panel{min-height:0}.empty-exports{margin:7px 0 0;font-size:9px}.transport{padding:15px 0}.timeline-top #timelineHint{font-size:7px}.panel-title h2{font-size:11px}.panel-title .count{font-size:8px}.editor-actions{gap:10px}.editor-actions #backupProject{display:none}.cue-search input{width:95px}.reference-bar select{max-width:100px}.cue-row{grid-template-columns:91px 1fr 20px}.column-labels{grid-template-columns:99px 1fr 20px}.cue-time input{width:88px;font-size:9px}.cue-text{font-size:12px}.row-tools{opacity:1}.editor-footer{font-size:8px}.cue-list{height:460px}}
.key-field{display:grid;gap:6px;color:#61765b;font-size:12px}.key-field>input{width:100%;padding:10px 12px;border:1px solid #dce5d3;border-radius:6px;background:#f9fbf5;color:var(--ink)}

/* Sign-in and owner settings share the editor's typography and controls. */
.login-page {min-height:100vh;display:grid;place-items:center;padding:24px;background:#f6f5f0;}
.login-card {width:min(100%,440px);background:white;padding:38px;border:1px solid #dddcd3;border-radius:16px;box-shadow:0 12px 50px #1627200c;}
.login-card h1 {font-size:30px;margin:12px 0;}
.login-card p {color:#62716b;line-height:1.6;}
.login-card form,.service-form {display:grid;gap:16px;}
.login-card label,.service-form>label {display:grid;gap:8px;font-size:13px;font-weight:600;}
.login-card input,.service-form>label>input,#workerToken {width:100%;box-sizing:border-box;padding:12px;border:1px solid #d9dfda;border-radius:7px;font:inherit;background:#fff;}
.login-card [hidden], [hidden] {display:none!important;}
#adminDialog {max-width:620px;}
#adminDialog h3 {margin-top:28px;}
#adminDialog .service-form {margin-top:16px;padding:16px;background:#f6f7f3;border-radius:8px;}
.admin-row {display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e2e5de;gap:16px;}
.admin-row small {display:block;margin-top:5px;color:#68776f;}
#newWorkerToken {margin-top:20px;padding:16px;background:#fff8dd;border-radius:8px;}
#workerToken {font-family:monospace;resize:vertical;}
.sidebar-footer .text-button {display:block;text-align:left;margin-top:8px;}
.job-meta {display:grid;gap:2px;margin:4px 0;}
.job-meta small {font-size:10px;color:#657761;}
