:root{--bg: #faf8f5;--surface: #ffffff;--text: #2b2b2b;--muted: #5a6772;--primary: #1565c0;--primary-dark: #0d47a1;--border: #e5e0d5;--danger-bg: #fdecea;--danger-fg: #b3261e;--gentle-bg: #fdf6e3;--gentle-fg: #8a6116;--correct-bg: #e8f5e9;--correct-fg: #2e7d32;--line-spacing: 1.6;--radius: 10px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:17px;line-height:var(--line-spacing);letter-spacing:.01em;text-align:left}h1,h2,h3{font-weight:600;line-height:1.3}a{color:var(--primary)}p{margin:0 0 .9em}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border:none;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:1rem;font-family:inherit;cursor:pointer}.btn:hover{background:var(--primary-dark)}.btn:disabled{opacity:.6;cursor:default}.btn-link{min-height:44px;padding:0 8px;border:none;background:none;color:var(--primary);font:inherit;cursor:pointer;text-decoration:underline}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}input,button{font-family:inherit}.muted{color:var(--muted)}.app-shell{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;min-height:56px;border-bottom:1px solid var(--border);background:var(--surface)}.topbar .brand{font-size:1.1rem;letter-spacing:.04em}.module-roadmap{display:flex;gap:14px;flex-wrap:wrap;flex:1}.module-roadmap .module{font-size:.9rem;color:var(--muted);text-decoration:none}.module-roadmap .module.active{color:var(--text);opacity:1;font-weight:600;border-bottom:2px solid var(--primary)}.topbar-user{display:flex;align-items:center;gap:12px}.topbar-user .user-email{color:var(--muted);font-size:.9rem}.content{padding:28px 32px;max-width:900px;width:100%;margin:0 auto}.login-page{max-width:380px;margin:10vh auto;padding:0 20px}.login-form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:600}.field input{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:1rem}.field select{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:1rem}.field-help{color:var(--muted);font-size:.9rem}.form-page{max-width:680px}.page-heading-row{display:flex;align-items:start;justify-content:space-between;gap:20px}.section-divider{width:100%;margin:2rem 0;border:0;border-top:1px solid var(--border)}.btn-secondary{min-height:42px;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.user-form{display:flex;flex-direction:column;gap:18px;margin-top:20px}.success-banner{padding:12px 16px;border:1px solid #b8d8c0;border-radius:var(--radius);background:#edf7ef;color:#235c31}.account-create-form{margin-bottom:2rem}.account-create-form h2,.account-list h2{margin-top:0}.account-list{border-top:1px solid var(--border);padding-top:1.5rem}.account-list-heading{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.account-table-wrap{overflow-x:auto}.account-table{border-collapse:collapse;width:100%}.account-table th,.account-table td{border-bottom:1px solid var(--border);padding:.8rem;text-align:left}.account-table th:last-child,.account-table td:last-child{text-align:right}.btn-danger{background:#a61b1b;border:1px solid #a61b1b;border-radius:4px;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:.55rem .85rem}.btn-danger:hover:not(:disabled){background:#7f1111}.btn-danger:disabled{cursor:wait;opacity:.65}.student-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.student-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.student-row-main{display:flex;flex-direction:column;gap:2px}.student-code{font-weight:600;font-size:1.05rem}.student-age{color:var(--muted);font-size:.9rem}.session-code-card{margin-top:20px;padding:20px 24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center}.session-code{font-size:2.4rem;font-weight:700;letter-spacing:.12em;margin:8px 0}.risk-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.9rem;font-weight:600}.error-banner{padding:12px 16px;border-radius:var(--radius);background:var(--danger-bg);color:var(--danger-fg);border:1px solid #f3c6c2}.spinner{display:flex;align-items:center;gap:10px;color:var(--muted);padding:16px 0}.spinner-dot{width:16px;height:16px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner-dot{animation:none}}.runner{max-width:640px;margin:8vh auto;padding:0 24px;text-align:center}.worksheet{max-width:640px;margin:0 auto;text-align:center}.worksheet-title{font-size:1.1rem;font-weight:600;color:var(--muted);margin:0}.worksheet-progress{color:var(--muted);font-size:.95rem;letter-spacing:.04em;margin:4px 0 32px}.worksheet-sentence{font-size:2rem;line-height:1.6;letter-spacing:.03em;margin:0 0 32px}.worksheet-options{display:flex;flex-direction:column;gap:16px;max-width:360px;margin:0 auto}.worksheet-option{min-height:72px;font-size:1.5rem}.worksheet-field{display:flex;flex-direction:column;gap:12px;max-width:360px;margin:0 auto}.worksheet-input{min-height:64px;padding:0 16px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:inherit;font-size:1.75rem;letter-spacing:.08em;text-align:center}.worksheet-input:focus{border-color:var(--primary);outline:none}.worksheet-feedback{display:flex;flex-direction:column;align-items:center;gap:24px;padding:32px 24px;border-radius:var(--radius)}.worksheet-feedback-correct{background:var(--correct-bg);color:var(--correct-fg)}.worksheet-feedback-gentle{background:var(--gentle-bg);color:var(--gentle-fg)}.worksheet-verdict{font-size:1.75rem;font-weight:600;margin:0}.worksheet-points{font-size:2.5rem;font-weight:700;color:var(--primary)}.worksheet-recap{list-style:none;padding:0;max-width:360px;margin:24px auto 0;text-align:left}.worksheet-recap li{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:1.1rem}.progress-report-list{margin:16px 0}.progress-report-metric{padding:12px 0;border-bottom:1px solid var(--border)}.progress-report-metric h2{margin:0 0 4px;font-size:1.1rem}.progress-report-metric p{margin:0;font-size:1.1rem}.progress-report-period,.progress-report-student{color:var(--muted);margin:4px 0}@media print{.no-print{display:none!important}}
