/* AST V2.8 palette, Jost assets, rounded panels and button proportions.
   Form-specific adaptations are isolated here; the source stylesheet remains intact. */
@font-face{font-family:Jost;src:url('../assets/jost-light.ttf') format('truetype');font-weight:300;font-display:swap}
@font-face{font-family:Jost;src:url('../assets/jost-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Jost;src:url('../assets/jost-medium.ttf') format('truetype');font-weight:500 700;font-display:swap}
:root{--bg:#F7F5F0;--surface:#DDE3D6;--card:#F7F5F0;--border:#27332f30;--border2:#737d76;--text:#27332F;--muted:#667069;--muted2:#56605a;--white:#27332F;--dim:#56605a;--blue:#DCE8ED;--beige:#E7DCCF;--error:#9d352b;--header-bg:#DDE3D6;--bar-bg:#F7F5F0;--ease:cubic-bezier(.2,.7,.2,1)}
html{scroll-padding:28px}body{font:400 16px/1.55 Jost,sans-serif;letter-spacing:0;background:var(--bg)}button,input,textarea,select{font-family:inherit}button{touch-action:manipulation}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--text);outline-offset:4px}button:disabled{cursor:wait;opacity:.6}button:disabled:hover{transform:none}button{transition:background-color .24s var(--ease),border-color .24s var(--ease),color .24s var(--ease)}
.brand-header{max-width:1320px;margin:auto;padding:32px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.ast-brand{display:flex;align-items:center;gap:13px}.ast-brand img{width:40px;height:38px;object-fit:contain}.ast-brand span{font-size:20px;letter-spacing:.14em;line-height:1.15;font-weight:500}.ast-brand small{display:block;font-size:8px;letter-spacing:.26em;margin-top:6px}.brand-context{font-size:12px;color:var(--muted2);letter-spacing:.06em}
.app{max-width:1320px;margin:0 auto;padding:24px 48px 70px;display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.25fr);column-gap:7%;align-items:start;position:relative}
.app-header{grid-column:1;grid-row:1/6;position:sticky;top:28px;padding:34px;background:var(--surface);border:0;border-radius:28px;backdrop-filter:none}.header-main{display:flex;flex-direction:column-reverse;gap:24px}.header-title{font-family:Jost,sans-serif;font-weight:300;font-size:clamp(32px,3.2vw,46px);line-height:1.13;letter-spacing:-.045em}.header-title em{font-style:normal;color:inherit}.header-meta{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;gap:12px}.header-tag{font-family:inherit;font-size:11px;letter-spacing:.16em;background:var(--bg);padding:7px 10px;border-radius:7px}.header-detail{font-size:10px;letter-spacing:.12em;margin:0;line-height:1.5}.application-outline{list-style:none;margin-top:36px;padding-top:10px;border-top:1px solid var(--border)}.application-outline li{display:flex;gap:17px;padding:13px 0;color:var(--muted2);font-size:14px;line-height:1.4}.application-outline li[aria-current="step"]{color:var(--text);font-weight:500}.stage-number{font-size:11px;font-variant-numeric:tabular-nums;padding-top:2px}.application-outline li[aria-current="step"] .stage-number{text-decoration:underline;text-underline-offset:5px}
.progress-bar{grid-column:2;grid-row:1;height:3px;border-radius:3px;background:var(--border);margin-top:4px}.progress-fill{background:var(--text);transition:width .4s var(--ease)}.step-indicator{grid-column:2;grid-row:2;padding:16px 0 23px;border-bottom:1px solid var(--border);gap:16px}.step-label{font-size:11px;letter-spacing:.12em;color:var(--muted2)}.step-dots{gap:8px}.step-dot{width:5px;height:5px;background:var(--border2)}.step-dot.active{background:var(--text);outline:1px solid var(--text);outline-offset:3px}.step-dot.done{background:var(--text)}
.step{grid-column:2;grid-row:3;padding:28px 0 6px;min-width:0}.step.active{animation:step-in .35s var(--ease)}@keyframes step-in{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}.step-title{font-family:inherit;font-weight:300;font-size:34px;letter-spacing:-.035em;line-height:1.16;margin-bottom:9px}.step-title:focus{outline:none}.step-sub{font-size:13px;text-transform:none;letter-spacing:.02em;color:var(--muted2);margin-bottom:30px}.field-group{margin-bottom:27px;min-width:0}.field-label{font-size:14px;line-height:1.5;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text);margin-bottom:10px}.field-input,.field-textarea{border:1px solid var(--border2);background:var(--bg);border-radius:9px;color:var(--text);font:400 16px/1.5 Jost,sans-serif;min-height:48px;padding:11px 14px;transition:border-color .2s var(--ease),background-color .2s var(--ease)}.field-input:focus,.field-textarea:focus{border-color:var(--text);outline:2px solid var(--text);outline-offset:3px}.field-input::placeholder,.field-textarea::placeholder{color:var(--muted);opacity:1}.field-textarea{min-height:112px;line-height:1.6}.field-row{gap:20px}.field-note{font:400 13px/1.6 Jost,sans-serif;color:var(--muted2);margin-top:10px}.divider{margin:30px 0;background:var(--border)}
.chip-group{gap:9px}.chip{font:400 14px/1.45 Jost,sans-serif;letter-spacing:0;border:1px solid var(--border2);border-radius:9px;min-height:44px;padding:10px 14px;text-align:left;color:var(--text);background:transparent}.chip:hover,.yn-btn:hover,.scale-btn:hover{background:var(--blue);border-color:var(--text)}.chip.selected,.chip.multi.selected,.yn-btn.selected,.scale-btn.selected{background:var(--blue);border-color:var(--text);color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.yn-group{gap:10px;max-width:320px}.yn-btn{font:400 14px/1.5 Jost,sans-serif;letter-spacing:0;text-transform:none;border-radius:9px;min-height:46px;padding:10px 18px;color:var(--text)}.scale-group{display:flex;gap:7px;flex-wrap:wrap}.scale-btn{flex:1 0 40px;min-width:40px;min-height:44px;border-radius:9px;color:var(--text);font:400 16px/1.4 Jost,sans-serif;background:transparent;border:1px solid var(--border2)}.scale-labels{font-size:12px!important;letter-spacing:0!important;line-height:1.5;color:var(--muted2)}
.bottom-bar{grid-column:2;grid-row:5;position:sticky;bottom:0;left:auto;right:auto;width:100%;padding:18px 0 max(18px,env(safe-area-inset-bottom));margin-top:18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px;backdrop-filter:none;background:var(--bg);z-index:20}.bar-btn{flex:0 1 auto;border:1px solid var(--text);border-radius:9px;font:400 13px/1.5 Jost,sans-serif;letter-spacing:0;text-transform:none;min-height:44px;padding:10px 18px;color:var(--text)}.bar-btn:last-child{border:1px solid var(--text);margin-left:auto}.bar-btn.primary{background:var(--text);color:var(--bg)}.bar-btn.primary:hover{background:#3f5047;border-color:#3f5047}.bar-btn:not(.primary):hover{background:var(--blue)}.bar-btn[aria-busy="true"]{opacity:.75}
.form-feedback{grid-column:2;grid-row:4;border-left:3px solid var(--error);padding:15px 18px;background:#f2e6df;border-radius:0 9px 9px 0;color:var(--error);font-size:14px;margin-top:12px}.form-feedback[hidden]{display:none}.field-input.err,.field-textarea.err{border:2px solid var(--error);padding:10px 13px}.field-error{color:var(--error);font-size:13px;line-height:1.5;margin-top:7px}.has-error{outline:2px solid var(--error)!important;outline-offset:5px;border-radius:9px!important}.error-msg{font-size:13px;color:var(--error);letter-spacing:0}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.65fr);gap:22px}.map-figure{min-width:0}.map-details{min-width:0}.map-details>.divider{margin:20px 0}.bm-wrap{max-width:310px}.bm-toggle{gap:6px;padding:4px;border-radius:11px;background:var(--blue);margin-bottom:22px}.bm-toggle-btn{font-size:12px;letter-spacing:0;text-transform:none;min-height:42px;padding:9px 12px;border:1px solid transparent;border-radius:8px;color:var(--text);flex:1;background:transparent}.bm-toggle-btn:first-child{border-right:1px solid transparent}.bm-toggle-btn.active{background:var(--bg);border:1px solid var(--text)}.bm-legend{gap:10px 14px;margin:20px 0}.bm-li{font-size:11px;letter-spacing:0;text-transform:none}.bm-dot{width:8px;height:8px}.bm-insight{padding:18px;background:var(--blue);border:0;border-radius:16px;animation:step-in .35s var(--ease)}.bm-insight-label{border:0;padding:0;font-size:10px;letter-spacing:.1em}.bm-insight-title{font:400 18px/1.3 Jost,sans-serif;letter-spacing:-.02em}.bm-insight-body{font-size:13px;line-height:1.65;font-weight:400}.bm-empty{font:400 14px/1.6 Jost,sans-serif;padding:10px 0}.bm-flag-item{flex-wrap:wrap;gap:8px;padding:14px 0}.bm-flag-name{font-size:14px}.bm-flag-side{font-size:11px;letter-spacing:0;text-transform:none}.bm-flag-sym{font-size:11px;letter-spacing:0;text-transform:none;padding:4px 8px;border-radius:6px}.bm-flag-rm{min-width:44px;min-height:44px;opacity:1;font-size:22px;border-radius:9px;border:1px solid var(--border);line-height:1;margin-left:auto}.bm-flag-rm:hover{background:var(--beige)}
.bm-overlay{background:#27332f65;backdrop-filter:blur(3px)}.bm-sheet{max-width:540px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;padding:22px 28px max(28px,env(safe-area-inset-bottom));border:0;border-radius:24px 24px 0 0;background:var(--bg);transition:transform .32s var(--ease)}.bm-sheet:not(.open){visibility:hidden}.bm-sheet.open{visibility:visible}.bm-handle{margin:0 auto 24px}.sheet-close{position:absolute;top:15px;right:18px;min-width:44px;min-height:44px;border:1px solid var(--border);background:transparent;border-radius:9px;font-size:25px;color:var(--text)}.bm-sheet-region{font:300 30px/1.2 Jost,sans-serif;letter-spacing:-.035em;padding-right:42px}.bm-sheet-side{font-size:12px;letter-spacing:0;text-transform:none;margin:7px 0 24px}.bm-sheet-q{font-size:14px;letter-spacing:0;text-transform:none;line-height:1.5}.bm-sym-grid{gap:10px}.bm-sym-btn{border-radius:12px;padding:17px 12px;gap:7px}.bm-sym-lbl{font-size:13px;letter-spacing:0;text-transform:none}.bm-sym-desc{font-size:12px;line-height:1.5}.bm-confirm,.bm-remove{border-radius:9px;min-height:46px;font:400 13px/1.5 Jost,sans-serif;letter-spacing:0;text-transform:none}.bm-confirm{background:var(--text);color:var(--bg)}.bm-confirm:disabled{opacity:.45}.bm-remove{color:var(--text)}
.success-screen{grid-column:2;grid-row:1/6;min-height:550px;padding:52px 32px;background:var(--blue);border-radius:28px;text-align:left;align-items:flex-start;justify-content:center}.success-icon{font-size:0!important;font-family:inherit;width:40px;height:3px;background:var(--text);margin:0 0 30px}.success-title{font:300 42px/1.12 Jost,sans-serif;letter-spacing:-.04em;margin-bottom:22px}.success-sub{font-size:17px;line-height:1.65;font-weight:400;max-width:420px;color:var(--text)}body.application-complete .progress-bar,body.application-complete .step-indicator{display:none}.success-screen:focus{outline:2px solid var(--text);outline-offset:6px}
.preview-banner{padding:9px 24px;background:var(--beige);display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;font:400 12px/1.4 Jost,sans-serif}.preview-banner select{font:inherit;min-height:28px;max-width:100%;border:1px solid var(--border2);border-radius:6px;background:var(--bg);color:var(--text);padding:4px 8px}
@media(min-width:1500px){.app{column-gap:96px}}
@media(max-width:1000px){.brand-header{padding:28px 32px}.app{padding:18px 32px 48px;column-gap:34px;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr)}.app-header{padding:26px}.header-title{font-size:35px}.map-layout{grid-template-columns:1fr}.map-details{border-top:1px solid var(--border);padding-top:20px}.map-details>.divider{display:none}.field-row{gap:14px}.header-meta{flex-wrap:wrap}.step-title{font-size:31px}}
@media(max-width:760px){.brand-header{padding:24px}.ast-brand span{font-size:17px}.ast-brand small{font-size:7px}.ast-brand img{width:35px;height:33px}.brand-context{font-size:10px;letter-spacing:0}.app{display:block;padding:0 24px 28px}.app-header{position:static;padding:26px;border-radius:24px;margin-bottom:28px}.header-main{gap:20px}.header-title{font-size:36px;max-width:480px}.header-meta{flex-wrap:nowrap}.header-tag{font-size:10px}.header-detail{font-size:10px}.application-outline{display:none}.step-indicator{padding:17px 0 20px}.step{padding-top:26px}.step-title{font-size:32px}.step-sub{margin-bottom:26px}.field-row{grid-template-columns:1fr;gap:0}.field-group{margin-bottom:25px}.bottom-bar{bottom:0;padding-bottom:max(16px,env(safe-area-inset-bottom));margin-top:10px}.map-layout{gap:18px}.map-details>.divider{display:none}.bm-wrap{max-width:300px}.bm-sheet{padding-inline:24px}.success-screen{min-height:400px;padding:35px 26px;border-radius:24px}.success-title{font-size:36px}.success-sub{font-size:16px}.scale-btn{flex-basis:calc(20% - 7px)}.bm-legend{gap:12px}.brand-header{gap:12px}.preview-banner{justify-content:flex-start;padding:8px 24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.preview-banner,.bottom-bar,.brand-context{display:none!important}.app{display:block}.app-header{position:static}.step.active{display:block}}
/* Keep navigation in the document flow so it never covers an answer or map. */
.bottom-bar{position:relative;bottom:auto}
/* Final QA: larger map display without changing any anatomical hit geometry. */
.bm-wrap{max-width:360px}
.scale-btn{min-width:44px}
/* Follow the visual viewport when a mobile keyboard reduces available space. */
.bm-sheet{bottom:var(--keyboard-offset,0px);max-height:calc(var(--visible-height,100dvh) - 24px)}
.bm-toggle-btn{min-height:44px}

/* Body Map only: invisible hit areas, restrained flags, keyboard-only focus.
   Hit geometry and the original symptom/state/payload functions are unchanged. */
.bm-svg,.bm-svg .bm-region{-webkit-tap-highlight-color:transparent}
.bm-svg .bm-region{fill:transparent;stroke:none;outline:none;pointer-events:all;touch-action:manipulation}
.bm-wrap:not([data-bm-input="pointer"]) .bm-region:focus-visible{stroke:var(--text);stroke-width:1.5;vector-effect:non-scaling-stroke;fill:rgba(39,51,47,.08)}
@media(hover:hover) and (pointer:fine){.bm-svg .bm-region:hover{fill:rgba(39,51,47,.06)}}
.bm-svg circle[id^="bg"]{r:9px;stroke:none;filter:none;pointer-events:none}
.bm-svg circle[stroke="#C87B0A"]{fill:#C87B0A}
.bm-svg circle[stroke="#B33A2A"]{fill:#B33A2A}
.bm-svg circle[stroke="#2266A8"]{fill:#2266A8}
.bm-svg circle[stroke="#6B7280"]{fill:#6B7280}
