@font-face{font-display:swap;font-family:Geist;font-style:normal;font-weight:100 900;src:url(/static/media/Geist-Variable.d8265426901e4fba757c.woff2) format("woff2-variations")}@font-face{font-family:Urban Grotesk;font-style:normal;font-weight:400;src:url(/static/media/UrbanGroteskTRIAL-Regular-BF657281a9ca800.db2fd05a87ce432d16be.otf) format("opentype")}@font-face{font-family:Urban Grotesk;font-style:normal;font-weight:700;src:url(/static/media/UrbanGroteskTRIAL-Bold-BF657281a9a0d99.a24676ff50d25e2a3c7e.otf) format("opentype")}@font-face{font-family:Urban Grotesk;font-style:normal;font-weight:500;src:url(/static/media/UrbanGroteskTRIAL-Medium-BF657281a9cb20c.afdedd50c47612c4cc13.otf) format("opentype")}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Geist,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow-x:hidden;overflow-y:auto}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.test-module-container,.test-module-container *{font-family:Helvetica Neue,Arial,sans-serif}:root{--background:#f6f7fb;--foreground:#1c2130;--card:#fff;--card-foreground:#1c2130;--muted:#eef0f6;--muted-foreground:#5d6577;--border:#e4e7ee;--input-border:#d5dae4;--primary:#3b5ab7;--primary-foreground:#fff;--primary-hover:#33509f;--primary-tint:#3b5ab714;--ring:#3b5ab766;--destructive:#d92d20;--destructive-bg:#fef3f2;--success:#12805c;--radius-ctl:0.5rem;--radius-card:1rem;--radius-hero:1.5rem;--shadow-card:0 1px 2px #1c21300a,0 4px 16px #1c21300f;--shadow-lift:0 4px 8px #1c21300f,0 12px 28px #1c21301f;--font-ui:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",sans-serif}[data-theme=dark]{--background:#18191b;--foreground:#f2f2f2;--card:#1d1e20;--card-foreground:#f2f2f2;--muted:#292a2e;--muted-foreground:#94979e;--border:#303236;--input-border:#3a3c41;--primary:#5b7bd5;--primary-foreground:#fff;--primary-hover:#6d8ade;--primary-tint:#5b7bd51f;--ring:#5b7bd580;--destructive:#f97066;--destructive-bg:#d92d201f;--success:#3ccb7f;--shadow-card:none;--shadow-lift:none}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-ctl);cursor:pointer;display:inline-flex;font:500 15px/1 var(--font-ui);gap:8px;height:44px;justify-content:center;padding:0 18px;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;-webkit-user-select:none;user-select:none}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-outline{background:var(--card);border-color:var(--input-border);color:var(--primary)}.btn-outline:hover:not(:disabled){background:var(--primary-tint);border-color:var(--primary)}.btn-ghost{background:none;color:var(--muted-foreground)}.btn-ghost:hover:not(:disabled){background:var(--muted);color:var(--foreground)}.btn-block{width:100%}.btn-lg{font-size:16px;height:48px}.btn:focus-visible,.input:focus-visible,a:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:var(--card-foreground)}.card-hover{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.card-hover:hover{border-color:var(--input-border);box-shadow:var(--shadow-lift);transform:translateY(-2px)}[data-theme=dark] .card-hover:hover{border-color:#43464c}.input{background:var(--card);border:1px solid var(--input-border);border-radius:var(--radius-ctl);box-sizing:border-box;color:var(--foreground);font:400 16px/1.4 var(--font-ui);padding:12px 14px;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;width:100%}.input::placeholder{color:var(--muted-foreground)}.input:focus{background:var(--primary-tint);border-color:var(--primary);box-shadow:0 0 0 3px var(--ring);outline:none}.badge{align-items:center;background:var(--muted);border-radius:999px;color:var(--muted-foreground);display:inline-flex;font:600 11px/1 var(--font-ui);gap:4px;letter-spacing:.04em;padding:4px 10px;text-transform:uppercase}.badge-primary{background:var(--primary-tint);color:var(--primary)}.divider-label{align-items:center;color:var(--muted-foreground);display:flex;font:400 12px/1 var(--font-ui);gap:12px;letter-spacing:.06em;text-transform:uppercase}.divider-label:after,.divider-label:before{background:var(--border);content:"";flex:1 1;height:1px}.skeleton{animation:skeleton-wave 1.4s ease infinite;background:linear-gradient(90deg,var(--muted) 25%,var(--border) 50%,var(--muted) 75%);background-size:200% 100%;border-radius:var(--radius-ctl)}@keyframes skeleton-wave{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f7fb;color:#333}.App{display:flex;flex-direction:column;min-height:100vh;width:100%}a{color:#06c;text-decoration:none}a:hover{text-decoration:underline}button{background:none;border:none;cursor:pointer;font-family:inherit}input{border:1px solid #ccc;border-radius:4px;font-size:16px;padding:10px;width:100%}.dashboard-container{background-color:var(--background);display:flex;flex-direction:column;min-height:100vh}.dashboard-nav{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:color-mix(in srgb,var(--card) 85%,#0000);border-bottom:1px solid var(--border);display:flex;gap:16px;justify-content:space-between;max-width:100vw;padding:10px 24px;position:sticky;top:0;z-index:50}.nav-brand-logo{height:30px}.nav-user{align-items:center;display:flex;gap:12px}.nav-user .user-name{color:var(--muted-foreground);font:500 13.5px/1.2 var(--font-ui)}.user-avatar{align-items:center;background-color:var(--muted);border-radius:50%;display:flex;font-size:12px;height:30px;justify-content:center;width:30px}.logout-button,.user-avatar{color:var(--muted-foreground)}.logout-button{background:none;border:1px solid var(--border);border-radius:var(--radius-ctl);cursor:pointer;font:500 13px/1 var(--font-ui);padding:9px 14px;transition:color .18s ease,border-color .18s ease,background-color .18s ease}.logout-button:hover{background:var(--destructive-bg);border-color:var(--destructive);color:var(--destructive)}.nav-switcher{align-items:center;border:1px solid var(--border);border-radius:999px;cursor:pointer;display:inline-flex;font:700 12px/1 var(--font-ui);gap:4px;letter-spacing:.04em;padding:3px 4px;-webkit-user-select:none;user-select:none}.nav-switcher[data-busy=true]{cursor:wait;opacity:.6}.nav-switcher-current{background:var(--primary);border-radius:999px;color:var(--primary-foreground);padding:3px 8px}.nav-switcher-arrow{color:var(--muted-foreground)}.nav-switcher-other{color:var(--foreground);padding:3px 8px}.welcome-banner{align-items:center;background:linear-gradient(135deg,var(--primary-tint) 0,#0000 55%),var(--card);border-bottom:1px solid var(--border);display:flex;justify-content:center;padding:30px}.welcome-banner h1{color:var(--foreground);font-size:24px;font-weight:500;letter-spacing:-.01em;margin:0 auto;max-width:1200px}.dashboard-content{flex:1 1;margin:0 auto;max-width:1200px;overflow-x:clip;padding:24px 20px;width:100%}.student-info{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin:20px auto;max-width:400px;padding:20px}.student-info h2{color:var(--foreground);font-size:20px;margin-bottom:15px}.info-card{background-color:var(--muted);border-radius:var(--radius-ctl);padding:12px}.info-card p{color:var(--muted-foreground);font-size:14px;margin:8px 0}.section-header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:20px}.section-header h2{color:var(--foreground);font-size:20px;font-weight:600;letter-spacing:-.01em;margin-right:20px}.tab-buttons{-webkit-overflow-scrolling:touch;display:flex;flex-shrink:1;gap:4px;margin-left:20px;min-width:0;overflow-x:auto;scrollbar-width:none}.tab-buttons::-webkit-scrollbar{display:none}.tab-btn{background:none;border:none;border-radius:var(--radius-ctl);color:var(--muted-foreground);cursor:pointer;font:600 12.5px/1 var(--font-ui);letter-spacing:.05em;padding:12px 14px;position:relative;text-transform:uppercase;transition:color .18s ease,background-color .18s ease;white-space:nowrap}.tab-btn:hover{background:var(--muted);color:var(--foreground)}.tab-btn.active{color:var(--primary)}.tab-btn.active:after{background-color:var(--primary);border-radius:2px;bottom:2px;content:"";height:2px;left:14px;position:absolute;right:14px}.help-link{font-size:14px;margin-left:auto}.your-tests{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:30px;padding:20px}.no-tests-message{border:1px dashed var(--border);border-radius:var(--radius-card);color:var(--muted-foreground);padding:40px 20px;text-align:center}.no-tests-message h3{color:var(--foreground);font-weight:500;margin-bottom:10px}.no-tests-message p{font-size:14px;line-height:1.6}.available-tests{margin-bottom:20px;text-align:center}.tests-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,300px);justify-content:center;margin-top:20px}.test-card{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:20px;text-align:center;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;width:300px}.test-card:hover{border-color:var(--input-border);box-shadow:var(--shadow-lift);transform:translateY(-4px)}.test-card h3{color:var(--foreground);font-size:18px;font-weight:600;letter-spacing:-.01em;margin:0 0 10px}.test-details p{color:var(--muted-foreground);font-size:14px;margin:4px 0}.start-test-btn{background-color:var(--primary);border:none;border-radius:var(--radius-ctl);color:var(--primary-foreground);cursor:pointer;font:500 14px/1.2 var(--font-ui);margin-top:10px;padding:10px 20px;transition:background-color .2s ease}.start-test-btn:hover{background-color:var(--primary-hover)}.practice-prepare{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:30px;padding:20px}.practice-options{display:flex;flex-wrap:wrap;gap:20px;justify-content:flex-start}.practice-card{align-items:center;border:1px solid var(--border);border-radius:var(--radius-card);cursor:pointer;display:flex;flex-direction:column;justify-content:center;margin-bottom:20px;max-width:350px;min-width:250px;padding:20px;text-align:center;transition:transform .2s,box-shadow .2s,border-color .2s;width:30%}.practice-card:hover{border-color:var(--input-border);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.card-icon{margin-bottom:15px}.card-icon img{height:40px;width:40px}.card-text h3{color:var(--foreground);font-size:16px;font-weight:500}.practice-in-progress{border:1px solid var(--border);border-radius:var(--radius-card);margin-bottom:20px;max-width:350px;min-width:250px;padding:20px;width:30%}.progress-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.progress-info h3{font-size:16px;font-weight:500}.progress-icon,.progress-status{color:var(--muted-foreground)}.progress-status{font-size:14px;margin-bottom:15px}.resume-btn{background-color:var(--card);border:1px solid var(--input-border);border-radius:999px;color:var(--foreground);cursor:pointer;font:500 14px/1.2 var(--font-ui);padding:8px 20px;transition:background-color .2s,border-color .2s}.resume-btn:hover{background-color:var(--muted);border-color:var(--primary)}.big-future{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:20px}.big-future h2{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-bottom:20px}.big-future-card{align-items:center;border:1px solid var(--border);border-radius:var(--radius-card);cursor:pointer;display:flex;padding:15px;transition:transform .2s,box-shadow .2s,border-color .2s}.big-future-card:hover{border-color:var(--input-border);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.bf-image{border-radius:var(--radius-ctl);height:60px;margin-right:15px;overflow:hidden;width:60px}.bf-image img{height:100%;object-fit:cover;width:100%}.bf-text h3{color:var(--foreground);font-size:16px;font-weight:500}.placeholder{background-color:var(--card);border:2px dashed var(--border);border-radius:var(--radius-card);color:var(--muted-foreground);margin-bottom:20px;padding:40px;text-align:center}.dashboard-footer{color:var(--muted-foreground);font-size:12px;margin-top:auto;padding:10px 20px;text-align:right}.ielts-checker,.past-essays,.past-results{margin-top:60px}.ielts-checker h2,.past-essays h2,.past-results h2{margin-bottom:20px}.survey-poster{margin-bottom:24px}.poster-card{align-items:center;background:linear-gradient(135deg,var(--primary-tint) 0,#0000 60%),var(--card);border:1px solid var(--border);border-radius:var(--radius-card);display:flex;gap:16px;justify-content:space-between;padding:16px 20px}.poster-info .poster-title{color:var(--foreground);font-size:18px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}.poster-info .poster-desc{color:var(--muted-foreground);font-size:14px;margin:0}.poster-actions{align-items:center;display:flex;gap:12px}.survey-status-pill{background:var(--card);border:1px solid var(--border);border-radius:999px;color:var(--muted-foreground);font-size:12px;font-weight:600;padding:6px 10px}.survey-status-pill.done{background:color-mix(in srgb,var(--success) 12%,#0000);border-color:color-mix(in srgb,var(--success) 30%,#0000);color:var(--success)}.survey-status-pill.pending{background:color-mix(in srgb,#ef6c00 12%,#0000);border-color:color-mix(in srgb,#ef6c00 30%,#0000);color:#ef6c00}.poster-cta{background-color:var(--primary);border:none;border-radius:var(--radius-ctl);color:var(--primary-foreground);cursor:pointer;font:500 14px/1.2 var(--font-ui);padding:10px 14px;transition:background-color .2s ease}.poster-cta:hover{background-color:var(--primary-hover)}.dash-recovery{background:linear-gradient(135deg,var(--primary-tint) 0,#0000 60%),var(--card);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:16px;padding:16px 20px}.dash-recovery-head{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:12px}.dash-recovery-title{align-items:center;color:var(--foreground);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0}.dash-recovery-safe{align-items:center;background:color-mix(in srgb,var(--success) 12%,#0000);border:1px solid color-mix(in srgb,var(--success) 30%,#0000);border-radius:999px;color:var(--success);display:inline-flex;font-size:12.5px;font-weight:600;gap:6px;padding:4px 10px}.dash-recovery-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.dash-recovery-row{align-items:center;display:flex;gap:16px;justify-content:space-between}.dash-recovery-info{flex:1 1;min-width:0}.dash-recovery-name{color:var(--foreground);display:block;font-size:14.5px;font-weight:600}.dash-recovery-meta{color:var(--muted-foreground);display:block;font-size:13px;margin-top:2px}.dash-recovery-bar{background:var(--border);border-radius:999px;display:block;height:6px;margin-top:8px;max-width:320px;overflow:hidden;width:100%}.dash-recovery-bar-fill{background:var(--primary);border-radius:999px;display:block;height:100%}.dash-recovery-cta{flex-shrink:0;height:40px;padding:0 18px}@media (max-width:768px){.dash-recovery-row{align-items:stretch;flex-direction:column}.dash-recovery-cta{width:100%}.poster-card,.practice-options{flex-direction:column}.poster-card{align-items:flex-start}.poster-actions{justify-content:space-between;width:100%}.section-header{align-items:flex-start;flex-direction:column}.help-link{margin-left:0;margin-top:10px}.tab-buttons{gap:2px;margin:0}.tab-btn{flex-shrink:0;font-size:11px;padding:8px 6px;white-space:nowrap}.dashboard-nav{flex-wrap:nowrap;gap:4px;padding:8px}.nav-brand-logo{flex-shrink:0;height:22px}.nav-user{align-items:center;flex-shrink:0;flex-wrap:nowrap;gap:4px}.nav-user .user-name{display:none}.logout-button{font-size:10px;order:10;padding:6px 8px;white-space:nowrap}.tests-list{grid-template-columns:1fr}.test-card{width:100%}}@media (max-width:480px){.welcome-banner h1{font-size:18px}.dashboard-nav{padding:8px 10px}.tab-buttons{gap:2px;margin:0}.tab-btn{font-size:10px;padding:6px 4px}.dashboard-content{padding:12px}}.dash-hero{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-hero);box-shadow:var(--shadow-card);margin-bottom:24px;overflow:hidden;padding:28px 28px 24px;position:relative}.dash-hero-glow{inset:0;pointer-events:none;position:absolute}.dash-hero-blob{border-radius:50%;filter:blur(60px);opacity:.5;position:absolute;will-change:transform}.dash-hero-blob-1{background:color-mix(in srgb,var(--primary) 26%,#0000);height:380px;right:-6%;top:-55%;width:380px}.dash-hero-blob-2{background:color-mix(in srgb,var(--primary) 14%,#0000);bottom:-60%;height:260px;left:24%;width:260px}[data-theme=dark] .dash-hero-blob-1{opacity:.38}[data-theme=dark] .dash-hero-blob-2{opacity:.3}.dash-hero-top{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:22px;position:relative}.dash-hero-title{color:var(--foreground);font-size:clamp(24px,3vw,32px);font-weight:550;letter-spacing:-.025em;line-height:1.15;margin:0}.dash-hero-sub{align-items:center;color:var(--muted-foreground);display:flex;flex-wrap:wrap;font-size:14.5px;gap:8px;margin:6px 0 0}.dash-hero-sub .dot{color:var(--input-border)}.dash-cta{align-items:center;background:linear-gradient(135deg,var(--primary) 0,color-mix(in srgb,var(--primary) 78%,#1a2c66) 100%);border:none;border-radius:var(--radius-ctl);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 32%,#0000);color:var(--primary-foreground);cursor:pointer;display:inline-flex;font:500 15.5px/1 var(--font-ui);gap:10px;height:48px;overflow:hidden;padding:0 22px;position:relative;transition:box-shadow .2s ease,filter .2s ease}.dash-cta:after{background:linear-gradient(105deg,#0000 40%,#ffffff47 50%,#0000 60%);content:"";inset:0;position:absolute;transform:translateX(-120%);transition:transform .6s ease}.dash-cta:hover{box-shadow:0 8px 22px color-mix(in srgb,var(--primary) 45%,#0000)}.dash-cta:hover:after{transform:translateX(120%)}.dash-cta:active{filter:brightness(.96)}@media (prefers-reduced-motion:reduce){.dash-cta:after{display:none}}.dash-hero-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));position:relative}.stat-chip{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:color-mix(in srgb,var(--card) 62%,#0000);border:1px solid var(--border);border-radius:calc(var(--radius-ctl) + 4px);cursor:pointer;display:flex;font-family:var(--font-ui);gap:12px;padding:12px 14px;text-align:left;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.stat-chip:hover{border-color:var(--primary);box-shadow:var(--shadow-card);transform:translateY(-1px)}.stat-chip:active{transform:translateY(0)}.stat-chip-icon{align-items:center;background:var(--primary-tint);border-radius:10px;color:var(--primary);display:inline-flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.stat-chip-body{display:flex;flex-direction:column;gap:1px;min-width:0}.stat-chip-value{color:var(--foreground);font-size:19px;font-weight:650;letter-spacing:-.01em;line-height:1.1}.stat-chip-label{color:var(--muted-foreground);font-size:11.5px;font-weight:500;letter-spacing:.02em;white-space:nowrap}.dash-grid{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:minmax(0,1fr) 340px}.dash-main,.dash-rail{min-width:0}.dash-rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:76px}@media (max-width:1023px){.dash-grid{align-items:stretch;display:flex;flex-direction:column;gap:0}.dash-main,.dash-rail{display:contents}.dash-main>*,.dash-rail>*{margin-bottom:16px;max-width:100%;min-width:0}.dash-rail>.rail-survey{order:1}.dash-main>.available-tests{order:2}.dash-rail>*{order:3}.dash-main>.past-results{margin-top:8px;order:4}.dash-rail>.support-row{order:5}}.nav-burger{display:none!important}.nav-menu{display:none}@media (min-width:1024px) and (max-width:1199px){.nav-user .user-name{display:none}}@media (max-width:1023px){.dashboard-nav .tab-buttons{display:none}.nav-burger{display:inline-flex!important}.nav-user .user-name,.nav-user>.logout-button,.nav-user>.nav-switcher{display:none}.nav-menu{background:var(--card);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lift);display:flex;flex-direction:column;gap:2px;left:0;padding:8px 12px 14px;position:absolute;right:0;top:100%}[data-theme=dark] .nav-menu{box-shadow:0 16px 32px #00000073}.nav-menu .tab-btn{font-size:13px;padding:13px 12px;text-align:left;width:100%}.nav-menu .tab-btn.active{background:var(--primary-tint)}.nav-menu .tab-btn.active:after{display:none}.nav-menu .nav-switcher{align-self:flex-start;margin:8px 12px 0}.nav-menu-footer{align-items:center;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:space-between;margin-top:8px;padding:12px 12px 0}.nav-menu-user{color:var(--muted-foreground);font:500 13px/1.3 var(--font-ui);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-menu .logout-button{display:inline-block;flex-shrink:0;font-size:13px;padding:9px 14px}}.section-head{flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}.section-head,.section-head h2{align-items:center;display:flex}.section-head h2{color:var(--foreground);font-size:20px;font-weight:600;gap:10px;letter-spacing:-.01em;margin:0}.section-head .count-badge{font-feature-settings:"tnum";background:var(--primary-tint);border-radius:999px;color:var(--primary);font:600 12px/1 var(--font-ui);font-variant-numeric:tabular-nums;padding:4px 9px}.section-link{align-items:center;background:none;border:none;border-radius:var(--radius-ctl);color:var(--muted-foreground);cursor:pointer;display:inline-flex;font:500 13.5px/1 var(--font-ui);gap:4px;padding:8px 10px;transition:color .18s ease,background-color .18s ease}.section-link:hover{background:var(--primary-tint);color:var(--primary)}.available-tests{text-align:left}.available-tests .tests-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));justify-content:start;margin-top:0}.available-tests .test-card{display:flex;flex-direction:column;text-align:left;width:auto}.test-meta{align-items:center;color:var(--muted-foreground);display:flex;flex-wrap:wrap;font-size:13px;gap:8px;margin:2px 0 14px}.available-tests .start-test-btn{margin-top:auto;width:100%}.test-card.is-done{opacity:.75}.test-card.is-done .start-test-btn{background:none;border:1px solid var(--border);color:var(--success);cursor:default}.empty-state{align-items:center;border:1px dashed var(--border);border-radius:var(--radius-card);display:flex;flex-direction:column;gap:8px;padding:44px 24px;text-align:center}.empty-state-icon{color:var(--primary);opacity:.7}.empty-state h3{color:var(--foreground);font-size:16.5px;font-weight:600;margin:4px 0 0}.empty-state p{color:var(--muted-foreground);font-size:14px;margin:0 0 12px;max-width:380px}.rail-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:16px 18px}.rail-card-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.rail-card-head h3{align-items:center;color:var(--foreground);display:flex;font-size:14.5px;font-weight:600;gap:8px;letter-spacing:-.005em;margin:0}.rail-survey{border-left:3px solid var(--primary)}.rail-survey p{color:var(--muted-foreground);font-size:13px;line-height:1.5;margin:0 0 12px}.rail-survey .btn{font-size:14px;height:38px}.rail-activity-row{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:9px 0}.rail-activity-row:last-child{border-bottom:none;padding-bottom:0}.rail-activity-name{color:var(--foreground);font-size:13.5px;font-weight:500;line-height:1.3}.rail-activity-meta{color:var(--muted-foreground);font-size:12px}.support-row{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);cursor:pointer;display:flex;font-family:var(--font-ui);gap:12px;padding:14px 18px;transition:border-color .18s ease,box-shadow .18s ease;width:100%}.support-row:hover{border-color:var(--primary);box-shadow:var(--shadow-lift)}.support-row-icon{align-items:center;background:var(--primary-tint);border-radius:10px;color:var(--primary);display:inline-flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.support-row-text{flex:1 1;min-width:0;text-align:left}.support-row-title{color:var(--foreground);display:block;font-size:14px;font-weight:600}.support-row-sub{color:var(--muted-foreground);display:block;font-size:12px}.support-row-chevron{color:var(--muted-foreground);display:inline-flex}.support-row .unread-pill{font-feature-settings:"tnum";background:var(--destructive);border-radius:999px;color:#fff;font:700 11px/1 var(--font-ui);font-variant-numeric:tabular-nums;padding:4px 8px}@media (max-width:640px){.dash-hero{padding:20px 18px 18px}.dash-hero-stats{grid-template-columns:1fr 1fr}.dash-cta{justify-content:center;width:100%}}:root{--bg-primary:#f5f7fb;--bg-secondary:#fff;--bg-card:#fff;--bg-input:#fff;--bg-nav:#fff;--bg-hover:#f5f5f5;--bg-selected:#fff;--bg-badge:#eee;--bg-test-header:#e7edf7;--bg-test-footer:#fff;--bg-question-bar:#f0f0f0;--bg-question-num:#000;--text-primary:#333;--text-secondary:#555;--text-muted:#666;--text-on-dark:#fff;--border-color:#e0e0e0;--border-light:#eee;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 2px 4px #0000001a;--shadow-lg:0 4px 12px #0003;--accent-primary:#3b5ab7;--accent-hover:#2a3b8c;--answer-border:#555;--answer-selected-border:#384cc0;--icon-color:#555}[data-theme=dark]{--bg-primary:#121212;--bg-secondary:#1e1e1e;--bg-card:#1e1e1e;--bg-input:#2a2a2a;--bg-nav:#1a1a2e;--bg-hover:#2a2a2a;--bg-selected:#2a2a2a;--bg-badge:#333;--bg-test-header:#1a1a2e;--bg-test-footer:#1a1a2e;--bg-question-bar:#1e1e2e;--bg-question-num:#e0e0e0;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--text-muted:#888;--text-on-dark:#fff;--border-color:#2a2a3a;--border-light:#2a2a2a;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 2px 4px #0006;--shadow-lg:0 4px 12px #00000080;--accent-primary:#5b7bd5;--accent-hover:#4a6ac4;--answer-border:#3a3a4a;--answer-selected-border:#5b7bd5;--icon-color:#b0b0b0}[data-theme=dark] body{color:#333;color:var(--text-primary)}[data-theme=dark] .App,[data-theme=dark] .test-module-container,[data-theme=dark] body{background-color:#f5f7fb;background-color:var(--bg-primary)}[data-theme=dark] .test-header{background-color:#e7edf7;background-color:var(--bg-test-header);border-bottom-color:#e0e0e0;border-bottom-color:var(--border-color)}[data-theme=dark] .test-header-title,[data-theme=dark] .timer-display,[data-theme=dark] .tool-button{color:#333;color:var(--text-primary)}[data-theme=dark] .test-content{background-color:#f5f7fb;background-color:var(--bg-primary)}[data-theme=dark] .reading-section{background-color:#fff;background-color:var(--bg-secondary);border-color:#e0e0e0;border-color:var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .question-section{background-color:#f5f7fb;background-color:var(--bg-primary)}[data-theme=dark] .answer-option,[data-theme=dark] .question-passage,[data-theme=dark] .question-text{color:#333;color:var(--text-primary)}[data-theme=dark] .answer-option{background-color:#fff;background-color:var(--bg-secondary);border-color:#555;border-color:var(--answer-border)}[data-theme=dark] .answer-option:hover{background-color:#f5f5f5;background-color:var(--bg-hover);border-color:#3b5ab7;border-color:var(--accent-primary)}[data-theme=dark] .answer-option.selected{background-color:#1e2a4a;border-color:#384cc0;border-color:var(--answer-selected-border)}[data-theme=dark] .answer-option .option-letter{border-color:#e0e0e0;border-color:var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .answer-option.selected .option-letter{background-color:#3b5ab7;background-color:var(--accent-primary);border-color:#3b5ab7;border-color:var(--accent-primary);color:#fff;color:var(--text-on-dark)}[data-theme=dark] .answer-option .option-text,[data-theme=dark] .question-bar{color:#333;color:var(--text-primary)}[data-theme=dark] .question-bar{background-color:#f0f0f0;background-color:var(--bg-question-bar);border-bottom-color:#e0e0e0;border-bottom-color:var(--border-color)}[data-theme=dark] .mark-review-container,[data-theme=dark] .mark-review-container label{color:#333;color:var(--text-primary)}[data-theme=dark] .question-number-box{background-color:#000;background-color:var(--bg-question-num);color:#f5f7fb;color:var(--bg-primary)}[data-theme=dark] .test-footer{background-color:#fff;background-color:var(--bg-test-footer);border-top-color:#e0e0e0;border-top-color:var(--border-color);box-shadow:0 -2px 8px #0006}[data-theme=dark] .test-footer .user-info .user-name{color:#555;color:var(--text-secondary)}[data-theme=dark] .nav-button{color:#fff;color:var(--text-on-dark)}[data-theme=dark] .question-selector-button{background-color:#333;background-color:var(--text-primary);color:#f5f7fb;color:var(--bg-primary)}[data-theme=dark] .question-dropdown{background-color:#fff;background-color:var(--bg-card);box-shadow:0 4px 12px #0003;box-shadow:var(--shadow-lg)}[data-theme=dark] .modal-content,[data-theme=dark] .modal-header h2{color:#333;color:var(--text-primary)}[data-theme=dark] .modal-content hr{background-color:#e0e0e0;background-color:var(--border-color)}[data-theme=dark] .question-grid-item{background-color:#fff;background-color:var(--bg-secondary);border-color:#e0e0e0;border-color:var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .question-grid-item.answered{background-color:#1a3a2a}[data-theme=dark] .question-grid-item.review{background-color:#3a2a1a}[data-theme=dark] .student-answer-input{background-color:#fff;background-color:var(--bg-input)}[data-theme=dark] .student-answer-input,[data-theme=dark] .student-answer-preview{border-color:#e0e0e0;border-color:var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .student-answer-preview{background:#fff;background:var(--bg-secondary)}[data-theme=dark] .mark-review-label,[data-theme=dark] .passage-text,[data-theme=dark] .review-page{color:#333;color:var(--text-primary)}[data-theme=dark] .review-page{background-color:#fff;background-color:var(--bg-secondary)}[data-theme=dark] .review-page h2{color:#333;color:var(--text-primary)}[data-theme=dark] .review-section{background-color:#fff;background-color:var(--bg-card)}[data-theme=dark] .break-screen,[data-theme=dark] .completion-screen,[data-theme=dark] .transition-screen{background-color:#f5f7fb;background-color:var(--bg-primary);color:#333;color:var(--text-primary)}[data-theme=dark] .MuiPaper-root{background-color:#fff!important;background-color:var(--bg-card)!important;color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiTableCell-root{border-bottom-color:#e0e0e0!important;border-bottom-color:var(--border-color)!important;color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiTableCell-head{background-color:#fff!important;background-color:var(--bg-secondary)!important;color:#555!important;color:var(--text-secondary)!important}[data-theme=dark] .MuiDialog-paper{background-color:#fff!important;background-color:var(--bg-card)!important}[data-theme=dark] .MuiDialogContent-root,[data-theme=dark] .MuiDialogTitle-root{color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiCard-root{background-color:#fff!important;background-color:var(--bg-card)!important;border-color:#e0e0e0!important;border-color:var(--border-color)!important}[data-theme=dark] .MuiCardContent-root{color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiTypography-root{color:inherit}[data-theme=dark] .MuiButton-outlined{border-color:#3b5ab7!important;border-color:var(--accent-primary)!important;color:#3b5ab7!important;color:var(--accent-primary)!important}[data-theme=dark] .MuiToggleButton-root{border-color:#e0e0e0!important;border-color:var(--border-color)!important;color:#555!important;color:var(--text-secondary)!important}[data-theme=dark] .MuiToggleButton-root.Mui-selected{background-color:#3b5ab7!important;background-color:var(--accent-primary)!important;color:#fff!important;color:var(--text-on-dark)!important}[data-theme=dark] .MuiInputBase-root{color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiOutlinedInput-notchedOutline{border-color:#e0e0e0!important;border-color:var(--border-color)!important}[data-theme=dark] .MuiInputLabel-root{color:#666!important;color:var(--text-muted)!important}[data-theme=dark] .MuiIconButton-root{color:#555!important;color:var(--icon-color)!important}[data-theme=dark] .MuiIconButton-colorPrimary{color:#3b5ab7!important;color:var(--accent-primary)!important}[data-theme=dark] .MuiIconButton-colorError{color:#f44336!important}[data-theme=dark] .MuiTab-root{color:#666!important;color:var(--text-muted)!important}[data-theme=dark] .MuiTab-root.Mui-selected{color:#3b5ab7!important;color:var(--accent-primary)!important}[data-theme=dark] .MuiTabs-indicator{background-color:#3b5ab7!important;background-color:var(--accent-primary)!important}[data-theme=dark] .MuiDivider-root{border-color:#e0e0e0!important;border-color:var(--border-color)!important}[data-theme=dark] .MuiLinearProgress-root{background-color:#e0e0e0!important;background-color:var(--border-color)!important}[data-theme=dark] .MuiAlert-root{color:inherit}[data-theme=dark] .MuiSelect-icon{color:#666!important;color:var(--text-muted)!important}[data-theme=dark] .MuiMenuItem-root{color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiMenuItem-root:hover{background-color:#f5f5f5!important;background-color:var(--bg-hover)!important}[data-theme=dark] .MuiMenu-paper{background-color:#fff!important;background-color:var(--bg-card)!important}[data-theme=dark] .MuiAvatar-root{background-color:#3b5ab7!important;background-color:var(--accent-primary)!important}[data-theme=dark] .MuiTextField-root .MuiInputBase-root{background-color:#fff!important;background-color:var(--bg-input)!important}[data-theme=dark] .MuiSvgIcon-root{color:inherit}[data-theme=dark] .MuiDialogContent-root img{background-color:#fff;border-radius:4px;padding:8px}[data-theme=dark] .MuiChip-root{border-color:#e0e0e0;border-color:var(--border-color)}[data-theme=dark] .MuiChip-outlined{border-color:#e0e0e0!important;border-color:var(--border-color)!important;color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .MuiLinearProgress-root{background-color:#ffffff1a!important}[data-theme=dark] .section-info,[data-theme=dark] .timer{color:#fff;color:var(--text-on-dark)}[data-theme=dark] .hide-timer-button{border-color:#fff;border-color:var(--text-on-dark);color:#fff;color:var(--text-on-dark)}[data-theme=dark] .directions-button,[data-theme=dark] .tool-button .tool-icon,[data-theme=dark] .tool-button span{color:#fff;color:var(--text-on-dark)}[data-theme=dark] .MuiListItem-root{color:#333;color:var(--text-primary)}[data-theme=dark] .MuiDialogContent-root .MuiCard-root{background-color:#fff!important;background-color:var(--bg-secondary)!important}[data-theme=dark] .question-header{background-color:#f0f0f0;background-color:var(--bg-question-bar);border-bottom-color:#e0e0e0;border-bottom-color:var(--border-color)}[data-theme=dark] .mark-review-button{color:#333;color:var(--text-primary)}[data-theme=dark] .mark-review-btn{color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .review-icon{color:#333;color:var(--text-primary)}[data-theme=dark] .student-answer-input:focus{border-color:#3b5ab7;border-color:var(--accent-primary);box-shadow:0 0 0 3px #5b7bd533}[data-theme=dark] .student-answer-hint,[data-theme=dark] .student-answer-input::placeholder{color:#666;color:var(--text-muted)}[data-theme=dark] .open-response-input{background:#fff;background:var(--bg-input);border-color:#e0e0e0;border-color:var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .question-dropdown .legend-item{color:#555;color:var(--text-secondary)}[data-theme=dark]{color-scheme:dark}[data-theme=dark] ::selection{background:#4a6ac4;color:#fff}[data-theme=dark] ::-moz-selection{background:#4a6ac4;color:#fff}[data-theme=dark] .passage-text .passage-highlight,[data-theme=dark] .passage-text .passage-highlight *{color:#1a1a1a!important}[data-theme=dark] .highlight-hint{background:#ffd54f1f;border-color:#e0e0e0;border-color:var(--border-color);color:#555;color:var(--text-secondary)}[data-theme=dark] .answer-save-error{background:#fff3cd1f;color:#333;color:var(--text-primary)}[data-theme=dark] .answer-save-error-close{color:#333!important;color:var(--text-primary)!important}[data-theme=dark] .question-grid-item.current:before{color:#333;color:var(--text-primary)}[data-theme=dark] .pwa-guide-intro,[data-theme=dark] .pwa-guide-step{background:#fff;background:var(--bg-card);box-shadow:0 8px 40px #0009,0 0 0 1px #e0e0e0;box-shadow:0 8px 40px #0009,0 0 0 1px var(--border-color)}[data-theme=dark] .pwa-guide-intro-title,[data-theme=dark] .pwa-guide-step-title{color:#333;color:var(--text-primary)}[data-theme=dark] .pwa-guide-intro-text,[data-theme=dark] .pwa-guide-step-desc{color:#555;color:var(--text-secondary)}[data-theme=dark] .pwa-guide-btn-secondary{background:#f5f5f5;background:var(--bg-hover);color:#333;color:var(--text-primary)}[data-theme=dark] .pwa-guide-dot{background:#e0e0e0;background:var(--border-color)}[data-theme=dark] .answer-eliminator{border-color:#e0e0e0;border-color:var(--border-color);color:#555;color:var(--text-secondary)}[data-theme=dark] .answer-eliminator:hover{border-color:#555;border-color:var(--text-secondary);color:#333;color:var(--text-primary)}[data-theme=dark] .answer-undo{color:#3b5ab7;color:var(--accent-primary)}[data-theme=dark] .abc-toggle{border-color:#e0e0e0;border-color:var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .abc-toggle.active{background:#3b5ab7;background:var(--accent-primary);border-color:#3b5ab7;border-color:var(--accent-primary);color:#fff}[data-theme=dark] .timer.timer-low{color:#fbbf24}[data-theme=dark] .timer.timer-critical{color:#f87171}.new-year-theme{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:9999}.snowfall-container{height:100%;left:0;position:absolute;top:0;width:100%}.snowflake{animation:fall linear infinite;color:#fff;pointer-events:none;position:absolute;text-shadow:0 0 5px #fffc;top:-20px;-webkit-user-select:none;user-select:none}@keyframes fall{0%{transform:translateY(-20px) rotate(0deg)}to{transform:translateY(100vh) rotate(1turn)}}.sparkle-overlay{animation:sparkleShift 10s ease-in-out infinite;background:radial-gradient(circle at 20% 50%,#ffd70008 0,#0000 50%),radial-gradient(circle at 80% 50%,#c0c0c008 0,#0000 50%);height:100%;left:0;position:absolute;top:0;width:100%}@keyframes sparkleShift{0%,to{opacity:.4}50%{opacity:.7}}.new-year-banner{animation:bannerGlow 3s ease-in-out infinite;background:linear-gradient(135deg,#667eea,#764ba2);border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #667eea33;margin-bottom:24px;overflow:hidden;padding:24px;position:relative}@keyframes bannerGlow{0%,to{box-shadow:0 8px 32px #667eea33}50%{box-shadow:0 8px 40px #667eea66}}.new-year-banner:before{animation:bannerShine 6s linear infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes bannerShine{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.new-year-banner-content{color:#fff;position:relative;z-index:1}.new-year-banner-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.new-year-icon{animation:bounce 2s ease-in-out infinite;font-size:32px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.new-year-title{font-size:24px;font-weight:700;margin:0;text-shadow:2px 2px 4px #0003}.new-year-message{font-size:16px;line-height:1.6;margin:8px 0;opacity:.95}.new-year-signature{font-size:14px;font-style:italic;margin-top:12px;opacity:.9;text-align:right}.new-year-decorations{animation:float 3s ease-in-out infinite;font-size:24px;opacity:.6;position:absolute;right:10px;top:10px}@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}33%{transform:translateY(-10px) rotate(5deg)}66%{transform:translateY(5px) rotate(-5deg)}}@media (max-width:768px){.new-year-banner{margin-bottom:20px;padding:20px}.new-year-title{font-size:20px}.new-year-message{font-size:14px}.new-year-icon{font-size:28px}.snowflake{font-size:12px!important}}@media (prefers-reduced-motion:reduce){.new-year-banner,.new-year-decorations,.new-year-icon,.snowflake,.sparkle-overlay{animation:none!important}.snowflake{display:none}}.pwa-guide-overlay{animation:pwa-fade-in .2s ease;background:#00000080;inset:0;position:fixed;z-index:9998}.pwa-guide-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:fixed;z-index:9999}.pwa-guide-banner{animation:pwa-slide-up .4s cubic-bezier(.16,1,.3,1);bottom:0;left:0;padding:0 12px 12px;right:0}.pwa-guide-modal{animation:pwa-scale-in .3s cubic-bezier(.16,1,.3,1);bottom:50%;left:50%;max-width:360px;transform:translate(-50%,50%);width:calc(100% - 32px)}.pwa-guide-intro{align-items:flex-start;background:#fff;border-radius:16px;box-shadow:0 -4px 24px #00000026,0 0 0 1px #0000000d;display:flex;gap:14px;padding:16px}.pwa-guide-intro-icon{flex-shrink:0;line-height:0;margin-top:2px}.pwa-guide-intro-content{flex:1 1;min-width:0}.pwa-guide-intro-title{color:#1a1a2e;font-size:16px;font-weight:700;margin-bottom:4px}.pwa-guide-intro-text{color:#666;font-size:13px;line-height:1.4;margin-bottom:12px}.pwa-guide-intro-actions{align-items:center;display:flex;gap:8px}.pwa-guide-step{background:#fff;border-radius:20px;box-shadow:0 8px 40px #0003;padding:28px 24px 20px;position:relative;text-align:center}.pwa-guide-step-progress{display:flex;gap:8px;justify-content:center;margin-bottom:20px}.pwa-guide-dot{background:#e0e0e0;border-radius:50%;height:8px;transition:all .3s ease;width:8px}.pwa-guide-dot.active{background:#4f46e5;border-radius:4px;width:24px}.pwa-guide-dot.done{background:#4f46e5}.pwa-guide-step-icon{animation:pwa-bounce .5s ease;display:inline-block;line-height:0;margin-bottom:12px}.pwa-guide-step-number{color:#4f46e5;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.pwa-guide-step-title{color:#1a1a2e;font-size:18px;font-weight:700;margin-bottom:8px}.pwa-guide-step-desc{color:#666;font-size:14px;line-height:1.5;margin-bottom:20px;margin-left:auto;margin-right:auto;max-width:300px}.pwa-guide-step-actions{display:flex;gap:12px;justify-content:center;margin-bottom:8px}.pwa-guide-btn-primary{background:linear-gradient(135deg,#4f46e5,#7c3aed);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:transform .15s ease,opacity .15s ease}.pwa-guide-btn-primary:active{opacity:.9;transform:scale(.96)}.pwa-guide-btn-secondary{background:#f3f4f6;border:none;border-radius:10px;color:#374151;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px}.pwa-guide-btn-text{font-size:13px;padding:4px 8px}.pwa-guide-btn-dismiss,.pwa-guide-btn-text{background:none;border:none;color:#9ca3af;cursor:pointer}.pwa-guide-btn-dismiss{align-items:center;display:flex;line-height:0;margin-left:auto;padding:4px}.pwa-guide-skip{display:block;margin:4px auto 0}@keyframes pwa-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes pwa-scale-in{0%{opacity:0;transform:translate(-50%,50%) scale(.9)}to{opacity:1;transform:translate(-50%,50%) scale(1)}}@keyframes pwa-fade-in{0%{opacity:0}to{opacity:1}}@keyframes pwa-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-page{background:#f6f7fb;color:#1c2130;color-scheme:light;display:flex;font-family:var(--font-ui);min-height:100dvh}.auth-form-col{align-items:center;display:flex;flex:1 1;justify-content:center;min-width:0;padding:32px 24px}.auth-form{display:flex;flex-direction:column;gap:20px;max-width:min(28rem,100%);min-width:0;width:100%}.auth-logo{align-self:flex-start;height:auto;width:120px}.auth-title{color:#1c2130;font-size:clamp(30px,4vw,40px);font-weight:300;letter-spacing:-.03em;line-height:1.12;margin:0}.auth-subtitle{color:#5d6577;font-size:15px;margin:-8px 0 0}.auth-error{background:#fef3f2;border:1px solid #fecdca;border-radius:.5rem;color:#b42318;font-size:14px;margin:0;padding:10px 14px}.auth-success{color:#12805c;font-size:14px;font-weight:500;margin:0;text-align:center}.auth-links{align-items:center;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;justify-content:center}.auth-links a,.auth-links button{background:none;border:none;color:#5d6577;cursor:pointer;font:inherit;padding:0;text-decoration:underline;transition:color .18s ease}.auth-links a:hover,.auth-links button:hover{color:#1c2130}.auth-links .dot{color:#c3c9d6;text-decoration:none}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{color:#5d6577;font-size:13px;font-weight:500;margin:0}.auth-hint{color:#8a91a3;font-size:12px;margin:4px 0 0}.auth-password-wrap{position:relative}.auth-password-wrap .input{padding-right:46px}.auth-student-card{background:#fff;border:1px solid #e4e7ee;border-radius:.75rem;padding:14px 16px;text-align:center}.auth-student-card p{margin:0 0 6px}.auth-student-card p:last-child{margin-bottom:0}.auth-student-name{color:#1c2130;font-size:16px}.auth-student-id{color:#5d6577;font-size:14px}.auth-footnote{border-top:1px solid #e4e7ee;color:#8a91a3;font-size:12.5px;line-height:1.5;margin:4px 0 0;padding-top:16px;text-align:center}.auth-page .input{background:#fff;border-color:#d5dae4;color:#1c2130}.auth-page .input:focus{background:#3b5ab714;border-color:#3b5ab7;box-shadow:0 0 0 3px #3b5ab766}.auth-page .btn-primary{background:#3b5ab7;color:#fff}.auth-page .btn-primary:hover:not(:disabled){background:#33509f}.auth-page .btn-outline{background:#fff;border-color:#d5dae4;color:#3b5ab7}.auth-page .btn-outline:hover:not(:disabled){background:#3b5ab714;border-color:#3b5ab7}.auth-page .divider-label{color:#5d6577}.auth-page .divider-label:after,.auth-page .divider-label:before{background:#e4e7ee}.auth-hero{display:none}@media (min-width:900px){.auth-hero{display:block;flex:1 1;padding:16px;position:relative}}.auth-hero-panel{background:linear-gradient(145deg,#16204a,#24347c 45%,#3b5ab7);border-radius:1.5rem;inset:16px;overflow:hidden;position:absolute}.hero-blob{border-radius:50%;filter:blur(70px);opacity:.55;position:absolute;will-change:transform}.hero-blob-1{background:#5b7bd5;height:420px;left:-10%;top:-8%;width:420px}.hero-blob-2{background:#7c94e0;bottom:-6%;height:360px;right:-8%;width:360px}.hero-blob-3{background:#2a3b8c;height:260px;left:38%;top:42%;width:260px}.hero-cards{inset:0;position:absolute}.hero-card{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#ffffff1a;border:1px solid #ffffff29;border-radius:1rem;color:#fff;display:flex;flex-direction:column;gap:4px;padding:18px 22px;position:absolute;will-change:transform}.hero-card-score{left:18%;top:26%}.hero-card-score .hero-card-value{font-feature-settings:"tnum";font-size:40px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}.hero-card-score .hero-card-delta{color:#9ff0c6;font-size:13px;font-weight:500}.hero-card-score .hero-card-label{color:#ffffffb3;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.hero-card-streak{font-size:15px;font-weight:500;gap:10px;right:16%;top:56%}.hero-card-module,.hero-card-streak{align-items:center;flex-direction:row}.hero-card-module{bottom:14%;color:#ffffffe6;font-size:13.5px;gap:8px;left:26%}.hero-badge{align-items:center;background:#ffffff24;border-radius:999px;color:#fff;display:inline-flex;font:600 11px/1 var(--font-ui);letter-spacing:.04em;padding:4px 10px;text-transform:uppercase}.hero-tagline{bottom:26px;color:#ffffffa6;font-size:13px;left:32px;letter-spacing:.08em;position:absolute;text-transform:uppercase}@media (max-width:899px){.auth-page{background:radial-gradient(60% 40% at 85% -10%,#3b5ab729 0,#0000 70%),radial-gradient(50% 35% at -10% 110%,#3b5ab71a 0,#0000 70%),#f6f7fb}}