:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#12081f;--bg-glow-1:#3a0f7a8c;--bg-glow-2:#0f1f5e8c;--bg-elevated:#1b0f31;--card:#221336;--card-2:#2a1743;--border:#ffffff14;--border-strong:#ffffff29;--purple:#9b4dff;--purple-bright:#b983ff;--blue:#47bfff;--green:#34e0a1;--red:#ff5c7a;--gold:#ffce54;--text:#f3efff;--text-dim:#b9aede;--text-faint:#8577a8;--purple-text:var(--purple);--blue-text:var(--blue);--green-text:var(--green);--red-text:var(--red);--gold-text:var(--gold);--amber-text:#ffb066;--gradient-primary:linear-gradient(135deg, #8a2be2 0%, #6c3bff 45%, #47bfff 100%);--gradient-gold:linear-gradient(135deg, #ffce54 0%, #ff9f4a 100%);--shadow-glow:0 8px 30px #8b3dff59;--font-heading:"Baloo 2", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;font-family:var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=midnight]{--bg:#0f0a1a;--bg-glow-1:#7c3aed59;--bg-glow-2:#38bdf840;--bg-elevated:#18112c;--card:#1e1530;--card-2:#26193d;--text:#e5e0f5;--text-dim:#a89cc8;--text-faint:#746592;--gradient-primary:linear-gradient(135deg, #7c3aed 0%, #38bdf8 100%)}[data-theme=daylight]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f5fb;--bg-glow-1:#7c3aed0f;--bg-glow-2:#38bdf80f;--bg-elevated:#efebf7;--card:#fff;--card-2:#f3f0fa;--border:#1e15301a;--border-strong:#1e15302e;--text:#1e1530;--text-dim:#6b6280;--text-faint:#837aa0;--purple-text:#6d28d9;--blue-text:#0369a1;--green-text:#0f9d6a;--red-text:#c81e4d;--gold-text:#a16207;--amber-text:#b45309;--gradient-primary:linear-gradient(135deg, #7c3aed 0%, #38bdf8 100%);--shadow-glow:0 8px 30px #7c3aed2e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(circle at 15% 0%, var(--bg-glow-1), transparent 55%), radial-gradient(circle at 85% 20%, var(--bg-glow-2), transparent 50%), var(--bg);background-attachment:fixed;min-height:100svh}#root{min-height:100svh}h1,h2,h3{font-family:var(--font-heading);color:var(--text);margin:0;font-weight:700}p{margin:0}button,input{font-family:inherit}::selection{background:var(--purple);color:#fff}.app-splash{justify-content:center;align-items:center;min-height:100svh;display:flex}.app-splash-logo{font-family:var(--font-heading);align-items:center;gap:10px;font-size:32px;font-weight:800;display:flex}.app-splash-bolt{filter:drop-shadow(0 0 14px #f9731699)}.app-splash-text{background:var(--gradient-primary);color:#0000;-webkit-background-clip:text;background-clip:text}.admin-login-page,.admin-page{color:#1a1a1a;background:#f4f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;position:fixed;inset:0;overflow-y:auto}.admin-login-page{justify-content:center;align-items:center;display:flex}.admin-login-card{background:#fff;border:1px solid #d9dce1;border-radius:10px;flex-direction:column;gap:16px;width:320px;padding:32px;display:flex;box-shadow:0 2px 12px #0000000f}.admin-login-page h1,.admin-page h1,.admin-page h2,.admin-modal h2{color:#1a1a1a}.admin-login-title{margin:0 0 8px;font-size:20px;font-weight:700}.admin-field{color:#444;flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.admin-field input,.admin-field textarea,.admin-edit-row select,.admin-filters select{color:#1a1a1a;background:#fff;border:1px solid #cfd3d9;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}.admin-field textarea{resize:vertical}.admin-error{color:#b3261e;margin:0;font-size:13px}.admin-deleted-tag{color:#b3261e;text-transform:uppercase;letter-spacing:.02em;background:#fce8e6;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.admin-btn{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #cfd3d9;border-radius:6px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600}.admin-btn-with-badge{position:relative}.admin-nav-badge{color:#fff;background:#b3261e;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:-7px;right:-7px}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn-primary{color:#fff;background:#2454ff;border-color:#2454ff}.admin-btn-secondary{background:#fff}.admin-btn-danger{color:#b3261e;background:#fff;border-color:#d64545}.admin-btn-small{padding:5px 10px;font-size:12px}.admin-header{background:#fff;border-bottom:1px solid #e2e4e8;justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.admin-header-actions{align-items:center;gap:10px;display:flex}.admin-header h1{margin:0;font-size:18px}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;padding:24px 28px 0;display:grid}.admin-stat-card{text-align:left;background:#fff;border:1px solid #e2e4e8;border-radius:10px;padding:18px}.admin-stat-value{margin:0;font-size:28px;font-weight:700}.admin-stat-label{color:#666;text-transform:uppercase;letter-spacing:.03em;margin:4px 0 0;font-size:12px}.admin-panel{background:#fff;border:1px solid #e2e4e8;border-radius:10px;margin:24px 28px 40px;padding:20px}.admin-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-panel-header h2{margin:0;font-size:16px}.admin-filters{flex-wrap:wrap;gap:10px;display:flex}.admin-search-input{border:1px solid #cfd3d9;border-radius:6px;min-width:220px;padding:8px 10px;font-family:inherit;font-size:14px}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;color:#555;white-space:nowrap;border-bottom:2px solid #e2e4e8;padding:8px 10px}.admin-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-th-sortable:hover{color:#222}.admin-table td{white-space:nowrap;border-bottom:1px solid #eef0f2;padding:8px 10px}.admin-table-empty{text-align:center;color:#888;padding:24px!important}.admin-proof-thumb{border:1px solid #cfd3d9;border-radius:6px;max-width:100px;max-height:100px;display:block}.admin-row-deleted{color:#a02020;background:#fdecec}.admin-row-urgent{background:#fff0f0}.admin-row-urgent:hover{background:#ffe4e4}.admin-flag-badge{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.admin-flag-badge--user{color:#2c4a7c;background:#e8eef7}.admin-flag-badge--ai{color:#8a5a00;background:#fdf1d6}.admin-flag-badge--urgent{color:#fff;background:#b3261e}.admin-row-actions{flex-wrap:wrap;gap:6px;display:flex}.admin-pagination{justify-content:center;align-items:center;gap:16px;margin-top:16px;font-size:13px;display:flex}.admin-modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.admin-modal{background:#fff;border-radius:10px;width:100%;max-width:640px;max-height:85vh;padding:0;overflow-y:auto}.admin-modal-small{flex-direction:column;gap:14px;max-width:420px;padding:24px;display:flex}.admin-modal-header{background:#fff;border-bottom:1px solid #e2e4e8;justify-content:space-between;align-items:center;padding:18px 24px;display:flex;position:sticky;top:0}.admin-modal-header h2{margin:0;font-size:17px}.admin-modal-close{cursor:pointer;color:#666;background:0 0;border:none;font-size:22px;line-height:1}.admin-modal-body{flex-direction:column;gap:22px;padding:20px 24px 28px;display:flex}.admin-modal-actions{justify-content:flex-end;gap:10px;display:flex}.admin-detail-section h3{color:#333;margin:0 0 10px;font-size:14px}.admin-detail-grid{grid-template-columns:max-content 1fr;gap:4px 16px;margin:0;font-size:13px;display:grid}.admin-detail-grid dt{color:#777}.admin-detail-grid dd{margin:0}.admin-edit-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:14px;display:flex}.admin-edit-row label{color:#444;flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.admin-scroll-list{border:1px solid #eef0f2;border-radius:6px;max-height:180px;overflow-y:auto}.admin-list-row{border-bottom:1px solid #f2f3f5;justify-content:space-between;gap:10px;padding:6px 10px;font-size:12px;display:flex}.admin-list-row:last-child{border-bottom:none}.admin-empty-hint{color:#888;margin:0;padding:10px;font-size:12px}.admin-text-good{color:#1a7f37}.admin-text-bad{color:#b3261e}.admin-back-link{color:#2454ff;cursor:pointer;background:0 0;border:none;padding:0 0 4px;font-family:inherit;font-size:13px;font-weight:600;display:block}.admin-panel h2{margin:0 0 16px;font-size:16px}.admin-toast{z-index:1100;border-radius:8px;padding:12px 18px;font-size:14px;font-weight:600;position:fixed;top:20px;right:20px;box-shadow:0 4px 16px #00000026}.admin-toast--success{color:#1a7f37;background:#e6f6ea;border:1px solid #b7e4c1}.admin-toast--error{color:#b3261e;background:#fdecec;border:1px solid #f3c2c2}.admin-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:16px;display:grid}.admin-field-wide{grid-column:1/-1}.admin-field select{color:#1a1a1a;background:#fff;border:1px solid #cfd3d9;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}.admin-checkbox-field{color:#444;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.admin-checkbox-field input{width:16px;height:16px}.admin-form-actions{grid-column:1/-1;justify-content:flex-end;display:flex}.admin-record-list{flex-direction:column;gap:10px;display:flex}.admin-record-row{border:1px solid #eef0f2;border-radius:8px;padding:12px 14px}.admin-record-row-main{flex-direction:column;gap:2px;display:flex}.admin-record-row-actions{gap:6px;margin-top:10px;display:flex}.admin-record-title{margin:0;font-size:13px;font-weight:700}.admin-record-detail{color:#777;margin:0;font-size:12px}.admin-record-expanded{margin-top:10px}.admin-list-row--wrap{flex-direction:column;align-items:flex-start;gap:2px}.admin-danger-zone{background:#fff8f8;border-color:#f3c2c2}.admin-danger-zone h2{color:#b3261e}.admin-danger-status{color:#555;margin:0 0 14px;font-size:13px}.admin-danger-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-calendar-legend{color:#555;flex-wrap:wrap;gap:14px;margin-bottom:12px;font-size:12px;display:flex}.admin-calendar-legend-item{align-items:center;gap:6px;display:flex}.admin-calendar-legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.admin-calendar-legend-dot--correct{background:#34c759}.admin-calendar-legend-dot--mixed{background:#f0a020}.admin-calendar-legend-dot--wrong{background:#d64545}.admin-calendar-legend-dot--empty{background:#e2e4e8}.admin-calendar-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.admin-calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;max-width:420px;display:grid}.admin-calendar-weekday-label{text-align:center;color:#888;font-size:11px;font-weight:700}.admin-calendar-day{aspect-ratio:1;cursor:pointer;background:#fff;border:1px solid #e2e4e8;border-radius:6px;font-size:12px}.admin-calendar-day:disabled{cursor:default}.admin-calendar-day--blank{background:0 0;border:none}.admin-calendar-day--correct{background:#d9f5e0;border-color:#34c759}.admin-calendar-day--mixed{background:#fdedd3;border-color:#f0a020}.admin-calendar-day--wrong{background:#fbdada;border-color:#d64545}.admin-calendar-day--empty{color:#bbb}.admin-calendar-day--future{color:#ddd}.admin-calendar-day--today{box-shadow:inset 0 0 0 2px #2454ff}.admin-calendar-day--selected{box-shadow:inset 0 0 0 2px #1a1a1a}.admin-calendar-day-detail{border-top:1px solid #eef0f2;margin-top:16px;padding-top:12px}.admin-calendar-day-detail h4{margin:0 0 8px;font-size:13px}.admin-calendar-day-detail-subject{text-transform:capitalize;font-weight:700}.admin-calendar-day-detail-question{color:#444}.admin-message-log{flex-direction:column;gap:10px;max-height:55vh;padding:4px 4px 16px;display:flex;overflow-y:auto}.admin-message-log-row{border:1px solid #e2e4e8;border-radius:8px;padding:8px 12px}.admin-message-log-row p{margin:4px 0 0}.admin-message-log-meta{color:#888;font-size:12px;font-weight:600}.admin-message-input{gap:10px;margin-top:16px;display:flex}.admin-message-input input{border:1px solid #d5d8dd;border-radius:8px;flex:1;padding:8px 12px;font-size:14px}.screen{flex-direction:column;gap:20px;max-width:480px;min-height:100svh;margin:0 auto;padding:20px 18px 48px;display:flex}.btn{font-family:var(--font-heading);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;padding:14px 18px;font-size:16px;font-weight:600;transition:transform .12s,box-shadow .12s,opacity .12s}.btn:active{transform:scale(.97)}.btn--premium{position:relative}.premium-crown{pointer-events:none;font-size:12px;line-height:1;position:absolute;top:-6px;right:-6px}.premium-tooltip{background:var(--card);color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;z-index:5;border:1px solid #ffc10766;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:500;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.btn--premium:hover .premium-tooltip,.btn--premium:focus-visible .premium-tooltip,.btn--premium.btn--premium-tooltip-visible .premium-tooltip{opacity:1;transform:translate(-50%)translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed}a.btn{text-align:center;text-decoration:none;display:inline-block}.btn-block{width:100%}.btn-small{border-radius:10px;padding:8px 14px;font-size:13px}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:not(:disabled):hover{box-shadow:0 10px 36px #8b3dff80}.btn-secondary{background:var(--card-2);color:var(--text);border:1px solid var(--border-strong)}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);background:0 0}.btn-danger{background:var(--red);color:#fff}.btn-danger:not(:disabled):hover{box-shadow:0 10px 30px #ff5c7a66}.btn-danger-outline{color:var(--red-text);background:0 0;border:1.5px solid #ff5c7a80}.btn-danger-outline:not(:disabled):hover{background:#ff5c7a1a}.field{text-align:left;flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-dim);font-size:13px;font-weight:600}.field input{background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text);border-radius:12px;outline:none;padding:13px 14px;font-size:16px;transition:border-color .15s}.field input:focus{border-color:var(--purple)}.field-hint{color:var(--text-faint);font-size:12px}.form-error{color:var(--red-text);background:#ff5c7a1f;border:1px solid #ff5c7a66;border-radius:10px;margin:0;padding:10px 12px;font-size:13px}.form-success{color:var(--green-text);background:#34e0a11f;border:1px solid #34e0a166;border-radius:10px;margin:0;padding:10px 12px;font-size:13px}.field select{background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text);border-radius:12px;outline:none;padding:13px 14px;font-size:16px;transition:border-color .15s}.field select:focus{border-color:var(--purple)}.field-static{background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text-dim);border-radius:12px;margin:0;padding:13px 14px;font-size:16px}.field textarea{background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text);resize:vertical;border-radius:12px;outline:none;padding:13px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.field textarea:focus{border-color:var(--purple)}.avatar-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.school-change-proof-preview{object-fit:contain;border:1px solid var(--border);background:var(--bg-elevated);border-radius:12px;width:100%;max-height:200px;margin-bottom:8px}.avatar-option{aspect-ratio:1;background:var(--bg-elevated);border:1.5px solid var(--border);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:24px;transition:border-color .15s,background .15s,transform .1s;display:flex}.avatar-option:hover{border-color:var(--purple)}.avatar-option:active{transform:scale(.94)}.avatar-option--selected{border-color:var(--purple);background:#9b4dff29;box-shadow:0 0 0 2px #9b4dff59}.theme-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.theme-option{background:var(--bg-elevated);border:1.5px solid var(--border);cursor:pointer;color:var(--text-dim);border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;font-size:12px;font-weight:600;transition:border-color .15s,background .15s,transform .1s;display:flex}.theme-option:hover{border-color:var(--purple)}.theme-option:active{transform:scale(.97)}.theme-option--selected{border-color:var(--purple);color:var(--text);background:#9b4dff29;box-shadow:0 0 0 2px #9b4dff59}.theme-option-swatch{border:1.5px solid var(--border-strong);border-radius:50%;width:32px;height:32px;display:block}.auth-screen{justify-content:center;align-items:center;min-height:100svh;padding:24px 18px;display:flex;position:relative}.auth-screen-corner{position:absolute;top:20px;left:20px}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:24px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:400px;padding:32px 26px;display:flex;box-shadow:0 20px 60px #0006}.zyndal-logo{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:8px;padding:0;display:inline-flex}div.zyndal-logo{cursor:default}.zyndal-logo-bolt{filter:drop-shadow(0 0 10px #f97316cc);line-height:1}.zyndal-logo-text{font-family:var(--font-heading);letter-spacing:.3px;background:var(--gradient-primary);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800}.zyndal-logo--small .zyndal-logo-bolt,.zyndal-logo--small .zyndal-logo-text{font-size:23px}.zyndal-logo--large .zyndal-logo-bolt,.zyndal-logo--large .zyndal-logo-text{font-size:60px}.zyndal-logo--large .zyndal-logo-bolt{animation:2.4s ease-in-out infinite flame-pulse}.landing-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:48px;min-height:100svh;padding:32px 24px;display:flex;position:relative;overflow:hidden}.landing-glow{pointer-events:none;border-radius:50%;position:absolute}.landing-glow--1{background:radial-gradient(circle,#9b4dff66 0%,#9b4dff00 70%);width:340px;height:340px;top:-100px;right:-120px}.landing-glow--2{background:radial-gradient(circle,#47bfff59 0%,#47bfff00 70%);width:320px;height:320px;bottom:-100px;left:-120px}.landing-hero{z-index:1;flex-direction:column;align-items:center;gap:18px;max-width:420px;display:flex;position:relative}.landing-tagline{font-family:var(--font-heading);color:var(--text);margin:0;font-size:26px;font-weight:800}.landing-description{color:var(--text-dim);margin:0;font-size:15px;line-height:1.6}.landing-actions{z-index:1;flex-direction:column;gap:12px;width:100%;max-width:340px;display:flex;position:relative}.landing-audiences{z-index:1;flex-direction:column;gap:16px;width:100%;max-width:440px;display:flex;position:relative}.landing-audience-card{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:22px 20px;display:flex}.landing-audience-label{font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);font-size:12px;font-weight:700}.landing-audience-title{font-family:var(--font-heading);color:var(--text);margin:0;font-size:17px;font-weight:700}.landing-audience-body{color:var(--text-dim);margin:0;font-size:14px;line-height:1.55}.landing-audience-card--students{border-color:color-mix(in srgb, var(--purple) 35%, var(--border));background:linear-gradient(160deg, color-mix(in srgb, var(--purple) 14%, transparent), var(--card) 55%)}.landing-audience-card--students .landing-audience-label{color:var(--purple-text)}.landing-audience-card--parents{border-color:color-mix(in srgb, var(--gold) 35%, var(--border));background:linear-gradient(160deg, color-mix(in srgb, var(--gold) 14%, transparent), var(--card) 55%)}.landing-audience-card--parents .landing-audience-label{color:var(--gold-text)}.landing-audience-card--teachers{border-color:color-mix(in srgb, var(--blue) 35%, var(--border));background:linear-gradient(160deg, color-mix(in srgb, var(--blue) 14%, transparent), var(--card) 55%)}.landing-audience-card--teachers .landing-audience-label{color:var(--blue-text)}.auth-tagline{color:var(--text-dim);text-align:center;margin-bottom:6px;font-size:14px}.auth-invite-banner{background:linear-gradient(160deg, #9b4dff2e, var(--card) 60%);color:var(--text);text-align:center;border:1px solid #9b4dff66;border-radius:14px;padding:12px 16px;font-size:13.5px;font-weight:600;line-height:1.5}.auth-tabs{background:var(--bg-elevated);border-radius:12px;gap:4px;width:100%;padding:4px;display:flex}.auth-tab{color:var(--text-faint);font-family:var(--font-heading);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:10px 0;font-size:14px;font-weight:600;transition:all .15s}.auth-tab--active{background:var(--gradient-primary);color:#fff}.auth-form{flex-direction:column;gap:14px;width:100%;margin-top:6px;display:flex}.social-login{flex-direction:column;gap:10px;display:flex}.social-btn{justify-content:center;align-items:center;gap:10px;font-size:14.5px;display:flex}.social-btn--google{color:#1f1f1f;border:1.5px solid var(--border-strong);background:#fff}.social-btn--google:not(:disabled):hover{box-shadow:0 6px 20px #00000026}.social-btn--facebook{color:#fff;background:#1877f2}.social-btn--facebook:not(:disabled):hover{box-shadow:0 10px 30px #1877f266}.social-btn--email{background:var(--card-2);color:var(--text);border:1px solid var(--border-strong)}.social-btn--email:not(:disabled):hover{box-shadow:0 6px 20px #00000026}.social-login-cancel-row{text-align:center;width:100%;margin-top:2px}.account-type-selector{flex-direction:column;gap:10px;display:flex}.account-type-option{text-align:left;background:var(--card-2);border:1.5px solid var(--border-strong);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.account-type-option--selected{border-color:var(--purple);background:#9b4dff26}.account-type-icon{flex-shrink:0;font-size:22px;line-height:1}.account-type-text{flex-direction:column;gap:2px;display:flex}.account-type-label{color:var(--text);font-size:14.5px;font-weight:700}.account-type-option--selected .account-type-label{color:var(--purple-bright)}.account-type-description{color:var(--text-dim);font-size:12.5px}.oauth-onboarding-title{font-family:var(--font-heading);text-align:center;margin-top:8px;font-size:20px;font-weight:700}.oauth-use-different-email{color:var(--text-faint);cursor:pointer;background:0 0;border:none;margin-top:14px;font-size:13px;text-decoration:underline}.role-toggle{gap:8px;display:flex}.role-btn{border:1.5px solid var(--border);background:var(--bg-elevated);color:var(--text-dim);font-family:var(--font-heading);cursor:pointer;border-radius:12px;flex:1;padding:12px 8px;font-size:14px;font-weight:600;transition:all .15s}.role-btn--active{border-color:var(--purple);color:var(--purple-bright);background:#9b4dff26}.topbar{flex-direction:column;gap:10px;padding-top:4px;display:flex}.topbar-brand-row{display:flex}.topbar-main-row{justify-content:space-between;align-items:center;display:flex}.topbar-title-row{align-items:center;gap:10px;min-width:0;display:flex}.topbar-title-block{min-width:0}.topbar-back{border:1px solid var(--border);background:var(--card);width:34px;height:34px;color:var(--text-dim);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:border-color .15s;display:flex}.topbar-back:hover{border-color:var(--purple);color:var(--purple-bright)}.topbar-title{font-family:var(--font-heading);font-size:20px;font-weight:700}.topbar-subtitle{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.premium-feature-banner{color:var(--gold-text);margin:6px 0 0;font-size:12px;font-weight:600}.topbar-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.topbar-username{color:var(--text-dim);font-size:12px;font-weight:600}.topbar-buttons{align-items:center;gap:6px;display:flex}.btn-icon{border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:15px;line-height:1;display:flex}.topbar-icon-btn{position:relative}.topbar-badge{background:var(--red);color:#fff;min-width:16px;height:16px;box-shadow:0 0 0 2px var(--bg);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:800;display:flex;position:absolute;top:-4px;right:-4px}.stats-row{gap:10px;display:flex}.streak-pill,.stat-pill{background:var(--card);border:1px solid var(--border);border-radius:16px;flex:1;align-items:center;gap:8px;min-width:0;padding:12px 10px;display:flex;position:relative}.stats-row>:first-child{flex:1.15;padding-top:14px;padding-bottom:14px}.stats-row>:nth-child(2){flex:.85}.streak-pill--lit{background:linear-gradient(160deg, #ff9e4426, var(--card) 60%);border-color:#ff9e4480}.streak-flame{filter:grayscale()opacity(.5);font-size:24px}.streak-pill--lit .streak-flame{filter:none;animation:1.6s ease-in-out infinite flame-pulse}.stat-icon{font-size:22px}.stat-pill-tap{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:1;align-items:center;gap:8px;margin:0;padding:0;display:flex}.streak-text,.stat-text{flex-direction:column;min-width:0;display:flex}.streak-text{text-align:center;align-items:center}.streak-count,.stat-value{font-family:var(--font-heading);font-size:18px;font-weight:700;line-height:1.1}.streak-label,.stat-label{color:var(--text-faint);font-size:11px}.stat-label{white-space:nowrap}.streak-label{white-space:normal;line-height:1.15}@keyframes flame-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.subject-dashboard{flex-direction:column;gap:16px;display:flex}.subject-dashboard-lead{color:var(--text-dim);text-align:center;font-size:14px}.subject-dashboard-lead--done{color:var(--green-text);font-weight:600}.streak-risk-banner{color:var(--amber-text);font-family:var(--font-heading);text-align:center;background:#ff9e441f;border:1.5px solid #ff9e4466;border-radius:14px;padding:12px 16px;font-size:14px;font-weight:700}.parent-deleted-banner{color:var(--red-text);background:#ff5c7a1f;border:1.5px solid #ff5c7a66;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}.parent-deleted-banner span{flex:1}.parent-deleted-banner-close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:4px;font-size:14px;line-height:1}.parent-deleted-banner-close:hover{opacity:1}.verify-email-banner{color:var(--amber-text);background:#ff9e441f;border:1.5px solid #ff9e4466;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}.verify-email-banner span{flex:1}.verify-email-banner-resend{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.verify-email-banner-error{opacity:.85}.verify-email-banner-close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:4px;font-size:14px;line-height:1}.verify-email-banner-close:hover{opacity:1}.subject-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.subject-card{background:var(--card);border:1.5px solid var(--border);cursor:pointer;text-align:left;border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 16px;transition:border-color .15s,transform .1s,background .15s;display:flex;position:relative}.subject-card:not(:disabled):hover{border-color:var(--subject-color,var(--purple));background:linear-gradient(160deg, color-mix(in srgb, var(--subject-color,var(--purple)) 14%, transparent), var(--card) 65%)}.subject-card:not(:disabled):active{transform:scale(.97)}.subject-card-icon{filter:drop-shadow(0 0 10px color-mix(in srgb, var(--subject-color,var(--purple)) 55%, transparent));font-size:30px}.subject-card-name{font-family:var(--font-heading);color:var(--text);font-size:16px;font-weight:700}.subject-card-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--green-text);background:#34e0a12e;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;position:absolute;top:12px;right:12px}.subject-card--completed{border-color:#34e0a173}.subject-card-badge--incorrect{color:var(--red-text);background:#ff5c7a2e}.subject-card--incorrect{border-color:#ff5c7a73}.subject-card-badge--neutral{background:color-mix(in srgb, var(--purple) 18%, transparent);color:var(--purple-text)}.subject-card-detail{color:var(--text-dim);font-size:12px;line-height:1.3}.subject-grid--compact{grid-template-columns:repeat(3,1fr);gap:8px}.subject-card--compact{border-radius:14px;gap:4px;padding:10px 8px}.subject-card--compact .subject-card-icon{font-size:20px}.subject-card--compact .subject-card-name{font-size:12px}.subject-card--compact .subject-card-detail{font-size:10px}.subject-card--compact .subject-card-badge{padding:2px 5px;font-size:8px;top:6px;right:6px}.section-heading--electives{margin-top:16px}.daily-score-box{background:var(--card);border:1.5px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.daily-score-box-text{color:var(--text);font-size:14px;font-weight:700}.daily-score-box--celebrate{background:linear-gradient(160deg, #34e0a126, var(--card) 60%);border-color:#34e0a180}.daily-score-box--celebrate .daily-score-box-text{color:var(--green-text)}.daily-score-box-share{background:var(--card-2);height:32px;color:var(--text-dim);cursor:pointer;font-family:var(--font-heading);border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;transition:transform .12s;display:flex}.daily-score-box-share:active{transform:scale(.92)}.todays-question-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.todays-question-card{background:var(--card);border:1.5px solid var(--border);cursor:pointer;text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:3px;width:100%;padding:14px 18px;transition:border-color .15s,transform .1s,background .15s;display:flex;position:relative}.todays-question-card:hover{border-color:var(--subject-color,var(--purple));background:linear-gradient(160deg, color-mix(in srgb, var(--subject-color,var(--purple)) 14%, transparent), var(--card) 65%)}.todays-question-card:active{transform:scale(.98)}.todays-question-label{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:12px;font-weight:700}.todays-question-icon{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--subject-color,var(--purple)) 55%, transparent));font-size:30px}.todays-question-name{font-family:var(--font-heading);color:var(--text);font-size:17px;font-weight:700}.todays-question-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--green-text);background:#34e0a12e;border-radius:999px;margin-top:2px;padding:2px 10px;font-size:11px;font-weight:700}.todays-question-badge--incorrect{color:var(--red-text);background:#ff5c7a2e}.todays-question-card--completed{border-color:#34e0a173}.todays-question-card--incorrect{border-color:#ff5c7a73}.todays-question-share{background:var(--card-2);height:28px;color:var(--text-dim);cursor:pointer;font-family:var(--font-heading);border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;transition:transform .12s;display:flex}.todays-question-share:active{transform:scale(.92)}.calendar-icon-btn{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:44px;font-size:20px;transition:border-color .15s,transform .1s;display:flex}.calendar-icon-btn:active{transform:scale(.95)}.calendar-icon-btn:hover{border-color:var(--purple)}.calendar-legend{color:var(--text-dim);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.calendar-legend-item{align-items:center;gap:6px;display:flex}.calendar-legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.calendar-legend-dot--correct{background:var(--green)}.calendar-legend-dot--wrong{background:var(--red)}.calendar-legend-dot--mixed{background:linear-gradient(to bottom right, var(--green) 50%, var(--red) 50%)}.calendar-legend-dot--empty{background:var(--border-strong)}.calendar-legend-dot--assigned{background:var(--purple)}.calendar-legend-dot--hw-completed{background:var(--green)}.calendar-legend-dot--overdue{background:var(--red)}.calendar-nav{justify-content:center;align-items:center;gap:18px;margin-top:4px;display:flex}.calendar-nav-arrow{border:1px solid var(--border);background:var(--card);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:16px;font-weight:700;transition:border-color .15s,transform .1s,opacity .15s;display:flex}.calendar-nav-arrow:not(:disabled):hover{border-color:var(--purple)}.calendar-nav-arrow:not(:disabled):active{transform:scale(.92)}.calendar-nav-arrow:disabled{opacity:.35;cursor:not-allowed}.calendar-nav-label{font-family:var(--font-heading);text-align:center;min-width:140px;font-size:15px;font-weight:700}.calendar-nav--compact{gap:12px;margin-top:0;margin-bottom:2px}.calendar-nav--compact .calendar-nav-arrow{width:28px;height:28px;font-size:14px}.calendar-nav--compact .calendar-nav-label{min-width:0;font-size:13px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px;display:grid}.calendar-weekday-label{text-align:center;color:var(--text-faint);padding-bottom:4px;font-size:11px;font-weight:700}.calendar-day{aspect-ratio:1;border:1.5px solid var(--border);background:var(--card);color:var(--text-dim);cursor:pointer;border-radius:10px;font-size:13px;font-weight:600;transition:transform .1s}.calendar-day:not(:disabled):active{transform:scale(.93)}.calendar-day:disabled{cursor:default}.calendar-day--blank{background:0 0;border:none}.calendar-day--empty{background:var(--card-2);color:var(--text-faint)}.calendar-day--correct{color:var(--green-text);background:#34e0a138;border-color:#34e0a180}.calendar-day--wrong{color:var(--red-text);background:#ff5c7a2e;border-color:#ff5c7a73}.calendar-day--mixed{border-color:var(--border-strong);color:var(--text);background:linear-gradient(to bottom right,#34e0a159 50%,#ff5c7a59 50%)}.calendar-day--future{border-color:var(--border);color:var(--text-faint);opacity:.4;background:0 0}.calendar-day--today{border-color:var(--purple);border-width:2px;box-shadow:0 0 0 2px #9b4dff40}.late-answer-notice{color:var(--amber-text);background:#ff9e441f;border:1px solid #ff9e4459;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:600}.question-card{background:var(--card);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:16px;padding:22px 20px;display:flex}.question-meta{letter-spacing:.04em;text-transform:uppercase;color:var(--purple-bright);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.question-prompt{font-size:21px;line-height:1.35}.curriculum-topic-link{text-align:left;width:100%;color:var(--text-dim);cursor:pointer;background:#9b4dff14;border:1px solid #9b4dff4d;border-radius:12px;padding:12px 14px;font-size:13px;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:block}.curriculum-topic-link:hover{background:#9b4dff24;border-color:#9b4dff73}.curriculum-topic-link:active{transform:scale(.99)}.options{flex-direction:column;gap:10px;display:flex}.option{text-align:left;background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:13px 14px;font-size:15px;transition:border-color .15s,background .15s,transform .1s;display:flex}.option:not(:disabled):hover{border-color:var(--purple);background:#9b4dff1a}.option:not(:disabled):active{transform:scale(.98)}.option-letter{background:var(--card-2);width:26px;height:26px;color:var(--text-dim);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.option-text{flex:1}.option-icon{font-size:16px;font-weight:800}.option:disabled{cursor:default}.option--correct{border-color:var(--green);background:#34e0a11f}.option--correct .option-letter{background:var(--green);color:#063025}.option--correct .option-icon{color:var(--green-text)}.option--wrong{border-color:var(--red);background:#ff5c7a1f}.option--wrong .option-letter{background:var(--red);color:#3a0311}.option--wrong .option-icon{color:var(--red-text)}.option--muted{opacity:.45}.question-card--celebrate{animation:.9s celebrate-glow}.scratchpad{flex-direction:column;gap:10px;display:flex}.scratchpad-canvas-wrap{border:1px solid var(--border-strong);border-radius:14px;width:100%;position:relative;overflow:hidden}.scratchpad-canvas{cursor:crosshair;background:#fff;width:100%;height:100%;display:block}.scratchpad-placeholder{text-align:center;color:#9a94a8;pointer-events:none;justify-content:center;align-items:center;padding:0 24px;font-size:13px;display:flex;position:absolute;inset:0}.scratchpad-expand-btn{color:#fff;cursor:pointer;z-index:2;background:#14121e99;border:none;border-radius:8px;padding:4px 10px;font-size:11px;font-weight:600;position:absolute;top:8px;right:8px}.scratchpad-resize-handle{cursor:ns-resize;z-index:2;justify-content:center;align-items:center;height:16px;display:flex;position:absolute;bottom:0;left:0;right:0}.scratchpad-resize-grip{background:#14121e4d;border-radius:2px;width:40px;height:4px}.scratchpad-resize-hint{color:#fff;pointer-events:none;white-space:nowrap;z-index:2;background:#14121ebf;border-radius:999px;padding:3px 10px;font-size:11px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.scratchpad-toolbar{flex-wrap:wrap;gap:8px;display:flex}.scratchpad-tool-btn{background:var(--card-2);color:var(--text);border:1px solid var(--border-strong);cursor:pointer;border-radius:10px;padding:8px 14px;font-size:13px}.scratchpad-tool-btn:disabled{opacity:.45;cursor:default}.scratchpad-tool-btn--active{background:var(--gradient-primary);color:#fff;border-color:#0000}.work-submission-panel{flex-direction:column;gap:8px;display:flex}.work-submission-status{border-radius:10px;padding:10px 12px;font-size:13px}.work-submission-status--approved{color:var(--green-text);background:#34e0a11f;border:1px solid #34e0a166}.work-submission-status--rejected{color:var(--red-text);background:#ff5c7a1f;border:1px solid #ff5c7a66}.scratchpad-review-image{border:1px solid var(--border-strong);border-radius:10px;max-width:100%}@keyframes celebrate-glow{0%{box-shadow:0 0 #34e0a100}30%{transform:scale(1.015);box-shadow:0 0 40px #34e0a173}to{transform:scale(1);box-shadow:0 0 #34e0a100}}.daily-status-banner{font-family:var(--font-heading);text-align:center;border:1.5px solid var(--border);border-radius:14px;padding:12px 16px;font-size:14px;font-weight:700}.daily-status-banner--done{color:var(--green-text);background:#34e0a11a;border-color:#34e0a166}.daily-status-banner--pending{color:var(--purple-bright);background:#9b4dff1a;border-color:#9b4dff66}.result-banner{border:1px solid var(--border);border-radius:16px;padding:16px 18px;animation:.3s rise-in}.result-banner--correct{background:#34e0a11a;border-color:#34e0a166}.result-banner--wrong{background:#ff5c7a14;border-color:#ff5c7a4d}.result-headline{font-family:var(--font-heading);margin-bottom:4px;font-size:15px;font-weight:700}.result-headline-row{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:4px;display:flex}.result-headline-row .result-headline{flex:1;min-width:0;margin-bottom:0}.result-share-btn{flex-shrink:0}.result-next{color:var(--text-faint);font-size:13px}.result-explanation{color:var(--text-dim);border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-size:13px;line-height:1.5}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section-heading{font-family:var(--font-heading);color:var(--text-dim);margin-bottom:10px;font-size:15px}.history-empty{color:var(--text-faint);font-size:13px}.class-card-status{text-align:center;color:var(--text-faint);margin:4px 0 0;font-size:12px}.history-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.history-item{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.history-item-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;display:flex}.history-item-row--static{cursor:default}.history-chevron{color:var(--text-faint);flex-shrink:0;font-size:18px;transition:transform .15s}.answer-summary{flex-direction:column;gap:10px;margin-top:4px;display:flex}.answer-summary-row{background:var(--card-2);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.answer-summary-label{color:var(--text-faint);font-size:12px}.answer-summary-value{text-align:right;font-weight:700}.answer-summary-value--correct{color:var(--green-text)}.answer-summary-value--wrong{color:var(--red-text)}.history-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:flex}.history-item--correct .history-icon{color:var(--green-text);background:#34e0a133}.history-item--wrong .history-icon{color:var(--red-text);background:#ff5c7a33}.history-body{flex:1;min-width:0}.history-prompt{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.history-meta{color:var(--text-faint);margin-top:2px;font-size:11px}.history-reward{color:var(--gold-text);white-space:nowrap;font-size:12px;font-weight:700}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#080312b8;justify-content:center;align-items:center;padding:20px;animation:.2s rise-in;display:flex;position:fixed;inset:0}.modal-card{background:var(--card);border:1px solid var(--border-strong);border-radius:22px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:26px 24px;display:flex;box-shadow:0 30px 80px #00000080}.modal-title{font-family:var(--font-heading);font-size:20px}.modal-subtitle{color:var(--text-dim);font-size:14px}.modal-actions{gap:10px;margin-top:4px;display:flex}.info-modal{text-align:center;align-items:center}.info-modal-icon{font-size:34px}.info-modal-text{color:var(--text-dim);font-size:14px;line-height:1.5}.legal-modal{max-width:640px;max-height:85vh;padding:22px 22px 20px}.legal-modal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.legal-modal-body{-webkit-overflow-scrolling:touch;padding-right:4px;overflow-y:auto}.lang-toggle{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;gap:6px;padding:3px;display:flex}.signup-lang-toggle{justify-content:center;margin-bottom:4px;display:flex}.lang-toggle-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;transition:background .15s,color .15s}.lang-toggle-btn--active{background:var(--gradient-primary);color:#fff}.legal-content{color:var(--text);text-align:left;font-size:14.5px;line-height:1.7}.legal-content .legal-updated{color:var(--text-faint);margin:0 0 14px;font-size:12px}.legal-content p{margin:0 0 14px}.legal-content h3{font-family:var(--font-heading);color:var(--purple-bright);margin:22px 0 8px;font-size:16px}.legal-content h3:first-of-type{margin-top:0}.legal-content ul{flex-direction:column;gap:6px;margin:0 0 14px;padding-left:20px;display:flex}.legal-content li{color:var(--text-dim)}.legal-content a{color:var(--blue-text);text-decoration:underline}.legal-page{justify-content:center;min-height:100svh;padding:32px 18px 48px;display:flex}.legal-page-card{background:var(--card);border:1px solid var(--border);border-radius:24px;width:100%;max-width:680px;padding:28px 26px 32px;box-shadow:0 20px 60px #0006}.legal-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.legal-page-title{font-family:var(--font-heading);margin:0 0 18px;font-size:24px}.legal-page-back{margin-top:24px}.checkbox-field{text-align:left;cursor:pointer;align-items:flex-start;gap:10px;display:flex}.checkbox-field input[type=checkbox]{width:18px;min-width:18px;height:18px;accent-color:var(--purple);cursor:pointer;margin-top:2px}.checkbox-field span{color:var(--text-dim);font-size:13px;line-height:1.5}.checkbox-field button{font:inherit;color:var(--blue-text);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.auth-link-btn{font:inherit;color:var(--blue-text);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.auth-back-row{text-align:left;width:100%}.auth-forgot-row{text-align:right;width:100%;margin-top:-8px}.auth-switch-row{text-align:center;width:100%;color:var(--text-dim);font-size:13px}.landing-footer{z-index:1;color:var(--text-faint);flex-direction:column;align-items:center;gap:8px;padding-top:8px;font-size:12px;display:flex;position:relative}.landing-footer-links{flex-wrap:wrap;justify-content:center;gap:6px 14px;display:flex}.landing-footer-links button,.landing-footer-links a{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;text-decoration:underline}.landing-footer-copyright{color:var(--text-faint)}.settings-legal-links{justify-content:center;gap:16px;padding-top:8px;display:flex}.settings-legal-links button{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;text-decoration:underline}.settings-danger-zone{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:8px;display:flex}.preset-row{gap:8px;display:flex}.preset-btn{background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text);font-family:var(--font-heading);cursor:pointer;border-radius:12px;flex:1;padding:10px 0;font-weight:700;transition:border-color .15s}.preset-btn:hover{border-color:var(--gold);color:var(--gold-text)}.preset-btn--active{border-color:var(--purple);color:var(--purple-bright);background:#9b4dff29}.milestone-card{text-align:center;background:linear-gradient(180deg, #9b4dff2e, var(--card) 55%);align-items:center;position:relative;overflow:hidden}.milestone-emoji{font-size:56px;animation:1s ease-in-out infinite flame-pulse}.milestone-title{background:var(--gradient-gold);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:26px}.milestone-subtitle{color:var(--text-dim);font-size:14px}.milestone-bonus{font-family:var(--font-heading);color:var(--gold-text);font-size:16px;font-weight:700}.milestone-confetti{pointer-events:none;position:absolute;inset:0}.confetti-piece{top:-10px;left:calc(var(--i) * 4.3%);background:hsl(calc(var(--i) * 35), 90%, 65%);opacity:.9;width:7px;height:12px;animation:1.8s ease-in forwards confetti-fall;animation-delay:calc(var(--i) * 50ms);border-radius:2px;position:absolute}@keyframes confetti-fall{to{opacity:0;top:110%;transform:rotate(400deg)}}.parent-code-card{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow);border-radius:20px;padding:20px 22px}.parent-code-label{text-transform:uppercase;letter-spacing:.06em;opacity:.85;font-size:12px;font-weight:600}.parent-code-value-row{justify-content:space-between;align-items:center;margin:8px 0 6px;display:flex}.parent-code-value{font-family:var(--font-heading);letter-spacing:.08em;font-size:32px;font-weight:800}.parent-code-card .field-hint{color:#ffffffd9}.parent-code-card .btn-secondary{color:#fff;background:#ffffff2e;border-color:#ffffff4d}.class-home-unit{font-family:var(--font-heading);margin-top:4px;font-size:18px;font-weight:800}.student-list{flex-direction:column;gap:14px;display:flex}.student-card{background:var(--card);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:14px;padding:18px;display:flex}.student-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.student-card-actions{flex-shrink:0;gap:8px;display:flex}.student-card-name{font-family:var(--font-heading);font-size:17px;font-weight:700}.student-card-username{color:var(--text-faint);margin-top:2px;font-size:12px}.student-card-stats{gap:10px;display:flex}.mini-stat{background:var(--bg-elevated);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px;display:flex}.mini-stat-value{font-family:var(--font-heading);font-size:14px;font-weight:700}.mini-stat-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.student-history{color:var(--text-dim);font-size:13px}.student-history summary{cursor:pointer;padding:4px 0;font-weight:600}.student-history[open] summary{margin-bottom:10px}.empty-state{text-align:center;color:var(--text-dim);background:var(--card);border:1px dashed var(--border-strong);border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:40px 20px;display:flex}.empty-state-emoji{font-size:36px}.loading-text{text-align:center;color:var(--text-dim);padding:40px 20px}.home-actions{flex-wrap:wrap;gap:10px;display:flex}.home-actions .btn{white-space:nowrap;flex:auto;min-width:0}.home-action-wrap{flex:auto;min-width:0;display:flex;position:relative}.home-action-wrap .btn{flex:auto;min-width:0}.info-badge{background:var(--card-2);border:1px solid var(--border-strong);width:18px;height:18px;color:var(--text-dim);font-family:var(--font-heading);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:800;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.info-badge:hover{border-color:var(--purple);color:var(--text)}.leaderboard-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.leaderboard-row{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.leaderboard-row--me{border-color:var(--purple);background:#9b4dff24;box-shadow:0 0 0 1px #9b4dff59}.leaderboard-row-main{align-items:center;gap:12px;display:flex}.leaderboard-nudge{color:var(--text-faint);border-top:1px solid var(--border);padding-top:6px;font-size:12px;line-height:1.4}.leaderboard-rank{background:var(--card-2);width:28px;height:28px;color:var(--text-dim);font-family:var(--font-heading);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.leaderboard-rank--1{background:var(--gradient-gold);color:#3a2200}.leaderboard-rank--2{color:#2a2f38;background:#c7cedb}.leaderboard-rank--3{color:#3a2200;background:#d99a5b}.leaderboard-info{flex:1;min-width:0}.leaderboard-username{font-family:var(--font-heading);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.leaderboard-grade{color:var(--text-faint);font-size:12px}.leaderboard-stats{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;font-size:13px;font-weight:600;display:flex}.leaderboard-streak{color:var(--gold-text)}.leaderboard-xp{color:var(--text-dim)}.share-card{text-align:center;background:linear-gradient(160deg,#1a0b33 0%,#3a0f7a 50%,#12081f 100%);border:1px solid #ffffff1f;border-radius:28px;flex-direction:column;align-self:center;align-items:center;gap:16px;width:320px;padding:22px 24px 26px;display:flex;position:relative;overflow:hidden}.share-card--themed{background:linear-gradient(160deg, var(--card-2), var(--card) 65%);border-color:var(--border-strong)}.share-card--themed .share-card-glow--1{background:radial-gradient(circle, var(--bg-glow-1), transparent 70%)}.share-card--themed .share-card-glow--2{background:radial-gradient(circle, var(--bg-glow-2), transparent 70%)}.share-card-glow{pointer-events:none;border-radius:50%;position:absolute}.share-card-glow--1{background:radial-gradient(circle,#9b4dff8c 0%,#9b4dff00 70%);width:220px;height:220px;top:-60px;right:-70px}.share-card-glow--2{background:radial-gradient(circle,#47bfff66 0%,#47bfff00 70%);width:200px;height:200px;bottom:-60px;left:-60px}.share-card-top{z-index:1;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;display:grid}.share-card-bolt{filter:drop-shadow(0 0 10px #f97316cc);font-size:30px;line-height:1}.share-card-bolt--mirror{visibility:hidden}.share-card-brand{text-align:center;font-family:var(--font-heading);color:var(--text);letter-spacing:.5px;font-size:30px;font-weight:800}.share-card-middle{z-index:1;flex-direction:column;align-items:center;gap:2px;display:flex}.share-card-date{font-family:var(--font-heading);color:var(--text);margin:0 0 4px;font-size:20px;font-weight:800}.share-card-score{font-family:var(--font-heading);color:var(--gold-text);margin:0 0 6px;font-size:54px;font-weight:800;line-height:1}.share-card-result{font-family:var(--font-heading);margin:4px 0 6px;font-size:26px;font-weight:800;line-height:1.25}.share-card-username{font-family:var(--font-heading);color:var(--text);margin:0;font-size:18px;font-weight:700}.share-card-xp{color:var(--purple-bright);text-align:center;margin:6px 0 0;font-size:22px;font-weight:800}.share-download-btn{justify-content:center;align-self:center;align-items:center;gap:6px;width:50%;padding:8px 14px;font-size:13px;display:flex}.wallet-card{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow);border-radius:22px;flex-direction:column;gap:14px;padding:22px 22px 20px;display:flex}.wallet-label{text-transform:uppercase;letter-spacing:.06em;opacity:.85;font-size:12px;font-weight:600}.wallet-balance{font-family:var(--font-heading);margin-top:2px;font-size:42px;font-weight:800}.wallet-meta-row{gap:10px;display:flex}.wallet-meta{background:#ffffff24;border-radius:12px;flex:1;padding:10px 12px}.wallet-meta-value{font-family:var(--font-heading);font-size:16px;font-weight:700}.wallet-meta-label{opacity:.85;margin-top:2px;font-size:11px}.wallet-card .btn-primary{box-shadow:none;background:#ffffff2e;border:1px solid #ffffff59}.wallet-card .btn-primary:hover{box-shadow:none}.finance-info-card{background:var(--card-2);border:1px solid var(--border);color:var(--text-dim);border-radius:14px;padding:14px 16px;font-size:13px;line-height:1.6}.finance-info-card strong{color:var(--text)}.finance-section-card{background:var(--card);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:12px;padding:18px;display:flex}.finance-section-card .section-heading{margin-bottom:0}.rate-form{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.rate-form-row{align-items:center;gap:10px;display:flex}.rate-input{background:var(--bg-elevated);border:1.5px solid var(--border);width:80px;color:var(--text);text-align:center;border-radius:12px;padding:10px 12px;font-size:16px;font-weight:700}.rate-input:focus{border-color:var(--purple);outline:none}.rate-form-static{color:var(--text-dim);font-size:14px;font-weight:600}.finance-student-list{flex-direction:column;gap:10px;display:flex}.finance-student-row{background:var(--bg-elevated);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.finance-student-row--clickable{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border:none;transition:border-color .15s}.finance-student-name{font-family:var(--font-heading);align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.finance-student-detail{color:var(--text-faint);margin-top:2px;font-size:12px}.friend-share-badge{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;display:inline-flex}.milestone-form{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.milestone-table{border-collapse:collapse;width:100%}.milestone-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);padding-bottom:8px;font-size:11px;font-weight:600}.milestone-table td{border-top:1px solid var(--border);padding:6px 0;font-size:14px}.milestone-table td:first-child{color:var(--text-dim)}.milestone-input{background:var(--bg-elevated);border:1.5px solid var(--border);width:70px;color:var(--text);border-radius:10px;padding:7px 10px;font-size:14px;font-weight:700}.milestone-input:focus{border-color:var(--purple);outline:none}.payout-history-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.payout-history-row{background:var(--bg-elevated);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.payout-history-student{font-family:var(--font-heading);font-size:13px;font-weight:700}.payout-history-date{color:var(--text-faint);margin-top:2px;font-size:11px}.payout-history-amount{font-family:var(--font-heading);color:var(--green-text);font-size:15px;font-weight:700}.payment-modal{max-width:400px}.payment-method-tabs{gap:8px;display:flex}.payment-method-tab{background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text-dim);font-family:var(--font-heading);cursor:pointer;border-radius:12px;flex:1;padding:10px 0;font-size:13px;font-weight:600;transition:all .15s}.payment-method-tab--active{border-color:var(--purple);color:var(--purple-bright);background:#9b4dff24}.payment-form{flex-direction:column;gap:14px;display:flex}.payment-form-row{gap:10px;display:flex}.payment-form-row .field{flex:1}.btn-paypal{color:#1a1a1a;background:#ffc439}.btn-paypal:not(:disabled):hover{background:#ffb800}.payment-success{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:10px 0 4px;display:flex}.payment-success-icon{font-size:44px}.weekly-progress{background:var(--bg-elevated);border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.weekly-progress-label{color:var(--text-dim);font-size:12px;line-height:1.4}.weekly-progress-bar{background:var(--card-2);border-radius:999px;height:8px;overflow:hidden}.weekly-progress-fill{background:var(--gradient-gold);border-radius:999px;height:100%;transition:width .3s}.weekly-progress-hint{color:var(--gold-text);font-size:12px;font-weight:600}.perfect-week-banner{flex-direction:column;gap:12px;display:flex}.perfect-week-card{background:linear-gradient(160deg, #ffce5429, var(--card) 60%);text-align:center;border:1px solid #ffce5466;border-radius:18px;flex-direction:column;gap:12px;padding:18px;display:flex}.perfect-week-emoji{font-size:34px}.perfect-week-text{font-size:14px;line-height:1.5}.perfect-week-actions{justify-content:center;gap:10px;display:flex}.perfect-week-adjust{text-align:left;flex-direction:column;gap:12px;display:flex}.perfect-week-bonus-list{flex-direction:column;gap:8px;display:flex}.perfect-week-bonus-row{background:var(--bg-elevated);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex}.perfect-week-bonus-name{font-family:var(--font-heading);flex:1;font-size:13px;font-weight:700}.perfect-week-bonus-dollar{color:var(--text-faint);font-size:14px}.perfect-week-bonus-input{background:var(--card-2);border:1.5px solid var(--border);width:64px;color:var(--text);border-radius:10px;padding:7px 8px;font-size:13px;font-weight:700}.perfect-week-bonus-input:focus{border-color:var(--purple);outline:none}.perfect-week-bonus-saved{color:var(--green-text);font-size:12px;font-weight:600}.perfect-week-celebration{z-index:60;text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:32px 24px;animation:.3s rise-in;display:flex;position:fixed;inset:0;overflow:hidden}.perfect-week-celebration-glow{pointer-events:none;border-radius:50%;position:absolute}.perfect-week-celebration-glow--1{background:radial-gradient(circle,#ffce5466 0%,#ffce5400 70%);width:360px;height:360px;top:-100px;right:-120px}.perfect-week-celebration-glow--2{background:radial-gradient(circle,#9b4dff66 0%,#9b4dff00 70%);width:320px;height:320px;bottom:-100px;left:-120px}.perfect-week-celebration-content{z-index:1;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:360px;display:flex;position:relative}.perfect-week-celebration-emoji{font-size:64px;animation:1.4s ease-in-out infinite flame-pulse}.perfect-week-celebration-title{font-family:var(--font-heading);background:var(--gradient-gold);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:32px;font-weight:800}.perfect-week-celebration-text{color:var(--text-dim);font-size:15px;line-height:1.5}.friend-request-banner-list{flex-direction:column;gap:10px;display:flex}.friend-request-card{background:linear-gradient(160deg, #9b4dff29, var(--card) 60%);border:1px solid #9b4dff66;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.friend-request-text{flex:1;min-width:160px;font-size:14px}.friend-request-actions{flex-shrink:0;gap:8px;display:flex}.incoming-share-banner{background:linear-gradient(160deg, #ff9e4429, var(--card) 60%);border:1px solid #ff9e4466;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.incoming-share-text{flex:1;min-width:160px;font-size:14px}.friend-search-input-wrap{width:100%;position:relative}.friend-search-input-wrap input{background:var(--bg-elevated);border:1.5px solid var(--border);width:100%;color:var(--text);border-radius:12px;padding:10px 12px;font-size:14px}.friend-search-input-wrap input:focus{border-color:var(--purple);outline:none}.friend-search-dropdown{z-index:20;background:var(--card-2);border:1.5px solid var(--border);border-radius:12px;max-height:260px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #00000059}.friend-search-dropdown-item{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.friend-search-dropdown-item:hover{background:var(--bg-elevated)}.friend-search-dropdown-avatar{flex-shrink:0;font-size:20px}.friend-search-dropdown-info{flex-direction:column;gap:2px;min-width:0;display:flex}.friend-search-dropdown-username{font-family:var(--font-heading);color:var(--text);font-size:13px;font-weight:700}.friend-search-dropdown-grade{color:var(--text-faint);font-size:11px}.friend-search-dropdown-empty{color:var(--text-faint);padding:12px;font-size:12.5px}.friend-search-row{background:var(--bg-elevated);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}.friend-search-name{font-family:var(--font-heading);font-size:13px;font-weight:700}.friend-search-status{color:var(--green-text);font-size:12px;font-weight:600}.friend-search-error{width:100%;color:var(--red-text);margin-top:4px;font-size:11px}.friend-count-line{color:var(--text-dim);font-size:13px}.friend-count-line strong{color:var(--text)}.testprep-home-card{background:linear-gradient(160deg, #ffce5424, var(--card) 60%);border:1px solid #ffce5466;border-radius:16px;flex-direction:column;gap:8px;padding:14px 16px;transition:border-color .15s;display:flex}.testprep-home-card:hover{border-color:var(--gold)}.testprep-home-card-main{text-align:left;cursor:pointer;width:100%;color:var(--text);font:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:0;display:flex}.testprep-home-card-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.testprep-home-card-title{font-family:var(--font-heading);font-size:14px;font-weight:700}.testprep-home-card-detail{color:var(--text-dim);font-size:12px}.testprep-home-card-actions{justify-content:flex-end;gap:8px;display:flex}.testprep-icon-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;transition:border-color .15s,color .15s;display:flex}.testprep-icon-btn--done:hover{border-color:var(--green);color:var(--green-text)}.testprep-icon-btn--cancel:hover{border-color:var(--red);color:var(--red-text)}.plan-history-list{flex-direction:column;gap:10px;display:flex}.plan-history-row{background:var(--card);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.plan-history-info{flex-direction:column;gap:3px;min-width:0;display:flex}.plan-history-title{font-family:var(--font-heading);font-size:13px;font-weight:700}.plan-history-detail{color:var(--text-faint);font-size:12px}.plan-status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:10px;font-weight:800}.plan-status-badge--completed{color:var(--green-text);background:#34e0a12e}.plan-status-badge--cancelled{color:var(--red-text);background:#ff5c7a2e}.plan-status-badge--pending{color:var(--amber-text);background:#ff9e442e}.testprep-header-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:8px;padding:16px 18px;display:flex}.testprep-countdown{font-family:var(--font-heading);font-size:16px;font-weight:700}.testprep-readiness{color:var(--gold-text);font-size:13px;font-weight:600}.testprep-day{background:var(--card);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:12px;padding:18px;display:flex}.testprep-day--locked{opacity:.6;border-style:dashed}.testprep-day-title{font-family:var(--font-heading);font-size:16px;font-weight:700}.testprep-day-focus{color:var(--purple-bright);font-size:13px;font-weight:600}.testprep-lesson{color:var(--text-dim);background:var(--bg-elevated);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;font-size:14px;line-height:1.6;display:flex}.testprep-question{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.testprep-question-prompt{font-size:14px;font-weight:600;line-height:1.5}.testprep-question-result{font-size:13px;font-weight:700}.testprep-question-result--correct{color:var(--green-text)}.testprep-question-result--wrong{color:var(--red-text)}.testprep-question-explanation{flex-direction:column;gap:6px;display:flex}.testprep-explanation-text{color:var(--text-dim);background:var(--bg-elevated);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5}.testprep-parent-list{flex-direction:column;gap:10px;display:flex}.testprep-parent-row{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.testprep-parent-title{font-family:var(--font-heading);font-size:13px;font-weight:700}.testprep-parent-detail{color:var(--text-faint);margin-top:2px;font-size:12px}.premium-modal{text-align:center;background:linear-gradient(180deg, #9b4dff2e, var(--card) 55%);align-items:center;position:relative}.modal-close-x{width:28px;height:28px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex;position:absolute;top:14px;right:14px}.modal-close-x:hover{color:var(--text);background:#ffffff29}.premium-modal-emoji{font-size:44px}.premium-modal-body{color:var(--text-dim);font-size:14px;line-height:1.5}.premium-modal-pricing{font-family:var(--font-heading);background:var(--gradient-gold);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:16px;font-weight:800}.premium-benefits{text-align:left;color:var(--text-dim);flex-direction:column;gap:10px;margin:0;padding:0;font-size:13px;line-height:1.5;list-style:none;display:flex}.upgrade-plan-heading{color:var(--text-dim);text-align:left;font-size:13px;font-weight:700}.plan-option-list{flex-direction:column;gap:8px;display:flex}.plan-option{text-align:left;background:var(--bg-elevated);border:1.5px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.plan-option:hover{border-color:var(--purple)}.plan-option--selected{border-color:var(--purple);background:#9b4dff29;box-shadow:0 0 0 2px #9b4dff59}.plan-option-label{color:var(--text);font-size:14px;font-weight:700}.plan-option-desc{color:var(--text-dim);font-size:12px}.trial-banner{text-align:center;border:1px solid var(--border);background:var(--card);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;width:100%;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:600;display:block}.trial-banner--normal{color:var(--purple-bright);background:#9b4dff1a;border-color:#9b4dff66}.trial-banner--warning{color:var(--gold-text);background:#ffc1071f;border-color:#ffc10780}.trial-banner--urgent{color:var(--red-text);background:#ff5c7a1f;border-color:#ff5c7a80}.upload-type-grid{flex-direction:column;gap:14px;display:flex}.upload-type-card{background:var(--card);border:1.5px solid var(--border);text-align:center;cursor:pointer;color:var(--text);border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:22px 20px;transition:border-color .15s,transform .1s;display:flex}.upload-type-card:hover{border-color:var(--purple)}.upload-type-card:active{transform:scale(.98)}.upload-type-emoji{font-size:34px}.upload-type-title{font-family:var(--font-heading);font-size:16px;font-weight:700}.upload-type-detail{color:var(--text-faint);font-size:12px}.source-option-grid{flex-direction:column;gap:10px;display:flex}.source-option-card{background:var(--card);border:1.5px solid var(--border);text-align:left;cursor:pointer;color:var(--text);border-radius:16px;align-items:center;gap:14px;padding:16px;transition:border-color .15s,transform .1s;display:flex}.source-option-card:hover{border-color:var(--purple)}.source-option-card:active{transform:scale(.98)}.source-option-card:disabled{opacity:.6;cursor:not-allowed}.source-option-card--selected{border-color:var(--purple);background:#9b4dff29;box-shadow:0 0 0 2px #9b4dff59}.source-option-icon{flex-shrink:0;font-size:28px}.source-option-text{min-width:0}.source-option-label{font-family:var(--font-heading);font-size:15px;font-weight:700}.source-option-sublabel{color:var(--text-faint);margin-top:2px;font-size:12px}.upload-hidden-input{display:none}.upload-picker-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.upload-pages-counter{color:var(--text-dim);text-align:center;margin:0;font-size:13px;font-weight:700}.upload-pages-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.upload-page-thumb{aspect-ratio:3/4;background:var(--card);border:1px solid var(--border);border-radius:12px;position:relative;overflow:hidden}.upload-page-thumb img{object-fit:cover;width:100%;height:100%}.upload-page-thumb-file{flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;padding:8px;display:flex}.upload-preview-file-icon{font-size:40px}.upload-preview-file-name{color:var(--text-dim);word-break:break-all;text-align:center;font-size:13px}.upload-page-number{color:#fff;background:#0009;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:800;display:flex;position:absolute;top:6px;left:6px}.upload-page-remove{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0009;border:none;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:15px;line-height:1;display:flex;position:absolute;top:6px;right:6px}.upload-page-remove:disabled{opacity:.5;cursor:not-allowed}.upload-item-actions{border-top:1px solid var(--border);justify-content:flex-end;margin-top:-1px;padding:8px 12px 10px;display:flex}.upload-detail-header-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.upload-detail-summary{color:var(--text-dim);font-size:14px;line-height:1.5}.upload-concepts-list{color:var(--text-dim);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.upload-question-readonly{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:12px;display:flex}.upload-question-options{color:var(--text-dim);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.upload-question-options--correct{color:var(--green-text);font-weight:700}.upload-question-answer{color:var(--gold-text);font-size:13px;font-weight:700}.testprep-parent-row--inline{flex-direction:row;justify-content:space-between;align-items:center}.grade-badge{font-family:var(--font-heading);border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:13px;font-weight:800}.grade-badge--a-plus{color:var(--green-text);background:#34e0a12e}.grade-badge--a{color:var(--blue-text);background:#47bfff2e}.grade-badge--b{color:var(--gold-text);background:#ffce542e}.grade-badge--c{color:var(--amber-text);background:#ff9f4a2e}.grade-badge--fail{color:var(--red-text);background:#ff5c7a2e}.grade-reward-list{flex-direction:column;gap:14px;display:flex}.grade-reward-card{background:var(--card-2);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.grade-reward-name{font-family:var(--font-heading);font-size:13px;font-weight:700}.grade-reward-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grade-reward-field{color:var(--text-faint);flex-direction:column;gap:4px;font-size:11px;display:flex}.grade-reward-input-row{background:var(--bg-elevated);border:1.5px solid var(--border);border-radius:10px;align-items:center;gap:4px;padding:8px 10px;display:flex}.grade-reward-input-row span{color:var(--text-faint);font-size:13px}.grade-reward-input-row input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.practice-question-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.practice-source-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--purple-bright);white-space:nowrap;background:#9b4dff24;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:700}.practice-results-card{text-align:center;align-items:center;gap:10px}.practice-results-score{font-family:var(--font-heading);background:var(--gradient-gold);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:800}.practice-results-coins{color:var(--gold-text);font-size:15px;font-weight:700}.practice-results-weak{color:var(--red-text)}.homework-results-card{position:relative;overflow:hidden}.grade-text--good{color:var(--green-text)}.grade-text--mid{color:var(--gold-text)}.grade-text--bad{color:var(--red-text)}.grades-overall-card{text-align:center;align-items:center;gap:6px}.grades-overall-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.grades-overall-value{font-family:var(--font-heading);font-size:30px;font-weight:800}.grades-subject-averages{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.grades-subject-average-row{justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.grades-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.grades-row{background:var(--card);border:1px solid var(--border);border-left:3px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.grades-row--good{border-left-color:var(--green)}.grades-row--mid{border-left-color:var(--gold)}.grades-row--bad{border-left-color:var(--red)}.grades-row-info{flex:1;min-width:0}.grades-row-title{font-size:13px;font-weight:600}.grades-row-detail{color:var(--text-faint);margin-top:2px;font-size:11px}.grades-row-percentage{font-family:var(--font-heading);flex-shrink:0;font-size:15px;font-weight:800}.grades-overall-mini{color:var(--text-dim);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.grades-trend-badge{color:var(--purple-bright);font-size:11px;font-weight:700}.share-streak-btn{position:relative}.shared-with-you-list{flex-direction:column;gap:6px;display:flex}.shared-with-you-row{color:var(--text-dim);justify-content:space-between;align-items:center;gap:10px;font-size:13px;line-height:1.5;display:flex}.shared-with-you-row strong{color:var(--text)}.shared-with-you-text{margin:0}.shared-with-you-back-btn{flex-shrink:0}.share-friend-list{flex-direction:column;gap:8px;display:flex}.share-friend-row{text-align:left;background:var(--card);border:1.5px solid var(--border);cursor:pointer;width:100%;color:var(--text);font:inherit;-webkit-tap-highlight-color:transparent;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,opacity .15s;display:flex}.share-friend-row:not(:disabled):hover{border-color:var(--purple)}.share-friend-row:disabled{cursor:default}.share-friend-avatar{background:var(--bg-elevated);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.share-friend-info{flex:1;min-width:0}.share-friend-name{font-family:var(--font-heading);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.share-friend-name-btn{min-width:0;max-width:100%;font-family:var(--font-heading);color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:700;display:flex}.share-friend-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.share-friend-stat{margin-top:2px;font-size:12px}.share-friend-stat--share{color:var(--blue-text)}.share-friend-stat--waiting{color:var(--amber-text);font-style:italic;font-weight:600}.share-flame{filter:grayscale();opacity:.4;flex-shrink:0;font-size:20px;transition:filter .15s,opacity .15s}.share-flame--shared{filter:none;opacity:1}.share-friend-summary-row{background:var(--card);border:1.5px solid var(--border);border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.modal-card--friend-picker{max-width:420px}.modal-card--friend-score{max-width:360px;box-shadow:none;background:0 0;border:none;align-items:center;padding:0}.friend-picker-search{background:var(--bg-elevated);border:1.5px solid var(--border);width:100%;color:var(--text);border-radius:12px;padding:10px 12px;font-size:14px}.friend-picker-search:focus{border-color:var(--purple);outline:none}.friend-picker-list{flex-direction:column;gap:8px;max-height:340px;display:flex;overflow-y:auto}.friend-list{flex-direction:column;gap:8px;display:flex}.friend-picker-row{background:var(--card-2);border:1.5px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.friend-picker-row-top{align-items:center;gap:12px;min-width:0;display:flex}.friend-picker-shared{color:var(--green-text);flex-shrink:0;align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.friend-picker-hint{text-align:left;margin:0 0 0 48px}.friend-picker-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.share-friend-locked-hint{text-align:right;flex-shrink:0;max-width:110px;font-size:11px}.poke-preset-list{flex-direction:column;gap:8px;max-height:340px;margin:4px 0;display:flex;overflow-y:auto}.poke-preset-btn{text-align:left;background:var(--card-2);border:1.5px solid var(--border);color:var(--text);border-radius:12px;padding:10px 14px;font-size:14px}.poke-preset-btn:not(:disabled):hover{border-color:var(--purple)}.poke-preset-btn:disabled{opacity:.6}.friend-poked-badge{color:var(--purple-text);flex-shrink:0;font-size:12px;font-weight:700}.friend-share-streak-icon{background:color-mix(in srgb, var(--amber-text) 18%, transparent);cursor:default;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;line-height:1;display:flex}.notification-list{flex-direction:column;gap:10px;display:flex}.notification-item{border-left:3px solid #0000;border-radius:16px;padding:14px 16px}.notification-item--unread{background:linear-gradient(160deg, #9b4dff29, var(--card) 60%);border-left-color:var(--purple)}.notification-item--read{background:var(--bg-elevated);opacity:.7}.notification-item-header{align-items:center;gap:8px;display:flex}.notification-item-icon{flex-shrink:0;font-size:18px}.notification-item-title{font-family:var(--font-heading);font-size:14px;font-weight:700}.notification-item-body{color:var(--text-dim);margin-top:4px;font-size:13px}.notification-item-time{color:var(--text-faint);margin-top:6px;font-size:11px}.notification-item-actions{gap:8px;margin-top:10px;display:flex}.notification-item-status{margin-top:10px;font-size:12px;font-weight:600}.notification-item-status--accepted{color:var(--green-text)}.notification-item-status--declined{color:var(--text-faint)}.install-prompt{background:var(--card);border:1.5px solid var(--border-strong);z-index:40;border-radius:16px;align-items:center;gap:12px;width:calc(100% - 36px);max-width:440px;padding:14px 16px;animation:.3s rise-in;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 36px #00000073}.install-prompt-icon{filter:drop-shadow(0 0 8px #9b4dff8c);flex-shrink:0;font-size:22px}.install-prompt-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.install-prompt-title{font-family:var(--font-heading);font-size:13px;font-weight:700}.install-prompt-detail{color:var(--text-dim);font-size:12px}.install-prompt-actions{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.install-prompt-actions .btn{padding:8px 14px;font-size:13px}.curriculum-loading{text-align:center;color:var(--text-dim);flex-direction:column;align-items:center;gap:16px;padding:48px 20px;display:flex}.curriculum-spinner{border:3px solid var(--border-strong);border-top-color:var(--purple);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite curriculum-spin}@keyframes curriculum-spin{to{transform:rotate(360deg)}}.curriculum-unit-list{flex-direction:column;gap:10px;display:flex}.curriculum-unit{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:4px 16px}.curriculum-unit-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;list-style:none;display:flex}.curriculum-unit-summary::-webkit-details-marker{display:none}.curriculum-unit-summary:before{content:"▸";color:var(--text-faint);margin-right:10px;transition:transform .15s;display:inline-block}.curriculum-unit[open]>.curriculum-unit-summary:before{transform:rotate(90deg)}.curriculum-unit-title{font-family:var(--font-heading);font-size:15px;font-weight:700}.curriculum-unit-count{color:var(--text-faint);flex-shrink:0;font-size:12px}.curriculum-topic-list{flex-direction:column;gap:8px;padding:0 0 14px;display:flex}.curriculum-topic{background:var(--card-2);border:1px solid var(--border);border-radius:12px;padding:4px 14px}.curriculum-topic-summary{cursor:pointer;padding:10px 0;font-size:14px;font-weight:600;list-style:none}.curriculum-topic-summary::-webkit-details-marker{display:none}.curriculum-topic-summary:before{content:"▸";color:var(--text-faint);margin-right:8px;transition:transform .15s;display:inline-block}.curriculum-topic[open]>.curriculum-topic-summary:before{transform:rotate(90deg)}.curriculum-topic-body{flex-direction:column;gap:12px;padding:0 0 16px;display:flex}.curriculum-explanation{color:var(--text);font-size:14px;line-height:1.6}.curriculum-box{border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.5}.curriculum-box-label{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:11px;font-weight:700}.curriculum-box--formulas{background:#9b4dff1a;border:1px solid #9b4dff4d}.curriculum-box--formulas .curriculum-box-label{color:var(--purple-bright)}.curriculum-formula-list{margin:0;padding-left:18px}.curriculum-formula-list li{font-family:Courier New,monospace}.curriculum-box--example{background:var(--bg-elevated);border:1px solid var(--border-strong)}.curriculum-box--example .curriculum-box-label{color:var(--blue-text)}.curriculum-example-text{white-space:pre-line}.curriculum-box--mistake{background:#ff5c7a1a;border:1px solid #ff5c7a59}.curriculum-box--mistake .curriculum-box-label{color:var(--red-text)}.curriculum-updated{text-align:center;color:var(--text-faint);padding-top:4px;font-size:12px}.teacher-stats-row{flex-wrap:wrap;gap:10px;display:flex}.teacher-stat-card{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:16px;flex-direction:column;flex:calc(50% - 5px);align-items:center;gap:4px;min-width:0;padding:14px 10px;display:flex}.teacher-stat-value{font-family:var(--font-heading);font-size:22px;font-weight:800}.teacher-stat-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.teacher-class-list{flex-direction:column;gap:12px;display:flex}.teacher-class-card{text-align:left;background:var(--card);border:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:18px;flex-direction:column;gap:6px;padding:16px 18px;transition:border-color .15s;display:flex}.teacher-class-card:hover{border-color:var(--purple)}.teacher-class-card-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.teacher-class-name{font-family:var(--font-heading);font-size:16px;font-weight:700}.teacher-class-code{font-family:var(--font-heading);letter-spacing:.06em;color:var(--purple-bright);white-space:nowrap;background:#9b4dff24;border-radius:8px;padding:3px 8px;font-size:13px;font-weight:700}.teacher-class-detail{color:var(--text-dim);font-size:13px}.teacher-current-unit{font-family:var(--font-heading);color:var(--text);margin-bottom:4px;font-size:15px;font-weight:700}.teacher-code-display{font-family:var(--font-heading);letter-spacing:.1em;text-align:center;color:var(--purple-bright);background:#9b4dff24;border-radius:14px;padding:14px;font-size:36px;font-weight:800}.teacher-student-list{flex-direction:column;gap:10px;display:flex}.teacher-assignment-list{flex-direction:column;gap:12px;display:flex}.teacher-assignment-card{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden}.teacher-assignment-card-header{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.teacher-recent-homework-list{flex-direction:column;gap:10px;display:flex}.teacher-recent-homework-row{text-align:left;background:var(--card);border:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;transition:border-color .15s;display:flex}.teacher-recent-homework-row:hover{border-color:var(--purple)}.teacher-assignment-students{flex-direction:column;gap:8px;padding:0 12px 12px;display:flex}.homework-banner{text-align:left;background:linear-gradient(160deg, #4285f429, var(--card) 60%);width:100%;font:inherit;color:inherit;cursor:pointer;border:1px solid #4285f466;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.class-cards-no-school{text-align:left;background:linear-gradient(160deg, color-mix(in srgb, var(--purple) 14%, transparent), var(--card) 60%);border:1px solid color-mix(in srgb, var(--purple) 35%, var(--border));width:100%;font:inherit;color:var(--text-dim);cursor:pointer;border-radius:16px;padding:14px 16px;font-size:14px}.homework-banner-text{flex:1;min-width:160px;font-size:14px}.answer-review-list{-webkit-overflow-scrolling:touch;flex-direction:column;gap:14px;max-height:55vh;padding-right:4px;display:flex;overflow-y:auto}.answer-review-row{background:var(--bg-elevated);border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.answer-review-question{color:var(--text);font-size:14px}.answer-review-correct{color:var(--green-text);font-size:13px;font-weight:600}.answer-review-wrong{color:var(--red-text);font-size:13px;font-weight:600}.modal-card--wide{max-width:560px}.homework-question-list{flex-direction:column;gap:12px;display:flex}.homework-question-editor{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.homework-question-editor-header{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.homework-question-editor textarea{background:var(--card);border:1.5px solid var(--border);width:100%;font:inherit;color:var(--text);resize:vertical;border-radius:10px;padding:8px 10px}.homework-question-option-row{align-items:center;gap:8px;display:flex}.homework-question-option-row input[type=radio]{accent-color:var(--purple);flex-shrink:0}.homework-question-option-row input[type=text]{background:var(--card);border:1.5px solid var(--border);font:inherit;color:var(--text);border-radius:10px;flex:1;padding:8px 10px}.homework-question-explanation{color:var(--text-dim);font-size:12.5px}.homework-bank-filters{flex-wrap:wrap;gap:8px;display:flex}.homework-bank-filters select{background:var(--bg-elevated);border:1.5px solid var(--border);min-width:0;font:inherit;color:var(--text);border-radius:12px;flex:auto;padding:10px 12px}.homework-bank-question-row{background:var(--bg-elevated);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.homework-bank-question-row input[type=checkbox]{accent-color:var(--purple);flex-shrink:0;margin-top:2px}.homework-calendar{flex-direction:column;gap:10px;display:flex}.homework-calendar-day{position:relative}.homework-calendar-badge{line-height:1;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.homework-calendar-badge--assigned,.homework-calendar-badge--overdue{border-radius:50%;width:6px;height:6px}.homework-calendar-badge--assigned{background:var(--purple)}.homework-calendar-badge--overdue{background:var(--red)}.homework-calendar-badge--completed{color:var(--green-text);font-size:9px;font-weight:800}.homework-random-count-input{background:var(--bg-elevated);border:1.5px solid var(--border);width:60px;font:inherit;color:var(--text);text-align:center;border-radius:12px;padding:10px}.deleted-by-author-tag{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--red-text);text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.message-admin-badge{background:color-mix(in srgb, var(--purple) 20%, transparent);color:var(--purple-text);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;margin-bottom:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.roster-table-wrap{border:1px solid var(--border);border-radius:14px;overflow-x:auto}.roster-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.roster-table th,.roster-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}.roster-table tbody tr:last-child td{border-bottom:none}.roster-th{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-heading);color:var(--text-dim);background:var(--bg-elevated);font-weight:700}.roster-th:hover{color:var(--text)}.roster-sort-arrow{color:var(--purple)}.roster-username{color:var(--text-dim)}.conversation-list{flex-direction:column;gap:10px;display:flex}.conversation-row{background:var(--card);border:1px solid var(--border);width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;transition:border-color .15s;display:flex}.conversation-row:hover{border-color:var(--purple)}.conversation-row-avatar{flex-shrink:0;font-size:26px}.conversation-row-info{flex:1;min-width:0}.conversation-row-name{font-family:var(--font-heading);font-size:15px;font-weight:700}.conversation-row-preview{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.conversation-row-unread{background:var(--purple);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:flex}.message-thread{flex-direction:column;gap:10px;display:flex}.message-bubble{border-radius:16px;flex-direction:column;gap:4px;max-width:80%;padding:10px 14px;display:flex}.message-bubble--mine{background:var(--purple);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.message-bubble--theirs{background:var(--card);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.message-bubble-body{white-space:pre-wrap;font-size:14px;line-height:1.4}.message-bubble-meta{opacity:.75;align-items:center;gap:10px;font-size:11px;display:flex}.message-bubble--mine .message-bubble-meta .forum-report-link{color:#fff}.message-input-box{background:var(--bg);gap:8px;padding-top:10px;display:flex;position:sticky;bottom:0}.message-input-box input{background:var(--bg-elevated);border:1.5px solid var(--border);font:inherit;color:var(--text);border-radius:999px;flex:1;padding:10px 16px}.forum-preview{margin-top:4px}.forum-preview-list{flex-direction:column;gap:6px;display:flex}.forum-preview-row{background:var(--card);border:1px solid var(--border);width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;transition:border-color .15s;display:flex}.forum-preview-row:hover{border-color:var(--purple)}.forum-preview-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.forum-preview-count{color:var(--text-dim);flex-shrink:0;font-size:12px}.forum-thread-list{flex-direction:column;gap:12px;display:flex}.forum-thread-card{text-align:left;background:var(--card);border:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:18px;flex-direction:column;gap:4px;padding:16px 18px;transition:border-color .15s;display:flex}.forum-thread-card:hover{border-color:var(--purple)}.forum-thread-card-title{font-family:var(--font-heading);font-size:16px;font-weight:700}.forum-thread-card-meta{color:var(--text-dim);font-size:13px}.forum-thread-detail{flex-direction:column;gap:14px;display:flex}.forum-post,.forum-reply{background:var(--card);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:6px;padding:16px 18px;display:flex}.forum-post-title{font-family:var(--font-heading);font-size:17px;font-weight:700}.forum-post-meta{color:var(--text-dim);font-size:12px}.forum-post-body{white-space:pre-wrap;font-size:14px;line-height:1.5}.forum-post-actions{align-self:flex-start;gap:14px;display:flex}.forum-report-link{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600;text-decoration:underline}.forum-reply-box{flex-direction:column;gap:10px;display:flex}.forum-reply-box textarea{background:var(--bg-elevated);border:1.5px solid var(--border);font:inherit;color:var(--text);resize:vertical;border-radius:14px;padding:12px 14px}.map-quiz-progress-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.map-quiz-progress-pill{font-family:var(--font-heading);color:var(--text-dim);background:var(--card-2);border:1px solid var(--border-strong);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:700}.map-quiz-map-wrap{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:10px}.map-quiz-svg-host{min-height:280px}.map-quiz-svg{width:100%;height:auto;display:block;overflow:visible}.map-quiz-svg path{stroke-linejoin:round;stroke-linecap:round}.map-quiz-base-water{fill:color-mix(in srgb, var(--blue) 22%, var(--card-2));pointer-events:none}.map-quiz-region{fill:var(--card-2);stroke:var(--border-strong);stroke-width:260px;cursor:pointer;transition:fill .15s,stroke .15s}.map-quiz-region:hover{fill:color-mix(in srgb, var(--purple) 18%, var(--card-2))}.map-quiz-region--ocean{fill:color-mix(in srgb, var(--blue) 38%, var(--card-2))}.map-quiz-region--ocean:hover{fill:color-mix(in srgb, var(--blue) 55%, var(--card-2))}.map-quiz-region--active{stroke:var(--purple);stroke-width:550px}.map-quiz-region--correct,.map-quiz-region--correct:hover{fill:color-mix(in srgb, var(--green) 45%, var(--card-2));stroke:var(--green);cursor:default}.map-quiz-region-check{fill:var(--green-text);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:4600px;font-weight:700}.map-quiz-name-grid{flex-wrap:wrap;gap:8px;max-height:320px;display:flex;overflow-y:auto}.map-quiz-name-btn{flex:auto}.map-quiz-name-btn--wrong{color:var(--red-text);background:#ff5c7a29;border-color:#ff5c7a99;animation:.4s map-quiz-shake}@keyframes map-quiz-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@media (width>=540px){body{justify-content:center;display:flex}.screen,.auth-screen{width:100%}}
