@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-ext-wght-normal.460bdf14.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-wght-normal.491cbc05.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-ext-wght-normal.23aae568.woff2) format("woff2-variations");unicode-range:u+1f??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-wght-normal.4449bf7a.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-vietnamese-wght-normal.113a630f.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-ext-wght-normal.3835a68e.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-wght-normal.6c596dfc.woff2) format("woff2-variations");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.7daf4077.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.29859c59.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.4a5b0cb1.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.fd17702b.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.ef62d646.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.b0c7be19.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.d9de1144.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.02ec8c39.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.ae6258df.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.00657183.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-greek-500-normal.89c6cba8.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-500-normal.96a101cf.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.3bbdce79.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.5b6505bb.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.b7bedb53.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.d0559b71.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-500-normal.af2e87f5.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-500-normal.24c9023a.woff) format("woff");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}:root{--font-sans:"Inter Variable","Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",ui-monospace,monospace;--font-display:"Inter Variable","Inter",system-ui,sans-serif;--ds-primary:#2563eb;--ds-primary-hover:#1d4ed8;--ds-primary-soft:#dbeafe;--ds-secondary:#10b981;--ds-accent:#f59e0b;--ds-danger:#ef4444;--ds-danger-soft:#fee2e2;--ds-success:#22c55e;--ds-success-soft:#dcfce7;--ds-info:#3b82f6;--ds-info-soft:#dbeafe;--ds-warn:#f59e0b;--ds-warn-soft:#fef3c7;--ds-text-main:#0f172a;--ds-text:#0f172a;--ds-text-secondary:#64748b;--ds-text-muted:#94a3b8;--ds-border:#e2e8f0;--ds-border-soft:#f1f5f9;--ds-bg:#f8fafc;--ds-card:#fff;--ds-sidebar:#111827;--ds-sidebar-hover:#1f2937;--ds-sidebar-active:rgba(37,99,235,.18);--ds-sidebar-text:#d1d5db;--ds-sidebar-muted:rgba(209,213,219,.5);--r:12px;--r-card:16px;--r-modal:24px;--r-pill:9999px;--sidebar:256px;--progress-sidebar:256px;--send-btn-bg:linear-gradient(135deg,var(--ds-primary),var(--ds-primary-hover));--send-btn-text:#fff;--send-btn-disabled-bg:rgba(15,23,42,.1);--send-btn-disabled-text:rgba(15,23,42,.35);--header-text:#f9fafb;--header-text-muted:rgba(249,250,251,.7);--border-radius-lg:var(--r-card);--border-radius-md:var(--r);--ink:var(--ds-text-main);--ink-60:var(--ds-text-secondary);--ink-30:var(--ds-text-muted);--ink-10:var(--ds-border);--color-text-primary:var(--ds-text-main);--color-text-secondary:var(--ds-text-secondary);--color-text-tertiary:var(--ds-text-muted);--color-text-info:var(--ds-info);--color-text-warning:var(--ds-warn);--color-text-success:var(--ds-success);--color-text-danger:var(--ds-danger);--color-background-primary:var(--ds-card);--color-background-secondary:var(--ds-bg);--color-background-info:var(--ds-info-soft);--color-background-warning:var(--ds-warn-soft);--color-background-success:var(--ds-success-soft);--color-background-danger:var(--ds-danger-soft);--color-border-tertiary:var(--ds-border);--color-border-secondary:rgba(15,23,42,.14);--color-border-info:rgba(59,130,246,.3);--color-border-warning:rgba(245,158,11,.3);--accent:var(--ds-primary);--accent-strong:var(--ds-primary-hover);--success:var(--ds-success);--error:var(--ds-danger);--teal:var(--ds-secondary);--teal-l:rgba(20,184,166,.12);--warn:var(--ds-danger);--warn-l:var(--ds-danger-soft);--gold:var(--ds-accent);--gold-l:var(--ds-warn-soft);--auth-logo-text:var(--header-text);--auth-logo-muted:var(--header-text-muted);--auth-kicker-text:rgba(249,250,251,.65);--auth-card-bg:var(--ds-card);--auth-card-border:var(--ds-border);--auth-field-bg:var(--ds-bg);--auth-field-text:var(--ds-text-main);--auth-field-placeholder:var(--ds-text-muted)}*,:after,:before{box-sizing:border-box;margin:0;padding:0;min-width:0}html{color-scheme:light;width:100%;max-width:100%;overflow-x:clip}html[data-theme=dark]{color-scheme:dark;--ds-text-main:#e5e7eb;--ds-text:#e5e7eb;--ds-text-secondary:#9ca3af;--ds-text-muted:#6b7280;--ds-border:#1e293b;--ds-border-soft:#0f172a;--ds-bg:#0b1220;--ds-card:#111827;--ds-primary-soft:rgba(37,99,235,.2);--ds-success-soft:rgba(34,197,94,.15);--ds-danger-soft:rgba(239,68,68,.15);--ds-info-soft:rgba(59,130,246,.15);--ds-warn-soft:rgba(245,158,11,.15);--ink:var(--ds-text-main);--ink-60:var(--ds-text-secondary);--ink-30:var(--ds-text-muted);--ink-10:var(--ds-border);--color-background-primary:var(--ds-card);--color-background-secondary:var(--ds-bg);--color-background-info:var(--ds-info-soft);--color-background-warning:var(--ds-warn-soft);--color-background-success:var(--ds-success-soft);--color-background-danger:var(--ds-danger-soft);--color-border-tertiary:var(--ds-border);--color-border-secondary:rgba(229,231,235,.12);--send-btn-bg:linear-gradient(135deg,var(--ds-primary),var(--ds-primary-hover));--send-btn-disabled-bg:rgba(229,231,235,.1);--send-btn-disabled-text:rgba(229,231,235,.35);--auth-card-bg:var(--ds-card);--auth-card-border:var(--ds-border);--auth-field-bg:#0b1220;--auth-field-text:var(--ds-text-main);--auth-field-placeholder:var(--ds-text-muted)}body{font-family:var(--font-sans);font-size:16px;color:var(--ds-text-main);background:var(--ds-bg);width:100%;max-width:100%;min-height:100vh;transition:background .2s ease,color .2s ease;overflow-x:hidden}article,aside,main,section{min-width:0}canvas,img,svg,video{max-width:100%;height:auto}blockquote,dd,figcaption,li,p{overflow-wrap:anywhere}pre{max-width:100%;overflow-x:auto;white-space:pre}html[data-theme=dark] body{background:var(--ds-bg)}button,input,select,textarea{font:inherit}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-shell.tutor-active{height:100vh;overflow:hidden}.app-shell.tutor-active .app-main{height:100%;overflow:hidden;padding:0;max-width:100%;margin:0}.app-shell.tutor-active .dashboard-layout{height:100%;overflow:hidden;gap:0}.app-shell.tutor-active .sd2-shell{height:100%;min-height:unset;gap:0;overflow:hidden}.app-shell.tutor-active .sd2-left{border-radius:0;position:static;height:100%}.app-shell.tutor-active .sd2-main{height:100%;overflow:hidden;padding:3 16px 16px;gap:12px}.app-shell.tutor-active .sd2-right{height:100%;overflow-y:auto;padding:3 16px 16px 0}.app-shell.tutor-active .sd2-workspace{height:100%;overflow:hidden;display:flex;flex-direction:column}.app-shell.tutor-active .sd2-content-grid{flex:1 1;min-height:0;overflow:hidden;padding:0 16px 16px;gap:16px}.app-shell.tutor-active .sd2-header{position:static;flex-shrink:0}.app-header{gap:12px;padding:0 max(20px,env(safe-area-inset-left)) 0 max(20px,env(safe-area-inset-right));min-height:64px;background:var(--ds-sidebar);border-bottom:1px solid hsla(0,0%,100%,.06);position:-webkit-sticky;position:sticky;top:0;z-index:20}.app-header,.header-brand{display:flex;align-items:center}.header-brand{gap:10px;margin-right:16px;flex-shrink:0}.brand-dot{width:32px;height:32px;border-radius:10px;background:var(--ds-primary);display:flex;align-items:center;justify-content:center;font-size:12px}.brand-dot,.brand-name{color:#fff;font-weight:700}.brand-name{font-family:var(--font-display);font-size:20px;line-height:1;letter-spacing:-.01em}.header-brand-img{height:32px;width:auto;display:block}.header-nav{display:flex;gap:4px;flex:1 1}.role-nav-pill{padding:5px 12px;border-radius:var(--r-pill);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid hsla(0,0%,100%,.14);color:hsla(0,0%,100%,.7);background:hsla(0,0%,100%,.06);white-space:nowrap}.role-nav-pill.role-student{border-color:rgba(37,99,235,.5);color:var(--ds-primary)}.role-nav-pill.role-teacher{border-color:rgba(20,184,166,.4);color:#5eead4}.role-nav-pill.role-admin{border-color:rgba(59,130,246,.4);color:#93c5fd}.header-right{display:flex;align-items:center;gap:8px;margin-left:auto;position:relative}.user-chip{font-size:13px;color:hsla(0,0%,100%,.8);padding:6px 12px;border-radius:var(--r-pill);background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.1);white-space:nowrap}.notification-wrap,.settings-wrap{position:relative}.notify-btn,.theme-quick-btn{font-size:12px;padding:7px 12px;border-radius:var(--border-radius-md);border:1px solid hsla(0,0%,100%,.1);background:transparent;color:var(--header-text);cursor:pointer;font-weight:500}.notify-btn{position:relative}.notify-btn.active,.notify-btn:hover,.theme-quick-btn:hover{background:hsla(0,0%,100%,.06)}.theme-quick-btn{width:38px;padding:7px 0;text-align:center}.notify-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:50%;background:#ff835f;color:#fff;font-size:10px;line-height:18px;text-align:center;border:2px solid rgba(26,24,20,.96)}.notify-popover{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,calc(100vw - 24px));max-height:420px;border-radius:14px;border:1px solid var(--color-border-tertiary);background:var(--color-background-primary);box-shadow:0 16px 40px rgba(0,0,0,.18);overflow:hidden;z-index:45}.notify-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border-tertiary);font-size:13px;font-weight:600;color:var(--color-text-primary)}.notify-head button{border:none;background:transparent;color:var(--color-text-info);cursor:pointer;font-size:12px;font-weight:600}.notify-list{max-height:340px;overflow-y:auto}.notify-item,.notify-list{display:flex;flex-direction:column}.notify-item{gap:6px;width:100%;padding:10px 12px;border:none;border-bottom:1px solid var(--color-border-tertiary);background:transparent;text-align:left;font:inherit;color:inherit;transition:background .15s}.notify-item:last-child{border-bottom:none}.notify-item-row{display:flex;align-items:flex-start;gap:8px}.notify-item-body{flex:1 1;min-width:0}.notify-item p{font-size:12px;color:var(--color-text-primary);line-height:1.45;margin:0}.notify-item-time{display:inline-block;margin-top:4px;font-size:11px;color:var(--color-text-tertiary)}.notify-item.success p{color:var(--color-text-success)}.notify-item.warning p{color:var(--color-text-warning)}.notify-item--expandable{cursor:pointer}.notify-item--expandable:hover{background:var(--color-background-secondary)}.notify-item--expandable:focus-visible{outline:2px solid var(--ds-primary);outline-offset:-2px}.notify-item-actions{flex:none;display:inline-flex;align-items:center;gap:2px}.notify-item-dismiss,.notify-item-toggle{flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:opacity .15s,background .15s,color .15s}.notify-item-dismiss{opacity:0}.notify-item:focus-within .notify-item-dismiss,.notify-item:hover .notify-item-dismiss{opacity:1}.notify-item-toggle:hover{background:var(--color-border-tertiary);color:var(--color-text-primary)}.notify-item-dismiss:hover{background:rgba(239,68,68,.12);color:var(--ds-danger)}.notify-item-details{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding:10px 12px;border-radius:8px;background:var(--color-background-secondary);border:.5px solid var(--color-border-tertiary);cursor:default}.notify-item-summary{font-size:12px;line-height:1.5;color:var(--color-text-primary);margin:0}.notify-item-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--color-text-secondary);line-height:1.45}.notify-item-list li::marker{color:var(--ds-primary)}.notify-item-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:8px;border:.5px solid var(--ds-primary);background:var(--ds-primary-soft);color:var(--ds-primary);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.notify-item-cta:hover{background:var(--ds-primary);color:#fff}.notify-empty{padding:20px 14px;text-align:center;color:var(--color-text-tertiary);font-size:12px}.settings-btn{font-size:12px;padding:7px 12px;border-radius:var(--border-radius-md);border:1px solid hsla(0,0%,100%,.1);background:transparent;color:var(--header-text);cursor:pointer;font-weight:500}.settings-btn:hover{background:hsla(0,0%,100%,.06)}.settings-popover{position:absolute;top:calc(100% + 8px);right:0;width:220px;padding:12px;border-radius:12px;border:1px solid var(--color-border-tertiary);background:var(--color-background-primary);box-shadow:0 12px 32px rgba(0,0,0,.16);z-index:40}.settings-title{font-size:13px;font-weight:700;color:var(--color-text-primary)}.settings-copy{margin-top:4px;font-size:12px;line-height:1.5;color:var(--color-text-secondary)}.theme-options{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:10px}.theme-option{padding:8px 10px;border-radius:10px;border:1px solid var(--color-border-tertiary);background:var(--color-background-secondary);color:var(--color-text-primary);font-size:12px;font-weight:600;cursor:pointer}.theme-option.active{border-color:var(--color-border-info);background:var(--color-background-info);color:var(--color-text-info)}.app-main{flex:1 1;padding:28px max(24px,env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));max-width:1520px;margin:0 auto;width:100%}.app-main--student{padding:0;max-width:100%;margin:0}.page-status{margin-bottom:14px;padding:10px 12px;border-radius:8px;font-size:12.5px;border-left:2px solid transparent}.page-status.info{background:var(--teal-l);color:var(--teal);border-left-color:var(--teal)}.page-status.success{background:var(--gold-l);color:#7a5a10;border-left-color:var(--gold)}.page-status.error{background:var(--warn-l);color:var(--warn);border-left-color:var(--warn)}.app-toast{position:absolute;top:calc(100% + 8px);right:0;z-index:200;min-width:260px;max-width:min(380px,calc(100vw - 32px));padding:11px 14px;border-radius:10px;border:1px solid var(--ds-border);box-shadow:0 8px 24px rgba(15,23,42,.12),0 2px 6px rgba(15,23,42,.06);background:var(--ds-card);color:var(--ds-text);font-size:13px;font-weight:500;white-space:nowrap;animation:toast-enter .18s ease}.app-toast.success{border-color:rgba(34,197,94,.3);background:var(--ds-card);color:#16a34a}.app-toast.info{border-color:rgba(59,130,246,.3);background:var(--ds-card);color:var(--ds-primary)}.app-toast.error{border-color:rgba(239,68,68,.3);background:var(--ds-card);color:#dc2626}html[data-theme=dark] .app-toast.success{color:#4ade80}html[data-theme=dark] .app-toast.info{color:#93c5fd}html[data-theme=dark] .app-toast.error{color:#fca5a5}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.hint-chip,.logout-btn,.new-session-btn,.send-btn,.settings-btn,.start-btn,.tab-btn,.theme-option{box-shadow:none;transition:background .14s,opacity .14s,color .14s,border-color .14s}.hint-chip:hover,.logout-btn:hover,.new-session-btn:hover,.settings-btn:hover,.tab-btn:hover,.theme-option:hover{transform:none}.nav-tabs{display:flex;gap:6px}.tab-btn{padding:8px 16px;font-size:13.5px;border-radius:var(--r);border:1px solid transparent;background:transparent;color:hsla(0,0%,100%,.6);cursor:pointer;font-weight:500;transition:background .15s,color .15s}.tab-btn:hover{background:hsla(0,0%,100%,.08);color:#fff}.tab-btn.active{background:var(--ds-primary);color:#fff;border-color:transparent}.logout-btn{font-size:13px;padding:7px 14px;border-radius:var(--r);border:1px solid hsla(0,0%,100%,.12);background:transparent;color:hsla(0,0%,100%,.7);cursor:pointer;font-weight:500;transition:background .15s}.logout-btn:hover{background:rgba(239,68,68,.18);color:#fca5a5;border-color:rgba(239,68,68,.3)}.auth-shell{height:100dvh;overflow:hidden;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;grid-gap:0;gap:0;padding:0;max-width:none;margin:0;min-width:0}.auth-shell-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.auth-top-controls{position:absolute;top:16px;right:20px;display:flex;align-items:center;gap:8px;z-index:10}.auth-ctrl-btn{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--ds-border);background:var(--ds-card);color:var(--ds-text-secondary);font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.07);transition:background .15s ease,color .15s ease,border-color .15s ease}.auth-ctrl-btn:hover{color:var(--ds-text-main);border-color:var(--ds-primary);background:var(--ds-primary-soft)}.auth-showcase{min-width:0;background:radial-gradient(ellipse at 85% 10%,rgba(37,99,235,.6) 0,transparent 48%),radial-gradient(ellipse at 15% 85%,rgba(29,78,216,.45) 0,transparent 45%),radial-gradient(ellipse at 55% 45%,rgba(37,99,235,.18) 0,transparent 60%),linear-gradient(160deg,#0c1730,#0e1f5c 45%,#080e28);color:#eef2ff;border-radius:0;padding:36px 36px 32px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;position:relative;overflow:hidden;height:100dvh}.auth-showcase:before{top:-120px;right:-120px;width:560px;height:560px;background:radial-gradient(circle,rgba(37,99,235,.35),transparent 62%)}.auth-showcase:after,.auth-showcase:before{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0}.auth-showcase:after{left:-60px;bottom:20%;width:280px;height:280px;background:radial-gradient(circle,rgba(37,99,235,.28),transparent 65%)}.auth-hero-image{position:absolute;bottom:8%;right:-16px;width:72%;z-index:1;pointer-events:none}.auth-hero-glow{position:absolute;inset:-5% -5% 0 -5%;background:radial-gradient(ellipse at 60% 70%,rgba(37,99,235,.55) 0,transparent 55%),radial-gradient(ellipse at 40% 30%,rgba(29,78,216,.35) 0,transparent 50%);filter:blur(28px);z-index:0}.auth-hero-image img{position:relative;z-index:1;width:100%;display:block;object-fit:contain;filter:drop-shadow(0 -6px 32px rgba(124,58,237,.45)) drop-shadow(0 28px 56px rgba(4,4,24,.65));mask-image:radial-gradient(ellipse 90% 85% at 60% 55%,#000 30%,rgba(0,0,0,.7) 55%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 90% 85% at 60% 55%,#000 30%,rgba(0,0,0,.7) 55%,transparent 80%)}.auth-logo-lockup{display:flex;align-items:center;gap:10px;margin-bottom:28px;position:relative;z-index:3}.auth-logo-icon{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 18px rgba(37,99,235,.55);display:flex;align-items:center;justify-content:center;margin:0;flex-shrink:0}.auth-logo-icon,.auth-wordmark{font-size:20px;color:#fff;font-weight:800}.auth-wordmark{font-family:var(--font-sans);letter-spacing:-.04em}.auth-logo-img{height:46px;width:auto;display:block}.loading-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}.loading-brand-img{height:36px;width:auto;display:block}.loading-brand-img--dark,html[data-theme=dark] .loading-brand-img--light{display:none}html[data-theme=dark] .loading-brand-img--dark{display:block}.loading-mascot{width:96px;height:96px;object-fit:contain;margin:4px 0 12px;animation:loading-mascot-bounce 1.6s ease-in-out infinite}@keyframes loading-mascot-bounce{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@media (prefers-reduced-motion:reduce){.loading-mascot{animation:none}}.auth-kicker{width:-moz-fit-content;width:fit-content;padding:6px 14px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#93c5fd;background:rgba(37,99,235,.22);border:1px solid rgba(96,165,250,.3);margin-bottom:20px}.auth-hero{position:relative;z-index:3}.auth-hero-title{font-family:var(--font-sans);font-size:clamp(38px,4.8vw,54px);font-weight:800;letter-spacing:-.04em;line-height:.97;color:#f0f4ff}.auth-hero-title em{font-style:normal;background:linear-gradient(130deg,#93c5fd 20%,#60a5fa 60%,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-hero-copy{font-size:14px;line-height:1.65;color:rgba(210,220,255,.72);margin-top:16px;max-width:380px}.auth-feature-list{display:flex;flex-direction:column;justify-content:space-evenly;flex:1 1;min-width:0;max-width:46%;position:relative;z-index:3}.auth-feature-item{display:flex;align-items:flex-start;gap:12px}.auth-feature-icon{width:64px;height:64px;border-radius:16px;background:hsla(0,0%,100%,.07);border:1px solid hsla(0,0%,100%,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 10px rgba(0,0,0,.25),inset 0 1px 0 hsla(0,0%,100%,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-feature-icon svg{width:36px;height:36px}.auth-feature-item:first-child .auth-feature-icon{color:#60a5fa;background:rgba(96,165,250,.15);border-color:rgba(96,165,250,.25)}.auth-feature-item:nth-child(2) .auth-feature-icon{color:#34d399;background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.25)}.auth-feature-item:nth-child(3) .auth-feature-icon{color:#fbbf24;background:rgba(251,191,36,.15);border-color:rgba(251,191,36,.25)}.auth-feature-text{display:flex;flex-direction:column;gap:4px}.auth-feature-title{font-size:14px;font-weight:600;color:#f0f4ff;line-height:1.2}.auth-feature-desc{font-size:12px;color:rgba(210,220,255,.6);line-height:1.5}.auth-panel{position:relative;min-width:0;width:100%;height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px 24px;overflow-y:auto;gap:10px}.auth-card-new{background:var(--auth-card-bg);border:1px solid color-mix(in srgb,var(--auth-card-border) 70%,#c7d2fe);border-radius:24px;padding:24px;box-shadow:0 24px 64px rgba(15,23,42,.12),0 4px 16px rgba(15,23,42,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-card-login{width:100%;max-width:500px}.auth-card-login .form-stack{min-height:unset}.auth-role-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;background:color-mix(in srgb,var(--ds-bg) 82%,#e8e8f0 18%);border:1px solid var(--ds-border);border-radius:999px;padding:4px;width:100%;max-width:500px;margin-bottom:12px}.auth-role-tab{height:38px;border:0;background:transparent;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--ds-text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease;white-space:nowrap}.auth-role-tab:hover:not(.active){color:var(--ds-text-main);background:rgba(37,99,235,.08)}.auth-role-tab.active{background:var(--ds-card,#fff);color:#2563eb;box-shadow:0 2px 10px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.08);font-weight:700}.auth-title{font-size:clamp(24px,3vw,32px);line-height:1.1;letter-spacing:-.03em;font-family:var(--font-sans);margin-top:6px;font-weight:700;color:var(--ds-text-main)}.auth-subtitle{margin-top:4px;margin-bottom:10px;font-size:13px;color:var(--ds-text-secondary)}.form-stack{gap:10px}.form-field,.form-stack{display:flex;flex-direction:column}.form-field{gap:5px}.form-field label{font-size:13px;color:var(--ink-60);font-weight:600}.auth-input-wrap{height:46px;border:1.5px solid var(--ink-10);border-radius:14px;background:var(--auth-field-bg);color:var(--auth-field-text);display:flex;align-items:center;gap:10px;padding:0 16px;transition:border-color .2s ease,box-shadow .2s ease}.auth-input-wrap:focus-within{border-color:rgba(37,99,235,.6);box-shadow:0 0 0 3px rgba(37,99,235,.14)}.auth-eye-btn,.auth-input-wrap svg{color:var(--ds-text-muted);flex-shrink:0}.auth-eye-btn{border:none;background:transparent;padding:0;display:flex;align-items:center;cursor:pointer;transition:color .15s ease}.auth-eye-btn:hover{color:var(--ds-text-main)}.auth-input-wrap input,.auth-input-wrap select{height:100%;border:0;padding:0;font-size:14px;background:transparent;color:var(--auth-field-text);width:100%;outline:none}.auth-input-wrap input::placeholder{color:var(--auth-field-placeholder);opacity:1}.auth-meta-row{margin-top:2px;display:flex;justify-content:space-between;align-items:center;gap:10px}.auth-checkbox{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ds-text-secondary)}.auth-checkbox input{width:14px;height:14px;accent-color:var(--ds-primary)}.auth-text-link{border:0;background:transparent;color:var(--ds-primary-hover);font-size:13px;font-weight:600;cursor:pointer}.auth-submit-btn{height:46px;padding:0 20px;font-size:14px;font-weight:700;border-radius:12px;border:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;cursor:pointer;margin-top:4px;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 18px rgba(37,99,235,.38);transition:opacity .18s ease,box-shadow .18s ease}.auth-submit-btn:hover{opacity:.93;box-shadow:0 6px 24px rgba(37,99,235,.48)}.auth-submit-btn:disabled{opacity:.55;cursor:wait}.auth-divider{margin:10px 0 8px;display:flex;align-items:center;gap:10px;color:var(--ds-text-muted);font-size:13px}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--ds-border)}.auth-social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.auth-social-btn{height:42px;border-radius:10px;border:1px solid var(--ds-border);background:color-mix(in srgb,var(--ds-card) 86%,#fff 14%);color:var(--ds-text-main);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.auth-social-logo{width:16px;height:16px;flex-shrink:0}.auth-social-btn:hover:not(:disabled){border-color:rgba(37,99,235,.36);background:rgba(37,99,235,.08)}.auth-social-btn:disabled{opacity:.6;cursor:not-allowed}.auth-social-spinner{width:16px;height:16px;border:2px solid var(--ds-border);border-top-color:var(--ds-primary);border-radius:50%;animation:auth-spin .7s linear infinite;flex-shrink:0}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-security-note{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:7px 12px;border-radius:10px;background:rgba(37,99,235,.08);color:var(--ds-primary-hover);font-size:12px;font-weight:600}.auth-switch-row{margin-top:10px;color:var(--ds-text-secondary);font-size:13px}.auth-demo-strip,.auth-switch-row{display:flex;justify-content:center;align-items:center;gap:6px}.auth-demo-strip{margin-top:0;width:min(100%,500px);flex-wrap:wrap;padding:8px 12px;border-radius:12px;border:1px solid var(--ds-border);background:color-mix(in srgb,var(--ds-card) 86%,#fff 14%)}.auth-demo-label{font-size:12px;color:var(--ds-text-secondary);margin-right:4px}.auth-demo-pill{border:0;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease}.auth-demo-pill--student{background:rgba(37,99,235,.12);color:#2563eb}.auth-demo-pill--student:hover{background:rgba(37,99,235,.22)}.auth-demo-pill--teacher{background:rgba(16,185,129,.12);color:#059669}.auth-demo-pill--teacher:hover{background:rgba(16,185,129,.22)}.card-subtle{font-size:13px;color:var(--ink-60);margin-bottom:10px}