:root{color-scheme:dark;--bg: #070a0f;--surface: #0d1117;--surface-2: #131820;--surface-3: #1a2030;--line: #1e2535;--line-2: #252e40;--text: #e2e8f0;--text-2: #c8d1de;--muted: #7a8699;--accent: #38bdf8;--accent-2: #0ea5e9;--accent-dim: rgba(56, 189, 248, .12);--good: #34d399;--good-dim: rgba(52, 211, 153, .15);--warn: #f59e0b;--warn-dim: rgba(245, 158, 11, .12);--danger: #f87171;--danger-dim: rgba(248, 113, 113, .12);--purple: #a78bfa;--purple-dim: rgba(167, 139, 250, .12);--radius: 10px;--radius-sm: 7px;--radius-lg: 14px}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background:var(--bg);background-image:radial-gradient(ellipse 80% 40% at 20% -10%,rgba(56,189,248,.06) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 100%,rgba(167,139,250,.04) 0%,transparent 60%);color:var(--text);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease}input,textarea{transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus{outline:none;border-color:var(--accent-2)!important;box-shadow:0 0 0 3px #0ea5e92e!important}button:disabled{opacity:.45;cursor:not-allowed}.login-shell{height:100%;display:grid;place-items:center}.login-card{width:min(400px,92vw);background:var(--surface);border:1px solid var(--line-2);border-radius:18px;padding:32px 28px;display:grid;gap:14px;box-shadow:0 0 0 1px #ffffff08,0 24px 48px #00000080}.login-card h1{margin:0;font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--text),var(--muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-card p{margin:0;color:var(--muted);font-size:.9rem}.login-card input,.login-card button{height:44px;border-radius:var(--radius);border:1px solid var(--line-2);padding:0 14px}.login-card input{background:var(--surface-2);color:var(--text)}.login-card button{border:none;background:linear-gradient(135deg,#0ea5e9,#6366f1);color:#fff;font-weight:600;cursor:pointer;letter-spacing:.3px;box-shadow:0 4px 14px #0ea5e94d}.login-card button:hover{box-shadow:0 4px 20px #0ea5e973;filter:brightness(1.08)}.login-card small{color:var(--danger);font-size:.84rem}.app-shell{height:100%;display:grid;grid-template-rows:64px auto auto minmax(0,1fr)}.topbar{border-bottom:1px solid var(--line);background:#070a0fd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar-left{display:flex;align-items:center;gap:12px}.topbar h1{margin:0;font-size:.97rem;font-weight:600;letter-spacing:.2px;color:var(--text-2)}.topbar-metrics{display:flex;gap:6px;font-size:.83rem;align-items:center}.topbar-metrics span{color:var(--muted);padding:3px 8px;border-radius:20px;border:1px solid transparent}.topbar-metrics .live{color:var(--good);background:var(--good-dim);border-color:#34d39940;font-weight:600}.topbar-metrics .live:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--good);margin-right:5px;animation:pulse-dot 1.8s ease-in-out infinite}.topbar-metrics .offline{color:var(--muted)}.topbar-profile{color:var(--text-2)!important;font-weight:500;border-color:var(--line)!important;background:var(--surface-2)!important}.topbar-metrics .synced{color:var(--good)}.topbar-metrics .pending{color:var(--warn);background:var(--warn-dim);border-color:#f59e0b40}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.ghost-btn{border:1px solid var(--line-2);background:transparent;color:var(--muted);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;font-size:.88rem}.ghost-btn:hover{border-color:var(--accent-2);color:var(--text);background:var(--accent-dim)}.toast-stack{position:fixed;top:74px;right:16px;z-index:1200;width:min(520px,calc(100vw - 24px));display:grid;gap:8px}.toast-box{border-radius:var(--radius-sm);padding:10px 12px;font-size:.88rem;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 10px 28px #00000059}.toast-success{border:1px solid rgba(52,211,153,.3);background:#071714eb;color:#6ee7b7}.toast-error{border:1px solid rgba(248,113,113,.3);background:#230c0cf0;color:#fca5a5}.toast-close{border:1px solid var(--line-2);background:#00000047;color:var(--text-2);width:24px;height:24px;line-height:1;border-radius:6px;cursor:pointer;padding:0;font-size:.95rem}.toast-close:hover{border-color:var(--accent-2);color:var(--text)}.module-tabs{grid-row:3;display:flex;align-items:center;gap:4px;padding:12px 20px 0}.app-shell>section{grid-row:4;min-height:0}.module-tabs button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:var(--radius-sm);padding:7px 16px;cursor:pointer;font-size:.9rem;font-weight:500;position:relative}.module-tabs button:hover{color:var(--text-2);background:var(--surface-2)}.module-tabs button.active{border-color:var(--line-2);color:var(--accent);background:var(--accent-dim);font-weight:600}.layout{min-height:0;display:grid;grid-template-columns:290px 1fr}.layout.sidebar-hidden{grid-template-columns:0 1fr}.sidebar{border-right:1px solid var(--line);padding:14px;overflow:auto;background:#070a0f99;transition:transform .22s ease,opacity .22s ease;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.sidebar.is-closed{transform:translate(-105%);opacity:0;pointer-events:none}.collapsible-head{margin-top:8px}.collapsible-head .ghost-btn{border:none;padding:0}.sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sidebar-head h2{margin:0;font-size:.9rem;text-transform:uppercase;color:var(--muted)}.scene-list{display:grid;gap:8px}.scene-item{text-align:left;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:var(--radius);padding:10px 12px;cursor:pointer;display:grid;gap:5px;transition:border-color .15s,background .15s}.scene-item:hover{border-color:var(--line-2);background:var(--surface-3)}.scene-item small{color:var(--muted);font-size:.8rem}.scene-item input{border:1px solid var(--line-2);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:6px 10px;width:100%;font-size:.9rem}.scene-item.active{border-color:#38bdf880;background:var(--accent-dim);box-shadow:0 0 0 1px #38bdf826,inset 0 0 0 1px #38bdf80d}.alerts-box{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:8px}.alerts-box h3{margin:0;font-size:.86rem;color:var(--muted);text-transform:uppercase}.timeline-list{margin-top:12px;display:grid;gap:10px}.timeline-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.timeline-loop{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.8rem}.timeline-editor{margin-top:8px;display:grid;gap:8px}.timeline-step{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:8px;display:grid;gap:6px}.timeline-step-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem}.timeline-step-grid{display:grid;grid-template-columns:1fr 110px 1fr;gap:6px}.timeline-step-grid select,.timeline-step-grid input{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:6px 8px;font-size:.82rem}.timeline-transition-presets{display:flex;gap:6px;flex-wrap:wrap}.timeline-transition-presets button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:5px 8px;font-size:.78rem;cursor:pointer}.timeline-transition-presets button:hover{border-color:var(--accent-2);color:var(--accent)}.timeline-transition-custom{display:grid;gap:6px}.timeline-transition-custom label{display:grid;gap:4px;color:var(--muted);font-size:.78rem}.timeline-transition-custom textarea{width:100%;border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:7px 9px;resize:vertical;min-height:72px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.78rem;line-height:1.5}.timeline-step-actions{display:flex;gap:6px;justify-content:flex-end}.timeline-step-actions button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:4px 8px;font-size:.8rem;cursor:pointer}.timeline-editor-actions{display:flex;gap:6px}.editor{min-width:0;min-height:0;padding:16px;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:12px}.editor.preview-compact,.editor.preview-mini{grid-template-rows:auto auto auto auto minmax(0,1fr)}.editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.scene-name{width:240px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 10px}.editor-actions{display:flex;gap:6px;flex-wrap:wrap}.editor-actions button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:7px 13px;cursor:pointer;font-size:.87rem;font-weight:500}.editor-actions button:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}.editor-actions button.btn-primary{background:linear-gradient(135deg,var(--accent-2),#6366f1);border-color:transparent;color:#fff;box-shadow:0 2px 8px #0ea5e940}.editor-actions button.btn-primary:hover{filter:brightness(1.1);box-shadow:0 2px 14px #0ea5e966}.editor-actions button.btn-danger{border-color:#f871714d;color:var(--danger);background:var(--danger-dim)}.editor-actions button.btn-danger:hover{border-color:#f8717199;background:#f8717133}.editor-actions button.btn-activate{border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-weight:600;box-shadow:0 2px 8px #10b9814d}.editor-actions button.btn-activate:hover{filter:brightness(1.1);box-shadow:0 2px 14px #10b98173}.preview-toolbar{display:flex;gap:16px;align-items:center;color:var(--muted);font-size:.86rem}.preview-toolbar label{display:flex;gap:6px;align-items:center}.preview-toolbar select{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:5px 8px}.preview-wrap{display:grid;grid-template-columns:1fr;gap:12px}.preview-wrap.preview-compact{max-width:960px}.preview-wrap.preview-mini{max-width:700px}.preview-wrap.preview-compact,.preview-wrap.preview-mini{width:100%}.preview-wrap.preview-compact.with-mirror{max-width:1240px}.preview-wrap.preview-mini.with-mirror{max-width:980px}.preview-wrap.with-mirror{grid-template-columns:1fr 1fr}.preview-viewport,.overlay-viewport{position:relative;width:100%;aspect-ratio:16 / 9;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#000}.preview-stage{position:relative;width:1280px;height:720px;transform-origin:top left;border:none;background-image:linear-gradient(to right,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.05) 1px,transparent 1px);background-size:20px 20px;border-radius:0;overflow:hidden}.preview-stage.no-grid{background-image:none}.local-alert-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;box-shadow:none;border-radius:0;pointer-events:none;z-index:99999;background:transparent}.local-alert-title{font-size:.95rem;font-weight:800;color:#e0f2fe;margin-bottom:4px}.local-alert-message{color:#f8fafc;font-size:.88rem;line-height:1.35}.layer-box{border:1px solid rgba(14,165,233,.85);background:#0ea5e929;border-radius:8px;color:#bae6fd;padding:8px}.layer-box.selected{border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b66}.layer-box.locked{border-style:dashed;background:#99a2b333}.layer-title{font-weight:700;font-size:.85rem}.layer-type{font-size:.78rem;color:#cbd5e1}.overlay-frame{width:1280px;height:720px;transform-origin:top left;border:none;background:#000;display:block}.bottom-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;min-height:0}.layers-table{border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--surface);min-height:240px}.layer-main{display:grid;gap:4px;flex:1}.layer-main input{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:7px 10px;font-size:.88rem}.layer-main small{color:var(--muted);font-size:.8rem}.layer-controls{display:grid;gap:6px;align-content:center}.layer-controls label{color:var(--muted);display:flex;align-items:center;gap:6px;font-size:.84rem}.layer-controls button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:5px 8px;cursor:pointer;font-size:.82rem;transition:all .15s}.layer-controls button:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}.props-panel{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);padding:14px;min-height:240px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.props-empty{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}.props-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.props-grid label{display:grid;gap:4px;color:var(--muted);font-size:.82rem;font-weight:500}.props-grid input{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:7px 8px}.z-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px}.props-line{margin-top:10px;display:grid;gap:8px;color:var(--muted);font-size:.86rem}.settings-shell{padding:20px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));overflow:auto;align-content:start;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.settings-card{border:1px solid var(--line-2);background:var(--surface);border-radius:var(--radius-lg);padding:20px;display:grid;gap:14px;align-content:start;box-shadow:0 1px #ffffff05}.settings-card h2{margin:0;font-size:1rem;font-weight:600;color:var(--text)}.settings-card p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.settings-card button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;font-size:.88rem;font-weight:500}.settings-card button:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}.settings-list{display:grid;gap:10px}.settings-row{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius);padding:12px;display:grid;gap:8px}.settings-row summary{cursor:pointer;list-style:none}.settings-row summary::-webkit-details-marker{display:none}.settings-row input{border:1px solid var(--line-2);background:var(--surface-3);color:var(--text);border-radius:var(--radius-sm);padding:8px 10px;width:100%}.settings-input{display:grid;gap:5px;color:var(--muted);font-size:.84rem;font-weight:500}.settings-input input,.settings-input select{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:9px 12px}.settings-row-title{font-size:.85rem;font-weight:700;color:var(--text)}.settings-inline{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.84rem;font-weight:500}.settings-inline.compact-inline{font-size:.8rem;font-weight:500;color:var(--muted)}.settings-help{margin:0;color:var(--muted);font-size:.82rem}.chat-command-row{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius);padding:10px;display:grid;gap:8px;grid-template-columns:1fr 1fr auto auto;align-items:center}.chat-command-row input,.chat-command-row select{border:1px solid var(--line-2);background:var(--surface-3);color:var(--text);border-radius:var(--radius-sm);padding:8px 10px}.twitch-test-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(140px,1fr))}.device-preview-grid{display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 220px;align-items:center}.device-preview-video-wrap{position:relative;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:#05070c;overflow:hidden}.device-preview-video{display:block;width:100%;aspect-ratio:16 / 9;background:#000;object-fit:cover}.device-preview-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:.82rem;color:var(--muted);background:#05070cc7}.device-meter-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-3);padding:10px;display:grid;gap:10px}.device-meter-head{display:flex;justify-content:space-between;gap:8px;color:var(--text-2);font-size:.83rem}.device-meter-track{position:relative;width:100%;height:12px;border-radius:999px;background:#0f172ad9;overflow:hidden;border:1px solid var(--line)}.device-meter-fill{height:100%;width:0;background:linear-gradient(90deg,#0ea5e9,#22d3ee,#34d399);transition:width .1s linear}@media (max-width: 1100px){.chat-command-row,.twitch-test-grid,.device-preview-grid{grid-template-columns:1fr}}.status-ok{color:#34d399;font-weight:600}.status-warn{color:#fbbf24;font-weight:600}.status-error{color:#f87171;font-size:.86rem}.twitch-diag-list{max-height:360px;overflow:auto}.twitch-diag-row{gap:6px;padding:10px}.twitch-diag-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.twitch-diag-details{margin:0;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-2);padding:8px;font-size:.76rem;white-space:pre-wrap;word-break:break-word}.user-card{max-width:440px}.user-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--accent-2),#6366f1);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#fff;box-shadow:0 0 0 3px #38bdf833;flex-shrink:0}.user-info-row{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.user-info-text{display:grid;gap:3px}.user-info-text strong{font-size:1.05rem;font-weight:600;color:var(--text)}.user-info-text small{color:var(--muted);font-size:.82rem}.user-section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin:0}.btn-save{border:none;background:linear-gradient(135deg,var(--accent-2),#6366f1);color:#fff;border-radius:var(--radius-sm);padding:9px 18px;cursor:pointer;font-size:.88rem;font-weight:600;box-shadow:0 2px 10px #0ea5e94d;align-self:start}.btn-save:hover{filter:brightness(1.1);box-shadow:0 2px 16px #0ea5e973}.btn-logout{border:1px solid rgba(248,113,113,.25);background:var(--danger-dim);color:var(--danger);border-radius:var(--radius-sm);padding:9px 18px;cursor:pointer;font-size:.88rem;font-weight:500}.btn-logout:hover{border-color:#f8717180;background:#f871712e}.user-actions{display:flex;gap:8px;margin-top:4px}.layer-row{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}.layer-row:hover{background:var(--surface-2)}.layer-row.selected{background:#0ea5e91f}.layer-row:last-child{border-bottom:none}.props-panel h3{margin:0 0 12px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.props-panel textarea{width:100%;border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:8px 10px;resize:vertical;min-height:72px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.6}.z-actions button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:8px;cursor:pointer;font-size:.84rem;transition:all .15s}.z-actions button:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}.template-card{text-align:left;border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:8px;display:grid;gap:3px;cursor:pointer;transition:all .15s}.template-card:hover{border-color:var(--accent-2);background:var(--accent-dim)}.template-card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px #0ea5e973}.template-card strong{font-size:.83rem}.template-card small{color:var(--muted);font-size:.74rem;line-height:1.3}.template-actions{display:flex;gap:8px;margin-bottom:8px}.template-actions button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:7px 10px;cursor:pointer;font-size:.82rem}.template-actions button:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}.upload-row{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.btn-upload{flex:1;min-width:160px;padding:8px 14px;background:var(--purple-dim);border:1px dashed var(--purple);color:var(--purple);border-radius:var(--radius-sm);font-size:.84rem;cursor:pointer;transition:all .15s}.btn-upload:hover:not(:disabled){background:#a78bfa38;border-style:solid}.btn-upload:disabled{opacity:.55;cursor:not-allowed}.btn-upload.secondary{background:var(--surface-2);border:1px solid var(--line-2);color:var(--text-2)}.media-config-grid{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.media-config-grid label{display:grid;gap:6px;color:var(--muted);font-size:.82rem}.media-config-grid select{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:7px 8px}.media-flags{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;color:var(--muted);font-size:.82rem}.media-flags label{display:flex;align-items:center;gap:6px}.media-library-head{margin-top:10px;display:grid;gap:8px}.media-library-head strong{font-size:.84rem;color:var(--text-2)}.media-library-head input{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:7px 9px}.media-library-list{border:1px solid var(--line);border-radius:var(--radius-sm);background:#05090f99;max-height:220px;overflow:auto;margin-top:8px;padding:6px;display:grid;gap:6px}.media-empty{margin:4px;color:var(--muted);font-size:.82rem}.media-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:7px;display:grid;gap:6px}.media-item-main{display:grid;gap:2px;min-width:0}.media-item-main strong{font-size:.84rem;color:var(--text)}.media-item-main small{color:var(--muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-kind{font-size:.7rem;text-transform:uppercase;color:#7dd3fc}.media-item-actions{display:flex;gap:6px}.media-item-actions button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:4px 8px;font-size:.78rem;cursor:pointer}.media-item-actions button:hover{border-color:var(--accent-2);color:var(--accent)}.media-item-actions .danger-btn{border-color:#f8717159;color:var(--danger);background:var(--danger-dim)}.media-item-actions .danger-btn:hover:not(:disabled){border-color:#f87171a6;color:#fecaca;background:#f8717133}.alert-item{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius-sm);padding:10px;display:grid;gap:8px;font-size:.88rem}.alert-fields{display:grid;gap:6px}.alert-field{display:grid;gap:4px}.alert-field span{color:var(--muted);font-size:.75rem}.alert-field small{color:var(--muted);font-size:.7rem;line-height:1.35}.alert-field input,.alert-field textarea{border:1px solid var(--line-2);background:var(--surface);color:var(--text-2);border-radius:8px;padding:7px 9px;font-size:.83rem}.alert-field textarea{min-height:56px;resize:vertical}.alert-field-duration input{max-width:110px}.alert-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.alert-visual-actions{display:flex;gap:6px;flex-wrap:wrap}.alert-visual-editor{display:grid;gap:6px}.alert-action-btn{border:1px solid var(--line-2);background:var(--surface);color:var(--text-2);border-radius:var(--radius-sm);padding:6px 10px;cursor:pointer;font-size:.8rem}.alert-action-btn:hover:not(:disabled){border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}.alert-action-btn.btn-test{border-color:#facc1559;color:#facc15}.alert-action-btn.btn-dispatch{border-color:#34d39959;color:var(--good)}.alert-action-btn:disabled{opacity:.6;cursor:not-allowed}.alert-delete-btn{border:1px solid rgba(248,113,113,.3);background:var(--danger-dim);color:var(--danger);cursor:pointer;font-size:1rem;line-height:1;padding:6px 9px;border-radius:var(--radius-sm)}.alert-delete-btn:hover{border-color:#f8717199;background:#f8717133}.alerts-empty{margin:0;color:var(--muted);font-size:.83rem;text-align:center;padding:8px 0}.scene-item-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.scene-live-badge{font-size:.65rem;font-weight:700;letter-spacing:.6px;color:var(--good);background:var(--good-dim);border:1px solid rgba(52,211,153,.3);border-radius:20px;padding:1px 6px;flex-shrink:0}.sidebar-head button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2);border-radius:var(--radius-sm);padding:5px 10px;cursor:pointer;font-size:.83rem;font-weight:500}.sidebar-head button:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-dim)}@media (max-width: 1380px){.preview-wrap,.bottom-grid{grid-template-columns:1fr}}@media (max-width: 1200px){.layout{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.sidebar.is-closed{display:none}.editor-head{flex-direction:column;align-items:flex-start}.editor-actions{flex-wrap:wrap}.media-config-grid{grid-template-columns:1fr}}
