:root{--bg:#f4f6f8;--surface:#fff;--surface-2:#f0f3f6;--surface-3:#e7ebf0;--ink:#0f1a2a;--ink-2:#364254;--muted:#677386;--line:#e1e6ec;--line-strong:#cbd2db;--accent:#0d7a6f;--accent-hover:#0a665d;--accent-ink:#fff;--accent-bright:#7ee0d3;--accent-soft:#e2f3f0;--accent-text:#0b6b61;--warn:#c2570c;--warn-soft:#fdf1e7;--ok:#17803d;--ok-soft:#e7f5ec;--danger:#b42318;--danger-soft:#fdecea;--viewer-bg:radial-gradient(ellipse at 50% 40%, #fff 0%, #eef2f5 100%);--shadow-sm:0 1px 2px #0f1a2a0f;--shadow:0 1px 2px #0f1a2a0d, 0 4px 16px #0f1a2a0f;--radius:14px;--radius-sm:9px;--font:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#0b1016;--surface:#121922;--surface-2:#18212c;--surface-3:#212c39;--ink:#e8edf3;--ink-2:#c2cbd6;--muted:#8a96a6;--line:#232d3a;--line-strong:#334050;--accent:#2bb3a3;--accent-hover:#3cc5b5;--accent-ink:#04201d;--accent-bright:#a6f0e6;--accent-soft:#0f2e2b;--accent-text:#5fd3c4;--warn:#f0973f;--warn-soft:#2d1d0e;--ok:#4cc77a;--ok-soft:#0f2618;--danger:#f2756a;--danger-soft:#2e1412;--viewer-bg:radial-gradient(ellipse at 50% 40%, #1b2531 0%, #10161e 100%);--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{letter-spacing:-.015em;margin:0;line-height:1.25}h1{font-size:1.75rem;font-weight:650}h2{font-size:1.05rem;font-weight:600}h3{font-size:.95rem;font-weight:600}p{margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}.icon{flex-shrink:0}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:var(--mono)}.error{color:var(--danger);font-size:.9rem}.stack{flex-direction:column;gap:12px;display:flex}.stack-lg{flex-direction:column;gap:20px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{width:100%;max-width:1120px;margin:0 auto;padding:32px 20px 64px}.container.narrow{max-width:560px}.container.wide{max-width:1440px;padding-top:20px}@media (width<=600px){.container{padding:20px 16px 48px}}.app-header{z-index:20;background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1120px;height:60px;margin:0 auto;padding:0 20px;display:flex}.app-header-inner.wide{max-width:1440px}.app-header-actions{align-items:center;gap:10px;min-width:0;display:flex}@media (width<=600px){.app-header-inner{padding:0 16px}}.logo{color:var(--ink);align-items:center;gap:9px;display:inline-flex}.logo:hover{text-decoration:none}.logo-word{letter-spacing:-.02em;font-size:1.12rem;font-weight:700}.logo-word span{color:var(--accent-text)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head p{margin-top:6px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:inline-flex}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:14px;font-size:.9rem;display:inline-flex}.back-link:hover{color:var(--ink);text-decoration:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-head .title{align-items:center;gap:8px;display:flex}.card-body{padding:20px}.card-foot{border-top:1px solid var(--line);padding:14px 20px}@media (width<=600px){.card-pad,.card-body{padding:16px}.card-head{padding:14px 16px}}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=860px){.grid-2{grid-template-columns:1fr}}label.field{color:var(--ink-2);flex-direction:column;gap:6px;font-size:.875rem;font-weight:500;display:flex}input,textarea,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;padding:10px 12px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:88px;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}input[type=file]{display:none}button,.btn{font:inherit;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--accent);background:var(--accent);min-height:40px;color:var(--accent-ink);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font-size:.9rem;font-weight:550;line-height:1;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}button:focus-visible,.btn:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent);outline:none}button:disabled{opacity:.45;cursor:not-allowed}button.secondary,.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}button.secondary:hover:not(:disabled),.btn.secondary:hover{background:var(--surface-2);border-color:var(--line-strong)}button.ghost{color:var(--ink-2);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--surface-2);border-color:#0000}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-soft)}button.sm,.btn.sm{min-height:32px;padding:6px 11px;font-size:.82rem}button.lg,.btn.lg{min-height:48px;padding:13px 22px;font-size:1rem}button.block{width:100%}button.icon-only{width:34px;min-height:34px;padding:0}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:7px;min-height:30px;padding:6px 12px;font-size:.84rem}.segmented button:hover:not(:disabled){color:var(--ink);background:0 0}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.badge{white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.code-badge{font-family:var(--mono);letter-spacing:.14em;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:5px 10px;font-size:.85rem;font-weight:600}.live-dot{color:var(--muted);align-items:center;gap:7px;font-size:.82rem;font-weight:550;display:inline-flex}.live-dot:before{content:"";background:var(--line-strong);border-radius:50%;width:8px;height:8px}.live-dot.on{color:var(--danger)}.live-dot.on:before{background:var(--danger);box-shadow:0 0 0 0 var(--danger);animation:1.6s ease-out infinite ping}@keyframes ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger) 55%, transparent)}to{box-shadow:0 0 0 8px #0000}}.notice{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);align-items:flex-start;gap:10px;padding:12px 14px;font-size:.875rem;display:flex}.notice.accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.notice.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:36px 20px;font-size:.9rem;display:flex}.empty .empty-icon{background:var(--surface-2);width:44px;height:44px;color:var(--muted);border-radius:12px;place-items:center;margin-bottom:4px;display:grid}.empty strong{color:var(--ink);font-weight:600}.rows{margin:0;padding:0;list-style:none}.rows>li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:14px 20px;display:flex}.rows>li:first-child{border-top:0}.rows .row-main{flex:1;min-width:0}.rows .row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.rows .row-meta{color:var(--muted);margin-top:2px;font-size:.82rem}.rows a.row-link{color:inherit;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.rows a.row-link:hover{text-decoration:none}.rows>li.clickable:hover{background:var(--surface-2)}@media (width<=600px){.rows>li{padding:12px 16px}}.home-hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:48px;padding:40px 0 56px;display:grid}.home-hero h1{letter-spacing:-.03em;margin:14px 0 16px;font-size:clamp(2rem,4.2vw,3.1rem);font-weight:700;line-height:1.08}.home-hero h1 em{color:var(--accent-text);font-style:normal}.home-hero .lead{color:var(--ink-2);max-width:34em;font-size:1.08rem}@media (width<=860px){.home-hero{grid-template-columns:1fr;gap:28px;padding:12px 0 36px}}.join-box{padding:28px}.join-box h2{font-size:1.25rem}.join-box form{flex-direction:column;gap:12px;margin-top:18px;display:flex}.code-input{font-family:var(--mono);letter-spacing:.42em;text-align:center;text-transform:uppercase;border-radius:12px;padding:14px 12px 14px calc(12px + .42em);font-size:2rem;font-weight:600}.join-box .divider{color:var(--muted);align-items:center;gap:12px;margin:22px 0 14px;font-size:.82rem;display:flex}.join-box .divider:before,.join-box .divider:after{content:"";background:var(--line);flex:1;height:1px}.features{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=860px){.features{grid-template-columns:1fr}}.feature{padding:22px}.feature .feature-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-text);border-radius:10px;place-items:center;margin-bottom:14px;display:grid}.feature p{color:var(--muted);margin-top:6px;font-size:.9rem}.auth-wrap{flex:1;place-items:center;padding:40px 16px 80px;display:grid}.auth-card{width:100%;max-width:400px;padding:32px}.auth-card .auth-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:12px;place-items:center;margin-bottom:18px;display:grid}.auth-card h1{font-size:1.4rem}.auth-card form{margin-top:22px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.course-tile{text-align:left;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);white-space:normal;flex-direction:column;align-items:stretch;gap:18px;min-height:140px;padding:20px;font-weight:400;line-height:1.4;display:flex}.course-tile:hover:not(:disabled){background:var(--surface);border-color:var(--accent);box-shadow:var(--shadow)}.course-tile .tile-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:10px;place-items:center;display:grid}.course-tile .tile-name{font-size:1rem;font-weight:600}.course-tile .tile-foot{color:var(--accent-text);justify-content:space-between;align-items:center;margin-top:auto;font-size:.85rem;font-weight:550;display:flex}.course-tile.new{box-shadow:none;background:0 0;border-style:dashed}.course-tile.new form{flex-direction:column;gap:10px;margin-top:auto;display:flex}.start-card{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 70%);flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:20px;padding:22px;display:flex}.start-card .start-text{flex:260px}.start-card .start-text p{margin-top:4px}.start-card form{flex:2 360px;gap:10px;display:flex}@media (width<=600px){.start-card form{flex-direction:column}}.drop-zone{cursor:pointer;border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);align-items:center;gap:14px;padding:16px;font-size:.875rem;font-weight:500;display:flex}.drop-zone:hover{border-color:var(--accent)}.drop-zone .dz-icon{background:var(--surface);width:36px;height:36px;color:var(--accent-text);border:1px solid var(--line);border-radius:9px;place-items:center;display:grid}.meter{color:var(--muted);align-items:center;gap:10px;font-size:.82rem;display:flex}.meter-track{background:var(--surface-3);border-radius:99px;flex:1;height:5px;overflow:hidden}.meter-fill{background:var(--accent);border-radius:99px;height:100%}.meter.over .meter-fill{background:var(--danger)}details.preview{border:1px solid var(--line);border-radius:var(--radius-sm)}details.preview summary{cursor:pointer;color:var(--ink-2);padding:10px 14px;font-size:.875rem;font-weight:550}details.preview ol{color:var(--ink-2);flex-direction:column;gap:8px;margin:0;padding:0 14px 12px 34px;font-size:.85rem;display:flex}.session-bar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:18px;display:flex}.session-bar .session-title{flex:1;min-width:220px}.session-bar h1{font-size:1.5rem}.session-bar .session-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.session-grid{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:20px;display:grid}@media (width<=1080px){.session-grid{grid-template-columns:1fr}}.side-panel{flex-direction:column;max-height:calc(100vh - 100px);display:flex;position:sticky;top:80px;overflow:hidden}@media (width<=1080px){.side-panel{max-height:none;position:static}}.side-scroll{flex:1;overflow-y:auto}.tabs{border-bottom:1px solid var(--line);gap:4px;padding:8px 8px 0;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;min-height:0;padding:10px 12px 12px;font-weight:550}.tabs button:hover:not(:disabled){color:var(--ink);background:0 0}.tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.tab-count{background:var(--surface-3);color:var(--ink-2);border-radius:99px;padding:2px 7px;font-size:.72rem;font-weight:600}.tab-count.warn{background:var(--warn-soft);color:var(--warn)}.stage{grid-template-columns:1fr;gap:16px;display:grid}.join-strip{align-items:center;gap:18px;padding:16px 18px;display:flex}.qr{border:1px solid var(--line);background:#fff;border-radius:10px;flex-shrink:0;padding:6px;line-height:0}.join-strip .join-text{flex:1;min-width:0}.join-strip .join-label{color:var(--muted);font-size:.78rem;font-weight:500}.join-url{word-break:break-all;font-size:.95rem;font-weight:600}.join-code{font-family:var(--mono);letter-spacing:.18em;color:var(--ink);font-size:1.9rem;font-weight:700;line-height:1.1}.join-strip .join-code-wrap{text-align:right;border-left:1px solid var(--line);padding-left:18px}@media (width<=600px){.join-strip{flex-wrap:wrap}.join-strip .join-code-wrap{text-align:left;border-left:0;padding-left:0}}.viewer-card{overflow:hidden}.viewer-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;display:flex}.viewer-head .caption{text-transform:capitalize;flex:1;min-width:0;font-weight:600}.viewer-wrap{position:relative}.viewer{background:var(--viewer-bg);width:100%;height:440px;position:relative}.viewer-wrap .reset{z-index:2;position:absolute;bottom:12px;right:12px}.viewer-error{z-index:2;position:absolute;top:12px;left:12px;right:12px}.viewer-empty{background:var(--viewer-bg);height:440px}@media (width<=600px){.viewer,.viewer-empty{height:320px}}.mol-controls{border-bottom:1px solid var(--line);flex-direction:column;gap:14px;padding:16px 18px;display:flex}.mol-search{flex-wrap:wrap;gap:8px;display:flex}.mol-search .search-field{flex:1;min-width:180px;position:relative}.mol-search .search-field .icon{color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.mol-search .search-field input{padding-left:36px}.control-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;min-width:64px;font-size:.75rem;font-weight:600}.chip{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:99px;min-height:30px;padding:5px 11px;font-size:.82rem;font-weight:500}.chip:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong);color:var(--ink)}.chip.active,.chip.active:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}.share-row{background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;display:flex}.votes-card{padding:16px 18px}.vote-meter{flex-direction:column;gap:10px;display:flex}.vote-meter .vm-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.vote-bar{background:var(--surface-3);border-radius:99px;height:10px;display:flex;overflow:hidden}.vote-bar .c{background:var(--warn);transition:width .4s}.vote-bar .u{background:var(--ok);transition:width .4s}.vote-legend{gap:18px;font-size:.875rem;display:flex}.vote-legend span{align-items:center;gap:7px;display:inline-flex}.vote-legend i{border-radius:3px;width:9px;height:9px;display:inline-block}.vote-legend strong{font-variant-numeric:tabular-nums}.shared-answer{border-left:3px solid var(--accent);flex-direction:column;gap:10px;padding:18px;display:flex}.shared-answer .sa-question{font-size:1.02rem;font-weight:600}.quote{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:3px solid var(--accent);background:var(--surface-2);color:var(--ink-2);margin:0;padding:10px 14px;font-size:.9rem}.quote cite{color:var(--muted);align-items:center;gap:5px;margin-top:6px;font-size:.76rem;font-style:normal;font-weight:500;display:flex}.queue{flex-direction:column;gap:10px;padding:14px;display:flex}.q-card{border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.q-card.flagged{border-color:color-mix(in srgb, var(--warn) 45%, var(--line));box-shadow:inset 3px 0 0 var(--warn)}.q-card .q-head{align-items:flex-start;gap:10px;display:flex}.q-card .q-text{flex:1;font-weight:550}.q-card .q-answer{color:var(--ink-2);font-size:.875rem}.q-card details summary{cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:500}.q-card details[open] summary{margin-bottom:8px}.q-members{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.q-members li{background:var(--surface-2);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;display:flex}.q-members li span{flex:1}.answered-list{padding:0 14px 14px}.answered-list summary{cursor:pointer;color:var(--muted);padding:6px 2px;font-size:.85rem;font-weight:550}.answered-list ul{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.answered-list li{color:var(--muted);align-items:center;gap:8px;padding:6px 4px;font-size:.85rem;display:flex}.transcript{flex-direction:column;gap:12px;padding:16px;display:flex}.transcript-lines{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.transcript-lines li{border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:.9rem;display:flex}.transcript-lines li:hover{background:var(--surface-2)}.transcript-lines li .line-text{flex:1}.transcript-lines .line-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex}.transcript-lines li:hover .line-actions,.transcript-lines li:focus-within .line-actions{opacity:1}@media (hover:none){.transcript-lines .line-actions{opacity:1}}.transcript-lines form{flex:1;gap:6px;display:flex}.interim{color:var(--muted);padding:0 10px;font-size:.9rem;font-style:italic}.present-mode .session-grid{grid-template-columns:1fr}.present-mode .stage{grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"viewer join""viewer votes""viewer answer";align-items:start}.present-mode .stage>.join-strip{flex-direction:column;grid-area:join;align-items:flex-start}.present-mode .stage>.join-strip .join-code-wrap{text-align:left;border-left:0;padding-left:0}.present-mode .stage>.join-strip .join-code{font-size:3rem}.present-mode .stage>.viewer-card{grid-area:viewer}.present-mode .stage>.votes-card{grid-area:votes}.present-mode .stage>.shared-answer{grid-area:answer}.present-mode .viewer,.present-mode .viewer-empty{height:calc(100vh - 210px);min-height:420px}.present-mode .viewer-head .caption{font-size:1.3rem}.present-mode .session-bar h1{font-size:2rem}@media (width<=1080px){.present-mode .stage{grid-template-columns:1fr;grid-template-areas:"join""viewer""votes""answer"}}.student-head{margin-bottom:18px}.student-head h1{margin-top:8px;font-size:1.55rem}.vote-buttons{grid-template-columns:1fr 1fr;gap:10px;display:grid}.vote-buttons button{background:var(--surface);min-height:56px;color:var(--ink-2);border:1.5px solid var(--line-strong);flex-direction:column;gap:4px;font-size:.98rem}.vote-buttons button small{color:var(--muted);font-size:.75rem;font-weight:450}.vote-buttons .confused:hover:not(:disabled){background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.vote-buttons .understood:hover:not(:disabled){background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.vote-buttons .confused.active,.vote-buttons .confused.active:hover:not(:disabled){background:var(--warn);border-color:var(--warn);color:#fff}.vote-buttons .understood.active,.vote-buttons .understood.active:hover:not(:disabled){background:var(--ok);border-color:var(--ok);color:#fff}.vote-buttons .active small{color:#ffffffd9}.ask-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.my-q{flex-direction:column;gap:10px;padding:16px 18px;display:flex}.my-q .q-text{font-weight:600}.thinking{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.thinking i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite blink}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.viewer-wrap.with-camera .viewer{z-index:1;background:0 0;position:relative}.backdrop{opacity:0;pointer-events:none;background:#000;transition:opacity .4s;position:absolute;inset:0;overflow:hidden}.backdrop.is-live{opacity:1}.backdrop__video,.backdrop__overlay{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.backdrop__video{filter:none}.backdrop__shade{background:radial-gradient(#0000 70%,#0000002e 100%);position:absolute;inset:0}.room-page{flex-direction:column;min-height:100vh;display:flex}.room{flex-direction:column;flex:1;gap:14px;width:100%;max-width:1560px;margin:0 auto;padding:16px 20px 20px;display:flex}@media (width<=600px){.room{padding:12px 12px 16px}}.room-top{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.room-top h1{font-size:1.35rem}.room-grid{grid-template-columns:minmax(0,1fr) 390px;align-items:start;gap:16px;display:grid}@media (width<=1080px){.room-grid{grid-template-columns:1fr}}.room-side{max-height:calc(100vh - 96px);top:76px}@media (width<=1080px){.room-side{max-height:none}}.stage-panel{overflow:hidden}.stage-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.stage-title{text-transform:none;font-weight:600}.stage-frame{aspect-ratio:16/9;background:var(--surface-2);width:100%;position:relative;overflow:hidden}.stage-frame.dark{background:#111}.stage-frame>.viewer-wrap,.stage-frame>.viewer-wrap>.viewer{height:100%}.stage-frame>.viewer-wrap>.viewer{border-radius:0}.stage-frame .slide-view{place-items:center;padding:12px;display:grid;position:absolute;inset:0}.slide-view canvas{background:#fff;border-radius:4px;box-shadow:0 2px 18px #0f1a2a2e}.stage-empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:.9rem;display:flex;position:absolute;inset:0}.stage-empty strong{color:var(--ink)}.stage-empty .empty-icon{background:var(--surface);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.stage-empty.dark{color:#9aa4b2;background:#161b22;font-size:.8rem}.slide-nav{z-index:4;background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;border-radius:12px;align-items:center;gap:8px;padding:4px;font-size:.85rem;font-weight:600;display:flex;position:absolute;bottom:14px;left:14px}.slide-nav span{padding:0 4px}.pip{z-index:5;aspect-ratio:16/9;background:#0b0f15;border:2px solid #ffffffe6;border-radius:12px;width:26%;min-width:170px;max-width:360px;position:absolute;bottom:14px;right:14px;overflow:hidden;box-shadow:0 8px 28px #00000047}.pip .slide-view{background:var(--surface-2);place-items:center;padding:4px;display:grid;position:absolute;inset:0}.pip .slide-view canvas{box-shadow:none;border-radius:2px}.pip>.viewer-wrap,.pip>.viewer-wrap>.viewer{height:100%}.pip .viewer-wrap .reset{display:none}.pip-interactive{width:32%}.pip-label{z-index:3;pointer-events:none;color:#fff;background:#0000008c;border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:600;position:absolute;bottom:8px;left:8px}.pip-action{z-index:3;position:absolute;top:8px;right:8px}video.cover{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}video.mirrored{transform:scaleX(-1)}.unmute{z-index:6;pointer-events:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dock{flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;display:flex}.dock-btn{min-width:78px;min-height:0;color:var(--ink-2);background:0 0;border-color:#0000;flex-direction:column;gap:5px;padding:6px 8px;font-size:.75rem;font-weight:500}.dock-btn:hover:not(:disabled){background:var(--surface-2);border-color:#0000}.dock-icon{border:1px solid var(--line-strong);background:var(--surface);border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.dock-btn.active .dock-icon{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.dock-live{min-height:52px;padding:0 22px;font-size:.95rem}.dock-live.end{background:var(--danger);border-color:var(--danger);color:#fff}.dock-live.end:hover:not(:disabled){background:var(--danger);filter:brightness(.92)}@media (width<=600px){.dock-btn{min-width:64px}.dock-live{width:100%}}.queue-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:4px;font-size:.78rem}.pulse{flex-direction:column;gap:12px;padding:14px;display:flex}.lost-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lost-list li{border-radius:10px;grid-template-columns:76px 1fr;align-items:center;gap:2px 8px;padding:6px 8px;display:grid}.lost-list li.worst{background:var(--warn-soft)}.lost-list li button{grid-row:span 2;justify-content:flex-start;padding-left:4px}.lost-bar{background:var(--surface-3);border-radius:99px;height:8px;overflow:hidden}.lost-bar div{background:var(--warn);border-radius:99px;height:100%}.lost-meta{color:var(--muted);font-size:.78rem}.mol-preview{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.mol-preview .viewer{height:240px}.student-side{flex-direction:column;gap:18px;padding:16px;display:flex}.pulse-bar{flex-wrap:wrap;align-items:center;gap:16px;padding:14px 18px;display:flex}.pulse-bar>div:first-child{flex:1;min-width:200px}.pulse-bar .vote-buttons{flex:1;min-width:260px}.pulse-bar .vote-buttons button{min-height:46px}.room-side-col{flex-direction:column;gap:12px;min-height:0;max-height:calc(100vh - 96px);display:flex;position:sticky;top:76px}.room-side-col>.side-panel{flex:1;min-height:0;max-height:none;position:static}@media (width<=1080px){.room-side-col{max-height:none;position:static}}.side-tile{aspect-ratio:16/9;border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);background:#0b0f15;flex-shrink:0;position:relative;overflow:hidden}.side-tile .slide-view{background:var(--surface-2);place-items:center;padding:6px;display:grid;position:absolute;inset:0}.side-tile .slide-view canvas{box-shadow:none;border-radius:2px}.side-tile>.viewer-wrap,.side-tile>.viewer-wrap>.viewer{height:100%}.side-tile .viewer-wrap .reset{display:none}.slide-ai{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:flex}.relay-frame{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.relay-tag{z-index:3;color:#fff;background:#0000008c;border-radius:6px;padding:3px 7px;font-size:.7rem;font-weight:600;position:absolute;top:8px;right:8px}.stage-dock{z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#11141ac7;border-radius:18px;align-items:center;gap:2px;padding:6px 8px;transition:opacity .2s;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0000004d}.stage-frame:hover .stage-dock,.stage-dock:focus-within,.stage-dock.pinned{opacity:1;pointer-events:auto}@media (hover:none){.stage-dock{opacity:1;pointer-events:auto}}.stage-dock .dock-btn{color:#e6e9ee;gap:4px;min-width:64px;padding:4px 6px;font-size:.7rem}.stage-dock .dock-btn:hover:not(:disabled){background:#ffffff14}.stage-dock .dock-btn:disabled{opacity:.4}.stage-dock .dock-icon{color:#fff;background:#ffffff14;border-color:#ffffff29;width:38px;height:38px}.stage-dock .dock-btn.active .dock-icon{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.stage-dock .dock-live{border-radius:12px;min-height:40px;margin-left:6px;padding:0 16px;font-size:.85rem}@media (width<=760px){.stage-dock .dock-btn{gap:0;min-width:48px;font-size:0}}.speak-btn.listening{background:var(--danger);border-color:var(--danger);color:#fff}.speak-btn.listening:hover:not(:disabled){background:var(--danger);border-color:var(--danger);filter:brightness(.93)}.quote.prof-reply{border-left-color:var(--warn);background:var(--warn-soft);color:var(--ink)}.companion{border-top:1px solid var(--line)}.companion .viewer-head{border-bottom:0;padding:10px 16px}.companion .caption{text-transform:capitalize}.companion .viewer{height:300px}.auto-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-left:4px;font-size:.8rem;font-weight:600;display:inline-flex}.auto-toggle input{width:auto;accent-color:var(--accent);margin:0;padding:0}
