:root{--bg: #f7f8fb;--surface: #ffffff;--surface-alt: #eef1f7;--text: #1c2230;--text-muted: #545d70;--border: #d3d9e6;--accent: #205fa8;--accent-contrast: #ffffff;--accent-soft: #e5eefb;--review: #a3620a;--review-soft: #fbf1e0;--success: #206b4f;--success-soft: #e3f3ec;--focus-ring: #0b5fff;--radius: 14px;--space-1: .5rem;--space-2: .875rem;--space-3: 1.25rem;--space-4: 2rem;--font-base: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--font-scale: 1;--line-scale: 1.5;--letter-scale: normal;--motion-duration: .18s}:root[data-theme=dark],:root[data-theme=system][data-system-dark=true]{--bg: #12151c;--surface: #1b2029;--surface-alt: #232a36;--text: #eef1f7;--text-muted: #b6bfd1;--border: #38414f;--accent: #6fa4e8;--accent-contrast: #0b1520;--accent-soft: #22344b;--review: #e3a75a;--review-soft: #3c2f1c;--success: #6fcaa6;--success-soft: #1c342a;--focus-ring: #7fb2ff}:root[data-theme=high-contrast]{--bg: #000000;--surface: #000000;--surface-alt: #111111;--text: #ffffff;--text-muted: #f0f0f0;--border: #ffffff;--accent: #ffe600;--accent-contrast: #000000;--accent-soft: #262200;--review: #ff8a00;--review-soft: #2b1a00;--success: #00ff9d;--success-soft: #00261b;--focus-ring: #ffe600}:root[data-text-size=small]{--font-scale: .9}:root[data-text-size=medium]{--font-scale: 1}:root[data-text-size=large]{--font-scale: 1.2}:root[data-text-size=x-large]{--font-scale: 1.45}:root[data-line-spacing=relaxed]{--line-scale: 1.75}:root[data-line-spacing=loose]{--line-scale: 2.1;--letter-scale: .02em}:root[data-dyslexia-font=true]{--font-base: Verdana, Tahoma, "Trebuchet MS", sans-serif;--letter-scale: .03em}:root[data-reduce-motion=true]{--motion-duration: 0ms}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-base);font-size:calc(1rem * var(--font-scale));line-height:var(--line-scale);letter-spacing:var(--letter-scale)}.app-shell{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}*:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-contrast);padding:var(--space-2);z-index:200;border-radius:0 0 8px}.skip-link:focus{left:0}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}[data-focus-mode=true] .top-nav .nav-links{display:none}.brand{font-weight:700;font-size:1.15rem;text-decoration:none;color:var(--text)}.nav-links{display:flex;gap:var(--space-1);flex-wrap:wrap}.nav-link{padding:.6rem .9rem;min-height:44px;display:inline-flex;align-items:center;border-radius:10px;text-decoration:none;color:var(--text);border:1px solid transparent}.nav-link[aria-current=page]{background:var(--accent-soft);border-color:var(--accent);font-weight:600}main{flex:1;padding:var(--space-4) var(--space-3);max-width:980px;width:100%;margin:0 auto}.btn{min-height:48px;padding:.7rem 1.2rem;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-weight:600;transition:background var(--motion-duration),transform var(--motion-duration)}.btn:hover{background:var(--surface-alt)}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn-primary:hover{filter:brightness(1.08)}.btn-quiet{border-color:transparent;background:transparent}.btn-icon-text{display:inline-flex;align-items:center;gap:.4rem}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-large{min-height:56px;font-size:1.05rem;padding:.9rem 1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.stack-tight{display:flex;flex-direction:column;gap:var(--space-1)}.row{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.row-between{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap}.muted{color:var(--text-muted)}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-2)}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);text-align:left;min-height:132px;display:flex;flex-direction:column;gap:.5rem}.status-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;padding:.25rem .6rem;border-radius:999px;width:fit-content}.status-not-started{background:var(--surface-alt);color:var(--text-muted)}.status-in-progress{background:var(--review-soft);color:var(--review)}.status-proficient{background:var(--accent-soft);color:var(--accent)}.status-mastered{background:var(--success-soft);color:var(--success)}.progress-track{height:10px;border-radius:999px;background:var(--surface-alt);overflow:hidden;border:1px solid var(--border)}.progress-fill{height:100%;background:var(--accent);transition:width var(--motion-duration)}.status-mastered .progress-fill,.progress-fill.mastered{background:var(--success)}.choice-group{display:flex;flex-direction:column;gap:var(--space-2);border:none;padding:0;margin:0}.choice-btn{min-height:56px;text-align:left;padding:.9rem 1.1rem;border-radius:12px;border:2px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:.7rem;font-size:1.05rem}.choice-btn-selected{border-color:var(--accent);background:var(--accent-soft)}.choice-marker{font-size:1.1rem}.answer-input-row{display:flex;flex-direction:column;gap:.5rem}.field-label{font-weight:600}.input-with-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.text-field{min-height:52px;min-width:220px;padding:.7rem 1rem;border-radius:12px;border:2px solid var(--border);background:var(--surface);font-size:1.1rem}.ordering-area{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}@media (max-width: 620px){.ordering-area{grid-template-columns:1fr}}.ordering-instructions{grid-column:1 / -1;margin:0}.ordering-list{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:0;min-height:56px}.order-chip{min-height:48px;padding:.6rem 1rem;border-radius:10px;border:2px solid var(--border);background:var(--surface)}.order-chip-placed{background:var(--accent-soft);border-color:var(--accent)}.feedback-panel{border-radius:var(--radius);padding:var(--space-3);border:2px solid}.feedback-correct{background:var(--success-soft);border-color:var(--success)}.feedback-review{background:var(--review-soft);border-color:var(--review)}.scan-highlight{outline:4px solid var(--focus-ring)!important;outline-offset:3px!important;box-shadow:0 0 0 6px #0b5fff40}.scan-status-bar{position:fixed;bottom:0;left:0;right:0;background:var(--accent);color:var(--accent-contrast);padding:var(--space-1) var(--space-2);display:flex;justify-content:space-between;gap:var(--space-2);align-items:center;z-index:300;flex-wrap:wrap}.dwell-ring{position:fixed;width:34px;height:34px;margin-left:-17px;margin-top:-17px;border-radius:50%;border:4px solid var(--accent-soft);border-top-color:var(--accent);pointer-events:none;z-index:400;animation:dwell-spin linear forwards}@keyframes dwell-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root[data-reduce-motion=true] .dwell-ring{animation:none;border-top-color:var(--accent)}.fatigue-panel{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-3)}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:44px}.slider-row{display:flex;flex-direction:column;gap:.3rem}input[type=range]{min-height:44px}input[type=checkbox],input[type=radio]{width:22px;height:22px}.badge-number{font-size:1.6rem;font-weight:700}.goal-card{border-left:4px solid var(--accent)}.empty-state{text-align:center;padding:var(--space-4);color:var(--text-muted)}footer.app-footer{text-align:center;padding:var(--space-2);color:var(--text-muted);font-size:.85rem}
