@import url(https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800;900&family=Geist+Mono:wght@400;500;600&display=swap);:root{--ink-0:#050507;--ink-1:#0a0a0e;--ink-2:#111116;--ink-3:#181820;--ink-4:#22222c;--text-1:#f4f4f6;--text-2:#9d9dab;--text-3:#5a5a66;--text-inverse:#050507;--hairline:#ffffff0f;--hairline-strong:#ffffff1a;--hairline-bright:#ffffff2e;--accent:#00d26a;--accent-hover:#00e876;--accent-press:#00b85b;--accent-soft:#00d26a1f;--accent-glow:#00d26a59;--accent-text:#050507;--cream:#f5e6d3;--cream-soft:#f5e6d31a;--success:#00d26a;--success-soft:#00d26a1f;--warn:#f5b341;--warn-soft:#f5b3411f;--danger:#ff5c7a;--danger-soft:#ff5c7a1f;--info:#5da9f2;--info-soft:#5da9f21f;--font-display:"Geist",system-ui,sans-serif;--font-body:"Geist",system-ui,sans-serif;--font-mono:"Geist Mono",ui-monospace,monospace;--t-hero:72px;--t-d1:56px;--t-d2:40px;--t-d3:28px;--t-h1:20px;--t-h2:16px;--t-body:14px;--t-small:13px;--t-tiny:11px;--track-tight:-0.02em;--track-normal:-0.01em;--track-loose:0.05em;--lh-tight:1.05;--lh-snug:1.25;--lh-normal:1.5;--lh-loose:1.7;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--s-20:80px;--s-24:96px;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-pill:9999px;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #0000004d,0 1px 2px #0003;--shadow-lg:0 12px 40px #00000080,0 4px 8px #0000004d;--shadow-glow:0 0 0 1px var(--accent-glow),0 0 24px var(--accent-glow);--shadow-focus:0 0 0 3px var(--accent-soft),0 0 0 1px var(--accent);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--dur-fast:120ms;--dur-base:180ms;--dur-slow:320ms;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-overlay:900;--z-modal:1000;--z-toast:1100;--bg-primary:var(--ink-0);--bg-secondary:var(--ink-1);--bg-tertiary:var(--ink-2);--bg-card:var(--ink-2);--bg-hover:var(--ink-3);--border:var(--hairline);--border-strong:var(--hairline-strong);--text-primary:var(--text-1);--text-secondary:var(--text-2);--text-muted:var(--text-3);--accent-light:var(--accent-hover);--accent-dim:var(--accent-soft);--warning:var(--warn);--warning-dim:var(--warn-soft);--error:var(--danger);--error-dim:var(--danger-soft);--gradient:linear-gradient(135deg,var(--accent) 0%,var(--cream) 100%);--gradient-card:linear-gradient(135deg,var(--accent-soft) 0%,#0000 60%);--radius:var(--r-md);--radius-sm:var(--r-sm);--radius-lg:var(--r-lg);--radius-xl:16px;--shadow:var(--shadow-md);--shadow-accent:0 0 24px var(--accent-glow);--transition:all 0.18s cubic-bezier(0.16,1,0.3,1)}[data-theme=light]{--ink-0:#f4f4f0;--ink-1:#fff;--ink-2:#fff;--ink-3:#f8f8f4;--ink-4:#efefea;--text-1:#0a0a0e;--text-2:#5a5a66;--text-3:#9d9dab;--text-inverse:#fafaf7;--hairline:#00000014;--hairline-strong:#00000024;--hairline-bright:#00000038;--accent-soft:#00d26a1a;--accent-glow:#00d26a33;--accent-text:#fff;--shadow-sm:0 1px 2px #0f0f1e0f;--shadow-md:0 4px 12px #0f0f1e0f,0 1px 3px #0f0f1e0a;--shadow-lg:0 12px 32px #0f0f1e1a,0 4px 8px #0f0f1e0f;--shadow-focus:0 0 0 3px var(--accent-soft),0 0 0 1px var(--accent);--danger:#e53951;--danger-soft:#e539511a}[data-theme=light] .card,[data-theme=light] .stat-card{box-shadow:0 1px 2px #0003;box-shadow:var(--shadow-sm)}[data-theme=light] .card:hover{box-shadow:0 4px 12px #0000004d,0 1px 2px #0003;box-shadow:var(--shadow-md)}.has-grain:before{background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27200%27 height=%27200%27><filter id=%27n%27><feTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%272%27 stitchTiles=%27stitch%27/></filter><rect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23n%29%27/></svg>");content:"";inset:0;mix-blend-mode:overlay;opacity:.035;pointer-events:none;position:fixed;z-index:1;z-index:var(--z-base)}[data-theme=light] .has-grain:before{mix-blend-mode:multiply;opacity:.06}.btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--r-sm);color:var(--text-1);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:var(--t-body);font-weight:600;gap:var(--s-2);height:38px;justify-content:center;letter-spacing:var(--track-normal);padding:10px var(--s-4);text-decoration:none;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--ink-2);border-color:var(--hairline-strong);color:var(--text-1)}.btn-secondary:hover:not(:disabled){background:var(--ink-3);border-color:var(--hairline-bright)}.btn-ghost{background:#0000;border-color:#0000;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--ink-2);color:var(--text-1)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#ff7589;border-color:#ff7589}.btn-success{background:var(--success-soft);border-color:#0000;color:var(--success)}.btn-success:hover:not(:disabled){background:var(--success);color:var(--accent-text)}.btn-sm{font-size:var(--t-small);height:32px;padding:6px var(--s-3)}.btn-lg{font-size:var(--t-h2);height:46px;padding:12px var(--s-6)}.btn-block{width:100%}.card{background:var(--ink-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s-6);transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}.card-hover{cursor:pointer}.card-hover:hover{border-color:var(--hairline-bright);transform:translateY(-1px)}.card-tight{padding:var(--s-4)}.card-loose{padding:var(--s-8)}.card-elev{box-shadow:var(--shadow-md)}.card-hero{background:radial-gradient(ellipse at top right,var(--accent-soft),#0000 60%),var(--ink-2);border-color:var(--hairline-strong)}.input{background:var(--ink-1);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--text-1);font-family:var(--font-body);font-size:var(--t-body);height:42px;letter-spacing:var(--track-normal);outline:none;padding:0 var(--s-4);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);width:100%}.input::placeholder{color:var(--text-3)}.input:hover:not(:disabled):not(:focus){border-color:var(--hairline-bright)}.input:focus{background:var(--ink-2);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input:disabled{cursor:not-allowed;opacity:.5}textarea.input{height:auto;line-height:var(--lh-normal);min-height:96px;padding:var(--s-3) var(--s-4);resize:vertical}.field{display:flex;flex-direction:column;gap:var(--s-2)}.field-label{color:var(--text-2);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.field-help{color:var(--text-3);font-size:var(--t-small);line-height:var(--lh-normal)}.field-error{color:var(--danger);font-size:var(--t-small)}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%239D9DAB%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><polyline points=%276 9 12 15 18 9%27/></svg>");background-position:right var(--s-3) center;background-repeat:no-repeat;cursor:pointer;padding-right:var(--s-10)}.badge{align-items:center;background:var(--ink-3);border:1px solid var(--hairline);border-radius:var(--r-pill);color:var(--text-2);display:inline-flex;font-size:var(--t-tiny);font-weight:600;gap:6px;height:22px;letter-spacing:var(--track-loose);padding:3px 10px;text-transform:uppercase}.badge-accent{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent)}.badge-success{background:var(--success-soft);border-color:#0000;color:var(--success)}.badge-warn{background:var(--warn-soft);border-color:#0000;color:var(--warn)}.badge-danger{background:var(--danger-soft);border-color:#0000;color:var(--danger)}.badge-info{background:var(--info-soft);border-color:#0000;color:var(--info)}.badge-live{background:var(--success-soft);border:1px solid #0000;color:var(--success)}.badge-live:before{animation:pulse-dot 2s ease-in-out infinite;background:currentColor;border-radius:50%;box-shadow:0 0 0 0 currentColor;content:"";height:6px;width:6px}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 0 var(--success)}50%{box-shadow:0 0 0 6px #0000}}.divider{background:var(--hairline);border:0;height:1px;width:100%}.divider-text{align-items:center;color:var(--text-3);display:flex;font-size:var(--t-tiny);font-weight:500;gap:var(--s-3);letter-spacing:var(--track-loose);margin:var(--s-4) 0;text-transform:uppercase}.divider-text:after,.divider-text:before{background:var(--hairline);content:"";flex:1 1;height:1px}.kbd,kbd{align-items:center;background:var(--ink-3);border:1px solid var(--hairline-strong);box-shadow:0 1px 0 var(--hairline);color:var(--text-2);display:inline-flex;font-family:var(--font-mono);font-size:var(--t-tiny);font-weight:500;height:20px;justify-content:center;padding:0 6px}.kbd,.skeleton,kbd{border-radius:var(--r-sm)}.skeleton{animation:skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,var(--ink-2) 0,var(--ink-3) 50%,var(--ink-2) 100%);background-size:200% 100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.reveal-on-load>*{animation:reveal-up var(--dur-slow) var(--ease-out) forwards;opacity:0;transform:translateY(8px)}.reveal-on-load>:first-child{animation-delay:60ms}.reveal-on-load>:nth-child(2){animation-delay:.12s}.reveal-on-load>:nth-child(3){animation-delay:.18s}.reveal-on-load>:nth-child(4){animation-delay:.24s}.reveal-on-load>:nth-child(5){animation-delay:.3s}.reveal-on-load>:nth-child(6){animation-delay:.36s}.reveal-on-load>:nth-child(7){animation-delay:.42s}.reveal-on-load>:nth-child(8){animation-delay:.48s}@keyframes reveal-up{to{opacity:1;transform:translateY(0)}}*{scrollbar-color:var(--ink-3) #0000;scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:var(--ink-3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}.modal-overlay{animation:modal-fade-in var(--dur-fast) var(--ease-out);background:#0000008c;padding:var(--s-4);z-index:var(--z-modal)}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal,.modal-panel{animation:modal-pop-in var(--dur-base) var(--ease-spring);background:var(--ink-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:520px;overflow:hidden;position:relative;width:100%}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-panel.xlarge{max-width:980px}[data-theme=light] .modal,[data-theme=light] .modal-panel{box-shadow:0 24px 60px #0000002e,0 8px 24px #0000001a}.modal-header{border-bottom:1px solid var(--hairline);flex-shrink:0;padding:var(--s-5) var(--s-6)}.modal-header h2,.modal-header h3{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-d3);font-weight:700;letter-spacing:var(--track-tight);margin:0}.modal-close{align-items:center;background:#0000;border:0;border-radius:var(--r-sm);color:var(--text-2);font-size:18px;height:32px;justify-content:center;line-height:1;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);width:32px}.modal-close:hover{background:var(--ink-3);color:var(--text-1)}.modal-body{min-height:0;padding:var(--s-6)}.modal-footer{align-items:center;background:var(--ink-1);border-top:1px solid var(--hairline);flex-shrink:0;gap:var(--s-3);padding:var(--s-4) var(--s-6)}.form-label{color:var(--text-2);display:block;font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);margin-bottom:var(--s-2);text-transform:uppercase}.form-input{background:var(--ink-1);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--text-1);font-family:var(--font-body);font-size:var(--t-body);height:42px;outline:none;padding:0 var(--s-4);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);width:100%}textarea.form-input{height:auto;line-height:var(--lh-normal);min-height:84px;padding:var(--s-3) var(--s-4);resize:vertical}select.form-input{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%239D9DAB%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><polyline points=%276 9 12 15 18 9%27/></svg>");background-position:right var(--s-3) center;background-repeat:no-repeat;cursor:pointer;padding-right:var(--s-10)}.form-input:hover:not(:focus){border-color:var(--hairline-bright)}.form-input:focus{background:var(--ink-2);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-input::placeholder{color:var(--text-3)}.settings-section{border-top:1px solid var(--hairline);margin-top:var(--s-6);padding-top:var(--s-5)}.settings-section-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-h2);font-weight:700;letter-spacing:var(--track-normal);margin-bottom:var(--s-3)}.settings-row{align-items:flex-start;cursor:pointer;display:flex;gap:var(--s-3);padding:var(--s-3) 0;-webkit-user-select:none;user-select:none}.settings-row+.settings-row{border-top:1px solid var(--hairline)}.settings-row-icon{align-items:center;background:var(--ink-3);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--accent);display:flex;flex-shrink:0;height:32px;justify-content:center;margin-top:1px;width:32px}.settings-row-text{flex:1 1;min-width:0}.settings-row-title{color:var(--text-1);font-size:var(--t-body);font-weight:600;letter-spacing:var(--track-normal);margin-bottom:2px}.settings-row-desc{color:var(--text-2);font-size:var(--t-small);line-height:var(--lh-normal)}.toggle-switch{appearance:none;-webkit-appearance:none;background:var(--ink-4);border:1px solid var(--hairline-strong);border-radius:var(--r-pill);cursor:pointer;flex-shrink:0;height:22px;margin-top:4px;outline:none;padding:0;position:relative;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);width:40px}.toggle-switch:after{background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;content:"";height:16px;left:2px;position:absolute;top:2px;transition:left var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);width:16px}.toggle-switch:checked{background:var(--accent);border-color:var(--accent)}.toggle-switch:checked:after{left:20px}.toggle-switch:focus-visible{box-shadow:0 0 0 3px var(--accent-soft)}.analytics-table-wrap{margin:calc(var(--s-2)*-1);overflow-x:auto;padding:var(--s-2)}.analytics-table{border-collapse:collapse;font-size:var(--t-small);width:100%}.analytics-table th{color:var(--text-3);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-align:left;text-transform:uppercase}.analytics-table td,.analytics-table th{border-bottom:1px solid var(--hairline);padding:var(--s-3) var(--s-3)}.analytics-table td{color:var(--text-1);font-size:var(--t-small);vertical-align:middle}.analytics-table tbody tr:last-child td{border-bottom:0}.analytics-table tbody tr:hover{background:var(--ink-3)}.analytics-exam-name{color:var(--text-1);font-weight:600;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rate-bar-row{align-items:center;display:flex;gap:var(--s-3)}.rate-bar{background:var(--ink-3);flex:1 1;height:6px;overflow:hidden}.rate-bar,.rate-bar-fill{border-radius:var(--r-pill)}.rate-bar-fill{height:100%;transition:width var(--dur-base) var(--ease-out)}.rate-bar-fill.success{background:var(--success)}.rate-bar-fill.warn{background:var(--warn)}.rate-bar-fill.danger{background:var(--danger)}.rate-bar-label{color:var(--text-2);font-size:var(--t-small);font-weight:600;min-width:38px;text-align:right}.t-hero{font-size:var(--t-hero);font-weight:800}.t-d1,.t-hero{letter-spacing:var(--track-tight);line-height:var(--lh-tight)}.t-d1{font-size:var(--t-d1);font-weight:700}.t-d2{font-size:var(--t-d2);letter-spacing:var(--track-tight)}.t-d2,.t-d3{font-weight:700;line-height:var(--lh-snug)}.t-d3{font-size:var(--t-d3);letter-spacing:var(--track-normal)}.t-h1{font-size:var(--t-h1);line-height:var(--lh-snug)}.t-h1,.t-h2{font-weight:600;letter-spacing:var(--track-normal)}.t-h2{font-size:var(--t-h2);line-height:var(--lh-normal)}.t-body{font-size:var(--t-body);letter-spacing:var(--track-normal)}.t-body,.t-small{font-weight:400;line-height:var(--lh-normal)}.t-small{font-size:var(--t-small)}.t-small,.t-tiny{color:var(--text-2)}.t-tiny{font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);line-height:var(--lh-snug);text-transform:uppercase}.t-mono{font-family:var(--font-mono)}.text-1{color:var(--text-1)}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warn{color:var(--warn)}.text-danger{color:var(--danger)}.text-gradient{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--text-1) 0,var(--accent) 100%);-webkit-background-clip:text;background-clip:text}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--ink-0);color:var(--text-1);font-family:var(--font-body);font-size:var(--t-body);letter-spacing:var(--track-normal);line-height:var(--lh-normal);min-height:100vh;overflow-x:hidden;text-rendering:optimizeLegibility}button,input,select,textarea{color:inherit;font:inherit}button{background:none;border:0;color:inherit;cursor:pointer}a{color:var(--accent);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}a:hover{color:var(--accent-hover)}img,svg,video{display:block;max-width:100%}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not(.unstyled),select:not(.unstyled),textarea:not(.unstyled){background:var(--ink-1);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--text-1);font-family:var(--font-body);font-size:var(--t-body);letter-spacing:var(--track-normal);outline:none;padding:10px var(--s-4);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);width:100%}input:not(.unstyled):hover,select:not(.unstyled):hover,textarea:not(.unstyled):hover{border-color:var(--hairline-bright)}input:not(.unstyled):focus,select:not(.unstyled):focus,textarea:not(.unstyled):focus{background:var(--ink-2);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder,textarea::placeholder{color:var(--text-3)}textarea{line-height:var(--lh-normal);min-height:80px;resize:vertical}select:not(.unstyled){appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%239D9DAB%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><polyline points=%276 9 12 15 18 9%27/></svg>");background-position:right var(--s-3) center;background-repeat:no-repeat;cursor:pointer;padding-right:var(--s-10)}label{color:var(--text-2);display:block;font-size:var(--t-small);font-weight:600;letter-spacing:var(--track-normal);margin-bottom:6px}.form-group{margin-bottom:var(--s-5)}.form-row{grid-gap:var(--s-4);display:grid;gap:var(--s-4);grid-template-columns:1fr 1fr}::selection{background:var(--accent-soft);color:var(--accent)}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.video-tile:hover,.welcome-banner{border-color:var(--accent-soft)!important}.video-tile.local{border-color:var(--hairline-strong)!important}.avatar-big,.avatar-circle,.p-avatar{background:var(--accent)!important;color:var(--accent-text)!important}.video-avatar,.video-placeholder{background:linear-gradient(135deg,var(--ink-2),var(--ink-1))!important}.classroom{background:var(--ink-0)!important;color:var(--text-1)}.class-header,.classroom-header{background:var(--ink-1)!important;border-bottom:1px solid var(--hairline)!important}.chat-input input{background:var(--ink-2)!important;border-color:var(--hairline-strong)!important;color:var(--text-1)!important}.send-btn{background:var(--accent)!important;color:var(--accent-text)!important}.msg-content{background:var(--ink-3)!important;color:var(--text-1)!important}.chat-msg.own .msg-content{background:var(--accent-soft)!important;color:var(--text-1)!important}.result-score{-webkit-text-fill-color:#0000!important;background:linear-gradient(135deg,var(--accent),var(--cream))!important;-webkit-background-clip:text!important;background-clip:text!important}.whiteboard-container{background:var(--ink-1)!important}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--s-1)}.gap-2{gap:var(--s-2)}.gap-3{gap:var(--s-3)}.gap-4{gap:var(--s-4)}.gap-6{gap:var(--s-6)}.gap-8{gap:var(--s-8)}.grid{display:grid}.w-full{width:100%}.h-full{height:100%}.hide-mobile{@media (max-width:768px){display:none}}@media (max-width:768px){.hide-mobile{display:none}}@media (min-width:769px){.show-mobile{display:none}}.login-page{background:var(--ink-0);display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;overflow:hidden;position:relative}@media (max-width:960px){.login-page{grid-template-columns:1fr}}.login-hero{background:var(--ink-1);border-right:1px solid var(--hairline);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:var(--s-12) var(--s-12) var(--s-10);position:relative}@media (max-width:960px){.login-hero{border-bottom:1px solid var(--hairline);border-right:0;padding:var(--s-8) var(--s-6) var(--s-10)}}.login-hero:before{background-image:linear-gradient(var(--hairline) 1px,#0000 1px),linear-gradient(90deg,var(--hairline) 1px,#0000 1px);background-position:-1px -1px;background-size:56px 56px;inset:0;mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 30%,#0000 80%);-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 30%,#0000 80%)}.login-hero:after,.login-hero:before{content:"";pointer-events:none;position:absolute}.login-hero:after{animation:hero-glow 8s ease-in-out infinite alternate;background:radial-gradient(circle,var(--accent-glow) 0,#0000 60%);filter:blur(40px);height:520px;right:-180px;top:-180px;width:520px}@keyframes hero-glow{0%{opacity:.6;transform:translate(0)}to{opacity:.9;transform:translate(-30px,20px)}}.brand{align-items:center;display:inline-flex;gap:var(--s-3);position:relative;z-index:var(--z-raised)}.brand-mark{align-items:center;background:var(--accent);border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--accent-glow),0 0 16px var(--accent-glow);color:var(--accent-text);display:flex;font-size:18px;font-weight:800;height:36px;justify-content:center;letter-spacing:-.04em;width:36px}.brand-mark,.brand-name{font-family:var(--font-display)}.brand-name{color:var(--text-1);font-size:var(--t-h1);font-weight:700;letter-spacing:var(--track-tight)}.hero-marquee{margin-top:var(--s-12);position:relative;z-index:var(--z-raised)}.hero-eyebrow{align-items:center;background:var(--accent-soft);border:1px solid #0000;border-radius:var(--r-pill);color:var(--accent);display:inline-flex;font-size:var(--t-tiny);font-weight:600;gap:var(--s-2);letter-spacing:var(--track-loose);margin-bottom:var(--s-5);padding:4px 10px;text-transform:uppercase}.hero-eyebrow:before{animation:pulse-dot 2.4s ease-in-out infinite;background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.hero-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-d1);font-weight:700;letter-spacing:var(--track-tight);line-height:var(--lh-tight);margin-bottom:var(--s-5);max-width:560px}.hero-title .accent{color:var(--accent);font-style:italic;font-weight:700}@media (max-width:960px){.hero-title{font-size:var(--t-d2)}}@media (max-width:600px){.hero-title{font-size:32px}}.hero-sub{color:var(--text-2);font-size:var(--t-h2);line-height:var(--lh-normal);margin-bottom:var(--s-8);max-width:480px}.hero-features{display:flex;flex-direction:column;gap:var(--s-5);position:relative;z-index:var(--z-raised)}.hero-feature{align-items:flex-start;display:flex;gap:var(--s-4)}.hero-feature-icon{align-items:center;background:var(--ink-3);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--accent);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.hero-feature-text{display:flex;flex:1 1;flex-direction:column;gap:2px}.hero-feature-title{color:var(--text-1);font-size:var(--t-body);font-weight:600;letter-spacing:var(--track-normal)}.hero-feature-desc{color:var(--text-2);font-size:var(--t-small);line-height:var(--lh-normal)}.hero-stats{grid-gap:var(--s-4);border-top:1px solid var(--hairline);display:grid;gap:var(--s-4);grid-template-columns:repeat(3,1fr);margin-top:var(--s-10);padding-top:var(--s-6);position:relative;z-index:var(--z-raised)}.hero-stat-num{color:var(--text-1);display:block;font-family:var(--font-display);font-size:var(--t-d3);font-weight:700;letter-spacing:var(--track-tight);line-height:1;margin-bottom:4px}.hero-stat-label{color:var(--text-3);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.login-form-side{align-items:center;background:var(--ink-0);display:flex;justify-content:center;padding:var(--s-12) var(--s-8);position:relative}@media (max-width:600px){.login-form-side{padding:var(--s-8) var(--s-5)}}.login-form-card{gap:var(--s-6);max-width:420px;width:100%}.form-head,.login-form-card{display:flex;flex-direction:column}.form-head{gap:var(--s-2)}.form-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-d3);font-weight:700;letter-spacing:var(--track-tight)}.form-sub{color:var(--text-2);font-size:var(--t-body);line-height:var(--lh-normal)}.google-btn-wrapper{display:flex;justify-content:center;width:100%}.google-btn-wrapper iframe,.google-btn-wrapper>div{max-width:100%!important;width:100%!important}.auth-form{display:flex;flex-direction:column;gap:var(--s-4)}.password-field{position:relative}.password-field .input{padding-right:44px}.password-toggle{align-items:center;border-radius:var(--r-sm);color:var(--text-2);display:flex;height:32px;justify-content:center;position:absolute;right:var(--s-2);top:50%;transform:translateY(-50%);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);width:32px}.password-toggle:hover{background:var(--ink-3);color:var(--text-1)}.auth-switch{color:var(--text-2);font-size:var(--t-small);text-align:center}.auth-switch button{background:#0000;border:0;color:var(--accent);cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;margin-left:6px;padding:0}.auth-switch button:hover{color:var(--accent-hover);text-decoration:underline}.loading-spinner{animation:spin .8s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;display:inline-block;height:14px;width:14px}.form-footer{align-items:center;color:var(--text-3);display:flex;font-size:var(--t-tiny);font-weight:600;gap:6px;justify-content:center;letter-spacing:var(--track-loose);margin-top:var(--s-2);text-transform:uppercase}.form-footer-icon{color:var(--success)}.dashboard{flex-direction:column}.dash-hero,.dashboard{display:flex;gap:var(--s-6)}.dash-hero{align-items:center;background:var(--ink-2);border:1px solid var(--hairline);border-radius:var(--r-lg);flex-wrap:wrap;justify-content:space-between;overflow:hidden;padding:var(--s-8) var(--s-10);position:relative}.dash-hero:before{background:radial-gradient(ellipse 60% 100% at 100% 0,var(--accent-soft),#0000 50%),radial-gradient(ellipse 40% 60% at 80% 100%,#f5e6d30d,#0000 60%);inset:0}.dash-hero:after,.dash-hero:before{content:"";pointer-events:none;position:absolute}.dash-hero:after{background-image:linear-gradient(var(--hairline) 1px,#0000 1px),linear-gradient(90deg,var(--hairline) 1px,#0000 1px);background-size:40px 40px;height:100%;mask-image:linear-gradient(270deg,#000 0,#0000);-webkit-mask-image:linear-gradient(270deg,#000 0,#0000);right:0;top:0;width:360px}.dash-hero-content{flex:1 1;min-width:280px;position:relative;z-index:var(--z-raised)}.dash-hero-eyebrow{color:var(--accent);display:inline-block;font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);margin-bottom:var(--s-3);text-transform:uppercase}.dash-hero-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-d2);font-weight:700;letter-spacing:var(--track-tight);line-height:var(--lh-tight);margin-bottom:var(--s-3)}@media (max-width:720px){.dash-hero-title{font-size:var(--t-d3)}.dash-hero{padding:var(--s-6)}}.dash-hero-sub{color:var(--text-2);font-size:var(--t-h2);line-height:var(--lh-normal)}.dash-hero-cta{position:relative;z-index:var(--z-raised)}.stat-grid{grid-gap:var(--s-4);display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stat-card{background:var(--ink-2);border:1px solid var(--hairline);border-radius:var(--r-md);display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);position:relative;transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}.stat-card:hover{border-color:var(--hairline-strong)}.stat-card-head{align-items:center;display:flex;justify-content:space-between}.stat-card-icon{align-items:center;background:var(--ink-3);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--accent);display:flex;height:32px;justify-content:center;width:32px}.stat-card-trend{color:var(--success);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.stat-card-trend.down{color:var(--danger)}.stat-card-value{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-d2);font-weight:700;letter-spacing:var(--track-tight);line-height:1}.stat-card-label{color:var(--text-2);font-size:var(--t-small);letter-spacing:var(--track-normal)}.stat-card-sub{color:var(--text-3);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.dash-row{grid-gap:var(--s-4);display:grid;gap:var(--s-4);grid-template-columns:1.4fr 1fr}@media (max-width:960px){.dash-row{grid-template-columns:1fr}}.card-head{align-items:center;display:flex;gap:var(--s-3);justify-content:space-between;margin-bottom:var(--s-5)}.card-head-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-h1);font-weight:700;letter-spacing:var(--track-normal)}.card-head-meta{color:var(--text-2);font-size:var(--t-small);margin-top:2px}.chart-frame{height:220px}.quick-actions{display:flex;flex-direction:column;gap:var(--s-2)}.quick-action{align-items:center;background:var(--ink-1);border:1px solid var(--hairline);border-radius:var(--r-sm);color:inherit;cursor:pointer;display:flex;font-family:inherit;gap:var(--s-3);padding:var(--s-3) var(--s-4);text-align:left;transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.quick-action:hover{background:var(--ink-3);border-color:var(--accent);transform:translateX(2px)}.quick-action-icon{align-items:center;background:var(--ink-3);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--accent);display:flex;flex-shrink:0;height:36px;justify-content:center;transition:background var(--dur-fast) var(--ease-out);width:36px}.quick-action:hover .quick-action-icon{background:var(--accent-soft);border-color:var(--accent)}.quick-action-text{flex:1 1;min-width:0}.quick-action-label{color:var(--text-1);font-size:var(--t-body);font-weight:600;letter-spacing:var(--track-normal)}.quick-action-sub{color:var(--text-3);font-size:var(--t-small);margin-top:2px}.quick-action-chevron{color:var(--text-3);transition:transform var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.quick-action:hover .quick-action-chevron{color:var(--accent);transform:translateX(3px)}.recent-list{display:flex;flex-direction:column;gap:var(--s-2)}.recent-item{align-items:center;background:var(--ink-1);border:1px solid var(--hairline);border-radius:var(--r-sm);cursor:pointer;display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-4);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.recent-item:hover{background:var(--ink-3);border-color:var(--hairline-bright)}.recent-item-icon{align-items:center;background:var(--ink-3);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--accent);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.recent-item-body{flex:1 1;min-width:0}.recent-item-title{color:var(--text-1);font-size:var(--t-body);font-weight:600;letter-spacing:var(--track-normal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item-meta{color:var(--text-3);display:flex;font-size:var(--t-small);gap:var(--s-3);margin-top:4px}.recent-item-meta-piece{align-items:center;display:inline-flex;gap:4px}.live-panel{background:radial-gradient(ellipse at top right,var(--accent-soft),#0000 50%),var(--ink-2);border:1px solid var(--accent-soft)}.live-row{align-items:center;background:#ffffff08;border:1px solid var(--hairline);border-radius:var(--r-sm);display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-4)}.live-dot{animation:pulse-dot 2s ease-in-out infinite;background:var(--accent);border-radius:50%;box-shadow:0 0 0 0 var(--accent);flex-shrink:0;height:8px;width:8px}.live-row-title{color:var(--text-1);font-size:var(--t-body);font-weight:600}.live-row-sub{color:var(--text-2);font-size:var(--t-small);margin-top:2px}.empty-state{color:var(--text-2);gap:var(--s-3);padding:var(--s-10) var(--s-6)}.empty-state-icon{align-items:center;background:var(--ink-3);border:1px solid var(--hairline);border-radius:var(--r-md);color:var(--text-3);display:flex;height:48px;justify-content:center;margin-bottom:var(--s-2);width:48px}.empty-state-text{color:var(--text-2);font-size:var(--t-body);line-height:var(--lh-normal)}.empty-state-link{background:none;border:0;color:var(--accent);cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600}.empty-state-link:hover{text-decoration:underline}.rich-editor{background:var(--bg-tertiary);border:1.5px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:var(--transition)}.rich-editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.editor-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:8px 10px}.editor-btn,.editor-toolbar{align-items:center;display:flex}.editor-btn{background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-size:13px;font-weight:600;height:30px;justify-content:center;transition:var(--transition);width:30px}.editor-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-btn.active{background:var(--accent-dim);color:var(--accent-light)}.editor-btn.disabled{cursor:not-allowed;opacity:.3}.editor-separator{background:var(--border);height:20px;margin:0 4px;width:1px}.editor-content-wrapper{background:var(--bg-tertiary)}.tiptap-content{color:var(--text-primary);font-size:15px;line-height:1.7;outline:none;padding:16px}.tiptap-content p.is-editor-empty:first-child:before{color:var(--text-muted);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.tiptap-content h1,.tiptap-content h2,.tiptap-content h3{font-family:var(--font-display);margin:16px 0 8px}.tiptap-content img{border-radius:var(--radius-sm);height:auto;margin:8px 0;max-width:100%}.tiptap-content ol,.tiptap-content ul{padding-left:24px}.tiptap-content blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);font-style:italic;margin:12px 0;padding-left:16px}.tiptap-content code{background:var(--bg-secondary);border-radius:4px;font-family:var(--font-mono);font-size:13px;padding:2px 6px}.tiptap-content pre{background:var(--bg-secondary);border-radius:var(--radius);overflow-x:auto;padding:12px 16px}.color-picker-wrapper{position:relative}.color-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-wrap:wrap;gap:6px;left:0;padding:8px;position:absolute;top:calc(100% + 6px);width:140px;z-index:100}.color-swatch{border:2px solid #0000;border-radius:50%;cursor:pointer;height:24px;transition:var(--transition);width:24px}.color-swatch:hover{border-color:#fff;transform:scale(1.2)}.color-swatch.clear{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-secondary);font-size:12px}.color-swatch.clear,.equation-dialog-overlay{align-items:center;display:flex;justify-content:center}.equation-dialog-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;inset:0;position:fixed;z-index:1000}.equation-dialog{animation:fadeIn .2s ease;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:90vw;width:520px}.dialog-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:20px 24px}.dialog-header h3{font-size:18px;font-weight:700}.dialog-close{background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:16px;padding:4px 8px;transition:var(--transition)}.dialog-close:hover{background:var(--bg-hover)}.dialog-body{display:flex;flex-direction:column;gap:16px;padding:24px}.equation-input{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-mono);font-size:14px;padding:12px;resize:vertical;width:100%}.equation-input:focus{border-color:var(--accent);outline:none}.common-label,.preview-label{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.equation-chips{display:flex;flex-wrap:wrap;gap:6px}.eq-chip{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:100px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:12px;padding:4px 10px;transition:var(--transition)}.eq-chip:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-light)}.preview-box{align-items:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);display:flex;font-size:18px;justify-content:center;min-height:60px;padding:16px}.preview-placeholder{color:var(--text-muted);font-size:13px}.dialog-footer{align-items:center;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.question-bank-page{animation:fadeIn .3s ease}.filters-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;padding:16px 20px}.search-wrapper{flex:1 1;min-width:220px;position:relative}.search-icon{color:var(--text-muted);left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{background:var(--bg-tertiary)!important;padding-left:38px!important}.suggestions-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);left:0;overflow:hidden;position:absolute;right:0;top:calc(100% + 6px);z-index:100}.suggestion-item{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:10px 14px;transition:var(--transition)}.suggestion-item:hover{background:var(--bg-hover)}.suggestion-item svg{color:var(--text-muted);flex-shrink:0}.filters-bar select{min-width:140px;padding:10px 14px;width:auto}.mb-6{margin-bottom:24px}.questions-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}.question-skeleton{border-radius:var(--radius-lg);height:220px}.q-card{animation:fadeIn .3s ease;display:flex;flex-direction:column;gap:14px;transition:var(--transition)}.q-card-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.q-actions{display:flex;gap:4px;opacity:0;transition:var(--transition)}.q-card:hover .q-actions{opacity:1}.icon-btn.danger:hover{background:var(--error-dim);color:var(--error)}.q-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:14px;line-height:1.6;overflow:hidden}.q-text img{border-radius:6px;height:auto;max-width:100%}.q-text p{margin:0}.q-options-preview{display:flex;flex-direction:column;gap:6px}.q-opt-preview{align-items:center;background:var(--bg-tertiary);border-radius:6px;color:var(--text-secondary);display:flex;font-size:12px;gap:8px;padding:4px 8px}.q-opt-preview.correct{background:var(--success-dim);color:var(--success);font-weight:500}.q-opt-preview span:first-child{flex-shrink:0;font-weight:600}.q-opt-preview svg{flex-shrink:0;margin-left:auto}.q-card-footer{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;margin-top:auto;padding-top:12px}.q-marks{color:var(--accent-light);font-size:12px;font-weight:600}.q-subject{color:var(--text-muted);font-size:12px}.empty-state{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:80px 40px;text-align:center}.empty-icon{color:var(--text-muted);margin-bottom:8px}.empty-state h3{color:var(--text-primary);font-size:20px}.empty-state p{color:var(--text-secondary);max-width:400px}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-panel{animation:fadeIn .2s ease;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-width:700px;width:100%}.modal-panel.large{max-width:780px}.modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:24px 28px}.modal-header h2{font-size:20px;font-weight:700}.modal-close{background:none;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;padding:6px;transition:var(--transition)}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{flex:1 1;overflow-y:auto;padding:24px 28px}.modal-footer{border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 28px}.options-section{margin-bottom:20px}.options-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.option-row{align-items:flex-start;background:var(--bg-tertiary);border:1.5px solid var(--border);border-radius:var(--radius);display:flex;gap:10px;padding:10px;transition:var(--transition)}.option-row.correct{background:var(--success-dim);border-color:var(--success)}.option-correct-btn{align-items:center;background:var(--bg-secondary);border:1.5px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-top:6px;transition:var(--transition);width:28px}.option-correct-btn.active{background:var(--success);border-color:var(--success);color:#fff}.option-letter{align-items:center;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:28px;justify-content:center;margin-top:6px;width:24px}.option-editor{flex:1 1}.option-remove{background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;margin-top:6px;padding:4px;transition:var(--transition)}.option-remove:hover{color:var(--error)}.ai-panel-header{justify-content:space-between;margin-bottom:20px}.ai-badge,.ai-panel-header{align-items:center;display:flex}.ai-badge{background:var(--gradient);border-radius:100px;color:#fff;font-size:12px;font-weight:700;gap:6px;padding:6px 14px}.ai-form{margin-bottom:24px}.three-col{grid-template-columns:1fr 1fr 1fr}.ai-results-header{align-items:center;color:var(--text-primary);display:flex;font-size:14px;font-weight:600;justify-content:space-between;margin-bottom:16px}.ai-questions-list{display:flex;flex-direction:column;gap:12px;max-height:500px;overflow-y:auto;padding-right:4px}.ai-question-card{background:var(--bg-tertiary);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:16px;transition:var(--transition)}.ai-question-card:hover{border-color:var(--border-strong)}.ai-question-card.selected{background:var(--accent-dim);border-color:var(--accent)}.ai-q-header{align-items:center;display:flex;gap:8px;margin-bottom:10px}.ai-q-text{color:var(--text-primary);font-size:14px;line-height:1.6;margin-bottom:12px}.ai-q-options{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.ai-option{align-items:center;background:var(--bg-secondary);border-radius:6px;color:var(--text-secondary);display:flex;font-size:13px;gap:8px;padding:6px 10px}.ai-option.correct{background:var(--success-dim);color:var(--success);font-weight:500}.ai-option-letter{flex-shrink:0;font-weight:700;width:16px}.ai-correct-icon{flex-shrink:0;margin-left:auto}.ai-q-explanation{background:var(--bg-secondary);border-left:3px solid var(--accent);border-radius:6px;color:var(--text-secondary);font-size:12px;padding:8px 12px}.exam-builder{gap:0}.builder-header{flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.builder-steps{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);gap:0;margin-bottom:24px;padding:4px}.builder-steps,.step-item{align-items:center;display:flex}.step-item{border-radius:var(--radius);color:var(--text-muted);cursor:pointer;flex:1 1;font-size:13px;font-weight:500;gap:8px;justify-content:center;padding:10px 16px;transition:all .2s}.step-item.active{background:var(--accent);color:#fff;font-weight:600}.step-item.completed{color:var(--success)}.step-number{align-items:center;border:2px solid;border-radius:50%;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:22px;justify-content:center;width:22px}.builder-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:400px;padding:24px}.question-list{display:flex;flex-direction:column;gap:10px}.question-card{background:var(--bg-tertiary);border-radius:var(--radius);cursor:pointer;padding:16px;transition:all .2s}.question-card.selected,.question-card:hover{border-color:var(--accent)}.question-card.selected{background:var(--accent-dim)}.question-card-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.question-text{flex:1 1;font-size:14px;font-weight:500}.builder-nav{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;margin-top:20px;padding-top:20px}.step-indicator{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);gap:0;margin-bottom:28px;padding:20px}.step-dot{border:2px solid var(--border-strong);cursor:pointer;font-size:12px;height:32px;transition:all .2s;width:32px}.step-label{color:var(--text-secondary);font-weight:600;padding:0 8px}.step-line{border-radius:1px;margin:0 4px}.exam-builder-page{margin:0 auto;max-width:900px}.builder-top{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:24px}.builder-body{border-radius:var(--radius-lg);min-height:420px;padding:28px}.builder-footer{margin-top:20px;padding-top:20px}.form-section{margin-bottom:24px}.form-section-title{align-items:center;border-bottom:1px solid var(--border);color:var(--text-secondary);display:flex;font-size:14px;font-size:11px;font-weight:700;gap:8px;letter-spacing:.5px;margin-bottom:14px;padding-bottom:8px;text-transform:uppercase}.q-bank-grid{display:flex;flex-direction:column;gap:8px;max-height:480px;overflow-y:auto;padding-right:4px}.q-bank-card{align-items:flex-start;background:var(--bg-tertiary);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;display:flex;gap:12px;padding:14px;transition:all .15s}.q-bank-card.selected,.q-bank-card:hover{background:var(--accent-dim);border-color:var(--accent)}.q-bank-card .q-checkbox{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-strong);border-radius:4px;display:flex;flex-shrink:0;height:18px;justify-content:center;margin-top:2px;width:18px}.q-bank-card.selected .q-checkbox{background:var(--accent);border-color:var(--accent)}.q-bank-text{flex:1 1;font-size:13px;line-height:1.5}.q-bank-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.setting-row{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 0}.setting-row:last-child{border-bottom:none}.setting-info .setting-label{color:var(--text-primary);font-size:14px;font-weight:600}.setting-info .setting-desc{color:var(--text-muted);font-size:12px;margin-top:3px}.toggle{height:24px;width:44px}.toggle-slider{background:var(--bg-tertiary);border:1.5px solid var(--border-strong);border-radius:12px;cursor:pointer;inset:0;position:absolute;transition:all .2s}.toggle-slider:before{background:var(--text-muted);border-radius:50%;content:"";height:16px;left:3px;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s;width:16px}.toggle input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.toggle input:checked+.toggle-slider:before{background:#fff;left:21px}.review-grid{grid-gap:12px;gap:12px;grid-template-columns:1fr 1fr}.review-item{background:var(--bg-tertiary);border-radius:var(--radius);padding:14px}.review-item span{color:var(--text-muted);display:block;font-size:11px;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.review-item strong{font-size:14px;font-weight:600}.selected-q-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.selected-q-item{align-items:center;background:var(--bg-tertiary);border-radius:var(--radius);display:flex;font-size:13px;gap:10px;padding:12px 14px}.selected-q-num{align-items:center;background:var(--accent-dim);border-radius:50%;color:var(--accent-light);display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:24px;justify-content:center;width:24px}.exam-builder{animation:fadeIn .3s ease;display:flex;flex-direction:column;min-height:calc(100vh - 60px)}.builder-header{gap:16px;margin-bottom:28px}.builder-header,.builder-title{align-items:center;display:flex}.builder-title{flex:1 1;gap:10px}.builder-title h1{font-family:var(--font-display);font-size:22px;font-weight:800;margin:0}.step-indicator{flex-wrap:wrap;gap:4px;margin-bottom:32px}.step-dot,.step-indicator{align-items:center;display:flex}.step-dot{background:var(--bg-tertiary);border:2px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:default;flex-shrink:0;font-size:13px;font-weight:700;height:36px;justify-content:center;transition:var(--transition);width:36px}.step-dot.active{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim);color:#fff}.step-dot.done{background:var(--success);border-color:var(--success);color:#fff;cursor:pointer}.step-label{color:var(--text-muted);font-size:12px;margin:0 6px;white-space:nowrap}.step-line{background:var(--border);flex:1 1;height:2px;min-width:20px;transition:var(--transition)}.step-line.done{background:var(--success)}.builder-body{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);flex:1 1;margin-bottom:20px;overflow-y:auto;padding:32px}.step-content{max-width:760px}.animate-fade-in{animation:fadeIn .25s ease}.builder-footer{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 0}.settings-group,.settings-section{margin-bottom:28px}.settings-group h3,.settings-section h3{align-items:center;color:var(--text-primary);display:flex;font-size:15px;font-weight:700;gap:8px;margin-bottom:16px}.toggles-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.toggle-row{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.toggle-label{color:var(--text-primary);font-size:14px;font-weight:500}.toggle{cursor:pointer;display:inline-block;flex-shrink:0;height:22px;position:relative;width:40px}.toggle input{height:0;opacity:0;position:absolute;width:0}.toggle-track{background:var(--bg-hover);border:1px solid var(--border);border-radius:11px;inset:0;position:absolute;transition:.3s}.toggle input:checked~.toggle-track{background:var(--accent);border-color:var(--accent)}.toggle-thumb{background:#fff;border-radius:50%;height:16px;left:3px;position:absolute;top:3px;transition:.3s;width:16px}.toggle input:checked~.toggle-thumb{left:21px}.access-options{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}.access-option{background:var(--bg-tertiary);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:16px;transition:var(--transition)}.access-option:hover{border-color:var(--border-strong)}.access-option.selected{background:var(--accent-dim);border-color:var(--accent)}.access-option-header{align-items:center;display:flex;gap:10px;margin-bottom:6px}.access-option-header strong{font-size:14px}.access-option p{color:var(--text-secondary);font-size:12px;margin:0}.radio-dot{border:2px solid var(--border);border-radius:50%;flex-shrink:0;height:16px;transition:var(--transition);width:16px}.radio-dot.active{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--bg-card)}.link-settings{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:14px 16px}.link-settings .toggle-row{background:none;border:none;padding:0 0 8px}.hint{color:var(--text-muted);display:block;font-size:12px;margin-top:4px}.questions-builder{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;min-height:500px}.qbank-panel,.selected-panel{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.qbank-header,.selected-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 16px}.qbank-header h3,.selected-header h3{font-size:14px;font-weight:700}.qbank-filters{border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px;padding:10px 12px}.qbank-filters select{font-size:12px;padding:6px 10px}.qbank-list{flex:1 1;overflow-y:auto;padding:8px}.qbank-item{background:var(--bg-secondary);border:1px solid #0000;border-radius:var(--radius);cursor:pointer;margin-bottom:6px;padding:12px;transition:var(--transition)}.qbank-item:hover{background:var(--accent-dim);border-color:var(--accent)}.qbank-item-meta{display:flex;gap:6px;margin-bottom:6px}.qbank-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:13px;line-height:1.5;overflow:hidden}.qbank-add{align-items:center;color:var(--accent-light);display:flex;font-size:11px;gap:4px;margin-top:8px;opacity:0;transition:var(--transition)}.qbank-item:hover .qbank-add{opacity:1}.qbank-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:8px;padding:40px;text-align:center}.selected-list{flex:1 1;overflow-y:auto;padding:8px}.selected-item{align-items:flex-start;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:10px;margin-bottom:6px;padding:12px;transition:var(--transition)}.selected-item:hover{border-color:var(--border-strong)}.selected-num{align-items:center;background:var(--accent-dim);border-radius:6px;color:var(--accent-light);display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:24px;justify-content:center;margin-top:2px;width:24px}.selected-content{flex:1 1;min-width:0}.selected-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:13px;margin-top:6px;overflow:hidden}.remove-q-btn{background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;padding:4px;transition:var(--transition)}.remove-q-btn:hover{background:var(--error-dim);color:var(--error)}.selected-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:13px;gap:8px;padding:60px 20px;text-align:center}.proctoring-info{align-items:center;background:var(--accent-dim);border:1px solid #6c63ff40;border-radius:var(--radius);color:var(--accent-light);display:flex;font-size:14px;gap:10px;margin-bottom:24px;padding:14px 16px}.feature-checks{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.feature-check{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:8px}.check-icon{color:var(--success);flex-shrink:0}.review-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}.review-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.review-card h3{font-size:14px;font-weight:700;margin-bottom:14px}.review-item{display:flex;font-size:13px;justify-content:space-between;margin-bottom:10px}.review-item span{color:var(--text-secondary)}.review-item strong{color:var(--text-primary);text-transform:capitalize}.review-warning{align-items:center;background:var(--error-dim);border:1px solid #ef444433;border-radius:var(--radius);color:var(--error);display:flex;font-size:14px;gap:10px;padding:14px 18px}.exam-timer{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:100px;color:var(--text-primary);font-family:var(--font-mono);padding:6px 16px;transition:var(--transition)}.exam-timer.warning{background:var(--warning-dim);border-color:#f59e0b4d}.exam-timer.critical{animation:pulse 1s ease infinite;background:var(--error-dim);border-color:#ef44444d;color:var(--error)}.exam-progress-info{color:var(--text-secondary);font-size:13px}.option-item{align-items:flex-start;background:var(--bg-tertiary);margin-bottom:10px;padding:14px 18px;transition:var(--transition)}.exam-taking{background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;min-height:100vh}.exam-taking-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:12px 24px;position:sticky;top:0;z-index:100}.exam-timer{align-items:center;display:flex;font-size:18px;font-weight:700;gap:8px}.exam-timer.warning{color:var(--warning)}.exam-timer.danger{animation:pulse 1s infinite;color:var(--error)}.exam-body{display:flex;flex:1 1;overflow:hidden}.question-nav-panel{background:var(--bg-secondary);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;padding:16px;width:220px}.question-nav-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.q-nav-btn{background:none;border:1.5px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:600;height:36px;transition:all .2s;width:36px}.q-nav-btn.answered{background:var(--success-dim);border-color:var(--success);color:var(--success)}.q-nav-btn.current{background:var(--accent);border-color:var(--accent);color:#fff}.q-nav-btn.flagged{background:var(--warning-dim);border-color:var(--warning);color:var(--warning)}.question-area{flex:1 1;margin:0 auto;max-width:800px;overflow-y:auto;padding:28px;width:100%}.question-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:20px;padding:24px}.question-number{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.question-text{font-size:16px;line-height:1.7;margin-bottom:20px}.options-list{display:flex;flex-direction:column;gap:10px}.option-item{align-items:center;border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;display:flex;gap:12px;padding:14px 16px;transition:all .2s}.option-item.selected,.option-item:hover{background:var(--accent-dim);border-color:var(--accent)}.option-item.correct{background:var(--success-dim);border-color:var(--success)}.option-item.wrong{background:var(--error-dim);border-color:var(--error)}.option-label{border:2px solid;border-radius:50%;flex-shrink:0;font-size:12px;font-weight:700;height:28px;justify-content:center;width:28px}.exam-controls,.option-label{align-items:center;display:flex}.exam-controls{background:var(--bg-secondary);border-top:1px solid var(--border);justify-content:space-between;padding:16px 28px}@media(max-width:768px){.question-nav-panel{display:none}.question-area{padding:16px}}.classroom{display:flex;flex-direction:column;font-family:Inter,sans-serif;font-family:var(--font-body,"Inter",sans-serif);overflow:hidden}.classroom,.classroom-loading{background:#0a0a12;color:#f0f0f8;height:100vh}.classroom-loading{gap:14px}.classroom-loading p{color:#8a8aa8;font-size:15px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.classroom-header{align-items:center;background:#12121e;border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;padding:12px 20px}.header-left{display:flex;flex-direction:column;gap:4px;min-width:0}.class-title-wrap{align-items:center;display:flex;gap:10px}.class-title{font-size:16px;font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.socket-badge{align-items:center;border-radius:100px;display:flex;flex-shrink:0;font-size:11px;font-weight:700;gap:5px;padding:3px 10px}.socket-badge.connected{background:#10b98126;color:#10b981}.socket-badge.connecting{background:#f59e0b26;color:#f59e0b}.socket-badge.disconnected{background:#ef444426;color:#ef4444}.header-meta{align-items:center;color:#8a8aa8;display:flex;font-size:12px;gap:6px}.dot{color:#55556a}.header-right{align-items:center;display:flex;flex-shrink:0;gap:10px}.btn-header{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;color:#f0f0f8;display:flex;font-size:13px;padding:7px 14px;transition:all .15s}.btn-header:hover{background:#ffffff1a}.btn-end{background:#ef4444;border:none;border-radius:8px;display:flex;font-size:13px;font-weight:700;padding:7px 16px;transition:all .15s}.btn-end:hover{background:#dc2626}.btn-leave{background:#ef444426;border:1px solid #ef44444d;border-radius:8px;color:#ef4444;display:flex;font-size:13px;padding:7px 16px;transition:all .15s}.btn-leave:hover{background:#ef444440}.classroom-body,.video-section{display:flex;flex:1 1;overflow:hidden}.video-section{align-items:center;justify-content:center;padding:16px;transition:all .3s}.video-grid{grid-gap:10px;align-items:center;gap:10px;justify-items:center}.video-tile{background:#12121e;border:2px solid #ffffff0f;border-radius:14px;height:100%;min-height:160px;transition:border-color .2s;width:100%}.video-tile:hover{border-color:#6366f166}.video-tile.local{border-color:#6366f180}.video-feed{display:block;height:100%;object-fit:cover;width:100%}.video-avatar{background:linear-gradient(135deg,#1a1a2e,#12121e);height:100%;width:100%}.avatar-circle,.video-avatar{align-items:center;display:flex;justify-content:center}.avatar-circle{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;color:#fff;font-size:26px;font-weight:800;height:72px;width:72px}.tile-info{background:linear-gradient(#0000,#000000bf);bottom:0;justify-content:space-between;left:0;padding:20px 12px 8px;position:absolute;right:0}.tile-info,.tile-name{align-items:center;display:flex}.tile-name{color:#fff;font-size:12px;gap:4px}.tile-muted{color:#ef4444}.side-panel{background:#12121e;border-left:1px solid #ffffff14;flex-direction:column;width:300px}.panel-header,.side-panel{display:flex;flex-shrink:0}.panel-header{align-items:center;border-bottom:1px solid #ffffff14;justify-content:space-between;padding:16px 18px}.panel-header h3{font-size:15px;font-weight:700;margin:0}.panel-close{background:none;border:none;border-radius:6px;color:#8a8aa8;cursor:pointer;display:flex;padding:4px}.panel-close:hover{background:#ffffff0f;color:#f0f0f8}.chat-panel{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.chat-messages{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:16px}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.chat-empty{align-items:center;color:#55556a;display:flex;flex-direction:column;gap:10px;padding:40px 20px;text-align:center}.chat-empty p{font-size:13px}.chat-msg{display:flex;flex-direction:column;gap:3px}.chat-msg.mine{align-items:flex-end}.msg-sender{color:#8a8aa8;font-size:11px;font-weight:600;padding:0 10px}.msg-bubble{background:#ffffff14;border-radius:14px;font-size:13px;line-height:1.5;max-width:85%;padding:9px 13px;word-break:break-word}.chat-msg.mine .msg-bubble{background:#6366f1;border-radius:14px 14px 4px 14px;color:#fff}.chat-msg:not(.mine) .msg-bubble{border-radius:4px 14px 14px 14px}.msg-time{color:#55556a;font-size:10px;padding:0 10px}.chat-input{border-top:1px solid #ffffff14;display:flex;flex-shrink:0;gap:8px;padding:12px 14px}.chat-input input{background:#ffffff0f;border:1.5px solid #ffffff1a;border-radius:10px;color:#f0f0f8;flex:1 1;font-size:13px;outline:none;padding:9px 13px}.chat-input input:focus{border-color:#6366f1}.chat-input input::placeholder{color:#55556a}.send-btn{align-items:center;background:#6366f1;border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:38px;justify-content:center;transition:all .15s;width:38px}.send-btn:hover:not(:disabled){background:#5558e8}.send-btn:disabled{cursor:default;opacity:.4}.people-panel{flex:1 1;overflow-y:auto;padding:12px}.person-row{align-items:center;border-radius:10px;display:flex;gap:12px;padding:10px 12px;transition:background .15s}.person-row:hover{background:#ffffff0a}.person-avatar{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:700;height:36px;justify-content:center;width:36px}.person-info{flex:1 1;min-width:0}.person-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-role{color:#8a8aa8;font-size:11px;margin-top:2px}.person-icons{color:#ef4444;display:flex;flex-shrink:0;gap:6px}.controls-bar{align-items:center;background:#12121e;border-top:1px solid #ffffff14;display:flex;flex-shrink:0;gap:12px;justify-content:space-between;padding:12px 20px}.controls-left,.controls-right{flex:1 1}.controls-right{display:flex;justify-content:flex-end}.controls-center{align-items:center;display:flex;gap:6px}.room-id-badge{background:#ffffff0a;border-radius:6px;color:#8a8aa8;font-family:monospace;font-size:11px;max-width:160px;overflow:hidden;padding:5px 10px;text-overflow:ellipsis;white-space:nowrap}.ctrl-btn{background:#ffffff0f;border:none;border-radius:10px;color:#f0f0f8;display:flex;min-width:64px;padding:8px 14px;transition:all .15s}.ctrl-btn span{align-items:center;display:flex;gap:3px}.ctrl-btn:hover{background:#ffffff1a}.ctrl-btn.active{background:#6366f133;color:#a5b4fc}.ctrl-btn.danger{background:#ef444426;color:#ef4444}.ctrl-btn.danger:hover{background:#ef444440}.ctrl-btn.end{background:#ef444426;border:1px solid #ef44444d;color:#ef4444}.ctrl-btn.end:hover,.msg-count{background:#ef4444;color:#fff}.msg-count{border-radius:100px;padding:1px 5px}.wb-container{border:1px solid #ffffff14;border-radius:14px;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.wb-toolbar{align-items:center;background:#12121e;border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px;padding:10px 14px}.wb-tools{display:flex;gap:4px}.wb-colors{display:flex;flex-wrap:wrap;gap:5px}.wb-size{align-items:center;display:flex;gap:6px}.wb-size-label{color:#8a8aa8;font-size:12px;min-width:30px;text-align:center}.wb-btn{align-items:center;background:#ffffff0f;border:none;border-radius:8px;color:#f0f0f8;cursor:pointer;display:flex;font-size:13px;height:32px;justify-content:center;transition:all .15s;width:32px}.wb-btn:hover{background:#ffffff1a}.wb-btn.active{background:#6366f140;color:#a5b4fc}.wb-btn.danger{color:#ef4444}.wb-btn.danger:hover{background:#ef444426}.wb-color{border:2px solid #0000;border-radius:50%;cursor:pointer;height:22px;transition:all .15s;width:22px}.wb-color:hover{transform:scale(1.2)}.wb-color.selected{border-color:#fff;transform:scale(1.15)}.wb-divider{background:#ffffff1a;height:24px;margin:0 2px;width:1px}.wb-canvas{display:block;flex:1 1;touch-action:none}@media (max-width:768px){.side-panel{bottom:0;box-shadow:-4px 0 30px #00000080;max-width:320px;position:fixed;right:0;top:0;width:100%;z-index:100}.controls-center{gap:4px}.ctrl-btn{min-width:48px;padding:7px 8px}.ctrl-btn span{font-size:9px}.header-right .btn-header span{display:none}.room-id-badge{max-width:100px}}.video-section.with-board{display:none}.video-section.with-board~.whiteboard-section{display:flex;flex:1 1;flex-direction:column}.classroom-body:has(.whiteboard-section) .video-section{display:flex!important;flex:none;flex-direction:column;gap:10px;width:280px}.classroom-body:has(.whiteboard-section) .video-tile{flex-shrink:0;height:200px!important}.video-tile.small{height:180px!important}@media (max-width:768px){.controls-bar{overflow-x:auto;padding:8px 4px!important}.controls-center{flex-wrap:nowrap!important;gap:4px!important;overflow-x:auto;padding:0 8px}.ctrl-btn{flex-shrink:0;min-width:44px!important;padding:8px 6px!important}.ctrl-btn span{font-size:10px!important}.classroom-body:has(.whiteboard-section){flex-direction:column!important}.classroom-body:has(.whiteboard-section) .video-section{flex-direction:row!important;height:120px!important;overflow-x:auto;width:100%!important}.classroom-body:has(.whiteboard-section) .video-tile{flex-shrink:0!important;height:100px!important;width:160px!important}.video-grid.count-1,.video-grid.count-2{grid-template-columns:1fr!important}.video-grid.count-2{grid-template-rows:1fr 1fr!important}.classroom-header .header-meta{display:none}.class-title{font-size:14px!important}}.video-grid{grid-gap:12px;align-content:stretch;align-items:stretch;box-sizing:border-box;display:grid;gap:12px;height:100%;justify-content:stretch;justify-items:stretch;padding:12px;width:100%}.video-grid.count-1{align-content:center;grid-template-columns:minmax(0,1100px);grid-template-rows:minmax(0,1fr);justify-content:center}.video-grid.count-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.video-grid.count-3{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.video-grid.count-3 .video-tile:first-child{grid-column:1/3;grid-row:1}.video-grid.count-3 .video-tile:nth-child(2){grid-column:3/5;grid-row:1}.video-grid.count-3 .video-tile:nth-child(3){grid-column:2/4;grid-row:2}.video-grid.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.video-grid.count-4,.video-grid.count-6{grid-template-rows:repeat(2,minmax(0,1fr))}.video-grid.count-6{grid-template-columns:repeat(3,minmax(0,1fr))}.video-grid.count-6:has(.video-tile:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}.video-grid.count-6:has(.video-tile:nth-child(5):last-child) .video-tile:first-child{grid-column:1/3;grid-row:1}.video-grid.count-6:has(.video-tile:nth-child(5):last-child) .video-tile:nth-child(2){grid-column:3/5;grid-row:1}.video-grid.count-6:has(.video-tile:nth-child(5):last-child) .video-tile:nth-child(3){grid-column:5/7;grid-row:1}.video-grid.count-6:has(.video-tile:nth-child(5):last-child) .video-tile:nth-child(4){grid-column:2/4;grid-row:2}.video-grid.count-6:has(.video-tile:nth-child(5):last-child) .video-tile:nth-child(5){grid-column:4/6;grid-row:2}.video-grid.count-many{align-content:start;grid-auto-rows:minmax(180px,1fr);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));overflow-y:auto}.video-grid .video-tile{aspect-ratio:auto;height:100%;max-height:none;max-width:none;min-height:0;min-width:0;width:100%}.video-tile{align-items:center;background:#1a1a2e;border:1px solid #2a2a3e;border-radius:12px;display:flex;justify-content:center;position:relative}.video-tile.local{border:2px solid #6366f1}.video-tile .video-feed{background:#000;height:100%;object-fit:contain;width:100%}.video-tile .video-avatar{align-items:center;background:linear-gradient(135deg,#1e1b4b,#312e81);display:flex;height:100%;justify-content:center;width:100%}.video-tile .video-avatar .avatar-circle{align-items:center;background:#6366f1;border-radius:50%;box-shadow:0 8px 24px #6366f14d;color:#fff;display:flex;font-size:28px;font-weight:700;height:80px;justify-content:center;width:80px}.video-tile .tile-info{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;border-radius:100px;bottom:8px;display:flex;gap:6px;left:8px;padding:4px 10px;position:absolute;z-index:5}.video-tile .tile-name{align-items:center;color:#fff;display:flex;font-size:12px;font-weight:600;gap:4px}.video-tile .tile-muted{color:#ef4444}.video-tile.small{aspect-ratio:4/3!important;height:200px!important}.classroom-body:has(.whiteboard-section){display:flex}.classroom-body:has(.whiteboard-section) .video-section{background:#1a1a2e;border-right:1px solid #333;flex:none!important;overflow-y:auto;padding:10px;width:280px!important}.classroom-body:has(.whiteboard-section) .video-grid{display:flex!important;flex-direction:column;gap:10px;grid-template-columns:1fr!important;grid-template-rows:none!important}.classroom-body:has(.whiteboard-section) .video-tile{aspect-ratio:16/9!important;height:180px!important;max-width:none!important;width:100%!important}.classroom-body:has(.whiteboard-section) .video-grid.count-3 .video-tile:first-child,.classroom-body:has(.whiteboard-section) .video-grid.count-3 .video-tile:nth-child(2),.classroom-body:has(.whiteboard-section) .video-grid.count-3 .video-tile:nth-child(3){grid-column:auto!important;grid-row:auto!important;justify-self:stretch!important;max-width:none!important}.whiteboard-section{background:#0f0f1a;display:flex;flex:1 1;flex-direction:column}@media (max-width:768px){.video-grid{gap:6px!important;padding:6px!important}.video-grid.count-1,.video-grid.count-2{grid-template-columns:1fr!important;grid-template-rows:auto!important}.video-grid.count-1 .video-tile,.video-grid.count-2 .video-tile{max-height:35vh!important}.video-grid.count-3{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:1fr 1fr!important}.video-grid.count-3 .video-tile:first-child{grid-column:1/3!important;grid-row:1!important;max-width:none!important}.video-grid.count-3 .video-tile:nth-child(2){grid-column:3/5!important;grid-row:1!important;max-width:none!important}.video-grid.count-3 .video-tile:nth-child(3){grid-column:2/4!important;grid-row:2!important;max-width:none!important}.video-grid.count-4{grid-template-columns:1fr 1fr!important;grid-template-rows:1fr 1fr!important}.video-grid.count-3 .video-tile,.video-grid.count-4 .video-tile{max-height:30vh!important}.video-grid.count-6,.video-grid.count-many{grid-auto-rows:180px!important;grid-template-columns:1fr!important;overflow-y:auto!important}.video-tile .avatar-circle{font-size:22px!important;height:60px!important;width:60px!important}.video-tile .tile-info{bottom:6px;left:6px;padding:3px 8px}.video-tile .tile-name{font-size:11px}.controls-bar{padding:8px 4px!important}.controls-center{flex-wrap:nowrap!important;gap:4px!important;justify-content:flex-start!important;overflow-x:auto;padding:0 8px}.ctrl-btn{flex-shrink:0;min-width:50px!important;padding:8px 6px!important}.ctrl-btn span{font-size:9px!important}.classroom-header{padding:8px 12px!important}.class-title{font-size:14px!important}.header-meta{display:none!important}.classroom-body:has(.whiteboard-section){flex-direction:column!important}.classroom-body:has(.whiteboard-section) .video-section{flex-direction:row!important;height:110px!important;overflow-x:auto;width:100%!important}.classroom-body:has(.whiteboard-section) .video-grid{flex-direction:row!important}.classroom-body:has(.whiteboard-section) .video-tile{flex-shrink:0!important;height:90px!important;width:140px!important}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.ctrl-btn:disabled{cursor:not-allowed;opacity:.5}.video-tile.speaking{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f6,0 0 18px #3b82f68c;transition:box-shadow .18s ease-out,border-color .18s ease-out}.video-tile{transition:box-shadow .35s ease-in,border-color .35s ease-in}.speaking-badge{align-items:center;background:#3b82f6eb;border-radius:50%;box-shadow:0 2px 8px #0006;display:flex;gap:2px;height:28px;justify-content:center;position:absolute;right:8px;top:8px;width:28px;z-index:6}.speaking-badge .bar{animation:meterBar .9s ease-in-out infinite;background:#fff;border-radius:2px;display:block;height:8px;width:3px}.speaking-badge .bar:first-child{animation-delay:0s}.speaking-badge .bar:nth-child(2){animation-delay:.15s}.speaking-badge .bar:nth-child(3){animation-delay:.3s}@keyframes meterBar{0%,to{height:6px;opacity:.65}50%{height:14px;opacity:1}}.video-tile.small .speaking-badge{height:22px;right:6px;top:6px;width:22px}.video-tile.small .speaking-badge .bar{height:6px;width:2px}@keyframes meterBarSmall{0%,to{height:4px;opacity:.65}50%{height:10px;opacity:1}}.video-tile.small .speaking-badge .bar{animation-name:meterBarSmall}@media (prefers-reduced-motion:reduce){.speaking-badge .bar{animation:none;height:10px;opacity:.9}.video-tile.speaking{transition:none}}.video-pinned-layout{grid-gap:12px;box-sizing:border-box;display:grid;gap:12px;grid-template-rows:1fr auto;height:100%;padding:12px;width:100%}.pinned-main{align-items:stretch;display:flex;justify-content:stretch;min-height:0;min-width:0}.pinned-main .video-tile{border-radius:14px;height:100%;width:100%}.pinned-strip{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 8px;scrollbar-color:#4338ca #1a1a2e;scrollbar-width:thin}.pinned-strip::-webkit-scrollbar{height:8px}.pinned-strip::-webkit-scrollbar-track{background:#1a1a2e;border-radius:4px}.pinned-strip::-webkit-scrollbar-thumb{background:#4338ca;border-radius:4px}.pinned-strip .video-tile{aspect-ratio:auto;border-radius:10px;flex:0 0 auto;height:120px;width:200px}.video-tile.pinned{border-color:#6366f1;box-shadow:0 0 0 2px #6366f1,0 4px 16px #6366f159}.video-tile.pinned.speaking{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f6,0 0 18px #3b82f68c}.pin-badge{align-items:center;background:#6366f1eb;border-radius:50%;bottom:38px;box-shadow:0 2px 6px #00000059;display:flex;height:22px;justify-content:center;position:absolute;right:8px;width:22px;z-index:6}@media (max-width:768px){.pinned-strip .video-tile{height:80px;width:130px}.pinned-strip{padding:4px 2px 6px}}.lobby-pill{align-items:center;background:#10b981;border:none;border-radius:100px;box-shadow:0 2px 8px #10b9814d;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:6px;padding:7px 14px;position:relative;transition:background .15s ease}.lobby-pill:hover{background:#059669}.lobby-pill-dot{animation:lobbyPulse 1.6s ease-in-out infinite;background:#fff;border-radius:50%;height:8px;margin-left:2px;width:8px}@keyframes lobbyPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.lobby-panel{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:12px;box-shadow:0 12px 32px #00000080;display:flex;flex-direction:column;max-height:420px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);width:340px;z-index:200}.lobby-panel-header{align-items:center;background:#0f0f1a;border-bottom:1px solid #2a2a3e;color:#fff;display:flex;font-size:13px;justify-content:space-between;padding:12px 14px}.lobby-admit-all{background:#6366f1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;padding:4px 10px}.lobby-admit-all:hover{background:#4f46e5}.lobby-panel-list{flex:1 1;overflow-y:auto}.lobby-row{align-items:center;border-bottom:1px solid #2a2a3e;display:flex;gap:10px;padding:10px 14px}.lobby-row:last-child{border-bottom:none}.lobby-avatar{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:15px;height:36px;justify-content:center;width:36px}.lobby-info{flex:1 1;min-width:0}.lobby-name{color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-guest-tag{background:#f59e0b26;border-radius:4px;color:#f59e0b;display:inline-block;font-size:10px;font-weight:700;margin-left:6px;padding:1px 6px;text-transform:uppercase}.lobby-device{color:#94a3b8;font-size:11px;margin-top:2px}.lobby-actions{display:flex;flex-shrink:0;gap:6px}.lobby-btn{border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:opacity .15s ease}.lobby-btn:hover{opacity:.85}.lobby-btn-admit{background:#10b981;color:#fff}.lobby-btn-deny{background:#0000;border:1px solid #4a1d1d;color:#ef4444}@media (max-width:640px){.lobby-panel{right:-8px;width:calc(100vw - 24px)}}.pip-shell{background:#0f0f1a;color:#fff;display:flex;flex-direction:column;font-family:system-ui,-apple-system,sans-serif;height:100vh;width:100vw}.pip-header{background:#1a1a2e;border-bottom:1px solid #2a2a3e;font-size:12px;font-weight:700;padding:8px 12px}.pip-title{color:#a5b4fc}.pip-video-wrap{align-items:center;background:#000;display:flex;flex:1 1;justify-content:center;overflow:hidden;position:relative}.pip-video{height:100%;object-fit:contain;width:100%}.pip-name{background:#0009;border-radius:6px;bottom:8px;color:#fff;font-size:11px;font-weight:600;left:8px;padding:3px 8px;position:absolute}.pip-controls{background:#1a1a2e;border-top:1px solid #2a2a3e;display:flex;gap:6px;justify-content:center;padding:8px}.pip-btn{background:#2a2a3e;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-family:inherit;font-size:12px;font-weight:600;padding:8px 6px;transition:background .15s ease}.pip-btn:hover{background:#3a3a4e}.pip-btn[data-danger="1"]{background:#ef4444}.pip-btn[data-danger="1"]:hover{background:#dc2626}.pip-btn.pip-end{background:#ef4444}.pip-btn.pip-end:hover{background:#dc2626}.caption-overlay{bottom:16px;display:flex;flex-direction:column;gap:4px;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%);width:min(92%,760px);z-index:30}.caption-line{word-wrap:break-word;animation:captionFadeIn .2s ease;background:#0f0f1ae0;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:16px;line-height:1.4;padding:8px 14px;text-align:center}.caption-line.interim{font-style:italic;opacity:.78}.caption-line.final{font-weight:500;opacity:1}.caption-name{color:#a5b4fc;font-size:14px;font-weight:700;margin-right:6px}.caption-overlay-empty .caption-line{align-items:center;display:inline-flex;font-size:13px;font-style:normal;opacity:.7}.caption-error{color:#fca5a5}@keyframes captionFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:.78;transform:translateY(0)}}@media (max-width:640px){.caption-line{font-size:14px;padding:6px 10px}.caption-name{font-size:12px}.caption-overlay{bottom:8px;width:96%}}.effects-popover{background:#1a1a2e;border:1px solid #2a2a3e;border-radius:12px;bottom:calc(100% + 8px);box-shadow:0 12px 32px #00000080;padding:8px;position:absolute;right:0;width:280px;z-index:60}.effects-popover-title{color:#94a3b8;font-size:11px;font-weight:700;letter-spacing:.05em;padding:6px 8px 8px;text-transform:uppercase}.effects-option{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;gap:12px;padding:10px;text-align:left;transition:background .15s ease;width:100%}.effects-option:hover:not(:disabled){background:#2a2a3e}.effects-option:disabled{cursor:not-allowed;opacity:.5}.effects-option.selected{background:#6366f126;border-color:#6366f1}.effects-thumb{background:linear-gradient(135deg,#4338ca,#6366f1);border-radius:4px;flex-shrink:0;height:30px;overflow:hidden;position:relative;width:40px}.effects-thumb-off{background:linear-gradient(135deg,#475569,#64748b)}.effects-thumb-blur:after{background:linear-gradient(135deg,#6366f1,#a5b4fc 50%,#6366f1);content:"";filter:blur(4px);inset:0;position:absolute}.effects-thumb-reframe:after{background:#fbbf24;border-radius:50%;content:"";height:16px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:16px}.effects-thumb-both{background:linear-gradient(135deg,#8b5cf6,#ec4899)}.effects-thumb-both:after{background:#fff9;border-radius:50%;content:"";height:12px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.effects-label{color:#fff;font-size:13px}.effects-desc{color:#94a3b8;font-size:11px;margin-top:2px}.effects-not-supported{background:#ef44441a;border-radius:6px;color:#fca5a5;font-size:11px;margin-top:8px;padding:10px;text-align:center}.classroom-page{background:var(--ink-0);color:var(--text-1);font-family:var(--font-body)}.class-header,.classroom-header,.classroom-page>header{background:var(--ink-1);border-bottom:1px solid var(--hairline);font-family:var(--font-body);padding:var(--s-3) var(--s-5)}.class-header .header-title,.class-header h1,.class-header h2,.class-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-h1);font-weight:700;letter-spacing:var(--track-normal)}.class-header .live-pill,.live-indicator{background:var(--success-soft);border:1px solid #0000;border-radius:var(--r-pill);color:var(--success);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);padding:3px 10px;text-transform:uppercase}.header-meta{color:var(--text-2);font-size:var(--t-small)}.header-meta .dot{color:var(--text-3);margin:0 var(--s-2)}.btn-header{align-items:center;background:var(--ink-2);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--text-1);cursor:pointer;display:inline-flex;font-size:var(--t-small);font-weight:600;gap:6px;height:34px;letter-spacing:var(--track-normal);padding:0 var(--s-3);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.btn-header:hover{background:var(--ink-3);border-color:var(--hairline-bright)}.btn-end{align-items:center;background:var(--danger);border:1px solid var(--danger);border-radius:var(--r-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:var(--t-small);font-weight:600;gap:6px;height:34px;letter-spacing:var(--track-normal);padding:0 var(--s-4);transition:background var(--dur-fast) var(--ease-out)}.btn-end:hover{background:#ff7589}.btn-leave{align-items:center;background:var(--ink-2);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--text-1);cursor:pointer;display:inline-flex;font-size:var(--t-small);font-weight:600;gap:6px;height:34px;padding:0 var(--s-4)}.btn-leave:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.video-tile{background:var(--ink-2);border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden}.video-tile.local{border-color:var(--hairline-strong)}.video-tile.speaking{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 20px var(--accent-glow)}.video-tile.pinned{border-color:var(--cream);box-shadow:0 0 0 1px var(--cream),0 4px 16px #f5e6d333}.video-tile.pinned.speaking{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 20px var(--accent-glow)}.tile-info{background:linear-gradient(0deg,#050507d9,#0000);font-family:var(--font-body);padding:var(--s-3) var(--s-4)}.tile-name{color:var(--text-1);font-size:var(--t-small);font-weight:600;letter-spacing:var(--track-normal)}.video-avatar{background:radial-gradient(circle at 50% 50%,var(--ink-3),var(--ink-1))}.avatar-circle{background:var(--accent);box-shadow:0 0 0 4px var(--ink-1),0 0 24px var(--accent-glow);color:var(--accent-text);font-family:var(--font-display);font-weight:700;letter-spacing:var(--track-tight)}.speaking-badge{background:var(--accent);border-radius:var(--r-pill);padding:4px 6px}.speaking-badge .bar{background:var(--accent-text)}.pin-badge{background:var(--cream);color:var(--ink-0)}.classroom-controls,.controls-bar{background:var(--ink-1);border-top:1px solid var(--hairline);padding:var(--s-3) var(--s-5)}.controls-center{gap:var(--s-2)}.ctrl-btn{align-items:center;background:var(--ink-2);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--text-1);cursor:pointer;display:inline-flex;flex-direction:column;font-family:var(--font-body);font-size:var(--t-tiny);font-weight:600;gap:4px;letter-spacing:var(--track-loose);min-width:60px;padding:8px var(--s-3);text-transform:uppercase;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.ctrl-btn:hover{background:var(--ink-3);border-color:var(--hairline-bright)}.ctrl-btn span{font-size:10px;font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.ctrl-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.ctrl-btn.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.msg-count{align-items:center;background:var(--accent);border-radius:var(--r-pill);color:var(--accent-text);display:inline-flex;font-size:9px;font-weight:700;height:16px;justify-content:center;margin-left:4px;min-width:16px;padding:0 4px}.chat-panel,.people-panel,.side-panel{background:var(--ink-1);border-left:1px solid var(--hairline)}.panel-header{border-bottom:1px solid var(--hairline);color:var(--text-1);font-family:var(--font-display);font-size:var(--t-h2);font-weight:700;letter-spacing:var(--track-normal);padding:var(--s-4) var(--s-5)}.chat-message,.message-item{background:#0000;border-bottom:1px solid var(--hairline);padding:var(--s-3) var(--s-5)}.chat-message:hover,.message-item:hover{background:var(--ink-2)}.message-author{color:var(--text-1);font-size:var(--t-small);font-weight:600;letter-spacing:var(--track-normal)}.message-time{color:var(--text-3);font-size:var(--t-tiny);letter-spacing:var(--track-loose)}.message-text{color:var(--text-2);font-size:var(--t-body);line-height:var(--lh-normal);margin-top:4px}.chat-input,.message-input{background:var(--ink-2);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);color:var(--text-1);font-family:var(--font-body);font-size:var(--t-body);padding:10px var(--s-4)}.chat-input:focus,.message-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.chat-send-btn{align-items:center;background:var(--accent);border:0;border-radius:var(--r-sm);color:var(--accent-text);cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.chat-send-btn:hover{background:var(--accent-hover)}.participant-row,.people-row{align-items:center;border-bottom:1px solid var(--hairline);display:flex;gap:var(--s-3);padding:var(--s-3) var(--s-5)}.participant-row:hover,.people-row:hover{background:var(--ink-2)}.participant-name{color:var(--text-1);font-size:var(--t-body);font-weight:600}.participant-meta{color:var(--text-2);font-size:var(--t-small)}.lobby-pill{background:var(--accent);border:0;border-radius:var(--r-pill);color:var(--accent-text);font-family:var(--font-body);font-size:var(--t-small);font-weight:600;letter-spacing:var(--track-normal);padding:6px 12px}.lobby-pill:hover{background:var(--accent-hover)}.lobby-panel{background:var(--ink-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.lobby-panel-header{background:var(--ink-2);border-bottom:1px solid var(--hairline);font-family:var(--font-body);font-size:var(--t-small)}.lobby-admit-all{background:var(--accent);border-radius:var(--r-sm);color:var(--accent-text);font-weight:600}.lobby-admit-all:hover{background:var(--accent-hover)}.lobby-row{border-bottom:1px solid var(--hairline)}.lobby-avatar{background:var(--accent);color:var(--accent-text);font-family:var(--font-display);font-weight:700}.lobby-name{color:var(--text-1);font-weight:600}.lobby-device{color:var(--text-3);font-size:var(--t-tiny);letter-spacing:var(--track-loose);text-transform:uppercase}.lobby-btn-admit{background:var(--accent);border-radius:var(--r-sm);color:var(--accent-text);font-weight:600}.lobby-btn-admit:hover{background:var(--accent-hover)}.lobby-btn-deny{border:1px solid var(--danger-soft);border-radius:var(--r-sm);color:var(--danger)}.lobby-btn-deny:hover{background:var(--danger-soft)}.caption-line{background:#050507eb;border:1px solid var(--hairline);border-radius:var(--r-sm);font-family:var(--font-body);font-size:var(--t-h2);letter-spacing:var(--track-normal)}.caption-name{color:var(--accent);font-size:var(--t-small);font-weight:600}.effects-popover{background:var(--ink-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--s-2)}.effects-popover-title{color:var(--text-2);font-family:var(--font-body);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose)}.effects-option{border-radius:var(--r-sm);font-family:var(--font-body)}.effects-option:hover:not(:disabled){background:var(--ink-3)}.effects-option.selected{background:var(--accent-soft);border-color:var(--accent)}.effects-label{color:var(--text-1);font-size:var(--t-body);font-weight:600;letter-spacing:var(--track-normal)}.effects-desc{color:var(--text-2);font-size:var(--t-small)}.effects-thumb-blur:after{background:linear-gradient(135deg,var(--accent) 0,var(--cream) 100%)}.effects-thumb-both{background:linear-gradient(135deg,var(--accent),var(--cream))}.video-pinned-layout{gap:var(--s-3);padding:var(--s-3)}.pinned-strip::-webkit-scrollbar-thumb{background:var(--ink-3)}.pinned-strip::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}.host-settings-wrap{position:relative}.btn-header.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.host-settings-panel{animation:pop-down .16s cubic-bezier(.16,1,.3,1);background:var(--ink-1);border:1px solid var(--hairline-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--s-3) var(--s-4) var(--s-2);position:absolute;right:0;top:calc(100% + 8px);width:360px;z-index:var(--z-dropdown)}@keyframes pop-down{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.host-settings-head{align-items:baseline;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;margin-bottom:var(--s-1);padding:var(--s-2) 0 var(--s-3)}.host-settings-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-body);font-weight:700}.host-settings-sub{color:var(--text-3);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.host-settings-panel .settings-row{padding:var(--s-3) 0}.classroom-loading{align-items:center;background:var(--ink-0);color:var(--text-2);display:flex;flex-direction:column;gap:var(--s-3);justify-content:center;min-height:100vh}.classroom-loading p{color:var(--text-2);font-size:var(--t-body)}.classroom-loading .spin{color:var(--accent)}.layout{background:var(--ink-0);color:var(--text-1);display:flex;font-family:var(--font-body);min-height:100vh}.sidebar{background:var(--ink-1);border-right:1px solid var(--hairline);display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;transition:width var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);width:248px;z-index:var(--z-sticky)}.layout.sidebar-closed .sidebar{width:72px}@media (max-width:768px){.sidebar{inset:0 auto 0 0;position:fixed;transform:translateX(0)}.layout.sidebar-closed .sidebar{transform:translateX(-100%);width:248px}}.sidebar-header{border-bottom:1px solid var(--hairline);flex-shrink:0;height:68px;justify-content:space-between;padding:var(--s-5) var(--s-5) var(--s-5) var(--s-5)}.logo,.sidebar-header{align-items:center;display:flex}.logo{gap:var(--s-3);min-width:0}.logo-icon{align-items:center;background:var(--accent);border-radius:var(--r-sm);box-shadow:0 0 0 1px var(--accent-glow);color:var(--accent-text);display:flex;flex-shrink:0;font-size:16px;font-weight:800;height:32px;justify-content:center;letter-spacing:-.04em;width:32px}.logo-icon,.logo-text{font-family:var(--font-display)}.logo-text{color:var(--text-1);font-size:17px;font-weight:700;letter-spacing:var(--track-tight);overflow:hidden;transition:opacity var(--dur-fast) var(--ease-out);white-space:nowrap}.layout.sidebar-closed .logo-text{opacity:0;width:0}.sidebar-toggle{align-items:center;border-radius:var(--r-sm);color:var(--text-3);cursor:pointer;display:flex;height:28px;justify-content:center;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);width:28px}.sidebar-toggle:hover{background:var(--ink-3);color:var(--text-1)}.layout.sidebar-closed .sidebar-toggle{display:none}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-x:hidden;overflow-y:auto;padding:var(--s-4) var(--s-3)}.nav-item{align-items:center;border-radius:var(--r-sm);color:var(--text-2);display:flex;font-size:var(--t-body);font-weight:500;gap:var(--s-3);letter-spacing:var(--track-normal);overflow:hidden;padding:10px var(--s-3);position:relative;text-decoration:none;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);white-space:nowrap}.nav-item svg{flex-shrink:0}.nav-item:hover{background:var(--ink-3);color:var(--text-1)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item.active:before{background:var(--accent);border-radius:0 2px 2px 0;bottom:8px;content:"";left:-12px;position:absolute;top:8px;width:3px}.layout.sidebar-closed .nav-item span{opacity:0;width:0}.upgrade-card{background:var(--ink-2);border:1px solid var(--hairline);border-radius:var(--r-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--s-2);margin:0 var(--s-3) var(--s-3);overflow:hidden;padding:var(--s-4);position:relative;transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.upgrade-card:before{background:radial-gradient(circle,var(--accent-soft),#0000 70%);content:"";height:100px;pointer-events:none;position:absolute;right:0;top:0;width:100px}.upgrade-card:hover{border-color:var(--accent);transform:translateY(-1px)}.upgrade-icon{color:var(--accent);flex-shrink:0}.upgrade-title{color:var(--text-1);font-size:var(--t-small);font-weight:700;letter-spacing:var(--track-normal)}.upgrade-subtitle{color:var(--text-3);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);margin-top:2px;text-transform:uppercase}.layout.sidebar-closed .upgrade-card{display:none}.sidebar-footer{border-top:1px solid var(--hairline);padding:var(--s-3);position:relative}.user-info{align-items:center;border-radius:var(--r-sm);cursor:pointer;display:flex;gap:var(--s-3);min-width:0;padding:var(--s-2) var(--s-3);transition:background var(--dur-fast) var(--ease-out)}.user-info:hover{background:var(--ink-3)}.user-avatar{align-items:center;background:var(--accent);border-radius:50%;color:var(--accent-text);display:flex;flex-shrink:0;font-family:var(--font-display);font-size:13px;font-weight:700;height:32px;justify-content:center;overflow:hidden;width:32px}.user-avatar img{height:100%;object-fit:cover;width:100%}.user-details{display:flex;flex:1 1;flex-direction:column;min-width:0}.user-name{color:var(--text-1);font-size:var(--t-small);font-weight:600;letter-spacing:var(--track-normal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:var(--text-3);font-size:var(--t-tiny);font-weight:600;letter-spacing:var(--track-loose);text-transform:uppercase}.layout.sidebar-closed .user-details,.layout.sidebar-closed .user-info>svg{opacity:0;width:0}.user-menu{background:var(--ink-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);bottom:calc(100% - 4px);box-shadow:var(--shadow-lg);left:var(--s-3);padding:var(--s-1);position:absolute;right:var(--s-3);z-index:var(--z-dropdown)}.user-menu button{align-items:center;background:#0000;border:0;border-radius:var(--r-sm);color:var(--text-1);cursor:pointer;display:flex;font-family:inherit;font-size:var(--t-small);font-weight:500;gap:var(--s-3);padding:8px var(--s-3);text-align:left;transition:background var(--dur-fast) var(--ease-out);width:100%}.user-menu button:hover{background:var(--ink-3)}.user-menu button.danger{color:var(--danger)}.user-menu button.danger:hover{background:var(--danger-soft)}.sidebar-overlay{background:#00000080;display:none;inset:0;position:fixed;z-index:calc(var(--z-sticky) - 1)}@media (max-width:768px){.layout:not(.sidebar-closed) .sidebar-overlay{display:block}}.main-content{display:flex;flex:1 1;flex-direction:column;min-width:0}.topbar{background:var(--ink-1);border-bottom:1px solid var(--hairline);height:60px;justify-content:space-between;padding:0 var(--s-6);position:sticky;top:0;z-index:var(--z-sticky)}.menu-btn,.topbar{align-items:center;display:flex}.menu-btn{border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;height:36px;justify-content:center;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);width:36px}.menu-btn:hover{background:var(--ink-3);color:var(--text-1)}.topbar-right{gap:var(--s-2)}.icon-btn,.topbar-right{align-items:center;display:flex}.icon-btn{border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;height:36px;justify-content:center;position:relative;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);width:36px}.icon-btn:hover{background:var(--ink-3);color:var(--text-1)}.notification-btn:after{content:"";height:6px;position:absolute;right:8px;top:8px;width:6px}.notification-btn:after,.topbar-avatar{background:var(--accent);border-radius:50%}.topbar-avatar{align-items:center;color:var(--accent-text);cursor:pointer;display:flex;font-family:var(--font-display);font-size:13px;font-weight:700;height:32px;justify-content:center;margin-left:var(--s-2);overflow:hidden;width:32px}.topbar-avatar img{height:100%;object-fit:cover;width:100%}.page-content{flex:1 1;margin:0 auto;max-width:1440px;padding:var(--s-8) var(--s-8);width:100%}@media (max-width:768px){.page-content{padding:var(--s-5) var(--s-4)}}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--s-4);justify-content:space-between;margin-bottom:var(--s-8)}.page-header>*{flex-shrink:0}.page-header>div:first-child{flex:1 1;min-width:200px}.page-title{color:var(--text-1);font-family:var(--font-display);font-size:var(--t-d2);font-weight:700;letter-spacing:var(--track-tight);line-height:var(--lh-tight)}.page-subtitle{color:var(--text-2);font-size:var(--t-body);line-height:var(--lh-normal);margin-top:6px}@media (max-width:720px){.page-title{font-size:var(--t-d3)}}
/*# sourceMappingURL=main.126cd2e0.css.map*/