[hidden]{display:none!important}input,select{font:inherit;padding:12px;border:1px solid #dcded4;border-radius:10px;background:#fff;color:#30392c;max-width:100%}label.field{display:grid;gap:7px;margin-bottom:16px}.auth-panel{max-width:540px;margin:auto}.auth-panel .primary{width:100%}.auth-tabs{display:flex;gap:10px;margin-bottom:24px}.auth-tabs button{flex:1}.error{color:#a13737;margin:12px 0}.info{padding:16px;background:#f1f4e9;border-radius:12px;margin:16px 0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.child-picker{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.metric{padding:24px;background:white;border-radius:18px;border:1px solid #e7e9de}.metric strong{font-size:28px;display:block}.metric p{color:#717965;margin-top:8px}.data-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #edeede}.review{padding:16px;border-radius:12px;background:#f5f6ef;margin:12px 0}.review small{display:block;margin-top:8px}.code{font-family:monospace;font-size:26px;letter-spacing:3px}.options{display:grid;gap:12px}.quiz-label{margin:20px 0}.quiz-actions{display:flex;justify-content:space-between;margin-top:20px}.topic-list{display:grid;gap:18px}.topic-row{display:grid;gap:7px}.week-bars{display:flex;gap:16px;align-items:flex-end;height:200px;margin-top:24px}.week-column{flex:1;text-align:center;min-width:60px}.week-bar{background:#aec68f;border-radius:8px 8px 0 0;min-height:3px}.week-column small{display:block;margin-top:8px}.empty{padding:25px;color:#717965}.button-secondary{border:1px solid #cbd3bd;background:#fff;border-radius:10px;padding:12px 18px;cursor:pointer;color:#465b34;font:inherit}.subject-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.subject-actions button{flex:1}.test-card p{min-height:40px}.hint{font-size:13px;color:#68755d;margin:12px 0}button:disabled{opacity:.55;cursor:wait}#quiz-dialog h2{margin-top:24px}.page-heading{align-items:start}
input, select { min-width: 0; font-size: 16px; }
button { min-height: 44px; }
#page-content, .workspace, .header-right, .page-heading > div { min-width: 0; }
#account-label, h1, .review, .subject-row, .hint { overflow-wrap: anywhere; }
.sidebar { overflow-y: auto; }
.code { overflow-wrap: anywhere; letter-spacing: 1px; }
#guest-login { width: 100%; }
.data-scroll { max-width: 100%; -webkit-overflow-scrolling: touch; }
.week-bars { overflow-x: auto; }
#quiz-dialog { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
#quiz-dialog .close { width: 44px; height: 44px; top: 6px; right: 6px; }
.quiz-actions { gap: 12px; }
.option { min-height: 48px; overflow-wrap: anywhere; }
#toast { max-width: calc(100vw - 32px); width: max-content; bottom: calc(16px + env(safe-area-inset-bottom)); }
@media (max-width: 900px) {
 .sidebar { position: relative; width: 100%; height: auto; padding: 16px 20px 12px; border-right: 0; border-bottom: 1px solid var(--line); }
 .brand { font-size: 23px; }
 .brand-mark { font-size: 30px; margin-right: 8px; }
 .class-tag { display: block; margin: 8px 0 0; }
 .nav-label, .sidebar-bottom { display: none; }
 .workspace { margin-left: 0; }
 #navigation { display: flex; flex-wrap: nowrap; gap: 8px; margin-top: 12px; overflow-x: auto; padding: 4px 0 8px; -webkit-overflow-scrolling: touch; }
 #navigation:empty { display: none; }
 #navigation button { flex: 0 0 auto; width: auto; font-size: 14px; padding: 12px 14px; white-space: nowrap; }
 header { height: auto; min-height: 72px; padding: 14px 20px; gap: 16px; }
 .breadcrumb { max-width: none; line-height: 1.5; }
 .header-right { gap: 12px; }
 #logout { flex-shrink: 0; }
 main { padding: 24px 20px; }
 .test-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
 .metric { padding: 16px; }
}
@media (max-width: 700px) {
 .test-grid, .metric-grid { grid-template-columns: 1fr; }
 .sidebar { padding: 14px 16px 8px; }
 header { padding: 12px 16px; flex-wrap: wrap; gap: 8px; }
 .breadcrumb { width: 100%; font-size: 12px; }
 .breadcrumb span { display: inline; }
 .breadcrumb strong { display: inline; }
 .header-right { width: 100%; justify-content: space-between; }
 .header-right:has(#logout[hidden]) { display: none; }
 #account-label { flex: 1; font-size: 14px; }
 main { padding: 20px 16px; }
 h1 { font-size: 27px; line-height: 1.25; }
 .page-heading p { font-size: 14px; line-height: 1.6; }
 .auth-panel, .panel { padding: 18px; }
 .primary, .button-secondary, .text-btn { font-size: 14px; }
 .auth-tabs { gap: 8px; }
 .auth-tabs button { padding: 12px 8px; }
 .child-picker { align-items: stretch; }
 .child-picker select { width: 100%; }
 .code { font-size: 20px; }
 .quiz-actions .primary { flex: 1; }
 #quiz-dialog { width: calc(100vw - 16px); max-width: 540px; max-height: calc(100dvh - 16px); margin: auto; padding: 46px 18px 20px; border-radius: 16px; }
 #quiz-dialog h2 { font-size: 22px; margin-top: 16px; }
 .options { margin: 18px 0; }
 .option { font-size: 16px; }
 footer { font-size: 11px; }
}

.curriculum-panel{margin-bottom:24px}.curriculum-panel summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}.curriculum-panel p{line-height:1.7;overflow-wrap:anywhere}.not-studied-button{width:100%}.not-studied-panel{margin:20px 0}

.xp-level-track{height:12px;border-radius:20px;background:#d9e6d0;overflow:hidden;max-width:500px}.xp-level-track span{display:block;height:100%;background:#357259;border-radius:20px}
.comparison-panel{margin:24px 0}.comparison-panel .field{margin-top:18px}.comparison-svg{display:block;width:100%;max-width:550px;margin:auto}.comparison-svg text{fill:#59694f;font-size:12px}.comparison-svg .chart-value{font-size:16px;font-weight:700}.comparison-summary{text-align:center;font-weight:700;font-size:16px}
.quiz-xp{background:#edf5e5;padding:14px;border-radius:10px;color:#357259;font-weight:700}.result-comparison{margin-top:20px}

.quiz-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}
.quiz-header .quiz-label{margin:0}
.quiz-timer{font-variant-numeric:tabular-nums;font-weight:700;background:#edf3ea;color:#315c46;border-radius:12px;padding:8px 12px;white-space:nowrap}
.quiz-timer.timer-low{background:#fff0dd;color:#8c430a}
.skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.skill-card,.mistake-card{border:1px solid #e0e7da;border-radius:14px;padding:18px;margin:12px 0;background:#fafcf6}.skill-card h3{margin-top:14px}.correction-queue,.mistake-workshop,.topic-catalog{margin-bottom:24px}#learning-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.topic-choice{padding:14px;border:1px solid #d5dfcd;border-radius:10px;background:#fff;text-align:left;color:var(--ink);display:grid;gap:7px}.topic-choice small{color:#67745c}.worked-steps{padding:16px;border-left:4px solid #78a17a;background:#edf5e9;line-height:1.8;border-radius:8px;white-space:normal;overflow-wrap:anywhere}textarea{font:inherit;font-size:16px;min-width:0;max-width:100%;width:100%;padding:12px;border:1px solid #dcded4;border-radius:10px;resize:vertical}.result-reflection{padding:14px 0;border-bottom:1px solid #e3e8de}.result-reflection summary summary{cursor:pointer;min-height:44px;padding:12px 0}.mistake-form{margin-top:18px}.reflection-status{color:#357259;margin-top:10px}
@media(max-width:900px){#learning-topics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.skill-grid{grid-template-columns:1fr}.mistake-card{padding:14px}#learning-topics{grid-template-columns:1fr}}
.trial-intro,.trial-history{margin-bottom:24px}.trial-mode-grid,.trial-best-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.trial-mode-card,.trial-best-card{border:1px solid #e0dbea;border-radius:16px;padding:20px;background:#f7f4fb}.trial-mode-card h3{font-size:22px;margin:12px 0}.trial-duration{color:#75569b;font-weight:700;font-variant-numeric:tabular-nums}.trial-mode-card .primary{margin-top:18px;width:100%;background:#79579d}.trial-best-card strong{display:block;font-size:24px;margin:14px 0}.trial-best-card small,.trial-history td small{display:block;margin-top:8px}.trial-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}.trial-hud>div{text-align:center;padding:12px 8px;border:1px solid #e6deed;border-radius:12px;background:#f7f4fb}.trial-hud span,.trial-result-metrics span{display:block;font-size:12px;margin-bottom:8px;color:#6b6574}.trial-hud strong{font-size:27px;font-variant-numeric:tabular-nums}.trial-hud .timer-low{color:#a44c19}.trial-prompt{font-size:22px;line-height:1.5;overflow-wrap:anywhere}.trial-feedback{padding:16px;border-radius:12px;margin-top:18px}.trial-feedback.feedback-correct{background:#eaf5e5;color:#356142}.trial-feedback.feedback-wrong{background:#fff2df;color:#794b20}.trial-feedback p{margin:10px 0}.trial-result{text-align:center}.trial-result-score{font-size:64px;font-weight:800;color:#79579d;margin:22px 0}.trial-result-score small{display:block;font-size:16px;font-weight:400}.trial-result-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:center;margin:24px 0}.trial-result-metrics>div{padding:16px;background:#f7f4fb;border-radius:12px}.trial-result-metrics strong{display:block;font-size:22px;margin-bottom:8px}.trial-result .actions{justify-content:center}.trial-result details{text-align:left}.trial-result summary{padding:14px 0;cursor:pointer;min-height:44px}
@media(max-width:700px){.trial-mode-grid,.trial-best-grid{grid-template-columns:1fr}.trial-mode-card{padding:18px}.trial-hud strong{font-size:23px}.trial-hud span{font-size:11px}}
.trial-hud{position:sticky;top:0;z-index:1;background:#fff}


.career-filters{display:flex;gap:16px;flex-wrap:wrap}.career-filters .field{flex:1;min-width:140px}.career-list{display:grid;gap:10px}.career-match{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;padding:16px;white-space:normal}.career-match small{display:block;margin-top:6px;font-weight:400}.match-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;padding:14px;background:#f6f8f2;border-radius:12px;margin:16px 0;font-size:14px}@media(max-width:600px){.career-match{flex-wrap:wrap}.career-match>div{flex:1 1 100%}.match-stats{grid-template-columns:1fr}}

.progress-card{padding:18px;border:1px solid #d9e3d2;border-radius:16px;background:#f6f9f2;box-shadow:0 3px 12px #24311c08}.progress-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.progress-label{display:block;color:#67745e;font-size:10px;font-weight:700;letter-spacing:1.2px;line-height:1.5}.progress-card h2{font-size:18px;line-height:1.4;margin:3px 0 0;white-space:normal}.progress-card h2 span{font-size:14px;font-weight:500;color:#617056}.progress-xp{font-size:21px;white-space:nowrap}.progress-xp span,.progress-rr span{font-size:11px;font-weight:500;color:#67745e}.progress-card .xp-level-track{height:7px;background:#e1e8da}.progress-next{display:flex;justify-content:space-between;gap:8px;font-size:11px;line-height:1.5;color:#596651;margin:8px 0 16px}.progress-rank{display:flex;align-items:center;gap:10px;padding-top:15px;border-top:1px solid #dde5d6}.progress-rank-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:#e5e8e2;color:#7a8380;font-size:23px}.progress-rank>div strong{display:block;font-size:17px;line-height:1.5}.progress-rr{margin-left:auto;white-space:nowrap;font-size:19px}.progress-rank-next{font-size:11px;text-align:right;color:#67745e;margin:6px 0 0}.progress-card{margin-bottom:24px}





/* Current dashboard modes and rank header. */
.play-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.play-options button{text-align:left;min-height:76px;white-space:normal}.play-options strong,.play-options small{display:block}.play-options small{margin-top:8px;font-weight:400}.play-options .play-selected{border-color:#7254a4;background:#f2ecfb}
.page-heading:has(#dashboard-rank-slot:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);grid-template-areas:"welcome rank";align-items:start;gap:24px}.page-heading:has(#dashboard-rank-slot:not([hidden]))>div:first-child{grid-area:welcome}#dashboard-rank-slot:not([hidden]){display:contents}.dashboard-rank{grid-area:rank;min-width:0;text-align:right;align-self:start}.dashboard-rank .eyebrow{font-size:9px;letter-spacing:1.8px;color:#8e9888;font-weight:600}.dashboard-rank h2{font-family:Manrope,sans-serif;font-size:32px;letter-spacing:-1.2px;line-height:normal;margin:10px 0;color:#30392c}.rank-greeting-icon{font-size:25px;color:#71548e;vertical-align:middle}.dashboard-rank p{color:#8b9286;font-size:12px;line-height:1.5;margin:0;font-weight:400}.dashboard-rank p strong{font-weight:600}.rr-up{color:#357259;font-weight:700}.rr-down{color:#a06032;font-weight:700}
@media(max-width:900px){.play-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.comparison-panel select{width:100%;min-width:0}}
@media(max-width:600px){.play-options{grid-template-columns:1fr}.page-heading:has(#dashboard-rank-slot:not([hidden])){grid-template-columns:minmax(0,1fr);grid-template-areas:"welcome" "rank";gap:16px}.dashboard-rank{text-align:left}.dashboard-rank h2{font-size:27px;line-height:1.25}.dashboard-rank .eyebrow{font-size:8px}.dashboard-rank p{font-size:14px;line-height:1.6}.progress-card-top{gap:8px}.progress-card h2{font-size:17px}}


.monitor-summary{margin-bottom:24px}.monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0}.monitor-card{border:1px solid #dce4d5;border-radius:12px;padding:16px;background:#f7faf3;min-width:0}.monitor-card>span,.monitor-card small{display:block;font-size:12px;line-height:1.5;color:#65765a}.monitor-card>strong{display:block;font-size:22px;line-height:1.4;margin:10px 0;overflow-wrap:anywhere}.monitor-summary .section-head{flex-wrap:wrap;gap:12px}.monitor-summary td{overflow-wrap:anywhere}@media(max-width:600px){.monitor-grid{grid-template-columns:1fr}.monitor-card>strong{font-size:20px}}
