:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--hue-accent:78;--sat-accent:90%;--light-accent:66%;--accent:hsl(var(--hue-accent), var(--sat-accent), var(--light-accent));--accent-strong:hsl(var(--hue-accent), 100%, 75%);--accent-subtle:hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .12);--accent-border:hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .32);--accent-ink:hsl(var(--hue-accent), 100%, 7%);--hue-canvas:140;--canvas:hsl(var(--hue-canvas), 12%, 6%);--surface-1:hsl(var(--hue-canvas), 14%, 9%);--surface-2:hsl(var(--hue-canvas), 13%, 12%);--surface-3:hsl(var(--hue-canvas), 12%, 16%);--surface-4:hsl(var(--hue-canvas), 11%, 20%);--surface-glass:hsla(var(--hue-canvas), 14%, 9%, .78);--line-subtle:hsl(var(--hue-canvas), 9%, 17%);--line:hsl(var(--hue-canvas), 10%, 22%);--line-bright:hsl(var(--hue-canvas), 12%, 30%);--ink:hsl(var(--hue-canvas), 20%, 94%);--muted:hsl(var(--hue-canvas), 10%, 66%);--faint:hsl(var(--hue-canvas), 8%, 46%);--orange:#ffb24c;--orange-subtle:#ffb24c1f;--orange-border:#ffb24c4d;--danger:#ff675c;--danger-subtle:#ff675c1f;--danger-border:#ff675c4d;--blue:#70bfff;--blue-subtle:#70bfff1f;--blue-border:#70bfff4d;--success:#36e27e;--shadow-sm:0 2px 8px #00000052;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 24px 70px #000000a6;--shadow-accent:0 0 20px hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .2);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:9999px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--titlebar-left:max(0px, env(titlebar-area-x,0px), env(safe-area-inset-left,0px));--titlebar-right:max(0px, calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw)), env(safe-area-inset-right,0px));--titlebar-top:max(0px, env(titlebar-area-y,0px), env(safe-area-inset-top,0px));--titlebar-height:max(0px, env(titlebar-area-height,0px));--wco-visible:0;--wco-left:0px;--wco-right:0px;--wco-top:0px;--wco-height:0px}*{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--canvas);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:radial-gradient(ellipse 60% 40% at 50% -10%, hsla(var(--hue-accent), 90%, 66%, .08), transparent 70%), radial-gradient(circle at 90% 90%, #70bfff0a, transparent 40%), var(--canvas);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14px;line-height:1.5}:focus-visible{box-shadow:var(--shadow-accent);outline:2px solid var(--accent)!important;outline-offset:2px!important}button,input,select,textarea{color:inherit;font:inherit}button,select{cursor:pointer}button:disabled,select:disabled,input:disabled{cursor:not-allowed;opacity:.45}a{color:var(--accent);text-decoration:none;transition:opacity .15s}a:hover{opacity:.85}.app-shell{height:100dvh;max-height:100dvh;padding:0 var(--space-5);flex-direction:column;max-width:1720px;margin:0 auto;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line-subtle);align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-2) 0;padding-left:max(var(--titlebar-left), var(--wco-left,0px));padding-right:max(var(--titlebar-right), var(--wco-right,0px));padding-top:max(var(--space-2), var(--titlebar-top), var(--wco-top,0px));z-index:20;-webkit-app-region:drag;app-region:drag;grid-template-columns:auto minmax(200px,1fr) auto;display:grid;position:relative}.topbar button,.topbar a,.topbar select,.topbar input,.topbar [role=button],.topbar [role=combobox],.topbar [role=option],.topbar .button,.topbar .brand,.topbar .custom-select-container,.topbar .custom-select-trigger,.topbar .custom-select-dropdown,.topbar .connection-pill{-webkit-app-region:no-drag;app-region:no-drag}.brand{align-items:center;gap:var(--space-3);color:var(--ink);text-decoration:none;transition:transform .15s;display:inline-flex}.brand:hover{transform:translateY(-1px)}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-radius:var(--radius-sm);color:var(--accent-ink);letter-spacing:-.04em;width:34px;height:34px;box-shadow:var(--shadow-accent);justify-content:center;align-items:center;font-size:12px;font-weight:900;display:inline-flex;position:relative}.brand-mark:before,.brand-mark:after{background:var(--accent);content:"";border-radius:2px;width:2px;height:6px;position:absolute;top:-3px;transform:rotate(26deg)}.brand-mark:before{left:10px}.brand-mark:after{right:10px;transform:rotate(-26deg)}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-text strong{letter-spacing:-.02em;font-size:16px;font-weight:800}.brand-text small{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:2px;font-size:10px;font-weight:700}.connection-summary{align-items:center;gap:var(--space-3);min-width:0;display:flex}.connection-pill{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-full);color:var(--muted);align-items:center;gap:var(--space-2);letter-spacing:.05em;text-transform:uppercase;flex:none;justify-content:center;padding:5px 12px;font-size:11px;font-weight:700;line-height:1;transition:all .2s;display:inline-flex}.connection-pill svg{flex-shrink:0}.status-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 3px #80808026}.connection-pill.is-live{background:var(--accent-subtle);border-color:var(--accent-border);color:var(--accent)}.connection-pill.is-live .status-dot{background:var(--accent);box-shadow:0 0 0 3px hsla(var(--hue-accent), 90%, 66%, .25);animation:2s ease-in-out infinite pulse-live}.connection-pill.is-error{background:var(--danger-subtle);border-color:var(--danger-border);color:var(--danger)}.connection-pill.is-error .status-dot{background:var(--danger);box-shadow:0 0 0 3px #ff675c40}.connection-pill.is-offline{color:#f59e0b;background:#ffa2001f;border-color:#ffa2004d}.connection-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.connection-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.button,.icon-button,.device-select{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);transition:all .15s cubic-bezier(.4,0,.2,1)}.button{align-items:center;gap:var(--space-2);white-space:nowrap;justify-content:center;min-height:38px;padding:8px 14px;font-size:13px;font-weight:650;display:inline-flex}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){background:var(--surface-3);border-color:var(--line-bright);transform:translateY(-1px)}.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(1px)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:750}.button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:var(--shadow-accent)}.button.update-button{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:750;animation:2.5s ease-in-out infinite pulse-update}@keyframes pulse-update{0%,to{box-shadow:0 0 0 0 hsla(var(--hue-accent), 90%, 66%, .45)}50%{box-shadow:0 0 0 4px hsla(var(--hue-accent), 90%, 66%, .15)}}.button.subtle{border-color:var(--line);color:var(--muted);background:0 0}.button.subtle:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.button.danger{color:var(--danger)}.button.danger:hover:not(:disabled){background:var(--danger-subtle);border-color:var(--danger-border)}.button.danger.subtle,.button.subtle.danger{background:var(--danger-subtle);border-color:var(--danger-border);color:var(--danger)}.button.danger.subtle:hover:not(:disabled),.button.subtle.danger:hover:not(:disabled){border-color:var(--danger);color:#ff8880;background:#ff675c38;box-shadow:0 0 12px #ff675c2e}.button.wide{width:100%}.button.compact{min-height:28px;padding:4px 10px;font-size:11.5px}.button-row,.diagnostic-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.button-row .button,.diagnostic-actions .button{flex:1;min-width:0}.icon-button{width:38px;height:38px;color:var(--muted);justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover:not(:disabled){color:var(--ink)}.game-button{background:var(--accent-subtle);border-color:var(--accent-border);color:var(--accent)}.game-button:hover:not(:disabled){background:hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .22);border-color:var(--accent);color:var(--accent-strong)}.game-button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-accent);font-weight:750}.game-button.active:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-ink);box-shadow:var(--shadow-accent)}.device-select{color:var(--ink);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239da49a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;max-width:280px;min-height:38px;padding:7px 32px 7px 12px}.capability-banner,.authorization-banner{border-radius:var(--radius-md);gap:var(--space-3);margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.capability-banner{background:var(--orange-subtle);border:1px solid var(--orange-border)}.capability-banner .banner-icon{color:var(--orange);display:flex}.capability-banner strong{color:var(--ink);font-size:13px;display:block}.capability-banner p{color:var(--muted);margin:2px 0 0;font-size:12px}.authorization-banner{background:var(--blue-subtle);border:1px solid var(--blue-border)}.authorization-banner .banner-icon{color:var(--blue);display:flex}.authorization-copy>strong{color:var(--ink);font-size:13px;display:block}.authorization-copy>p{color:var(--muted);margin:2px 0 var(--space-2);font-size:12px}.authorization-devices{gap:var(--space-2);flex-direction:column;display:flex}.authorization-devices>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.authorization-devices span{align-items:center;gap:var(--space-2);font-size:12px;font-weight:600;display:flex}.authorization-devices small{color:var(--muted);font-weight:400}.device-strip{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-md);margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4)}.device-strip-heading{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.device-strip-heading strong{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12px}.device-strip-heading span{color:var(--faint);font-size:11px}.device-cards{gap:var(--space-3);padding-bottom:4px;display:flex;overflow-x:auto}.device-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);padding:6px 10px;transition:all .15s;display:flex}.device-card.active{background:var(--accent-subtle);border-color:var(--accent-border)}.device-card-select{text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;padding:0;display:flex}.device-card-select span{color:var(--ink);font-size:12px;font-weight:700}.device-card-select code{color:var(--muted);font-family:var(--font-mono);font-size:10px}.device-card-select small{color:var(--accent);font-size:10px;font-weight:600}.device-card-disconnect{color:var(--muted);background:0 0;border:0;border-radius:4px;padding:4px}.device-card-disconnect:hover{color:var(--danger);background:var(--danger-subtle)}.workbench{gap:var(--space-5);min-height:0;margin-top:var(--space-4);padding-bottom:var(--space-4);flex:auto;grid-template-columns:1fr 380px;display:grid;overflow:hidden}.stage-column{gap:var(--space-3);flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow-y:auto}.video-stage-container{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:450px;box-shadow:var(--shadow-md);flex:auto;justify-content:center;align-items:center;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.video-stage-container.mode-edit{border-color:var(--accent-border);box-shadow:var(--shadow-accent)}.video-stage-fit{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.video-surface{-webkit-user-select:none;user-select:none;background:#000;border-radius:0;position:relative;overflow:hidden}.video-surface canvas{width:100%;height:100%;display:block}.stage-overlay-status{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);color:var(--muted);align-items:center;gap:var(--space-3);max-width:360px;padding:var(--space-6);text-align:center;border:1px solid var(--line);box-shadow:var(--shadow-lg);background:#0d110fd9;flex-direction:column;display:flex;position:absolute}.stage-overlay-status .status-icon{color:var(--accent)}.stage-overlay-status strong{color:var(--ink);font-size:16px}.stage-overlay-status p{margin:0;font-size:13px}.stage-status-bar{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.status-chips{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line-subtle);border-radius:var(--radius-full);color:var(--muted);font-family:var(--font-mono);align-items:center;gap:6px;padding:3px 10px;font-size:11px;display:inline-flex}.chip.active{background:var(--accent-subtle);border-color:var(--accent-border);color:var(--accent)}.control-dock{background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--radius-lg);align-items:center;gap:var(--space-1);padding:var(--space-2);box-shadow:var(--shadow-md);flex:none;justify-content:center;display:flex;overflow-x:auto}.dock-button{border-radius:var(--radius-sm);color:var(--muted);min-width:48px;padding:6px var(--space-2);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:all .15s;display:flex}.dock-button:hover:not(:disabled){background:var(--surface-3);color:var(--ink);transform:translateY(-2px)}.dock-button:active:not(:disabled){transform:translateY(0)}.dock-button small{letter-spacing:.02em;font-size:10px;font-weight:600}.dock-divider{background:var(--line-subtle);width:1px;height:24px;margin:0 4px}.side-panel{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);height:100%;min-height:0;max-height:100%;box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow:hidden}.panel-tabs{background:var(--surface-2);border-bottom:1px solid var(--line-subtle);flex-shrink:0;gap:4px;padding:5px;display:flex}.panel-tabs button{border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;background:0 0;border:0;flex:auto;justify-content:center;align-items:center;gap:5px;min-width:0;padding:7px 6px;font-size:12px;font-weight:650;transition:all .15s;display:flex}.panel-tabs button .tab-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.panel-tabs button .tab-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.panel-tabs button:hover:not(.active){color:var(--ink);background:var(--surface-3)}.panel-tabs button.active{background:var(--surface-1);color:var(--accent);box-shadow:var(--shadow-sm)}.tab-count{background:var(--surface-3);border-radius:var(--radius-full);color:var(--ink);flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700}.panel-tabs button.active .tab-count{background:var(--accent-subtle);color:var(--accent)}.error-indicator{background:var(--danger);border-radius:50%;flex-shrink:0;width:6px;height:6px}.panel-content{min-height:0;padding:var(--space-4);scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;flex:auto;overflow-y:auto}.panel-stack{gap:var(--space-4);flex-direction:column;display:flex}.panel-section{background:var(--surface-2);border:1px solid var(--line-subtle);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading h3{margin:0;font-size:16px;font-weight:750}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:750;display:block}.count-badge{background:var(--accent-subtle);border:1px solid var(--accent-border);border-radius:var(--radius-full);color:var(--accent);padding:2px 8px;font-size:11px;font-weight:750}.active-profile-card{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:3px;padding:10px 12px;display:flex}.active-profile-card span{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:10.5px;font-weight:750}.active-profile-card strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.active-profile-card small{color:var(--muted);font-size:11.5px;line-height:1.3}.mapping-type-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));display:grid}.mapping-type-grid button{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px 8px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.mapping-type-grid button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-subtle);color:var(--accent);transform:translateY(-2px)}.mode-toggle{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.mode-toggle button{color:var(--muted);background:0 0;border:0;border-radius:6px;padding:6px;font-size:12px;font-weight:700;transition:all .15s}.mode-toggle button.active{background:var(--accent);color:var(--accent-ink)}.mode-description{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.mapping-list{gap:var(--space-1);flex-direction:column;display:flex}.mapping-list button{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);text-align:left;padding:8px 12px;transition:all .15s;display:flex}.mapping-list button:hover{background:var(--surface-3);border-color:var(--line-bright)}.mapping-list button.active{border-color:var(--accent);background:var(--accent-subtle)}.mini-dot{background:var(--faint);border-radius:50%;flex:0 0 6px;width:6px;height:6px;display:inline-block}.mini-dot.ok{background:var(--accent)}.inspector{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.inspector-heading{justify-content:space-between;align-items:center;gap:var(--space-2);padding-bottom:2px;display:flex}.inspector-heading>div{flex-direction:column;gap:2px;min-width:0;display:flex}.inspector-heading strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.inspector .button.danger{margin-top:var(--space-2);width:100%}.empty-panel{text-align:center;padding:var(--space-6) var(--space-4);justify-content:center;align-items:center;gap:var(--space-2);color:var(--muted);border:1px dashed var(--line-subtle);border-radius:var(--radius-sm);flex-direction:column;display:flex}.empty-panel.compact{padding:var(--space-5) var(--space-3)}.empty-icon{color:var(--faint);font-size:24px}.empty-panel p{margin:0;font-size:12.5px;line-height:1.4}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field span{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.field input,.field select,.field textarea{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);width:100%;min-width:0;padding:8px 12px;font-size:13px;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.key-capture{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:38px;color:var(--ink);font-family:var(--font-mono);letter-spacing:.02em;text-align:center;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;justify-content:center;align-items:center;padding:8px 12px;font-size:13px;font-weight:650;transition:all .15s cubic-bezier(.4,0,.2,1);display:flex}.key-capture:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-bright)}.key-capture:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.key-capture.is-capturing{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .25);font-weight:750;animation:1.5s ease-in-out infinite key-capture-pulse}@keyframes key-capture-pulse{0%,to{border-color:var(--accent);box-shadow:0 0 10px hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .2)}50%{border-color:var(--accent-strong);box-shadow:0 0 20px hsla(var(--hue-accent), var(--sat-accent), var(--light-accent), .45)}}.field-grid{gap:var(--space-3);width:100%;min-width:0;display:grid}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.range-field{flex-direction:column;gap:6px;width:100%;min-width:0;display:flex}.range-field span{justify-content:space-between;align-items:center;min-width:0;font-size:12px;font-weight:650;display:flex}.range-field output{color:var(--accent);font-family:var(--font-mono);background:var(--accent-subtle);border:1px solid var(--accent-border);border-radius:var(--radius-sm);flex-shrink:0;padding:1px 6px;font-size:11px}.switch{align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;font-size:12px;display:flex}.switch input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;width:16px;height:16px}.custom-select-container{width:100%;min-width:0;position:relative}.custom-select-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--ink);text-align:left;cursor:pointer;min-height:38px;padding:8px 12px;font-size:13px;transition:all .15s;display:flex;overflow:hidden}.custom-select-trigger:hover:not(:disabled){border-color:var(--line-bright);background:var(--surface-2)}.custom-select-container.is-open .custom-select-trigger{border-color:var(--accent);box-shadow:var(--shadow-accent);background:var(--surface-2)}.custom-select-trigger:disabled{opacity:.5;cursor:not-allowed}.custom-select-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.custom-select-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1),color .15s}.custom-select-chevron.is-active{color:var(--accent);transform:rotate(180deg)}.custom-select-dropdown{z-index:80;background:var(--surface-1);border:1px solid var(--line-bright);border-radius:var(--radius-sm);max-height:230px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.custom-select-option{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;color:var(--ink);-webkit-user-select:none;user-select:none;border-radius:4px;padding:7px 10px;font-size:12.5px;transition:background .12s,color .12s;display:flex}.custom-select-option.is-highlighted{background:var(--surface-3);color:var(--ink)}.custom-select-option.is-selected{background:var(--accent-subtle);color:var(--accent);font-weight:650}.custom-select-option.is-disabled{opacity:.45;cursor:not-allowed}.custom-select-option-content{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.custom-select-option-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.custom-select-option-desc{color:var(--muted);font-size:10.5px;font-weight:400}.custom-select-check{color:var(--accent);flex-shrink:0}.custom-slider-root{touch-action:none;width:100%;min-width:0;padding:4px 0}.custom-slider-root.is-disabled{opacity:.45;pointer-events:none}.custom-slider-track-area{cursor:pointer;outline:none;width:100%;height:22px;position:relative}.custom-slider-track{background:var(--surface-3);border-radius:var(--radius-full);border:1px solid var(--line-subtle);pointer-events:none;height:6px;position:absolute;top:50%;left:0;right:0;overflow:hidden;transform:translateY(-50%)}.custom-slider-fill{background:linear-gradient(90deg, var(--accent), var(--accent-strong));border-radius:var(--radius-full);position:absolute;top:0;bottom:0;left:0}.custom-slider-thumb{background:var(--ink);border:2px solid var(--accent);width:16px;height:16px;box-shadow:var(--shadow-sm);pointer-events:none;border-radius:50%;transition:transform .15s,box-shadow .15s,border-color .15s;position:absolute;top:50%;transform:translate(-50%,-50%)}.custom-slider-track-area:hover .custom-slider-thumb,.custom-slider-root.is-dragging .custom-slider-thumb{box-shadow:var(--shadow-accent);border-color:var(--accent-strong);transform:translate(-50%,-50%)scale(1.2)}.custom-slider-track-area:focus-visible .custom-slider-thumb{box-shadow:var(--shadow-accent);border-color:var(--accent-strong);transform:translate(-50%,-50%)scale(1.25)}.stream-subsection{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-3);flex-direction:column;margin-top:4px;display:flex}.subsection-heading{justify-content:space-between;align-items:center;display:flex}.subsection-heading>span{align-items:center;gap:var(--space-2);display:flex}.subsection-title{margin:0;font-size:15px;font-weight:750}.audio-status{border-radius:var(--radius-full);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-3);color:var(--muted);padding:1px 8px;font-size:10px;font-weight:700}.audio-status.is-active,.audio-status.is-streaming{background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent-border)}.audio-status.is-blocked{background:var(--orange-subtle);color:var(--orange);border:1px solid var(--orange-border)}.settings-disclosure{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-md);padding:10px 14px;transition:border-color .15s}.settings-disclosure[open]{border-color:var(--line)}.settings-disclosure summary{cursor:pointer;color:var(--ink);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;list-style:none;display:flex}.settings-disclosure summary::-webkit-details-marker{display:none}.settings-disclosure summary:after{content:"›";color:var(--muted);font-size:16px;font-weight:400;transition:transform .2s}.settings-disclosure[open] summary:after{color:var(--accent);transform:rotate(90deg)}.settings-disclosure-body{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line-subtle);gap:var(--space-3);flex-direction:column;display:flex}.settings-warning{background:var(--orange-subtle);border:1px solid var(--orange-border);border-radius:var(--radius-sm);color:var(--orange);margin:0;padding:8px 12px;font-size:12px}.settings-errors{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.settings-errors li{background:var(--danger-subtle);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger);padding:6px 12px;font-size:12px}.stat-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stat-grid>div{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:8px 12px;display:flex}.stat-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:650}.stat-grid strong{color:var(--ink);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.capability-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.capability-list li{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);align-items:center;gap:var(--space-3);padding:8px 12px;display:flex}.capability-list li .mini-dot{flex:0 0 6px;width:6px;height:6px}.capability-item-info,.capability-list li>span:not(.mini-dot){min-width:0;color:var(--ink);flex-direction:column;flex:1;gap:2px;font-size:13px;font-weight:650;display:flex}.capability-item-info strong{color:var(--ink);font-size:13px;font-weight:650}.capability-list li small{color:var(--muted);font-size:11px;font-family:var(--font-mono);font-weight:400}.capability-list li em{background:var(--accent-subtle);border:1px solid var(--accent-border);border-radius:var(--radius-full);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;padding:2px 8px;font-size:10px;font-style:normal;font-weight:700}.toast{background:var(--surface-3);border:1px solid var(--accent-border);border-radius:var(--radius-md);color:var(--ink);box-shadow:var(--shadow-lg);z-index:100;padding:12px 20px;font-weight:600;animation:.2s cubic-bezier(.16,1,.3,1) slide-up;position:fixed;bottom:24px;right:24px}.video-workspace{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:450px;box-shadow:var(--shadow-md);flex:auto;display:flex;position:relative;overflow:hidden}.video-fit{width:100%;height:100%;padding:var(--space-3);justify-content:center;align-items:center;display:flex;position:relative}.video-viewport{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.video-surface{-webkit-user-select:none;user-select:none;border:1px solid var(--line);background:#000;border-radius:0;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.video-surface:focus,.video-surface:focus-visible,.video-surface:focus-within,.video-workspace:focus,.video-workspace:focus-visible,.video-workspace:focus-within{box-shadow:none!important;outline:none!important}.video-surface.is-editing{border-color:var(--accent);box-shadow:var(--shadow-accent)}.video-surface.is-play-mode{border-color:var(--line-bright)}.video-surface.is-mouse-locked{cursor:none}.mapping-overlay{pointer-events:none;z-index:10;position:absolute;inset:0}.mapping-overlay.is-editing{pointer-events:auto}.mapping-item{pointer-events:none;position:absolute;inset:0}.mapping-marker{pointer-events:auto;border-radius:var(--radius-md,8px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid var(--line-bright,#fff3);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0f172ad9;flex-direction:column;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:6px 10px;font-family:inherit;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 12px #0006}.mapping-overlay:not(.is-editing) .mapping-marker{pointer-events:none}.mapping-marker:hover{border-color:var(--accent,#38bdf8);background:#1e293bf2;box-shadow:0 6px 16px #00000080,0 0 12px #38bdf84d}.mapping-item.is-selected .mapping-marker{border-color:var(--accent,#38bdf8);z-index:20;background:#0ea5e940;transform:translate(-50%,-50%)scale(1.08);box-shadow:0 0 0 3px #38bdf859,0 6px 16px #00000080}.mapping-item.is-disabled{opacity:.4}.mapping-trigger{letter-spacing:.05em;color:var(--ink,#f8fafc);font-size:13px;font-weight:800;line-height:1.2}.mapping-type{text-transform:uppercase;letter-spacing:.08em;color:var(--accent,#38bdf8);opacity:.9;margin-top:2px;font-size:9px;font-weight:700;line-height:1}.mapping-center-marker{border:1.5px solid var(--accent,#38bdf8);pointer-events:none;z-index:5;opacity:.85;background:#fff;border-radius:50%;width:7px;height:7px;transition:transform .15s,opacity .15s,background .15s,border-color .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0f172ae6,0 0 6px #38bdf8cc}.mapping-marker:hover .mapping-center-marker,.mapping-item.is-selected .mapping-center-marker{opacity:1;background:#38bdf8;border-color:#fff;transform:translate(-50%,-50%)scale(1.25);box-shadow:0 0 0 1.5px #0f172ae6,0 0 8px #38bdf8}.mapping-range{border:1.5px dashed var(--accent-border,#38bdf880);pointer-events:none;background:#38bdf80f;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.mapping-item.is-selected .mapping-range{border-color:var(--accent,#38bdf8);background:#38bdf81f}.mapping-line{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mapping-line line{stroke:var(--accent,#38bdf8);stroke-width:2.5px;stroke-dasharray:6 4;opacity:.85}.mapping-endpoint{background:var(--accent,#38bdf8);cursor:pointer;pointer-events:auto;border:2px solid #fff;border-radius:50%;width:18px;height:18px;transition:transform .15s,box-shadow .15s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0006}.mapping-endpoint:hover{transform:translate(-50%,-50%)scale(1.25);box-shadow:0 0 12px #38bdf899}:-webkit-any(.video-workspace:fullscreen,.video-workspace:-webkit-full-screen,.video-workspace:fullscreen){width:100vw!important;height:100vh!important;box-shadow:none!important;background:#000!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important}:-moz-any(.video-workspace:fullscreen,.video-workspace:fullscreen,.video-workspace:-moz-full-screen){width:100vw!important;height:100vh!important;box-shadow:none!important;background:#000!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important}:is(.video-workspace:fullscreen,.video-workspace:fullscreen,.video-workspace:fullscreen){width:100vw!important;height:100vh!important;box-shadow:none!important;background:#000!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important}:-webkit-any(.video-workspace:fullscreen .video-fit,.video-workspace:-webkit-full-screen .video-fit,.video-workspace:fullscreen .video-fit){width:100%!important;height:100%!important;padding:0!important}:-moz-any(.video-workspace:fullscreen .video-fit,.video-workspace:fullscreen .video-fit,.video-workspace:-moz-full-screen .video-fit){width:100%!important;height:100%!important;padding:0!important}:is(.video-workspace:fullscreen .video-fit,.video-workspace:fullscreen .video-fit,.video-workspace:fullscreen .video-fit){width:100%!important;height:100%!important;padding:0!important}:-webkit-any(.video-workspace:fullscreen .video-viewport,.video-workspace:-webkit-full-screen .video-viewport,.video-workspace:fullscreen .video-viewport){width:100%!important;height:100%!important}:-moz-any(.video-workspace:fullscreen .video-viewport,.video-workspace:fullscreen .video-viewport,.video-workspace:-moz-full-screen .video-viewport){width:100%!important;height:100%!important}:is(.video-workspace:fullscreen .video-viewport,.video-workspace:fullscreen .video-viewport,.video-workspace:fullscreen .video-viewport){width:100%!important;height:100%!important}:-webkit-any(.video-workspace:fullscreen .video-surface,.video-workspace:-webkit-full-screen .video-surface,.video-workspace:fullscreen .video-surface){box-shadow:none!important;border:none!important;border-radius:0!important}:-moz-any(.video-workspace:fullscreen .video-surface,.video-workspace:fullscreen .video-surface,.video-workspace:-moz-full-screen .video-surface){box-shadow:none!important;border:none!important;border-radius:0!important}:is(.video-workspace:fullscreen .video-surface,.video-workspace:fullscreen .video-surface,.video-workspace:fullscreen .video-surface){box-shadow:none!important;border:none!important;border-radius:0!important}.video-empty{align-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center;background:radial-gradient(circle at center, var(--surface-2), var(--surface-1));flex-direction:column;justify-content:center;display:flex;position:absolute;inset:0}.video-empty strong{color:var(--ink);font-size:18px;font-weight:750}.video-empty p{color:var(--muted);max-width:320px;margin:0;font-size:13px}.local-badge{background:var(--surface-3);border:1px solid var(--line-subtle);border-radius:var(--radius-full);color:var(--muted);align-items:center;gap:var(--space-2);padding:4px 12px;font-size:11px;font-weight:650;display:inline-flex}.check-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.check-list li{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);align-items:center;gap:var(--space-3);padding:8px 12px;display:flex}.check-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.check-icon.ok{background:var(--accent-subtle);color:var(--accent)}.check-icon.no{background:var(--danger-subtle);color:var(--danger)}.check-list span{flex-direction:column;font-size:13px;font-weight:600;display:flex}.check-list small{color:var(--muted);font-size:10px;font-weight:400}.runtime-info{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);color:var(--muted);flex-direction:column;gap:4px;padding:10px 12px;font-size:11.5px;line-height:1.45;display:flex}.runtime-info a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.runtime-info a:hover{opacity:.85}.chip-wrap{gap:var(--space-2);flex-wrap:wrap;display:flex}.capability-chip{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-full);color:var(--muted);padding:4px 10px;font-size:11px;font-weight:650}.capability-chip.ok{background:var(--accent-subtle);border-color:var(--accent-border);color:var(--accent)}.diagnostic-log{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);gap:var(--space-2);max-height:340px;padding:var(--space-3);font-family:var(--font-mono);flex-direction:column;font-size:11px;display:flex;overflow-y:auto}.log-entry{border-left:3px solid var(--line-bright);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:6px 10px}.log-entry.level-error{border-left-color:var(--danger);background:var(--danger-subtle)}.log-entry.level-warn{border-left-color:var(--orange);background:var(--orange-subtle)}.log-entry.level-info{border-left-color:var(--accent)}.log-entry div{color:var(--muted);justify-content:space-between;margin-bottom:2px;font-size:10px;display:flex}.log-entry p{color:var(--ink);white-space:pre-wrap;word-break:break-word;margin:0}@keyframes pulse-live{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){.workbench{grid-template-columns:1fr}.side-panel{max-height:600px}}@media (max-width:768px){.topbar{gap:var(--space-2);grid-template-columns:1fr}.connection-actions{justify-content:flex-start}.app-shell{padding:0 var(--space-3)}.control-dock{justify-content:flex-start}}@media (display-mode:window-controls-overlay){.topbar{padding-left:max(env(titlebar-area-x,0px), env(safe-area-inset-left,0px), var(--wco-left,0px));padding-right:max(calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw)), env(safe-area-inset-right,0px), var(--wco-right,0px));padding-top:max(var(--space-2), env(titlebar-area-y,0px), env(safe-area-inset-top,0px), var(--wco-top,0px))}}
