:root{--bg: #f8fafc;--surface-1: #ffffff;--surface-2: #f1f5f9;--border: #e2e8f0;--ink: #0f172a;--ink-2: #1e293b;--muted: #64748b;--accent: #0ea5e9;--accent-strong: #0284c7;--accent-soft: #bae6fd;--accent-wash: #e0f2fe;--border-strong: #27292f;--tone-danger: #fecaca;--tone-warn: #fde68a;--tone-neutral: #e5e7eb;--tone-good: #bbf7d0;--tone-best: #86efac;--series-1: #2563eb;--series-1-soft: #93c5fd;--series-2: #f59e0b;--series-3: #8b5cf6;--series-4: #14b8a6;--series-5: #10b981;--series-6: #ef4444;--series-7: #ec4899;--series-8: #f97316;--space-1: 8px;--space-2: 12px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 40px;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-3);--space-lg: var(--space-4);--space-xl: var(--space-5);--space-2xl: var(--space-6);--font-size-base: 16px;--font-weight-regular: 400;--font-weight-semibold: 600;--font-weight-bold: 700;--radius: 12px}.progress-bar{width:100%;height:4px;background:var(--tone-neutral);border-radius:4px;overflow:hidden}.progress-bar__fill{height:100%;background:linear-gradient(to right,var(--accent-soft),var(--accent));border-radius:4px;transition:width var(--t-fast) var(--ease)}@media (max-width: 600px){.progress-bar{height:6px}}:root{--radius-sm:6px;--radius-md:8px;--space-inset: var(--space-xs);--space-gap: var(--space-sm);--header-bg: var(--ink-2);--header-ink: var(--surface-1);--shadow-1:0 1px 2px hsl(220 40% 2%/.6);--shadow-2:0 6px 18px hsl(220 40% 2%/.35);--ease:cubic-bezier(.2,.8,.2,1);--t-fast:.14s;--t-med:.22s;@keyframes btn-glow{0%,to{box-shadow:0 0 0 0 var(--accent)}50%{box-shadow:0 0 12px 2px var(--accent)}}}:root .chip-row{display:flex;flex-wrap:wrap;column-gap:var(--space-sm);row-gap:var(--space-gap)}:root .tone-neutral{background:var(--tone-neutral);color:var(--ink);border-color:var(--tone-neutral)}:root .tone-warn{background:var(--tone-warn);color:color-mix(in hsl,var(--tone-warn) 40%,black);border-color:var(--tone-warn)}:root .tone-danger{background:var(--tone-danger);color:color-mix(in hsl,var(--tone-danger) 40%,black);border-color:var(--tone-danger)}:root .print-only{display:none}@media print{:root .print-only{display:block}}:root .offline-banner{background:var(--tone-warn);color:color-mix(in hsl,var(--tone-warn) 40%,black);text-align:center;padding:.5rem}:root .offline-hint{color:color-mix(in hsl,var(--tone-danger) 60%,black);font-size:.875rem}:root .app-shell{max-width:1120px;margin:var(--space-gap) auto;padding:0 var(--space-gap) var(--space-gap)}:root .layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:var(--space-inset);align-items:start}@media (max-width:900px){:root .layout{grid-template-columns:1fr}}:root *,:root *:before,:root *:after{box-sizing:border-box}:root h1,:root h2,:root h3,:root h4,:root h5,:root h6,:root p,:root ul,:root ol,:root button,:root input,:root select{margin:0}:root html,:root body,:root #root{height:100%}:root html{scroll-behavior:smooth}:root body{margin:0;background:linear-gradient(135deg,var(--bg),color-mix(in hsl,var(--accent) 8%,white 92%));color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:var(--font-size-base);line-height:1.5;font-weight:var(--font-weight-regular);image-rendering:pixelated;transition:background-color var(--t-med) var(--ease),color var(--t-med) var(--ease);animation:fade-in var(--t-med) var(--ease)}:root h1{font-size:21px;font-weight:var(--font-weight-bold)}:root h2{font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}:root .title,:root .subtitle,:root h1,:root h2,:root h3,:root h4,:root h5,:root h6{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root a,:root button{transition:color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}:root button{height:44px;padding:0 var(--space-inset);font-size:var(--font-size-base);border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;min-width:44px}:root input,:root select{height:44px;padding:0 var(--space-inset);font-size:var(--font-size-base);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-1)}:root button:hover{transform:translateY(-1px) scale(1.02)}:root button:active{transform:scale(.97)}:root button:disabled{opacity:.6;cursor:not-allowed}:root :focus-visible{outline:none;box-shadow:0 0 0 1px var(--surface-1),0 0 0 3px var(--accent-soft);border-radius:var(--radius-md)}:root input[type=checkbox]{width:20px;height:20px;padding:0}:root .skip-link{position:absolute;left:8px;top:-40px;background:var(--accent);color:var(--ink);padding:8px;z-index:100;text-decoration:none}:root .skip-link:focus{top:8px}:root .row{display:flex;gap:var(--space-gap);min-height:44px}:root .row--wrap{flex-wrap:wrap}:root .row--between{justify-content:space-between}:root .row--center{align-items:center}:root .stack{display:grid;gap:var(--space-gap)}:root .stack>*+*{margin-top:0}:root .stack--xs{gap:var(--space-sm)}:root .stack--sm,:root .stack--md{gap:var(--space-inset)}:root .stack--lg{gap:var(--space-gap)}:root .grid{display:grid;gap:var(--space-gap);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}:root .grid--sm{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}:root .small{font-size:12px;color:var(--muted)}:root .topbar{position:sticky;top:0;z-index:50;background:var(--header-bg);color:var(--header-ink);border-bottom:1px solid var(--border-strong);padding:var(--space-md) var(--space-gap);width:100%}:root .topbar .title{font-size:21px;margin:0}:root .topbar .subtitle{color:var(--ink-2);font-size:14px}:root .top-menu{background:var(--header-bg);color:var(--header-ink);border-bottom:1px solid var(--border-strong)}:root .top-menu a{color:var(--header-ink)}:root .card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--space-gap);margin-bottom:var(--space-gap);transition:box-shadow var(--t-fast) var(--ease)}:root .card:hover{box-shadow:var(--shadow-2)}:root .card__bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-inset)}:root .section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--ink);margin:0 0 var(--space-inset) 0;text-decoration:none;text-transform:capitalize;white-space:normal;overflow-wrap:anywhere;text-overflow:unset}:root .card-title{font-size:12px;font-weight:var(--font-weight-semibold);color:var(--ink);margin:0 0 var(--space-inset) 0;white-space:normal;overflow-wrap:anywhere;text-overflow:unset}:root .helper-text{font-size:12px;color:var(--muted);margin:0 0 var(--space-inset) 0}:root .btn{height:44px;padding:0 var(--space-inset);border:1px solid var(--border);background:var(--surface-1);color:var(--ink);border-radius:var(--radius-md);box-shadow:var(--shadow-1);display:inline-flex;align-items:center;justify-content:center;line-height:1}:root .btn:hover{box-shadow:var(--shadow-2)}:root .btn--accent{background:var(--accent);border-color:transparent;color:var(--ink)}:root .btn--accent:hover{filter:brightness(1.05)}:root .btn--glow{animation:btn-glow 1.5s ease-in-out infinite}:root .btn--sm{height:36px;padding:0 var(--space-inset);font-size:12px}:root .toolbar{display:flex;gap:var(--space-inset);flex-wrap:wrap}:root .tabbar{display:flex;gap:var(--space-gap);flex-wrap:wrap}:root .tab{border:1px solid var(--border);background:var(--surface-1);border-radius:var(--radius-md);display:inline-flex;align-items:center;height:36px;padding:0 var(--space-inset);font-weight:var(--font-weight-semibold);color:var(--muted);transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}:root .tab--active{color:var(--ink);background:color-mix(in hsl,var(--accent) 14%,transparent);border-color:color-mix(in hsl,var(--accent) 30%,transparent)}:root .chip{display:inline-flex;align-items:center;height:36px;padding:0 var(--space-inset);border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-md);color:var(--ink);opacity:.9;transition:background-color var(--t-fast) var(--ease)}:root .chip--active{opacity:1}:root .tab[aria-current=page],:root .chip[aria-current=page]{border-bottom:2px solid var(--accent)}:root .badge{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);background:transparent;border:1px solid transparent;box-shadow:none}:root .badge--ok{background:var(--tone-good);border:1px solid color-mix(in hsl,var(--tone-good) 60%,black 40%)}:root .badge--warn{background:var(--tone-warn);border:1px solid color-mix(in hsl,var(--tone-warn) 60%,black 40%)}:root .badge--danger{background:var(--tone-danger);border:1px solid color-mix(in hsl,var(--tone-danger) 60%,black 40%)}:root .condition-glyph{display:flex;flex-direction:column;align-items:center;overflow:hidden}:root .condition-glyph svg{width:56px;height:56px}:root .glyph-label{font-size:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}:root .glyph-badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}:root .badge--ok:before{content:"✓";margin-right:var(--space-inset)}:root .badge--warn:before{content:"⚠";margin-right:var(--space-inset)}:root .badge--danger:before{content:"✗";margin-right:var(--space-inset)}:root .assessment-add-row{display:grid;gap:var(--space-inset);background:color-mix(in hsl,var(--accent) 14%,transparent);border:1px solid var(--accent);border-radius:var(--radius);padding:var(--space-gap);margin-bottom:var(--space-gap)}:root .assessment-add-row input,:root .assessment-add-row select{background:transparent;border:none;width:100%;height:44px;padding:0 var(--space-inset);font-size:var(--font-size-base)}:root .assessment-divider{margin:var(--space-inset) 0;border:none;border-top:1px solid var(--border)}:root .assessment-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-gap)}:root .assessment-card-grid .assessment-card{margin-bottom:0}@media (max-width:600px){:root .assessment-card-grid{grid-template-columns:1fr}}:root .assessment-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--space-gap);margin-bottom:var(--space-gap)}:root .assessment-card--complete{background:var(--tone-good);border:1px solid color-mix(in hsl,var(--tone-good) 60%,black 40%)}:root .assessment-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-inset)}:root .assessment-card__body{margin-bottom:var(--space-inset)}:root .assessment-card__footer{text-align:right}:root .assessment-placeholder{padding:var(--space-inset);border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted)}:root .text-danger{color:color-mix(in hsl,var(--tone-danger) 60%,black 40%)}:root .overlay{position:fixed;inset:0;display:flex;justify-content:center;align-items:flex-start;padding-top:10vh;z-index:200}:root .overlay__backdrop{position:absolute;inset:0;background:#0006;border:none;padding:0;border-radius:0;box-shadow:none;height:100%;width:100%}:root .overlay__content{position:relative;z-index:1}:root .assessment-selector{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-gap);width:min(700px,90vw)}:root .assessment-list{max-height:320px;overflow:auto}:root .assessment-item{padding:var(--space-inset) var(--space-inset)}:root .assessment-item--selected{border-left:4px solid var(--accent-strong);background:var(--surface-2)}:root .assessment-item--selected span:first-child{font-weight:var(--font-weight-semibold)}:root input,:root select{width:100%}:root .invalid{border:1px solid var(--tone-danger)}:root .chat-bubble{position:fixed;bottom:16px;right:16px;z-index:100;border-radius:var(--radius-md);background:var(--accent);color:var(--ink);padding:var(--space-inset);box-shadow:var(--shadow-2)}:root .chat-window{position:fixed;bottom:72px;right:16px;z-index:100;width:min(300px,90vw)}@media (max-width:600px){:root .chat-window{right:5vw}}:root .chat-log{display:flex;flex-direction:column;gap:var(--space-inset);max-height:min(200px,40vh);overflow-y:auto;margin-bottom:var(--space-inset)}:root .chat-msg{padding:var(--space-inset);border-radius:var(--radius-md);max-width:80%}:root .chat-msg--user{align-self:flex-end;background:var(--accent);color:var(--ink)}:root .chat-msg--bot{align-self:flex-start;background:var(--accent-soft);color:var(--ink)}@media print{:root body.print-summary *{visibility:hidden!important}:root body.print-summary #summary-section,:root body.print-summary #summary-section *{visibility:visible!important}:root body.print-summary #summary-section{position:absolute;left:0;top:0;width:100%}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.stepper{display:grid;gap:var(--space-gap);padding:var(--space-gap)}.stepper__nav{display:flex;justify-content:space-between;align-items:center}.stepper__section{min-height:120px}.stepper__actions{display:flex;gap:var(--space-gap);align-items:center}.stepper__saved{color:var(--accent)}.report{display:grid;gap:var(--space-gap);padding:var(--space-gap);grid-template-columns:1fr 200px}@media (max-width:700px){.report{grid-template-columns:1fr}}.report__aside{display:grid;gap:var(--space-inset);align-content:start}.report__quote{margin-top:var(--space-inset)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.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:focus{position:absolute;left:16px;top:16px;width:auto;height:auto;padding:var(--space-inset);background:var(--accent);color:var(--ink);clip:auto;overflow:visible;z-index:1000;border-radius:var(--radius-md)}.skeleton{background:var(--tone-neutral);border-radius:4px;animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}
