:root {
  color-scheme: light;
  --navy: #071b33;
  --navy-2: #0c294a;
  --blue: #165ee8;
  --blue-dark: #0e4fc9;
  --sky: #dbeafe;
  --yellow: #ffd84d;
  --ink: #132238;
  --muted: #627087;
  --line: #dbe3ed;
  --soft: #f4f7fb;
  --white: #fff;
  --danger: #b42318;
  --shadow: 0 18px 50px rgba(7, 27, 51, .10);
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--soft); scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 84% 12%, rgba(22,94,232,.08), transparent 30rem), var(--soft); font: 16px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.topbar { height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(24px, calc((100vw - 1280px)/2)); background: var(--navy); color: #fff; border-bottom: 1px solid rgba(255,255,255,.12); }
.brand { color: inherit; text-decoration: none; display: flex; align-items: center; gap: 12px; font-size: 1.15rem; letter-spacing: -.02em; }
.brand b { color: var(--yellow); }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; background: var(--yellow); color: var(--navy); border-radius: 12px 12px 12px 4px; }
.brand-mark svg { width: 22px; height: 22px; stroke-width: 2.2; }
.header-actions { display: flex; align-items: center; gap: 24px; }
.verified { display: flex; align-items: center; gap: 8px; font-size: .85rem; color: #cbd8e8; }
.verified > span:first-child { width: 7px; height: 7px; background: #56d89b; border-radius: 50%; box-shadow: 0 0 0 4px rgba(86,216,155,.12); }
.lang-switch { border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.07); color: #9fb2ca; border-radius: 999px; padding: 5px; display: flex; gap: 2px; }
.lang-switch span, .lang-switch b { padding: 4px 9px; border-radius: 999px; font-size: .78rem; }
.lang-switch b { background: #fff; color: var(--navy); }
.app-shell { max-width: 1280px; margin: 0 auto; min-height: calc(100vh - 126px); display: grid; grid-template-columns: 300px minmax(0,1fr); background: #fff; box-shadow: var(--shadow); }
.journey { background: var(--navy-2); color: #fff; padding: 44px 32px 32px; display: flex; flex-direction: column; }
.eyebrow { color: var(--blue); font-size: .75rem; text-transform: uppercase; letter-spacing: .13em; font-weight: 800; }
.journey .eyebrow { color: #92bfff; }
.journey-heading { display: flex; flex-direction: column; gap: 5px; margin-bottom: 32px; }
.journey-heading strong { font-size: 1.15rem; }
.step-list { padding: 0; margin: 0; list-style: none; position: relative; }
.step-list::before { content:""; position: absolute; top: 21px; bottom: 34px; left: 18px; width: 1px; background: rgba(255,255,255,.17); }
.step-list li { display: grid; grid-template-columns: 38px 1fr; gap: 14px; align-items: start; min-height: 82px; position: relative; opacity: .55; }
.step-list li > span { width: 38px; height: 38px; display: grid; place-items: center; background: #173a60; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; font-weight: 800; position: relative; z-index: 1; }
.step-list li.active, .step-list li.done { opacity: 1; }
.step-list li.active > span { color: var(--navy); background: var(--yellow); border-color: var(--yellow); box-shadow: 0 0 0 6px rgba(255,216,77,.10); }
.step-list li.done > span { background: var(--blue); border-color: var(--blue); font-size: 0; }
.step-list li.done > span::after { content:"✓"; font-size: .9rem; }
.step-list b, .step-list small { display: block; }
.step-list b { font-size: .94rem; margin-top: 1px; }
.step-list small { color: #9fb2ca; margin-top: 2px; font-size: .78rem; }
.trust-note { margin-top: auto; display: grid; grid-template-columns: 30px 1fr; gap: 12px; color: #b5c4d6; border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; }
.trust-note svg { color: var(--yellow); }
.trust-note b { color: #fff; font-size: .82rem; }
.trust-note p { margin: 4px 0 0; font-size: .76rem; line-height: 1.45; }
.workspace { padding: 56px 7% 30px; min-width: 0; }
#caseForm { max-width: 790px; margin: 0 auto; }
.form-step { display: none; animation: enter .35s ease both; }
.form-step.active { display: block; }
@keyframes enter { from { opacity: 0; transform: translateY(8px); } }
.section-top { max-width: 660px; margin-bottom: 32px; }
h1 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.08; letter-spacing: -.05em; margin: 8px 0 13px; color: var(--navy); }
.section-top p { color: var(--muted); margin: 0; max-width: 650px; }
.field-label, fieldset legend, .select-field > span { display: block; color: var(--navy); font-weight: 750; font-size: .9rem; margin-bottom: 9px; }
.textarea-wrap { position: relative; }
textarea, select { width: 100%; border: 1px solid var(--line); color: var(--ink); background: #fff; border-radius: 14px; outline: none; transition: .2s ease; }
textarea { resize: vertical; min-height: 178px; padding: 17px 18px 36px; line-height: 1.55; }
textarea:focus, select:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(22,94,232,.10); }
textarea.invalid { border-color: var(--danger); }
.textarea-wrap #charCount { position: absolute; bottom: 11px; right: 14px; color: #8390a2; font-size: .72rem; }
.error-text { color: var(--danger); font-size: .82rem; margin: 7px 2px 0; }
fieldset { border: 0; padding: 0; margin: 28px 0 0; }
.chip-grid { display: flex; flex-wrap: wrap; gap: 9px; }
.topic-chip { color: #34455c; background: var(--soft); border: 1px solid transparent; border-radius: 999px; padding: 9px 14px; font-size: .86rem; font-weight: 650; }
.topic-chip:hover { border-color: #aac6ff; background: #edf4ff; }
.topic-chip.selected { color: var(--blue-dark); border-color: #7ba5fa; background: #e9f1ff; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
select { height: 52px; padding: 0 42px 0 14px; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #748399 50%), linear-gradient(135deg,#748399 50%,transparent 50%); background-position: calc(100% - 20px) 23px,calc(100% - 15px) 23px; background-size: 5px 5px; background-repeat: no-repeat; }
.choice-group { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.choice-group legend { grid-column: 1 / -1; }
.choice-card input, .evidence-list input, .danger-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card > span { min-height: 110px; border: 1px solid var(--line); border-radius: 14px; display: flex; flex-direction: column; padding: 16px; transition: .2s ease; cursor: pointer; }
.choice-card i { width: 18px; height: 18px; border: 1.5px solid #a7b2c0; border-radius: 5px; margin-bottom: 14px; }
.choice-card b { font-size: .86rem; line-height: 1.3; }
.choice-card small { color: var(--muted); font-size: .72rem; margin-top: 5px; }
.choice-card input:checked + span { border-color: var(--blue); background: #f4f8ff; box-shadow: inset 0 0 0 1px var(--blue); }
.choice-card input:checked + span i { background: var(--blue); border-color: var(--blue); box-shadow: inset 0 0 0 4px #f4f8ff; }
.danger-toggle { margin-top: 20px; padding: 15px 17px; border: 1px solid #f0c5c2; border-radius: 14px; display: grid; grid-template-columns: 40px 1fr; align-items: center; gap: 12px; background: #fff8f7; cursor: pointer; }
.danger-toggle > span { width: 38px; height: 22px; padding: 2px; border-radius: 99px; background: #bac3ce; transition: .2s; }
.danger-toggle > span i { display: block; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: .2s; }
.danger-toggle input:checked + span { background: var(--danger); }
.danger-toggle input:checked + span i { transform: translateX(16px); }
.danger-toggle b, .danger-toggle small { display: block; }
.danger-toggle b { color: #721c18; font-size: .86rem; }
.danger-toggle small { color: #97605d; font-size: .75rem; margin-top: 2px; }
.emergency { max-width: 790px; margin: -25px auto 24px; background: #8f1b13; color: #fff; padding: 13px 17px; border-radius: 12px; gap: 10px; align-items: baseline; font-size: .85rem; }
.emergency:not([hidden]) { display: flex; }
.emergency span { color: #ffdedb; }
.evidence-list { display: grid; gap: 10px; }
.evidence-list label > span { display: grid; grid-template-columns: 44px 1fr; align-items: center; gap: 4px; min-height: 72px; border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px; cursor: pointer; transition: .2s; }
.evidence-list i { width: 26px; height: 26px; border: 1.5px solid #afbac8; border-radius: 8px; display: grid; place-items: center; }
.evidence-list i svg { width: 16px; opacity: 0; }
.evidence-list b, .evidence-list small { display: block; }
.evidence-list b { color: var(--navy); font-size: .9rem; }
.evidence-list small { color: var(--muted); font-size: .76rem; margin-top: 2px; }
.evidence-list input:checked + span { border-color: #8dafef; background: #f5f9ff; }
.evidence-list input:checked + span i { background: var(--blue); border-color: var(--blue); color: #fff; }
.evidence-list input:checked + span i svg { opacity: 1; }
.soft-note { margin-top: 18px; background: #fff9dc; border-left: 3px solid var(--yellow); padding: 13px 16px; color: #6a5914; display: flex; gap: 7px; flex-wrap: wrap; font-size: .82rem; }
.form-actions { max-width: 790px; margin: 36px auto 0; padding-top: 22px; border-top: 1px solid var(--line); display: flex; gap: 12px; align-items: center; }
.action-spacer { flex: 1; }
.button { min-height: 50px; border-radius: 12px; border: 0; padding: 0 19px; display: inline-flex; justify-content: center; align-items: center; gap: 10px; font-weight: 750; }
.button.primary { color: #fff; background: var(--blue); box-shadow: 0 8px 22px rgba(22,94,232,.24); }
.button.primary:hover { background: var(--blue-dark); transform: translateY(-1px); }
.button.secondary { color: var(--navy); background: #fff; border: 1px solid var(--line); }
.button.restart { margin-left: auto; }
.result-hero { display: grid; grid-template-columns: 60px 1fr; gap: 19px; align-items: start; margin-bottom: 28px; }
.result-hero h1 { font-size: clamp(1.8rem,4vw,2.75rem); margin-bottom: 9px; }
.result-hero p { margin: 0; color: var(--muted); }
.result-icon { width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; background: #e9f9f0; color: #15834f; }
.result-icon svg { width: 29px; height: 29px; stroke-width: 2.3; }
.result-grid { display: grid; grid-template-columns: 1.4fr .9fr; gap: 16px; }
.card { border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.card-heading { min-height: 57px; border-bottom: 1px solid var(--line); padding: 15px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.card-heading > span, .card-heading div > span { font-weight: 800; color: var(--navy); }
.card-heading small { color: #0c7043; background: #e7f7ef; border-radius: 999px; padding: 4px 9px; font-size: .67rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.action-plan ol { margin: 0; padding: 10px 20px 16px 56px; counter-reset: actions; list-style: none; }
.action-plan li { position: relative; padding: 11px 0; color: #44536a; font-size: .85rem; border-bottom: 1px solid #eef2f6; }
.action-plan li:last-child { border: 0; }
.action-plan li::before { counter-increment: actions; content: counter(actions); position: absolute; left: -37px; top: 12px; width: 23px; height: 23px; display: grid; place-items: center; background: #eaf1ff; color: var(--blue); border-radius: 50%; font-size: .72rem; font-weight: 800; }
.contact-card { padding: 20px; background: var(--navy); color: #fff; border-color: var(--navy); }
.contact-kicker { color: #99b4d1; text-transform: uppercase; letter-spacing: .1em; font-size: .66rem; font-weight: 800; }
.contact-card h2 { font-size: 1.05rem; line-height: 1.3; margin: 9px 0 18px; }
.phone { color: var(--yellow); font-size: 1.15rem; font-weight: 850; text-decoration: none; display: flex; align-items: center; gap: 8px; }
.contact-card p { color: #aebfd1; font-size: .72rem; margin: 4px 0 20px 29px; }
.text-link { display: flex; align-items: center; justify-content: space-between; color: #fff; text-decoration: none; border-top: 1px solid rgba(255,255,255,.15); padding-top: 14px; font-size: .8rem; font-weight: 700; }
.text-link svg { width: 16px; }
.draft-card { margin-top: 16px; }
.draft-card .card-heading p { margin: 2px 0 0; color: var(--muted); font-size: .72rem; }
.draft-card button { color: var(--blue); border: 0; background: #ecf3ff; border-radius: 9px; padding: 8px 11px; display: flex; gap: 7px; align-items: center; font-size: .76rem; font-weight: 800; }
.draft-card button svg { width: 16px; height: 16px; }
.draft { padding: 18px; white-space: pre-wrap; color: #3b4b61; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; line-height: 1.65; font-size: .78rem; max-height: 250px; overflow: auto; }
.disclaimer { display: flex; align-items: center; gap: 10px; color: var(--muted); margin: 15px 4px 0; font-size: .73rem; }
.disclaimer svg { flex: 0 0 auto; color: var(--blue); }
.disclaimer p { margin: 0; }
.site-footer { height: 50px; max-width: 1280px; margin: 0 auto; padding: 0 24px; display: flex; justify-content: space-between; align-items: center; color: #718096; font-size: .72rem; }
.site-footer a { color: #52677f; }
.toast { position: fixed; left: 50%; bottom: 25px; transform: translate(-50%,20px); padding: 11px 16px; background: var(--navy); color: #fff; border-radius: 10px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .25s; font-size: .82rem; }
.toast.show { opacity: 1; transform: translate(-50%,0); }
button:focus-visible, a:focus-visible, input:focus-visible + span { outline: 3px solid rgba(22,94,232,.35); outline-offset: 3px; }

@media (max-width: 850px) {
  .app-shell { grid-template-columns: 1fr; }
  .journey { padding: 18px 24px; display: block; }
  .journey-heading, .trust-note, .step-list li div { display: none; }
  .step-list { display: flex; justify-content: center; gap: 14px; }
  .step-list::before { top: 17px; bottom: auto; left: calc(50% - 86px); width: 172px; height: 1px; }
  .step-list li { display: block; min-height: 0; }
  .step-list li > span { width: 34px; height: 34px; font-size: .8rem; }
  .workspace { padding: 38px 6% 28px; }
}
@media (max-width: 620px) {
  .topbar { height: 66px; padding: 0 16px; }
  .verified { display: none; }
  .brand { font-size: 1rem; }
  .brand-mark { width: 34px; height: 34px; }
  .workspace { padding: 30px 18px 24px; }
  h1 { font-size: 2.1rem; }
  .form-grid, .choice-group, .result-grid { grid-template-columns: 1fr; }
  .choice-card > span { min-height: 86px; }
  .choice-group { gap: 8px; }
  .choice-group legend { grid-column: 1; }
  .form-actions { position: sticky; bottom: 0; background: rgba(255,255,255,.96); margin-left: -18px; margin-right: -18px; padding: 14px 18px; border-top: 1px solid var(--line); z-index: 3; }
  .button.primary { flex: 1; }
  .result-hero { grid-template-columns: 46px 1fr; gap: 13px; }
  .result-icon { width: 46px; height: 46px; border-radius: 14px; }
  .result-icon svg { width: 23px; }
  .draft-card .card-heading { align-items: flex-start; }
  .draft-card button span { display: none; }
  .site-footer { flex-direction: column; justify-content: center; gap: 2px; height: 64px; }
}

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Ambient day/night layer: a calm visual cue, never competing with the intake. */
body.night { --navy:#eaf2ff; --navy-2:#0a192d; --ink:#edf4ff; --muted:#aabbd2; --line:#294362; --soft:#152b46; background:#071321; color:var(--ink); }
body.night .topbar, body.night .workspace, body.night #caseForm, body.night .card, body.night .help-card { background:#0c1d31; color:var(--ink); border-color:#294362; }
body.night .workspace { background:rgba(7,19,33,.86); }
body.night h1, body.night .field-label, body.night fieldset legend, body.night .select-field > span, body.night .card-heading > span, body.night .card-heading div > span, body.night .help-card h3, body.night .evidence-list b, body.night .choice-card b { color:#edf4ff; }
body.night textarea, body.night select { background:#10263f; color:#edf4ff; border-color:#355474; }
body.night .topic-chip, body.night .choice-card > span, body.night .evidence-list label > span { background:#10263f; border-color:#294362; color:#d6e3f4; }
body.night .topic-chip.selected, body.night .choice-card input:checked + span, body.night .evidence-list input:checked + span { background:#183c66; border-color:#74a9ff; }
body.night .demo-card { background:#10263f; border-color:#294362; color:#edf4ff; }
body.night .demo-card small, body.night .demo-card .case-bottom { color:#aec2dc; }
body.night .quiet-button, body.night .theme-toggle { background:#10263f; color:#edf4ff; border-color:#355474; }
body.night .soft-note { background:#332d16; color:#f6df91; }
body.night .ambient-glow-a { background:#245ddd; opacity:.22; }
body.night .ambient-glow-b { background:#623fa6; opacity:.16; }
body.night .theme-icon { color:#ffda65; }
@media (max-width:620px) { .theme-toggle #themeLabel { display:none; } .theme-toggle { width:42px; justify-content:center; padding:8px; } }

/* Edition 02 — a calm civic workspace, with motion supporting orientation. */
:root { --navy:#102641; --navy-2:#102641; --blue:#245ddd; --blue-dark:#1747b4; --yellow:#ffda65; --ink:#23344b; --muted:#596b82; --line:#dde5ef; --soft:#f2f5fa; }
[hidden] { display:none !important; }
.help-catalog { margin:24px 0; border-block:1px solid var(--line); padding:22px 0; }
.catalog-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.catalog-heading h2 { margin:0; font-size:1.35rem; letter-spacing:-.025em; }
.catalog-heading p { font-size:.875rem; color:var(--muted); margin:6px 0; }
.catalog-heading button { flex-shrink:0; }
.catalog-status { font-size:.8125rem; color:#536780; }
.help-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.help-card { padding:18px; border:1px solid var(--line); border-radius:13px; background:#fafcff; display:flex; flex-direction:column; min-width:0; }
.help-provider { font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; color:#416491; }
.help-card h3 { font-size:1.1rem; margin:10px 0 7px; line-height:1.3; }
.help-card p { font-size:.9375rem; margin:0 0 10px; }
.help-card small,.source-dates { color:var(--muted); font-size:.75rem; }
.help-card .match-reason { color:#2457a2; background:#eaf2ff; border-radius:5px; padding:6px 9px; margin:13px 0; font-size:.8125rem; }
.source-dates { display:flex; flex-direction:column; gap:4px; margin-top:auto; }
.source-warning { color:#915714; font-weight:600; }
.help-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:13px; padding-top:12px; border-top:1px solid var(--line); }
.help-actions .text-link { color:var(--blue); border:0; padding:0; }
.call-link { color:#1e664d; font-size:.875rem; font-weight:650; }
.catalog-sources { margin-top:18px; font-size:.875rem; }
.catalog-sources summary { cursor:pointer; font-weight:650; }
.catalog-sources ul { padding-left:18px; }
.catalog-sources li { margin:10px 0; }
.catalog-sources li span { display:block; color:var(--muted); font-size:.8125rem; }
.catalog-sources a { color:var(--blue-dark); }
@media(max-width:620px) { .help-cards { grid-template-columns:1fr; } .catalog-heading { flex-direction:column; } }
@media print { .catalog-heading button { display:none; } .help-card { break-inside:avoid; } .help-actions a[href^='https']::after { content:' (' attr(href) ')'; font-size:10pt; overflow-wrap:anywhere; } }
body { background:#edf2f8; }
#ambientCanvas { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:-2; opacity:.8; }
.ambient-glow { position:fixed; width:34vw; height:34vw; border-radius:50%; filter:blur(55px); pointer-events:none; z-index:-1; opacity:.34; transition:background 1s ease,transform 1.2s ease; }
.ambient-glow-a { top:-12vw; right:-8vw; background:#9dc4ff; }
.ambient-glow-b { bottom:-18vw; left:-10vw; background:#ffe59c; }
.theme-toggle { min-height:42px; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px; padding:8px 12px; color:var(--ink); background:#fff; font-size:.78rem; font-weight:700; cursor:pointer; }
.theme-toggle:hover { border-color:#a9bfee; background:#f1f6ff; }
.theme-icon { font-size:1.05rem; line-height:1; }
button { transition:background .18s, border-color .18s, box-shadow .18s, transform .18s; }
.skip-link { position:fixed; top:8px; left:8px; z-index:20; padding:12px; background:#fff; color:var(--navy); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.topbar { height:82px; background:rgba(255,255,255,.96); color:var(--navy); border-color:var(--line); padding-inline:max(24px,calc((100vw - 1440px)/2)); }
.brand { font-size:1.3rem; font-weight:800; letter-spacing:-.04em; }
.brand b { color:var(--blue); font-size:.8rem; letter-spacing:.04em; margin-left:4px; }
.brand-mark { background:var(--navy); color:var(--yellow); width:42px; height:42px; border-radius:13px; }
.verified { color:var(--muted); font-size:.8125rem; }
.verified > span:first-child { background:#157b58; box-shadow:none; }
.lang-switch { border-color:var(--line); background:#eef2f8; color:#596b82; }
.lang-switch b { box-shadow:0 2px 5px #162c4312; }
.lang-switch span,.lang-switch b { font-size:.875rem; }
.quiet-button { background:transparent; border:1px solid var(--line); color:var(--ink); border-radius:9px; padding:9px 13px; font-size:.875rem; font-weight:650; min-height:42px; }
.quiet-button:hover { background:#eaf0fb; border-color:#a9bfee; }
.app-shell { max-width:1440px; grid-template-columns:282px minmax(0,1fr); min-height:calc(100vh - 134px); box-shadow:none; }
.journey { padding:36px 28px 26px; background:radial-gradient(ellipse at 20% 10%,#214b73 0,transparent 55%),linear-gradient(160deg,#102b49,#0a192d); position:relative; overflow:hidden; }
.sidebar-intro { margin-bottom:40px; position:relative; }
.edition { color:#c4d6ee; font-size:.75rem; font-weight:650; letter-spacing:.16em; }
.sidebar-intro h2 { font-size:1.75rem; font-weight:650; letter-spacing:-.04em; line-height:1.22; margin:24px 0 14px; color:#fff; }
.sidebar-intro p { color:#becde0; font-size:.875rem; line-height:1.7; margin:0; }
.journey-heading { flex-direction:row; align-items:center; justify-content:space-between; margin:0 0 12px; gap:8px; }
.journey-heading strong { font-size:.8125rem; font-weight:500; color:#c4d6ee; }
.eyebrow { font-size:.75rem; letter-spacing:.1em; }
progress { appearance:none; height:4px; border:0; display:block; width:100%; margin:0 0 28px; background:#ffffff24; border-radius:9px; overflow:hidden; }
progress::-webkit-progress-bar { background:#ffffff24; }
progress::-webkit-progress-value { background:var(--yellow); transition:width .6s cubic-bezier(.22,1,.36,1); }
progress::-moz-progress-bar { background:var(--yellow); }
.step-list li { min-height:90px; opacity:1; }
.step-list li b { color:#b4c5d9; font-size:.9375rem; }
.step-list li small { color:#a4b9d1; font-size:.8125rem; max-width:150px; }
.step-list li.active b,.step-list li.done b { color:#fff; }
.step-list li > span { background:#153452; color:#b8cce3; font-size:.875rem; transition:background .35s,box-shadow .35s; }
.step-list li.active > span { box-shadow:0 0 0 6px #ffda6512; }
.step-list li.done > span { color:#fff; }
.trust-note { margin-top:44px; padding-top:24px; }
.trust-note b { font-size:.875rem; }
.trust-note p { font-size:.8125rem; color:#b8c8dc; }
.workspace { padding:28px 40px 32px; background:#f8fafd; }
.workspace:focus { outline:none; }
.workspace-top { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:26px; font-size:.75rem; letter-spacing:.12em; font-weight:700; color:#60738a; }
.mode-badge { border:1px solid #dce5f0; color:#536780; padding:5px 9px; border-radius:6px; letter-spacing:0; font-weight:500; }
#caseForm { max-width:none; padding:30px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 4px 20px #1b375106; }
.section-top { margin-bottom:24px; max-width:none; }
h1 { font-size:clamp(1.8rem,2.9vw,2.55rem); letter-spacing:-.045em; line-height:1.15; margin:10px 0 12px; }
.section-top p { font-size:1rem; max-width:660px; }
.field-label, fieldset legend,.select-field > span { font-size:.875rem; }
textarea { background:#fbfcfe; border-radius:12px; min-height:155px; }
textarea::placeholder { color:#728299; }
.textarea-wrap #charCount { font-size:.75rem; background:#fbfcfe; padding-inline:5px; }
.chip-grid { gap:8px; }
.topic-chip { border-radius:9px; background:#fff; border:1px solid var(--line); font-size:.875rem; padding:9px 12px; }
.topic-chip.selected { border-color:#759ee9; background:#edf3ff; }
.input-note { margin:13px 0 0; font-size:.8125rem; color:var(--muted); line-height:1.55; }
.demo-gallery { margin-bottom:25px; }
.demo-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:14px; }
.demo-heading h2 { margin:5px 0 0; font-size:1.25rem; letter-spacing:-.025em; font-weight:700; line-height:1.3; }
.demo-label { font-size:.75rem; color:#69788d; white-space:nowrap; }
.demo-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.demo-card { position:relative; overflow:hidden; text-align:left; background:#fff; color:var(--ink); border:1px solid #dce5ef; border-radius:15px; padding:17px; min-width:0; min-height:175px; display:flex; flex-direction:column; align-items:flex-start; box-shadow:0 3px 12px #18365305; }
.demo-card::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,0%),#3679ee12,transparent 65%); opacity:0; transition:opacity .25s; }
.demo-card:hover,.demo-card:focus-visible { transform:translateY(-4px); border-color:#9bb4df; box-shadow:0 12px 28px #23467714; }
.demo-card:hover::before { opacity:1; }
.demo-card[aria-pressed=true] { background:#eef4ff; border-color:#7fa5e7; }
.demo-card .case-number { background:#e9f1ff; color:#2c60bb; border-radius:7px; padding:4px 7px; font:600 .75rem ui-monospace,monospace; margin-bottom:13px; }
.demo-card:nth-child(2) .case-number { background:#e8f5f0; color:#21674e; }
.demo-card:nth-child(3) .case-number { background:#fff2d7; color:#886017; }
.demo-card b { font-size:1rem; line-height:1.3; letter-spacing:-.015em; margin-bottom:6px; }
.demo-card small { font-size:.8125rem; color:#566a82; margin-bottom:5px; }
.demo-card .case-bottom { font-size:.75rem; color:#5c6e84; padding-top:12px; margin-top:auto; width:100%; display:flex; justify-content:space-between; align-items:center; gap:5px; border-top:1px solid #e3eaf4; }
.demo-card .case-bottom svg { flex-shrink:0; width:16px; }
.active-demo { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:15px; padding:12px 16px; border:1px solid #b7cfef; background:#eaf2ff; border-radius:10px; font-size:.875rem; color:#235399; }
.active-demo button { background:transparent; color:#174da6; border:0; font-size:.875rem; font-weight:700; padding:4px; }
.form-actions { max-width:none; margin-top:24px; padding-top:20px; }
.button { font-size:.9375rem; border-radius:10px; min-height:48px; }
.button.primary { box-shadow:0 4px 12px #245ddd20; }
.button.primary:active { transform:scale(.98); }
.choice-card b,.danger-toggle b,.evidence-list b { font-size:.9375rem; }
.choice-card small,.danger-toggle small,.evidence-list small { font-size:.8125rem; }
.choice-card > span { height:100%; }
.soft-note { font-size:.875rem; border-radius:0 10px 10px 0; }
.emergency { margin:0 0 18px; max-width:none; font-size:.9375rem; flex-wrap:wrap; }
.emergency a { color:#fff; font-weight:800; }
.result-hero { grid-template-columns:48px minmax(0,1fr); gap:16px; margin-bottom:18px; }
.result-icon { width:48px; height:48px; border-radius:15px; margin-top:4px; }
.result-hero h1 { font-size:clamp(1.7rem,2.6vw,2.4rem); }
.result-icon svg { stroke-dasharray:36; stroke-dashoffset:0; animation:draw-check .65s ease-out; }
@keyframes draw-check { from { stroke-dashoffset:36; } }
.result-metadata { display:flex; flex-wrap:wrap; gap:7px; margin:20px 0; }
.result-metadata span { background:#f0f4fa; border:1px solid #e1e8f2; color:#4c617d; padding:5px 10px; font-size:.8125rem; border-radius:6px; }
.result-toolbar { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.result-toolbar > div { display:flex; gap:7px; flex-wrap:wrap; }
.result-grid { grid-template-columns:minmax(0,1.25fr) minmax(240px,.9fr); }
.card { overflow:hidden; border-radius:13px; }
.card-heading { padding:15px 16px; flex-wrap:wrap; }
.card-heading small { font-size:.75rem; }
#urgencyBadge.urgent { background:#fff0df; color:#87441a; }
.action-plan ol { padding-left:48px; }
.action-plan li { font-size:.9375rem; line-height:1.6; padding-block:14px; }
.action-plan li::before { left:-32px; top:16px; }
.contact-card { background:radial-gradient(ellipse at 100% 0,#315787,transparent 80%),#102641; }
.contact-kicker { font-size:.75rem; color:#c6d8ec; }
.contact-card h2 { font-size:1.3rem; margin-block:12px 22px; }
.phone { font-size:1.15rem; flex-wrap:wrap; }
.contact-card p { font-size:.8125rem; margin-left:0; color:#c1d2e6; }
.text-link { font-size:.875rem; gap:8px; }
.preparation-card { margin-top:16px; }
.preparation-card .input-note { margin:0; padding:0 16px 16px; }
.preparation-list { display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; padding:16px; }
.preparation-item { display:flex; gap:10px; align-items:flex-start; font-size:.875rem; }
.preparation-item > span { width:22px; height:22px; flex-shrink:0; border-radius:50%; background:#eef2f7; color:#61738a; text-align:center; }
.preparation-item.ready > span { background:#e5f6ed; color:#19714c; }
.preparation-item small { display:block; color:#62748a; font-size:.75rem; }
.draft-card .card-heading p { font-size:.8125rem; max-width:450px; }
.draft-card button { font-size:.875rem; }
.draft { font-size:.875rem; background:repeating-linear-gradient(transparent,transparent 27px,#e7edf51f 27px,#e7edf51f 28px),#fafcff; line-height:1.8; max-height:320px; overflow-wrap:anywhere; }
.transparency { margin-top:18px; padding:15px 0; border-block:1px solid var(--line); font-size:.875rem; color:#536780; }
.transparency summary { cursor:pointer; font-weight:700; color:var(--ink); }
.transparency p { margin:10px 0; }
.transparency a { color:var(--blue-dark); }
.disclaimer { font-size:.8125rem; align-items:flex-start; }
.site-footer { max-width:1440px; font-size:.75rem; }
.form-step.active { animation:panel-in .35s cubic-bezier(.22,1,.36,1) both; }
@keyframes panel-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
dialog { max-width:460px; width:calc(100% - 32px); border:1px solid var(--line); border-radius:20px; padding:26px; color:var(--ink); box-shadow:0 25px 100px #00182f40; }
dialog::backdrop { background:#071b3380; backdrop-filter:blur(5px); }
dialog h2 { margin:0 0 12px; font-size:1.4rem; }
dialog p { color:var(--muted); }
.dialog-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:24px; }
.toast { font-size:.875rem; max-width:calc(100% - 32px); text-align:center; z-index:25; }
@media (min-width:1100px) { .journey { position:sticky; top:0; height:calc(100vh - 20px); max-height:900px; } .trust-note { margin-top:auto; } }
@media (max-width:1100px) { .app-shell { grid-template-columns:236px minmax(0,1fr); } .journey { padding:28px 20px; } .workspace { padding:24px; } #caseForm { padding:24px; } .demo-card { padding:14px; } .result-grid { grid-template-columns:1fr; } .verified { display:none; } }
@media (max-width:850px) { .app-shell { grid-template-columns:1fr; } .journey { padding:16px 24px; } .sidebar-intro,.journey-heading,.trust-note { display:none; } progress { margin:0 auto 14px; max-width:240px; } .step-list li { min-height:0; } .workspace { padding:24px; } }
@media (max-width:620px) { .topbar { height:70px; padding:0 16px; } .header-actions { gap:8px; } .brand { font-size:1.03rem; gap:8px; } .brand-mark { width:32px; height:32px; border-radius:9px; } #demoToggle { font-size:.75rem; padding:6px 8px; } .workspace { padding:20px 14px; } .workspace-top { font-size:.75rem; flex-wrap:wrap; margin-bottom:20px; } .demo-heading { align-items:flex-start; flex-direction:column; } .demo-cards { grid-template-columns:1fr; gap:8px; } .demo-card { min-height:0; display:grid; grid-template-columns:32px 1fr; column-gap:12px; padding:14px; } .demo-card .case-number { grid-row:1/4; margin:0; align-self:start; } .demo-card b,.demo-card small,.demo-card .case-bottom { grid-column:2; } .demo-card .case-bottom { border:0; padding-top:0; } #caseForm { padding:22px 18px 0; border-radius:15px; } h1 { font-size:1.9rem; } .form-actions { position:static; margin:24px -18px 0; padding:16px 18px; border-radius:0 0 15px 15px; background:#fff; flex-wrap:wrap; } .form-grid,.choice-group,.preparation-list { grid-template-columns:1fr; } .result-toolbar .quiet-button { font-size:.8125rem; } .result-hero { grid-template-columns:1fr; } .result-hero h1 { font-size:1.85rem; } .active-demo { align-items:flex-start; flex-direction:column; } .draft-card button span { display:inline; } .card-heading { gap:8px; } .result-grid { grid-template-columns:minmax(0,1fr); } .choice-card > span { min-height:0; } }
@media (max-width:380px) { .brand b { display:none; } .header-actions { gap:5px; } .lang-switch span,.lang-switch b { padding:4px 6px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } .demo-card:hover { transform:none; } }
@media print { body,.workspace,.app-shell { background:white; } .topbar,.journey,.workspace-top,.demo-gallery,.active-demo,.form-actions,.result-toolbar,.site-footer,.toast,dialog,.skip-link,#copyDraft { display:none !important; } .app-shell { display:block; box-shadow:none; } .workspace,#caseForm { padding:0; border:0; box-shadow:none; } .form-step:not(.active) { display:none; } .result-grid { display:block; } .card { break-inside:avoid; margin-bottom:16px; } .contact-card { color:#102641; background:white; border:1px solid #aaa; } .contact-card a,.contact-card p,.contact-kicker { color:#102641; } .draft { max-height:none; overflow:visible; } .transparency { display:none; } }
