:root{color-scheme:light dark;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--text-base: 16.5px;--text-sm: calc(var(--text-base) - 1.5px);--text-xs: calc(var(--text-base) - 3px);--text-lg: calc(var(--text-base) + 1.5px);--text-xl: calc(var(--text-base) + 5px);--text-2xl: calc(var(--text-base) + 10px);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-pill: 999px;--tap: 48px;--drawer-width: 288px;--topbar-height: 56px;--rail-width: 248px;--ease: cubic-bezier(.2, .8, .25, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .24s;--amber-400: #fbbf24;--amber-500: #f59e0b;--amber-600: #d97706;--orange-500: #f97316;--orange-600: #ea580c;--gradient-primary: linear-gradient(135deg, var(--amber-500) 0%, var(--orange-600) 100%);--gradient-accent: linear-gradient(135deg, var(--amber-400) 0%, var(--orange-500) 100%);--brand-ink: #1a1205;--ok: #15803d;--ok-bg: #dcfce7;--warn: #a16207;--warn-bg: #fef3c7;--danger: #b91c1c;--danger-bg: #fee2e2}:root,[data-theme=light]{--bg: #f8fafc;--bg-raised: #ffffff;--bg-sunken: #eef2f6;--bg-overlay: rgba(15, 23, 42, .48);--text: #0f172a;--text-muted: #4b5768;--text-faint: #6b7787;--border: #dbe2ea;--border-strong: #c3ccd7;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .06);--focus: #1d4ed8;--on-primary: var(--brand-ink)}[data-theme=dark]{--bg: #0b0f14;--bg-raised: #131a22;--bg-sunken: #0d131a;--bg-overlay: rgba(2, 6, 12, .66);--text: #eaf0f6;--text-muted: #a6b3c2;--text-faint: #8494a6;--border: #23303d;--border-strong: #33465a;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .35);--focus: #93c5fd;--on-primary: var(--brand-ink);--ok: #4ade80;--ok-bg: #052e16;--warn: #fbbf24;--warn-bg: #2c1f05;--danger: #fca5a5;--danger-bg: #3b0a0a}@media (prefers-color-scheme: dark){[data-theme=system]{--bg: #0b0f14;--bg-raised: #131a22;--bg-sunken: #0d131a;--bg-overlay: rgba(2, 6, 12, .66);--text: #eaf0f6;--text-muted: #a6b3c2;--text-faint: #8494a6;--border: #23303d;--border-strong: #33465a;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .35);--focus: #93c5fd;--ok: #4ade80;--ok-bg: #052e16;--warn: #fbbf24;--warn-bg: #2c1f05;--danger: #fca5a5;--danger-bg: #3b0a0a}}[data-theme=system]{--bg: #f8fafc;--bg-raised: #ffffff;--bg-sunken: #eef2f6;--bg-overlay: rgba(15, 23, 42, .48);--text: #0f172a;--text-muted: #4b5768;--text-faint: #6b7787;--border: #dbe2ea;--border-strong: #c3ccd7;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .06);--focus: #1d4ed8;--ok: #15803d;--ok-bg: #dcfce7;--warn: #a16207;--warn-bg: #fef3c7;--danger: #b91c1c;--danger-bg: #fee2e2}[data-text-size=small]{--text-base: 15.5px}[data-text-size=medium]{--text-base: 16.5px}[data-text-size=large]{--text-base: 18.9px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4{margin:0;line-height:1.25;letter-spacing:-.01em}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}ul,ol{margin:0 0 var(--space-3);padding-left:1.25em}a{color:inherit}img,svg{max-width:100%}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}button,input,select,textarea{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-3);top:-100px;z-index:100;padding:var(--space-2) var(--space-4);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);min-height:var(--tap);display:inline-flex;align-items:center}.skip-link:focus{top:var(--space-3)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}[data-reduce-motion=true] *,[data-reduce-motion=true] *:before,[data-reduce-motion=true] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.shell{display:flex;min-height:100vh;min-height:100dvh}.shell__main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-3);min-height:var(--topbar-height);padding:var(--space-2) var(--space-4);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topbar__heading{flex:1 1 auto;min-width:0}.topbar__eyebrow{margin:0;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.topbar__title{font-size:var(--text-lg);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__actions{display:flex;align-items:center;gap:var(--space-2)}.page{flex:1 1 auto;width:100%;max-width:880px;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-10)}.page--wide{max-width:1040px}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack--tight{gap:var(--space-2)}.row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.row--between{justify-content:space-between}.grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.rail{flex:0 0 auto;width:var(--rail-width);border-right:1px solid var(--border);background:var(--bg-raised);display:none;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-3);position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto}.rail[data-collapsed=true]{width:76px}.rail__brand{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-2);text-decoration:none}.rail__wordmark{font-size:var(--text-lg);font-weight:800;letter-spacing:-.02em}.rail[data-collapsed=true] .rail__wordmark,.rail[data-collapsed=true] .navlink__label,.rail[data-collapsed=true] .rail__footer-text{display:none}.rail__nav{display:flex;flex-direction:column;gap:2px}.rail__spacer{flex:1 1 auto}.rail__footer{border-top:1px solid var(--border);padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.rail__footer-text{font-size:var(--text-xs);color:var(--text-faint);padding:0 var(--space-2)}.logo-mark{flex:0 0 auto;width:32px;height:32px;border-radius:9px;background:var(--gradient-primary);color:var(--on-primary);display:grid;place-items:center;font-weight:800;font-size:15px;letter-spacing:-.03em}.navlink{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap);padding:0 var(--space-3);border-radius:var(--radius);color:var(--text-muted);text-decoration:none;font-weight:600;border:1px solid transparent;background:none;width:100%;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.navlink:hover{background:var(--bg-sunken);color:var(--text)}.navlink[aria-current=page]{background:color-mix(in srgb,var(--amber-500) 16%,transparent);border-color:color-mix(in srgb,var(--amber-500) 40%,transparent);color:var(--text)}.navlink__label{flex:1 1 auto}.navlink__badge{flex:0 0 auto;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--gradient-accent);color:var(--on-primary);font-size:11px;font-weight:800;display:grid;place-items:center}.drawer-backdrop{position:fixed;inset:0;z-index:40;background:var(--bg-overlay);border:0;padding:0;animation:fade-in var(--dur) var(--ease)}.drawer{position:fixed;inset:0 auto 0 0;z-index:41;width:min(var(--drawer-width),86vw);background:var(--bg-raised);border-right:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--space-2);padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-3) var(--space-4);overflow-y:auto;animation:drawer-in var(--dur-slow) var(--ease);touch-action:pan-y}.drawer__header{display:flex;align-items:center;gap:var(--space-2)}.drawer__header .navlink__label{flex:1 1 auto}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (min-width: 900px){.rail{display:flex}.menu-trigger,.drawer,.drawer-backdrop{display:none}}.btn{--btn-bg: transparent;--btn-fg: var(--text);--btn-border: transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--radius);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-base);font-weight:650;text-decoration:none;cursor:pointer;transition:transform var(--dur-fast) var(--ease),filter var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){filter:brightness(1.04)}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{--btn-bg: var(--gradient-primary);--btn-fg: var(--on-primary);border-color:transparent;box-shadow:var(--shadow)}.btn--accent{--btn-bg: var(--gradient-accent);--btn-fg: var(--on-primary);border-color:transparent}.btn--outline{--btn-bg: transparent;--btn-fg: var(--text);--btn-border: var(--border-strong)}.btn--outline:hover:not(:disabled){background:var(--bg-sunken)}.btn--ghost{--btn-bg: transparent;--btn-fg: var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--bg-sunken);color:var(--text)}.btn--danger{--btn-bg: transparent;--btn-fg: var(--danger);--btn-border: color-mix(in srgb, var(--danger) 45%, transparent)}.btn--danger:hover:not(:disabled){background:var(--danger-bg)}.btn--block{width:100%}.btn--sm{min-height:40px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--icon{min-width:var(--tap);padding:0}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow)}.card--flush{padding:0;overflow:hidden}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.card__title{font-size:var(--text-lg);font-weight:700}.card__sub{font-size:var(--text-sm);color:var(--text-muted)}.hero{border-radius:var(--radius-lg);padding:var(--space-5);background:var(--gradient-primary);color:var(--on-primary);box-shadow:var(--shadow)}.hero__eyebrow{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.hero__title{font-size:var(--text-2xl);font-weight:800;margin-bottom:var(--space-2)}.hero__body{margin:0;opacity:.92;font-weight:550}.stat{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.stat__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:700}.stat__value{font-size:var(--text-xl);font-weight:800;letter-spacing:-.02em}.stat__hint{font-size:var(--text-xs);color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--bg-sunken);color:var(--text-muted);font-size:var(--text-xs);font-weight:750;letter-spacing:.01em;white-space:nowrap}.badge--sample{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 40%,transparent);color:var(--warn)}.badge--held{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger)}.badge--ok{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 40%,transparent);color:var(--ok)}.note{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-sunken);padding:var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.note--warn{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn)}.note--danger{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.note--ok{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 35%,transparent);color:var(--ok)}.note strong{color:inherit}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:var(--text-sm);font-weight:700}.field__hint{font-size:var(--text-xs);color:var(--text-muted)}.field__error{font-size:var(--text-sm);color:var(--danger);font-weight:600}.input,.select,.textarea{min-height:var(--tap);width:100%;padding:10px var(--space-3);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text)}.textarea{min-height:120px;line-height:1.55;resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.choice{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap);padding:var(--space-3);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text);text-align:left;font-weight:600;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.choice:hover:not(:disabled){border-color:var(--amber-500)}.choice[aria-pressed=true],.choice[data-selected=true]{border-color:var(--amber-500);background:color-mix(in srgb,var(--amber-500) 14%,var(--bg-raised))}.choice:disabled{cursor:not-allowed;opacity:.75}.choice__marker{flex:0 0 auto;width:26px;height:26px;border-radius:8px;border:1px solid var(--border-strong);display:grid;place-items:center;font-size:var(--text-xs);font-weight:800}.choice[aria-pressed=true] .choice__marker,.choice[data-selected=true] .choice__marker{background:var(--gradient-primary);color:var(--on-primary);border-color:transparent}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-muted);font-size:var(--text-sm);font-weight:650;cursor:pointer}.chip[aria-pressed=true]{background:color-mix(in srgb,var(--amber-500) 18%,var(--bg-raised));border-color:var(--amber-500);color:var(--text)}.diagram{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-sunken);padding:var(--space-3);color:var(--text)}.diagram__svg{display:block;width:100%;height:auto}.diagram__caption{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--text-muted)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.list__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);text-decoration:none;color:inherit}.list__item:hover{border-color:var(--border-strong)}.list__main{min-width:0}.list__title{font-weight:650}.list__meta{font-size:var(--text-xs);color:var(--text-muted)}.empty{text-align:center;padding:var(--space-8) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text-muted)}.progress{height:8px;border-radius:var(--radius-pill);background:var(--bg-sunken);overflow:hidden;border:1px solid var(--border)}.progress__bar{height:100%;background:var(--gradient-primary);border-radius:inherit;transition:width var(--dur) var(--ease)}.timer{font-variant-numeric:tabular-nums;font-weight:800;font-size:var(--text-lg)}.timer[data-low=true]{color:var(--danger)}.question-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.question-map__cell{min-height:44px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-muted);font-size:var(--text-xs);font-weight:750;cursor:pointer}.question-map__cell[data-state=answered]{background:color-mix(in srgb,var(--amber-500) 22%,var(--bg-raised));border-color:var(--amber-500);color:var(--text)}.question-map__cell[data-state=current]{outline:2px solid var(--focus);outline-offset:1px}.divider{height:1px;background:var(--border);border:0;margin:var(--space-2) 0}.text-muted{color:var(--text-muted)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.mono{font-variant-numeric:tabular-nums}@media (max-width: 400px){.page{padding-left:var(--space-3);padding-right:var(--space-3)}.card{padding:var(--space-3)}}
