:root{color-scheme:dark;--surface: #121413;--surf-lowest: #1C1F1E;--surf-low: #212422;--surf: #252726;--surf-high: #2E3130;--surf-highest: #383B3A;--on-surface: #DCE5E4;--on-variant: #BEC8C9;--outline: #899394;--outline-variant: #6A7475;--primary: #09E989;--on-primary: #033922;--primary-container: #005232;--on-primary-container: #6FFCA8;--error: #FEB4AB;--error-container: #93000A;--warning: #F9D894;--warning-container: #65470B;--success: #89E689;--success-container: #174F17;--on-air: #FF5449;--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--r-2xl: 14px;--r-3xl: 16px;--r-4xl: 20px;--r-full: 999px;--motion-fast: .2s;--motion-std: .3s;--motion-emph: .6s}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-std: 0ms;--motion-emph: 0ms}}*{scrollbar-width:thin;scrollbar-color:var(--surf-highest) transparent}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.hidden,[hidden]{display:none!important}body{background:var(--surface);color:var(--on-surface);font:400 14px/20px var(--font-body);padding:12px 12px 72px;max-width:560px;margin:0 auto;-webkit-font-smoothing:antialiased}h2{font:600 14px/20px var(--font-body);display:flex;align-items:center;gap:6px}h2 .ms{color:var(--on-variant)}h3{font:600 14px/20px var(--font-body);margin:20px 0 8px}.hint{color:var(--on-variant);font-size:12px;line-height:16px}.label{font:500 12px/16px var(--font-body);color:var(--on-variant);margin:14px 0 6px}.ms{font-family:Material Symbols Rounded;font-size:20px;line-height:1;font-weight:400;font-style:normal;display:inline-flex;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;flex:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button{font-family:inherit}.top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.brand{font:700 16px/24px var(--font-display);color:var(--primary);white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;min-width:0;border:0;border-radius:var(--r-full);background:var(--surf-high);color:var(--on-variant);font:600 12px/16px var(--font-body);cursor:pointer}.chip #conn-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--outline);flex:none}.chip.ok{background:var(--success-container);color:var(--success)}.chip.ok .dot{background:var(--success)}.chip.wait{background:var(--warning-container);color:var(--warning)}.chip.wait .dot{background:var(--warning)}.chip.remote .dot{background:var(--primary)}.notice{margin-bottom:10px;padding:10px 12px;border-radius:var(--r-lg);background:var(--warning-container);color:var(--warning);font-size:12px;line-height:16px}.notice button{background:none;border:0;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;padding:0;margin-left:4px}body.role-remote .notice{background:var(--surf-high);color:var(--on-variant)}.seg{display:flex;background:var(--surf-low);border-radius:var(--r-md);padding:2px;gap:2px}.seg button{flex:1;min-height:32px;padding:4px 8px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--on-variant);font:600 12px/16px var(--font-body);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.seg button:hover{color:var(--on-surface)}.seg button.active{background:var(--surf-highest);color:var(--on-surface)}.seg-main{margin-bottom:10px;padding:3px;background:var(--surf-lowest)}.seg-main button{min-height:40px;font-size:14px}.seg-main button.active{background:var(--surf-high)}.seg-4 button.active{background:var(--primary);color:var(--on-primary)}.seg+.seg{margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border:0;border-radius:var(--r-md);font:600 14px/20px var(--font-body);color:var(--on-surface);background:transparent;cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) ease-in-out}.btn:disabled{opacity:.38;cursor:default}.btn-sm{height:32px;padding:0 10px;font-size:12px;line-height:16px}.btn-sm .ms{font-size:18px}.btn-lg{height:44px;padding:0 20px}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:#3bf0a2}.btn-tonal{background:var(--surf-high)}.btn-tonal:hover:not(:disabled){background:var(--surf-highest)}.btn-text{color:var(--on-variant);padding:0 8px}.btn-text:hover:not(:disabled){background:var(--surf-high);color:var(--on-surface)}.btn-danger{background:var(--error-container);color:var(--error)}.btn-danger-text{color:var(--error);padding:0 8px}.btn-icon{width:36px;padding:0;color:var(--on-variant);flex:none}.btn-icon.btn-sm{width:32px}.btn-icon.btn-lg{width:44px}.btn-icon:hover:not(:disabled){background:var(--surf-highest);color:var(--on-surface)}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.row.end{justify-content:flex-end;margin-top:20px}.row select{flex:1;min-width:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.grid-2 .field,.grid-4 .field{margin-top:0}.field{display:flex;flex-direction:column;gap:4px;margin-top:12px;font:500 12px/16px var(--font-body);color:var(--on-variant)}input[type=text],input[type=password],input[type=number],input[type=datetime-local],select{height:36px;width:100%;padding:0 10px;min-width:0;background:var(--surf-lowest);color:var(--on-surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);font:400 14px/20px var(--font-body)}input[type=number]{font-family:var(--font-mono);font-size:13px}input[type=color]{height:36px;width:64px;padding:2px;background:var(--surf-lowest);border:1px solid var(--outline-variant);border-radius:var(--r-md)}input:disabled,select:disabled{opacity:.5}input::placeholder{color:var(--outline)}.field+.hint,select+.hint{display:block;margin-top:4px}.switch-row{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:14px;cursor:pointer}.switch-row.small{margin:0;font:500 12px/16px var(--font-body);color:var(--on-variant);gap:8px}.switch{appearance:none;width:40px;height:24px;border-radius:var(--r-full);flex:none;position:relative;cursor:pointer;background:var(--surf-highest);border:1px solid var(--outline-variant);transition:background var(--motion-fast) ease-in-out}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--outline);transition:transform var(--motion-fast) ease-in-out}.switch:checked{background:var(--primary);border-color:var(--primary)}.switch:checked:after{transform:translate(16px);background:var(--on-primary)}.switch:disabled{opacity:.4;cursor:default}.switch-lg{width:52px;height:32px}.switch-lg:after{top:4px;left:4px;width:22px;height:22px}.switch-lg:checked:after{transform:translate(20px)}.card{background:var(--surf-low);border-radius:var(--r-2xl);padding:14px;margin-bottom:10px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;min-height:24px}.air-tag{display:inline-flex;align-items:center;gap:4px;height:16px;padding:0 6px;border-radius:var(--r-xs);background:var(--on-air);color:#fff;font:700 10px/16px var(--font-body);letter-spacing:.4px;white-space:nowrap}.scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.scene{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:84px;padding:8px;border:2px solid transparent;border-radius:var(--r-lg);background:var(--surf);color:var(--on-variant);cursor:pointer;text-align:center;transition:background var(--motion-fast) ease-in-out,border-color var(--motion-std) ease-in-out}.scene:hover{background:var(--surf-high);color:var(--on-surface)}.scene.on-air{border-color:var(--on-air);background:var(--surf-high);color:var(--on-surface)}.scene.applying{border-color:var(--warning)}.scene-name{font:600 12px/16px var(--font-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-key{position:absolute;top:4px;left:4px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-xs);background:#121413cc;color:var(--on-variant);font:500 10px/16px var(--font-mono)}.scene .air-tag{position:absolute;top:4px;right:4px}.layout-thumb{display:block;width:100%;height:auto;border-radius:3px}.layout-thumb .th-bg{fill:var(--surface)}.layout-thumb .th-slides{fill:var(--outline-variant)}.layout-thumb .th-cam{fill:currentColor;opacity:.8}.scene.on-air .th-cam{fill:var(--primary);opacity:1}.layout-thumb .th-label{display:none}.lt-rows{display:flex;flex-direction:column;gap:6px}.lt-row{display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 8px 6px 10px;background:var(--surf);border-radius:var(--r-lg);border-left:3px solid transparent}.lt-row.on-air{border-left-color:var(--on-air);background:var(--surf-high)}.num{width:24px;height:24px;flex:none;border-radius:var(--r-sm);background:var(--surf-highest);color:var(--on-variant);font:600 12px/24px var(--font-body);text-align:center}.num.ms{font-family:Material Symbols Rounded;font-weight:400;font-size:16px;line-height:24px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.lt-text{flex:1;min-width:0;display:flex;flex-direction:column}.lt-text strong{font:600 14px/20px var(--font-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lt-text small{font-size:12px;line-height:16px;color:var(--on-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lt-text small.why{color:var(--warning);white-space:normal}.lt-add{flex:1;display:flex;align-items:center;gap:6px;min-height:36px;background:none;border:0;color:var(--on-variant);font:500 12px/16px var(--font-body);cursor:pointer;text-align:left}.lt-add:hover{color:var(--on-surface)}.lt-row.empty{background:transparent;border:1px dashed var(--outline-variant);border-left-width:1px}.timer-face{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:12px}.timer-clock{font:500 44px/52px var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-1px}.timer-controls{display:flex;gap:8px}.timer-controls .btn-primary,.timer-controls #timer-toggle-btn{flex:1}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.card>.chip-row:first-of-type:not(#timer-quick){margin-top:0}.pill{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--r-full);background:var(--surf-high);color:var(--on-variant);font:600 12px/16px var(--font-body);cursor:pointer}.pill:hover{background:var(--surf-highest);color:var(--on-surface)}.pill.active{border-color:var(--primary);color:var(--on-surface);background:var(--surf-highest)}.pill i{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 1px #ffffff40;flex:none}.pill-lg{min-height:44px;padding:0 14px 0 10px;font-size:14px;color:var(--on-surface)}details.prep{background:var(--surf-low);border-radius:var(--r-2xl);margin-bottom:8px}details.prep>summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 14px;cursor:pointer;list-style:none}details.prep>summary::-webkit-details-marker{display:none}details.prep>summary:after{content:"chevron_right";font-family:Material Symbols Rounded;font-size:20px;color:var(--on-variant);margin-left:auto;transition:transform var(--motion-fast) ease-in-out}details.prep[open]>summary:after{transform:rotate(90deg)}.step{color:var(--on-variant)}.step.done{color:var(--success)}.prep-title{display:flex;flex-direction:column;min-width:0;font:600 14px/20px var(--font-body)}.prep-title small{font:400 12px/16px var(--font-body);color:var(--on-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prep-body{padding:0 14px 14px}.prep-body>:first-child{margin-top:0}.obs-only{display:none;padding:0 14px 14px}body.role-remote .needs-obs{display:none}body.role-remote .obs-only{display:block}.source-rows{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}.source-row{display:flex;align-items:center;gap:8px}.source-row select{flex:1}.frame-btn.on{background:var(--primary-container);color:var(--on-primary-container)}.frame-btn.suggest{position:relative;color:var(--warning)}.frame-btn.suggest:after{content:"";position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--warning)}.frame-spacer{width:36px;flex:none}.link{display:inline-flex;align-items:center;gap:4px;margin-top:12px;color:var(--on-variant);font-size:12px;line-height:16px;text-underline-offset:2px}.link:hover{color:var(--on-surface)}.link .ms{font-size:14px}.air-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border-radius:var(--r-md);background:var(--warning-container);color:var(--warning);font-size:12px;line-height:16px}.air-note span{flex:1;min-width:140px}.air-note .btn{background:var(--warning);color:var(--warning-container)}.preset-list{display:grid;grid-template-columns:1fr 1fr;gap:4px}.preset-slot{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:32px;padding:4px 8px;border:1px solid transparent;border-radius:var(--r-md);background:var(--surf);color:var(--on-variant);font:500 12px/16px var(--font-body);cursor:pointer;text-align:left;overflow:hidden}.preset-slot.active{border-color:var(--primary);color:var(--on-surface);background:var(--surf-high)}.banner-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.sheet-back{position:fixed;inset:0;z-index:900;display:flex;align-items:flex-end;justify-content:center;background:#0009}.sheet{width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;background:var(--surf-high);border-radius:var(--r-4xl) var(--r-4xl) 0 0}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 10px 6px 18px}.sheet-head h2{font:600 16px/24px var(--font-display)}.sheet-body{overflow-y:auto;padding:0 18px 12px}.sheet-body>:first-child{margin-top:4px}.sheet-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px 14px;border-top:1px solid var(--surf-highest)}.sheet .pill,.sheet .seg{background:var(--surf)}details.more{margin-top:16px}details.more>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;color:var(--on-variant);font:600 12px/16px var(--font-body);min-height:32px}details.more>summary::-webkit-details-marker{display:none}.fr-stage{position:relative;margin:10px 0 4px;background:#000;border-radius:var(--r-sm);overflow:hidden;min-height:120px;-webkit-user-select:none;user-select:none;touch-action:none;line-height:0}.fr-img{display:block;width:100%;height:auto;pointer-events:none}.fr-empty{display:none;padding:24px 16px;text-align:center;line-height:16px}.fr-stage.no-img .fr-img,.fr-stage.no-img .fr-box{display:none}.fr-stage.no-img .fr-empty{display:block}.fr-box{position:absolute;border:2px solid var(--primary);box-shadow:0 0 0 9999px #0000009e}.fr-h{position:absolute;background:var(--primary);border-radius:3px}.fr-h:after{content:"";position:absolute;inset:-10px}.fr-h[data-h=t],.fr-h[data-h=b]{left:calc(50% - 16px);width:32px;height:6px;cursor:ns-resize}.fr-h[data-h=l],.fr-h[data-h=r]{top:calc(50% - 16px);width:6px;height:32px;cursor:ew-resize}.fr-h[data-h=t]{top:-4px}.fr-h[data-h=b]{bottom:-4px}.fr-h[data-h=l]{left:-4px}.fr-h[data-h=r]{right:-4px}.fr-h[data-h=tl],.fr-h[data-h=tr],.fr-h[data-h=bl],.fr-h[data-h=br]{width:12px;height:12px}.fr-h[data-h=tl]{top:-6px;left:-6px;cursor:nwse-resize}.fr-h[data-h=br]{bottom:-6px;right:-6px;cursor:nwse-resize}.fr-h[data-h=tr]{top:-6px;right:-6px;cursor:nesw-resize}.fr-h[data-h=bl]{bottom:-6px;left:-6px;cursor:nesw-resize}dialog.ask{margin:auto;border:0;border-radius:var(--r-4xl);padding:22px;width:min(380px,calc(100vw - 24px));background:var(--surf-high);color:var(--on-surface)}dialog.ask::backdrop{background:#0009}dialog.ask h2{font:600 18px/24px var(--font-display);margin-bottom:6px}dialog.ask p{color:var(--on-variant);font-size:14px;line-height:20px;overflow-wrap:anywhere}.toast{position:fixed;left:12px;right:12px;bottom:12px;z-index:1200;max-width:536px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:var(--r-lg);background:var(--on-surface);color:var(--surface);font:500 14px/20px var(--font-body);box-shadow:0 4px 16px #00000073}body:has(.sheet-back) .toast{bottom:auto;top:12px}.toast.err{background:var(--error-container);color:var(--error)}.toast button{background:none;border:0;color:inherit;font:700 14px/20px var(--font-body);text-decoration:underline;cursor:pointer;white-space:nowrap}.pos-popup{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#0009;z-index:1000}.pos-popup.open{display:flex}.pos-popup-card{background:var(--surf-high);padding:18px;border-radius:var(--r-4xl);width:min(320px,calc(100vw - 24px));color:var(--on-surface)}.pos-popup-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font:600 14px/20px var(--font-body)}.pos-popup-card button{min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--r-md);background:var(--surf);color:var(--on-variant);font:600 12px/16px var(--font-body);cursor:pointer}.pos-popup-card button:hover{color:var(--on-surface);border-color:var(--outline-variant)}.pos-popup-card button.primary{background:var(--primary);color:var(--on-primary)}.pos-mini{position:relative;width:100%;aspect-ratio:16/9;background:var(--surface);border-radius:var(--r-sm);margin-bottom:8px;overflow:hidden}.pos-mini-box{position:absolute;left:40%;top:60%;width:20%;height:14%;background:var(--primary);border-radius:2px}.pos-coords{font:400 12px/16px var(--font-mono);color:var(--on-variant);text-align:center}.pos-arrows{display:grid;justify-items:center;gap:4px;margin:8px 0}.pos-arrows .arrow-mid{display:flex;gap:40px}.pos-arrows .arrow{width:44px;height:36px;font-size:16px}.pos-steps,.pos-actions,.pos-row{display:flex;gap:6px;margin-top:10px;align-items:center;flex-wrap:wrap}.pos-row label{font-size:12px;color:var(--on-variant)}.pos-row .btn-group{display:flex;gap:6px}.pos-steps .step.active,.pos-row [data-anchor].active{border-color:var(--primary);color:var(--on-surface)}.pos-actions{justify-content:flex-end}
