:root{color-scheme:light;--bg-a: #e8f2ff;--bg-b: #f2f7ff;--bg-c: #f9f5ff;--card: rgba(255, 255, 255, .72);--card-border: rgba(18, 40, 72, .14);--text: #101a2d;--muted: #4b5f80;--reading: #2f7eff;--listening: #17a7b9;--writing: #b65fe5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:Outfit,Manrope,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--text)}body{background:radial-gradient(circle at 0% 0%,rgba(22,119,255,.22),transparent 38%),radial-gradient(circle at 100% 20%,rgba(182,95,229,.2),transparent 34%),linear-gradient(160deg,var(--bg-a) 0%,var(--bg-b) 55%,var(--bg-c) 100%)}.practice-root{min-height:100vh;padding:24px}.glass{border:1px solid var(--card-border);border-radius:24px;background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 50px #101a2d1a}.top-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;gap:16px}.top-nav.compact{margin-bottom:18px}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand img{width:44px;height:44px;border-radius:12px}.brand strong{display:block;font-size:1.03rem;line-height:1.1}.brand span{display:block;font-size:.87rem;color:var(--muted)}.top-nav-actions,.hero-actions,.inline-actions,.tab-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{border:1px solid rgba(16,26,45,.18);border-radius:999px;padding:10px 18px;font-size:.96rem;line-height:1;text-decoration:none;color:inherit;background:#ffffffad;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn.solid{background:linear-gradient(120deg,#132748,#284b85 48%,#6f52be);color:#fff;border-color:transparent}.btn.ghost{background:#ffffff94}.btn.full{width:100%;text-align:center;justify-content:center}.route-loading{min-height:100vh;display:grid;place-items:center;font-size:1rem}.landing-grid,.dashboard-grid{display:grid;gap:18px;margin-top:18px}.landing-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.hero-panel{grid-column:span 8;padding:28px}.hero-panel h1{margin:10px 0;max-width:20ch;font-size:clamp(1.8rem,4.1vw,3rem);line-height:1.05}.hero-panel p{color:var(--muted);font-size:1.04rem;max-width:62ch}.eyebrow{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:#365c96;margin:0}.metric-panel{grid-column:span 4;padding:22px;display:grid;gap:14px}.metric-panel article h3{margin:0;font-size:1.05rem}.metric-panel article p{margin:8px 0 0;color:var(--muted)}.cards-row{grid-column:1 / -1;display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.service-card{padding:18px}.service-card.reading{background:linear-gradient(150deg,#2f7eff40,#ffffffbf)}.service-card.listening{background:linear-gradient(150deg,#17a7b940,#ffffffbf)}.service-card.writing{background:linear-gradient(150deg,#b65fe540,#ffffffbf)}.service-card h4{margin:0}.service-card p{color:var(--muted);margin:8px 0 0}.dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.stat-card{grid-column:span 4;padding:20px}.stat-card.wide{grid-column:span 8}.band-row{display:flex;align-items:center;gap:10px;margin-top:10px}.band-row strong{font-size:2.3rem;line-height:1}.band-row.secondary strong{font-size:1.8rem}.muted{color:var(--muted)}.task-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.task-item{border:1px solid rgba(16,26,45,.12);border-radius:16px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#ffffff94}.task-item h4{margin:6px 0}.task-item p{margin:0;color:var(--muted)}.chip{display:inline-flex;padding:4px 9px;border-radius:999px;border:1px solid rgba(16,26,45,.16);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.chip.reading{background:#2f7eff29}.chip.listening{background:#17a7b929}.chip.writing{background:#b65fe529}.field-grid,.field-stack{display:grid;gap:12px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}label{font-size:.9rem;color:var(--muted);display:grid;gap:6px}input,select,textarea{border:1px solid rgba(16,26,45,.2);border-radius:12px;padding:10px 12px;font-size:.95rem;font-family:inherit;color:var(--text);background:#ffffffe0}textarea{resize:vertical}.option-row{display:flex;grid-auto-flow:column;justify-content:start;align-items:center;gap:10px}.json-box{margin:0;max-height:480px;overflow:auto;background:#0f1f35;color:#cce3ff;border-radius:14px;border:1px solid #183051;padding:14px;font-size:.82rem}.error-text{color:#b42332}.practice-workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px}.practice-sidebar{padding:18px;display:grid;gap:16px;align-content:start;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto}.practice-sidebar-brand{display:flex;align-items:center;gap:10px}.practice-sidebar-brand img{width:42px;height:42px;border-radius:10px}.practice-sidebar-brand strong{display:block;font-size:1.04rem}.practice-sidebar-brand span{display:block;color:var(--muted);font-size:.85rem}.practice-sidebar-nav{display:grid;gap:8px}.sidebar-link{text-decoration:none;color:var(--text);border:1px solid rgba(16,26,45,.14);border-radius:14px;padding:10px 12px;background:#ffffff9e;font-weight:500}.sidebar-link.active{background:linear-gradient(125deg,#1e58b5e6,#6753b8e6);color:#fff;border-color:transparent}.sidebar-panel{border:1px solid rgba(16,26,45,.12);border-radius:16px;padding:14px;background:#ffffff9e;display:grid;gap:10px}.sidebar-panel h4{margin:0}.sidebar-target-row{display:flex;align-items:baseline;gap:8px}.sidebar-target-row strong{font-size:1.9rem;line-height:1}.sidebar-target-row.muted strong{font-size:1.4rem}.practice-main{display:grid;gap:18px;align-content:start}.practice-header{padding:20px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.practice-header h1{margin:6px 0;font-size:clamp(1.7rem,2.4vw,2.2rem);line-height:1.08}.dashboard-alert{padding:13px 15px}.dashboard-alert.error{color:#9f1628}.practice-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpi-card{padding:18px}.kpi-card h3{margin:0 0 8px}.kpi-value{font-size:clamp(2rem,4vw,2.6rem);font-weight:700;line-height:1}.practice-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.practice-card{padding:18px}.section-progress-card{grid-column:span 5}.weakness-card{grid-column:span 7}.task-card{grid-column:1 / -1}.section-progress-list{display:grid;gap:12px}.section-progress-row{border:1px solid rgba(16,26,45,.12);border-radius:14px;background:#ffffff9e;padding:11px}.section-progress-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.progress-track{width:100%;height:8px;border-radius:999px;overflow:hidden;background:#101a2d1f;margin-top:8px}.progress-fill{height:100%}.progress-fill.reading{background:linear-gradient(90deg,#2f7eff,#75a9ff)}.progress-fill.listening{background:linear-gradient(90deg,#17a7b9,#62cad8)}.progress-fill.writing{background:linear-gradient(90deg,#8a51d8,#be87ff)}.section-progress-meta{margin-top:8px;display:flex;flex-wrap:wrap;gap:10px;font-size:.84rem;color:var(--muted)}.weakness-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.weakness-item{border:1px solid rgba(16,26,45,.12);border-radius:14px;background:#ffffff9e;padding:11px;display:flex;justify-content:space-between;gap:10px}.weakness-item h4{margin:8px 0 0}.weakness-metrics{display:grid;gap:4px;font-size:.84rem;color:var(--muted);text-align:right}.task-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.task-card-head h3{margin:0}.task-summary{display:flex;flex-wrap:wrap;gap:9px;font-size:.85rem;color:var(--muted)}.task-progress{margin:11px 0 14px;height:10px}.status-pill{border:1px solid rgba(16,26,45,.16);border-radius:999px;padding:5px 9px;font-size:.77rem;text-transform:capitalize;background:#ffffff9e}.status-pill.completed{border-color:#2a936d66;color:#116746;background:#299f751f}.status-pill.in_progress{border-color:#3574d466;color:#1a4b99;background:#2f7eff1f}.status-pill.pending{border-color:#8248c05c;color:#5b2c97;background:#b65fe51f}.empty-plan{border:1px dashed rgba(16,26,45,.2);border-radius:14px;padding:14px;background:#ffffff8a;display:grid;gap:10px}@media(max-width:1120px){.practice-workspace{grid-template-columns:1fr}.practice-sidebar{position:static;top:auto;max-height:none}.practice-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-progress-card,.weakness-card,.hero-panel,.metric-panel,.stat-card,.stat-card.wide{grid-column:span 12}.cards-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.practice-root{padding:14px}.practice-kpi-grid{grid-template-columns:1fr}.practice-header{flex-direction:column;align-items:stretch}.practice-sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.weakness-item{flex-direction:column}.weakness-metrics{text-align:left}.top-nav{flex-direction:column;align-items:stretch}.field-grid,.cards-row{grid-template-columns:1fr}.task-item{flex-direction:column;align-items:flex-start}}
