@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.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}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-s.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}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-s.p.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:Bricolage Grotesque Fallback;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_a4bae9{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.__variable_a4bae9{--font-bricolage:"Bricolage Grotesque","Bricolage Grotesque Fallback"}:root{--font-body:var(--font-inter),system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:var(--font-bricolage),var(--font-body);--font-mono:ui-monospace,"Cascadia Code","SF Mono",Consolas,monospace;--bg:#f5f4f0;--grid:rgba(40,46,90,0.07);--surface:rgba(255,255,255,0.72);--surface-solid:#ffffff;--surface-2:rgba(238,236,246,0.8);--ink:#131526;--ink-2:#2b2e45;--muted:#62667a;--line:rgba(19,21,38,0.09);--line-strong:rgba(19,21,38,0.16);--accent:#5046e5;--accent-2:#9333ea;--accent-ink:#ffffff;--accent-soft:rgba(80,70,229,0.1);--accent-glow:rgba(80,70,229,0.32);--grad:linear-gradient(135deg,#5046e5,#7c3aed 55%,#a855f7);--highlight:#ffd84d;--highlight-soft:rgba(255,216,77,0.55);--success:#0f9f6e;--warn:#d48806;--danger:#d92d20;--danger-soft:rgba(217,45,32,0.09);--orb-1:rgba(99,102,241,0.3);--orb-2:rgba(168,85,247,0.22);--orb-3:rgba(255,200,60,0.22);--glyph:rgba(80,70,229,0.08);--radius-sm:8px;--radius:14px;--radius-lg:20px;--shadow-sm:0 1px 2px rgba(19,21,38,0.05);--shadow:0 1px 2px rgba(19,21,38,0.04),0 8px 24px -6px rgba(19,21,38,0.08);--shadow-lg:0 2px 4px rgba(19,21,38,0.04),0 24px 48px -12px rgba(19,21,38,0.18);--ease:cubic-bezier(0.2,0.7,0.2,1);color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0a0b14;--grid:rgba(255,255,255,0.04);--surface:rgba(23,25,42,0.72);--surface-solid:#161827;--surface-2:rgba(35,38,60,0.7);--ink:#eceaf6;--ink-2:#cfcde0;--muted:#9699b0;--line:rgba(255,255,255,0.08);--line-strong:rgba(255,255,255,0.15);--accent:#8f89ff;--accent-2:#c084fc;--accent-ink:#0a0b14;--accent-soft:rgba(143,137,255,0.13);--accent-glow:rgba(143,137,255,0.35);--grad:linear-gradient(135deg,#6d66ff,#8b5cf6 55%,#c084fc);--highlight-soft:rgba(255,216,77,0.28);--success:#34d399;--warn:#fbbf24;--danger:#f87171;--danger-soft:rgba(248,113,113,0.12);--orb-1:rgba(99,102,241,0.28);--orb-2:rgba(168,85,247,0.2);--orb-3:rgba(255,190,60,0.08);--glyph:rgba(170,165,255,0.07);--shadow-sm:none;--shadow:0 1px 0 rgba(255,255,255,0.03) inset,0 10px 30px -10px rgba(0,0,0,0.6);--shadow-lg:0 1px 0 rgba(255,255,255,0.04) inset,0 30px 60px -15px rgba(0,0,0,0.7);color-scheme:dark}}*,:after,:before{box-sizing:border-box}body,html{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:clip}::selection{background:var(--highlight-soft);color:var(--ink)}a{color:inherit}img,svg{display:block}h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0;letter-spacing:-.02em}h1{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.1rem);font-weight:700}h2{font-size:1.12rem;letter-spacing:-.01em}h2,h3{font-weight:650}h3{font-size:.98rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.container{max-width:1080px;margin:0 auto;padding:0 20px}@media (max-width:600px){.container{padding:0 16px}}.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.bg-grid{inset:-2px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse 90% 70% at 50% 20%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 20%,#000 30%,transparent 100%)}.bg-grid,.orb{position:absolute}.orb{border-radius:50%;filter:blur(70px);will-change:transform}.orb-1{width:560px;height:560px;background:var(--orb-1);top:-180px;left:-120px;animation:drift1 26s var(--ease) infinite alternate}.orb-2{width:480px;height:480px;background:var(--orb-2);top:10%;right:-160px;animation:drift2 32s var(--ease) infinite alternate}.orb-3{width:420px;height:420px;background:var(--orb-3);bottom:-200px;left:30%;animation:drift3 28s var(--ease) infinite alternate}@keyframes drift1{to{transform:translate(140px,110px) scale(1.12)}}@keyframes drift2{to{transform:translate(-120px,160px) scale(.92)}}@keyframes drift3{to{transform:translate(-160px,-120px) scale(1.1)}}.glyphs span{position:absolute;color:var(--glyph);font-family:var(--font-display);font-weight:700;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform:rotate(var(--r));animation:floaty 16s ease-in-out infinite}@keyframes floaty{0%,to{transform:translateY(0) rotate(var(--r))}50%{transform:translateY(-18px) rotate(calc(var(--r) + 6deg))}}.bg-noise{position:absolute;inset:0;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@media (max-width:700px){.glyphs span:nth-child(n+7){display:none}}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--line)}.topbar .container{justify-content:space-between;height:62px;gap:12px}.brand,.topbar .container{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;font-family:var(--font-display);font-weight:750;font-size:1.12rem;letter-spacing:-.02em}.brand svg{transition:transform .4s var(--ease)}.brand:hover svg{transform:rotate(-8deg) scale(1.06)}.brand .accent{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.nav{display:flex;gap:4px;font-size:.9rem}.nav,.nav-link{align-items:center}.nav-link{display:inline-flex;gap:7px;padding:7px 12px;border-radius:999px;text-decoration:none;color:var(--muted);transition:color .15s,background .15s;background:none;border:0;cursor:pointer;font:inherit;font-weight:550;white-space:nowrap}@media (max-width:420px){.nav>.btn{display:none}}.nav-link:hover{color:var(--ink);background:var(--surface-2)}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;color:#fff;background:var(--grad);margin-left:6px;flex-shrink:0;box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--line-strong)}.who{color:var(--muted);font-size:.85rem}main{padding:34px 0 80px}.student-view-bar{background:linear-gradient(90deg,#f7c948,#ffdd6e);color:#231a00;font-size:.9rem;position:relative;z-index:21}.student-view-bar .container{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}.student-view-bar .btn{background:#1c1a10;color:#fff;box-shadow:none}.footer{border-top:1px solid var(--line);padding:26px 0 40px;color:var(--muted);font-size:.85rem}.footer .container{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}main>.container>*>*{animation:rise .55s var(--ease) both}main>.container>*>:nth-child(2){animation-delay:.05s}main>.container>*>:nth-child(3){animation-delay:.1s}main>.container>*>:nth-child(4){animation-delay:.15s}main>.container>*>:nth-child(5){animation-delay:.2s}main>.container>*>:nth-child(6){animation-delay:.25s}main>.container>*>:nth-child(n+7){animation-delay:.3s}.grid>*,.list>li{animation:rise .5s var(--ease) both}.grid>:nth-child(2),.list>li:nth-child(2){animation-delay:.04s}.grid>:nth-child(3),.list>li:nth-child(3){animation-delay:.08s}.grid>:nth-child(4),.list>li:nth-child(4){animation-delay:.12s}.grid>:nth-child(5),.list>li:nth-child(5){animation-delay:.16s}.grid>:nth-child(n+6),.list>li:nth-child(n+6){animation-delay:.2s}.stack{display:flex;flex-direction:column;gap:18px}.row{gap:10px}.row,.spread{display:flex;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between;gap:12px}.muted{color:var(--muted)}.small{font-size:.85rem}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.danger-text{color:var(--danger)!important}.section-title{display:flex;align-items:center;gap:10px}.section-title .ico{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.section-title .count{font-size:.78rem;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 9px;font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.card.pad-lg{padding:28px}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;box-shadow:var(--shadow-sm);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .2s}a.list-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.list-item .title{font-weight:650}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:14px;gap:14px}.class-card{position:relative;display:flex;flex-direction:column;text-decoration:none;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:transform .3s var(--ease),box-shadow .3s var(--ease);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.class-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.class-card .cover{height:92px;position:relative}.class-card .cover:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 0);background-size:16px 16px}.class-card .cover .initials{position:absolute;left:18px;bottom:-22px;width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-family:var(--font-display);font-weight:750;font-size:1.15rem;background:var(--surface-solid);color:var(--ink);box-shadow:var(--shadow);z-index:1}.class-card .body{padding:32px 18px 18px;display:flex;flex-direction:column;gap:4px}.class-card .body .title{font-weight:700;font-size:1.02rem;font-family:var(--font-display)}.class-card .go{position:absolute;right:16px;top:108px;color:var(--muted);transition:transform .25s var(--ease),color .2s}.class-card:hover .go{transform:translateX(4px);color:var(--accent)}.page-hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-hero .cover{height:110px;position:relative}.page-hero .cover:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.15) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 0);background-size:18px 18px;mask-image:linear-gradient(180deg,#000,transparent);-webkit-mask-image:linear-gradient(180deg,#000,transparent)}.page-hero .content{padding:0 24px 22px;display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}.page-hero .initials{width:76px;height:76px;border-radius:20px;margin-top:-38px;display:grid;place-items:center;font-family:var(--font-display);font-weight:750;font-size:1.6rem;background:var(--surface-solid);box-shadow:var(--shadow-lg);position:relative;z-index:1;flex-shrink:0;align-self:flex-start}.page-hero .info{flex:1 1;min-width:220px;padding-top:12px}.page-head{flex-direction:column}.crumbs,.page-head{display:flex;gap:6px}.crumbs{font-size:.84rem;flex-wrap:wrap;align-items:center;margin-bottom:4px}.crumbs,.crumbs a{color:var(--muted)}.crumbs a{text-decoration:none;transition:color .15s}.crumbs a:hover{color:var(--accent)}.crumbs span{opacity:.5}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.neutral{background:var(--surface-2);color:var(--muted)}.badge.warn{background:var(--highlight-soft);color:var(--ink)}.badge.success{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.code{font-family:var(--font-mono);font-size:1.02rem;font-weight:700;letter-spacing:.16em;background:var(--surface-2);border:1px dashed var(--line-strong);padding:4px 12px;border-radius:8px}.empty{text-align:center;padding:34px 20px;color:var(--muted);border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 50%,transparent)}.empty .ico{width:44px;height:44px;border-radius:14px;margin:0 auto 10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.alert{padding:11px 14px;border-radius:10px;background:var(--danger-soft);color:var(--danger);font-size:.9rem;border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);animation:pop .3s var(--ease) both}.alert.info{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}button,input,select,textarea{font:inherit;color:inherit}input[type=date],input[type=email],input[type=password],input[type=text],input[type=url],textarea{width:100%;padding:10px 13px;border:1px solid var(--line-strong);border-radius:10px;background:color-mix(in srgb,var(--surface-solid) 80%,transparent);transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 75%,transparent)}label>select{width:100%}.school-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:var(--surface-2)}.school-label{display:inline-flex;align-items:center;gap:5px}select.select-sm{padding:3px 8px;min-width:0;max-width:240px;font-size:.82rem;border-radius:8px}select{padding:9px 12px;border:1px solid var(--line-strong);border-radius:10px;min-width:200px;background:color-mix(in srgb,var(--surface-solid) 80%,transparent);cursor:pointer}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}textarea{resize:vertical;min-height:76px}label{font-size:.85rem;font-weight:600;display:flex;flex-direction:column;gap:6px;color:var(--ink-2)}form.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}form.inline input{flex:1 1;min-width:150px;width:auto}fieldset.choice{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}fieldset.choice legend{font-size:.85rem;font-weight:600;margin-bottom:6px;color:var(--ink-2)}label.radio{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;font-size:.88rem;cursor:pointer;padding:12px 14px;border:1px solid var(--line-strong);border-radius:12px;transition:border-color .15s,background .15s}label.radio:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}label.radio input{accent-color:var(--accent);margin:3px 0 0}@media (max-width:560px){fieldset.choice{grid-template-columns:1fr}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 18px;border-radius:11px;border:1px solid transparent;cursor:pointer;background:var(--grad);background-size:140% 140%;color:#fff;font-weight:650;text-decoration:none;white-space:nowrap;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 18px -6px var(--accent-glow);transition:transform .18s var(--ease),box-shadow .25s var(--ease),background-position .4s var(--ease),opacity .15s}.btn:hover{transform:translateY(-1px);background-position:100% 50%;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 26px -6px var(--accent-glow)}.btn:active{transform:translateY(0) scale(.98)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.btn.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent);box-shadow:none}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{padding:6px 12px;font-size:.82rem;border-radius:9px}.btn.lg{padding:13px 24px;font-size:1rem;border-radius:13px}.linkbtn{background:none;border:0;padding:0;color:var(--muted);cursor:pointer;font-size:.9rem;transition:color .15s}.linkbtn:hover{color:var(--accent)}details>summary{cursor:pointer;font-weight:650;list-style:none;display:flex;align-items:center;gap:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"+";width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:var(--accent-soft);color:var(--accent);font-weight:700;transition:transform .25s var(--ease)}details[open]>summary:before{transform:rotate(45deg)}details[open]>summary~*{animation:rise .35s var(--ease) both}.landing{display:flex;flex-direction:column;gap:96px}.hero{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:48px;gap:48px;align-items:center;padding-top:24px}.hero h1{font-size:clamp(2.4rem,1.4rem + 3.6vw,4rem);line-height:1.02;letter-spacing:-.035em;margin:18px 0}.hero p.lead{font-size:1.15rem;color:var(--muted);margin:0 0 28px;max-width:520px}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--ink-2);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.eyebrow .dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:#fff}.hl{position:relative;white-space:nowrap;z-index:0}.hl:before{content:"";position:absolute;left:-4px;right:-4px;bottom:.06em;height:.42em;z-index:-1;background:var(--highlight);opacity:.85;border-radius:4px;transform:skew(-8deg) scaleX(0);transform-origin:left;animation:marker .9s .5s var(--ease) forwards}@media (prefers-color-scheme:dark){.hl:before{opacity:.35}}@keyframes marker{to{transform:skew(-8deg) scaleX(1)}}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:26px;color:var(--muted);font-size:.86rem}.trust span{display:inline-flex;align-items:center;gap:6px}.trust svg{color:var(--success)}.mock{position:relative;min-height:420px}.mock .window{position:absolute;inset:20px 30px 40px 0;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);overflow:hidden;display:flex;flex-direction:column;animation:floatA 8s ease-in-out infinite}.mock .window-bar{display:flex;align-items:center;gap:6px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}.mock .window-bar i{width:10px;height:10px;border-radius:50%;background:var(--line-strong);display:block}.mock .window-bar b{margin-left:8px;color:var(--ink);font-weight:650}.mock .msgs{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1 1}.mock .m{max-width:80%;padding:9px 12px;border-radius:14px;background:var(--surface-2);font-size:.86rem;opacity:0;animation:pop .5s var(--ease) forwards}.mock .m small{display:block;font-size:.72rem;color:var(--muted);margin-bottom:2px;font-weight:600}.mock .m.me{align-self:flex-end;background:var(--grad);color:#fff}.mock .m.me small{color:rgba(255,255,255,.75)}.mock .m:first-child{animation-delay:.6s}.mock .m:nth-child(2){animation-delay:1.3s}.mock .m:nth-child(3){animation-delay:2s}.mock .m:nth-child(4){animation-delay:2.7s}.mock .typing{display:inline-flex;gap:4px;padding:10px 12px;border-radius:14px;background:var(--surface-2);align-self:flex-start;opacity:0;animation:pop .4s 3.3s var(--ease) forwards}.mock .typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.mock .typing i:nth-child(2){animation-delay:.2s}.mock .typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.mock .float-card{position:absolute;background:var(--surface-solid);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:12px 14px;font-size:.82rem}.mock .board-mini{right:0;bottom:0;width:230px;animation:floatB 7s ease-in-out infinite}.mock .board-mini .t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:var(--surface-2);margin-top:6px;border-left:3px solid var(--line-strong)}.mock .board-mini .t.doing{border-left-color:var(--warn)}.mock .board-mini .t.done{border-left-color:var(--success);text-decoration:line-through;color:var(--muted)}.mock .code-chip{left:-18px;bottom:70px;display:flex;align-items:center;gap:10px;animation:floatC 9s ease-in-out infinite}.mock .code-chip .ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}@keyframes floatA{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes floatB{0%,to{transform:translateY(0) rotate(1.5deg)}50%{transform:translateY(-12px) rotate(-.5deg)}}@keyframes floatC{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(10px) rotate(0deg)}}.section-head{text-align:center;max-width:620px;margin:0 auto 34px}.section-head h2{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.3rem);letter-spacing:-.03em;margin:10px 0}.section-head p{color:var(--muted);margin:0;font-size:1.02rem}.kicker{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:16px;gap:16px}.feature{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.feature .ico{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;color:#fff;margin-bottom:14px;background:var(--grad);box-shadow:0 8px 20px -8px var(--accent-glow)}.feature h3{font-size:1.05rem;margin-bottom:6px}.feature p{margin:0;color:var(--muted);font-size:.92rem}.steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;counter-reset:step;position:relative}.steps .card{position:relative;padding-top:26px}.steps .num{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:750;background:var(--highlight);color:#231a00;margin-bottom:12px;box-shadow:0 6px 16px -6px rgba(255,200,40,.7)}.steps h3{margin-bottom:6px;font-size:1.05rem}.steps p{margin:0;color:var(--muted);font-size:.92rem}@media (max-width:760px){.steps{grid-template-columns:1fr}}.secure{display:grid;grid-template-columns:1fr 1.1fr;grid-gap:40px;gap:40px;align-items:center}.secure ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.secure li{display:flex;gap:12px;align-items:flex-start}.secure li .ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.secure li b{display:block;font-size:.95rem}.secure li span{color:var(--muted);font-size:.88rem}.shield-art{display:grid;place-items:center;min-height:280px;position:relative}.shield-art .ring{position:absolute;border-radius:50%;border:1px dashed var(--line-strong);animation:spin 40s linear infinite}.shield-art .ring.r1{width:260px;height:260px}.shield-art .ring.r2{width:190px;height:190px;animation-direction:reverse;animation-duration:28s}.shield-art .core{width:112px;height:112px;border-radius:30px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 20px 50px -12px var(--accent-glow);animation:floatA 6s ease-in-out infinite}.shield-art .sat{position:absolute;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--accent)}@keyframes spin{to{transform:rotate(1turn)}}.cta-band{position:relative;overflow:hidden;border-radius:24px;padding:48px 32px;text-align:center;color:#fff;background:var(--grad);box-shadow:0 30px 60px -20px var(--accent-glow)}.cta-band:before{content:"";position:absolute;inset:0;opacity:.25;background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 0);background-size:24px 24px;mask-image:radial-gradient(circle at 50% 0,#000,transparent 75%);-webkit-mask-image:radial-gradient(circle at 50% 0,#000,transparent 75%)}.cta-band h2{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.2rem);position:relative}.cta-band p{position:relative;opacity:.85;margin:10px 0 24px}.cta-band .btn{position:relative;background:#fff;color:#3b2fc9;box-shadow:0 10px 30px -10px rgba(0,0,0,.4)}@media (max-width:900px){.hero,.secure{grid-template-columns:1fr}.mock{min-height:380px;max-width:520px;width:100%;margin:0 auto}.mock .code-chip{left:6px;bottom:56px}.mock .window{right:12px}.landing{gap:72px}}.welcome h1{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem)}.welcome .date{color:var(--muted);font-size:.9rem;font-weight:550}.join-card{display:grid;grid-template-columns:auto 1fr;grid-gap:18px;gap:18px;align-items:center}.join-card .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--highlight-soft);color:var(--ink)}.join-card input{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.join-card input::placeholder{letter-spacing:normal;text-transform:none;font-family:var(--font-body)}@media (max-width:560px){.join-card{grid-template-columns:1fr}}.auth-wrap{min-height:calc(100vh - 62px - 140px);display:grid;place-items:center}.auth{width:100%;max-width:420px}.auth .card{padding:30px;box-shadow:var(--shadow-lg)}.auth-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px}.auth-head svg{filter:drop-shadow(0 10px 18px var(--accent-glow))}.seg{display:grid;grid-template-columns:1fr 1fr;padding:4px;background:var(--surface-2);border-radius:12px}.seg,.seg button{position:relative}.seg button{z-index:1;border:0;background:none;padding:8px;border-radius:9px;cursor:pointer;font-weight:650;color:var(--muted);transition:color .2s}.seg button.on{color:var(--ink)}.seg .thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:9px;background:var(--surface-solid);box-shadow:var(--shadow);transition:transform .35s var(--ease)}.seg .thumb.right{transform:translateX(100%)}.pw{position:relative}.pw input{padding-right:44px}.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px}.pw button:hover{color:var(--accent)}.fine{font-size:.78rem;color:var(--muted);text-align:center;display:flex;align-items:center;justify-content:center;gap:6px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px}.stat{display:flex;align-items:center;gap:14px}.stat .ico{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.stat .n{font-family:var(--font-display);font-size:1.7rem;font-weight:750;line-height:1}.stat .l{color:var(--muted);font-size:.82rem;margin-top:3px}.chat{display:flex;flex-direction:column;height:calc(100vh - 250px);min-height:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.chat-log{flex:1 1;overflow-y:auto;padding:18px;gap:12px;scroll-behavior:smooth}.chat-log,.msg{display:flex;flex-direction:column}.msg{max-width:76%;gap:3px;animation:pop .3s var(--ease) both}.msg .meta{font-size:.74rem;color:var(--muted);display:flex;gap:8px;align-items:center;padding:0 4px}.msg .meta span:first-child{font-weight:650;color:var(--ink-2)}.msg .bubble{padding:9px 14px;border-radius:16px 16px 16px 5px;background:var(--surface-2);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}.msg.mine{align-self:flex-end;align-items:flex-end}.msg.mine .meta span:first-child{color:var(--accent)}.msg.mine .bubble{background:var(--grad);color:#fff;border-color:transparent;border-radius:16px 16px 5px 16px;box-shadow:0 6px 16px -8px var(--accent-glow)}.msg .del{opacity:0;transition:opacity .15s}.msg:focus-within .del,.msg:hover .del{opacity:1}.chat-form{display:flex;gap:10px;padding:12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-solid) 60%,transparent);align-items:flex-end}.chat-form textarea{min-height:44px;max-height:160px;resize:none;border-radius:12px}.chat-form .btn{height:44px}.chat.chat-short{height:540px;min-height:340px}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.board-col{background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:9px;min-height:180px;transition:border-color .2s,background .2s,transform .2s var(--ease);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.board-col.over{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.board-col-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.88rem;padding:2px 4px 4px}.board-col-head span:first-child{display:inline-flex;align-items:center;gap:8px}.board-col-head span:first-child:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--muted)}.board-col:nth-child(2) .board-col-head span:first-child:before{background:var(--warn)}.board-col:nth-child(3) .board-col-head span:first-child:before{background:var(--success)}.board-col-head .count{font-size:.74rem;color:var(--muted);background:var(--surface-solid);border-radius:999px;padding:1px 9px}.board-empty{color:var(--muted);font-size:.82rem;text-align:center;padding:22px 6px;border:1.5px dashed var(--line-strong);border-radius:10px}.topic{background:var(--surface-solid);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:10px;padding:10px 12px;cursor:-webkit-grab;cursor:grab;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow-sm);animation:pop .3s var(--ease) both;transition:transform .2s var(--ease),box-shadow .2s}.topic:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.topic:active{cursor:-webkit-grabbing;cursor:grabbing}.topic-todo{border-left-color:var(--muted)}.topic-doing{border-left-color:var(--warn)}.topic-done{border-left-color:var(--success)}.topic-done .topic-title{text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb,var(--success) 60%,transparent);text-decoration-color:color-mix(in srgb,var(--success) 60%,transparent);color:var(--muted)}.topic-title{font-weight:600;font-size:.92rem;overflow-wrap:anywhere}.topic-meta{font-size:.78rem}.topic-meta .claim{color:var(--accent);font-weight:650}.topic-actions{display:flex;align-items:center;gap:8px;margin-top:2px}.icon-btn{width:28px;height:26px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:.82rem;line-height:1;padding:0;transition:border-color .15s,color .15s}.icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.icon-btn:disabled{opacity:.3;cursor:default}.group-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}.group-card{flex-direction:column;align-items:flex-start!important;gap:8px!important}.resource{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;box-shadow:var(--shadow-sm);position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.resource:before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--highlight)}.resource a.title{color:var(--accent);text-decoration:none;font-weight:650}.resource a.title:hover{text-decoration:underline}@media (max-width:860px){.board,.group-grid{grid-template-columns:1fr}.chat.chat-short{height:460px}}@media (max-width:600px){.msg{max-width:90%}.nav-link .label,.who{display:none}.nav-link{padding:8px}main{padding-top:24px}}.live-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:ping 2s infinite}@keyframes ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--success) 60%,transparent)}80%,to{box-shadow:0 0 0 7px transparent}}.class-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:22px;gap:22px;align-items:start}.teacher-panel{top:80px;display:flex;flex-direction:column;gap:12px;background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);max-height:calc(100vh - 100px);overflow-y:auto}.teacher-panel:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(90deg,#f7c948,#ffdd6e)}.teacher-panel{position:-webkit-sticky;position:sticky}.teacher-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.warn-ico{background:var(--highlight-soft)!important;color:var(--ink)!important}.teacher-posts{gap:10px}.tpost{background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--radius);padding:12px 13px;flex-direction:column;box-shadow:var(--shadow-sm)}.tpost,.tpost-head{display:flex;gap:8px}.tpost-head{align-items:center}.tpost-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.92rem}.tpost-img{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--surface-2)}.tpost-img img{width:100%;max-height:320px;object-fit:contain;transition:transform .3s var(--ease)}.tpost-img:hover img{transform:scale(1.02)}.avatar.sm{width:24px;height:24px;font-size:.7rem;margin:0;box-shadow:none;background:linear-gradient(135deg,#f7c948,#f59e0b);color:#231a00}.reactions{display:flex;gap:6px}.react{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);font-size:.85rem;transition:transform .15s var(--ease),border-color .15s,background .15s}.react:hover:not(:disabled){transform:translateY(-1px);border-color:var(--accent)}.react:active:not(:disabled){transform:scale(.94)}.react.on{background:var(--accent-soft);border-color:var(--accent)}.react:disabled{cursor:default;opacity:.85}.react .n{font-size:.75rem;font-weight:700;color:var(--muted)}.react.on .n{color:var(--accent)}.composer{display:flex;flex-direction:column;gap:10px;animation:pop .25s var(--ease) both}.composer textarea{min-height:90px}.composer-preview{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.composer-preview img{width:100%;max-height:220px;object-fit:contain;background:var(--surface-2)}.composer-preview .icon-btn{position:absolute;top:6px;right:6px;background:var(--surface-solid)}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}@media (max-width:960px){.class-layout{grid-template-columns:1fr}.teacher-panel{position:relative;top:0;max-height:none;order:-1}}.settings-card{border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}.member-row{padding:6px 10px;border-radius:8px;background:var(--surface-2)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:6px 12px;font-weight:600;font-size:.85rem;cursor:pointer;color:var(--muted);transition:all .15s}.chip .n{font-size:.72rem;opacity:.8;margin-left:2px}.chip:hover{color:var(--ink)}.chip.on,.chip:hover{border-color:var(--accent)}.chip.on{background:var(--accent);color:var(--accent-ink)}.account{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.account.banned{opacity:.7}.account .who-col{min-width:0;display:flex;flex-direction:column;gap:2px}.account-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}@media (max-width:640px){.account{grid-template-columns:auto minmax(0,1fr)}.account-actions{grid-column:1/-1;justify-content:flex-start}}.menu{position:relative}.menu>summary{list-style:none}.menu>summary:before{display:none}.menu>summary::-webkit-details-marker{display:none}.menu-pop{position:absolute;right:0;top:calc(100% + 8px);width:270px;z-index:30;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;animation:pop .2s var(--ease) both}.menu-pop button{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;padding:10px;border-radius:10px;border:0;background:none;cursor:pointer;color:var(--ink)}.menu-pop button:hover{background:var(--accent-soft)}.menu-pop button svg{margin-top:2px;color:var(--accent);flex-shrink:0}.menu-pop small{display:block;color:var(--muted);font-size:.78rem}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--bg) 55%,rgba(0,0,0,.45));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .25s var(--ease) both}.modal{max-width:520px;width:100%;animation:pop .35s .05s var(--ease) both;background:var(--surface-solid)}.note-box{padding:14px 16px;border-radius:12px;background:var(--highlight-soft);color:var(--ink);border-left:4px solid #f7c948;font-size:.95rem;line-height:1.6}.perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.9rem}.perm-list li{display:flex;align-items:center;gap:8px}.perm-list li svg{color:var(--muted)}.perm-list .no,.perm-list .ok{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex-shrink:0}.perm-list .ok{background:color-mix(in srgb,var(--success) 15%,transparent)}.perm-list .ok svg{color:var(--success)}.perm-list .no{background:var(--surface-2)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:700;text-decoration:none;transition:top .2s}.skip-link:focus{top:12px}main:focus{outline:none}.report{position:relative;display:inline-block}.report-btn{font-size:.78rem}.report-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:290px;text-align:left;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:14px;animation:pop .2s var(--ease) both;color:var(--ink);font-size:.88rem}.msg.mine .report-pop{right:auto;left:0}.chat-log .report-pop{top:auto;bottom:calc(100% + 6px)}.report-reasons{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.report-reasons label{flex-direction:row;align-items:center;gap:8px;font-weight:400;font-size:.85rem;cursor:pointer}.report-reasons input{accent-color:var(--accent);margin:0}.msg .del:focus-within,.msg .del:has(.report-pop){opacity:1}.report-card{border-left:4px solid var(--danger)}.snapshot{margin:0;padding:10px 12px;border-radius:10px;background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem;max-height:200px;overflow-y:auto}.details-list{display:grid;grid-template-columns:max-content 1fr;grid-gap:8px 18px;gap:8px 18px;margin:0}.details-list dt{color:var(--muted);font-size:.88rem}.details-list dd{margin:0;font-weight:600;overflow-wrap:anywhere}.danger-zone{border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.legal-doc{max-width:780px;margin:0 auto;line-height:1.7}.legal-doc h1{margin:8px 0 4px}.legal-doc h2{margin:28px 0 8px;font-size:1.15rem}.legal-doc h3{margin:16px 0 4px}.legal-doc li,.legal-doc p{color:var(--ink-2)}.legal-doc ol,.legal-doc ul{padding-left:22px;display:flex;flex-direction:column;gap:6px}.legal-doc a{color:var(--accent)}.legal-nav{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;margin-bottom:8px}.legal-nav a{color:var(--muted);text-decoration:none}.legal-nav a:hover{color:var(--accent)}mark.todo{background:var(--highlight);color:#231a00;padding:1px 6px;border-radius:5px;font-weight:700;font-size:.88em}.agent-box{padding:12px 16px;border-radius:10px;background:var(--surface-2);border:1px dashed var(--line-strong)}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{color:var(--accent);text-decoration:underline}.consent{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;font-size:.85rem;line-height:1.45;cursor:pointer}.consent input{margin-top:3px;accent-color:var(--accent);width:16px;height:16px;flex-shrink:0}.consent a{color:var(--accent)}.skeleton-page{animation:fade .3s .08s var(--ease) both}main>.container>.skeleton-page>*{animation:none}.sk{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(100deg,var(--surface) 30%,var(--surface-2) 50%,var(--surface) 70%);background-size:250% 100%}.sk,main .skeleton-page .sk{animation:shimmer 1.3s linear infinite}.sk-hero{height:190px;border-radius:var(--radius-lg)}.sk-ico{width:32px;height:32px;border-radius:10px}.sk-line{height:20px;border-radius:6px}.sk-row{height:66px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.glyphs span,.orb{animation:none!important}.hl:before{transform:skew(-8deg) scaleX(1)}.mock .m,.mock .typing{opacity:1}}