.flexlayout__layout{--color-text: #eeeeee;--color-background: black;--color-base: black;--color-1: rgb(17.85, 17.85, 17.85);--color-2: rgb(25.5, 25.5, 25.5);--color-3: rgb(38.25, 38.25, 38.25);--color-4: #333333;--color-5: rgb(63.75, 63.75, 63.75);--color-6: rgb(76.5, 76.5, 76.5);--color-drag1: rgb(207, 232, 255);--color-drag2: rgb(183, 209, 181);--color-drag1-background: rgba(128, 128, 128, .15);--color-drag2-background: rgba(128, 128, 128, .15);--font-size: medium;--font-family: Roboto, Arial, sans-serif;--color-overflow: gray;--color-icon: gray;--color-tabset-background: var(--color-1);--color-tabset-background-selected: var(--color-1);--color-tabset-background-maximized: var(--color-6);--color-tabset-divider-line: var(--color-4);--color-tabset-header-background: var(--color-1);--color-tabset-header: var(--color-text);--color-border-tab-content: var(--color-background);--color-border-background: var(--color-1);--color-border-divider-line: var(--color-4);--color-tab-content: var(--color-background);--color-tab-selected: var(--color-text);--color-tab-selected-background: var(--color-4);--color-tab-unselected: gray;--color-tab-unselected-background: transparent;--color-tab-textbox: var(--color-text);--color-tab-textbox-background: var(--color-3);--color-border-tab-selected: var(--color-text);--color-border-tab-selected-background: var(--color-4);--color-border-tab-unselected: gray;--color-border-tab-unselected-background: var(--color-2);--color-splitter: var(--color-2);--color-splitter-hover: var(--color-4);--color-splitter-drag: var(--color-5);--color-drag-rect-border: var(--color-4);--color-drag-rect-background: var(--color-1);--color-drag-rect: var(--color-text);--color-popup-border: var(--color-6);--color-popup-unselected: var(--color-text);--color-popup-unselected-background: var(--color-background);--color-popup-selected: var(--color-text);--color-popup-selected-background: var(--color-4);--color-edge-marker: gray;--color-edge-icon: #eee;--color-mini-scroll-indicator: rgba(128, 128, 128, .5);--color-mini-scroll-indicator-hovered: rgba(128, 128, 128, .8);--size-mini-scroll-indicator: 3px;--color-toolbar-button-hover: var(--color-4)}.flexlayout__layout{inset:0;position:absolute;display:flex;background-color:var(--color-background)}.flexlayout__layout_overlay{inset:0;position:absolute;z-index:1000}.flexlayout__layout_tab_stamps{position:absolute;top:-10000px;z-index:100;display:flex;flex-direction:column;align-items:start}.flexlayout__layout_moveables{visibility:hidden;position:absolute;width:100px;height:100px;top:-20000px}.flexlayout__layout_main{display:flex;flex-basis:0px;min-width:0;min-height:0;flex-grow:1;position:relative}.flexlayout__layout_border_container,.flexlayout__layout_border_container_inner{display:flex;flex-basis:0px;min-width:0;min-height:0;flex-grow:1}.flexlayout__splitter{display:flex;align-items:center;justify-content:center;background-color:var(--color-splitter);touch-action:none;z-index:10}@media(hover:hover){.flexlayout__splitter:hover{background-color:var(--color-splitter-hover);transition:background-color ease-in .1s;transition-delay:.05s;border-radius:5px}}.flexlayout__splitter_drag{position:absolute;display:flex;align-items:center;justify-content:center;z-index:1000;border-radius:5px;background-color:var(--color-splitter-drag)}.flexlayout__splitter_handle{background-color:#ccc;border-radius:3px}.flexlayout__splitter_handle_horz{width:3px;height:30px}.flexlayout__splitter_handle_vert{width:30px;height:3px}.flexlayout__splitter_extra{touch-action:none;background-color:transparent}.flexlayout__outline_rect{position:absolute;pointer-events:none;box-sizing:border-box;border:2px solid var(--color-drag1);background:var(--color-drag1-background);border-radius:5px;z-index:1000}.flexlayout__outline_rect_edge{pointer-events:none;border:2px solid var(--color-drag2);background:var(--color-drag2-background);border-radius:5px;z-index:1000;box-sizing:border-box}.flexlayout__edge_rect{position:absolute;z-index:1000;background-color:var(--color-edge-marker);pointer-events:none;display:flex;align-items:center;justify-content:center}.flexlayout__drag_rect{color:var(--color-drag-rect);background-color:var(--color-drag-rect-background);border:2px solid var(--color-drag-rect-border);border-radius:5px;box-sizing:border-box;display:flex;justify-content:center;flex-direction:column;overflow:hidden;padding:.3em .8em;word-wrap:break-word;font-size:var(--font-size);font-family:var(--font-family)}.flexlayout__row{display:flex;flex-basis:0px;min-width:0;min-height:0;position:relative;box-sizing:border-box;overflow:hidden}.flexlayout__tabset{display:flex;flex-direction:column;position:relative;background-color:var(--color-tabset-background);box-sizing:border-box;font-family:var(--font-family);overflow:hidden;flex-grow:1}.flexlayout__tabset_container{display:flex;flex-basis:0px;min-width:0;min-height:0;flex-direction:column;overflow:hidden;flex-grow:1}.flexlayout__tabset_tab_divider{width:4px}.flexlayout__tabset_content{display:flex;flex-basis:0px;min-width:0;min-height:0;flex-grow:1;box-sizing:border-box;position:relative}.flexlayout__tabset_leading{display:flex}.flexlayout__tabset_header{display:flex;align-items:center;padding:3px 3px 3px 5px;box-sizing:border-box;border-bottom:1px solid var(--color-tabset-divider-line);color:var(--color-tabset-header);background-color:var(--color-tabset-header-background);font-size:var(--font-size)}.flexlayout__tabset_header_content{flex-grow:1}.flexlayout__tabset_tabbar_outer{box-sizing:border-box;background-color:var(--color-tabset-background);overflow:hidden;display:flex;font-size:var(--font-size)}.flexlayout__tabset_tabbar_outer_top{padding:0 2px;border-bottom:1px solid var(--color-tabset-divider-line)}.flexlayout__tabset_tabbar_outer_bottom{padding:0 2px;border-top:1px solid var(--color-tabset-divider-line)}.flexlayout__tabset_tabbar_inner{position:relative;box-sizing:border-box;display:flex;flex-grow:1;scrollbar-width:none}.flexlayout__tabset_tabbar_inner::-webkit-scrollbar{display:none}.flexlayout__tabset_tabbar_inner_tab_container{position:relative;display:flex;padding-left:4px;padding-right:4px;box-sizing:border-box;white-space:nowrap}.flexlayout__tabset_tabbar_inner_tab_container_top{border-top:2px solid transparent}.flexlayout__tabset_tabbar_inner_tab_container_bottom{border-bottom:2px solid transparent}.flexlayout__tabset-selected{background-color:var(--color-tabset-background-selected)}.flexlayout__tabset-maximized{background-color:var(--color-tabset-background-maximized)}.flexlayout__tab_button_stamp{display:inline-flex;align-items:center;gap:.3em;white-space:nowrap;box-sizing:border-box}.flexlayout__tab{overflow:hidden;box-sizing:border-box;background-color:var(--color-tab-content);color:var(--color-text);position:relative}.flexlayout__tab_moveable{position:relative;height:100%;min-width:1px;min-height:1px;overflow:auto;box-sizing:border-box}.flexlayout__tab_overlay{z-index:20;position:absolute;inset:0;background-color:#0000003d}.flexlayout__tab_button{display:flex;gap:.3em;align-items:center;box-sizing:border-box;padding:3px .5em;cursor:pointer}.flexlayout__tab_button_stretch{background-color:transparent;color:var(--color-tab-selected);width:100%;padding:3px 0;text-wrap:nowrap;display:flex;gap:.3em;align-items:center;box-sizing:border-box;cursor:pointer}@media(hover:hover){.flexlayout__tab_button_stretch:hover{color:var(--color-tab-selected)}}.flexlayout__tab_button--selected{background-color:var(--color-tab-selected-background);color:var(--color-tab-selected)}@media(hover:hover){.flexlayout__tab_button:hover{color:var(--color-tab-selected)}}.flexlayout__tab_button--unselected{background-color:var(--color-tab-unselected-background);color:var(--color-tab-unselected)}.flexlayout__tab_button_leading{display:flex}.flexlayout__tab_button_content{display:flex;text-wrap:nowrap}.flexlayout__tab_button_textbox{border:none;font-family:var(--font-family);font-size:var(--font-size);color:var(--color-tab-textbox);background-color:var(--color-tab-textbox-background);border:1px inset var(--color-1);border-radius:3px;width:10em}.flexlayout__tab_button_textbox:focus{outline:none}.flexlayout__tab_button_trailing{display:flex;visibility:hidden;border-radius:4px}.flexlayout__tab_button_trailing:hover{background-color:var(--color-toolbar-button-hover)}@media(hover:hover){.flexlayout__tab_button:hover .flexlayout__tab_button_trailing{visibility:visible}}.flexlayout__tab_button--selected .flexlayout__tab_button_trailing{visibility:visible}.flexlayout__tab_button_overflow{display:flex;align-items:center;border:none;color:var(--color-overflow);font-size:inherit;background-color:transparent;width:2em;overflow:hidden}.flexlayout__tab_toolbar{display:flex;align-items:center;gap:.3em;padding-left:.5em;padding-right:.3em}.flexlayout__tab_toolbar_icon{border:none;outline:none;font-size:inherit;margin:0;background-color:transparent;padding:1px}.flexlayout__tab_toolbar_button{border:none;outline:none;font-size:inherit;margin:0;background-color:transparent;border-radius:4px;padding:1px}@media(hover:hover){.flexlayout__tab_toolbar_button:hover{background-color:var(--color-toolbar-button-hover)}}.flexlayout__tab_toolbar_sticky_buttons_container{display:flex;gap:.3em;padding-left:5px;align-items:center}.flexlayout__border{box-sizing:border-box;overflow:hidden;display:flex;font-size:var(--font-size);font-family:var(--font-family);color:var(--color-border);background-color:var(--color-border-background)}.flexlayout__border_tab_contents{box-sizing:border-box;overflow:hidden;background-color:var(--color-border-tab-content)}.flexlayout__border_leading{display:flex}.flexlayout__border_top{border-bottom:1px solid var(--color-border-divider-line);align-items:center}.flexlayout__border_bottom{border-top:1px solid var(--color-border-divider-line);align-items:center}.flexlayout__border_left{border-right:1px solid var(--color-border-divider-line);align-content:center;flex-direction:column}.flexlayout__border_right{border-left:1px solid var(--color-border-divider-line);align-content:center;flex-direction:column}.flexlayout__border_inner{position:relative;box-sizing:border-box;align-items:center;display:flex;flex-grow:1;scrollbar-width:none}.flexlayout__border_inner::-webkit-scrollbar{display:none}.flexlayout__border_inner_tab_container{white-space:nowrap;display:flex;padding-left:2px;padding-right:2px;box-sizing:border-box;position:absolute}.flexlayout__border_inner_tab_container_right{transform-origin:top left;transform:rotate(90deg)}.flexlayout__border_inner_tab_container_left{flex-direction:row-reverse;transform-origin:top right;transform:rotate(-90deg)}.flexlayout__border_tab_divider{width:4px}.flexlayout__border_button{display:flex;gap:.3em;align-items:center;cursor:pointer;padding:3px .5em;margin:2px 0;box-sizing:border-box;white-space:nowrap}.flexlayout__border_button--selected{background-color:var(--color-border-tab-selected-background);color:var(--color-border-tab-selected)}@media(hover:hover){.flexlayout__border_button:hover{color:var(--color-border-tab-selected)}}.flexlayout__border_button--unselected{background-color:var(--color-border-tab-unselected-background);color:var(--color-border-tab-unselected)}.flexlayout__border_button_leading,.flexlayout__border_button_content{display:flex}.flexlayout__border_button_trailing{display:flex;border-radius:4px;visibility:hidden}@media(hover:hover){.flexlayout__border_button:hover .flexlayout__border_button_trailing{visibility:visible}}.flexlayout__border_button--selected .flexlayout__border_button_trailing{visibility:visible}.flexlayout__border_toolbar{display:flex;gap:.3em;align-items:center}.flexlayout__border_toolbar_left,.flexlayout__border_toolbar_right{flex-direction:column;padding-top:.5em;padding-bottom:.3em}.flexlayout__border_toolbar_top,.flexlayout__border_toolbar_bottom{padding-left:.5em;padding-right:.3em}.flexlayout__border_toolbar_button{border:none;outline:none;font-size:inherit;background-color:transparent;border-radius:4px;padding:1px}@media(hover:hover){.flexlayout__border_toolbar_button:hover{background-color:var(--color-toolbar-button-hover)}}.flexlayout__border_toolbar_button_overflow{display:flex;align-items:center;border:none;color:var(--color-overflow);font-size:inherit;background-color:transparent;width:1.5em}.flexlayout__popup_menu{font-size:var(--font-size);font-family:var(--font-family)}.flexlayout__popup_menu_item{padding:2px .5em;white-space:nowrap;cursor:pointer;border-radius:2px}.flexlayout__popup_menu_item--selected{font-weight:500;background-color:var(--color-tab-selected-background);color:var(--color-tab-selected)}@media(hover:hover){.flexlayout__popup_menu_item:hover{background-color:var(--color-6)}}.flexlayout__popup_menu_container{box-shadow:inset 0 0 5px #00000026;border:1px solid var(--color-popup-border);color:var(--color-popup-unselected);background:var(--color-popup-unselected-background);border-radius:3px;position:absolute;z-index:1000;max-height:50%;min-width:100px;overflow:auto;padding:2px}.flexlayout__floating_window _body{height:100%}.flexlayout__floating_window_content{inset:0;position:absolute}.flexlayout__error_boundary_container{inset:0;position:absolute;display:flex;justify-content:center}.flexlayout__error_boundary_content{display:flex;align-items:center}.flexlayout__border_sizer{position:absolute;top:-30000px;padding-top:6px;padding-bottom:5px;font-size:var(--font-size);font-family:var(--font-family)}.flexlayout__mini_scrollbar{position:absolute;background-color:var(--color-mini-scroll-indicator);border-radius:5px;width:var(--size-mini-scroll-indicator);height:var(--size-mini-scroll-indicator);visibility:hidden;opacity:0;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.flexlayout__mini_scrollbar:hover{background-color:var(--color-mini-scroll-indicator-hovered);transition:background-color .3s ease-in-out}.flexlayout__mini_scrollbar_container{position:relative;display:flex;flex-grow:1;overflow:hidden}@media(hover:hover){.flexlayout__mini_scrollbar_container:hover .flexlayout__mini_scrollbar{opacity:1;visibility:visible}}.flexlayout__tabset_header{box-shadow:inset 0 0 3px #8888888a}.flexlayout__tabset-selected{background-image:linear-gradient(var(--color-background),var(--color-4))}.flexlayout__tabset-maximized{background-image:linear-gradient(var(--color-6),var(--color-2))}.flexlayout__tab_top{box-shadow:inset -2px 0 5px #0000001a;border-top-left-radius:3px;border-top-right-radius:3px}.flexlayout__tab_bottom{box-shadow:inset -2px 0 5px #0000001a;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.flexlayout__border_button{box-shadow:inset 0 0 5px #00000026;border-radius:3px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.build-version{position:fixed;bottom:4px;right:8px;font-size:.65rem;font-family:monospace;color:#ffffff59;cursor:default;z-index:9999;-webkit-user-select:all;user-select:all;background-color:#0000004d;padding:.1em .4em;border-radius:3px}.build-version:hover{color:#fffc;background-color:#00000080}.health-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px;vertical-align:middle;transition:background-color .3s}.health-unknown{background-color:#ffffff4d}.health-healthy{background-color:var(--success, #22c55e)}.health-unhealthy{background-color:var(--live, #ef4444);animation:health-pulse 1.5s infinite}@keyframes health-pulse{0%,to{opacity:1}50%{opacity:.4}}.beta-ribbon{position:fixed;top:14px;right:-34px;z-index:9999;background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;font-size:11px;font-weight:700;letter-spacing:1.5px;padding:4px 42px;transform:rotate(45deg);box-shadow:0 2px 8px #00000059;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1.4}@media(max-width:640px){.beta-ribbon{font-size:9px;padding:3px 32px;top:10px;right:-28px}}.session-connect{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;gap:2rem}.logo h1{font-size:2.5rem;font-weight:700;color:var(--accent);text-align:center}.logo-svg{height:40px;width:auto;margin-bottom:8px}.logo-header{height:28px;margin-bottom:0}.logo-clickable{cursor:pointer;opacity:.9;transition:opacity .15s}.logo-clickable:hover{opacity:1}.logo .subtitle{color:var(--text-secondary);text-align:center;margin:.25rem 0 0}.connect-form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px}.connect-form label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.connect-form input{text-align:center;font-size:1.8rem;font-weight:700;letter-spacing:.5em;padding:.5em}.connect-form button{background-color:var(--accent);border-color:var(--accent);color:#fff;font-size:1rem;padding:.75em;font-weight:600}.connect-form button:hover:not(:disabled){background-color:var(--accent-hover)}.error-message{color:var(--live);background-color:#ff3b5c1a;border:1px solid rgba(255,59,92,.3);border-radius:var(--radius);padding:.5em 1em;font-size:.85rem}.hint{color:var(--text-secondary);font-size:.8rem}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.auth-card{display:flex;flex-direction:column;align-items:center;gap:1.5rem;max-width:380px;width:100%}.auth-form{display:flex;flex-direction:column;gap:.5rem;width:100%}.auth-form h2{font-size:1.2rem;color:var(--text-primary);margin:0 0 .5rem;text-align:center}.auth-form label{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem}.auth-form input{padding:.6rem .8rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .15s}.auth-form input:focus{border-color:var(--accent)}.auth-form button[type=submit]{margin-top:.75rem;padding:.7rem;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .15s}.auth-form button[type=submit]:hover:not(:disabled){background:var(--accent-hover, color-mix(in srgb, var(--accent) 85%, white))}.auth-form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.auth-error{color:var(--live);font-size:.85rem;text-align:center;padding:.75rem;background:#ff32321a;border-radius:4px;width:100%;display:flex;flex-direction:column;gap:8px;align-items:center}.auth-error-dismiss{padding:6px 20px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:6px;background:transparent;color:var(--text, #e0e0e8);font-size:.8rem;cursor:pointer}.auth-error-dismiss:hover{background:#ffffff0a}.auth-success{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#22c55e;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;text-align:center}.auth-warning{background:#eab30826;border:1px solid rgba(234,179,8,.3);color:#eab308;padding:12px 16px;border-radius:8px;margin-top:12px;font-size:14px;text-align:center}.auth-warning button{margin-top:8px}.auth-hint{color:#888;font-size:13px;margin-top:8px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.85rem;padding:.3rem;text-decoration:underline}.link-btn:hover{color:var(--text-primary)}.link-btn.skip-btn{color:var(--text-secondary);text-decoration:none;font-size:.8rem}.auth-loading{color:var(--text-secondary);font-size:.9rem}.auth-status{display:flex;justify-content:center}.auth-user-badge{display:flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;font-size:.85rem;color:var(--text-primary)}.auth-logout-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.15rem;display:flex;align-items:center}.auth-logout-btn:hover{color:var(--live)}.auth-login-btn{display:flex;align-items:center;gap:.4rem;padding:.4rem .8rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;font-size:.85rem;color:var(--accent);cursor:pointer;transition:border-color .15s}.auth-login-btn:hover{border-color:var(--accent)}.portal-card{max-width:480px}.streamer-portal{width:100%}.portal-header{text-align:center;margin-bottom:1rem}.portal-header h2{font-size:1.1rem;color:var(--text-primary);margin:0}.portal-user{font-size:.8rem;color:var(--text-secondary)}.portal-loading,.portal-error,.portal-empty{text-align:center;color:var(--text-secondary);font-size:.9rem;padding:1rem 0}.portal-error{color:var(--live)}.portal-streamer-list{display:flex;flex-direction:column;gap:.75rem}.portal-section-title{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary);margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.05em}.online-indicator{color:var(--success)}.portal-streamer-card{display:flex;align-items:center;justify-content:space-between;padding:.6rem .8rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;gap:.75rem}.portal-streamer-card.online{border-color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,var(--border))}.portal-streamer-info{display:flex;align-items:center;gap:.5rem;min-width:0}.streamer-status-icon.online{color:var(--success)}.portal-session-code{font-family:monospace;font-size:.75rem;padding:1px 6px;background:#6c5ce726;border:1px solid rgba(108,92,231,.3);border-radius:4px;color:var(--accent, #6c5ce7);letter-spacing:.1em}.streamer-status-icon.offline{color:var(--text-secondary);opacity:.5}.streamer-name{font-size:.9rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-connect-btn{padding:.35rem .7rem;border-radius:4px;border:none;background:var(--accent);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .15s}.portal-connect-btn:hover:not(:disabled){background:var(--accent-hover, color-mix(in srgb, var(--accent) 85%, white))}.portal-connect-btn:disabled{opacity:.5;cursor:not-allowed}.portal-offline-label{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.portal-footer{text-align:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.header-user{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary);margin-right:32px}.header-user-name{color:var(--text-primary)}.header-logout-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.15rem;display:flex;align-items:center}.header-logout-btn:hover{color:var(--live)}.twitch-auth{display:flex;justify-content:center}.twitch-login-btn{background-color:#9146ff;border:1px solid #9146ff;color:#fff;padding:.6em 1.5em;font-size:.9rem;font-weight:600;border-radius:var(--radius);cursor:pointer;transition:background-color .15s ease}.twitch-login-btn:hover{background-color:#7c3aed}.twitch-user{display:flex;align-items:center;gap:.6rem;background-color:var(--bg-secondary);padding:.4rem .8rem;border-radius:var(--radius)}.twitch-avatar{width:28px;height:28px;border-radius:50%}.twitch-name{font-size:.85rem;font-weight:500;color:#9146ff}.twitch-logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);font-size:.75rem;padding:.2em .6em;border-radius:var(--radius);cursor:pointer}.twitch-logout-btn:hover{border-color:var(--text-secondary)}.twitch-loading{font-size:.85rem;color:var(--text-secondary)}.approval-waiting{display:flex;flex-direction:column;align-items:center;gap:.5rem}.approval-text{font-size:1.2rem;font-weight:600;color:var(--warning);animation:pulse 1.5s ease-in-out infinite}.cockpit{min-height:100vh;display:flex;flex-direction:column;outline:none;user-select:none;-webkit-user-select:none}.cockpit .channel-db,.cockpit .activity-log-panel,.cockpit .auth-error,.cockpit input,.cockpit textarea,.cockpit select,.cockpit code{user-select:text;-webkit-user-select:text}.cockpit-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);gap:.75rem;flex-shrink:0;z-index:10}.header-left{display:flex;align-items:center;gap:.75rem}.header-left h1{font-size:1rem;font-weight:700;color:var(--accent)}.session-badge{font-size:.7rem;color:var(--text-secondary);background-color:var(--bg-primary);padding:.2em .6em;border-radius:100px;font-family:monospace}.header-right{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.header-divider{width:1px;height:20px;background-color:var(--border)}.setting-toggle{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.setting-toggle input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.panel-toggles{display:flex;gap:2px}.panel-toggle-btn{font-size:.65rem;font-weight:600;padding:.25em .5em;background-color:var(--bg-primary);border:1px solid var(--border);color:var(--muted);border-radius:4px;cursor:pointer;transition:all .15s ease}.panel-toggle-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.panel-toggle-btn:hover:not(.active){border-color:var(--accent);color:var(--text-primary)}.studio-mode-btn{font-size:.7rem;font-weight:600;padding:.25em .6em;background-color:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;cursor:pointer;transition:all .15s ease}.studio-mode-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.settings-btn{font-size:.7rem;font-weight:500;padding:.25em .6em;background-color:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;cursor:pointer}.settings-btn:hover{border-color:var(--accent);color:var(--text-primary)}.disconnect-btn{background-color:transparent;color:var(--live);border-color:var(--live);font-size:.7rem;padding:.25em .6em}.disconnect-btn:hover{background-color:#ff3b5c1a;border-color:var(--live)}.stream-info-inline{display:flex;align-items:center;gap:.4rem}.stream-inline-badge{font-size:.6rem;font-weight:700;padding:.1em .4em;border-radius:3px;letter-spacing:.05em}.badge-live{background-color:var(--live);color:#fff}.badge-offline{background-color:var(--muted);color:var(--text-primary)}.badge-rec{background-color:var(--live);color:#fff}.stream-inline-stat{font-size:.65rem;color:var(--text-secondary);font-family:monospace}.stream-inline-stat.stat-warn{color:var(--warning)}.cockpit-grid{display:grid;gap:.5rem;padding:.5rem;padding-bottom:calc(var(--mixer-height, 210px) + .5rem);flex:1;overflow-y:auto;align-items:stretch}.dock-container{flex:1;position:relative;overflow:hidden}.dock-container.dock-has-bottom-overlay{padding-bottom:var(--mixer-height, 210px)}.overlay-mixer-wrapper{position:fixed;bottom:0;left:0;right:0;z-index:50;pointer-events:none;overscroll-behavior:contain}.overlay-mixer-wrapper>*{pointer-events:auto;overscroll-behavior:contain}.overlay-mixer-toolbar{position:absolute;top:4px;right:12px;z-index:55;display:flex;gap:4px}.overlay-dock-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;opacity:0;transition:opacity .2s ease,color .15s ease}.overlay-mixer-wrapper:hover .overlay-dock-btn{opacity:1}.overlay-dock-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.dock-panel-mixer{position:relative}.overlay-toggle-btn{position:absolute;top:4px;right:4px;z-index:5;display:inline-flex;align-items:center;padding:2px 4px;font-size:11px;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;opacity:0;transition:opacity .2s ease,color .15s ease,background .15s ease}.dock-panel-mixer:hover .overlay-toggle-btn{opacity:.7}.overlay-toggle-btn:hover{opacity:1!important;color:var(--text-primary);background:var(--bg-hover);border-color:var(--border)}.layout-menu-item.layout-menu-active{color:var(--accent)}.layout-menu-item svg{vertical-align:-2px}.flexlayout__layout{--color-text: var(--text-primary, #e1e1e6);--color-background: var(--bg-primary, #0f1117);--color-base: var(--bg-primary, #0f1117);--color-1: var(--bg-secondary, #161822);--color-2: var(--bg-panel, #1a1d2b);--color-3: var(--bg-hover, #252838);--color-4: var(--border, #2a2d3d);--color-5: #3a3d50;--color-6: #4a4d60;--color-tabset-background: var(--bg-secondary, #161822);--color-tabset-background-selected: var(--bg-secondary, #161822);--color-tabset-background-maximized: var(--bg-primary, #0f1117);--color-tabset-divider-line: var(--border, #2a2d3d);--color-tabset-header-background: var(--bg-secondary, #161822);--color-tab-content: var(--bg-primary, #0f1117);--color-tab-selected: var(--text-primary, #e1e1e6);--color-tab-selected-background: var(--bg-primary, #0f1117);--color-tab-unselected: var(--text-muted, #8b8b9e);--color-tab-unselected-background: transparent;--color-splitter: var(--bg-panel, #1a1d2b);--color-splitter-hover: var(--accent, #6366f1);--color-splitter-drag: var(--accent, #6366f1);--color-drag-rect-border: var(--accent, #6366f1);--color-drag-rect-background: rgba(99, 102, 241, .15);--color-drag-rect: var(--text-primary, #e1e1e6);--color-edge-marker: var(--accent, #6366f1);--font-size: .8rem;--font-family: inherit}.flexlayout__tab_button--selected{border-bottom:2px solid var(--accent, #6366f1)!important}.flexlayout__tabset-selected{box-shadow:inset 0 0 0 1px #6366f133}.flexlayout__tabset_header_sizer,.flexlayout__tab_button_stamp{font-size:.75rem}.dock-panel{width:100%;height:100%;overflow:auto;display:flex;flex-direction:column}.dock-panel-scenes{overflow-y:auto}.dock-panel-scenes .scene-list-wrapper{flex:1;overflow-y:auto;display:flex;flex-direction:column}.dock-panel-preview,.dock-panel-program{overflow-y:auto}.dock-panel-mixer{overflow-y:auto;overflow-x:hidden}.dock-panel-filters{overflow-y:auto}.dock-panel-chat{overflow:hidden}.dock-panel-chat .chat-panel{height:100%}.bot-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#888;text-align:center;padding:1rem}.bot-panel-empty p{margin:.2rem 0}.bot-panel-hint{font-size:.75rem;color:#666}.bot-actions-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.bot-actions-search{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;border-bottom:1px solid #333;color:#888}.bot-actions-search input{flex:1;background:transparent;border:none;color:#ddd;font-size:.8rem;outline:none}.bot-actions-list{flex:1;overflow-y:auto;padding:.2rem 0}.bot-actions-group-header{display:flex;align-items:center;gap:.3rem;padding:.3rem .5rem;font-size:.75rem;color:#aaa;cursor:pointer;background:none;border:none;width:100%;text-align:left}.bot-actions-group-header:hover{color:#ddd}.bot-group-chevron{display:inline-block;font-size:.6rem;transition:transform .15s}.bot-group-chevron.open{transform:rotate(90deg)}.bot-group-count{margin-left:auto;font-size:.7rem;color:#666}.bot-action-row{display:flex;align-items:center;gap:.3rem;padding:.2rem .5rem .2rem 1.2rem;font-size:.8rem}.bot-action-row:hover{background:#ffffff0a}.bot-action-row.disabled{opacity:.4}.bot-action-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ddd}.bot-fav-btn{background:none;border:none;color:#555;cursor:pointer;padding:.15rem;display:flex}.bot-fav-btn:hover,.bot-fav-btn.active,.bot-fav-icon.active{color:#f5c518}.bot-action-run{background:none;border:1px solid #444;border-radius:3px;color:#4caf50;cursor:pointer;padding:.2rem .35rem;display:flex}.bot-action-run:hover:not(:disabled){background:#4caf5026}.bot-action-run:disabled{color:#555;cursor:not-allowed}.bot-queues-panel{height:100%;overflow-y:auto;padding:.4rem}.bot-queues-list{display:flex;flex-direction:column;gap:.2rem}.bot-queue-row{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;background:#ffffff08;border-radius:4px;font-size:.8rem}.bot-queue-name{color:#ccc}.bot-queue-count{font-weight:600;color:#666;min-width:2rem;text-align:center}.bot-queue-count.active{color:#4caf50}.bot-variables-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.bot-variables-search{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;border-bottom:1px solid #333;color:#888}.bot-variables-search input{flex:1;background:transparent;border:none;color:#ddd;font-size:.8rem;outline:none}.bot-variables-list{flex:1;overflow-y:auto}.bot-variables-header{display:flex;padding:.3rem .5rem;font-size:.7rem;color:#888;border-bottom:1px solid #2a2a2a}.bot-variables-header span:first-child{flex:1}.bot-variables-header span:last-child{flex:1}.bot-variable-row{display:flex;align-items:center;padding:.25rem .5rem;font-size:.8rem;border-bottom:1px solid rgba(255,255,255,.03)}.bot-variable-row:hover{background:#ffffff0a}.bot-variable-name{flex:1;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bot-variable-value{flex:1;color:#ddd;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.1rem .3rem;border-radius:3px}.bot-variable-value:hover{background:#ffffff0f}.bot-variable-edit{flex:1;display:flex;align-items:center;gap:.2rem}.bot-variable-edit input{flex:1;background:#1a1a2e;border:1px solid #555;color:#ddd;font-size:.8rem;padding:.15rem .3rem;border-radius:3px;outline:none}.bot-variable-edit input:focus{border-color:#6c63ff}.bot-variable-save,.bot-variable-cancel{background:none;border:none;cursor:pointer;padding:.15rem;display:flex}.bot-variable-save{color:#4caf50}.bot-variable-cancel{color:#f44336}.bot-events-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.bot-events-filter{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem;border-bottom:1px solid #333;color:#888}.bot-events-filter select{flex:1;background:#1a1a2e;border:1px solid #333;color:#ddd;font-size:.75rem;padding:.2rem;border-radius:3px}.bot-events-list{flex:1;overflow-y:auto}.bot-event-row{padding:.3rem .5rem;border-bottom:1px solid rgba(255,255,255,.03);cursor:pointer;font-size:.8rem}.bot-event-row:hover{background:#ffffff0a}.bot-event-summary{display:flex;justify-content:space-between;align-items:center}.bot-event-type{color:#6c63ff;font-weight:500}.bot-event-time{color:#666;font-size:.7rem}.bot-event-data{margin:.3rem 0 0;padding:.4rem;background:#0000004d;border-radius:4px;font-size:.7rem;color:#aaa;overflow-x:auto;max-height:12rem;white-space:pre-wrap;word-break:break-all}.activity-log-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.activity-log-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#888;text-align:center;padding:1rem}.activity-log-empty p{margin:.2rem 0}.activity-log-hint{font-size:.75rem;color:#666}.activity-log-list{flex:1;overflow-y:auto}.activity-log-row{display:flex;align-items:baseline;gap:.4rem;padding:.25rem .5rem;border-bottom:1px solid rgba(255,255,255,.03);font-size:.8rem;line-height:1.3}.activity-log-row:hover{background:#ffffff0a}.activity-log-time{color:#666;font-size:.7rem;flex-shrink:0;font-variant-numeric:tabular-nums}.activity-log-actor{color:#6c63ff;font-weight:500;flex-shrink:0;white-space:nowrap}.activity-log-actor:after{content:" —";color:#444;font-weight:400}.activity-log-summary{color:#ccc}.activity-log-warning .activity-log-summary{color:#ffb300}.focusrite-panel{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:.5rem;gap:.75rem}.focusrite-empty{display:flex;align-items:center;justify-content:center}.focusrite-empty-message{color:#888;font-size:.85rem}.focusrite-header{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.focusrite-header-info{display:flex;flex-direction:column;gap:.15rem}.focusrite-device-model{font-weight:600;font-size:.9rem;color:#e0e0e0}.focusrite-clock-info{font-size:.7rem;color:#888}.focusrite-header-status{display:flex;align-items:center;gap:.5rem}.focusrite-lock-badge{display:inline-flex;align-items:center;gap:.25rem;background:#ffb30026;color:#ffb300;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500}.focusrite-section{margin-bottom:.25rem}.focusrite-section-title{font-size:.75rem;font-weight:600;color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.focusrite-channels-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem}.focusrite-input-channel,.focusrite-output-channel{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:.5rem}.focusrite-channel-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.focusrite-channel-name{font-size:.8rem;font-weight:500;color:#ddd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80px}.focusrite-channel-gain-value{font-size:.7rem;color:#888;font-variant-numeric:tabular-nums}.focusrite-gain-row,.focusrite-volume-row{display:flex;align-items:center;gap:.35rem;margin-bottom:.3rem}.focusrite-slider-label{font-size:.65rem;color:#777;min-width:28px}.focusrite-slider{flex:1;height:4px;accent-color:#e04040;cursor:pointer}.focusrite-toggle-row{display:flex;flex-wrap:wrap;gap:.25rem}.focusrite-toggle-row button{font-size:.65rem;padding:.15rem .4rem;border:1px solid rgba(255,255,255,.12);border-radius:3px;background:#ffffff0a;color:#aaa;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:.2rem}.focusrite-toggle-row button:hover{background:#ffffff14}.focusrite-toggle-row button.active{background:#e0404033;border-color:#e0404066;color:#e04040}.focusrite-toggle-row button.muted{background:#ffb30026;border-color:#ffb3004d;color:#ffb300}.focusrite-armed-indicator{font-size:.55rem;vertical-align:super;color:#ffb300}.focusrite-level-meter{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden;margin-top:.3rem}.focusrite-level-meter-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a,#ffeb3b,#ff9800);border-radius:2px;transition:width .1s linear}.focusrite-collapsible{border-top:1px solid rgba(255,255,255,.06);padding-top:.4rem}.focusrite-section-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:#aaa;cursor:pointer;padding:.2rem 0;width:100%;text-align:left}.focusrite-section-toggle:hover{color:#ddd}.focusrite-section-count,.focusrite-section-badge{font-size:.65rem;background:#ffffff0f;padding:.1rem .4rem;border-radius:8px;color:#888}.focusrite-mixes-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.focusrite-mix-bus{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:4px;padding:.4rem}.focusrite-mix-bus-name{font-size:.75rem;font-weight:500;color:#bbb;margin-bottom:.3rem}.focusrite-mix-bus-channels{display:flex;flex-direction:column;gap:.25rem}.focusrite-mix-bus-channel{display:flex;align-items:center;gap:.3rem}.focusrite-mix-source-name{font-size:.7rem;color:#999;min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.focusrite-mix-slider{max-width:120px}.focusrite-mix-gain-value{font-size:.65rem;color:#777;font-variant-numeric:tabular-nums;min-width:50px}.focusrite-routing-placeholder{color:#666;font-size:.8rem;padding:.5rem 0}.goxlr-panel{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:.5rem;gap:.75rem}.goxlr-empty{display:flex;align-items:center;justify-content:center;height:100%}.goxlr-empty-message{color:#888;font-size:.85rem}.goxlr-header{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.goxlr-header-info{display:flex;flex-direction:column;gap:.15rem}.goxlr-device-model{font-weight:600;font-size:.9rem;color:#e0e0e0}.goxlr-firmware{font-size:.7rem;color:#888}.goxlr-profile-select{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#ddd;padding:.2rem .4rem;font-size:.75rem}.goxlr-section{margin-bottom:.25rem}.goxlr-section-title{font-size:.75rem;font-weight:600;color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.goxlr-faders{display:flex;gap:.75rem;justify-content:center;padding:.5rem 0}.goxlr-fader-strip{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:60px}.goxlr-fader-channel{font-size:.7rem;font-weight:500;color:#ccc;text-align:center}.goxlr-fader-slider-wrap{height:120px;display:flex;align-items:center;justify-content:center}.goxlr-fader-slider{width:120px;transform:rotate(-90deg);accent-color:#e04040}.goxlr-fader-volume{font-size:.65rem;color:#888;font-variant-numeric:tabular-nums}.goxlr-fader-mute{font-size:.65rem;padding:.2rem .5rem;border:1px solid rgba(255,255,255,.12);border-radius:3px;background:#ffffff0a;color:#aaa;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:.2rem}.goxlr-fader-mute:hover{background:#ffffff14}.goxlr-fader-mute.muted{background:#ffb30026;border-color:#ffb3004d;color:#ffb300}.goxlr-fader-mute.armed{background:#ffb30040;border-color:#ffb30080;color:#ffb300;animation:pulse .8s ease-in-out infinite}.goxlr-level-meter{width:6px;height:80px;background:#ffffff14;border-radius:3px;overflow:hidden;position:relative}.goxlr-level-meter-fill{position:absolute;bottom:0;width:100%;border-radius:3px;transition:height .1s linear}.goxlr-mic-gain{display:flex;align-items:center;gap:.5rem;padding:.3rem 0}.goxlr-mic-gain label{font-size:.75rem;color:#aaa;display:flex;align-items:center;gap:.3rem}.goxlr-mic-gain input[type=range]{flex:1;accent-color:#e04040}.goxlr-mic-gain-value{font-size:.7rem;color:#888;min-width:30px;font-variant-numeric:tabular-nums}.goxlr-collapsible{border-top:1px solid rgba(255,255,255,.06);padding-top:.4rem}.goxlr-section-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:#aaa;cursor:pointer;padding:.2rem 0;width:100%;text-align:left}.goxlr-section-toggle:hover{color:#ddd}.goxlr-section-count{font-size:.65rem;background:#ffffff0f;padding:.1rem .4rem;border-radius:8px;color:#888}.goxlr-effects-list{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem}.goxlr-effect-row{display:flex;align-items:center;justify-content:space-between;padding:.25rem .4rem;background:#ffffff05;border-radius:4px}.goxlr-effect-name{font-size:.8rem;color:#ccc}.goxlr-effect-toggle{font-size:.65rem;padding:.15rem .4rem;border:1px solid rgba(255,255,255,.12);border-radius:3px;background:#ffffff0a;color:#aaa;cursor:pointer}.goxlr-effect-toggle.active{background:#e0404033;border-color:#e0404066;color:#e04040}.goxlr-eq-bands{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.goxlr-eq-band{display:flex;align-items:center;gap:.3rem}.goxlr-eq-freq{font-size:.7rem;color:#999;min-width:50px}.goxlr-eq-slider{flex:1;accent-color:#e04040}.goxlr-eq-gain-value{font-size:.65rem;color:#777;min-width:45px;font-variant-numeric:tabular-nums}.goxlr-comp-gate{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.goxlr-param-group{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:4px;padding:.4rem}.goxlr-param-group-title{font-size:.75rem;font-weight:500;color:#bbb;margin-bottom:.3rem}.goxlr-param-row{display:flex;align-items:center;gap:.3rem;margin-bottom:.2rem}.goxlr-param-label{font-size:.7rem;color:#999;min-width:65px}.goxlr-param-slider{flex:1;accent-color:#e04040}.goxlr-param-value{font-size:.65rem;color:#777;min-width:45px;font-variant-numeric:tabular-nums}.goxlr-routing-placeholder{color:#666;font-size:.8rem;padding:.5rem 0}.deck-panel{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:.5rem;gap:.5rem}.deck-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#888;text-align:center;padding:1rem}.deck-empty-hint{font-size:.75rem;color:#666;margin-top:.3rem}.deck-header{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.deck-header-info{display:flex;align-items:center;gap:.4rem}.deck-header-actions{display:flex;align-items:center;gap:.3rem;margin-left:auto}.deck-type-badge{font-size:.65rem;padding:.1rem .4rem;border-radius:8px;background:#ffffff0f;color:#888}.deck-grid-info{font-size:.7rem;color:#999}.deck-action-btn{font-size:.7rem;padding:.2rem .5rem;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#ffffff0a;color:#aaa;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem}.deck-action-btn:hover{background:#ffffff14}.deck-edit-btn.active{background:#e0404033;border-color:#e0404066;color:#e04040}.deck-save-btn{border-color:#4caf5066;color:#4caf50}.deck-reset-btn{border-color:#ff980066;color:#ff9800}.deck-grid{display:grid;gap:.4rem;padding:.5rem 0}.deck-cell,.deck-cell-empty{aspect-ratio:1.4;border:1px dashed rgba(255,255,255,.08);border-radius:6px;display:flex;align-items:center;justify-content:center}.deck-cell-add{background:none;border:1px dashed rgba(255,255,255,.15);border-radius:6px;color:#555;cursor:pointer;font-size:1.2rem;aspect-ratio:1.4;display:flex;align-items:center;justify-content:center}.deck-cell-add:hover{border-color:#ffffff40;color:#888;background:#ffffff05}.deck-button{width:100%;height:100%;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#ffffff0f;color:#ddd;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.3rem;transition:all .15s;position:relative}.deck-button:hover{background:#ffffff1a;border-color:#ffffff40}.deck-button:active{transform:scale(.95)}.deck-button.deck-button-disabled{opacity:.5;cursor:default}.deck-button-icon{font-size:1.2rem}.deck-button-label{font-size:.75rem;font-weight:500;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;border:none;background:none;color:inherit;cursor:inherit;padding:0}.deck-button-action-hint{font-size:.55rem;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.deck-button-remove{position:absolute;top:2px;right:2px;background:#00000080;border:none;color:#ff6b6b;cursor:pointer;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;opacity:0;transition:opacity .15s}.deck-button:hover .deck-button-remove{opacity:1}.deck-button-label-input{background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:3px;color:#fff;font-size:.7rem;text-align:center;width:90%;padding:.15rem}.deck-grid-size-controls{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:#999}.deck-grid-size-controls .deck-grid-size-label{font-size:.65rem}.deck-grid-size-controls .deck-grid-size-input{width:40px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:3px;color:#ddd;text-align:center;padding:.1rem;font-size:.7rem}.deck-empty-message{font-size:.85rem;color:#888}.mixer-bar.mixer-docked{position:relative;bottom:auto;left:auto;right:auto;height:100%;z-index:auto;border-top:none;padding:.4rem .5rem;display:flex;flex-direction:column}.mixer-bar.mixer-docked .mixer-resize-handle{display:none}.mixer-bar.mixer-docked .mixer-sections{flex:1;overflow-x:auto;overflow-y:hidden}.mixer-bar.mixer-docked .mixer-collapse-btn,.mixer-bar.mixer-docked .mixer-fullscreen-btn,.mixer-bar.mixer-docked .mixer-fullscreen-title{display:none}.transition-header-wrap{display:flex;align-items:center;gap:2px;position:relative}.transition-header-btn{display:flex;align-items:center;gap:4px;padding:.3em .6em;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:.75rem;cursor:pointer;transition:all .15s;white-space:nowrap}.transition-header-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.transition-header-btn.armed{background:var(--danger, #ef4444);border-color:var(--danger, #ef4444);color:#fff;animation:pulse-glow .8s ease-in-out infinite}.transition-header-btn:disabled{opacity:.35;cursor:not-allowed}.transition-settings-btn-small{padding:.25em;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-muted);cursor:pointer}.transition-settings-btn-small:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border)}.layout-menu-wrap{position:relative}.layout-menu-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;z-index:200;min-width:180px;box-shadow:0 4px 12px #0006}.layout-menu-section{padding:.2rem 0}.layout-menu-section+.layout-menu-section{border-top:1px solid var(--border)}.layout-menu-label{padding:.3em .8em .2em;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.layout-menu-item-row{display:flex;align-items:center}.layout-menu-item-row .layout-menu-item{flex:1}.layout-menu-item{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:.4em .8em;background:transparent;border:none;border-radius:var(--radius);color:var(--text-primary);font-size:.8rem;cursor:pointer}.layout-menu-item:hover{background:var(--bg-hover)}.layout-menu-toggle.layout-menu-inactive{color:var(--text-muted);opacity:.65}.layout-menu-reset{color:var(--text-muted)}.layout-menu-delete{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius);display:flex;align-items:center}.layout-menu-delete:hover{color:var(--live);background:#ef44441a}.layout-menu-save-form{display:flex;gap:4px;padding:.3em .5em}.layout-menu-input{flex:1;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);padding:.3em .5em;font-size:.75rem}.layout-menu-input:focus{outline:none;border-color:var(--accent)}.layout-menu-save-btn{background:var(--accent);border:none;border-radius:var(--radius);color:#fff;padding:.3em .6em;font-size:.75rem;cursor:pointer}.layout-menu-save-btn:disabled{opacity:.5;cursor:default}.layout-menu-save-btn:not(:disabled):hover{filter:brightness(1.1)}.panel-resizer-vertical{width:6px;cursor:col-resize;background:transparent;position:relative;align-self:stretch;z-index:5}.panel-resizer-vertical:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:32px;background:var(--border);border-radius:1px;transition:background .15s,height .15s}.panel-resizer-vertical:hover:after{background:var(--accent);height:48px}.panel-heading{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem;display:flex;align-items:center;gap:.4rem}.panel{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;min-width:0;overflow:visible}.panel h2{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.panel .empty{color:var(--muted);font-size:.85rem}.panel-compact{padding:1rem 1.25rem}.empty{color:var(--muted);font-size:.8rem}.scene-list-panel{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;overflow-y:auto;max-height:calc(100vh - var(--mixer-height, 210px) - 60px)}.scene-list{display:flex;flex-direction:column;gap:.25rem}.scene-list-item{display:flex;align-items:center;gap:.5rem;padding:.35rem;background-color:var(--bg-secondary);border:2px solid transparent;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.scene-list-item:hover{background-color:var(--bg-hover);border-color:var(--accent)}.scene-list-item.preview{border-color:var(--accent);background-color:#6c5ce714}.scene-list-item.live{border-color:var(--live);background-color:#ff3b5c14;box-shadow:0 0 8px var(--live-glow)}.scene-list-item.preview.live{border-color:var(--live);box-shadow:0 0 8px var(--live-glow),inset 0 0 0 1px var(--accent)}.scene-list-item.armed{border-color:var(--warning, #f5a623);background-color:#f5a6231f;box-shadow:0 0 8px #f5a62366;animation:scene-armed-pulse 1s ease-in-out infinite}@keyframes scene-armed-pulse{0%,to{box-shadow:0 0 8px #f5a62366}50%{box-shadow:0 0 14px #f5a623b3}}.armed-badge{background-color:var(--warning, #f5a623);color:#000;font-size:.6rem;font-weight:700;padding:1px 4px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;animation:scene-armed-pulse 1s ease-in-out infinite}.scene-list-thumb{width:80px;flex-shrink:0;aspect-ratio:16 / 9;border-radius:4px;overflow:hidden;background-color:var(--bg-primary)}.scene-list-thumb img{width:100%;height:100%;object-fit:cover;display:block}.scene-list-thumb-empty{width:100%;height:100%;background-color:var(--bg-primary)}.scene-hover-preview{position:fixed;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000080;z-index:10000;overflow:hidden;pointer-events:none}.scene-hover-preview img{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block}.scene-hover-preview .scene-hover-label{display:block;padding:.3rem .5rem;font-size:.75rem;font-weight:500;color:var(--text-primary);background:var(--bg-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-list-info{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.scene-list-name{font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-list-badges{display:flex;gap:.3rem}.scene-list-delete-btn{display:inline-flex;align-items:center;gap:2px;padding:3px 5px;margin-left:4px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-dim, #8a8e9a);cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s,border-color .15s;font-size:.65rem;font-weight:700;flex-shrink:0}.scene-list-item:hover .scene-list-delete-btn:not(:disabled){opacity:.7}.scene-list-delete-btn:hover:not(:disabled){opacity:1;color:var(--live, #e63946);border-color:#e6394666;background:#e6394614}.scene-list-delete-btn:disabled{opacity:.2;cursor:not-allowed}.scene-list-delete-btn.scene-list-delete-armed{opacity:1;color:var(--live, #e63946);border-color:var(--live, #e63946);background:#e639462e;animation:scene-delete-pulse .6s ease-in-out infinite alternate}.scene-list-delete-confirm{font-size:.7rem;letter-spacing:0}@keyframes scene-delete-pulse{0%{box-shadow:0 0 #e6394666}to{box-shadow:0 0 0 3px #e6394600}}.live-badge{font-size:.6rem;font-weight:700;color:var(--live);background-color:#ff3b5c26;padding:.05em .4em;border-radius:3px;letter-spacing:.1em}.preview-badge{font-size:.6rem;font-weight:700;color:var(--accent);background-color:#6c5ce726;padding:.05em .4em;border-radius:3px;letter-spacing:.1em}.preview-panel{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:0}.preview-monitor{position:relative;width:100%;background-color:var(--bg-primary);border-radius:var(--radius);overflow:hidden;margin-bottom:.5rem}.preview-monitor img{width:100%;height:auto;display:block}.preview-monitor-empty{width:100%;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem}.preview-label{position:absolute;top:6px;left:6px;font-size:.6rem;font-weight:700;color:var(--accent);background-color:#6c5ce733;padding:.1em .4em;border-radius:3px;letter-spacing:.08em}.preview-go-live-btn{width:100%;padding:.5em;margin-top:.25rem;background-color:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:.8rem;font-weight:700;cursor:pointer;letter-spacing:.05em;transition:background-color .15s,border-color .15s}.preview-go-live-btn:hover{background-color:var(--surface-3);border-color:var(--live)}.preview-go-live-btn.armed{background-color:var(--live);color:#fff;border-color:var(--live);animation:preview-btn-pulse .8s ease-in-out infinite alternate}@keyframes preview-btn-pulse{0%{opacity:1}to{opacity:.7}}.preview-sources{display:flex;flex-direction:column;gap:.25rem}.preview-source-group{display:flex;flex-direction:column;gap:.2rem}.source-group-label{font-size:.6rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:.25rem 0 .1rem}.preview-source-item{position:relative;display:flex;align-items:center;gap:.5rem;padding:.35rem .4rem;background-color:var(--bg-secondary);border-radius:var(--radius);transition:opacity .15s ease}.preview-source-item.source-hidden{opacity:.45}.preview-source-thumb{width:56px;flex-shrink:0;aspect-ratio:16 / 9;border-radius:3px;overflow:hidden;background-color:var(--bg-primary)}.preview-source-thumb img{width:100%;height:100%;object-fit:cover;display:block}.preview-source-info{display:flex;flex-direction:column;min-width:0;flex:1}.preview-source-name{font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-source-kind{font-size:.65rem;color:var(--text-secondary)}.preview-source-vu{width:60px;height:6px;background-color:#ffffff0f;border-radius:3px;overflow:hidden;flex-shrink:0}.preview-source-vu.stereo{display:flex;flex-direction:column;height:12px;gap:1px}.preview-source-vu.stereo .preview-source-vu-fill{height:5px}.preview-source-vu-fill{height:100%;border-radius:3px;transition:width .15s ease-out}button svg,.visibility-btn svg,.channel-mute-btn svg,.filter-enable-toggle svg,.filter-setting-bool svg,.channel-filter-toggle svg{display:inline-block;vertical-align:middle;flex-shrink:0}.channel-mute-btn{display:flex;align-items:center;justify-content:center;gap:2px}.filter-enable-toggle,.filter-setting-bool{display:flex;align-items:center;justify-content:center}.source-remove-btn{width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:4px;background:none;border:1px solid transparent;color:var(--text-dim, #8a8e9a);cursor:pointer;opacity:0;transition:opacity .15s}.preview-source-item:hover .source-remove-btn{opacity:.6}.source-remove-btn:hover{opacity:1!important;color:var(--live, #e63946);border-color:var(--live, #e63946)}.source-remove-btn.armed{opacity:1!important;background:var(--live, #e63946);color:#fff;border-color:var(--live)}.source-remove-btn.last-ref.armed{animation:pulse .5s ease-in-out infinite}.visibility-btn{width:32px;height:26px;padding:0;font-size:.65rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:4px}.visibility-btn.visible{background-color:var(--accent);border-color:var(--accent);color:#fff}.visibility-btn.hidden{background-color:var(--bg-hover);border-color:var(--border);color:var(--muted)}.visibility-btn.armed{background-color:var(--warning);border-color:var(--warning);color:#fff;animation:pulse .8s ease-in-out infinite}.source-preview-inline{position:absolute;bottom:calc(100% + 4px);left:0;right:0;z-index:20;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius);border:2px solid var(--accent);box-shadow:0 4px 20px #0009}.program-panel{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:0}.header-live-dot{display:inline-block;width:6px;height:6px;background-color:var(--live);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.program-monitor{position:relative;width:100%;background-color:var(--bg-primary);border-radius:var(--radius);overflow:hidden;border:2px solid var(--live);box-shadow:0 0 12px var(--live-glow)}.program-monitor img{width:100%;height:auto;display:block}.program-monitor-empty{width:100%;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem}.program-overlay{position:absolute;bottom:0;left:0;right:0;padding:.4rem .5rem;background:linear-gradient(transparent,#000000b3);display:flex;align-items:center;gap:.4rem}.program-live-badge{font-size:.6rem;font-weight:700;color:#fff;background-color:var(--live);padding:.1em .4em;border-radius:3px;letter-spacing:.1em;animation:pulse 1.5s ease-in-out infinite}.program-scene-name{font-size:.8rem;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}.program-status{display:flex;gap:.5rem;flex-wrap:wrap}.program-controls{display:flex;gap:6px;padding:4px 0}.program-ctrl-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:4px;background:transparent;color:var(--text-dim, #8a8e9a);font-size:.7rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.program-ctrl-btn:hover:not(:disabled){background:#ffffff0a;color:var(--text, #e0e0e8)}.program-ctrl-btn:disabled{opacity:.3;cursor:not-allowed}.program-ctrl-btn.ctrl-active{color:var(--success, #2ecc71);border-color:var(--success, #2ecc71)}.program-ctrl-btn.ctrl-danger{color:var(--live, #e63946);border-color:var(--live, #e63946)}.replay-buffer-group{display:inline-flex;gap:0;border-radius:4px;position:relative}.replay-buffer-group .program-ctrl-btn{border-radius:0}.replay-buffer-group .program-ctrl-btn:first-child{border-radius:4px 0 0 4px}.replay-buffer-group .program-ctrl-btn:last-child{border-radius:0 4px 4px 0;border-left-width:0}.replay-buffer-group .program-ctrl-btn:only-child{border-radius:4px;border-left-width:1px}.program-ctrl-btn.ctrl-armed{color:var(--success, #2ecc71);border-color:#2ecc7173;box-shadow:inset 0 0 0 1px #2ecc7114}.replay-buffer-group.buf-armed:before{content:"";position:absolute;inset:-2px;border-radius:6px;background:radial-gradient(circle at center,rgba(46,204,113,.12),transparent 70%);pointer-events:none;animation:replay-pulse 2.4s ease-in-out infinite}@keyframes replay-pulse{0%,to{opacity:.4}50%{opacity:.9}}.program-ctrl-btn.ctrl-flash{color:var(--success, #2ecc71);border-color:var(--success, #2ecc71);background:#2ecc712e;animation:save-confirm .6s cubic-bezier(.16,1,.3,1)}@keyframes save-confirm{0%{transform:scale(1)}35%{transform:scale(1.08)}to{transform:scale(1)}}.program-status-item{font-size:.65rem;font-weight:600;color:var(--text-secondary);font-family:monospace}.program-status-item.status-live{color:var(--live)}.program-status-item.status-rec{color:var(--live);animation:pulse 1.5s ease-in-out infinite}.transition-column{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;width:48px;align-self:stretch;position:relative;z-index:5}.transition-column-resizer{flex:1;width:100%;cursor:col-resize;min-height:24px;position:relative}.transition-column-resizer:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:24px;background:var(--border);border-radius:1px;transition:background .15s,height .15s}.transition-column-resizer:hover:after{background:var(--accent);height:36px}.transition-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5em .4em;font-size:.65rem;font-weight:700;background-color:var(--bg-secondary);border:2px solid var(--accent);color:var(--accent);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.05em;width:44px}.transition-btn:hover:not(:disabled){background-color:var(--accent);color:#fff}.transition-btn.armed{background-color:var(--warning);border-color:var(--warning);color:#fff;animation:pulse 1s ease-in-out infinite}.transition-btn:disabled{opacity:.3;cursor:not-allowed}.transition-label{font-size:.6rem;line-height:1}.transition-settings-wrap{position:relative}.transition-settings-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:color .15s,border-color .15s}.transition-settings-btn:hover{color:var(--text);border-color:var(--accent)}.transition-settings-popup{position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;white-space:nowrap;z-index:20;box-shadow:0 4px 12px #0006;display:flex;flex-direction:column;gap:.4rem;min-width:160px}.transition-settings-row{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text)}.transition-settings-checkbox{cursor:pointer;padding-top:.25rem;border-top:1px solid var(--border);margin-top:.1rem}.transition-settings-row input[type=checkbox]{accent-color:var(--accent)}.transition-settings-label{flex-shrink:0;min-width:60px;color:var(--text-secondary)}.transition-settings-select{flex:1;min-width:0;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:.7rem;padding:.15rem .3rem}.transition-duration-input{display:flex;align-items:center;gap:.2rem}.transition-duration-input input[type=number]{width:60px;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:.7rem;padding:.15rem .3rem;text-align:right}.transition-duration-unit{color:var(--text-secondary);font-size:.65rem}.transition-settings-hint{color:var(--text-secondary);font-style:italic;font-size:.65rem}.mixer-bar{position:fixed;bottom:0;left:0;right:0;background-color:#0d0f14;border-top:2px solid var(--border);padding:.4rem 1.5rem;z-index:50;transition:height .25s ease,padding .25s ease;max-height:60vh;overflow-y:auto}.mixer-bar.mixer-collapsed{padding:0;height:28px;overflow:hidden}.mixer-bar.mixer-peek-expanded{padding:.4rem 1.5rem;height:auto;overflow:visible;box-shadow:0 -4px 24px #00000080}.mixer-collapsed-handle{display:flex;align-items:center;justify-content:center;gap:.5rem;height:28px;cursor:pointer;-webkit-user-select:none;user-select:none}.mixer-collapsed-handle:hover{background-color:#ffffff08}.mixer-collapsed-label{font-size:.65rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.mixer-collapsed-count{font-size:.6rem;font-weight:700;color:var(--muted);background-color:#ffffff0f;padding:.1em .4em;border-radius:100px}.mixer-collapse-btn:hover{border-color:var(--accent);color:var(--accent)}.mixer-resize-handle{position:absolute;top:-8px;left:0;right:0;height:8px;cursor:ns-resize;z-index:51;border-top:1px solid var(--border, rgba(255,255,255,.1))}.mixer-resize-handle:after{content:"";display:block;width:40px;height:3px;background:var(--border, rgba(255,255,255,.15));border-radius:2px;margin:2px auto 0}.mixer-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 -1.5rem;padding:2px 1.5rem;background:#ffffff08;border-bottom:1px solid var(--border, rgba(255,255,255,.06));box-sizing:border-box}.mixer-toolbar-left,.mixer-toolbar-right{display:flex;align-items:center;gap:4px}.mixer-toolbar-right{margin-left:auto}.mixer-resize-handle:after{content:"";display:block;width:40px;height:3px;background-color:var(--border);border-radius:2px;margin:3px auto 0;transition:background-color .15s ease}.mixer-resize-handle:hover:after{background-color:var(--accent)}.mixer-fullscreen-btn,.mixer-collapse-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);min-width:28px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;padding:0 4px;font-size:.7rem}.mixer-fullscreen-btn:hover{border-color:var(--accent);color:var(--accent)}.mixer-filter-btn{display:flex;align-items:center;gap:3px;padding:2px 6px;min-width:28px;height:22px;border:1px solid transparent;border-radius:4px;background:none;color:var(--text-dim, #8a8e9a);font-size:.65rem;cursor:pointer}.mixer-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.mixer-filter-btn.active{color:var(--accent)}.mixer-filter-count{opacity:.7}.mixer-fullscreen-title{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.mixer-bar.mixer-fullscreen{position:fixed;inset:0;max-height:none;height:100vh;z-index:200;padding:2rem 2rem 1rem;display:flex;flex-direction:column;overflow-y:auto;background-color:#0d0f14;background-color:#0a0c10;border-top:none}.mixer-bar.mixer-fullscreen .mixer-resize-handle{position:relative;top:0;height:32px;cursor:default;flex-shrink:0;margin-bottom:1rem}.mixer-bar.mixer-fullscreen .mixer-resize-handle:after{display:none}.mixer-bar.mixer-fullscreen .mixer-fullscreen-btn{right:0}.mixer-bar.mixer-fullscreen .mixer-sections{flex:1;align-items:center;gap:2rem}.mixer-bar.mixer-fullscreen .mixer-section{gap:.5rem}.mixer-bar.mixer-fullscreen .mixer-section-label{font-size:.7rem}.mixer-bar.mixer-fullscreen .mixer-divider{height:70%;align-self:center}@media(max-width:1024px){.mixer-bar.mixer-fullscreen{padding:1rem}.mixer-bar.mixer-fullscreen .mixer-sections{gap:1rem}}.mixer-sections{display:flex;justify-content:center;gap:1.5rem;align-items:flex-start;overflow-y:auto;max-height:50vh}.mixer-section{display:flex;flex-direction:column;align-items:center;gap:.25rem}.mixer-section-label{font-size:.55rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;-webkit-user-select:none;user-select:none}.mixer-divider{width:1px;align-self:stretch;background-color:var(--border);margin:0 .25rem}.mixer-channels{display:flex;justify-content:center;gap:2rem}.mixer-channel{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:72px;padding:.3rem .4rem;background-color:#ffffff08;border-radius:var(--radius);transition:opacity .15s ease}.mixer-channel.channel-muted{opacity:.4}.channel-name-row{display:flex;align-items:center;justify-content:center;gap:2px;max-width:90px;-webkit-user-select:none;user-select:none}.channel-name{font-size:.7rem;font-weight:600;color:var(--text-primary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;-webkit-user-select:none;user-select:none}.channel-role-wrapper{position:relative;flex-shrink:0}.channel-role-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:1px;border-radius:50%;display:flex;align-items:center;opacity:.3;transition:all .15s ease}.channel-role-btn:hover{opacity:1;color:var(--accent)}.channel-role-btn.active{opacity:1}.channel-role-menu{position:absolute;top:100%;right:0;z-index:100;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:4px 0;min-width:120px;box-shadow:0 4px 12px #0006}.channel-role-option{display:flex;align-items:center;gap:6px;width:100%;padding:5px 10px;border:none;background:none;color:var(--text-secondary);cursor:pointer;font-size:.7rem;text-align:left;transition:background .1s}.channel-role-option:hover{background:var(--bg-tertiary);color:var(--text-primary)}.channel-role-option.selected{color:var(--accent);font-weight:600}.channel-has-role{border-top:2px solid var(--muted)}.channel-has-role.role-mic{border-top-color:var(--accent)}.channel-has-role.role-mic .channel-role-btn{color:var(--accent)}.channel-has-role.role-voice{border-top-color:#a855f7}.channel-has-role.role-voice .channel-role-btn{color:#a855f7}.channel-has-role.role-game{border-top-color:#f97316}.channel-has-role.role-game .channel-role-btn{color:#f97316}.channel-has-role.role-music{border-top-color:#3b82f6}.channel-has-role.role-music .channel-role-btn{color:#3b82f6}.channel-strip{display:flex;gap:4px;align-items:stretch}.vu-meter{position:relative;width:10px;background-color:#ffffff0f;border-radius:2px;overflow:hidden}.vu-meter.vu-stereo{width:16px;display:flex;gap:1px;overflow:visible}.vu-channel{position:relative;flex:1;background-color:#ffffff0f;border-radius:2px;overflow:hidden}.vu-clip-indicator{position:absolute;top:-4px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background-color:var(--live);box-shadow:0 0 4px var(--live);z-index:2;animation:clip-pulse .5s ease-in-out infinite alternate}@keyframes clip-pulse{0%{opacity:.7}to{opacity:1}}.vu-meter-fill{position:absolute;bottom:0;left:0;right:0;transition:height 80ms ease-out;border-radius:2px}.vu-meter-peak{position:absolute;left:1px;right:1px;height:2px;background-color:#ffffffb3;transition:bottom 60ms linear;pointer-events:none}.vu-meter-marks{position:absolute;top:0;right:-1px;bottom:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.vu-meter.vu-stereo .vu-meter-marks{right:-2px}.vu-meter-marks span{font-size:0;display:block;width:3px;height:1px;background-color:#fff3}.channel-fader{display:flex;align-items:center;justify-content:center}.fader-input{-webkit-appearance:slider-vertical;appearance:slider-vertical;writing-mode:vertical-lr;direction:rtl;width:28px;background:transparent;outline:none}.fader-input::-webkit-slider-runnable-track{width:4px;background:linear-gradient(to top,var(--success) 0%,var(--warning) 75%,var(--live) 100%);border-radius:2px}.fader-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:10px;background:var(--text-primary);border-radius:2px;cursor:pointer;box-shadow:0 1px 6px #0009}.channel-muted .fader-input::-webkit-slider-thumb{background:var(--muted)}.channel-db{font-size:.7rem;font-family:monospace;color:var(--text-secondary);min-width:50px;text-align:center}.channel-track-dots{display:flex;justify-content:center;gap:2px;margin:2px 0}.track-dot{width:6px;height:6px;border-radius:50%;background:#ffffff14;transition:background .15s,box-shadow .15s}.track-dot.active{background:var(--success, #2ecc71)}.track-dot.track-stream{width:7px;height:7px;background:#9b59b6;box-shadow:0 0 0 1px #9b59b640}.track-dot.track-vod{width:7px;height:7px;background:#f1c40f;box-shadow:0 0 0 1px #f1c40f40}.channel-mute-btn{font-size:.7rem;font-weight:700;padding:.3em .6em;min-width:40px;border-radius:3px;background-color:var(--success);border:1px solid var(--success);color:#fff;cursor:pointer;transition:all .1s ease}.channel-mute-btn.muted{background-color:var(--live);border-color:var(--live)}.channel-mute-btn.armed{background-color:var(--warning);border-color:var(--warning);animation:pulse .8s ease-in-out infinite}.channel-mute-btn:hover{opacity:.85}.armed-indicator{font-size:.65rem;font-weight:700;margin-left:1px}.channel-filter-section{position:relative;display:flex;gap:2px;justify-content:center}.channel-filter-add{font-size:.65rem;font-weight:700;width:18px;height:18px;border-radius:50%;background-color:var(--bg-hover);border:1px solid var(--border);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .15s ease}.channel-filter-add:hover{background-color:var(--accent);border-color:var(--accent);color:#fff}.channel-filter-badge{font-size:.6rem;font-weight:700;padding:.15em .4em;min-width:24px;border-radius:100px;background-color:var(--bg-hover);border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:all .15s ease}.channel-filter-badge.has-active{background-color:var(--accent);border-color:var(--accent);color:#fff}.channel-filter-dropdown{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background-color:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem;min-width:240px;max-width:320px;max-height:400px;overflow-y:auto;z-index:60;box-shadow:0 4px 16px #00000080}.filter-modal{min-width:420px;max-width:560px;max-height:80vh;display:flex;flex-direction:column}.filter-modal-body{padding:12px 20px 20px;overflow-y:auto;flex:1}.filter-modal-empty{color:var(--text-secondary, #888);font-size:.85rem;text-align:center;padding:16px 0}.filter-modal-item{border:1px solid var(--border, #333);border-radius:8px;margin-bottom:8px;overflow:hidden}.filter-modal-item.disabled{opacity:.5}.filter-modal-item-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#ffffff08}.filter-modal-expand{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px;display:flex}.filter-modal-item-name{flex:1;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px}.filter-modal-item-kind{font-size:.7rem;font-weight:400;color:var(--text-secondary, #888);background:#ffffff0d;padding:1px 6px;border-radius:4px}.filter-modal-toggle{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px;display:flex}.filter-modal-toggle.on{color:var(--success, #2ecc71)}.filter-modal-item-actions{display:flex;align-items:center;gap:2px}.filter-modal-reorder{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px 4px;font-size:.7rem;line-height:1}.filter-modal-reorder:hover{color:var(--text, #e0e0e0)}.filter-modal-delete{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px 4px}.filter-modal-delete:hover{color:var(--live, #FF3B5C)}.filter-modal-settings{padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border, #333)}.filter-modal-setting{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:10px}.filter-modal-setting label{font-size:.8rem;color:var(--text-secondary, #888)}.filter-modal-setting input[type=range]{width:100%;accent-color:var(--accent, #6c5ce7)}.filter-modal-setting-value{font-size:.75rem;font-family:monospace;color:var(--text, #e0e0e0);min-width:60px;text-align:right}.filter-modal-bool{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px;display:flex}.filter-modal-bool.on{color:var(--success, #2ecc71)}.filter-modal-number-input{width:80px;background:var(--bg, #111);border:1px solid var(--border, #333);border-radius:4px;color:var(--text, #e0e0e0);padding:2px 6px;font-size:.8rem}.filter-modal-no-settings{color:var(--text-secondary, #888);font-size:.8rem;font-style:italic}.filter-modal-add-btn{display:flex;align-items:center;gap:6px;width:100%;padding:10px;margin-top:8px;background:#ffffff0d;border:1px dashed var(--border, #333);border-radius:8px;color:var(--text-secondary, #888);cursor:pointer;font-size:.85rem}.filter-modal-add-btn:hover{background:#ffffff14;color:var(--text, #e0e0e0)}.filter-modal-add-section{margin-top:8px;border:1px solid var(--accent, #6c5ce7);border-radius:8px;padding:12px}.filter-modal-add-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:600;font-size:.85rem}.filter-modal-add-close{background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;padding:2px}.filter-modal-add-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.filter-modal-add-row label{font-size:.8rem;color:var(--text-secondary, #888);min-width:40px}.filter-modal-select,.filter-modal-input{flex:1;background:var(--bg, #111);border:1px solid var(--border, #333);border-radius:6px;color:var(--text, #e0e0e0);padding:6px 8px;font-size:.85rem}.filter-modal-add-props{margin:8px 0;padding:8px;background:#ffffff05;border-radius:6px}.filter-modal-loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary, #888);font-size:.8rem;padding:8px 0}.filter-modal-add-actions{display:flex;gap:8px;margin-top:10px}.filter-modal-btn-create{padding:6px 16px;background:var(--accent, #6c5ce7);border:none;border-radius:6px;color:#fff;font-size:.85rem;cursor:pointer}.filter-modal-btn-create:hover{opacity:.9}.filter-modal-btn-create:disabled{opacity:.4;cursor:default}.filter-modal-btn-cancel{padding:6px 16px;background:#ffffff1a;border:none;border-radius:6px;color:var(--text, #e0e0e0);font-size:.85rem;cursor:pointer}@media(max-width:599px){.filter-modal{min-width:unset;width:95vw;max-height:90vh}}.inline-filter-editor{display:flex;flex-direction:column;gap:2px}.inline-filter-empty{font-size:.75rem;color:var(--text-secondary);padding:4px 6px;text-align:center}.inline-filter-item{border-radius:4px;background:var(--bg-secondary);border:1px solid transparent}.inline-filter-item.disabled{opacity:.5}.inline-filter-header{display:flex;align-items:center;gap:4px;padding:3px 4px;min-height:26px}.inline-filter-expand{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0;display:flex;flex-shrink:0}.inline-filter-name{flex:1;font-size:.72rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:4px}.inline-filter-kind{font-size:.62rem;color:var(--text-secondary);font-weight:400}.inline-filter-toggle{background:none;border:none;cursor:pointer;padding:1px;color:var(--muted);flex-shrink:0}.inline-filter-toggle.on{color:var(--accent)}.inline-filter-actions{display:flex;align-items:center;gap:1px;flex-shrink:0}.inline-filter-reorder{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.55rem;padding:0 1px;line-height:1}.inline-filter-reorder:hover{color:var(--text)}.inline-filter-delete{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0 2px;display:flex}.inline-filter-delete:hover{color:var(--live)}.inline-filter-settings{padding:4px 6px 6px;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border)}.inline-filter-setting{display:grid;grid-template-columns:60px 1fr 48px;align-items:center;gap:4px}.inline-filter-setting label{font-size:.65rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-filter-setting input[type=range]{width:100%;height:4px;accent-color:var(--accent)}.inline-filter-value{font-size:.62rem;color:var(--text);text-align:right;font-family:monospace}.inline-filter-bool{background:none;border:none;color:var(--muted);cursor:pointer}.inline-filter-bool.on{color:var(--accent)}.inline-filter-no-settings{font-size:.65rem;color:var(--text-secondary);text-align:center;padding:2px}.inline-filter-add-btn{font-size:.7rem;padding:3px 8px;margin-top:4px;background:var(--bg-hover);border:1px dashed var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;text-align:center}.inline-filter-add-btn:hover{border-color:var(--accent);color:var(--accent)}.inline-filter-create{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding:4px;background:var(--bg-secondary);border-radius:4px}.inline-filter-create select,.inline-filter-create input{font-size:.7rem;padding:3px 6px;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;color:var(--text)}.inline-filter-create-btns{display:flex;gap:4px}.inline-filter-create-ok{flex:1;font-size:.65rem;padding:2px 8px;background:var(--accent);border:none;border-radius:3px;color:#fff;cursor:pointer}.inline-filter-create-cancel{font-size:.65rem;padding:2px 8px;background:var(--bg-hover);border:1px solid var(--border);border-radius:3px;color:var(--text-secondary);cursor:pointer}.source-filter-btn{display:flex;align-items:center;gap:3px;background:var(--bg-hover);border:1px solid var(--border);border-radius:4px;padding:2px 6px;cursor:pointer;color:var(--text-secondary);font-size:.65rem;flex-shrink:0;transition:all .15s ease}.source-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.source-filter-btn.has-active{background:#6c5ce726;border-color:var(--accent);color:var(--accent)}.source-filter-count{font-weight:700}.source-filter-popover{position:absolute;right:0;top:calc(100% + 4px);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:6px;min-width:240px;max-width:320px;max-height:360px;overflow-y:auto;z-index:50;box-shadow:0 4px 16px #00000080}.stream-stats{display:flex;flex-wrap:wrap;gap:1.5rem}.stat{display:flex;flex-direction:column;gap:.15rem}.stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.stat-value{font-size:1.1rem;font-weight:600;font-family:monospace}.stat-live .stat-value{color:var(--live);text-shadow:0 0 8px var(--live-glow)}.stat-warning .stat-value{color:var(--warning)}.reconnect-overlay{position:fixed;inset:0;background-color:#0f1117b3;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.reconnect-message{background-color:var(--bg-panel);border:1px solid var(--warning);color:var(--warning);padding:1.2rem 2.5rem;border-radius:var(--radius);font-weight:600;font-size:1.1rem;animation:pulse 1.5s ease-in-out infinite;display:flex;align-items:center;gap:12px}.reconnect-spinner{width:20px;height:20px;border:2px solid rgba(245,158,11,.3);border-top-color:var(--warning);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.command-error-toast{position:fixed;bottom:calc(var(--mixer-height, 210px) + 10px);left:50%;transform:translate(-50%);background-color:var(--live);color:#fff;padding:.5rem 1.25rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;z-index:200;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-container{position:fixed;top:56px;right:12px;z-index:300;display:flex;flex-direction:column;gap:6px;max-width:380px;pointer-events:none}.toast-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel);color:var(--text-primary);font-size:.82rem;box-shadow:0 4px 16px #0006;animation:toast-slide-in .2s ease-out;pointer-events:auto}@keyframes toast-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-icon{flex-shrink:0}.toast-message{flex:1;min-width:0;word-break:break-word}.toast-close{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;line-height:1;border-radius:3px}.toast-close:hover{color:var(--text-primary);background:var(--bg-secondary)}.toast-info{border-left:3px solid var(--accent)}.toast-info .toast-icon{color:var(--accent)}.toast-success{border-left:3px solid var(--success, #2ecc71)}.toast-success .toast-icon{color:var(--success, #2ecc71)}.toast-warning{border-left:3px solid var(--warning, #f5a623)}.toast-warning .toast-icon{color:var(--warning, #f5a623)}.toast-error{border-left:3px solid var(--live)}.toast-error .toast-icon{color:var(--live)}.filter-panel{display:flex;flex-direction:column;gap:.5rem}.filter-source-tabs{display:flex;gap:.25rem;flex-wrap:wrap}.filter-source-tab{font-size:.75rem;font-weight:500;padding:.35em .75em;background-color:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:.4rem}.filter-source-tab:hover{border-color:var(--accent);color:var(--text-primary)}.filter-source-tab.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.filter-tab-count{font-size:.65rem;font-weight:700;background-color:#fff3;padding:.1em .4em;border-radius:100px}.filter-source-tab:not(.active) .filter-tab-count{background-color:#ffffff0f}.filter-list{display:flex;flex-direction:column;gap:.25rem}.filter-empty{color:var(--muted);font-size:.85rem;padding:.5rem 0}.filter-card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:opacity .15s ease}.filter-card.filter-disabled{opacity:.5}.filter-card-header{display:flex;align-items:center;gap:.4rem;padding:.4rem .5rem}.filter-reorder-btns{display:flex;flex-direction:column;gap:1px}.filter-reorder-btn{font-size:.5rem;padding:0;width:18px;height:14px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:2px;cursor:pointer;line-height:1}.filter-reorder-btn:disabled{opacity:.25;cursor:default}.filter-reorder-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.filter-card-expand{flex:1;display:flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text-primary);cursor:pointer;padding:.2em 0;text-align:left;min-width:0}.filter-card-name{font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-card-kind{font-size:.7rem;color:var(--text-secondary);flex-shrink:0}.filter-enable-toggle{font-size:.65rem;font-weight:700;padding:.2em .5em;min-width:34px;border-radius:3px;background-color:var(--bg-hover);border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:all .15s ease}.filter-enable-toggle.enabled{background-color:var(--accent);border-color:var(--accent);color:#fff}.filter-delete-btn{font-size:1rem;font-weight:700;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--muted);border-radius:3px;cursor:pointer;opacity:0;transition:all .15s ease}.filter-card:hover .filter-delete-btn{opacity:1}.filter-delete-btn:hover{background-color:#ff3b5c26;border-color:var(--live);color:var(--live)}.filter-card-settings{padding:.5rem .75rem .75rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.filter-setting{display:flex;flex-direction:column;gap:.2rem}.filter-setting-label{font-size:.7rem;color:var(--text-secondary);font-weight:500}.filter-setting-control{display:flex;align-items:center;gap:.5rem}.filter-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,var(--accent) 0%,var(--bg-hover) 100%);border-radius:2px;outline:none}.filter-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--text-primary);border-radius:50%;cursor:pointer;box-shadow:0 1px 4px #0006}.filter-setting-value{font-size:.75rem;font-family:monospace;color:var(--text-secondary);min-width:60px;text-align:right}.filter-setting-bool{font-size:.65rem;font-weight:700;padding:.2em .5em;border-radius:3px;background-color:var(--bg-hover);border:1px solid var(--border);color:var(--muted);cursor:pointer}.filter-setting-bool.on{background-color:var(--accent);border-color:var(--accent);color:#fff}.filter-setting-text{flex:1;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);padding:.25em .5em;font-size:.8rem;font-family:monospace}.filter-no-settings{color:var(--muted);font-size:.8rem}.filter-add-btn{font-size:.8rem;font-weight:500;padding:.4em .75em;background:transparent;border:1px dashed var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;width:100%}.filter-add-btn:hover{border-color:var(--accent);color:var(--accent)}.filter-create-dialog{display:flex;flex-direction:column;gap:.4rem;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius)}.filter-create-select,.filter-create-input{background-color:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);padding:.4em .6em;font-size:.85rem}.filter-create-actions{display:flex;gap:.4rem}.filter-create-confirm{flex:1;font-size:.8rem;font-weight:600;padding:.4em;background-color:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer}.filter-create-confirm:hover{background-color:var(--accent-hover)}.filter-create-cancel{font-size:.8rem;padding:.4em .75em;background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer}.filter-create-cancel:hover{border-color:var(--text-secondary)}.settings-overlay{position:fixed;inset:0;background-color:#0f111799;display:flex;align-items:flex-start;justify-content:flex-end;padding:48px 8px 8px;z-index:80}.settings-dialog{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;width:100%;max-width:320px;max-height:calc(100vh - 64px);overflow-y:auto;box-shadow:0 8px 32px #00000080}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.settings-header h2{font-size:1rem;font-weight:600;margin:0}.settings-close-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;font-size:.9rem}.settings-close-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.settings-section{margin-bottom:1rem}.settings-section h3{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.settings-language-toggle{display:flex;gap:.5rem}.lang-btn{padding:.35rem 1rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8rem;transition:all .15s}.lang-btn:hover{border-color:var(--accent);color:var(--text-primary)}.lang-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.settings-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0;cursor:default}.settings-row>span:first-child{font-size:.85rem;font-weight:500;flex:1}.settings-hint{font-size:.7rem;color:var(--text-secondary);width:100%;order:3}.settings-toggle-btn{font-size:.65rem;font-weight:700;padding:.2em .6em;border-radius:3px;background-color:var(--bg-hover);border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:all .15s ease}.settings-toggle-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.settings-select{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);padding:.3em .5em;font-size:.8rem;font-family:inherit}@media(max-width:899px){.cockpit-grid{grid-template-columns:1fr!important}.panel-resizer-vertical,.transition-column,.mixer-bar.mixer-collapsed{display:none}.channel-mute-btn{min-width:36px;min-height:36px}.fader-input{min-width:24px}}@media(max-width:599px){.cockpit-header{flex-wrap:wrap;padding:.25rem .5rem;gap:.25rem}.cockpit-header h1{font-size:.9rem}.header-right{width:100%;justify-content:flex-end;gap:.25rem;flex-wrap:wrap}.panel-toggles{display:none}.setting-toggle,.studio-mode-btn,.settings-btn{font-size:.7rem;padding:.2em .4em}.scene-list-thumb{width:48px}.scene-hover-preview{display:none!important}.cockpit-grid{padding:.25rem;gap:.25rem}.preview-monitor{margin-bottom:.25rem}.channel-filter-dropdown,.source-filter-popover{min-width:200px}}.stream-stats-panel{padding:4px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.stream-stats-grid{display:flex;gap:24px;align-items:center}.stream-stat{display:flex;align-items:center;gap:6px;font-size:.75rem}.stream-stat-label{color:var(--text-secondary)}.stream-stat-value{font-family:monospace;color:var(--text-primary)}.stream-stat-warning .stream-stat-value{color:var(--warning)}.stream-stat-critical .stream-stat-value{color:var(--live)}.audio-health-panel{padding:4px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.audio-health-grid{display:flex;gap:24px;align-items:center}.audio-health-item{display:flex;align-items:center;gap:6px;font-size:.75rem}.audio-health-label{color:var(--text-secondary);min-width:40px}.audio-health-bar-container{width:80px;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}.audio-health-bar{height:100%;border-radius:3px;transition:width .3s ease,background-color .3s ease}.audio-health-value{font-family:monospace;min-width:50px;text-align:right}.audio-health-status{font-weight:600;font-size:.65rem;text-transform:uppercase}.audio-health-muted .audio-health-value{color:var(--text-secondary);font-style:italic;font-family:inherit}.audio-health-alert{font-size:.7rem;padding-top:2px}.audio-health-panic{display:flex;align-items:center;gap:8px;margin-left:auto}.panic-btn{background:var(--live);color:#fff;border:none;padding:3px 12px;border-radius:var(--radius);font-size:.7rem;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:opacity .15s ease}.panic-btn:hover:not(:disabled){opacity:.85}.panic-btn:disabled{opacity:.3;cursor:not-allowed}.panic-undo-btn{background:var(--warning);color:var(--bg-primary);border:none;padding:3px 12px;border-radius:var(--radius);font-size:.7rem;font-weight:700;cursor:pointer}.panic-undo-btn:hover{opacity:.85}.panic-feedback{font-size:.65rem;color:var(--text-secondary);font-style:italic}.audio-suggestion-panel{padding:4px 16px;display:flex;flex-direction:column;gap:4px}.audio-suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 8px;background:var(--bg-secondary);border-left:3px solid var(--border);border-radius:0 var(--radius) var(--radius) 0;font-size:.75rem}.audio-suggestion-text{color:var(--text-primary);flex:1;min-width:0}.audio-suggestion-actions{display:flex;gap:6px;flex-shrink:0}.suggestion-apply-btn{background:var(--accent);color:#fff;border:none;padding:2px 8px;border-radius:var(--radius);font-size:.65rem;font-weight:600;cursor:pointer}.suggestion-apply-btn:hover{background:var(--accent-hover)}.suggestion-dismiss-btn{background:none;color:var(--text-secondary);border:1px solid var(--border);padding:2px 8px;border-radius:var(--radius);font-size:.65rem;cursor:pointer}.suggestion-dismiss-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.suggestion-undo-btn{background:var(--warning);color:var(--bg-primary);border:none;padding:2px 8px;border-radius:var(--radius);font-size:.65rem;font-weight:600;cursor:pointer}.auto-talk-panel{padding:4px 16px;display:flex;align-items:center;gap:16px;font-size:.75rem}.auto-talk-header{display:flex;align-items:center;gap:8px}.auto-talk-label{color:var(--text-secondary);font-weight:600}.auto-talk-toggle{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-secondary);padding:2px 10px;border-radius:var(--radius);font-size:.65rem;font-weight:700;cursor:pointer;text-transform:uppercase;transition:all .15s ease}.auto-talk-toggle.active{background:var(--success);border-color:var(--success);color:#fff}.auto-talk-toggle:disabled{opacity:.5;cursor:not-allowed}.auto-talk-intensity{display:flex;gap:12px}.auto-talk-radio{display:flex;align-items:center;gap:4px;color:var(--text-primary);cursor:pointer;font-size:.7rem}.auto-talk-radio input[type=radio]{accent-color:var(--accent);margin:0}.replay-buffer-controls{display:flex;align-items:center;gap:6px;margin-left:8px}.replay-buffer-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase}.replay-buffer-badge{font-size:.65rem;padding:1px 6px;border-radius:3px;font-weight:600}.replay-buffer-badge.badge-active{background:var(--success);color:#000}.replay-btn{font-size:.65rem;padding:2px 8px;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text-primary);cursor:pointer}.replay-btn:hover{background:var(--surface-hover)}.replay-btn.replay-save{border-color:var(--success);color:var(--success)}.replay-btn.replay-saved{background:var(--success);color:#000}.replay-btn.replay-stop{border-color:var(--live);color:var(--live)}.source-reorder-btns{display:flex;flex-direction:column;gap:1px;margin-right:4px}.reorder-btn{display:flex;align-items:center;justify-content:center;width:18px;height:14px;padding:0;border:1px solid var(--border);border-radius:2px;background:transparent;color:var(--text-secondary);cursor:pointer}.reorder-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.reorder-btn:disabled{opacity:.3;cursor:default}.channel-monitoring-select{width:100%;font-size:.6rem;padding:1px 2px;margin-top:2px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:2px;cursor:pointer}.channel-monitoring-select:hover{border-color:var(--text-secondary)}.portal-page{display:flex;flex-direction:column;min-height:100vh;background:var(--bg, #111);color:var(--text, #e0e0e0)}.portal-header-bar{display:flex;align-items:center;gap:16px;padding:0 20px;height:48px;background:var(--surface, #1a1a2e);border-bottom:1px solid var(--border, #333);flex-shrink:0}a.portal-brand{display:flex;align-items:center;text-decoration:none}.portal-brand .logo-svg{height:28px;margin-bottom:0}.portal-brand h1{font-size:1rem;font-weight:700;margin:0;white-space:nowrap}.portal-nav{display:flex;gap:4px;flex:1;overflow-x:auto}.portal-nav-link{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;text-decoration:none;color:var(--text-secondary, #888);font-size:.85rem;white-space:nowrap;transition:background .15s,color .15s}.portal-nav-link:hover{background:#ffffff0f;color:var(--text, #e0e0e0)}.portal-nav-link.active{background:#ffffff1a;color:#fff}.portal-user-info{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0;margin-right:32px}.portal-user-name{font-size:.85rem;color:var(--text-secondary, #888)}.portal-logout-btn{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;color:var(--text-secondary, #888);cursor:pointer;border-radius:4px}.portal-logout-btn:hover{color:#e74c3c;background:#e74c3c1a}.portal-content{flex:1;padding:24px;max-width:960px;width:100%;margin:0 auto}.portal-home h2{margin:0 0 20px;font-size:1.3rem}.portal-quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.portal-action-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px;color:var(--text, #e0e0e0);cursor:pointer;transition:border-color .15s,background .15s;font-size:.9rem}.portal-action-card:hover{border-color:var(--accent, #6c5ce7);background:#6c5ce70f}.portal-placeholder{text-align:center;padding:48px 24px;color:var(--text-secondary, #888)}.portal-placeholder h2{color:var(--text, #e0e0e0);margin-bottom:12px}.settings-info{text-align:left;max-width:400px;margin:0 auto 24px}.settings-info p{margin:8px 0}@media(max-width:700px){.portal-header-bar{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.portal-nav{order:3;width:100%}.portal-content{padding:16px}}.portal-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.portal-page-header h2{margin:0;font-size:1.3rem}.portal-page-actions{display:flex;align-items:center;gap:12px}.portal-slot-info{font-size:.85rem;color:var(--text-secondary, #888)}.portal-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border, #333);border-radius:6px;background:var(--surface, #1a1a2e);color:var(--text, #e0e0e0);font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s}.portal-btn:hover{background:#ffffff14;border-color:var(--text-secondary, #888)}.portal-btn:disabled{opacity:.5;cursor:not-allowed}.portal-btn-primary{background:var(--accent, #6c5ce7);border-color:var(--accent, #6c5ce7);color:#fff}.portal-btn-primary:hover{background:#5a4bd6;border-color:#5a4bd6}.portal-btn-danger{background:#e74c3c;border-color:#e74c3c;color:#fff}.portal-btn-danger:hover{background:#c0392b}.portal-btn-danger-subtle{color:var(--text-secondary, #888)}.portal-btn-danger-subtle:hover{color:#e74c3c;border-color:#e74c3c;background:#e74c3c1a}.portal-btn-sm{padding:4px 8px;font-size:.8rem}.portal-btn-active{background:var(--accent, #6c5ce7);border-color:var(--accent, #6c5ce7);color:#fff}.portal-btn-wide{width:100%;justify-content:center}.portal-section{margin-bottom:24px}.portal-section-title{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--text-secondary, #888);margin:0 0 8px;font-weight:600}.portal-section-hint{font-size:.8rem;color:var(--text-secondary, #888);margin:0 0 12px}.portal-loading{text-align:center;padding:32px;color:var(--text-secondary, #888)}.portal-error{padding:10px 14px;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:6px;color:#e74c3c;margin-bottom:16px;font-size:.85rem;display:flex;align-items:center;gap:8px}.portal-empty{text-align:center;padding:48px 24px;color:var(--text-secondary, #888)}.portal-empty .hint{font-size:.85rem;margin-top:8px}.portal-confirm-row{display:flex;align-items:center;gap:6px}.portal-confirm-text{font-size:.8rem;color:#e74c3c}.portal-hint{font-size:.8rem;color:var(--text-secondary, #888);margin-top:8px}.portal-hint code{font-size:.75rem;background:#ffffff0f;padding:2px 6px;border-radius:3px;word-break:break-all}.portal-form-group{margin-bottom:16px}.portal-form-group label{display:block;font-size:.8rem;color:var(--text-secondary, #888);margin-bottom:6px;font-weight:600}.portal-form-group input,.portal-form-group select{width:100%;padding:8px 10px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:6px;color:var(--text, #e0e0e0);font-size:.85rem;box-sizing:border-box}.portal-form-group input:focus,.portal-form-group select:focus{outline:none;border-color:var(--accent, #6c5ce7)}.portal-mod-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px;margin-bottom:8px;gap:12px}.portal-mod-card.online{border-left:3px solid var(--success, #2ecc71)}.portal-mod-card.self{border-left:3px solid var(--accent, #6366f1);opacity:.85}.portal-mod-info{flex:1;min-width:0}.portal-mod-name-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.portal-mod-name{font-weight:600;font-size:.9rem}.portal-mod-profile-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;background:#6c5ce726;color:var(--accent, #6c5ce7)}.portal-mod-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.portal-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.portal-profile-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px;gap:12px}.portal-profile-card.system{opacity:.8}.portal-profile-info{flex:1;min-width:0;overflow:hidden}.portal-profile-info .perm-compact{flex-wrap:wrap}.portal-profile-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.9rem;margin-bottom:6px}.portal-profile-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.portal-invite-code{font-size:2rem;font-weight:700;letter-spacing:.2em;text-align:center;padding:16px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px;margin:12px 0;font-family:monospace}.portal-invite-result{text-align:center}.portal-invite-accept-result{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 0}.portal-invite-icon.success{color:var(--success, #2ecc71)}.portal-invite-icon.error{color:#e74c3c}.perm-sliders{padding:8px 0}.perm-slider-row{margin-bottom:14px}.perm-slider-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.perm-slider-icon{display:flex;align-items:center;color:var(--text-secondary, #888)}.perm-slider-label{font-size:.8rem;font-weight:600}.perm-slider-value{margin-left:auto;font-size:.75rem;color:var(--accent, #6c5ce7);font-weight:600}.perm-slider-value.perm-danger{color:var(--live, #FF3B5C)}.perm-slider-track{position:relative}.perm-range{width:100%;-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--border, #333);outline:none;cursor:pointer}.perm-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent, #6c5ce7);cursor:pointer;border:2px solid var(--bg, #111)}.perm-range-danger::-webkit-slider-thumb{background:var(--live, #FF3B5C)}.perm-range:disabled{cursor:default;opacity:.7}.perm-slider-marks{display:flex;justify-content:space-between;margin-top:2px}.perm-mark{font-size:.65rem;color:var(--text-secondary, #888);opacity:.5}.perm-mark.perm-mark-active{opacity:1;color:var(--text, #e0e0e0)}.perm-trust-row{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border, #333)}.perm-trust-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:.7rem;font-weight:700;color:#000}.perm-trust-sum{font-size:.75rem;color:var(--text-secondary, #888)}.perm-compact{display:flex;gap:8px;align-items:center}.perm-dots{display:inline-flex;align-items:center;gap:3px;color:var(--text-secondary, #888)}.perm-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--border, #333)}.perm-dot.perm-dot-filled{background:var(--accent, #6c5ce7)}.perm-v2{display:flex;flex-direction:column;gap:8px}.perm-v2-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.perm-v2-mode-row{display:flex;align-items:center;gap:10px}.perm-v2-mode-toggle{display:inline-flex;border-radius:6px;overflow:hidden;border:1px solid var(--border, #333)}.perm-v2-mode-btn{padding:4px 12px;font-size:.75rem;font-weight:600;background:transparent;color:var(--text-secondary, #888);border:none;cursor:pointer;transition:background .15s,color .15s}.perm-v2-mode-btn:hover{color:var(--text, #e0e0e0)}.perm-v2-mode-btn.active{background:var(--accent, #6c5ce7);color:#fff}.perm-v2-preset{position:relative}.perm-v2-preset-btn{padding:4px 12px;font-size:.75rem;font-weight:600;background:var(--panel-bg, #1a1a2e);color:var(--text-secondary, #888);border:1px solid var(--border, #333);border-radius:6px;cursor:pointer;transition:color .15s,border-color .15s}.perm-v2-preset-btn:hover{color:var(--text, #e0e0e0);border-color:var(--accent, #6c5ce7)}.perm-v2-preset-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:220px;background:var(--card-bg, #16213e);border:1px solid var(--border, #333);border-radius:8px;box-shadow:0 4px 16px #0006;overflow:hidden}.perm-v2-preset-item{display:flex;flex-direction:column;width:100%;padding:8px 12px;background:transparent;border:none;border-bottom:1px solid var(--border, #333);cursor:pointer;text-align:left;transition:background .12s}.perm-v2-preset-item:last-child{border-bottom:none}.perm-v2-preset-item:hover{background:#6c5ce71a}.perm-v2-preset-name{font-size:.8rem;font-weight:600;color:var(--text, #e0e0e0)}.perm-v2-preset-desc{font-size:.7rem;color:var(--text-secondary, #888);margin-top:2px}.perm-trust-row{display:flex;align-items:center;gap:10px}.perm-v2-platform{border:1px solid var(--border, #333);border-radius:8px;overflow:hidden;transition:opacity .2s}.perm-v2-platform-disabled{opacity:.5}.perm-v2-platform-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.perm-v2-platform-header:hover{background:#ffffff08}.perm-v2-chevron{display:flex;align-items:center;color:var(--text-secondary, #888)}.perm-v2-platform-name{font-size:.85rem;font-weight:600}.perm-v2-platform-toggle{cursor:pointer}.perm-v2-toggle{display:inline-flex;align-items:center;width:32px;height:18px;border-radius:9px;background:var(--border, #333);padding:2px;transition:background .2s;cursor:pointer}.perm-v2-toggle-on{background:var(--accent, #6c5ce7)}.perm-v2-toggle-knob{display:block;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s}.perm-v2-toggle-on .perm-v2-toggle-knob{transform:translate(14px)}.perm-v2-categories{padding:8px 14px 12px;border-top:1px solid var(--border, #333)}.perm-v2-actions{margin-top:6px;padding-left:4px;border-left:2px solid var(--border, #333)}.perm-v2-action{display:flex;align-items:center;gap:6px;padding:3px 8px;font-size:.75rem;border-radius:4px;cursor:pointer;transition:background .12s}.perm-v2-action:hover{background:#ffffff0a}.perm-v2-action.selected{background:#6c5ce71f}.perm-v2-action-icon{display:flex;align-items:center}.perm-v2-action-icon.allowed{color:var(--success, #2ecc71)}.perm-v2-action-icon.denied{color:var(--text-secondary, #888)}.perm-v2-action-name{flex:1;color:var(--text, #e0e0e0)}.perm-v2-action-risk{display:inline-flex;align-items:center;gap:3px;font-size:.65rem;font-weight:600;padding:1px 5px;border-radius:4px}.perm-v2-action-risk.risk-low{color:var(--success, #2ecc71);background:#2ecc711a}.perm-v2-action-risk.risk-medium{color:var(--warning, #f1c40f);background:#f1c40f1a}.perm-v2-action-risk.risk-high{color:var(--live, #e63946);background:#e639461a}.perm-v2-override-btn{padding:2px 8px;font-size:.65rem;font-weight:600;border:1px solid var(--border, #333);border-radius:4px;background:transparent;color:var(--text-secondary, #888);cursor:pointer;transition:color .12s,border-color .12s}.perm-v2-override-btn:hover{color:var(--text, #e0e0e0);border-color:var(--accent, #6c5ce7)}.perm-v2-disabled-hint{display:flex;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid var(--border, #333);font-size:.8rem;color:var(--text-secondary, #888)}.perm-v2-action-detail{padding:10px 14px;border:1px solid var(--border, #333);border-radius:8px;background:var(--panel-bg, #1a1a2e);font-size:.8rem}.perm-v2-action-detail strong{display:block;margin-bottom:6px}.perm-v2-detail-row{display:flex;align-items:center;gap:8px;padding:2px 0}.perm-v2-detail-row span:first-child{color:var(--text-secondary, #888);font-size:.75rem;min-width:70px}.perm-v2-detail-row code{font-family:monospace;font-size:.75rem;padding:1px 6px;background:#ffffff0f;border-radius:3px}.perm-v2-badge{display:flex;align-items:center;gap:8px}.perm-v2-badge-platforms{font-size:.75rem;color:var(--text-secondary, #888)}.portal-home-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:24px}.portal-summary-card{padding:16px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px}.portal-summary-card h3{margin:0 0 8px;font-size:.9rem}.portal-summary-stats{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--text-secondary, #888)}.portal-summary-online{display:flex;align-items:center;gap:4px;color:var(--success, #2ecc71)}.guest-timer-bar{position:relative;height:32px;background:var(--surface, #1a1a2e);border-bottom:1px solid var(--border, #333);overflow:hidden;flex-shrink:0}.guest-timer-bar.warning{background:#f1c40f1a;border-bottom-color:#f1c40f4d}.guest-timer-bar.critical{background:#e74c3c26;border-bottom-color:#e74c3c66;animation:guest-timer-pulse 1s ease-in-out infinite}@keyframes guest-timer-pulse{0%,to{opacity:1}50%{opacity:.7}}.guest-timer-progress{position:absolute;top:0;left:0;height:100%;background:#6c5ce726;transition:width 1s linear}.guest-timer-bar.warning .guest-timer-progress{background:#f1c40f33}.guest-timer-bar.critical .guest-timer-progress{background:#e74c3c33}.guest-timer-content{position:relative;display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 12px;z-index:1}.guest-timer-left{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text, #e0e0e0)}.guest-timer-bar.warning .guest-timer-left{color:#f1c40f}.guest-timer-bar.critical .guest-timer-left{color:#e74c3c;font-weight:600}.guest-timer-register-btn{display:flex;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;background:var(--accent, #6c5ce7);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.guest-timer-register-btn:hover{background:#5a4bd6}.guest-expired-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.guest-expired-card{background:var(--bg, #111);border:1px solid var(--border, #333);border-radius:12px;padding:32px;max-width:420px;width:100%;text-align:center}.guest-expired-card h2{margin:0 0 12px;font-size:1.2rem}.guest-expired-card p{margin:8px 0;color:var(--text-secondary, #888);font-size:.9rem}.guest-expired-card ul{list-style:none;padding:0;margin:12px 0 20px;text-align:left}.guest-expired-card li{padding:4px 0;font-size:.85rem;color:var(--text, #e0e0e0)}.guest-expired-card li:before{content:"✓";color:var(--success, #2ecc71);margin-right:6px}.guest-expired-card .portal-btn{margin-top:8px}.guest-expired-hint{font-size:.75rem!important;margin-top:16px!important}.device-auth-icon{color:var(--accent);opacity:.9}.device-auth-user{font-size:.9rem;color:var(--text-secondary)}.device-auth-user strong{color:var(--text-primary)}.device-auth-code-input{width:100%}.device-auth-code-input input{width:100%;padding:.8rem 1rem;border-radius:8px;border:2px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:1.4rem;font-family:monospace;letter-spacing:.3em;text-align:center;outline:none;transition:border-color .15s;box-sizing:border-box}.device-auth-code-input input:focus{border-color:var(--accent)}.device-auth-code-input input::placeholder{font-size:1rem;letter-spacing:.1em;color:var(--text-secondary);opacity:.5}.device-auth-actions{display:flex;flex-direction:column;gap:8px;width:100%}.device-auth-result{display:flex;flex-direction:column;align-items:center;gap:12px;padding:1.5rem;border-radius:8px;text-align:center}.device-auth-result.success{color:#4caf50}.device-auth-result.success p{color:var(--text-primary)}.device-auth-close-hint{font-size:.8rem;color:var(--text-secondary);margin-top:.5rem}.device-auth-result.error{flex-direction:row;color:#ef5350;background:#ef53501a;padding:.75rem 1rem;font-size:.85rem}.device-auth-result.error p{color:#ef5350;margin:0}.landing-page{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:3rem 1.5rem 2rem;gap:2rem}.landing-brand h1{font-size:2.5rem;font-weight:700;color:var(--accent);text-align:center;margin:0}.landing-brand p{color:var(--text-secondary);text-align:center;margin:.25rem 0 0;font-size:1rem}.landing-split{display:flex;gap:0;max-width:820px;width:100%;background:var(--bg-panel, #161822);border:1px solid var(--border);border-radius:12px;overflow:hidden}.landing-panel{flex:1;padding:2rem;display:flex;flex-direction:column;gap:1rem}.landing-panel-header{display:flex;align-items:center;gap:.5rem;color:var(--text-primary)}.landing-panel-header h2{font-size:1.15rem;font-weight:600;margin:0;text-transform:none;letter-spacing:0}.landing-panel-desc{font-size:.85rem;color:var(--text-secondary);margin:0}.landing-connect-form{display:flex;flex-direction:column;gap:.75rem}.landing-code-input{text-align:center;font-size:1.6rem;font-weight:700;letter-spacing:.4em;padding:.6em .5em;border-radius:8px;border:2px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .15s;font-family:monospace}.landing-code-input:focus{border-color:var(--accent)}.landing-code-input::placeholder{font-size:1.2rem;letter-spacing:.2em;opacity:.4}.landing-connect-btn{background-color:var(--accent);border:none;color:#fff;font-size:1rem;font-weight:600;padding:.7em;border-radius:6px;cursor:pointer;transition:background-color .15s}.landing-connect-btn:hover:not(:disabled){background-color:var(--accent-hover, color-mix(in srgb, var(--accent) 85%, white))}.landing-connect-btn:disabled{opacity:.5;cursor:not-allowed}.landing-guest-hint{font-size:.78rem;color:var(--text-secondary);margin:0;opacity:.8;line-height:1.4}.landing-approval{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 0}.landing-error{color:var(--live);font-size:.85rem;padding:.5rem .75rem;background:#ff3b5c1a;border:1px solid rgba(255,59,92,.3);border-radius:6px}.landing-divider{display:flex;align-items:center;justify-content:center;width:1px;background:var(--border);position:relative;flex-shrink:0}.landing-divider span{position:absolute;background:var(--bg-panel, #161822);padding:.75rem 0;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em}.landing-login-form{display:flex;flex-direction:column;gap:.4rem}.landing-login-form label{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem}.landing-login-form input{padding:.6rem .8rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;outline:none;transition:border-color .15s}.landing-login-form input:focus{border-color:var(--accent)}.landing-login-btn{margin-top:.5rem;padding:.65rem;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .15s}.landing-login-btn:hover:not(:disabled){background:var(--accent-hover, color-mix(in srgb, var(--accent) 85%, white))}.landing-login-btn:disabled{opacity:.5;cursor:not-allowed}.landing-or-divider{display:flex;align-items:center;gap:.75rem;margin:.25rem 0}.landing-or-divider:before,.landing-or-divider:after{content:"";flex:1;height:1px;background:var(--border)}.landing-or-divider span{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.landing-twitch-btn{width:100%;padding:.6rem;border-radius:6px;border:none;background:#9146ff;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .15s}.landing-twitch-btn:hover{background:#7c3aed}.landing-register-link{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.landing-register-link .link-btn{display:inline-flex;align-items:center;gap:.3rem}.auth-or-divider{display:flex;align-items:center;gap:.75rem;width:100%}.auth-or-divider:before,.auth-or-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-or-divider span{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.auth-twitch-btn{width:100%}.portal-quick-connect{margin-bottom:16px}.portal-quick-connect-form{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px}.portal-quick-connect-icon{color:var(--text-secondary, #888);flex-shrink:0}.portal-quick-connect-input{flex:1;padding:6px 10px;background:var(--bg, #111);border:1px solid var(--border, #333);border-radius:6px;color:var(--text, #e0e0e0);font-size:.95rem;font-family:monospace;font-weight:600;letter-spacing:.15em;outline:none;max-width:180px}.portal-quick-connect-input:focus{border-color:var(--accent, #6c5ce7)}.portal-quick-connect-input::placeholder{font-weight:400;letter-spacing:0;opacity:.5}.portal-quick-connect-error{margin-top:6px;padding:6px 12px;font-size:.8rem;color:#e74c3c;background:#e74c3c1a;border-radius:6px}@media(max-width:700px){.landing-split{flex-direction:column}.landing-divider{width:100%;height:1px;flex-direction:row}.landing-divider span{position:static;padding:0 .75rem;background:var(--bg-panel, #161822)}.landing-panel{padding:1.5rem}.landing-page{padding:2rem 1rem}}@media(max-width:480px){.landing-page{padding:1rem .75rem 2rem}.landing-panel{padding:1rem;gap:.75rem}.landing-login-form{gap:.4rem}.landing-login-form input{padding:.6rem}.landing-login-form h2,.landing-quick-connect-title,.landing-login-title{font-size:1.1rem;margin-bottom:.25rem}.beta-banner{font-size:.6rem;padding:.15rem .4rem;right:.4rem;top:.4rem}.build-hash-footer,.version-indicator{margin-bottom:.5rem;padding-bottom:1rem}}@media(max-width:600px){.portal-page-header,.portal-mod-card{flex-direction:column;align-items:flex-start}.portal-mod-actions{align-self:flex-end}.portal-profile-grid{grid-template-columns:1fr}.portal-modal{max-width:100%}}.scene-list-wrapper,.preview-panel-wrapper{display:flex;flex-direction:column;overflow:hidden}.scene-list-wrapper>.scene-list-panel,.preview-panel-wrapper>.panel{flex:1;overflow-y:auto}.creation-bar{display:flex;gap:6px;padding:6px 10px;border-top:1px solid var(--border, rgba(255,255,255,.06));background:var(--bg-panel, #161822)}.creation-add-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px dashed var(--border, rgba(255,255,255,.15));border-radius:6px;background:transparent;color:var(--text-dim, #8a8e9a);font-size:.75rem;cursor:pointer;transition:all .15s}.creation-add-btn:hover{border-color:var(--accent, #6C5CE7);color:var(--accent, #6C5CE7);background:#6c5ce70f}.creation-dialog{background:var(--bg-elevated, #1e2030);border:1px solid var(--border, rgba(255,255,255,.08));border-radius:8px;overflow:hidden}.creation-dialog-inline{margin:6px 10px}.creation-dialog-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:440px;max-height:80vh;overflow-y:auto;z-index:1000;box-shadow:0 8px 32px #00000080}.creation-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border, rgba(255,255,255,.06));font-size:.85rem;font-weight:600;color:var(--text, #e0e0e8)}.creation-dialog-close{background:none;border:none;color:var(--text-dim, #8a8e9a);cursor:pointer;padding:2px;border-radius:4px}.creation-dialog-close:hover{color:var(--text, #e0e0e8);background:#ffffff0d}.creation-dialog-body{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.creation-label{font-size:.75rem;color:var(--text-dim, #8a8e9a);text-transform:uppercase;letter-spacing:.04em}.creation-label-section{margin-top:8px;padding-top:8px;border-top:1px solid var(--border, rgba(255,255,255,.06))}.creation-input,.creation-select{width:100%;padding:7px 10px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:6px;background:var(--bg-input, #131520);color:var(--text, #e0e0e8);font-size:.85rem;outline:none}.creation-input:focus,.creation-select:focus{border-color:var(--accent, #6C5CE7)}.creation-error{font-size:.75rem;color:var(--live, #e74c3c);padding:4px 14px}.creation-loading{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-dim, #8a8e9a);padding:4px 0}.creation-empty{font-size:.8rem;color:var(--text-dim, #8a8e9a);padding:12px 0;text-align:center}.creation-properties{display:flex;flex-direction:column;gap:6px}.creation-tabs{display:flex;border-bottom:1px solid var(--border, rgba(255,255,255,.06))}.creation-tab{flex:1;padding:8px 12px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim, #8a8e9a);font-size:.78rem;cursor:pointer;transition:color .15s,border-color .15s}.creation-tab:hover{color:var(--text, #e0e0e8)}.creation-tab.active{color:var(--accent, #6C5CE7);border-bottom-color:var(--accent, #6C5CE7)}.creation-search-row{display:flex;align-items:center;gap:6px;color:var(--text-dim, #8a8e9a)}.creation-existing-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto;margin-top:6px}.creation-existing-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:none;border:1px solid transparent;border-radius:6px;color:var(--text, #e0e0e8);font-size:.78rem;cursor:pointer;text-align:left;transition:background .1s}.creation-existing-item:hover{background:#ffffff0a;border-color:var(--border, rgba(255,255,255,.06))}.creation-existing-name{flex:1;font-weight:500}.creation-existing-kind{font-size:.7rem;color:var(--text-dim, #8a8e9a);opacity:.7}.creation-existing-scenes{font-size:.68rem;color:var(--text-dim, #8a8e9a);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.creation-dialog-actions{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border, rgba(255,255,255,.06))}.creation-btn-primary{flex:1;padding:7px 14px;border:none;border-radius:6px;background:var(--accent, #6C5CE7);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.creation-btn-primary:hover:not(:disabled){background:var(--accent-hover, #6a4de8)}.creation-btn-primary:disabled{opacity:.5;cursor:not-allowed}.creation-btn-cancel{padding:7px 14px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:6px;background:transparent;color:var(--text-dim, #8a8e9a);font-size:.8rem;cursor:pointer}.creation-btn-cancel:hover{background:#ffffff0a;color:var(--text, #e0e0e8)}.mc-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mc-modal{background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:12px;width:90%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.mc-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border, rgba(255,255,255,.06))}.mc-modal-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text, #e0e0e8)}.mc-modal-close{background:none;border:none;color:var(--text-dim, #8a8e9a);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.mc-modal-close:hover{color:var(--text, #e0e0e8);background:#ffffff0f}.mc-modal-body{padding:20px;display:flex;flex-direction:column;gap:10px}.mc-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border, rgba(255,255,255,.06))}.mc-modal-label{font-size:.8rem;color:var(--text-dim, #8a8e9a);font-weight:500}.mc-modal-input{width:100%;padding:10px 12px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:8px;background:var(--bg-input, #131520);color:var(--text, #e0e0e8);font-size:.9rem;outline:none}.mc-modal-input:focus{border-color:var(--accent, #6C5CE7)}.mc-modal-error{font-size:.8rem;color:var(--live, #e74c3c)}.mc-modal-actions{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--border, rgba(255,255,255,.06));justify-content:flex-end}.mc-modal-btn-primary{padding:8px 20px;border:none;border-radius:8px;background:var(--accent, #6C5CE7);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.mc-modal-btn-primary:hover:not(:disabled){background:var(--accent-hover, #6a4de8)}.mc-modal-btn-primary:disabled{opacity:.5;cursor:not-allowed}.mc-modal-btn-cancel{padding:8px 16px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:8px;background:transparent;color:var(--text-dim, #8a8e9a);font-size:.85rem;cursor:pointer}.mc-modal-btn-cancel:hover{background:#ffffff0a;color:var(--text, #e0e0e8)}.privacy-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#1a1a2ee6;color:var(--text-dim, #8a8e9a);border-radius:8px;width:100%;height:100%;min-height:80px;font-size:.78rem}.privacy-placeholder.small{min-height:40px;gap:4px;font-size:.7rem}.privacy-banner{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#f59e0b26;border-bottom:1px solid rgba(245,158,11,.3);color:var(--warning, #f59e0b);font-size:.75rem;font-weight:500}.transform-panel{padding:8px;font-size:.75rem;border-top:1px solid var(--border, rgba(255,255,255,.06));background:#00000026}.transform-header{margin-bottom:6px}.transform-title{font-weight:600;font-size:.7rem;color:var(--text-dim, #8a8e9a)}.transform-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.transform-row label{font-size:.65rem;color:var(--text-dim, #8a8e9a);width:20px;text-align:right;flex-shrink:0}.transform-row input[type=number]{width:60px;padding:2px 4px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:3px;background:var(--bg-input, #131520);color:var(--text, #e0e0e8);font-size:.7rem;text-align:center}.transform-row input[type=number]:focus{border-color:var(--accent, #6C5CE7);outline:none}.transform-lock-btn{background:none;border:none;color:var(--text-dim, #8a8e9a);cursor:pointer;padding:2px}.transform-unit{font-size:.65rem;color:var(--text-dim, #8a8e9a)}.transform-crop input{width:40px}.transform-presets{display:flex;gap:4px;margin-top:6px}.transform-presets button{padding:3px 6px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:3px;background:transparent;color:var(--text-dim, #8a8e9a);cursor:pointer;font-size:.65rem}.transform-presets button:hover{background:#ffffff0a;color:var(--text, #e0e0e8)}.audio-routing-panel{padding:8px;overflow:auto}.audio-routing-empty{text-align:center;color:var(--text-dim, #8a8e9a);padding:20px;font-size:.8rem}.audio-routing-matrix{width:fit-content;border-collapse:collapse;font-size:.75rem}.audio-routing-matrix th{padding:4px 6px;text-align:center;font-weight:600;color:var(--text-dim, #8a8e9a);font-size:.7rem;border-bottom:1px solid var(--border, rgba(255,255,255,.06))}.audio-routing-source-col{text-align:left!important;min-width:100px}.audio-routing-track-col{width:32px;position:relative}.audio-routing-track-num{display:block;line-height:1.4}.audio-routing-track-underline{display:block;height:2px;margin-top:2px;border-radius:1px}.audio-routing-track-underline.track-underline-stream{background:#9b59b6}.audio-routing-track-underline.track-underline-vod{background:#f1c40f}.audio-routing-track-col.track-col-stream{color:#c39bd6}.audio-routing-track-col.track-col-vod{color:#f5d76e}.audio-routing-source-name{padding:4px 6px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text, #e0e0e8)}.audio-routing-cell{text-align:center;padding:3px}.audio-routing-toggle{width:24px;height:24px;aspect-ratio:1;border-radius:4px;border:1px solid var(--border, rgba(255,255,255,.15));background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background .12s,border-color .12s,color .12s,transform .12s}.audio-routing-toggle:hover:not(:disabled){border-color:var(--text-dim, #8a8e9a);background:#ffffff0a}.audio-routing-toggle.active{background:var(--success, #2ecc71);border-color:var(--success, #2ecc71);color:#0e1014}.audio-routing-toggle.toggle-stream{background:#9b59b6;border-color:#9b59b6;color:#fff}.audio-routing-toggle.toggle-vod{background:#f1c40f;border-color:#f1c40f;color:#1a1a1a}.audio-routing-toggle.active:hover:not(:disabled){filter:brightness(1.1);transform:scale(1.05)}.audio-routing-toggle:disabled{opacity:.5;cursor:not-allowed}.twitch-status-bar{display:flex;align-items:center;gap:10px;padding:4px 12px;font-size:.72rem;background:#0000004d;border-bottom:1px solid var(--border, rgba(255,255,255,.06))}.twitch-status-bar.live .twitch-status-indicator{color:var(--live, #e63946)}.twitch-status-bar.offline .twitch-status-indicator{color:var(--text-dim, #8a8e9a)}.twitch-status-indicator{display:flex;align-items:center;gap:4px;font-weight:700;font-size:.7rem;letter-spacing:.05em}.twitch-status-viewers{display:flex;align-items:center;gap:3px;color:var(--text-dim, #8a8e9a)}.twitch-status-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim, #8a8e9a)}.twitch-status-game{color:var(--accent, #6C5CE7)}.twitch-status-links{display:flex;gap:6px;margin-left:auto}.twitch-status-links a{color:var(--text-dim, #8a8e9a);opacity:.7;transition:opacity .15s}.twitch-status-links a:hover{opacity:1;color:var(--accent, #6C5CE7)}.info-tooltip-wrapper{display:inline-flex;align-items:center;position:relative;cursor:help;margin-left:4px;vertical-align:middle}.info-tooltip-icon{color:var(--text-dim, #8a8e9a);opacity:.6;transition:opacity .15s}.info-tooltip-wrapper:hover .info-tooltip-icon{opacity:1;color:var(--accent, #6C5CE7)}.info-tooltip-popover{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--surface, #1a1a2e);border:1px solid var(--border, #333);border-radius:8px;padding:8px 12px;font-size:.75rem;line-height:1.4;color:var(--text, #e0e0e8);width:max-content;max-width:280px;z-index:100;box-shadow:0 4px 16px #0006;pointer-events:auto}.dpe{display:flex;flex-direction:column;gap:8px}.dpe-empty{font-size:.8rem;color:var(--text-dim, #8a8e9a);text-align:center;padding:8px}.dpe-field{display:flex;flex-direction:column;gap:3px}.dpe-field-bool{flex-direction:row;align-items:center}.dpe-label{font-size:.75rem;color:var(--text-dim, #8a8e9a)}.dpe-field-bool .dpe-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.8rem;color:var(--text, #e0e0e8)}.dpe-field-bool input[type=checkbox]{accent-color:var(--accent, #6C5CE7)}.dpe-number-control{display:flex;align-items:center;gap:8px}.dpe-slider{flex:1;height:4px;accent-color:var(--accent, #6C5CE7)}.dpe-number-input{width:65px;padding:4px 6px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:4px;background:var(--bg-input, #131520);color:var(--text, #e0e0e8);font-size:.8rem;text-align:right}.dpe-text-input,.dpe-textarea{width:100%;padding:6px 8px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:4px;background:var(--bg-input, #131520);color:var(--text, #e0e0e8);font-size:.8rem}.dpe-textarea{resize:vertical;font-family:inherit}.dpe-select{width:100%;padding:6px 8px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:4px;background:var(--bg-input, #131520);color:var(--text, #e0e0e8);font-size:.8rem}.dpe-color-input{width:48px;height:28px;padding:2px;border:1px solid var(--border, rgba(255,255,255,.1));border-radius:4px;background:var(--bg-input, #131520);cursor:pointer}.dpe-hint{font-size:.7rem;color:var(--text-dim, #8a8e9a);opacity:.7;font-style:italic}.dpe-font-control{display:flex;gap:6px}.dpe-font-control .dpe-text-input{flex:1}.dpe-group{margin:4px 0;padding:8px;border:1px solid var(--border, rgba(255,255,255,.06));border-radius:6px}.dpe-group legend{font-size:.75rem;color:var(--text-dim, #8a8e9a);padding:0 4px}.dpe-fs-icon{margin-left:6px;vertical-align:middle;opacity:.6}.dpe-fs-locked{color:var(--warning);opacity:.8}.dpe-field input:disabled,.dpe-field textarea:disabled{opacity:.5;cursor:not-allowed}.dpe-field button:disabled{opacity:.5;cursor:not-allowed}.dpe-url-error{color:var(--danger, #ef4444);font-size:.75rem;margin-top:2px}.session-switcher-bar{display:flex;gap:2px;padding:4px 8px;background:var(--bg-panel, #1a1d23);border-bottom:1px solid var(--border, #2a2d35);overflow-x:auto;flex-shrink:0}.session-tab{display:flex;align-items:center;gap:6px;padding:4px 10px;background:transparent;border:1px solid transparent;border-radius:4px 4px 0 0;color:var(--text-dim, #8a8e9a);font-size:.8rem;cursor:pointer;white-space:nowrap;max-width:180px;transition:background .15s,color .15s}.session-tab:hover{background:var(--bg-hover, #252830);color:var(--text, #e0e0e0)}.session-tab.active{background:var(--bg-surface, #22252b);color:var(--text, #e0e0e0);border-color:var(--border, #2a2d35);border-bottom-color:var(--bg-surface, #22252b)}.session-tab-status{display:flex;align-items:center;flex-shrink:0}.session-tab-status .streaming{color:#e74c3c;animation:pulse-stream 1.5s ease-in-out infinite}@keyframes pulse-stream{0%,to{opacity:1}50%{opacity:.5}}.session-tab-spinner{width:10px;height:10px;border:2px solid var(--text-dim, #8a8e9a);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.session-tab-name{overflow:hidden;text-overflow:ellipsis}.session-tab-close{display:flex;align-items:center;padding:2px;border-radius:3px;opacity:0;transition:opacity .15s,background .15s;cursor:pointer}.session-tab:hover .session-tab-close{opacity:.6}.session-tab-close:hover{opacity:1!important;background:#ffffff1a}.session-tab-add{border:1px dashed var(--border, #2a2d35);color:var(--text-dim, #8a8e9a);gap:0;padding:4px 8px}.session-tab-add:hover{border-color:var(--text-dim, #8a8e9a);color:var(--text, #e0e0e0);background:var(--bg-hover, #252830)}.add-session-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.add-session-modal{background:var(--bg-panel, #1a1d23);border:1px solid var(--border, #2a2d35);border-radius:8px;padding:20px;width:100%;max-width:min(320px,90vw)}.add-session-header{font-size:1rem;font-weight:600;color:var(--text, #e0e0e0);margin-bottom:16px}.add-session-body{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.add-session-label{font-size:.8rem;color:var(--text-dim, #8a8e9a)}.add-session-input{padding:8px 10px;background:var(--bg-surface, #22252b);border:1px solid var(--border, #2a2d35);border-radius:4px;color:var(--text, #e0e0e0);font-size:1.2rem;font-family:monospace;letter-spacing:.2em;text-align:center;text-transform:uppercase}.add-session-input:focus{outline:none;border-color:var(--primary, #6d5dfc)}.add-session-error{font-size:.75rem;color:#e74c3c}.add-session-actions{display:flex;gap:8px;justify-content:flex-end}.add-session-btn-primary{padding:6px 16px;background:var(--primary, #6d5dfc);color:#fff;border:none;border-radius:4px;font-size:.85rem;cursor:pointer}.add-session-btn-primary:disabled{opacity:.5;cursor:not-allowed}.add-session-btn-primary:not(:disabled):hover{filter:brightness(1.1)}.add-session-btn-cancel{padding:6px 12px;background:transparent;border:1px solid var(--border, #2a2d35);border-radius:4px;color:var(--text-dim, #8a8e9a);font-size:.85rem;cursor:pointer}.add-session-btn-cancel:hover{background:var(--bg-hover, #252830);color:var(--text, #e0e0e0)}.session-tab-portal{border:1px dashed var(--border, #2a2d35);color:var(--text-dim, #8a8e9a);gap:0;padding:4px 8px}.session-tab-portal:hover{border-color:var(--primary, #6d5dfc);color:var(--primary, #6d5dfc);background:var(--bg-hover, #252830)}.portal-overlay{position:fixed;inset:0;z-index:900;background:var(--bg-main, #13151a);display:flex;flex-direction:column;animation:portalSlideIn .2s ease-out}@keyframes portalSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.portal-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border, #2a2d35);background:var(--bg-panel, #1a1d23);flex-shrink:0}.portal-overlay-title{font-size:1rem;font-weight:600;color:var(--text, #e0e0e0)}.portal-overlay-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border, #2a2d35);border-radius:4px;color:var(--text-dim, #8a8e9a);cursor:pointer}.portal-overlay-close:hover{background:var(--bg-hover, #252830);color:var(--text, #e0e0e0);border-color:var(--text-dim, #8a8e9a)}.portal-overlay-body{flex:1;overflow-y:auto;padding:20px;display:flex;justify-content:center}.portal-overlay-body .streamer-portal{max-width:600px;width:100%}.portal-audit-log{display:flex;flex-direction:column;gap:12px}.portal-audit-filter{padding:8px 12px;background:var(--surface-2);border-radius:6px}.portal-audit-filter-row{display:flex;align-items:center;gap:8px}.audit-filter-label{font-size:.8rem;color:var(--text-dim, #8a8e9a);margin-right:4px}.portal-audit-filter-input{width:120px;padding:4px 8px;background:var(--surface-1);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-family:var(--font-mono);font-size:.85rem;letter-spacing:.1em}.portal-audit-table-wrap{overflow-x:auto;border-radius:6px;border:1px solid var(--border)}.portal-audit-table{width:100%;border-collapse:collapse;font-size:.82rem;table-layout:fixed}.portal-audit-table th{text-align:left;padding:8px 10px;background:var(--surface-2);color:var(--text-secondary);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-bottom:1px solid var(--border)}.portal-audit-table td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-primary)}.portal-audit-table tr:last-child td{border-bottom:none}.portal-audit-table tr:hover td{background:#ffffff05}.portal-audit-table tr.audit-failed td{background:#ef44440d}.audit-ts{white-space:nowrap;color:var(--text-secondary);font-family:var(--font-mono);font-size:.78rem}.audit-session{font-family:var(--font-mono);letter-spacing:.08em;font-weight:500}.audit-mod{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-cmd{font-weight:500}.audit-params{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:.78rem}.audit-ok{color:var(--color-success, #22c55e)}.audit-err{display:inline-flex;align-items:center;gap:4px;color:var(--color-danger, #ef4444);font-size:.78rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-audit-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 0}.portal-audit-page-info{font-size:.82rem;color:var(--text-secondary)}.audit-session-row{cursor:pointer;transition:background .15s ease}.audit-session-row:hover td{background:#ffffff0a!important}.audit-session-code{font-family:var(--font-mono);letter-spacing:.1em;font-weight:600}.audit-warn{color:var(--warning, #f59e0b)}.audit-back-btn{display:inline-flex;align-items:center;gap:4px}.audit-session-meta{font-size:.82rem;color:var(--text-secondary);margin-left:12px}.audit-entry-group td{border-bottom:1px solid var(--border)}.audit-entry-row{display:grid;grid-template-columns:24px 130px 70px 1fr 1.5fr 36px;align-items:center;padding:6px 10px;cursor:pointer;transition:background .15s ease}.audit-ts,.audit-session-code,.audit-mod,.audit-cmd{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-entry-row:hover{background:#ffffff08}.audit-entry-row.audit-failed{background:#ef44440d}.audit-entry-row.audit-expanded{background:#ffffff05;border-bottom:1px solid var(--border)}.audit-entry-row.audit-streamer{border-left:2px solid #22c55e}.audit-entry-row.audit-streamer .audit-mod{color:#22c55e}.audit-chevron{color:var(--text-secondary);display:flex;align-items:center}.audit-status-icon{text-align:center}.audit-err-icon{color:var(--color-danger, #ef4444)}.audit-detail{padding:8px 10px 12px 34px;display:flex;flex-direction:column;gap:4px;background:#ffffff03;border-top:1px solid rgba(255,255,255,.04)}.audit-detail-row{display:flex;gap:12px;font-size:.8rem}.audit-detail-label{color:var(--text-secondary);min-width:80px;flex-shrink:0}.audit-detail-value{color:var(--text-primary);word-break:break-all;max-width:100%;overflow:hidden}.audit-detail-mono{font-family:var(--font-mono);font-size:.78rem}.audit-detail-ok{color:var(--color-success, #22c55e)}.audit-detail-err{color:var(--color-danger, #ef4444)}.audit-detail-params{display:flex;flex-direction:column;gap:2px}.audit-param-item{display:flex;gap:6px;font-size:.78rem}.audit-param-key{color:var(--text-secondary)}.audit-param-value{color:var(--text-primary);font-family:var(--font-mono)}.audit-group-toggle{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary);cursor:pointer;margin-left:auto;white-space:nowrap}.audit-group-toggle input{accent-color:var(--accent)}.audit-groups{display:flex;flex-direction:column;gap:8px}.audit-session-group{border:1px solid var(--border);border-radius:6px;overflow:hidden}.audit-session-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-2, var(--bg-secondary));cursor:pointer;transition:background .15s}.audit-session-header:hover{background:#ffffff0d}.audit-session-code-header{font-weight:600;font-family:var(--font-mono);font-size:.9rem;color:var(--text-primary)}.audit-session-meta{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:.75rem;color:var(--text-secondary)}.audit-session-mods{color:var(--accent)}.audit-session-count{background:#ffffff0f;padding:2px 8px;border-radius:3px}.audit-session-entries{border-top:1px solid var(--border)}.audit-session-entries .audit-entry-row{grid-template-columns:24px 130px 1fr 1.5fr 36px}.admin-page{display:flex;min-height:100vh;background:var(--bg-primary)}.admin-sidebar{width:clamp(180px,20vw,240px);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.admin-sidebar-brand{display:flex;align-items:center;gap:8px;padding:16px;border-bottom:1px solid var(--border)}.admin-sidebar-brand .logo-svg{height:24px}.admin-badge{background:var(--accent);color:#000;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.admin-nav{flex:1;display:flex;flex-direction:column;padding:8px;gap:2px}.admin-nav-link{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;color:var(--text-secondary);text-decoration:none;font-size:13px;transition:background .15s,color .15s;border:none;background:none;cursor:pointer;width:100%;text-align:left}.admin-nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-nav-link.active{background:var(--accent-bg, rgba(45, 212, 191, .1));color:var(--accent)}.admin-sidebar-footer{padding:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.admin-user-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.admin-user-name{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-logout-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px}.admin-logout-btn:hover{color:var(--danger, #ef4444)}.admin-content{flex:1;overflow-y:auto;padding:24px 32px}.admin-page-inner{max-width:1200px}.admin-page-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.admin-page-header h2{margin:0;font-size:20px;color:var(--text-primary)}.admin-header-count{font-size:13px;color:var(--text-secondary);background:var(--bg-secondary);padding:2px 8px;border-radius:10px}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.admin-stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px}.admin-stat-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:6px}.admin-stat-label{font-size:13px;color:var(--text-secondary)}.admin-stat-sub{font-size:11px;color:var(--text-muted, #6b7280);margin-top:4px}.admin-search-bar{display:flex;gap:8px;margin-bottom:16px}.admin-search-input{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:6px 12px;color:var(--text-primary);font-size:13px;outline:none;width:100%;max-width:280px}.admin-search-input:focus{border-color:var(--accent)}.admin-table tbody tr:nth-child(2n){background:#ffffff05}.admin-table tbody tr:hover{background:var(--bg-hover)}.admin-row-banned{opacity:.6}.admin-email{font-family:var(--font-mono);font-size:12px}.admin-actions{display:flex;gap:4px}.admin-btn-ban{color:#f59e0b!important;border-color:#f59e0b!important}.admin-btn-ban:hover{background:#f59e0b26!important}.admin-btn-unban{color:var(--accent)!important;border-color:var(--accent)!important}.admin-btn-unban:hover{background:#2dd4bf26!important}.admin-btn-delete{color:var(--danger, #ef4444)!important;border-color:var(--danger, #ef4444)!important}.admin-btn-delete:hover{background:#ef444426!important}.admin-badge-active{font-size:11px;padding:2px 8px;border-radius:10px;background:#2dd4bf26;color:var(--accent)}.admin-badge-banned{font-size:11px;padding:2px 8px;border-radius:10px;background:#ef444426;color:var(--danger, #ef4444)}.admin-badge-inactive{font-size:11px;padding:2px 8px;border-radius:10px;background:#6b728026;color:var(--text-secondary)}.admin-session-status{font-size:11px;padding:2px 8px;border-radius:10px}.admin-status-active{background:#2dd4bf26;color:var(--accent)}.admin-status-waitingformod{background:#f59e0b26;color:#f59e0b}.admin-status-pendingapproval{background:#a855f726;color:#a855f7}.admin-status-connectordisconnected{background:#ef444426;color:var(--danger, #ef4444)}.admin-pending-badge{font-size:10px;color:#f59e0b;margin-left:6px}.admin-ban-reason{width:100%;margin-bottom:16px}.admin-expand-cell{text-align:center;color:var(--text-secondary)}.admin-detail-row>td{padding:0!important;background:var(--bg-tertiary, rgba(255, 255, 255, .02))}.admin-user-detail{padding:12px 16px 16px;display:flex;flex-direction:column;gap:16px}.admin-detail-section{border-top:1px solid var(--border);padding-top:12px}.admin-detail-section:first-child{border-top:none;padding-top:0}.admin-detail-section h4{font-size:13px;font-weight:600;margin:0 0 8px;display:flex;align-items:center;gap:6px;color:var(--text-primary)}.admin-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px}.admin-detail-label{color:var(--text-secondary);font-weight:500}.admin-2fa-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}.admin-2fa-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.admin-2fa-badge.tfa-on{background:#2dd4bf26;color:var(--accent)}.admin-2fa-badge.tfa-off{background:#ffffff0f;color:var(--text-secondary)}.admin-2fa-codes{color:var(--text-secondary)}.admin-2fa-confirm{display:flex;align-items:center;gap:6px;color:var(--danger, #ef4444);font-size:12px}.admin-device-list{display:flex;flex-direction:column;gap:6px}.admin-device-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;background:var(--bg-hover);font-size:12px;flex-wrap:wrap}.admin-device-status{flex-shrink:0}.device-icon-trusted{color:var(--accent)}.device-icon-pending{color:#f59e0b}.device-icon-revoked{color:var(--danger, #ef4444)}.admin-device-name{font-weight:500;min-width:100px}.admin-device-badge{font-size:10px;padding:1px 6px;border-radius:8px;font-weight:600}.admin-device-badge.status-trusted{background:#2dd4bf26;color:var(--accent)}.admin-device-badge.status-pending{background:#f59e0b26;color:#f59e0b}.admin-device-badge.status-revoked{background:#ef44441a;color:var(--danger, #ef4444)}.admin-device-key{font-size:10px;color:var(--text-secondary);background:#ffffff0a;padding:1px 4px;border-radius:3px}.admin-device-date{color:var(--text-secondary);font-size:11px;margin-left:auto}.admin-device-actions{display:flex;gap:4px;margin-left:auto}.admin-config-notice{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;margin-bottom:20px;font-size:12px;color:#f59e0b}.admin-config-form{display:flex;flex-direction:column;gap:16px;max-width:480px}.admin-config-field{display:flex;flex-direction:column;gap:4px}.admin-config-field label{font-size:12px;color:var(--text-secondary);font-weight:500}.admin-config-field .admin-search-input{width:100%}.admin-save-btn{display:flex;align-items:center;gap:6px;align-self:flex-start}.admin-config-message{font-size:13px;padding:8px 12px;border-radius:6px}.admin-msg-ok{background:#2dd4bf1a;color:var(--accent)}.admin-msg-err{background:#ef44441a;color:var(--danger, #ef4444)}.chat-panel{display:flex;flex-direction:column;background:var(--panel-bg, #13151a);border-radius:8px;overflow:hidden;min-height:0}.chat-panel-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.chat-panel-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#ffffffb3}.chat-panel-channel{font-size:.75rem;color:#fff6}.chat-panel-iframe{flex:1;border:none;width:100%;min-height:300px}.chat-panel-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px;color:#ffffff80;font-size:.85rem;text-align:center}.chat-panel-manual{display:flex;gap:6px;width:100%;max-width:260px}.chat-panel-manual input{flex:1;padding:6px 10px;font-size:.8rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#fff;outline:none}.chat-panel-manual input:focus{border-color:#6366f180}.chat-panel-manual button{padding:6px 12px;font-size:.8rem;background:#6366f133;border:1px solid rgba(99,102,241,.3);border-radius:4px;color:#fffc;cursor:pointer}.chat-panel-manual button:hover:not(:disabled){background:#6366f14d}.chat-panel-manual button:disabled{opacity:.4;cursor:default}.chat-panel-reset{flex-shrink:0;padding:4px 8px;font-size:.7rem;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#ffffff80;cursor:pointer;margin:4px auto}.chat-panel-reset:hover{color:#fffc;border-color:#fff3}.rotary-knob-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;-webkit-user-select:none;user-select:none}.rotary-knob-wrap.knob-disabled{opacity:.35;cursor:default}.rotary-knob-wrap:not(.knob-disabled) .rotary-knob{cursor:ns-resize}.rotary-knob{position:relative;border-radius:50%;background:radial-gradient(circle at 40% 35%,#3a3d45,#1e2025);border:2px solid rgba(255,255,255,.12);box-shadow:0 1px 4px #0006}.rotary-knob:hover{border-color:#6366f166}.knob-track{position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(255,255,255,.06)}.knob-indicator{position:absolute;inset:0;display:flex;justify-content:center;transition:none}.knob-dot{width:3px;height:8px;background:#818cf8;border-radius:1px;margin-top:2px}.knob-label{font-size:.6rem;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.knob-value{font-size:.55rem;color:#ffffff59;font-family:monospace;white-space:nowrap}.channel-expanded{position:relative}.channel-pan-row{display:flex;justify-content:center;padding:2px 0}.channel-pan-row .rotary-knob-wrap{transform:scale(.85)}.channel-pan-row .knob-value{display:none}.channel-bottom-row{display:flex;align-items:center;gap:4px;justify-content:center}.channel-expand-btn{background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#fff6;cursor:pointer;padding:1px 4px;display:flex;align-items:center}.channel-expand-btn:hover{color:#fffc;border-color:#fff3}.channel-expand-btn.active{color:#818cf8;border-color:#6366f14d;background:#6366f11a}.channel-detail-area{border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2px}.strip-detail{padding:4px 2px;display:flex;flex-direction:column;gap:4px}.expand-level-indicator{font-size:.5rem;margin-left:1px;opacity:.7}.strip-section{padding:4px;background:#ffffff05;border-radius:4px}.strip-section-header{display:flex;align-items:center;gap:4px;margin-bottom:4px}.strip-section-title{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#ffffff80;flex:1}.strip-section-toggle{font-size:.55rem;padding:1px 5px;border-radius:3px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#fff6;cursor:pointer;font-weight:600;letter-spacing:.05em}.strip-section-toggle.active{background:#22c55e26;border-color:#22c55e4d;color:#22c55e}.strip-section-toggle.sm{font-size:.5rem;padding:0 3px}.strip-section-hint{font-size:.6rem;color:#ffffff4d;text-align:center;padding:4px;font-style:italic}.strip-knobs{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.strip-dynamics-row{padding:3px 0;border-bottom:1px solid rgba(255,255,255,.04)}.strip-dynamics-row:last-child{border-bottom:none}.strip-dynamics-header{display:flex;align-items:center;gap:4px;margin-bottom:3px}.strip-dynamics-label{font-size:.6rem;font-weight:600;color:#ffffff80;flex:1}.strip-dynamics-remove{background:transparent;border:none;color:#ffffff40;cursor:pointer;font-size:.6rem;padding:0 2px;line-height:1}.strip-dynamics-remove:hover{color:#ef4444}.strip-dynamics-row.no-filter .strip-knobs{opacity:.55}.strip-dynamics-row.no-filter .strip-dynamics-label:after{content:" (drehen zum Laden)";font-size:.5rem;font-weight:400;font-style:italic;opacity:.6}.wizard-overlay{position:fixed;inset:0;z-index:300;background:#0009;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.wizard-modal{background:#1a1d24;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:100%;max-width:min(520px,95vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.wizard-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);color:#ffffffe6;font-weight:600;font-size:.95rem}.wizard-close{margin-left:auto;background:transparent;border:none;color:#ffffff80;cursor:pointer;padding:4px;border-radius:4px}.wizard-close:hover{color:#ffffffe6;background:#ffffff0f}.wizard-steps{display:flex;justify-content:center;gap:12px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.wizard-step-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;background:#ffffff0f;color:#ffffff4d;border:2px solid transparent;transition:all .2s}.wizard-step-dot.active{background:#6366f133;color:#818cf8;border-color:#818cf8}.wizard-step-dot.done{background:#22c55e26;color:#22c55e;border-color:#22c55e4d}.wizard-body{flex:1;overflow-y:auto;padding:20px;min-height:280px}.wizard-step-title{font-size:1rem;font-weight:600;color:#ffffffe6;margin:0 0 12px}.wizard-hint{font-size:.8rem;color:#ffffff80;margin:0 0 12px}.wizard-templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:16px}.wizard-template-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;background:#ffffff0a;border:2px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;color:#ffffffb3;transition:all .15s;text-align:center}.wizard-template-card:hover{background:#ffffff0f;border-color:#ffffff26}.wizard-template-card.selected{background:#6366f11f;border-color:#818cf8;color:#fff}.wizard-template-name{font-size:.85rem;font-weight:600}.wizard-template-desc{font-size:.7rem;color:#fff6;line-height:1.3}.wizard-template-card.selected .wizard-template-desc{color:#fff9}.wizard-field{margin-bottom:12px}.wizard-field label{display:block;font-size:.8rem;color:#fff9;margin-bottom:4px}.wizard-input{width:100%;padding:8px 12px;font-size:.85rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#fff;outline:none;box-sizing:border-box}.wizard-input:focus{border-color:#6366f180}.wizard-input-sm{padding:5px 8px;font-size:.8rem;margin-top:4px}.wizard-error{font-size:.75rem;color:#ef4444;margin-top:2px}.wizard-sources{display:flex;flex-direction:column;gap:8px}.wizard-source-row{padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;transition:all .15s}.wizard-source-row.enabled{background:#ffffff0d;border-color:#ffffff1a}.wizard-source-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#fffc;cursor:pointer}.wizard-source-toggle input[type=checkbox]{accent-color:#818cf8}.wizard-source-row.disabled .wizard-source-toggle{color:#fff6}.wizard-overlay-hints{margin-top:16px;padding:12px;background:#ffffff08;border-radius:6px}.wizard-hint-label{font-size:.8rem;color:#ffffff80;margin:0 0 6px}.wizard-hint-list{margin:0;padding-left:18px;font-size:.75rem;color:#fff6;line-height:1.6}.wizard-summary{font-size:.85rem;color:#fffc}.wizard-summary-row{display:flex;gap:8px;margin-bottom:6px}.wizard-summary-label{font-weight:600;color:#fff9;min-width:80px}.wizard-summary-list{margin:4px 0 12px;padding-left:18px;font-size:.8rem;line-height:1.6}.wizard-summary-list li{color:#ffffffb3}.wizard-summary-url{font-size:.75rem;color:#6366f1b3;word-break:break-all}.wizard-done{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center;color:#22c55e}.wizard-done h3{margin:0;font-size:1.1rem;color:#ffffffe6}.wizard-done p{margin:0;font-size:.85rem;color:#ffffff80}.wizard-footer{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid rgba(255,255,255,.08)}.wizard-footer-spacer{flex:1}.wizard-btn-back,.wizard-btn-next,.wizard-btn-create{display:flex;align-items:center;gap:4px;padding:8px 16px;font-size:.85rem;border-radius:6px;cursor:pointer;border:1px solid transparent;transition:all .15s}.wizard-btn-back{background:transparent;border-color:#ffffff1a;color:#fff9}.wizard-btn-back:hover:not(:disabled){border-color:#fff3;color:#ffffffe6}.wizard-btn-next{background:#6366f126;border-color:#6366f14d;color:#818cf8}.wizard-btn-next:hover:not(:disabled){background:#6366f140}.wizard-btn-create{background:#22c55e26;border-color:#22c55e4d;color:#22c55e}.wizard-btn-create:hover:not(:disabled){background:#22c55e40}.wizard-btn-back:disabled,.wizard-btn-next:disabled,.wizard-btn-create:disabled{opacity:.4;cursor:default}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.portal-settings{max-width:640px;margin:0 auto;padding:24px}.portal-settings h2{color:var(--text-primary);margin:0 0 24px}.settings-section{background:var(--bg-secondary);border-radius:8px;padding:20px;margin-bottom:20px}.settings-section h3{color:var(--text-primary);margin:0 0 12px;font-size:1rem}.settings-error{color:var(--live);font-size:.85rem;padding:8px 12px;background:#ff32321a;border-radius:4px;margin-bottom:12px}.settings-success{color:#22c55e;font-size:.85rem;padding:8px 12px;background:#22c55e1a;border-radius:4px;margin-bottom:12px}.tfa-status-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:.85rem;font-weight:600;margin-bottom:8px}.tfa-active{background:#22c55e26;color:#22c55e}.tfa-inactive{background:#ffffff0f;color:var(--text-secondary)}.tfa-warning{color:#f59e0b;font-size:.85rem;margin:8px 0}.tfa-actions{display:flex;gap:8px;margin-top:12px}.tfa-disable-section{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.tfa-disable-section summary{cursor:pointer;color:var(--text-secondary);font-size:.85rem}.tfa-qr{display:flex;justify-content:center;background:#fff;border-radius:8px;padding:16px;width:fit-content;margin:16px auto}.tfa-manual-key{text-align:center;font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.tfa-manual-key code{background:var(--bg-primary);padding:4px 8px;border-radius:4px;font-size:.9rem;color:var(--text-primary);letter-spacing:2px;word-break:break-all}.tfa-form{display:flex;flex-direction:column;gap:8px;margin-top:12px}.tfa-form label{font-size:.8rem;color:var(--text-secondary)}.tfa-form input{padding:.6rem .8rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:1.1rem;letter-spacing:4px;text-align:center;outline:none;max-width:200px}.tfa-form input:focus{border-color:var(--accent)}.tfa-form-actions{display:flex;gap:8px;margin-top:4px}.tfa-recovery-codes{background:var(--bg-primary);border-radius:8px;padding:16px;margin-top:16px}.tfa-recovery-codes h4{margin:0 0 8px;color:var(--text-primary)}.recovery-code-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:12px 0}.recovery-code{background:var(--bg-secondary);padding:6px 10px;border-radius:4px;font-size:.9rem;text-align:center;color:var(--text-primary)}.btn-secondary{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:background-color .15s}.btn-secondary:hover:not(:disabled){background:#ffffff0f}.btn-danger{padding:.5rem 1rem;border-radius:6px;border:none;background:#ff323226;color:var(--live);font-size:.85rem;cursor:pointer;font-weight:600;transition:background-color .15s}.btn-danger:hover:not(:disabled){background:#ff323240}.btn-danger:disabled,.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.auth-2fa-hint{font-size:.85rem;color:var(--text-secondary);text-align:center;margin:0}.device-list{display:flex;flex-direction:column;gap:12px}.device-item{background:var(--bg-primary);border-radius:6px;padding:12px 16px;border-left:3px solid var(--border)}.device-item.device-trusted{border-left-color:#22c55e}.device-item.device-pending{border-left-color:#f59e0b}.device-item.device-revoked{border-left-color:var(--live);opacity:.6}.device-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.device-status-icon{font-size:.75rem}.device-name{font-weight:600;color:var(--text-primary)}.device-status-label{font-size:.75rem;padding:2px 8px;border-radius:3px;margin-left:auto}.status-trusted{background:#22c55e26;color:#22c55e}.status-pending{background:#f59e0b26;color:#f59e0b}.status-revoked{background:#ff32321a;color:var(--live)}.device-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.75rem;color:var(--text-secondary);margin-bottom:4px}.device-key-fingerprint{font-size:.75rem;color:var(--text-secondary);margin-bottom:8px}.device-key-fingerprint code{background:var(--bg-secondary);padding:1px 4px;border-radius:2px}.device-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.device-verify-form{display:flex;align-items:center;gap:6px}.device-verify-form input{padding:4px 8px;border-radius:4px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem;letter-spacing:2px;text-align:center;width:100px;outline:none}.device-verify-form input:focus{border-color:var(--accent)}.device-verify-form button{padding:4px 12px;font-size:.8rem}.device-revoke-all{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.device-confirm-revoke{display:flex;align-items:center;gap:8px;font-size:.85rem}.text-secondary{color:var(--text-secondary);font-size:.85rem}.mod-message-panel{display:flex;flex-direction:column;height:100%;padding:8px;gap:8px;overflow-y:auto}.mod-message-input-area{display:flex;flex-direction:column;gap:6px}.mod-message-input{width:100%;background:var(--bg-secondary, #1a1a2e);color:var(--text, #e0e0e0);border:1px solid var(--border, #333);border-radius:6px;padding:8px;font-size:.85rem;resize:none;font-family:inherit;line-height:1.4}.mod-message-input:focus{outline:none;border-color:var(--accent, #7c3aed)}.mod-message-input::placeholder{color:var(--text-muted, #666)}.mod-message-controls{display:flex;justify-content:space-between;align-items:center}.mod-message-priority{display:flex;gap:8px}.mod-message-radio{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-muted, #999);cursor:pointer;-webkit-user-select:none;user-select:none}.mod-message-radio.active{color:var(--text, #e0e0e0)}.mod-message-radio input[type=radio]{accent-color:var(--accent, #7c3aed);margin:0;width:12px;height:12px}.mod-message-actions{display:flex;align-items:center;gap:8px}.mod-message-charcount{font-size:.72rem;color:var(--text-muted, #666);font-variant-numeric:tabular-nums}.mod-message-charcount.warn{color:var(--warning, #f59e0b)}.mod-message-send-btn{display:flex;align-items:center;justify-content:center;background:var(--accent, #7c3aed);color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:.78rem;cursor:pointer;min-width:36px;transition:opacity .15s}.mod-message-send-btn:hover:not(:disabled){opacity:.85}.mod-message-send-btn:disabled{opacity:.4;cursor:not-allowed}.mod-message-history{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border, #333);padding-top:6px}.mod-message-item{padding:4px 6px;border-radius:4px;background:var(--bg-secondary, #1a1a2e);font-size:.78rem}.mod-message-item-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}.mod-message-status{font-weight:600;font-size:.75rem}.mod-message-delivered .mod-message-status{color:var(--success, #22c55e)}.mod-message-read .mod-message-status{color:var(--accent, #7c3aed)}.mod-message-error .mod-message-status{color:var(--live, #ef4444)}.mod-message-sending .mod-message-status{color:var(--text-muted, #999)}.mod-message-urgent-badge{background:var(--live, #ef4444);color:#fff;font-size:.65rem;font-weight:700;padding:0 4px;border-radius:3px;line-height:1.4}.mod-message-time{color:var(--text-muted, #666);font-size:.7rem;margin-left:auto}.mod-message-text{color:var(--text, #e0e0e0);word-break:break-word;line-height:1.3}.mod-message-error{color:var(--live, #ef4444);font-size:.72rem;margin-top:2px}.billing-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.billing-badge-pro{background:linear-gradient(135deg,#6c63ff,#8b5cf6);color:#fff}.billing-badge-team{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.billing-upgrade-btn{background:linear-gradient(135deg,#6c63ff,#8b5cf6);color:#fff;border:none;padding:.3rem .75rem;border-radius:4px;font-size:.75rem;cursor:pointer;font-weight:500;transition:opacity .15s}.billing-upgrade-btn:hover{opacity:.9}.billing-upgrade-btn:disabled{opacity:.5;cursor:not-allowed}.billing-manage-btn{background:transparent;color:#888;border:1px solid #444;padding:.3rem .75rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:color .15s,border-color .15s}.billing-manage-btn:hover{color:#ccc;border-color:#666}.billing-manage-btn:disabled{opacity:.5;cursor:not-allowed}.cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.45em 1em;border:1px solid var(--border, rgba(255, 255, 255, .15));border-radius:5px;background:var(--bg-secondary, #1f232b);color:var(--text, #e0e0e8);font-size:.78rem;font-weight:600;cursor:pointer;transition:opacity .18s,background .18s,border-color .18s,color .18s,transform .12s;-webkit-user-select:none;user-select:none}.cta-btn:hover:not(:disabled){background:#ffffff0f;border-color:var(--text-dim, #8a8e9a)}.cta-btn:active:not(:disabled){transform:scale(.97)}.cta-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.cta-btn.cta-danger{background:var(--live, #e63946);border-color:var(--live, #e63946);color:#fff}.cta-btn.cta-danger:hover:not(:disabled){filter:brightness(1.08);background:var(--live, #e63946);border-color:var(--live, #e63946)}.cta-btn.cta-danger:disabled{background:var(--live, #e63946);border-color:var(--live, #e63946);opacity:.35}.cta-btn.cta-success{background:var(--success, #2ecc71);border-color:var(--success, #2ecc71);color:#0e1014}.cta-btn.cta-success:hover:not(:disabled){filter:brightness(1.08)}.cta-btn.cta-pending{animation:cta-pending-pulse 1.2s ease-in-out infinite;pointer-events:none}@keyframes cta-pending-pulse{0%,to{opacity:.65}50%{opacity:1}}.connection-status-banner{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.85rem;border-bottom:1px solid var(--border, rgba(255,255,255,.1));max-height:60px;animation:status-banner-slide-in .25s ease-out}@keyframes status-banner-slide-in{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.connection-status-warning{background:linear-gradient(180deg,#f1c40f2e,#f1c40f1a);color:#fce477}.connection-status-warning .connection-status-icon{color:#f1c40f}.connection-status-danger{background:linear-gradient(180deg,#e6394638,#e639461f);color:#ff8e96}.connection-status-danger .connection-status-icon{color:var(--live, #e63946)}.connection-status-override{background:linear-gradient(180deg,#f39c122e,#f39c121a);color:#f5b86b}.connection-status-override .connection-status-icon{color:#f39c12}.connection-status-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.connection-status-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.connection-status-title{font-weight:600;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connection-status-detail{font-size:.75rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connection-status-close{flex-shrink:0;background:transparent;border:none;color:inherit;opacity:.6;cursor:pointer;padding:.5rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:opacity .15s,background .15s}.connection-status-close:hover{opacity:1;background:#ffffff14}@media(max-width:640px){.connection-status-banner{flex-wrap:wrap;max-height:none;padding:.5rem .75rem}.connection-status-content{flex:1 1 100%;order:2}.connection-status-icon{order:1}.connection-status-close{order:3}}.reconnecting-overlay{position:fixed;inset:0;z-index:9999;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;pointer-events:auto;animation:reconnect-overlay-fade-in .2s ease-out}.reconnecting-overlay-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 2.5rem;background:var(--bg-panel, #1a1d23);border:1px solid var(--border, #2a2d35);border-radius:12px;box-shadow:0 20px 60px #0009;max-width:90vw}.reconnecting-overlay-spinner{color:var(--accent, #6C5CE7);animation:reconnect-spinner-spin .9s linear infinite}.reconnecting-overlay-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--text, #e0e0e8)}.reconnecting-overlay-hint{margin:0;font-size:.8rem;color:var(--text-dim, #8a8e9a);text-align:center;max-width:32ch}@keyframes reconnect-spinner-spin{to{transform:rotate(360deg)}}@keyframes reconnect-overlay-fade-in{0%{opacity:0}to{opacity:1}}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Variable.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root{--bg-primary: #0A0A0F;--bg-secondary: #12121A;--bg-panel: #1A1A26;--bg-hover: #222233;--text-primary: #e0e0e8;--text-secondary: #8888a0;--accent: #6C5CE7;--accent-hover: #A29BFE;--live: #FF3B5C;--live-glow: rgba(255, 59, 92, .3);--success: #2ecc71;--warning: #f39c12;--muted: #555570;--border: #2A2A3E;--radius: 8px;font-family:Outfit,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}h1,h2,h3{margin:0}button{border-radius:var(--radius);border:1px solid var(--border);padding:.5em 1em;font-size:.9rem;font-weight:500;font-family:inherit;background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .15s ease}button:hover{background-color:var(--bg-hover);border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}input{border-radius:var(--radius);border:1px solid var(--border);padding:.6em 1em;font-size:1rem;font-family:inherit;background-color:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .15s}input:focus{border-color:var(--accent)}
