:root {
      color-scheme: light;
      --ink:#172B4D;
      --muted:#4B5D73;
      --line:#DCE4EF;
      --control-border:#6C7F99;
      --accent:#2459A6;
      --accent-hover:#1B4788;
      --accent-soft:#EDF4FF;
      --paper:#FFFFFF;
      --bg:#F4F7FB;
      --error:#9C3038;
      --focus:#155BCB;
      --hover-bg:#F5F8FE;
      --progress-idle:#E1E8F2;
      --progress-past:#637EAB;
      --subfield-line:#CBD9EF;
      --footer-line:#E4EAF3;
      --end-bg:#F7F9FD;
      --success-bg:#E6EFFF;
      --placeholder:#5B6B82;
    }
    * { box-sizing:border-box; }
    body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
    button,input,textarea,select { font:inherit; }
    button { cursor:pointer; }
    button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
    .shell { width:min(100% - 40px, 640px); margin:0 auto; padding:34px 0 46px; }
    .brand { display:flex; align-items:center; gap:11px; font-size:14px; font-weight:600; color:var(--accent); margin-bottom:28px; }
    .brand-mark { width:26px; height:26px; flex:0 0 26px; border-radius:8px; background:var(--accent); display:grid; place-items:center; }
    .brand-mark svg { display:block; width:26px; height:26px; }
    .tooth-body { fill:var(--paper); }
    .tooth-face { fill:var(--accent); }
    .tooth-smile { fill:none; stroke:var(--accent); stroke-width:1.4; stroke-linecap:round; }
    .card { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:34px 32px 28px; box-shadow:0 2px 6px #172B4D04; }
    .section-label { margin:0 0 8px; color:var(--accent); font-size:13px; font-weight:650; letter-spacing:.025em; }
    .segments { display:flex; gap:5px; margin:0 0 26px; }
    .segment { height:3px; flex:1; border-radius:3px; background:var(--progress-idle); }
    .segment.current { background:var(--accent); }
    .segment.past { background:var(--progress-past); }
    h1 { font-size:29px; line-height:1.22; font-weight:650; letter-spacing:-.025em; margin:0 0 20px; }
    h1:focus { outline:none; }
    h2 { font-size:20px; line-height:1.35; font-weight:620; margin:0 0 12px; }
    p { margin:0 0 17px; }
    .lede { color:var(--muted); }
    .question { border:0; padding:0; margin:30px 0 0; min-width:0; }
    .question:first-of-type { margin-top:20px; }
    .question-title { padding:0; display:block; width:100%; font-size:18px; font-weight:600; line-height:1.45; }
    .field-title { display:block; font-size:18px; font-weight:600; line-height:1.45; }
    .instruction { color:var(--muted); font-size:13px; margin:6px 0 11px; }
    .helper { color:var(--muted); margin:7px 0 13px; font-size:14px; line-height:1.55; }
    .choices { display:grid; gap:8px; }
    .choice { display:flex; align-items:flex-start; gap:11px; padding:11px 13px; border:1px solid var(--control-border); border-radius:9px; min-height:48px; cursor:pointer; line-height:1.4; }
    .choice:hover { border-color:var(--accent); background:var(--hover-bg); }
    .choice.selected { background:var(--accent-soft); border-color:var(--accent); }
    .choice input { margin:4px 0 0; width:18px; height:18px; flex:0 0 18px; accent-color:var(--accent); }
    .choice span { padding-top:1px; }
    .exclusive-start { margin-top:9px; }
    input[type="email"], input[type="text"], input[type="tel"],textarea,select { display:block; width:100%; border:1px solid var(--control-border); border-radius:8px; background:var(--paper); color:var(--ink); padding:11px 12px; min-height:48px; }
    textarea { resize:vertical; min-height:103px; line-height:1.6; }
    select { appearance:none; -webkit-appearance:none; padding-right:36px; background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%); background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%; background-size:6px 6px; background-repeat:no-repeat; }
    .selected-answer { display:none; margin:8px 0 0; color:var(--muted); font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
    .subfield { margin:17px 0 0; padding-left:16px; border-left:2px solid var(--subfield-line); }
    .subfield .field-title { font-size:16px; }
    .choice-group .subfield { margin:12px 0 14px 29px; }
    .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; }
    .issue-summary { margin:20px 0 24px; border-left:3px solid var(--progress-past); padding:4px 0 4px 14px; }
    .issue-summary .caption { color:var(--accent); font-size:12px; font-weight:650; letter-spacing:.015em; }
    .issue-summary p { margin:3px 0 0; color:var(--muted); font-size:14px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }
    .error { color:var(--error); margin:8px 0 12px; font-size:14px; font-weight:550; }
    .footer { display:flex; justify-content:space-between; align-items:center; gap:14px; padding-top:28px; margin-top:29px; border-top:1px solid var(--footer-line); }
    .button { display:inline-flex; justify-content:center; align-items:center; gap:8px; border:1px solid var(--accent); border-radius:9px; padding:11px 22px; min-height:48px; background:var(--accent); color:white; font-weight:600; line-height:1.4; }
    .button:hover { background:var(--accent-hover); }
    .button.secondary { background:var(--paper); color:var(--ink); border-color:var(--control-border); font-weight:500; }
    .button.secondary:hover { background:var(--hover-bg); }
    .button.quiet { padding:9px 0; border:0; background:transparent; color:var(--muted); font-size:14px; font-weight:500; }
    .button.quiet:hover { color:var(--accent); text-decoration:underline; }
    .end-card { margin-top:25px; padding:21px; border:1px solid var(--line); border-radius:10px; background:var(--end-bg); }
    .end-card p { font-size:15px; color:var(--muted); }
    .success-mark { display:inline-flex; align-items:center; justify-content:center; width:39px; height:39px; border-radius:50%; background:var(--success-bg); color:var(--accent); font-size:21px; margin-bottom:18px; }
    .helper p { margin:0 0 8px; }
    .helper p:last-child { margin-bottom:0; }
    .scope-note { color:var(--muted); font-size:13px; margin:-7px 0 20px; }
    .subsection-heading { font-size:17px; margin:30px 0 0; }
    .subsection-heading + .question { margin-top:12px; }
    .skip-issue { margin-top:4px; }
    .followup-block { margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
    .followup-block .subsection-heading { margin-top:0; }
    .page-note { font-size:14px; color:var(--muted); margin-top:-10px; margin-bottom:20px; }
    .dependency-note { color:var(--accent); font-size:14px; line-height:1.55; margin:10px 0 0; }
    .dependency-note:empty { margin:0; }
    .compact-help { margin:16px 0 0; font-size:14px; color:var(--muted); }
    .compact-help summary { cursor:pointer; color:var(--accent); min-height:44px; padding:10px 0; }
    .compact-help p { margin:10px 0 0; line-height:1.65; }
    @media (max-width:600px) {
      .shell { width:100%; padding:24px 16px 32px; }
      .card { padding:27px 20px 24px; border-radius:13px; }
      .brand { margin:0 4px 20px; }
      h1 { font-size:27px; }
      .question-title,.field-title { font-size:17px; }
      .footer { padding-top:22px; margin-top:26px; }
      .button { padding:11px 17px; }
    }
    input::placeholder, textarea::placeholder { color:var(--placeholder); opacity:1; }
    @media (forced-colors:active) {
      select { appearance:auto; -webkit-appearance:auto; background-image:none; }
      .tooth-body { fill:Canvas; stroke:CanvasText; stroke-width:1.5; }
      .tooth-face { fill:CanvasText; }
      .tooth-smile { stroke:CanvasText; }
    }
    @media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; } }
    @media (max-width:420px) { .selected-answer:not(:empty) { display:block; } }
