@import "https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap";
:root{--synapse:#0fa3a3;--synapse-deep:#0b6e6a;--synapse-pale:#cdebea;--synapse-glow:#19c9c0;--synapse-tint:#eaf7f6;--midnight:#2c3e50;--bone:#f4f0e8;--ivory:#faf7f0;--paper:#fffefa;--ink-900:#1a2530;--ink-800:#2c3e50;--ink-700:#3d4f5f;--ink-600:#56697a;--ink-500:#738291;--ink-400:#98a4af;--ink-300:#c2cad2;--ink-200:#e1e6ea;--ink-100:#eef1f4;--ink-050:#f6f8f9;--signal:#d98a2b;--signal-pale:#f8ecd9;--moss:#4f8a5b;--moss-pale:#e2efe4;--alert:#c0492f;--alert-pale:#f6e2dd;--sev-none:#4f8a5b;--sev-mild:#8fb04e;--sev-moderate:#d98a2b;--sev-severe:#c0492f;--surface:var(--paper);--surface-sunk:var(--ivory);--surface-canvas:var(--bone);--border:var(--ink-200);--border-strong:var(--ink-300);--font-display:"Hanken Grotesk", system-ui, sans-serif;--font-sans:"Geist", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--r-xs:6px;--r-sm:9px;--r-md:13px;--r-lg:18px;--r-xl:26px;--r-pill:999px;--sh-xs:0 1px 2px #2c3e500f;--sh-sm:0 2px 8px #2c3e5012;--sh-md:0 8px 24px #2c3e501a;--sh-lg:0 18px 48px #2c3e5029;--sh-focus:0 0 0 2px var(--surface), 0 0 0 5px var(--synapse-deep);--space:4px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--ease:cubic-bezier(.16, 1, .3, 1);--dur:.18s;--sidebar-w:252px;--text-xs:clamp(.72rem, .7rem + .1vw, .78rem);--text-sm:clamp(.82rem, .78rem + .2vw, .9rem);--text-base:clamp(.95rem, .9rem + .25vw, 1.05rem);--text-lg:clamp(1.06rem, .98rem + .4vw, 1.2rem);--text-xl:clamp(1.25rem, 1.1rem + .7vw, 1.5rem);--tap-min:44px;--tap-lg:56px}.patient-mode{--text-xs:.82rem;--text-sm:.95rem;--text-base:1.12rem;--text-lg:1.32rem;--text-xl:1.7rem;--tap-min:52px;--tap-lg:60px;--ink-500:#4a5a6b;--ink-400:#6b7885;--border-strong:var(--ink-400);color:var(--ink-900);font-size:var(--text-base);line-height:1.55}.patient-mode p,.patient-mode li,.patient-mode label{line-height:1.6}.patient-mode .btn-primary{background:var(--synapse-deep)}.patient-mode .btn-primary:hover{background:#095350}.bodymap-region:focus-visible{outline:3px solid var(--synapse-deep);outline-offset:2px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink-800);background:var(--surface-canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.04}.mono{font-family:var(--font-mono)}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-500);font-size:11px;font-weight:500}.h1{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink-900);margin:0;font-size:clamp(1.9rem,1.3rem + 2.2vw,2.9rem);font-weight:800;line-height:1.02}.h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink-900);margin:0;font-size:clamp(1.4rem,1.1rem + 1.2vw,1.85rem);font-weight:700;line-height:1.08}.h3{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink-900);margin:0;font-size:1.15rem;font-weight:700;line-height:1.15}.lede{color:var(--ink-500);font-size:clamp(.98rem,.9rem + .3vw,1.12rem);line-height:1.55}.text-sm{font-size:13px}.text-xs{font-size:12px}.muted{color:var(--ink-500)}.faint{color:var(--ink-400)}.btn{font-family:var(--font-sans);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;transition:all .16s;display:inline-flex}.btn:focus-visible{box-shadow:var(--sh-focus);outline:none}.btn-primary{background:var(--synapse);color:#fff}.btn-primary:hover{background:var(--synapse-deep);box-shadow:var(--sh-sm)}.btn-ghost{color:var(--ink-700);border-color:var(--border-strong);background:0 0}.btn-ghost:hover{background:var(--ink-050);border-color:var(--ink-400)}.btn-subtle{background:var(--ink-100);color:var(--ink-700)}.btn-subtle:hover{background:var(--ink-200)}.btn-sm{padding:7px 13px;font-size:13px}.btn-lg{padding:13px 24px;font-size:15px}.btn:disabled{cursor:not-allowed;opacity:.5}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.card-pad{padding:var(--s-5)}.card-flat{box-shadow:none}.card-inset{background:var(--surface-sunk);box-shadow:none}.card-elevated{box-shadow:var(--sh-md);border-color:#0000}.card-hover{transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);cursor:pointer}.card-hover:hover{box-shadow:var(--sh-md);border-color:var(--synapse-pale);transform:translateY(-2px)}.card-hover:focus-visible{box-shadow:var(--sh-focus);outline:none}.row-hover{transition:background var(--dur) var(--ease);cursor:pointer}.row-hover:hover{background:var(--ink-050)}.accent-top{position:relative;overflow:hidden}.accent-top:before{content:"";background:var(--synapse);height:3px;position:absolute;inset:0 0 auto}.chip{white-space:nowrap;border-radius:var(--r-pill);background:var(--ink-100);color:var(--ink-700);align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:500;display:inline-flex}.chip-synapse{background:var(--synapse-pale);color:var(--synapse-deep)}.chip-moss{background:var(--moss-pale);color:#3e6e48}.chip-signal{background:var(--signal-pale);color:#9a6418}.chip-alert{background:var(--alert-pale);color:#9c3a24}input,select,textarea{font-family:var(--font-sans);color:var(--ink-900);background:var(--surface)}.field{border-radius:var(--r-sm);border:1.5px solid var(--border-strong);background:var(--surface);width:100%;color:var(--ink-900);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:10px 13px;font-size:14px}.field::placeholder{color:var(--ink-400)}.field:hover{border-color:var(--ink-400)}.field:focus{border-color:var(--synapse);box-shadow:var(--sh-focus);outline:none}.field-label{color:var(--ink-600);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ink-300);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--ink-400);background-clip:content-box}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{box-shadow:var(--sh-focus);outline:none}.page{padding:var(--s-6) var(--s-7);max-width:1180px;margin:0 auto}.stack>*+*{margin-top:var(--s-4)}.cluster{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.divider{background:var(--border);height:1px;margin:var(--s-5) 0;border:none}.grid{gap:var(--s-4);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.seg{background:var(--ink-100);border-radius:var(--r-md);gap:3px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--ink-600);border-radius:var(--r-sm);cursor:pointer;transition:all var(--dur) var(--ease);background:0 0;border:none;padding:7px 15px;font-size:13px;font-weight:500}.seg button:hover{color:var(--ink-900)}.seg button[data-on=true]{background:var(--surface);color:var(--synapse-deep);box-shadow:var(--sh-xs)}.dark-surface{color:var(--paper);background:linear-gradient(160deg,#1c2a36,#111c25)}.app-sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:40;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.nav-item{border-radius:var(--r-sm);cursor:pointer;width:100%;font-family:var(--font-sans);text-align:left;color:var(--ink-600);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;align-items:center;gap:12px;margin-bottom:2px;padding:10px 13px;font-size:14px;font-weight:500;display:flex;position:relative}.nav-item:hover{background:var(--ink-050);color:var(--ink-900)}.nav-item[data-on=true]{background:var(--synapse-tint);color:var(--synapse-deep);font-weight:600}.nav-item[data-on=true]:before{content:"";background:var(--synapse);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.nav-section{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-400);padding:14px 13px 6px;font-size:10px}.mobile-topbar,.sidebar-scrim{display:none}@media (max-width:860px){.app-sidebar{height:100dvh;transition:transform .26s var(--ease);box-shadow:var(--sh-lg);position:fixed;top:0;left:0;transform:translate(-100%)}.app-sidebar[data-open=true]{transform:translate(0)}.mobile-topbar{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex;position:sticky;top:0}.sidebar-scrim{z-index:39;background:#1a253066;display:block;position:fixed;inset:0}}.no-scrollbar::-webkit-scrollbar{display:none}.only-sm{display:none}@media (max-width:860px){.page{padding:var(--s-5) var(--s-4)}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.hide-sm{display:none!important}.only-sm{display:revert}.page{padding:var(--s-4) var(--s-3)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tap{min-height:var(--tap-min);min-width:var(--tap-min)}.btn-xl{font-size:var(--text-lg);border-radius:var(--r-md);min-height:var(--tap-lg);gap:10px;padding:16px 26px;font-weight:600}.btn-block{justify-content:center;width:100%}.btn-danger{background:var(--alert);color:#fff}.btn-danger:hover{box-shadow:var(--sh-sm);background:#9c3a24}.backbar{min-height:var(--tap-min);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--ink-700);border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px 8px 8px;font-weight:600;display:inline-flex}.backbar:hover{background:var(--ink-050)}.backbar:focus-visible{box-shadow:var(--sh-focus);outline:none}.choice{text-align:left;width:100%;min-height:var(--tap-lg);border:2px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink-800);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), transform var(--dur) var(--ease);align-items:center;gap:14px;padding:15px 18px;font-weight:500;display:flex}.choice:hover{border-color:var(--ink-500)}.choice:active{transform:scale(.99)}.choice:focus-visible{box-shadow:var(--sh-focus);outline:none}.choice[data-on=true]{border-color:var(--synapse);background:var(--synapse-tint);color:var(--synapse-deep);font-weight:600}.choice-mark{border:2px solid var(--border-strong);border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.choice[data-on=true] .choice-mark{border-color:var(--synapse);background:var(--synapse);color:#fff}.banner{border-radius:var(--r-md);font-size:var(--text-sm);border:1px solid #0000;align-items:flex-start;gap:12px;padding:14px 16px;line-height:1.5;display:flex}.banner-icon{flex-shrink:0;margin-top:1px}.banner-info{background:var(--synapse-tint);border-color:var(--synapse-pale);color:var(--synapse-deep)}.banner-warn{background:var(--signal-pale);color:#8a5a14;border-color:#e7d3ad}.banner-alert{background:var(--alert-pale);color:#9c3a24;border-color:#e6b8ac}.banner-success{background:var(--moss-pale);color:#3e6e48;border-color:#bcd8bf}.stepper{align-items:center;gap:8px;display:flex}.stepper-dot{background:var(--ink-200);height:8px;transition:background var(--dur) var(--ease);border-radius:99px;flex:1}.stepper-dot[data-state=done]{background:var(--synapse)}.stepper-dot[data-state=current]{background:var(--synapse-glow)}.stepper-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-500);white-space:nowrap}.skeleton{background:linear-gradient(90deg, var(--ink-100) 25%, var(--ink-050) 37%, var(--ink-100) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.empty{text-align:center;padding:var(--s-7) var(--s-4);color:var(--ink-500);flex-direction:column;align-items:center;gap:10px;display:flex}.empty-icon{background:var(--ink-050);border-radius:50%;place-items:center;width:56px;height:56px;display:grid}.field-lg{width:100%;font-size:var(--text-base);min-height:var(--tap-lg);border-radius:var(--r-md);border:2px solid var(--border-strong);background:var(--surface);color:var(--ink-900);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:13px 16px}.field-lg::placeholder{color:var(--ink-400)}.field-lg:focus{border-color:var(--synapse);box-shadow:var(--sh-focus);outline:none}.field-help{font-size:var(--text-xs);color:var(--ink-500);margin-top:6px}.field-error{font-size:var(--text-xs);color:var(--alert);align-items:center;gap:6px;margin-top:6px;display:flex}.patient-shell{background:var(--surface-canvas);flex-direction:column;min-height:100dvh;display:flex}.patient-shell-head{background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:12px 16px;display:grid}.patient-shell-head .slot-r{justify-content:flex-end;display:flex}.patient-shell-main{flex:1;width:100%;margin:0 auto;padding:18px}.patient-sticky{background:linear-gradient(transparent, var(--surface-canvas) 34%);padding:14px 18px calc(18px + env(safe-area-inset-bottom));position:sticky;bottom:0}.patient-mode .btn-sm{min-height:var(--tap-min)}.patient-mode .seg button{min-height:var(--tap-min);font-size:var(--text-sm)}.patient-tabbar{background:var(--surface);border-top:1px solid var(--border);z-index:20;padding-bottom:env(safe-area-inset-bottom);display:flex;position:sticky;bottom:0}.patient-tab{cursor:pointer;min-height:58px;font-family:var(--font-sans);font-size:var(--text-xs);color:var(--ink-500);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 4px;font-weight:600;display:flex}.patient-tab[data-on=true]{color:var(--synapse-deep)}.patient-tab:focus-visible{box-shadow:inset var(--sh-focus);outline:none}@media print{.no-print{display:none!important}body{background:#fff}.card{break-inside:avoid;box-shadow:none!important}}
