@font-face{font-family:Caveat;font-style:normal;font-weight:400 600;font-display:swap;size-adjust:118%;src:url(/fonts/caveat-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Caveat;font-style:normal;font-weight:400 600;font-display:swap;size-adjust:118%;src:url(/fonts/caveat-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}:root{--brand-purple:#6c3dd1;--brand-purple-lift:#8b6be0;--brand-purple-soft:#a98bf0;--brand-coral:#ff6b57;--brand-coral-deep:#e5503d;--brand-amber:#ffc24b;--brand-ink:#241b33;--brand-veil:#ece7f4;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--text-xs:0.75rem;--text-sm:0.85rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:3.5rem;--elev-1:0 1px 2px rgb(36 27 51/0.06);--elev-2:0 4px 12px -2px rgb(36 27 51/0.1),0 2px 4px -2px rgb(36 27 51/0.06);--elev-3:0 12px 32px -8px rgb(36 27 51/0.18),0 4px 8px -4px rgb(36 27 51/0.08);--bg:#ffffff;--panel:#f7f5fc;--panel-raised:#ffffff;--ink:#241b33;--muted:#6b6280;--accent:#6c3dd1;--accent-hover:#5730ab;--accent-tint:rgb(108 61 209/0.1);--accent-contrast:#ffffff;--board-bg:#ffffff;--border:#e7e2f0;--border-strong:#d3cae5;--shadow:var(--elev-2);--danger:#b91c1c;--danger-tint:#fef2f2;--danger-border:#fecaca;--warn:#a1620a;--warn-tint:#fff8e8;--warn-border:#fde3ac;--ok:#15803d;--ok-tint:#f0fdf4;--ok-border:#bbf7d0;--chart-1:var(--accent);--chart-2:#0d9488;--pastel-yellow:#fdeeb0;--pastel-blue:#d8e5fb;--pastel-pink:#fadbe9;--pastel-green:#d6f0dc;--pastel-lilac:#e6defb;--pastel-peach:#ffe2d6;--pastel-yellow-deep:#ffc24b;--pastel-blue-deep:#7c9cf0;--pastel-pink-deep:#f08bb4;--pastel-green-deep:#5cc489;--pastel-lilac-deep:#a98bf0;--pastel-peach-deep:#ff8a78;--solid-ink:#1d1726;--solid-ink-contrast:#ffffff;--ease-out:cubic-bezier(0.2,0.7,0.1,1);--ease-spring:cubic-bezier(0.3,1.5,0.5,1)}:root[data-theme=dark]{--bg:#131316;--panel:#1c1c21;--panel-raised:#232329;--ink:#ecebef;--muted:#a3a1ab;--accent:#9b7bf0;--accent-hover:#b096f5;--accent-tint:rgb(155 123 240/0.16);--accent-contrast:#17131f;--board-bg:#fbfaf7;--border:#2d2d34;--border-strong:#3d3d46;--elev-1:0 1px 2px rgb(0 0 0/0.3);--elev-2:0 4px 12px -2px rgb(0 0 0/0.4),0 2px 4px -2px rgb(0 0 0/0.3);--elev-3:0 12px 32px -8px rgb(0 0 0/0.55),0 4px 8px -4px rgb(0 0 0/0.35);--shadow:var(--elev-2);--danger:#fca5a5;--danger-tint:rgb(185 28 28/0.15);--danger-border:rgb(252 165 165/0.25);--warn:#fcd34d;--warn-tint:rgb(161 98 10/0.18);--warn-border:rgb(252 211 77/0.25);--ok:#86efac;--ok-tint:rgb(21 128 61/0.18);--ok-border:rgb(134 239 172/0.25);--chart-1:var(--accent);--chart-2:#35a79c;--pastel-yellow:#3a3220;--pastel-blue:#1f2a3d;--pastel-pink:#3a2230;--pastel-green:#1d3326;--pastel-lilac:#2a2340;--pastel-peach:#3a261f;--solid-ink:#f3f1f6;--solid-ink-contrast:#17131f}.theme-toggle{background:var(--panel)!important;border:1px solid var(--border)!important;color:var(--ink)!important;width:40px!important;height:40px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;box-shadow:0 1px 3px 0 rgb(0 0 0/.05)!important;transition:all .2s ease!important;padding:0!important;flex-shrink:0!important}.theme-toggle:hover{background:var(--bg)!important;transform:scale(1.05)!important;border-color:var(--accent)!important}.theme-toggle:focus{outline:none!important}.theme-toggle:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px!important}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-weight:700;line-height:1;white-space:nowrap;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-pill);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.ui-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ui-btn-sm{padding:.4rem .85rem;font-size:var(--text-xs)}.ui-btn-md{padding:.6rem 1.15rem;font-size:var(--text-sm)}.ui-btn-lg{padding:.85rem 1.6rem;font-size:var(--text-md)}.ui-btn-primary{background:var(--accent);color:var(--accent-contrast)}.ui-btn-primary:not(:disabled):hover{background:var(--accent-hover)}.ui-btn-secondary{background:var(--panel-raised);border-color:var(--border-strong);color:var(--ink)}.ui-btn-secondary:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.ui-btn-quiet{background:transparent;color:var(--muted);font-weight:600}.ui-btn-quiet:not(:disabled):hover{color:var(--accent);background:var(--accent-tint)}.ui-btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.ui-btn-danger:not(:disabled):hover{background:var(--danger-tint)}.ui-input{width:100%;padding:.75rem 1rem;font-family:inherit;font-size:var(--text-md);color:var(--ink);background:var(--panel-raised);border:1px solid var(--border-strong);border-radius:var(--radius-pill);outline:none;transition:border-color .18s ease,box-shadow .18s ease}.ui-input::placeholder{color:var(--muted)}.ui-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.ui-field{display:flex;flex-direction:column;gap:.4rem;text-align:left}.ui-field-label{font-size:var(--text-sm);font-weight:700;color:var(--ink)}.ui-field-hint{font-size:var(--text-xs);color:var(--muted);line-height:1.5}.ui-card{width:100%;padding:var(--space-5);text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg)}.ui-card-raised{background:var(--panel-raised);box-shadow:var(--elev-2)}.ui-banner{width:100%;margin:0;padding:.7rem 1rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5;text-align:left}.ui-banner-info{background:var(--accent-tint);border-color:transparent;color:var(--ink)}.ui-banner-success{background:var(--ok-tint);border-color:var(--ok-border);color:var(--ok)}.ui-banner-warn{background:var(--warn-tint);border-color:var(--warn-border);color:var(--warn)}.ui-banner-error{background:var(--danger-tint);border-color:var(--danger-border);color:var(--danger)}.auth-toast{position:fixed;top:4.5rem;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:flex-start;gap:.4rem;width:min(30rem,calc(100vw - 2rem));padding:.35rem;border-radius:var(--radius-md);background:var(--panel-raised);border:1px solid var(--border);box-shadow:var(--elev-3);animation:auth-toast-in .18s ease-out}@keyframes auth-toast-in{0%{opacity:0;transform:translate(-50%,-.5rem)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.auth-toast{animation:none}}.auth-toast-close{flex:0 0 auto;display:grid;place-items:center;width:1.75rem;height:1.75rem;margin-top:.35rem;border:none;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.auth-toast-close:hover{background:var(--accent-tint);color:var(--ink)}.ui-avatar{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:hsl(var(--avatar-hue) 58% 90%);color:hsl(var(--avatar-hue) 52% 28%);font-weight:800;line-height:1;letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;user-select:none}:root[data-theme=dark] .ui-avatar{background:hsl(var(--avatar-hue) 32% 26%);color:hsl(var(--avatar-hue) 72% 80%)}.ui-avatar-sm{width:2rem;height:2rem;font-size:.7rem}.ui-avatar-md{width:2.5rem;height:2.5rem;font-size:var(--text-sm)}.ui-avatar-lg{width:3.5rem;height:3.5rem;font-size:var(--text-lg)}.ui-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;line-height:1.5;white-space:nowrap}.ui-chip-neutral{background:var(--panel);border:1px solid var(--border);color:var(--muted)}.ui-chip-accent{background:var(--accent-tint);color:var(--accent)}.ui-chip-warn{background:var(--warn-tint);color:var(--warn)}.ui-chip-ok{background:var(--ok-tint);color:var(--ok)}*{box-sizing:border-box}.shell-main li a,.shell-main p a,.ui-banner a{color:var(--accent);font-weight:700;text-underline-offset:.2em;text-decoration-thickness:1px}.shell-main li a:hover,.shell-main p a:hover,.ui-banner a:hover{color:var(--accent-hover)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-brand),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}:root{--logo-eye:#ffffff;--logo-pupil:var(--brand-ink)}.brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);line-height:1}.brand-mark{display:block;flex-shrink:0}.brand-word{font-size:1.35rem;font-weight:800;letter-spacing:-.04em;color:var(--ink)}.brand-word b{color:var(--brand-coral);font-weight:800}a.brand:hover .brand-word{color:var(--accent)}a.brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-sm)}.shell{min-height:100dvh;display:flex;flex-direction:column}.shell-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;grid-gap:var(--space-3);gap:var(--space-3);padding:var(--space-3) var(--space-4)}@media (min-width:720px){.shell-header{padding:var(--space-4) var(--space-6);gap:var(--space-4)}}.shell-side{display:flex;align-items:center;gap:var(--space-2);min-width:0}.shell-side-end{justify-content:flex-end}.shell-nav{display:flex;justify-content:center;min-width:0}.shell-menu{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--ink);cursor:pointer;transition:background-color .18s ease}.shell-menu:hover{background:var(--accent-tint)}@media (max-width:719px){.shell-nav>.mode-switch{display:none}}.shell-account-skeleton{display:inline-block;width:3.5rem;height:.75rem;border-radius:var(--radius-pill);background:var(--border)}.drawer{display:none;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-4);background:var(--bg);border-right:1px solid var(--border)}@media (max-width:719px){.shell[data-nav=open] .drawer{position:fixed;inset:0 auto 0 0;z-index:51;display:flex;width:min(19rem,82vw);box-shadow:var(--elev-3);animation:drawer-in .18s ease-out}}@media (min-width:720px){.shell{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr}.shell-header,.shell-main{grid-column:2}.drawer{display:flex;grid-column:1;grid-row:1/-1;position:-webkit-sticky;position:sticky;top:0;height:100dvh;width:15rem;overflow-y:auto;overflow-x:hidden;padding-top:var(--space-6);transition:width .16s ease}.shell[data-nav=closed] .drawer{width:4.25rem;padding-left:var(--space-2);padding-right:var(--space-2);align-items:center}.shell[data-nav=closed] .drawer-account,.shell[data-nav=closed] .drawer-link{width:auto;justify-content:center;padding:.7rem}.shell[data-nav=closed] .brand-word,.shell[data-nav=closed] .drawer-account-body,.shell[data-nav=closed] .drawer-link-label{display:none}.shell[data-nav=closed] .drawer-head{justify-content:center}}@keyframes drawer-in{0%{transform:translateX(-100%)}}@media (prefers-reduced-motion:reduce){.drawer{animation:none}}.drawer-head{justify-content:space-between;gap:var(--space-3)}.drawer-close,.drawer-head{display:flex;align-items:center}.drawer-close{justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background-color .18s ease,color .18s ease}.drawer-close:hover{background:var(--accent-tint);color:var(--accent)}@media (min-width:720px){.drawer-close{display:none}}.drawer .mode-switch{width:100%}@media (min-width:720px){.drawer .mode-switch{display:none}}.drawer .mode-option{flex:1 1;text-align:center}.drawer-links{display:flex;flex-direction:column;gap:var(--space-1)}.drawer-account,.drawer-link{padding:.7rem .9rem;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;color:var(--ink);text-decoration:none;transition:background-color .18s ease,color .18s ease}.drawer-link{display:flex;align-items:center;gap:.75rem}.drawer-link-icon{flex-shrink:0}.drawer-link-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-account:hover,.drawer-link:hover,.drawer-link[aria-current=page]{background:var(--accent-tint);color:var(--accent)}.drawer-account{margin-top:auto;display:flex;align-items:center;gap:.6rem;border:1px solid var(--border);font-size:var(--text-sm);width:100%;background:none;font-family:inherit;text-align:left;cursor:pointer;min-width:0}.drawer-account-body{display:flex;flex-wrap:nowrap;text-wrap:nowrap;flex-direction:column;gap:.1rem;min-width:0}.drawer-account-email,.drawer-account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-account-name{font-weight:700;color:var(--ink)}.drawer-account-email{font-size:var(--text-xs);font-weight:500;color:var(--muted)}.drawer-account:hover .drawer-account-name,.drawer-account[aria-current=page] .drawer-account-name{color:inherit}.shell-main{flex:1 1;display:flex;flex-direction:column;align-items:center;width:100%;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-8)}.shell-main,.shell-narrow .shell-main{max-width:50rem}.class-entry .shell-main,.classroom .shell-main,.host-console .shell-main,.preview-page .shell-main{gap:var(--space-5)}.class-entry .shell-main{justify-content:safe center;padding-bottom:var(--space-8)}.class-entry .hero-lead,.classroom .hero-lead,.host-console .hero-lead,.preview-page .hero-lead{margin-top:0}@media (min-width:720px){.shell-main{padding:var(--space-5) var(--space-6) var(--space-8)}}.classroom>.brand,.home>.brand{position:absolute;top:1rem;left:1rem}@media (min-width:640px){.classroom>.brand,.home>.brand{top:1.5rem;left:2rem}}.mascot{display:block;width:100%;max-width:380px;height:auto}.home-mascot{width:96px;height:auto}@media (min-width:640px){.home-mascot{width:120px}}.hero-title{margin:0;font-size:var(--text-3xl);font-weight:800;letter-spacing:-.035em;line-height:1.08;text-align:center;text-wrap:balance;max-width:20ch;color:var(--ink)}@media (min-width:720px){.hero-title{font-size:3rem}}.hero-lead{margin:var(--space-3) 0 0;max-width:38ch;font-size:var(--text-md);line-height:1.5;text-align:center;text-wrap:balance;color:var(--muted)}@media (min-width:720px){.hero-lead{font-size:var(--text-lg)}}.home-page{min-height:100dvh}.home-page .shell-main{flex:1 1;gap:var(--space-6);padding-bottom:var(--space-6)}.home-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);width:100%;min-height:calc(100dvh - 12rem)}.home-hero--returning{min-height:min(34rem,calc(100dvh - 15rem))}@media (max-width:719px){.home-hero--returning{min-height:min(28rem,calc(100dvh - 17rem))}}.home-page .topic-form{margin-top:0}.home-page .hero-title{font-size:var(--text-2xl)}@media (min-width:720px){.home-page .hero-title{font-size:var(--text-3xl)}}.doodles{position:fixed;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none;opacity:.12;-webkit-mask-image:linear-gradient(90deg,#000 calc(50% - 34rem),transparent calc(50% - 24rem),transparent calc(50% + 24rem),#000 calc(50% + 34rem));mask-image:linear-gradient(90deg,#000 calc(50% - 34rem),transparent calc(50% - 24rem),transparent calc(50% + 24rem),#000 calc(50% + 34rem))}.shell.home-page .doodles,.shell.preview-page .doodles{-webkit-mask-image:radial-gradient(ellipse 44% 40% at 50% 50%,transparent 45%,#000 100%);mask-image:radial-gradient(ellipse 44% 40% at 50% 50%,transparent 45%,#000 100%)}:root[data-theme=dark] .doodles{opacity:.16}.doodles-tall{display:none}@media (max-width:719px){.doodles-wide{display:none}.doodles-tall{display:block}.doodles{opacity:.1}}@media (max-width:1199px){.shell:not(.home-page):not(.preview-page) .doodles{-webkit-mask-image:none;mask-image:none;opacity:.055}:root[data-theme=dark] .shell:not(.home-page):not(.preview-page) .doodles{opacity:.085}}@media (min-width:720px){.shell:not([data-nav=closed]) .doodles{left:15rem;width:calc(100% - 15rem)}.shell[data-nav=closed] .doodles{left:4.25rem;width:calc(100% - 4.25rem)}}@media (max-height:620px){.home-page .home-mascot{display:none}}.page-head-count{font-size:var(--text-sm);color:var(--muted)}.account-page .shell-main,.library-page .shell-main,.progress-page .shell-main{align-items:stretch}.account-page .shell-main{gap:var(--space-5)}.library-page .library-filter{max-width:26rem;margin-bottom:var(--space-4)}.library-page .library-chips,.library-page .library-tabs{justify-content:flex-start}.library-page .library-group{width:100%;margin-bottom:var(--space-5);align-items:flex-start}.library-page .library-group-label{display:block;margin:0 0 var(--space-3);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.mascot .float{animation:mascot-float 5s ease-in-out infinite;transform-origin:center}.mascot .f2{animation-duration:6.5s;animation-delay:-1.5s}.mascot .f3{animation-duration:5.8s;animation-delay:-3s}.mascot .f4{animation-duration:7s;animation-delay:-2.2s}@keyframes mascot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.mascot .bob{animation:mascot-bob 4s ease-in-out infinite}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.mascot .blink{animation:mascot-blink 1.6s step-end infinite}@keyframes mascot-blink{0%,60%{opacity:1}61%,to{opacity:.25}}.mascot .sdraw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:mascot-draw 9s ease-in-out infinite}.mascot .sd2{animation-delay:.9s}.mascot .sd3{animation-delay:1.5s}.mascot .sd4{animation-delay:2.1s}.mascot .sd5{animation-delay:2.8s}@keyframes mascot-draw{0%{stroke-dashoffset:var(--len)}18%,86%{stroke-dashoffset:0}to{stroke-dashoffset:0}}.mascot .pop{transform-origin:254px 70px;animation:mascot-pop 9s ease-out infinite}@keyframes mascot-pop{0%,36%{transform:scale(0);opacity:0}44%{transform:scale(1.25);opacity:1}50%,88%{transform:scale(1);opacity:1}to{transform:scale(1);opacity:1}}.mascot .eq rect{animation:mascot-eq .9s ease-in-out infinite;transform-origin:center 124px}.mascot .eq rect:nth-child(2){animation-delay:-.65s}.mascot .eq rect:nth-child(3){animation-delay:-.35s}.mascot .eq rect:nth-child(4){animation-delay:-.15s}@keyframes mascot-eq{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.mascot .blink,.mascot .bob,.mascot .eq rect,.mascot .float,.mascot .pop,.mascot .sdraw{animation:none}.mascot .sdraw{stroke-dashoffset:0}}.home{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1.5rem;padding:7rem 1rem 3rem;position:relative;overflow-x:hidden}@media (min-width:640px){.home{justify-content:center;padding:2rem}}.home h1{font-size:2.25rem;font-weight:800;letter-spacing:-.04em;text-align:center;max-width:45rem;line-height:1.1;color:var(--ink);margin:0}@media (min-width:640px){.home h1{font-size:3.5rem}}.home p{color:var(--muted);text-align:center;font-size:1.1rem;max-width:35rem;margin-top:0}@media (min-width:640px){.home p{font-size:1.25rem}}.topic-form{width:100%;max-width:44rem;margin-top:1rem}.input-group{width:100%}.combobox,.input-group{position:relative;display:flex}.combobox{flex:1 1}.pack-matches{position:absolute;top:calc(100% + .5rem);left:0;right:0;z-index:20;margin:0;padding:.4rem;list-style:none;border:1px solid var(--border);border-radius:18px;background:var(--bg);box-shadow:0 12px 32px rgb(0 0 0/.18);display:flex;flex-direction:column;gap:.1rem;max-height:40vh;overflow-y:auto}.pack-matches-label{padding:.35rem 1rem .15rem;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pack-match{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;width:100%;padding:.6rem 1rem;border:none;border-radius:12px;background:transparent;color:var(--ink);cursor:pointer;font-size:.95rem;text-align:left}.pack-match.active{background:var(--panel);color:var(--accent)}.pack-match-context{font-size:.8rem;color:var(--muted);white-space:nowrap}.input-group input{flex:1 1;width:100%;min-width:0;padding:1rem 3.9rem 1rem 1.4rem;font-family:inherit;font-size:var(--text-md);border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--panel-raised);color:var(--ink);box-shadow:var(--elev-1);transition:border-color .2s ease,box-shadow .2s ease}.input-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}.input-group>button{padding:1.1rem 2rem;font-size:1.05rem;font-weight:600;border-radius:999px;border:none;background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px var(--accent-tint);white-space:nowrap}.input-group>button:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px rgba(112,56,219,.3)}.input-group>button:disabled{opacity:.7;cursor:not-allowed;transform:none}.input-group>.topic-submit{position:absolute;right:.4rem;top:50%;margin-top:-1.375rem;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;box-shadow:none}.input-group>.topic-submit:hover{box-shadow:none}.topic-submit-icon{display:block}.topic-submit[data-planning=true] .topic-submit-icon{animation:topic-submit-planning 1.1s ease-in-out infinite}@keyframes topic-submit-planning{0%,to{opacity:1;transform:translateX(0)}50%{opacity:.45;transform:translateX(2px)}}@media (prefers-reduced-motion:reduce){.topic-submit[data-planning=true] .topic-submit-icon{animation:none;opacity:.6}}.exam-picker{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.exam-picker-label{font-size:.85rem;color:var(--muted)}.exam-options{display:flex;flex-wrap:wrap;gap:.5rem}.exam-option{padding:.35rem .9rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s ease}.exam-option:hover{border-color:var(--accent);color:var(--accent)}.exam-option.selected{border-color:var(--accent);background:var(--accent);color:var(--bg)}.exam-hint{font-size:.8rem;color:var(--muted);margin:0}.library{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:52rem;margin-top:.5rem;padding:1.5rem 1.5rem 1.75rem;border:1px solid var(--border);border-radius:24px;background:var(--panel)}.library-tabs{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.library-tab{padding:.35rem 1.1rem;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease}.library-tab:hover{color:var(--accent)}.library-tab.active{border-color:var(--accent);color:var(--accent);background:var(--bg)}.library-group{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.library-group-label{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.library-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.library-chips button{padding:.4rem .95rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s ease}.library-chips button:hover{border-color:var(--accent);color:var(--accent)}.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgb(0 0 0/.45);animation:fade-in .15s ease-out}.modal{position:fixed;z-index:51;top:50%;left:50%;transform:translate(-50%,-50%);width:min(30rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow-y:auto;padding:var(--space-5);text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-3);animation:modal-in .18s ease-out}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px))}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop{animation:none}}.modal-close{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background-color .18s ease,color .18s ease}.modal-close:hover{background:var(--accent-tint);color:var(--accent)}.email-gate-title{margin:0 2.25rem .6rem 0;font-size:var(--text-lg);font-weight:700;color:var(--ink)}.email-gate-message{margin:0 0 .85rem;color:var(--muted);font-size:.95rem;line-height:1.5}.email-gate-form{display:flex;flex-wrap:wrap;gap:.6rem}.email-gate-form input{flex:1 1;min-width:12rem;padding:.6rem 1rem;font-size:.9rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--ink)}.email-gate-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.email-gate-form button{padding:.6rem 1.25rem;font-size:.85rem;font-weight:600;border-radius:999px;border:none;background:var(--accent);color:var(--accent-contrast);cursor:pointer;white-space:nowrap}.email-gate-form button:disabled{opacity:.7;cursor:not-allowed}.email-gate-error,.email-gate-sent{margin:0;font-size:.9rem;color:var(--muted)}.email-gate-sent strong{color:var(--ink)}.email-gate-error{margin-top:.7rem;color:#ef4444}.error-message{color:#b91c1c;font-weight:500;margin-top:1rem;background:#fef2f2;border:1px solid #fecaca;padding:.5rem 1rem;border-radius:8px}:root[data-theme=dark] .error-message{color:#fca5a5;background:rgba(185,28,28,.15);border-color:rgba(252,165,165,.25)}.session{display:flex;flex-direction:column;height:100dvh;padding:1rem;gap:1rem;background:var(--panel)}@media (min-width:1200px){.session{padding-inline:clamp(1.5rem,5vw,5rem)}}.session-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;grid-gap:.5rem;gap:.5rem;padding:.5rem .5rem .5rem .9rem;background:var(--bg);border-radius:16px;border:1px solid var(--border);box-shadow:var(--elev-1)}.session-id{display:flex;align-items:baseline;gap:.6rem;min-width:0}.session-topic{margin:0;font-size:1rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media (min-width:900px){.session-topic{font-size:1.1rem}}.session-clock{gap:.3rem;font-size:var(--text-sm);font-weight:600;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.session-clock,.session-recording{display:inline-flex;align-items:center;flex-shrink:0}.session-recording{gap:.35rem;font-size:var(--text-sm);font-weight:600;color:var(--danger)}.session-recording-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--danger);animation:recording-pulse 2s ease-in-out infinite}@keyframes recording-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.session-recording-dot{animation:none}}@media (max-width:639px){.session-clock{display:none}}.session-state{display:flex;justify-content:center;min-width:0}.session-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;min-width:0}.session-actions>button,.session-header .assess-me,.session-header .hand,.session-header .mic,.session-header .sources-toggle{padding:.5rem .9rem;font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.session-actions>button:hover,.session-header .assess-me:hover,.session-header .hand:hover,.session-header .mic:hover,.session-header .sources-toggle:hover{border-color:var(--accent);color:var(--accent)}.session-code{display:inline-flex;align-items:center;padding:.5rem .9rem;border-radius:var(--radius-pill);border:1px dashed var(--border);background:var(--panel);white-space:nowrap;flex-shrink:0}.session-code code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.session-actions>button.session-end{border-color:var(--danger-border);background:var(--danger-tint);color:var(--danger)}.session-actions>button.session-end:hover{background:var(--danger);border-color:var(--danger);color:#ffffff}:root[data-theme=dark] .session-actions>button.session-end:hover{color:var(--bg)}.layout-toggle{display:inline-flex;gap:.15rem;padding:.15rem;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--panel);flex-shrink:0}.layout-option{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.layout-option:hover{color:var(--accent)}.layout-option.on{background:var(--accent);color:var(--accent-contrast)}.layout-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:639px){.session-header{grid-template-columns:minmax(0,1fr) auto;row-gap:.4rem}.session-state{justify-content:flex-end}.session-actions{grid-column:1/-1;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.session-actions::-webkit-scrollbar{display:none}}.session-header::-webkit-scrollbar{display:none}@media (min-width:640px){.session-header{padding:.5rem .75rem .5rem 1.25rem;border-radius:20px;gap:1rem}}.tutor-state{padding:.35rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600;background:var(--panel);color:var(--muted);border:1px solid var(--border);white-space:nowrap;flex-shrink:0}@media (min-width:640px){.tutor-state{padding:.4rem 1.25rem;font-size:.9rem}}.tutor-state.speaking{color:#059669;background:#d1fae5;border-color:#6ee7b7}.tutor-state.thinking{color:#d97706;background:#fef3c7;border-color:#fcd34d}.session-header button.pen{background:var(--bg);border:1px solid var(--border);color:var(--ink);box-shadow:0 1px 2px rgb(0 0 0/.05)}.session-header button.pen:hover{border-color:var(--accent);color:var(--accent);background:var(--panel);transform:none}.session-header button.pen.on{background:var(--accent);border-color:var(--accent);color:white}.session-header button.assess-me{padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;border-radius:999px;background:var(--bg);border:1px solid var(--border);color:var(--ink);cursor:pointer;white-space:nowrap;box-shadow:0 1px 2px rgb(0 0 0/.05);transition:all .2s ease}.session-header button.assess-me:hover{border-color:var(--accent);color:var(--accent);background:var(--panel)}.assessment-pending{display:flex;flex-direction:column;gap:var(--space-1);padding:.85rem 1.25rem;border-radius:var(--radius-lg);border:1px dashed var(--border-strong);background:var(--panel);color:var(--muted)}.assessment-pending strong{color:var(--ink);font-size:var(--text-md);animation:assessment-pending-pulse 1.8s ease-in-out infinite}@keyframes assessment-pending-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.assessment-pending strong{animation:none}}.assessment-banner{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .9rem;padding:.85rem 1.25rem;border-radius:16px;border:2px solid #f59e0b;background:#fffbeb;color:#78350f}.assessment-banner strong{font-size:1.05rem}.assessment-banner span{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.assessment-banner small{flex-basis:100%;color:#92400e}:root[data-theme=dark] .assessment-banner{background:#2a1f06;border-color:#b45309;color:#fde68a}:root[data-theme=dark] .assessment-banner small{color:#fcd34d}.assessment-result{padding:1.1rem 1.35rem;border-radius:20px;border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow)}.assessment-result>strong{display:block;font-size:1.05rem;color:var(--ink);margin-bottom:.75rem}.assessment-result ul{list-style:none;margin:0 0 .9rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.assessment-result li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.4rem;border-bottom:1px solid var(--border);font-size:.95rem;color:var(--ink)}.assessment-result li:last-child{border-bottom:none;padding-bottom:0}.assessment-result li em{font-style:normal;font-weight:600;text-align:right;color:var(--muted)}.assessment-result li.outcome-correct em{color:#15803d}.assessment-result li.outcome-partial em{color:#b45309}.assessment-result li.outcome-incorrect em{color:var(--muted)}:root[data-theme=dark] .assessment-result li.outcome-correct em{color:#4ade80}:root[data-theme=dark] .assessment-result li.outcome-partial em{color:#fbbf24}.assessment-actions{display:flex;gap:.6rem;flex-wrap:wrap}.assessment-result .assessment-retest{padding:.55rem 1.3rem;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:.9rem;font-weight:600;cursor:pointer}.assessment-result .assessment-retest:hover{background:var(--accent);color:#ffffff}.assessment-result .assessment-dismiss{padding:.55rem 1.3rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--ink);font-size:.9rem;font-weight:600;cursor:pointer}.assessment-result .assessment-dismiss:hover{border-color:var(--accent);color:var(--accent)}.session-header button.hand-in{background:var(--accent);border:1px solid var(--accent);border-radius:999px;color:white;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 1px 2px rgb(0 0 0/.08)}.session-header button.hand-in:hover{filter:brightness(1.08);transform:none}.session-header button.hand-in.watched{animation:hand-in-waiting 1.8s ease-in-out infinite}@keyframes hand-in-waiting{0%,to{box-shadow:0 0 0 0 rgb(0 0 0/0)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}}@media (prefers-reduced-motion:reduce){.session-header button.hand-in.watched{animation:none}}.session-header button.mic{background:var(--bg);border:1px solid var(--border);color:var(--ink);box-shadow:0 1px 2px rgb(0 0 0/.05)}.session-header button.mic:hover{border-color:var(--accent);color:var(--accent);background:var(--panel);transform:none}.session-header button.mic.muted{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.session-header button.mic.muted:hover{border-color:#f87171;color:#b91c1c;background:#fee2e2}.connection-banner{padding:.75rem 1.25rem;border-radius:12px;font-size:.95rem;font-weight:500;text-align:center;box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}.connection-banner.ok{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.connection-banner.warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.connection-banner.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.board-tools{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);z-index:3;display:flex;flex-direction:column;gap:.35rem;padding:.35rem;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--panel) 90%,transparent);border:1px solid var(--border);box-shadow:var(--elev-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.board-tool-wrap{position:relative;display:flex}.board-tool{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border:none;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:background .15s ease,color .15s ease}.board-tool:hover:not(:disabled){background:var(--accent-tint);color:var(--accent)}.board-tool.on{background:var(--accent);color:var(--accent-contrast)}.board-tool:disabled{opacity:.4;cursor:not-allowed}.board-tool:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.board-tool.hand-in{background:var(--accent);color:var(--accent-contrast)}.board-tool.hand-in.armed{box-shadow:0 0 0 3px var(--accent-tint)}.board-tool-dot{position:absolute;right:.3rem;bottom:.3rem;width:.5rem;height:.5rem;border-radius:50%;border:1.5px solid var(--panel)}.board-tool-more{position:absolute;right:.05rem;bottom:.05rem;display:inline-flex;align-items:center;justify-content:center;width:.95rem;height:.95rem;padding:0;border:none;border-radius:50%;background:var(--panel);color:var(--muted);cursor:pointer}.board-tool-more:hover{color:var(--accent);border-color:var(--accent)}.board-tool-more:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.board-tool-rule{height:1px;margin:.15rem .4rem;background:var(--border)}.board-flyout{position:absolute;right:calc(100% + .4rem);top:50%;transform:translateY(-50%);display:flex;gap:.3rem;padding:.35rem;border-radius:var(--radius-pill);background:var(--panel);border:1px solid var(--border);box-shadow:var(--elev-2)}.board-flyout-item{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}.board-flyout-item:hover{background:var(--accent-tint);color:var(--accent)}.board-flyout-item.on{background:var(--accent);color:var(--accent-contrast)}.board-flyout-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.board-swatch{width:1.35rem;height:1.35rem;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.board-swatch.on,.board-swatch:hover{border-color:var(--ink)}.board-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:639px){.board-tools{flex-direction:row;bottom:.6rem}.board-flyout,.board-tools{top:auto;right:50%;transform:translateX(50%)}.board-flyout{bottom:calc(100% + .4rem)}.board-tool-rule{width:1px;height:auto;margin:.4rem .15rem}}.board-wrap{position:relative;flex:1 1;min-height:0;background:var(--board-bg);border-radius:20px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.85),inset 0 -18px 26px -22px rgba(31,42,55,.5)}.board-wrap:after{content:"";position:absolute;inset:auto 0 0 0;height:10px;pointer-events:none;background:linear-gradient(to bottom,color-mix(in srgb,var(--border) 55%,transparent),color-mix(in srgb,var(--border) 22%,transparent));border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.board-wrap.layout-avatar{background:var(--panel);border-color:transparent;box-shadow:none}.board-wrap.layout-avatar:after{display:none}.tutor-avatar{position:absolute;left:1rem;bottom:1rem;width:96px;height:120px;border-radius:16px;overflow:hidden;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);z-index:2;pointer-events:none}.tutor-avatar .tutor-face,.tutor-avatar video{width:100%;height:100%;object-fit:cover;display:block}.tutor-avatar[data-mode=synthetic]{background:radial-gradient(60% 70% at 50% 115%,rgb(255 194 75/.55),transparent 70%),linear-gradient(160deg,#e9e0ff,#ffe1ea);border-color:transparent;transition:box-shadow .3s}.tutor-ivan{display:flex;align-items:flex-end;justify-content:center;padding:10% 12% 4%}.tutor-ivan .iv-ivan{width:100%;height:auto;max-height:100%}.tutor-avatar[data-mode=synthetic]:has(.tutor-ivan[data-mood=happy]){box-shadow:inset 0 0 0 3px var(--brand-coral),var(--shadow)}.tutor-avatar[data-mode=warming]{background:linear-gradient(135deg,var(--bg),var(--surface,var(--bg)))}.tutor-face-warming{width:100%;height:100%;background:linear-gradient(100deg,var(--border) 0,var(--bg) 40%,var(--border) 80%);background-size:200% 100%;animation:tutor-warming-shimmer 1.6s ease-in-out infinite;opacity:.5}@keyframes tutor-warming-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.tutor-face-warming{animation:none}}@media (max-width:640px){.tutor-avatar{width:72px;height:92px;left:.6rem;bottom:.6rem}}.tutor-avatar.floating{position:absolute;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:28%;height:auto;aspect-ratio:4/5;border-radius:20px;pointer-events:auto;touch-action:none;z-index:3}.tutor-avatar.floating .tutor-face,.tutor-avatar.floating .tutor-face-warming,.tutor-avatar.floating video{pointer-events:none}.tutor-avatar-grip{position:absolute;top:.4rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:3.5rem;height:1.25rem;padding:0;border:none;background:transparent;cursor:-webkit-grab;cursor:grab;opacity:0;transition:opacity .15s ease}.tutor-avatar-grip>span{width:2.25rem;height:.25rem;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 45%,transparent)}.tutor-avatar-grip:focus-visible,.tutor-avatar.floating:hover .tutor-avatar-grip{opacity:1}.tutor-avatar-grip:active{cursor:-webkit-grabbing;cursor:grabbing}.tutor-avatar-grip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-pill)}.tutor-avatar-resize{position:absolute;right:0;bottom:0;width:1.5rem;height:1.5rem;cursor:nwse-resize;opacity:0;transition:opacity .15s ease;background:linear-gradient(-45deg,transparent 0 40%,color-mix(in srgb,var(--ink) 45%,transparent) 40% 50%,transparent 50% 60%,color-mix(in srgb,var(--ink) 45%,transparent) 60% 70%,transparent 70%);border-bottom-right-radius:20px}.tutor-avatar.floating:hover .tutor-avatar-resize{opacity:1}.end-confirm-title{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:700;color:var(--ink)}.end-confirm-body{margin:0 0 var(--space-5);color:var(--muted);line-height:1.6}.end-confirm-actions{display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}.captions{height:8.5rem;overflow-y:auto;background:var(--bg);border-radius:20px;padding:1.25rem 1.5rem;font-size:1.05rem;line-height:1.6;border:1px solid var(--border);box-shadow:var(--shadow)}.captions.emphasized{border:2px solid var(--accent);background:#f5f3ff}.captions>div{margin-bottom:.5rem}.captions .tutor{color:var(--ink)}.captions .learner{color:var(--muted)}.captions strong{font-weight:600;color:var(--accent)}.captions .learner strong{color:var(--muted)}.quiz{background:var(--bg);border:2px solid var(--accent);border-radius:20px;padding:1.25rem 1.5rem;box-shadow:var(--shadow)}.quiz strong{display:block;font-size:1.15rem;color:var(--ink);margin-bottom:.75rem}.quiz.teachback{border-style:dashed}.quiz .quiz-cue{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.quiz .choices{display:flex;gap:.75rem;flex-wrap:wrap}.quiz .choices span{padding:.6rem 1.25rem;border-radius:12px;background:var(--panel);border:1px solid var(--border);font-weight:500;color:var(--ink);cursor:pointer;transition:all .2s ease}.quiz .choices span:hover{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.item{display:flex;flex-direction:column;background:var(--bg);border:2px solid #f59e0b;border-radius:20px;padding:1.25rem 1.5rem;box-shadow:var(--shadow)}.item strong{display:block;font-size:1.15rem;color:var(--ink);margin-bottom:.75rem}.item.teachback{border-style:dashed}.item .quiz-cue{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b45309;margin-bottom:.5rem}.item-choices{display:flex;flex-direction:column;gap:.5rem}.item-choice{text-align:left;padding:.75rem 1rem;border-radius:12px;background:var(--panel);border:1px solid var(--border);font:inherit;font-weight:500;color:var(--ink);cursor:pointer;transition:all .15s ease}.item-choice:focus-visible,.item-choice:hover:not(:disabled){background:#fffbeb;border-color:#f59e0b;color:#78350f}.item-input{width:100%;resize:vertical;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font:inherit}.item-input:focus-visible{outline:2px solid #f59e0b;outline-offset:1px}.item-actions{display:flex;justify-content:flex-end;margin-top:.65rem}.item-send{padding:.6rem 1.4rem;border-radius:12px;border:1px solid #f59e0b;background:#f59e0b;color:#451a03;font:inherit;font-weight:600;cursor:pointer}.item-sent{margin-top:.65rem;color:var(--muted)}.item-choice:disabled,.item-input:disabled,.item-send:disabled{opacity:.55;cursor:default}:root[data-theme=dark] .item{border-color:#b45309}:root[data-theme=dark] .item .quiz-cue{color:#fbbf24}:root[data-theme=dark] .item-choice:focus-visible,:root[data-theme=dark] .item-choice:hover:not(:disabled){background:#2a1f06;border-color:#b45309;color:#fde68a}.session-header button.sources-toggle{background:var(--bg);border:1px solid var(--border);color:var(--muted);box-shadow:0 1px 2px rgb(0 0 0/.05);display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;flex-shrink:0;font-size:.9rem;padding:.6rem 1rem}.session-header button.sources-toggle:hover{background:var(--panel);transform:none}.session-header button.sources-toggle.on,.session-header button.sources-toggle:hover{border-color:var(--accent);color:var(--accent)}.sources-count{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:.72rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.session-header button.sources-toggle.grounded .sources-count{background:var(--accent);border-color:var(--accent);color:#fff;transition:background .4s ease,color .4s ease}.sources-scrim{position:fixed;inset:0;background:rgb(15 23 42/.35);z-index:40}.sources-panel{position:fixed;z-index:41;top:5.5rem;right:1rem;width:min(26rem,calc(100vw - 2rem));max-height:min(30rem,calc(100vh - 8rem));display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border);border-radius:20px;box-shadow:0 20px 50px -12px rgb(0 0 0/.4);overflow:hidden}.sources-panel header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border)}.sources-panel header strong{font-size:.95rem;color:var(--ink)}.sources-close{background:none;border:none;padding:0 .25rem;font-size:1.4rem;line-height:1;color:var(--muted);cursor:pointer}.sources-close:hover{color:var(--ink);transform:none}.sources-body{overflow-y:auto;padding:.75rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.sources-body h3{margin:0 0 .35rem;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--ink)}.sources-body ul{margin:0;padding-left:1rem;display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;line-height:1.45;color:var(--muted)}@media (max-width:639px){.sources-panel{top:auto;bottom:1rem;left:1rem;right:1rem;width:auto;max-height:55vh}}.session-recap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem;background:var(--bg);color:var(--ink)}.recap-card{width:100%;max-width:560px;background:var(--panel);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:2rem}.recap-card h1{font-size:1.6rem;margin:0 0 1rem;color:var(--ink)}.recap-note{color:var(--muted);margin:0}.recap-summary{font-size:1.05rem;line-height:1.6;color:var(--ink);margin:0 0 1.5rem}.recap-section{margin-bottom:1.5rem}.recap-section h2{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .6rem}.recap-section ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.45rem}.recap-section li{line-height:1.5;color:var(--ink)}.recap-review{list-style:none;padding-left:0!important;flex-direction:row!important;flex-wrap:wrap}.recap-review li{border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:.25rem .8rem;font-size:.9rem;background:var(--bg)}.recap-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.75rem}.recap-next{background:var(--accent);color:#ffffff;border:none;border-radius:14px;padding:.85rem 1.25rem;font-size:1rem;font-weight:600;cursor:pointer;text-align:left}.recap-next:hover{background:var(--accent-hover)}.recap-done{background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:14px;padding:.7rem 1.25rem;font-size:.95rem;cursor:pointer}.recap-done:hover{border-color:var(--accent);color:var(--accent)}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);width:100%;margin-bottom:var(--space-5)}.page-head h1{margin:0;font-size:var(--text-2xl);font-weight:800;letter-spacing:-.03em;color:var(--ink)}@media (min-width:720px){.page-head h1{font-size:var(--text-3xl)}}.account-card,.account-contact,.account-exam{display:flex;flex-direction:column;gap:var(--space-3)}.account-heading{font-weight:800}.account-heading,.account-status{margin:0;font-size:var(--text-lg);color:var(--ink)}.account-status strong{font-weight:800;word-break:break-word}.identity{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.identity-body{flex:1 1 12rem;min-width:12rem}.identity-name{margin:0;font-size:var(--text-xl);font-weight:800;color:var(--ink);line-height:1.25;overflow-wrap:break-word}.identity-email{margin:0;font-size:var(--text-sm);color:var(--muted);overflow-wrap:anywhere}.identity-edit-btn{flex:0 0 auto}.identity-edit{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%}.identity-edit .ui-input{flex:1 1;min-width:10rem}.identity-actions{display:flex;gap:var(--space-2)}.account-note{margin:0;font-size:var(--text-sm);line-height:1.55;color:var(--muted)}.account-form{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-1) 0}@media (min-width:560px){.account-form{flex-direction:row;align-items:center}.account-form .ui-btn{flex-shrink:0}}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.8rem 1.15rem;margin:var(--space-1) 0;font-size:var(--text-sm);font-weight:700;line-height:1;color:var(--ink);text-decoration:none;background:var(--panel-raised);border:1px solid var(--border-strong);border-radius:var(--radius-pill);cursor:pointer;transition:border-color .18s ease,background-color .18s ease}.oauth-btn:hover{border-color:var(--accent)}.oauth-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.oauth-btn img{width:20px;height:auto;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;color:var(--muted);font-size:var(--text-xs)}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.account-signout-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding-top:var(--space-4);border-top:1px solid var(--border)}.account-signout-row .account-note{flex:1 1;min-width:14rem}.account-danger{display:flex;flex-direction:column;gap:var(--space-3);border-color:var(--danger-border)}.account-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.progress-page .ui-banner{margin-bottom:var(--space-4)}.glance{display:flex;flex-wrap:wrap;gap:var(--space-3);width:100%;margin-bottom:var(--space-6)}.glance-stat{flex:1 1 7rem;display:flex;flex-direction:column;gap:.15rem;padding:var(--space-3) var(--space-4);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}.glance-stat strong{font-size:var(--text-xl);font-weight:800;line-height:1.1;color:var(--ink)}.glance-stat span{font-size:var(--text-xs);color:var(--muted)}.progress-empty,.progress-note{width:100%;margin:0 0 var(--space-4);color:var(--muted);font-size:var(--text-sm)}.progress-section{width:100%;margin-bottom:var(--space-6)}.progress-section h2:not(.xp-heading):not(.upnext-title){margin:0 0 var(--space-3);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.path-continue{margin-top:var(--space-3)}.mastery-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.mastery-item-label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:.35rem;font-size:var(--text-sm);color:var(--ink)}.mastery-verified{padding:.1rem .45rem;border:1px solid var(--accent);font-size:var(--text-xs);font-weight:700;color:var(--accent)}.mastery-bar,.mastery-verified{border-radius:var(--radius-pill)}.mastery-bar{height:8px;background:var(--border);overflow:hidden}.mastery-bar-fill{height:100%;border-radius:var(--radius-pill);background:var(--accent)}.path-ahead{margin-bottom:var(--space-6)}.history-search{margin-bottom:var(--space-3)}.history-search .ui-input{width:100%}.history-search-count{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.history-card{padding:0;overflow:hidden}.history-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border:none;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.history-row:hover{background:var(--accent-tint)}.history-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.history-topic{flex:1 1;min-width:0;font-size:var(--text-md);font-weight:700;color:var(--ink)}.history-date{white-space:nowrap}.history-caret,.history-date,.history-open{font-size:var(--text-xs);color:var(--muted)}.history-open{font-weight:600;white-space:nowrap}.history-row:hover .history-open{color:var(--accent)}.progress-tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-2);overflow-x:auto;scrollbar-width:none}.progress-tabs::-webkit-scrollbar{display:none}.progress-tab{position:relative;padding:var(--space-3) 0;border:none;background:transparent;font-family:inherit;font-size:var(--text-md);font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer;transition:color .15s ease}.progress-tab:hover{color:var(--ink)}.progress-tab.active{color:var(--accent)}.progress-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.progress-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}[role=tabpanel]:focus{outline:none}[role=tabpanel]:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-md)}.habit-glance{margin-bottom:var(--space-2)}.profile-glance{margin-bottom:var(--space-5)}.profile-glance .glance-stat{min-width:7.5rem}.profile-glance .glance-stat strong.unknown{color:var(--muted)}.profile-glance .glance-stat .of{font-style:normal;font-size:.6em;font-weight:600;color:var(--muted)}.profile-glance .delta{margin-left:var(--space-2);font-style:normal;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.profile-glance .delta.up{color:var(--ok)}.profile-glance .delta.down{color:var(--warn)}.profile-block{margin-bottom:var(--space-6)}.profile-block h3{margin:0 0 var(--space-3);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.profile-note{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--muted)}.insight-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.insight{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius-md);background:var(--panel-raised)}.insight.good{border-left-color:var(--ok)}.insight.watch{border-left-color:var(--warn)}.insight.neutral{border-left-color:var(--accent)}.insight p{margin:0;color:var(--ink)}.insight-evidence{display:block;margin-top:var(--space-1);font-size:var(--text-xs);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.curve{position:relative;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel-raised)}.curve svg{display:block}.curve-grid{stroke:var(--border);stroke-width:1}.curve-axis{fill:var(--muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.curve-line{fill:none;stroke:var(--chart-1);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.curve-dot{fill:var(--chart-1);stroke:var(--panel-raised);stroke-width:2}.curve-dot.active{stroke-width:3}.curve-thin{stroke:var(--border-strong);stroke-width:2;stroke-linecap:round}.curve-crosshair{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:3 3}.curve-tip{position:absolute;transform:translate(-50%,calc(-100% - 14px));padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-raised);box-shadow:var(--elev-2);pointer-events:none;white-space:nowrap;z-index:2}.curve-tip strong{display:block;font-size:var(--text-lg);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.curve-tip span{font-size:var(--text-xs);color:var(--muted)}.curve-table{margin-top:var(--space-3);font-size:var(--text-sm)}.curve-table summary{cursor:pointer;color:var(--muted)}.curve-table table{width:100%;margin-top:var(--space-2);border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.curve-table td,.curve-table th{padding:var(--space-1) var(--space-2);text-align:right;border-bottom:1px solid var(--border)}.curve-table td:first-child,.curve-table th:first-child{text-align:left}.curve-table th{color:var(--muted);font-weight:600}.subject-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.subject-row{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-raised)}.subject-name{font-weight:600;color:var(--ink)}.subject-bars{display:flex;flex-direction:column;gap:2px;margin:var(--space-2) 0 var(--space-1)}.subject-bar{display:flex;align-items:center;gap:var(--space-2)}.subject-bar-track{flex:1 1;height:10px;border-radius:var(--radius-pill);background:var(--panel);overflow:hidden}.subject-bar-fill{height:100%;min-width:3px;border-radius:var(--radius-pill)}.subject-bar-fill.time{background:var(--chart-1)}.subject-bar-fill.score{background:var(--chart-2)}.subject-value{min-width:3rem;text-align:right;font-size:var(--text-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted)}.subject-meta{font-size:var(--text-xs);color:var(--muted)}.chart-legend{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--muted)}.chart-legend .key{width:12px;height:12px;border-radius:var(--radius-sm);flex:none}.chart-legend .key:not(:first-child){margin-left:var(--space-3)}.chart-legend .key.time{background:var(--chart-1)}.chart-legend .key.score{background:var(--chart-2)}.attention-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.attention-item{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-raised)}.attention-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.attention-concept{font-weight:600;color:var(--ink)}.attention-reason{flex:none;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--panel);color:var(--muted)}.attention-reason.fading,.attention-reason.struggling{background:var(--warn-tint);color:var(--warn)}.attention-meta{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.band-list{list-style:none;margin:var(--space-4) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.band-row{display:flex;align-items:center;gap:var(--space-3)}.band-name{min-width:7rem;font-size:var(--text-sm);color:var(--ink)}.band-bar-track{flex:1 1;height:10px;background:var(--panel);overflow:hidden}.band-bar-fill,.band-bar-track{border-radius:var(--radius-pill)}.band-bar-fill{height:100%;min-width:3px;background:var(--chart-2)}.band-value{min-width:5.5rem;text-align:right;font-size:var(--text-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.band-value em{display:block;font-style:normal;font-size:var(--text-xs);color:var(--muted)}.limits-list{margin:0;padding-left:var(--space-5);color:var(--muted);font-size:var(--text-sm)}.limits-list li+li{margin-top:var(--space-2)}.habit-week{display:flex;align-items:flex-end;gap:var(--space-2);height:7rem;padding:var(--space-4) var(--space-3) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel-raised)}.habit-day{display:flex;flex:1 1;flex-direction:column;align-items:center;gap:var(--space-1);height:100%}.habit-bar-track{display:flex;align-items:flex-end;width:100%;flex:1 1;min-height:0}.habit-bar-fill{width:100%;min-height:3px;border-radius:var(--radius-sm);background:var(--accent)}.habit-bar-fill.empty{background:var(--border-strong)}.habit-day>span{font-size:var(--text-xs);font-weight:600;color:var(--muted)}.habit-note,.habit-week-caption{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--muted)}.habit-note{padding-top:var(--space-3);border-top:1px solid var(--border)}.habit-facts{list-style:none;margin:var(--space-4) 0 0;padding:0}.habit-facts li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.habit-facts li:last-child{border-bottom:none}.habit-facts strong{font-weight:600;color:var(--ink)}.habit-facts span{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.modal-wide{width:min(56rem,calc(100vw - 2rem))}.lesson-detail{display:flex;flex-direction:column;gap:var(--space-3);max-height:calc(100dvh - 4rem);padding:var(--space-5) var(--space-5) var(--space-4)}.lesson-detail-head{display:flex;align-items:flex-start;gap:var(--space-4);padding-right:2.5rem}.lesson-detail-head h2{margin:0;font-size:var(--text-xl);font-weight:700;color:var(--ink)}.lesson-tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0}.lesson-tab{position:relative;padding:var(--space-2) 0;border:none;background:transparent;font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--muted);cursor:pointer}.lesson-tab:hover{color:var(--ink)}.lesson-tab.active{color:var(--accent)}.lesson-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.lesson-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.lesson-panel{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);min-height:0;flex:1 1;overflow-y:auto}.lesson-detail-foot{padding-top:var(--space-3);border-top:1px solid var(--border);flex-shrink:0;gap:var(--space-3)}.lesson-detail-delete,.lesson-detail-foot{display:flex;align-items:center;flex-wrap:wrap}.lesson-detail-delete{margin-left:auto;gap:var(--space-2)}.lesson-detail-error{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--danger)}.lesson-audio{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap}.lesson-audio-player{flex:1 1;min-width:0;width:100%;max-width:100%;height:2.5rem}.lesson-audio-length{font-size:var(--text-sm);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.lesson-audio-note{margin:0;font-size:var(--text-sm);color:var(--muted);flex-shrink:0}.transcript-lines{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.transcript-line{display:grid;grid-template-columns:3rem auto minmax(0,1fr);grid-gap:var(--space-2);gap:var(--space-2);margin:0;line-height:1.6}.transcript-at{font-size:var(--text-xs);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:.15rem}.transcript-line strong{font-weight:700;white-space:nowrap}.transcript-line.tutor strong{color:var(--accent)}.transcript-line.learner strong{color:var(--muted)}.transcript-sources{width:100%;padding-top:var(--space-3);border-top:1px solid var(--border);font-size:var(--text-sm)}.transcript-sources h3{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--ink)}.transcript-sources>div{margin-bottom:var(--space-2);color:var(--muted)}.transcript-sources ul{margin:var(--space-1) 0 0;padding-left:var(--space-5)}@media (max-width:639px){.transcript-line{grid-template-columns:2.5rem minmax(0,1fr)}.transcript-line span:last-child{grid-column:2}}.history-detail{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--border);padding-top:var(--space-3)}.history-summary{margin:0;font-size:var(--text-sm);line-height:1.55;color:var(--muted)}.history-takeaways{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem;font-size:var(--text-sm);color:var(--ink)}.history-review{margin:0}.progress-claim{margin-top:var(--space-4)}.progress-claim a{color:inherit;font-weight:700}.preview-panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:1.25rem 1.5rem;text-align:left}.path-list{list-style:none;margin:0;padding:0;counter-reset:none;display:flex;flex-direction:column}.path-step{display:flex;align-items:center;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--border);font-size:.98rem;color:var(--ink)}.path-step:last-child{border-bottom:none}.path-step-glyph{flex:none;width:1.6rem;height:1.6rem;display:grid;place-items:center;border-radius:999px;font-size:.85rem;font-weight:700;background:var(--bg);border:1px solid var(--border);color:var(--muted)}.path-step-label{flex:1 1}.path-step-caption{flex:none;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.path-step-mastered .path-step-glyph{background:var(--accent);border-color:var(--accent);color:#ffffff}.path-step-mastered .path-step-label{color:var(--muted)}.path-step-next .path-step-glyph{border-color:var(--accent);color:var(--accent)}.path-step-next .path-step-label{font-weight:700}.path-step-next .path-step-caption{color:var(--accent)}.path-step-in-progress .path-step-label,.path-step-upcoming .path-step-label{color:var(--muted)}.preview-assess{display:flex;align-items:flex-start;gap:.75rem;margin:.25rem -1.5rem -1.25rem;padding:.9rem 1.5rem 1rem;border-top:1px solid var(--border);border-radius:0 0 16px 16px;cursor:pointer;transition:background .15s ease}.preview-assess:hover{background:var(--bg)}.preview-assess input{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.preview-assess span{display:flex;flex-direction:column;gap:.2rem}.preview-assess strong{font-size:.98rem;color:var(--ink)}.preview-assess small{font-size:.85rem;line-height:1.4;color:var(--muted)}.preview-actions{display:flex;gap:.75rem;justify-content:center;margin-top:1.5rem;flex-wrap:wrap}.path-continue{margin-top:1rem}.board-strip{position:absolute;right:.75rem;bottom:.75rem;z-index:3;display:flex;align-items:flex-end;gap:.4rem;max-width:calc(100% - 8rem);padding:.35rem;overflow-x:auto;scrollbar-width:thin;background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.board-thumb{position:relative;flex:0 0 auto;width:104px;padding:0;background:var(--board-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer;opacity:.75;transition:opacity .12s ease,border-color .12s ease}.board-thumb.on,.board-thumb:hover{opacity:1;border-color:var(--accent)}.board-thumb-n{position:absolute;left:3px;bottom:2px;font-size:.65rem;line-height:1;padding:2px 4px;border-radius:4px;color:var(--muted);background:color-mix(in srgb,var(--panel) 80%,transparent)}.board-thumb.live{width:auto;height:58px;padding:0 .7rem;font-size:.8rem;color:var(--muted);background:var(--panel)}.board-thumb.live.on{color:var(--accent)}.board-page-view{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:var(--board-bg)}.board-page-canvas{max-height:100%}.board-page-bar{position:absolute;left:.75rem;top:.75rem;display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--muted);background:color-mix(in srgb,var(--panel) 85%,transparent);border:1px solid var(--border);border-radius:12px;padding:.3rem .35rem .3rem .7rem}.board-page-bar button{border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--ink);padding:.3rem .7rem;font-size:.8rem;cursor:pointer}.board-page-bar button:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:640px){.board-strip{max-width:calc(100% - 6rem)}.board-thumb{width:76px}.board-thumb.live{height:43px}}@media (max-width:639px){.board-strip{bottom:4rem}}.board-wrap.has-scratch .board-strip{bottom:auto;top:.75rem;right:.75rem}.board-wrap.has-scratch .board-tools{right:calc(min(40%, 26rem) + 1.5rem)}@media (max-width:639px){.board-wrap.has-scratch .board-tools{right:50%}}.session-recap{flex-direction:column;gap:1.5rem}.board-notes-section{width:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem}.board-notes-section h2{font-size:1.05rem;margin:0;color:var(--ink)}.board-notes-hint{margin:0;font-size:.9rem;color:var(--muted);text-align:center}.board-notes{width:820px;max-width:100%;overflow-x:auto;display:flex;flex-direction:column;gap:1rem}.board-note-page{width:820px;margin:0;background:var(--board-bg);border:1px solid var(--border);border-radius:14px;overflow:hidden}.board-note-page figcaption{padding:.4rem .75rem;font-size:.75rem;color:var(--muted);border-top:1px solid var(--border)}.board-notes-title{display:none}.recap-print{background:var(--bg);color:var(--ink);border:1px solid var(--border);border-radius:14px;padding:.7rem 1.25rem;font-size:.95rem;cursor:pointer}.recap-print:hover{border-color:var(--accent);color:var(--accent)}@page{size:A4 landscape;margin:10mm}.class-entry,.classroom,.host-console{--class-col:30rem}.class-entry h1,.classroom h1,.host-console h1{font-size:2.25rem;margin-top:.5rem}@media (min-width:640px){.class-entry h1,.classroom h1,.host-console h1{font-size:2.5rem}}.home .class-entry-lead,.shell-main .class-entry-lead{max-width:34rem}.mode-switch{display:inline-flex;padding:.25rem;gap:.25rem;border:1px solid var(--border);border-radius:999px;background:var(--panel)}.mode-option{padding:.5rem 1.15rem;border-radius:999px;font-size:.92rem;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;transition:all .2s ease}.mode-option:hover{color:var(--accent)}.mode-option.active{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--elev-1)}.topology-picker{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;border:none}.topology-picker legend{padding:0;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--ink)}.topology-option{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-raised);cursor:pointer;transition:border-color .18s ease,background-color .18s ease}.topology-option.selected,.topology-option:hover{border-color:var(--accent)}.topology-option.selected{background:var(--accent-tint)}.topology-option input{margin:.15rem 0 0;accent-color:var(--accent);flex-shrink:0}.topology-option span{display:flex;flex-direction:column;gap:.2rem}.topology-option strong{font-size:var(--text-sm);font-weight:700;color:var(--ink)}.topology-option small{font-size:var(--text-xs);line-height:1.5;color:var(--muted)}.mode-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.class-back{position:absolute;top:1.5rem;left:2rem;color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600;padding:.55rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--panel)}.class-back:hover{color:var(--accent);border-color:var(--accent)}.class-card{width:100%;max-width:var(--class-col,30rem);padding:1.75rem;border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:var(--shadow);text-align:left}.class-card h2{margin:0 0 1.25rem;font-size:1.15rem;font-weight:700}.class-form{gap:1rem;width:100%;max-width:var(--class-col,30rem)}.class-form,.class-form label{display:flex;flex-direction:column}.class-form label{gap:.4rem;text-align:left}.class-form input:not([type]),.class-form input[type=text]{width:100%;padding:.9rem 1.2rem;font-size:1.05rem;font-family:inherit;border-radius:14px;border:1px solid var(--border);background:var(--bg);color:var(--ink);transition:all .2s ease}.class-form input::placeholder{color:var(--muted);opacity:.6}.class-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}.class-primary{padding:.95rem 1.5rem;font-size:1.05rem;font-weight:600;font-family:inherit;border:none;border-radius:999px;background:var(--accent);color:var(--accent-contrast);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px var(--accent-tint)}.class-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px rgba(112,56,219,.3)}.class-primary:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;transform:none;box-shadow:none}.class-secondary{padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;font-family:inherit;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:all .2s ease}.class-secondary:hover{border-color:var(--accent);color:var(--accent)}.class-code code,.class-code-input,.class-mine code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.28em;text-transform:uppercase}.class-code{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.25rem 2rem;border:1px dashed var(--border);border-radius:18px;background:var(--panel)}.class-code span{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.class-code code{font-size:2.75rem;font-weight:700;color:var(--accent)}.class-role{flex-direction:row!important;align-items:center;gap:.65rem!important;font-size:.95rem;font-weight:500;text-transform:none;letter-spacing:normal;color:var(--ink);cursor:pointer}.class-role input[type=checkbox]{width:1.15rem;height:1.15rem;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.class-create-toggle{padding:.6rem 1.25rem;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--muted);font-family:inherit;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.class-create-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--panel)}.home .class-error,.shell-main .class-error{color:var(--danger,#dc2626);font-size:.9rem;font-weight:600;max-width:var(--class-col,30rem);text-align:center}.class-create,.class-mine,.class-past,.class-register,.class-roll{width:100%;max-width:var(--class-col,30rem);text-align:left}.class-create{display:flex;justify-content:center}.class-mine h2,.class-past h2,.class-register h2,.class-roll h2{margin:0;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.class-mine ul,.class-past ul,.class-register ul,.class-roll ul{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.5rem}.class-entry .shell-main a,.classroom .shell-main a:not(.class-back),.host-console .shell-main a:not(.class-back),.shell-main .class-mine a,.shell-main .class-past a{color:var(--accent);font-weight:600;text-decoration:none}.class-entry a:hover,.class-mine a:hover,.class-past a:hover,.classroom a:not(.class-back):hover,.host-console a:not(.class-back):hover{text-decoration:underline}.class-past li{color:var(--muted);font-size:.95rem}.class-mine li,.class-past li,.class-register li,.class-roll li{padding:.6rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.class-mine li,.class-register li,.class-roll li{display:flex;align-items:center;justify-content:space-between;gap:1rem}.class-register li.facilitator{border-color:var(--accent)}.role-tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700}.class-roll li:not(.joined){color:var(--muted);border-style:dashed}.class-roll li:not(.joined) .role-tag{color:var(--muted);font-weight:600}.class-mine-roll{font-size:.8rem;color:var(--muted);white-space:nowrap}.class-mine-note{margin:.75rem 0 0;font-size:.85rem;color:var(--muted);max-width:none}.class-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));grid-gap:1rem;gap:1rem;width:100%;max-width:42rem;text-align:left}.class-door{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.class-door h2{margin:0;font-size:1.1rem;font-weight:700}.class-door p{margin:0;flex:1 1;line-height:1.55}.class-door p,.class-standing{font-size:var(--text-sm);color:var(--muted)}.class-standing{margin:-.25rem 0 0}.copy-code{display:inline-flex;align-items:center;gap:.75rem}.copy-code-btn{padding:.35rem .75rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;cursor:pointer}.copy-code-btn:hover{color:var(--accent);border-color:var(--accent)}.copy-code-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.class-waiting{display:flex;align-items:center;gap:.6rem;margin:0;color:var(--muted)}.class-waiting-dot{flex:none;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);animation:class-waiting-pulse 1.6s ease-in-out infinite}@keyframes class-waiting-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.class-waiting-dot{animation:none;opacity:.7}}.class-skeleton-title{width:min(18rem,70vw);height:2.5rem;border-radius:10px;background:var(--border);opacity:.5}.class-live{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;width:100%;max-width:var(--class-col,30rem);padding:1.25rem 1.4rem;border-radius:16px;background:var(--panel);border:1px solid var(--accent);text-align:left}.class-live strong{flex:1 1 100%;font-size:1.05rem}.home .class-hint,.shell-main .class-hint{font-size:.85rem;color:var(--muted);max-width:var(--class-col,30rem);line-height:1.5}.home .class-card .class-hint,.shell-main .class-card .class-hint{margin:1rem 0 0;text-align:left}.floor-banner{padding:.55rem 1rem;text-align:center;font-weight:600;font-size:.95rem;color:var(--muted);background:var(--panel);border-bottom:1px solid var(--border)}.floor-banner.mine{color:white;background:var(--accent);border-bottom-color:var(--accent)}.floor-banner.mic-blocked{color:#b91c1c;background:#fef2f2;border-bottom-color:#fecaca;font-weight:500}:root[data-theme=dark] .floor-banner.mic-blocked{color:#fca5a5;background:rgba(185,28,28,.16);border-bottom-color:rgba(252,165,165,.3)}.class-lobby{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem;padding:.9rem 1.25rem;background:var(--panel);border-bottom:1px solid var(--border)}.class-start{padding:.6rem 1.5rem;border:none;border-radius:999px;background:var(--accent);color:var(--accent-contrast);font-weight:600;cursor:pointer}.class-start:disabled{opacity:.7;cursor:not-allowed}.session-header .hand{padding:.5rem 1.1rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-weight:600;cursor:pointer;transition:all .2s ease}.session-header .hand.up{border-color:var(--accent);color:var(--accent);background:var(--panel)}.session-header .hand.called{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.roster-rail{position:absolute;top:.75rem;left:.75rem;max-height:calc(100% - 1.5rem);overflow-y:auto;padding:.5rem;border-radius:14px;background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.85rem;z-index:2}.roster-rail ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.roster-rail li{display:flex;align-items:center;gap:.5rem;padding:.3rem .6rem;border-radius:9px;color:var(--muted);white-space:nowrap}.roster-rail li.self .roster-name{color:var(--ink);font-weight:600}.roster-rail li.facilitator .roster-name{color:var(--accent)}.roster-rail li.speaking{background:var(--accent)}.roster-rail li.speaking .roster-cue,.roster-rail li.speaking .roster-name{color:white}.roster-cue{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.roster-cue.hand{color:var(--accent)}.scratch-panel{position:absolute;right:1rem;bottom:1rem;width:min(40%,26rem);border-radius:14px;overflow:hidden;background:var(--panel);border:1px solid var(--border);box-shadow:0 12px 40px rgb(0 0 0/25%);z-index:3}.scratch-panel header{display:flex;align-items:center;justify-content:space-between;padding:.4rem .7rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted);border-bottom:1px solid var(--border)}.scratch-close{background:none;border:none;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 .2rem}.class-console-link{margin-left:auto;font-weight:700;color:var(--accent)}.home .console-headline,.shell-main .console-headline{font-size:1.3rem;font-weight:700;color:var(--ink)}.console-grid{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:34rem}.console-row{display:flex;align-items:baseline;gap:.7rem;padding:.7rem 1rem .7rem calc(1rem + 4px);border-radius:12px;--row-state:var(--border);background:linear-gradient(to right,var(--row-state) 0 4px,transparent 4px 100%),var(--panel)}.console-row.struggling{--row-state:#dc2626}.console-row.unseen{--row-state:var(--accent)}.console-row.shaky{--row-state:#f59e0b}.console-row.solid{--row-state:#16a34a}.console-row.gone{opacity:.55}.console-name{font-weight:700}.console-state,.console-weakest{font-size:.8rem;color:var(--muted)}.console-weakest{margin-left:auto;font-style:italic}.console-gone{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.phone-controls{display:flex;flex-direction:column;gap:var(--space-2)}@media (min-width:560px){.phone-controls{flex-direction:row;align-items:center}.phone-country{flex:0 1 16rem;min-width:0}.phone-number{flex:1 1 10rem;min-width:0}}.phone-country{width:100%;padding-right:.6rem;cursor:pointer}.phone-number{position:relative;display:flex;align-items:center;width:100%}.phone-dial{position:absolute;left:1rem;font-size:var(--text-md);color:var(--muted);pointer-events:none}.phone-dial,.phone-input{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.phone-input{padding-left:3.6rem}.phone-input.invalid,.phone-input.invalid:focus{border-color:var(--danger);box-shadow:none}.consent-check{display:flex;align-items:flex-start;gap:.6rem;font-size:var(--text-sm);line-height:1.5;color:var(--muted);cursor:pointer}.consent-check input{flex-shrink:0;margin-top:.15rem;width:1.05rem;height:1.05rem;accent-color:var(--accent);cursor:pointer}.account-contact-form{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.account-saved{align-self:center;font-size:var(--text-sm);color:var(--muted)}.profile-prompt{width:min(100%,42rem);margin:var(--space-4) auto 0}.profile-prompt-title{margin:0 0 .35rem;font-size:var(--text-lg);font-weight:800;color:var(--ink)}.profile-prompt-note{margin:0;font-size:var(--text-sm);line-height:1.55;color:var(--muted)}.profile-prompt-form{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.profile-prompt-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}@media print{.session-recap{display:block;min-height:0;padding:0;background:#fff}.board-notes-hint,.board-notes-section h2,.recap-card,.recap-print{display:none!important}.board-notes-section{display:block}.board-notes{overflow:visible}.board-notes-title{display:block;font-size:16pt;margin:0 0 8mm;color:#1f2a37}.board-note-page{page-break-inside:avoid;break-inside:avoid;page-break-after:always;break-after:page;border-color:#d8d4cc}.board-note-page:last-child{page-break-after:auto;break-after:auto}}.welcome{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}.welcome-rail{height:3px;background:var(--border);flex:none}.welcome-rail-fill{height:100%;background:var(--accent);transition:width .28s cubic-bezier(.22,1,.36,1)}.welcome-body{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-6) var(--space-4) var(--space-8)}.welcome-mascot{width:84px;height:84px;flex:none}.welcome-mascot svg{width:100%;height:100%}.welcome-card{width:100%;max-width:34rem;display:flex;flex-direction:column;gap:var(--space-4)}.welcome-title{font-size:var(--text-2xl);line-height:1.2;margin:0;text-align:center;outline:none}.welcome-lede{margin:0;text-align:center;color:var(--muted);font-size:var(--text-md);line-height:1.5}.welcome-input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-lg);font-family:inherit;color:var(--ink);background:var(--panel-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md)}.welcome-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.welcome-choices{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.welcome-choices:not(.welcome-choices-dense){flex-direction:column}.welcome-choice{padding:var(--space-3) var(--space-4);font-size:var(--text-md);font-family:inherit;color:var(--ink);background:var(--panel-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .12s,background .12s}.welcome-choices-dense .welcome-choice{border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);text-align:center}.welcome-choice.is-picked,.welcome-choice:hover{border-color:var(--accent)}.welcome-choice.is-picked{background:var(--accent-tint);font-weight:600}.welcome-choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.welcome-escape{margin-top:var(--space-2);border-top:1px solid var(--border);padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.welcome-escape>summary{cursor:pointer;list-style-position:inside}.welcome-escape>summary,.welcome-hint{color:var(--muted);font-size:var(--text-sm);text-align:center}.welcome-hint{margin:0}.welcome-consent{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--ink);cursor:pointer}.welcome-consent input{margin-top:.15em;flex:none}.welcome-summary{margin:0;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg)}.welcome-summary-row{display:grid;grid-template-columns:8rem 1fr;grid-gap:var(--space-3);gap:var(--space-3);align-items:baseline}.welcome-summary-row dt{color:var(--muted);font-size:var(--text-sm)}.welcome-summary-row dd{margin:0;font-weight:600}.welcome-error{margin:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--danger-tint);border:1px solid var(--danger-border);color:var(--danger);font-size:var(--text-sm);text-align:center}.welcome-actions{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2)}.welcome-skip{background:none;border:none;padding:var(--space-2);color:var(--muted);font-size:var(--text-sm);font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.welcome-skip:hover{color:var(--ink)}@media (max-width:30rem){.welcome-summary-row{grid-template-columns:1fr;gap:0}}.settings{display:grid;grid-template-columns:13.5rem 1fr;padding:0;height:min(40rem,calc(100dvh - 3rem));overflow:hidden}.settings-rail{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-4) var(--space-3);border-right:1px solid var(--border);background:var(--bg);overflow-y:auto}.settings-rail-head{margin:0 0 var(--space-1);padding-inline:.5rem;font-size:var(--text-lg);font-weight:700;color:var(--ink)}.settings-who{display:flex;align-items:center;gap:.55rem;min-width:0;padding:.5rem;margin-bottom:var(--space-2);border-bottom:1px solid var(--border)}.settings-who-body{display:flex;flex-direction:column;min-width:0}.settings-who-email,.settings-who-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-who-name{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.settings-who-email{font-size:var(--text-xs);color:var(--muted)}.settings-tabs{display:flex;flex-direction:column;gap:2px}.settings-tab{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .5rem;border:none;border-radius:var(--radius-md);background:none;font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--muted);text-align:left;cursor:pointer;transition:background-color .16s ease,color .16s ease}.settings-tab:hover{background:var(--accent-tint);color:var(--ink)}.settings-tab.selected{background:var(--accent-tint);color:var(--accent)}.settings-tab svg{flex-shrink:0}.settings-dot{width:7px;height:7px;margin-left:auto;border-radius:50%;background:var(--accent);flex-shrink:0}.settings-panel{min-width:0;padding:var(--space-5);overflow-y:auto}.settings-panel:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.settings-panel-head{padding-right:2.25rem;margin-bottom:var(--space-4)}.settings-panel-head h2{margin:0 0 .25rem;font-size:var(--text-xl);font-weight:700;color:var(--ink)}.settings-panel-head p{margin:0;font-size:var(--text-sm);color:var(--muted)}.settings-group{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--border)}.settings-group-last{padding-bottom:0;margin-bottom:0;border-bottom:none}.settings-heading{margin:0;font-size:var(--text-md);font-weight:700;color:var(--ink)}.settings-note{margin:0;font-size:var(--text-sm);line-height:1.55;color:var(--muted)}.settings-note-quiet{font-size:var(--text-xs)}.settings-form{display:flex;flex-direction:column;gap:var(--space-3)}.settings-inline-form{display:flex;flex-wrap:wrap;gap:var(--space-2)}.settings-inline-form .ui-input{flex:1 1 12rem;min-width:0}.settings-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.settings-saved{font-size:var(--text-sm);font-weight:600;color:var(--ok)}.settings-segmented{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);align-self:flex-start;max-width:100%}.settings-segment{padding:.4rem .9rem;border:none;border-radius:calc(var(--radius-md) - 3px);background:none;font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.settings-segment:hover{color:var(--ink)}.settings-segment.selected{background:var(--panel);color:var(--ink);box-shadow:var(--elev-1)}.settings-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.settings-chip{padding:.4rem .85rem;border:1px solid var(--border);border-radius:999px;background:var(--panel);font-family:inherit;font-size:var(--text-sm);font-weight:600;color:var(--muted);cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.settings-chip.selected,.settings-chip:hover{border-color:var(--accent);color:var(--accent)}.settings-chip.selected{background:var(--accent-tint)}.settings-usage-line{margin:0;font-size:var(--text-2xl);font-weight:700;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.settings-meter{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.settings-meter>span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .3s ease}.settings-plan{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md)}.settings-plan-copy{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.settings-plan-buy{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.settings-plan-price{font-weight:700;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.settings-connector{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md)}.settings-connector-body{flex:1 1;min-width:0}.settings-connector-name{margin:0 0 .15rem;font-size:var(--text-md);font-weight:700;color:var(--ink)}.settings-connector .ui-btn{flex-shrink:0}.settings-connector-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);flex-shrink:0}.settings-school-list{margin:0;padding:0 0 0 var(--space-3);list-style:none;display:flex;flex-direction:column;gap:var(--space-2);border-left:2px solid var(--border);margin-left:var(--space-3)}.settings-school{display:flex;flex-direction:column;gap:.1rem;min-width:0}.settings-school-name{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:46rem){.settings{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:min(44rem,calc(100dvh - 1.5rem))}.settings-rail{gap:var(--space-2);padding:var(--space-4) 2.75rem var(--space-2) var(--space-4);border-right:none;border-bottom:1px solid var(--border);overflow:visible}.settings-rail-head{display:none}.settings-who{margin-bottom:0;padding:0 0 var(--space-2)}.settings-tabs{flex-direction:row;gap:var(--space-1);overflow-x:auto;scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{width:auto;white-space:nowrap}.settings-panel{padding:var(--space-4)}.settings-panel-head{padding-right:0}.settings-connector,.settings-plan{flex-wrap:wrap}}.home-setup{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--muted);text-align:center}.home-setup a{color:var(--accent);font-weight:600;text-underline-offset:3px}.poll-choices{display:flex;flex-direction:column;gap:.5rem}.poll-choice{text-align:left;padding:.7rem 1rem;border-radius:12px;background:var(--panel);border:1px solid var(--border);font:inherit;font-weight:500;color:var(--ink);cursor:pointer;transition:all .15s ease}.poll-choice:focus-visible,.poll-choice:hover:not(:disabled){background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.poll-form{display:flex;gap:.5rem}.poll-input{flex:1 1;min-width:0;padding:.7rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--ink);font:inherit}.poll-send{padding:.7rem 1.25rem;border-radius:12px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);font:inherit;font-weight:600;cursor:pointer}.poll-choice:disabled,.poll-input:disabled,.poll-send:disabled{opacity:.55;cursor:default}.poll-status{display:flex;gap:.75rem;align-items:baseline;margin-top:.6rem;font-size:var(--text-sm,.85rem);color:var(--muted)}.poll-spread{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.poll-spread li{position:relative;display:flex;align-items:center;gap:.6rem;padding:.45rem .7rem;border-radius:10px;background:var(--panel);overflow:hidden}.poll-bar{position:absolute;inset:0 auto 0 0;background:var(--accent);opacity:.18;pointer-events:none}.poll-answer{flex:1 1;min-width:0}.poll-answer,.poll-spread em{position:relative;color:var(--ink)}.poll-spread em{font-style:normal;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}