@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700&display=swap";:root{color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scrollbar-gutter:stable}body{min-width:320px}:root{--font-display: "Sora", "Trebuchet MS", sans-serif;--font-body: "Manrope", "Segoe UI", sans-serif;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: .75rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-xl: 2rem;--ease-smooth: cubic-bezier(.22, 1, .36, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .32s;--ink: oklch(.22 .03 248);--shadow-soft: 0 20px 60px color-mix(in oklab, var(--ink) 12%, transparent);--shadow-panel: 0 18px 44px color-mix(in oklab, var(--ink) 14%, transparent);--shadow-float: 0 24px 70px color-mix(in oklab, var(--ink) 18%, transparent);--bg: oklch(.98 .008 236);--bg-elevated: oklch(.995 .008 236);--surface: oklch(.965 .015 236);--surface-strong: oklch(.944 .022 236);--surface-muted: oklch(.92 .016 236);--surface-inverse: oklch(.24 .03 248);--border: oklch(.86 .02 235);--border-strong: oklch(.78 .03 235);--text: oklch(.28 .03 248);--text-soft: oklch(.48 .025 244);--text-muted: oklch(.58 .02 240);--accent: oklch(.72 .1 232);--accent-strong: oklch(.59 .12 242);--accent-soft: oklch(.92 .035 233);--accent-glow: color-mix(in oklab, var(--accent) 22%, transparent);--highlight: oklch(.8 .11 180);--success: oklch(.73 .11 160);--warning: oklch(.8 .12 84);--danger: oklch(.63 .16 22);--danger-soft: oklch(.95 .03 22);--scrim: color-mix(in oklab, var(--surface-inverse) 16%, transparent)}[data-theme=dark]{--ink: oklch(.06 .02 248);--bg: oklch(.16 .018 248);--bg-elevated: oklch(.2 .018 246);--surface: oklch(.235 .02 246);--surface-strong: oklch(.28 .022 243);--surface-muted: oklch(.32 .022 240);--surface-inverse: oklch(.94 .012 234);--border: oklch(.34 .024 241);--border-strong: oklch(.44 .035 238);--text: oklch(.93 .012 236);--text-soft: oklch(.8 .018 235);--text-muted: oklch(.66 .02 236);--accent: oklch(.77 .09 233);--accent-strong: oklch(.67 .12 239);--accent-soft: oklch(.29 .04 236);--accent-glow: color-mix(in oklab, var(--accent) 28%, transparent);--highlight: oklch(.81 .1 190);--success: oklch(.78 .11 158);--warning: oklch(.83 .12 88);--danger: oklch(.7 .14 22);--danger-soft: oklch(.28 .04 24);--scrim: color-mix(in oklab, black 42%, transparent)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--ink: oklch(.06 .02 248);--bg: oklch(.16 .018 248);--bg-elevated: oklch(.2 .018 246);--surface: oklch(.235 .02 246);--surface-strong: oklch(.28 .022 243);--surface-muted: oklch(.32 .022 240);--surface-inverse: oklch(.94 .012 234);--border: oklch(.34 .024 241);--border-strong: oklch(.44 .035 238);--text: oklch(.93 .012 236);--text-soft: oklch(.8 .018 235);--text-muted: oklch(.66 .02 236);--accent: oklch(.77 .09 233);--accent-strong: oklch(.67 .12 239);--accent-soft: oklch(.29 .04 236);--accent-glow: color-mix(in oklab, var(--accent) 28%, transparent);--highlight: oklch(.81 .1 190);--success: oklch(.78 .11 158);--warning: oklch(.83 .12 88);--danger: oklch(.7 .14 22);--danger-soft: oklch(.28 .04 24);--scrim: color-mix(in oklab, black 42%, transparent)}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-body);color:var(--text);background:radial-gradient(circle at top left,color-mix(in oklab,var(--accent) 16%,transparent),transparent 28%),radial-gradient(circle at bottom right,color-mix(in oklab,var(--highlight) 10%,transparent),transparent 24%),var(--bg)}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;color:var(--text)}p{margin:0;color:var(--text-soft)}a{color:var(--accent-strong)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid color-mix(in oklab,var(--accent) 92%,white 8%);outline-offset:2px}#root{min-height:100vh}.loading-screen,.loading,.empty-state{display:grid;place-items:center;padding:var(--space-2xl);color:var(--text-soft)}.loading-screen{min-height:100vh;font-size:1rem;letter-spacing:.04em;text-transform:uppercase}.error{color:var(--danger);font-size:.92rem}.section-heading{display:grid;gap:var(--space-xs);max-width:64ch;margin-bottom:var(--space-xl)}.section-heading h2{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.8rem)}.section-kicker,.auth-kicker,.auth-panel-kicker,.dashboard-brand-kicker,.viewer-kicker,.sessions-sidebar-kicker,.dashboard-placeholder-kicker{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.section-summary{max-width:64ch;line-height:1.65}.login-page{min-height:100vh;padding:clamp(1.25rem,2vw,2rem);display:grid;place-items:center}.auth-shell{position:relative;width:min(1180px,100%);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,460px);gap:clamp(1.25rem,2vw,2rem);align-items:stretch}.auth-shell:before{content:"";position:absolute;inset:3% 38% auto 4%;height:32%;border-radius:999px;background:color-mix(in oklab,var(--accent) 18%,transparent);filter:blur(80px);pointer-events:none}.auth-hero,.login-card,.api-keys-panel,.webrtc-viewer,.admin-dashboard{position:relative;border:1px solid var(--border);background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 92%,white 8%),var(--surface));box-shadow:var(--shadow-panel)}.auth-hero{display:grid;align-content:center;gap:var(--space-lg);padding:clamp(2rem,5vw,4.5rem);border-radius:var(--radius-xl);min-height:620px;overflow:hidden}.auth-hero h1{max-width:10ch;font-size:clamp(3.2rem,2.25rem + 2.6vw,5.6rem);line-height:.95}.auth-summary{max-width:54ch;font-size:1.05rem;line-height:1.7}.auth-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.auth-point{display:grid;gap:.35rem;padding:var(--space-md);border-radius:var(--radius-md);background:color-mix(in oklab,var(--surface-strong) 84%,transparent);border:1px solid color-mix(in oklab,var(--border) 78%,transparent)}.auth-point-label{font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.auth-point-value{color:var(--text);line-height:1.45}.login-card{display:grid;align-content:center;gap:var(--space-md);padding:clamp(1.75rem,3vw,2.5rem);border-radius:var(--radius-xl);min-height:620px}.auth-panel h2,.pending-card h1{font-size:clamp(2rem,1.5rem + 1.4vw,3rem);line-height:1.02}.subtitle,.pending-detail,.auth-footnote{line-height:1.65;max-width:38ch}.google-btn,.studios-dropdown-form-submit,.delete-btn,.admin-btn,.confirm-btn-danger{border:none;border-radius:999px;background:var(--accent-strong);color:#fff;font-weight:700;padding:.92rem 1.2rem;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease,background-color .18s ease;box-shadow:0 16px 34px color-mix(in oklab,var(--accent-strong) 26%,transparent)}.google-btn:hover:not(:disabled),.studios-dropdown-form-submit:hover:not(:disabled),.delete-btn:hover:not(:disabled),.admin-btn:hover:not(:disabled),.confirm-btn-danger:hover:not(:disabled){transform:translateY(-1px)}.google-btn:disabled,.studios-dropdown-form-submit:disabled,.hamburger-signout:disabled,.admin-btn:disabled,.refresh-btn:disabled{opacity:.55;cursor:not-allowed}.auth-footnote{font-size:.9rem;color:var(--text-muted)}.auth-shell-compact{grid-template-columns:minmax(0,460px);justify-content:center}.auth-shell-compact:before{inset:auto 8% 4% auto;width:260px;height:260px}.pending-card{min-height:auto;text-align:left}.pending-icon{display:grid;place-items:center;width:4rem;height:4rem;border-radius:1.35rem;background:color-mix(in oklab,var(--accent-soft) 70%,transparent);font-size:1.6rem}.pending-email{font-weight:700;color:var(--text)}.dashboard{min-height:100vh;display:grid;grid-template-rows:auto 1fr;padding:clamp(.85rem,1.8vw,1.35rem);gap:clamp(.85rem,1.2vw,1rem)}.sessions-sidebar,.hamburger-dropdown,.studios-dropdown-menu{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.dashboard-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:.95rem 1rem;border:1px solid var(--border);border-radius:calc(var(--radius-xl) - .35rem);background:color-mix(in oklab,var(--bg-elevated) 82%,transparent);box-shadow:var(--shadow-soft)}.dashboard-header:before{content:"";position:absolute;inset:0;border-radius:inherit;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:-1}.dashboard-brand{display:flex;align-items:center;gap:var(--space-md);min-width:0}.dashboard-brand-mark{display:grid;place-items:center;width:3rem;height:3rem;border-radius:1rem;background:linear-gradient(145deg,color-mix(in oklab,var(--accent) 32%,white 12%),color-mix(in oklab,var(--accent-strong) 88%,black 6%));color:#fff;font-family:var(--font-display);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 16px 26px color-mix(in oklab,var(--accent) 20%,transparent)}.dashboard-brand-copy{display:grid;gap:.2rem}.dashboard-brand-copy h1{font-size:clamp(1.15rem,1rem + .5vw,1.5rem)}.dashboard-controls{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.dashboard-studio-info{display:flex;align-items:center;gap:var(--space-md);flex:1;min-width:0;padding:0 var(--space-md);border-left:1px solid var(--border);border-right:1px solid var(--border)}.dashboard-studio-name{display:grid;gap:.15rem;min-width:0}.dashboard-studio-label{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.dashboard-studio-value{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:20ch}.dashboard-studio-metrics{display:flex;gap:.4rem;flex-wrap:wrap}.dashboard-studio-metric{min-width:3.2rem;padding:.4rem .55rem;border-radius:.7rem;background:color-mix(in oklab,var(--accent-soft) 76%,transparent);display:grid;gap:.1rem;text-align:center}.dashboard-studio-metric-attention{background:color-mix(in oklab,var(--warning) 16%,transparent)}.dashboard-studio-metric-value{font-family:var(--font-display);font-size:.95rem;color:var(--text)}.dashboard-studio-metric-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.dashboard-rail-col{display:flex;flex-direction:row;align-items:stretch;min-width:0;min-height:0}.dashboard-rail-col .sessions-sidebar{flex:1;min-width:0}.rail-toggle{flex-shrink:0;width:22px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0}.rail-toggle-icon{display:flex;align-items:center;justify-content:center;width:20px;height:44px;border-radius:.65rem;background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface));border:1px solid var(--border);color:var(--text-muted);font-size:.9rem;line-height:1;transition:background-color .18s ease,border-color .18s ease,color .18s ease;box-shadow:var(--shadow-panel);-webkit-user-select:none;user-select:none}.rail-toggle:hover .rail-toggle-icon{border-color:var(--border-strong);color:var(--text);background:color-mix(in oklab,var(--surface-strong) 90%,transparent)}.dashboard-body{min-height:0;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:clamp(.85rem,1.5vw,1rem)}.dashboard-body-collapsed{grid-template-columns:22px minmax(0,1fr)}.dashboard-body-api-keys,.dashboard-body-no-studio{grid-template-columns:minmax(0,1fr)}.dashboard-main{min-width:0;min-height:0}.dashboard-main-view{min-height:100%}.dashboard-placeholder{height:100%;display:grid;place-items:center}.dashboard-placeholder-panel{width:min(100%,760px);padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--border);border-radius:var(--radius-xl);background:radial-gradient(circle at top right,color-mix(in oklab,var(--accent) 12%,transparent),transparent 35%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 96%,white 4%),var(--surface));box-shadow:var(--shadow-panel)}.dashboard-placeholder-panel h2{margin:.35rem 0 .8rem;font-size:clamp(2rem,1.5rem + 1.5vw,3.2rem)}.dashboard-placeholder-panel p:last-child{max-width:48ch;line-height:1.7}.dashboard-state{min-height:100%;display:grid;place-items:center;padding:clamp(1.25rem,3vw,2rem)}.dashboard-state-panel{width:min(100%,760px);display:grid;gap:.7rem;padding:clamp(1.5rem,3vw,2.3rem);border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface));box-shadow:var(--shadow-panel)}.dashboard-state-panel h2{font-size:clamp(1.8rem,1.3rem + 1.5vw,3rem)}.dashboard-state-kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.dashboard-state-description{max-width:54ch;font-size:1rem;line-height:1.7;color:var(--text)}.dashboard-state-secondary{max-width:54ch;font-size:.92rem;line-height:1.65;color:var(--text-muted)}.dashboard-state-loading .dashboard-state-panel{background:radial-gradient(circle at top right,color-mix(in oklab,var(--accent) 12%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface))}.dashboard-state-reconnecting .dashboard-state-panel{background:radial-gradient(circle at top right,color-mix(in oklab,var(--warning) 14%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface))}.dashboard-state-failure .dashboard-state-panel{background:radial-gradient(circle at top right,color-mix(in oklab,var(--danger) 14%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface))}.dashboard-state-empty .dashboard-state-panel{background:radial-gradient(circle at top right,color-mix(in oklab,var(--accent-soft) 18%,transparent),transparent 32%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface))}.studios-dropdown,.hamburger-menu,.stream-info-container{position:relative}.studios-dropdown-btn,.hamburger-btn,.refresh-btn,.admin-back-btn,.stream-info-btn,.fullscreen-btn,.studios-dropdown-create-btn,.studios-dropdown-form-cancel,.studios-dropdown-retry,.back-btn,.confirm-btn-cancel{border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elevated) 88%,transparent);color:var(--text);border-radius:999px;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.studios-dropdown-btn:hover,.hamburger-btn:hover,.refresh-btn:hover:not(:disabled),.admin-back-btn:hover,.stream-info-btn:hover,.fullscreen-btn:hover,.studios-dropdown-create-btn:hover,.studios-dropdown-form-cancel:hover:not(:disabled),.studios-dropdown-retry:hover:not(:disabled),.back-btn:hover,.confirm-btn-cancel:hover{border-color:var(--border-strong);background:color-mix(in oklab,var(--surface-strong) 90%,transparent);transform:translateY(-1px)}.studios-dropdown-btn{display:flex;align-items:center;gap:var(--space-sm);min-width:min(360px,55vw);justify-content:space-between;padding:.88rem 1rem}.studios-dropdown-label{font-weight:700;max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studios-dropdown-chevron,.hamburger-icon{color:var(--text-soft)}.chevron-open{transform:rotate(180deg)}.studios-dropdown-menu,.hamburger-dropdown,.stream-info-panel{position:absolute;z-index:30;border:1px solid var(--border);border-radius:1.4rem;background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 92%,white 8%),var(--surface));box-shadow:var(--shadow-float);opacity:0;visibility:hidden;pointer-events:none}.studios-dropdown-menu.dropdown-visible,.hamburger-dropdown.dropdown-visible,.stream-info-panel.dropdown-visible{opacity:1;visibility:visible;pointer-events:auto}.studios-dropdown-menu{top:calc(100% + .65rem);left:0;width:min(420px,90vw);max-height:min(70vh,720px);overflow:auto;padding:.5rem}.studios-dropdown-header,.studios-dropdown-form,.hamburger-email{padding:.75rem}.studios-dropdown-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);color:var(--text-soft);font-weight:700}.studios-dropdown-create-btn,.studios-dropdown-retry{padding:.6rem .85rem}.studios-dropdown-form{display:grid;gap:var(--space-sm)}.studios-dropdown-form-inputs{flex-direction:column}.studios-dropdown-form-inputs,.studios-dropdown-form-actions,.create-form,.confirm-actions,.admin-pending-actions,.admin-actions,.dashboard-controls,.item-actions{display:flex;gap:var(--space-sm)}.studios-dropdown-form-inputs input,.studios-dropdown-form-inputs select,.create-form input,.create-form select,.admin-search,.admin-role-filter,.admin-sort,.admin-role-select{width:100%;border-radius:1rem;border:1px solid var(--border);background:color-mix(in oklab,var(--bg) 86%,transparent);color:var(--text);padding:.84rem .95rem}.studios-dropdown-form-inputs input,.create-form input,.admin-search{flex:1;min-width:0}.studios-dropdown-error,.sessions-sidebar-error,.admin-error{margin:.25rem 0 0;padding:.75rem .9rem;border-radius:1rem;background:color-mix(in oklab,var(--danger-soft) 78%,transparent);color:var(--danger)}.studios-dropdown-error-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem}.studios-dropdown-error-copy{display:grid;gap:.25rem}.studios-dropdown-error-copy span{color:var(--danger);line-height:1.55}.studios-dropdown-retry{flex-shrink:0}.sessions-sidebar-error.sessions-sidebar-state{margin:.85rem .85rem 0;display:grid;border:1px solid color-mix(in oklab,var(--danger) 22%,var(--border));background:radial-gradient(circle at top right,color-mix(in oklab,var(--danger) 16%,transparent),transparent 30%),color-mix(in oklab,var(--surface) 94%,transparent);color:var(--text)}.studios-dropdown-loading,.studios-dropdown-empty,.sessions-sidebar-loading,.sessions-sidebar-empty,.admin-loading,.admin-empty{padding:1.2rem;color:var(--text-muted);text-align:center}.sessions-sidebar-loading.sessions-sidebar-state,.sessions-sidebar-empty.sessions-sidebar-state{margin:.85rem;display:grid;text-align:left;border:1px solid var(--border);border-radius:1.25rem;background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface));box-shadow:var(--shadow-soft)}.studios-dropdown-list,.sessions-sidebar-list,.items-list{list-style:none;padding:0;margin:0}.studios-dropdown-list{display:grid;gap:.35rem}.studios-dropdown-item-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.studios-dropdown-item,.studios-dropdown-item-delete,.hamburger-menu-item,.hamburger-signout{border:none;background:transparent;color:var(--text)}.studios-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;padding:.9rem 1rem;border-radius:1rem;text-align:left}.studios-dropdown-item:hover,.hamburger-menu-item:hover,.hamburger-signout:hover{background:color-mix(in oklab,var(--accent-soft) 70%,transparent)}.studios-dropdown-item-active,.hamburger-menu-item-active{background:color-mix(in oklab,var(--accent-soft) 86%,transparent);color:var(--accent-strong)}.studios-dropdown-item-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studios-dropdown-item-meta{font-size:.84rem;color:var(--text-muted)}.studios-dropdown-item-delete{width:2.8rem;border-radius:1rem;color:var(--text-muted)}.studios-dropdown-item-delete:hover{background:color-mix(in oklab,var(--danger-soft) 80%,transparent);color:var(--danger)}.hamburger-btn{width:3rem;height:3rem;padding:0;display:grid;place-items:center}.hamburger-icon{display:grid;gap:4px;justify-items:center}.hamburger-icon>span{display:block;width:18px;height:2px;border-radius:99px;background:var(--text);transition:transform .22s ease,opacity .22s ease}.hamburger-open>span:nth-child(1){transform:translateY(6px) rotate(45deg)}.hamburger-open>span:nth-child(2){opacity:0}.hamburger-open>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hamburger-dropdown{top:calc(100% + .65rem);right:0;width:min(320px,90vw);overflow:hidden}.hamburger-email{display:grid;gap:.25rem}.hamburger-email-label{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.hamburger-email-value{font-weight:700;word-break:break-word}.hamburger-divider{height:1px;background:var(--border)}.hamburger-menu-item,.hamburger-signout{display:block;width:100%;padding:.95rem 1rem;text-align:left}.hamburger-signout{color:var(--danger)}.hamburger-theme{padding:.6rem .75rem;display:grid;gap:.45rem;border:none;margin:0;min-width:0}.hamburger-theme-label{float:left;width:100%;padding:0;margin-bottom:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.hamburger-theme-label+*{clear:left}.hamburger-theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.3rem;border-radius:999px;background:color-mix(in oklab,var(--surface-strong) 72%,transparent);border:1px solid var(--border)}.hamburger-theme-option{border:none;background:transparent;color:var(--text-soft);border-radius:999px;padding:.46rem .5rem;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-align:center;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease;white-space:nowrap}.hamburger-theme-option:hover:not(.hamburger-theme-option-active){color:var(--text);background:color-mix(in oklab,var(--surface-muted) 80%,transparent)}.hamburger-theme-option-active{background:var(--bg-elevated);color:var(--accent-strong);box-shadow:0 2px 8px color-mix(in oklab,var(--ink) 10%,transparent)}.sessions-sidebar{min-width:0;display:grid;grid-template-rows:auto 1fr;border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 94%,white 6%),var(--surface));overflow:hidden;box-shadow:var(--shadow-panel)}.sessions-sidebar-header{display:flex;align-items:center;gap:var(--space-sm);padding:.75rem 1rem;border-bottom:1px solid var(--border)}.sessions-sidebar-heading{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.sessions-sidebar-copy{display:grid;gap:.35rem;min-width:0}.sessions-sidebar-title{margin-top:.25rem;font-size:1.2rem}.sessions-sidebar-room{display:block;margin-top:.25rem;color:var(--text-soft)}.sessions-sidebar-summary{max-width:40ch;font-size:.88rem;line-height:1.55;color:var(--text-muted)}.sessions-sidebar-metrics{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.sessions-sidebar-metric{min-width:4.3rem;padding:.7rem .8rem;border-radius:1rem;background:color-mix(in oklab,var(--accent-soft) 76%,transparent);display:grid;gap:.15rem;text-align:center}.sessions-sidebar-metric-attention{background:color-mix(in oklab,var(--warning) 16%,transparent)}.sessions-sidebar-metric-value{font-family:var(--font-display);font-size:1.1rem;color:var(--text)}.sessions-sidebar-metric-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.sessions-sidebar-list{padding:.6rem;overflow:auto;display:grid;gap:.5rem;align-content:start}.sessions-sidebar-state{padding:1rem;display:grid;text-align:left}.sessions-sidebar-state-copy{display:grid;gap:.35rem}.sessions-sidebar-state-kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.sessions-sidebar-state-title{font-size:1.05rem;font-weight:800;color:var(--text)}.sessions-sidebar-state-text{max-width:40ch;line-height:1.6;color:var(--text-muted)}.session-card{padding:.55rem;border-radius:.85rem;border:1px solid var(--border);background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 90%,white 10%),var(--surface));transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.session-card-clickable{cursor:pointer}.session-card-clickable:hover{transform:translateY(-1px);border-color:var(--border-strong);box-shadow:var(--shadow-soft)}.session-card-active{border-color:color-mix(in oklab,var(--accent) 72%,white 18%);box-shadow:0 20px 40px var(--accent-glow)}.session-card-badges{display:flex;align-items:center;justify-content:flex-end;gap:.3rem;flex-wrap:wrap}.session-card-connection{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:999px;font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.session-card-connection-live{background:color-mix(in oklab,var(--success) 18%,transparent);color:var(--success)}.session-card-connection-attention{background:color-mix(in oklab,var(--warning) 18%,transparent);color:color-mix(in oklab,var(--warning) 80%,black 10%)}.session-card-connection-muted{background:color-mix(in oklab,var(--surface-strong) 86%,transparent);color:var(--text-muted)}.session-card-info{display:flex;justify-content:space-between;gap:var(--space-sm);margin-bottom:.4rem;align-items:flex-start}.session-card-name-group{display:grid;gap:.12rem;min-width:0}.session-card-name{font-weight:800;font-size:.88rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-card-active .session-card-name{color:var(--accent-strong)}.session-card-id{font-size:.7rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.session-card-status,.status-indicator,.role-badge,.item-scope{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:999px;font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.session-card-active-note,.session-card-status-text{margin-top:.3rem;color:var(--text-muted);font-size:.75rem}.session-card-summary{margin-top:.3rem;font-size:.8rem;line-height:1.55;color:var(--text-soft)}.session-card-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap;margin-top:.2rem}.session-card-live-note{display:inline-flex;align-items:center;padding:.2rem .45rem;border-radius:999px;background:color-mix(in oklab,var(--success) 14%,transparent);color:var(--success);font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.session-thumbnail{position:relative;aspect-ratio:16 / 9;border-radius:.65rem;overflow:hidden;background:color-mix(in oklab,var(--surface-inverse) 92%,transparent)}.session-thumbnail-img,.remote-video{display:block;width:100%;height:100%;object-fit:cover}.session-thumbnail-active{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 75%,white 18%)}.session-thumbnail-label{position:absolute;left:.7rem;bottom:.7rem;display:inline-flex;align-items:center;padding:.35rem .55rem;border-radius:999px;background:color-mix(in oklab,black 44%,transparent);color:#fff;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.session-thumbnail-loading,.session-thumbnail-error,.video-overlay{display:grid;place-items:center}.session-thumbnail-loading,.session-thumbnail-error{height:100%;gap:.35rem}.session-thumbnail-message{font-size:.74rem;color:var(--text-soft)}.session-thumbnail-submessage{max-width:26ch;font-size:.72rem;line-height:1.45;color:var(--text-muted);text-align:center}.session-thumbnail-error .session-thumbnail-message{color:var(--danger)}.session-thumbnail-spinner,.video-spinner{border-radius:999px;border-style:solid;animation:spin .85s linear infinite}.session-thumbnail-spinner{width:18px;height:18px;border-width:2px;border-color:color-mix(in oklab,white 16%,transparent);border-top-color:var(--accent)}.session-thumbnail-stats-overlay{position:absolute;inset:0;display:grid;place-items:center;gap:var(--space-xs);padding:1rem;background:color-mix(in oklab,black 62%,transparent);opacity:0;transition:opacity .18s ease}.session-thumbnail:hover .session-thumbnail-stats-overlay{opacity:1}.session-card-inline-status{display:flex;align-items:center;gap:.4rem;padding:.15rem 0;margin-top:.2rem}.session-card-inline-spinner{width:10px;height:10px;flex-shrink:0;border-radius:999px;border:1.5px solid color-mix(in oklab,var(--text-muted) 30%,transparent);border-top-color:var(--accent);animation:spin .85s linear infinite}.session-card-inline-text{font-size:.72rem;color:var(--text-muted);line-height:1}.session-card-inline-error .session-card-inline-text{color:var(--danger)}.session-stats-grid{display:grid;grid-template-columns:auto auto;gap:.35rem .8rem}.session-stats-label{color:color-mix(in oklab,white 72%,transparent)}.session-stats-value{text-align:right;font-variant-numeric:tabular-nums;color:#fff}.session-stats-level-good,.status-connected,.status-offer_set,.role-badge-user,.role-badge-admin,.role-badge-super-admin{background:color-mix(in oklab,var(--success) 18%,transparent);color:var(--success)}.session-stats-level-fair,.status-answer_set,.status-connecting,.status-new,.role-badge-pending{background:color-mix(in oklab,var(--warning) 18%,transparent);color:color-mix(in oklab,var(--warning) 80%,black 10%)}.session-stats-level-poor,.status-disconnected,.status-closed,.status-failed,.status-expired{background:color-mix(in oklab,var(--danger) 18%,transparent);color:var(--danger)}.status-created,.status-completed{background:color-mix(in oklab,var(--accent) 16%,transparent);color:var(--accent-strong)}.api-keys-panel,.webrtc-viewer,.admin-dashboard{padding:clamp(1rem,2vw,1.4rem);border-radius:var(--radius-xl)}.api-keys-panel{max-width:720px;margin-inline:auto;width:100%}.create-form{align-items:center;margin-bottom:var(--space-lg);flex-wrap:wrap}.create-form button{flex-shrink:0}.token-display{display:grid;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:1rem;border-radius:1.2rem;background:color-mix(in oklab,var(--accent-soft) 72%,transparent);border:1px solid color-mix(in oklab,var(--accent) 24%,transparent)}.token-display .token{display:block;padding:.95rem 1rem;border-radius:1rem;background:color-mix(in oklab,var(--surface-inverse) 94%,transparent);color:var(--bg);word-break:break-all}.token-display button{justify-self:start}.items-list{display:grid;gap:.8rem}.item-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:1rem 1.05rem;border:1px solid var(--border);border-radius:1.25rem;background:color-mix(in oklab,var(--bg-elevated) 92%,transparent)}.item-info{display:grid;gap:.22rem;min-width:0}.item-name{font-weight:800;color:var(--text)}.item-meta{font-size:.88rem;line-height:1.55}.item-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}.delete-btn{padding:.74rem 1rem;background:var(--danger);box-shadow:0 16px 34px color-mix(in oklab,var(--danger) 20%,transparent)}.webrtc-viewer{height:100%;display:grid;grid-template-rows:auto auto 1fr;gap:var(--space-md)}.viewer-header{display:flex;align-items:start;justify-content:space-between;gap:var(--space-md)}.viewer-header-left,.viewer-header-right{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.viewer-header-left{flex:1}.viewer-header-right{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.viewer-info-block{display:grid;gap:.38rem;min-width:0}.viewer-title-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;min-width:0}.viewer-info{display:inline-block;max-width:min(72ch,100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.08rem;font-weight:800;color:var(--text)}.viewer-live-chip{display:inline-flex;align-items:center;padding:.35rem .68rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.viewer-live-chip-live{background:color-mix(in oklab,var(--success) 16%,transparent);color:var(--success)}.viewer-live-chip-idle{background:color-mix(in oklab,var(--accent-soft) 72%,transparent);color:var(--accent-strong)}.viewer-session-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;color:var(--text-soft);font-size:.96rem;min-width:0}.viewer-session-label{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.viewer-content{position:relative;min-height:min(72vh,780px);border-radius:calc(var(--radius-xl) - .2rem);overflow:hidden;background:radial-gradient(circle at top,color-mix(in oklab,var(--accent) 12%,transparent),transparent 28%),#05080b}.viewer-fullscreen{border-radius:0}.video-section{position:absolute;inset:0}.video-overlay{position:absolute;inset:0;background:color-mix(in oklab,black 58%,transparent);color:#fff;z-index:5}.video-overlay-exiting{opacity:0;pointer-events:none}.video-overlay-content{display:grid;place-items:center;gap:var(--space-md)}.video-overlay-text{font-size:clamp(1rem,.75rem + 1vw,1.35rem);letter-spacing:.05em;text-transform:uppercase}.video-spinner{width:64px;height:64px;border-width:4px;border-color:color-mix(in oklab,white 18%,transparent);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.stream-quality-banner{position:absolute;left:50%;bottom:1rem;transform:translate(-50%);display:inline-flex;align-items:center;gap:.55rem;padding:.65rem .9rem;border-radius:999px;background:color-mix(in oklab,black 58%,transparent);color:#fff;z-index:6;max-width:calc(100% - 2rem)}.stream-quality-banner-exiting{opacity:0;pointer-events:none}.stream-quality-pulse{width:.55rem;height:.55rem;border-radius:999px;background:var(--warning);animation:quality-pulse 1.6s ease-out infinite}@keyframes quality-pulse{0%,to{opacity:.4;transform:scale(.88)}50%{opacity:1;transform:scale(1.1)}}.ptz-controls{display:grid;gap:1rem;padding:1rem 1rem .95rem;border-radius:1.45rem;background:linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 90%,transparent),color-mix(in oklab,var(--surface) 84%,transparent));border:1px solid color-mix(in oklab,var(--border) 84%,transparent);box-shadow:var(--shadow-soft)}.ptz-overlay-container{position:absolute;right:1rem;top:1rem;z-index:8;width:min(260px,calc(100% - 2rem));transition:transform 0ms}.ptz-overlay{width:100%}.ptz-controls.ptz-disabled{opacity:.45}.ptz-collapsed{padding:0}.ptz-collapsed-bar{display:flex;align-items:center;gap:var(--space-sm);padding:.65rem 1rem}.ptz-collapsed-label{flex:1;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft)}.ptz-collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid color-mix(in oklab,var(--border) 70%,transparent);border-radius:.6rem;background:transparent;color:var(--text-muted);font-size:.7rem;cursor:pointer;transition:background-color .16s ease,color .16s ease}.ptz-collapse-btn:hover{background:color-mix(in oklab,var(--surface-strong) 80%,transparent);color:var(--text)}.ptz-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.6rem;color:var(--text-muted);font-size:1.1rem;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;transition:background-color .16s ease,color .16s ease}.ptz-drag-handle:hover{background:color-mix(in oklab,var(--surface-strong) 80%,transparent);color:var(--text)}.ptz-drag-handle:active{cursor:grabbing}.ptz-dragging{opacity:.92}.ptz-dragging .ptz-drag-handle{cursor:grabbing;color:var(--accent-strong)}.ptz-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-bottom:.2rem}.ptz-section-label{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.ptz-panel-body{display:grid;gap:.9rem}.ptz-dpad-group{display:grid;gap:.55rem}.ptz-section{display:grid;gap:.35rem}.ptz-secondary{display:grid;gap:.4rem}.ptz-dpad{display:grid;gap:.55rem;justify-items:center}.ptz-dpad-middle{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;gap:.55rem}.ptz-btn{min-width:3rem;min-height:3rem;display:inline-flex;align-items:center;justify-content:center;border-radius:1rem;border:1px solid color-mix(in oklab,var(--border) 86%,transparent);background:linear-gradient(180deg,color-mix(in oklab,var(--surface) 94%,transparent),color-mix(in oklab,var(--surface-strong) 90%,transparent));color:var(--text);font-weight:800;letter-spacing:.02em;box-shadow:0 10px 20px color-mix(in oklab,var(--ink) 8%,transparent);transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease,color .16s ease;touch-action:manipulation;-webkit-user-select:none;user-select:none}.ptz-btn:hover:not(:disabled){border-color:var(--border-strong);background:linear-gradient(180deg,color-mix(in oklab,var(--surface-strong) 92%,transparent),color-mix(in oklab,var(--surface) 94%,transparent));transform:translateY(-1px)}.ptz-btn:active:not(:disabled){transform:translateY(1px) scale(.985);box-shadow:0 6px 14px color-mix(in oklab,var(--ink) 10%,transparent)}.ptz-btn:disabled{cursor:not-allowed}.ptz-home{background:linear-gradient(180deg,color-mix(in oklab,var(--accent-soft) 82%,transparent),color-mix(in oklab,var(--surface) 92%,transparent))}.ptz-zoom-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.ptz-zoom-buttons .ptz-btn{min-width:2.25rem;min-height:2.25rem}.ptz-tracking-btn{width:100%;min-height:2.25rem;padding:.5rem .75rem;justify-content:space-between}.ptz-tracking-active{background:linear-gradient(180deg,color-mix(in oklab,var(--success) 20%,transparent),color-mix(in oklab,var(--surface) 92%,transparent));color:var(--success)}.ptz-tracking-status{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.stream-info-btn,.fullscreen-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.72rem .95rem;min-height:3rem;border-radius:999px;font-weight:800}.stream-info-btn-label,.fullscreen-btn-label{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.fullscreen-btn{position:absolute;right:1rem;bottom:1rem;z-index:9}.stream-info-btn{white-space:nowrap}.stream-info-panel{top:calc(100% + .65rem);right:0;width:min(360px,88vw);padding:.95rem;display:grid;gap:.85rem}.stream-info-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.stream-info-panel-copy{display:grid;gap:.2rem;min-width:0}.stream-info-panel-kicker{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}.stream-info-panel-title{font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stream-info-panel-close{border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elevated) 88%,transparent);color:var(--text-muted);border-radius:999px;width:2.25rem;height:2.25rem;padding:0}.stream-info-panel-close:hover{border-color:var(--border-strong);background:color-mix(in oklab,var(--surface-strong) 90%,transparent);color:var(--text)}.stream-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:.55rem}.stream-info-row{display:grid;gap:.2rem;padding:.7rem .85rem;border:1px solid color-mix(in oklab,var(--border) 82%,transparent);border-radius:1rem;background:color-mix(in oklab,var(--surface) 88%,transparent)}.stream-info-label{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.stream-info-value{color:var(--text);font-weight:700;line-height:1.4;word-break:break-word}.viewer-status-indicator{gap:.45rem;border:1px solid color-mix(in oklab,var(--border) 82%,transparent);background:color-mix(in oklab,var(--bg-elevated) 86%,transparent);color:var(--text);box-shadow:0 10px 18px color-mix(in oklab,var(--ink) 8%,transparent)}.status-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--text-muted);box-shadow:0 0 0 4px color-mix(in oklab,var(--text-muted) 12%,transparent)}.status-label{line-height:1}.status-live{background:color-mix(in oklab,var(--success) 12%,var(--bg-elevated));color:var(--success)}.status-live .status-dot{background:var(--success);box-shadow:0 0 0 4px color-mix(in oklab,var(--success) 18%,transparent)}.status-connected{background:color-mix(in oklab,var(--accent-soft) 62%,var(--bg-elevated));color:var(--accent-strong)}.status-connected .status-dot{background:var(--accent);box-shadow:0 0 0 4px color-mix(in oklab,var(--accent) 18%,transparent)}.status-connecting{background:color-mix(in oklab,var(--warning) 18%,var(--bg-elevated));color:color-mix(in oklab,var(--warning) 70%,var(--text))}.status-connecting .status-dot{background:var(--warning);box-shadow:0 0 0 4px color-mix(in oklab,var(--warning) 18%,transparent)}.status-disconnected,.status-failed,.status-closed,.status-new{background:color-mix(in oklab,var(--surface-strong) 86%,transparent);color:var(--text-soft)}.status-disconnected .status-dot,.status-failed .status-dot,.status-closed .status-dot,.status-new .status-dot{background:var(--text-muted);box-shadow:0 0 0 4px color-mix(in oklab,var(--text-muted) 12%,transparent)}.admin-dashboard{max-width:1440px;margin:0 auto;display:grid;gap:var(--space-lg)}.admin-header,.admin-section-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.admin-back-btn,.refresh-btn{padding:.8rem 1rem}.admin-section{display:grid;gap:var(--space-md);padding:1rem;border:1px solid var(--border);border-radius:1.4rem;background:color-mix(in oklab,var(--bg-elevated) 88%,transparent)}.admin-section-title{display:flex;align-items:center;gap:var(--space-xs);font-size:1.35rem}.admin-badge,.admin-you-badge{color:var(--accent-strong);font-weight:800}.admin-pending-list{display:grid;gap:.75rem}.admin-pending-item,.confirm-dialog{padding:1rem;border-radius:1.2rem;border:1px solid var(--border);background:color-mix(in oklab,var(--surface) 92%,transparent)}.admin-pending-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.admin-user-info,.admin-user-cell{display:flex;align-items:center;gap:var(--space-sm)}.admin-avatar{width:2.75rem;height:2.75rem;border-radius:999px;object-fit:cover}.admin-user-name{font-weight:800;color:var(--text)}.admin-user-email,.admin-approved-by,.admin-date{color:var(--text-soft)}.admin-btn-danger,.confirm-btn-danger{background:var(--danger);box-shadow:0 16px 34px color-mix(in oklab,var(--danger) 20%,transparent)}.admin-btn-sm{padding:.7rem .9rem}.admin-filters{display:grid;grid-template-columns:1.4fr repeat(2,minmax(180px,1fr));gap:var(--space-sm);flex:1}.admin-table-wrapper{overflow:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.95rem .85rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table th{color:var(--text-muted);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.admin-row-self{background:color-mix(in oklab,var(--accent-soft) 50%,transparent)}.confirm-overlay{position:fixed;inset:0;display:grid;place-items:center;padding:1rem;background:color-mix(in oklab,black 32%,transparent);z-index:50}.confirm-dialog{width:min(460px,100%);box-shadow:var(--shadow-float)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes cardPromote{0%{box-shadow:0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 0 8px var(--accent-glow),0 20px 40px var(--accent-glow)}to{box-shadow:0 20px 40px var(--accent-glow)}}@keyframes statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}@keyframes bannerSlideUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:no-preference){.dashboard-main-view{animation:fadeSlideIn var(--duration-slow) var(--ease-smooth) both}.session-card-active{animation:cardPromote var(--duration-slow) var(--ease-smooth)}.status-live .status-dot{animation:statusPulse 2.4s ease-in-out infinite}.studios-dropdown-menu,.hamburger-dropdown,.stream-info-panel{transform:translateY(-4px) scale(.98);transition:opacity var(--duration-normal) var(--ease-smooth),visibility var(--duration-normal),transform var(--duration-normal) var(--ease-smooth)}.studios-dropdown-menu.dropdown-visible,.hamburger-dropdown.dropdown-visible,.stream-info-panel.dropdown-visible{transform:translateY(0) scale(1)}.video-overlay{transition:opacity var(--duration-slow) var(--ease-smooth)}.stream-quality-banner{animation:bannerSlideUp var(--duration-normal) var(--ease-smooth) both;transition:opacity var(--duration-normal) var(--ease-smooth)}}@media(max-width:1080px){.auth-shell{grid-template-columns:1fr}.auth-hero,.login-card{min-height:auto}.auth-points,.dashboard-body{grid-template-columns:1fr}.sessions-sidebar{max-height:40vh}}@media(max-width:760px){.login-page,.dashboard{padding:.75rem}.sessions-sidebar-header,.admin-header,.admin-section-controls,.dashboard-controls,.create-form,.item-row,.admin-pending-item{flex-direction:column;align-items:stretch}.dashboard-studio-info{flex-direction:column;align-items:stretch;border-left:none;border-right:none;border-top:1px solid var(--border);padding:var(--space-sm) 0 0}.dashboard-studio-metrics{justify-content:flex-start}.studios-dropdown-btn{min-width:0;width:100%}.sessions-sidebar-metrics{width:100%}.sessions-sidebar-metric{flex:1}.ptz-overlay-container{right:.75rem;left:.75rem;top:.75rem;width:auto}.ptz-controls{width:100%}.ptz-panel-header{flex-direction:column}.ptz-panel-hint{max-width:none;text-align:left}.stream-info-btn-label,.fullscreen-btn-label{display:none}.stream-quality-banner{width:calc(100% - 1.5rem)}.admin-filters{grid-template-columns:1fr}}@media(max-width:768px){.desktop-only{display:none}.dashboard-header{flex-direction:row;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm)}.dashboard-brand,.dashboard-studio-info{display:none}.dashboard-controls{flex:1;flex-direction:row;align-items:center}.dashboard-controls .studios-dropdown{flex:1;min-width:0}.dashboard-controls .studios-dropdown-btn{width:100%;min-width:0}.dashboard-body-mobile-sidebar .dashboard-main{display:none}.dashboard-body-mobile-sidebar .sessions-sidebar{max-height:none}.dashboard-body-mobile-viewer .dashboard-rail-col{display:none}.webrtc-viewer{display:flex;flex-direction:column;height:100%;min-height:0;overflow-y:auto;gap:var(--space-xs)}.viewer-content{flex:0 0 auto;width:100%;aspect-ratio:16 / 9;min-height:0}.viewer-content .remote-video{object-fit:contain}.ptz-mobile-section{flex-shrink:0;padding-top:var(--space-xs)}.ptz-mobile-section .ptz-controls{gap:var(--space-xs)}.ptz-mobile-section .ptz-panel-body{display:flex;flex-direction:row;align-items:center;gap:var(--space-md)}.ptz-mobile-section .ptz-dpad-group{flex-shrink:0}.ptz-mobile-section .ptz-secondary{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}.ptz-mobile-section .ptz-zoom{order:-1}.ptz-mobile-section .ptz-zoom-buttons{grid-template-columns:1fr 1fr}.ptz-mobile-section .ptz-zoom-buttons .ptz-btn{min-width:0;width:100%;min-height:3.4rem}.ptz-mobile-section .ptz-tracking-btn{width:100%;min-height:3rem;padding:.5rem .75rem;justify-content:center;gap:.4rem}.ptz-mobile-section .ptz-tracking-status,.ptz-mobile-section .ptz-section-label{display:none}.ptz-mobile-section .ptz-btn{min-width:3.4rem;min-height:3.4rem}.viewer-back-btn{padding:.5rem .85rem;font-size:.82rem;font-weight:700;white-space:nowrap;flex-shrink:0}.viewer-header{flex-direction:row;align-items:center;flex-shrink:0;gap:var(--space-sm)}.viewer-header-left{align-items:center}.viewer-info{font-size:.88rem}.viewer-live-chip{padding:.22rem .52rem;font-size:.68rem}.viewer-status-indicator,.viewer-session-row,.viewer-kicker{display:none}}.dashboard-placeholder-actions,.dashboard-state-actions{margin-top:1.25rem;display:flex;gap:.75rem;flex-wrap:wrap}.dashboard-placeholder-panel-removed{border-color:color-mix(in oklab,var(--warning) 40%,var(--border));background:radial-gradient(circle at top right,color-mix(in oklab,var(--warning) 10%,transparent),transparent 35%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 96%,white 4%),var(--surface))}.studio-wizard{position:relative;width:min(100%,600px);padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--border);border-radius:var(--radius-xl);background:radial-gradient(circle at top right,color-mix(in oklab,var(--accent) 14%,transparent),transparent 38%),linear-gradient(180deg,color-mix(in oklab,var(--bg-elevated) 96%,white 4%),var(--surface));box-shadow:var(--shadow-panel);display:flex;flex-direction:column;gap:1.5rem}.studio-wizard-close{position:absolute;top:1rem;right:1rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:none;border:none;color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.studio-wizard-close:hover{background:var(--surface-strong);color:var(--text)}.wizard-steps{display:flex;align-items:center}.wizard-step-dot{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;font-family:var(--font-display);border:2px solid var(--border);background:var(--surface);color:var(--text-muted);flex-shrink:0;transition:background var(--duration-normal) var(--ease-smooth),border-color var(--duration-normal) var(--ease-smooth),color var(--duration-normal) var(--ease-smooth)}.wizard-step-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.wizard-step-done{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.wizard-step-line{flex:1;height:2px;background:var(--border);margin:0 .5rem;transition:background var(--duration-normal) var(--ease-smooth)}.wizard-step-line-done{background:var(--accent-strong)}.wizard-content{display:flex;flex-direction:column;gap:.6rem}.wizard-content h2{margin:.2rem 0 0;font-size:clamp(1.6rem,1.2rem + 1.2vw,2.4rem);line-height:1.15}.wizard-description{max-width:50ch;line-height:1.7;color:var(--text-soft);margin:0}.wizard-form{display:flex;flex-direction:column;gap:.75rem;margin-top:.4rem}.wizard-input{width:100%;padding:.7rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);font-size:.95rem;font-family:var(--font-body);transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.wizard-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.wizard-input::placeholder{color:var(--text-muted)}.wizard-error{font-size:.875rem;color:var(--danger);margin:0;line-height:1.5}.wizard-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.25rem}.wizard-primary-btn{padding:.65rem 1.4rem;border-radius:var(--radius-sm);background:var(--accent-strong);color:#fff;font-size:.88rem;font-weight:700;font-family:var(--font-display);letter-spacing:.02em;border:none;cursor:pointer;transition:opacity var(--duration-fast) ease,transform var(--duration-fast) ease}.wizard-primary-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.wizard-primary-btn:active:not(:disabled){transform:translateY(0)}.wizard-primary-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.wizard-skip-btn{background:none;border:none;color:var(--text-muted);font-size:.875rem;font-family:var(--font-body);cursor:pointer;padding:.4rem 0;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-strong);transition:color var(--duration-fast) ease,text-decoration-color var(--duration-fast) ease}.wizard-skip-btn:hover:not(:disabled){color:var(--text-soft);text-decoration-color:var(--text-muted)}.wizard-skip-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-footnote{font-size:.82rem;color:var(--text-muted);line-height:1.65;margin:.25rem 0 0}.wizard-token-block{display:flex;align-items:stretch;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-strong);margin-top:.25rem}.wizard-token{flex:1;padding:.75rem 1rem;font-family:Fira Code,Cascadia Code,Courier New,monospace;font-size:.74rem;color:var(--accent-strong);word-break:break-all;line-height:1.6;background:transparent;min-width:0}.wizard-copy-btn{flex-shrink:0;padding:.5rem 1rem;background:var(--surface-muted);border:none;border-left:1px solid var(--border);color:var(--text-soft);font-size:.8rem;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.wizard-copy-btn:hover,.wizard-copy-btn-done{background:var(--accent-soft);color:var(--accent-strong)}.wizard-camera-instructions{padding:.9rem 1rem;border-radius:var(--radius-sm);background:var(--surface-strong);border:1px solid var(--border);display:flex;flex-direction:column;gap:.4rem}.wizard-instruction-label{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong);margin:0;font-family:var(--font-display)}.wizard-camera-instructions p:last-child{font-size:.9rem;line-height:1.65;color:var(--text-soft);margin:0}.wizard-inline-code{font-family:Fira Code,Cascadia Code,Courier New,monospace;font-size:.85em;background:var(--surface-muted);padding:.1em .35em;border-radius:4px;color:var(--accent-strong)}
