.account-chip{margin-left:auto;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--brand-deep);padding:11px 13px;font-weight:850;box-shadow:var(--shadow-soft)}.account-overlay{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:20px;background:rgba(12,25,49,.52)}.account-card{position:relative;width:min(100%,490px);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);border-radius:25px;background:var(--paper);color:var(--ink);padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.account-close{position:absolute;right:18px;top:18px;width:36px;height:36px;border:0;border-radius:11px;background:var(--paper-soft);color:var(--muted);font-size:23px}.account-symbol{width:48px;height:48px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,var(--brand),var(--violet));color:#fff;font-size:25px;box-shadow:0 10px 22px color-mix(in srgb,var(--brand) 28%,transparent)}.account-card h2{margin:17px 0 4px;font-size:28px;letter-spacing:-.05em}.account-subtitle{margin:0 0 20px;color:var(--muted);line-height:1.45}.account-card form{display:grid;gap:13px}.account-card label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:800}.account-card input{width:100%;border:2px solid var(--line);border-radius:13px;background:var(--paper-soft);color:var(--ink);padding:12px;outline:none}.account-card input:focus{border-color:var(--brand)}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.account-primary{margin-top:4px;border:0;border-radius:14px;background:var(--brand);color:#fff;padding:13px;font-weight:850;box-shadow:0 9px 18px color-mix(in srgb,var(--brand) 25%,transparent)}.account-switch,.logout-button{border:0;background:transparent;color:var(--brand-deep);font-weight:800;padding:13px 0 0}.logout-button{color:var(--coral);text-align:left}.account-error,.account-success{border-radius:12px;padding:11px 12px;font-size:13px;line-height:1.4}.account-error{background:color-mix(in srgb,var(--coral) 15%,var(--paper));color:color-mix(in srgb,var(--coral) 80%,var(--ink))}.account-success{background:color-mix(in srgb,var(--mint) 15%,var(--paper));color:color-mix(in srgb,var(--mint) 75%,var(--ink))}.profile-heading{display:flex;align-items:center;gap:13px;padding-right:34px}.avatar{width:51px;height:51px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,var(--brand),var(--violet));color:#fff;font-size:21px;font-weight:900}.profile-heading h2{margin:1px 0 2px;font-size:23px}.profile-heading p{margin:0;color:var(--muted);font-size:13px}.profile-eyebrow{color:var(--brand)!important;font-size:10px!important;font-weight:850;letter-spacing:.1em}.class-picker{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:18px 0 14px;padding:14px;border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line));border-radius:17px;background:color-mix(in srgb,var(--brand) 7%,var(--paper))}.class-picker strong{display:block;font-size:14px}.class-picker small{display:block;max-width:245px;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.class-select-label{display:grid!important;gap:5px;flex:none;color:var(--muted)!important;font-size:10px!important;text-transform:uppercase;letter-spacing:.06em}.class-select-label select{min-width:102px;border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);padding:9px 8px;font:inherit;font-size:12px;font-weight:800;letter-spacing:0;text-transform:none}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0 13px}.profile-stats article{border:1px solid var(--line);border-radius:14px;background:var(--paper-soft);padding:10px 6px;text-align:center}.profile-stats b{display:block;color:var(--brand);font-size:20px;letter-spacing:-.04em}.profile-stats span{color:var(--muted);font-size:10px;font-weight:750}.grade-card{display:grid;gap:3px;border-radius:15px;background:color-mix(in srgb,var(--amber) 13%,var(--paper));padding:13px;margin-bottom:18px}.grade-card strong{color:color-mix(in srgb,var(--amber) 75%,var(--ink));font-size:14px}.grade-card span,.phone-status{color:var(--muted);font-size:12px;line-height:1.4}.phone-status{margin:0}@media(max-width:720px){.account-overlay{align-items:end;padding:0}.account-card{width:100%;max-height:88dvh;border-radius:25px 25px 0 0;padding:24px 20px}.account-chip{display:none}.account-grid{grid-template-columns:1fr}.class-picker{align-items:stretch;flex-direction:column}.class-select-label select{width:100%}.profile-stats{gap:6px}.profile-stats article{padding:9px 4px}.profile-stats b{font-size:18px}}

.assistant-picker{margin:14px 0 4px;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--paper-soft)}.assistant-picker legend{padding:0 5px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.assistant-options{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:8px}.assistant-option{display:grid;justify-items:center;gap:3px;padding:7px 3px;border:1px solid var(--line);border-radius:13px;background:var(--paper);cursor:pointer;font-size:10px;color:var(--muted);transition:.16s ease}.assistant-option input{position:absolute;opacity:0;pointer-events:none}.assistant-option:has(input:checked){border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--paper));color:var(--brand-deep);box-shadow:0 2px 0 color-mix(in srgb,var(--brand) 18%,transparent)}.assistant-avatar{font-size:25px;line-height:1}.assistant-option b{font-size:10px}@media(max-width:560px){.assistant-options{grid-template-columns:repeat(5,minmax(48px,1fr));overflow-x:auto}.assistant-option{min-width:48px}.assistant-option b{font-size:9px}}
.subscription-card{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:center;margin:18px 0;padding:15px 16px;border:1px solid rgba(99,102,241,.22);border-radius:18px;background:linear-gradient(135deg,rgba(99,102,241,.09),rgba(236,72,153,.08))}.subscription-card .profile-eyebrow{margin:0 0 4px;color:#6656d9;font-size:10px;font-weight:900;letter-spacing:.08em}.subscription-card strong{display:block;color:#202344;font-size:15px}.subscription-card small{display:block;margin-top:4px;color:#657084;line-height:1.35}.subscription-button{min-width:76px;padding:11px 14px;border:0;border-radius:999px;background:linear-gradient(135deg,#7357ed,#d447a8);color:#fff;font:inherit;font-weight:900;box-shadow:0 4px 0 #5037b7;cursor:pointer}.subscription-button:active{transform:translateY(2px);box-shadow:0 2px 0 #5037b7}.subscription-note{grid-column:1 / -1;margin:2px 0 0;color:#6656d9;font-size:12px;line-height:1.35}@media(max-width:520px){.subscription-card{padding:13px}.subscription-card strong{font-size:14px}.subscription-button{min-width:68px;padding:10px 12px}}

/* Protected route: the map is visible only after the session check succeeds. */
body.auth-pending .app,
body.auth-required .app{visibility:hidden;pointer-events:none}
body.auth-pending #account-overlay,
body.auth-required #account-overlay{visibility:visible;pointer-events:auto}

.reset-progress-button{display:block;width:100%;margin:12px 0 0;padding:11px 14px;border:1px solid #f0a2a2;border-radius:12px;background:#fff5f5;color:#b42318;font:inherit;font-weight:800;cursor:pointer}.reset-progress-button:hover{background:#ffe5e5}.reset-progress-button:disabled{opacity:.55;cursor:wait}
