* {box-sizing:border-box}
body {margin:0;color:#18212b;background:radial-gradient(circle at 95% 3%,rgba(206,17,65,.08),transparent 25rem),#f3f6f9;font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.app-shell {display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
aside {padding:1.7rem 1.25rem;background:linear-gradient(180deg,#002554,#001f45);color:white}
aside ol {padding-left:1.5rem} aside li {margin:.6rem 0;color:#d3e2ef}
aside li[aria-current="step"] {font-weight:750;color:white}
aside progress {width:100%;accent-color:#d50032} aside .save-note {font-size:.83rem;color:#dbe6f0}
aside button {margin-top:1rem;background:white;color:#002554}
main {min-width:0;max-width:1220px;width:100%;padding:2rem clamp(1rem,3.5vw,3rem) 4rem;margin:0 auto}
h1,h2,h3,h4 {line-height:1.25} h2 {font-size:1.9rem} h3 {font-size:1.3rem}
button,select,input {font:inherit} button,select {min-height:44px}
button {padding:.55rem .9rem;border:1px solid #becbd7;border-radius:.65rem;background:white;color:#002554;cursor:pointer;font-weight:700}
button.primary {background:#d50032;border-color:#d50032;color:white;margin:.5rem 0}
button:hover:not(:disabled) {filter:brightness(.96)} button:disabled {cursor:default;opacity:.5}
:focus-visible {outline:2px solid #002554;outline-offset:3px}
aside :focus-visible {outline-color:white}
.review-navigation {display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:-.5rem 0 1.2rem}
.review-navigation span {font-size:.75rem;color:#5c6977}
.review-navigation button {display:grid;place-items:center;padding:0;width:44px;height:44px;min-width:44px;border-radius:6px;background:transparent;color:#5c6977;font-weight:400}
.review-navigation svg {width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notice {padding:.85rem 1rem;border-radius:.65rem;margin:.8rem 0}
.notice.info {background:#e5eff9}.notice.success {background:#dff2e7}.notice.warning {background:#fff1d8}
.caption {font-size:.86rem;color:#5c6977;margin:.45rem 0 .9rem}
.columns {display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:1rem;align-items:start}
.columns>* {min-width:0}
.metric {padding:1rem;background:white;border:1px solid #dce3ea;border-radius:.85rem}
.metric strong,.metric span {display:block}.metric strong {font-size:1.5rem}
fieldset {border:0;padding:0;margin:1rem 0} legend {font-weight:650;margin-bottom:.4rem}
label.choice {display:flex;gap:.6rem;align-items:flex-start;min-height:44px;padding:.5rem .7rem;margin:.35rem 0;border:1px solid #d7e0e8;border-radius:.6rem;background:rgba(255,255,255,.7);cursor:pointer}
input[type="radio"] {width:18px;height:18px;min-width:18px;margin-top:.2rem;accent-color:#002554}
label.select-label {display:block;font-weight:650;margin:1rem 0 .3rem}
select {width:100%;max-width:100%;border:1px solid #bdcbd7;background:white;color:#18212b;border-radius:.6rem;padding:.55rem .7rem;white-space:normal}
details {margin:.7rem 0;background:white;border:1px solid #dce3ea;border-radius:.7rem;padding:.65rem 1rem}
summary {min-height:32px;cursor:pointer;font-weight:650;color:#002554}
.tab-list {display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}
[role="tab"][aria-selected="true"] {border-color:#002554;background:#e5eff9}
.readonly-answer {padding:.55rem .7rem;border-left:3px solid #aebdcb;background:#edf2f7}
.readonly-answer strong {display:block}
section[tabindex="-1"]:focus {outline:none}
progress {accent-color:#d50032;width:100%;height:.65rem}
.skip-link {position:fixed;left:1rem;top:-100px;background:white;z-index:10;padding:.7rem;color:#002554}
.skip-link:focus {top:.5rem}
[hidden] {display:none!important}
input[type="checkbox"] {width:18px;height:18px;min-width:18px;margin-top:.2rem;accent-color:#002554}
.amount input,textarea {width:100%;border:1px solid #bdcbd7;background:white;color:#18212b;border-radius:.6rem;padding:.6rem;min-height:44px;font:inherit}
textarea {resize:vertical}input[aria-invalid="true"] {border-color:#b21e35}
.order-row {display:flex;gap:.5rem;align-items:center;margin:.4rem 0}.order-row span {flex:1}.order-row button {padding:.35rem .6rem}
.table-wrap {max-width:100%;overflow:auto;margin:1rem 0;border:1px solid #ccd8e2;border-radius:.6rem;background:white}
.table-wrap table {border-collapse:collapse;min-width:690px;width:100%;font-size:.9rem}
.table-wrap caption {text-align:left;font-weight:750;padding:.65rem}
.table-wrap th,.table-wrap td {padding:.6rem .7rem;border-top:1px solid #e1e7ed;text-align:left;white-space:nowrap}
.table-wrap thead th {background:#eaf1f8}.table-wrap tbody th {font-weight:600}
.table-wrap th button {padding:.2rem .4rem;background:transparent;border:0;border-radius:.2rem;min-height:44px;white-space:normal;text-align:left}
.table-tools {display:flex;gap:.6rem;flex-wrap:wrap;margin:.5rem 0 1rem}
dialog.expanded-table {width:min(96vw,1250px);max-width:none;max-height:94vh;border:1px solid #bccbd8;border-radius:1rem;padding:1.3rem}
dialog::backdrop {background:#00255499}
.brand-title {margin:0;line-height:1.15}
aside details {background:#0e3a67;color:white;border-color:#315778}aside summary {color:white}aside .formula-chip {color:#002554}aside h2,aside .caption {color:white}
aside h2 {margin-top:0;font-size:1.5rem}
@media(max-width:760px) {.vital-grid {grid-template-columns:1fr 1fr!important}.chart-table {font-size:.85rem}.chart-table td {padding:.4rem}.brand-title {font-size:2.2rem!important}}
@media(max-width:1000px) {.app-shell {grid-template-columns:210px minmax(0,1fr)}.columns {grid-template-columns:repeat(2,minmax(0,1fr))}.columns .columns {grid-template-columns:1fr}}
@media(max-width:760px) {.app-shell {display:block}aside {padding:1rem}aside .sidebar-brand {margin:0;padding:0;border:0}aside ol {display:none}aside .sidebar-progress {margin:.4rem 0}aside .save-note {margin:.3rem 0}aside button {margin:.4rem 0 0}main {padding:1rem 1rem 3rem}.columns {grid-template-columns:1fr}.hero h1 {font-size:2.1rem}.review-navigation {margin-top:.25rem}.statement-row {gap:.6rem;font-size:.9rem}.statement-row span:last-child {white-space:nowrap}.statement-card {padding:1rem}.flow {grid-template-columns:1fr}}
