/* Safe at Home Check: sits on finder.css (same tokens, faces, call bar look).
   The centerpiece is the house drawn as a plan sheet: rooms fill green / amber / red as hazards get marked. */
:root { --warn: #b5470f; --warn-bg: #fde6d8; --plan-line: #16242c; --hatch: #e3e8ea; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --warn: #ffab7a; --warn-bg: #3d2416; --plan-line: #cfdde3; --hatch: #22313a; } }
:root[data-theme="dark"] { --warn: #ffab7a; --warn-bg: #3d2416; --plan-line: #cfdde3; --hatch: #22313a; }

.btn.big { font-size: 22px; padding: 16px 26px; min-height: 56px; width: fit-content; }
.linkbtn { background: none; border: 0; color: var(--blue); text-decoration: underline; font-size: 17px; padding: 6px 0; cursor: pointer; width: fit-content; }
.hero { display: grid; gap: 16px; padding-block: 8px 10px; }
.hero .pitch { font-size: clamp(30px, 6vw, 44px); margin: 14px 0 0; }
.hero-demo { max-width: 560px; }
.promise { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 6px; color: var(--ink-soft); }

/* ---------- floor plan ---------- */
.plan { width: 100%; height: auto; display: block; background: var(--card); border-radius: 12px; border: 1px solid var(--rule); }
.plan .room rect { fill: var(--hatch); stroke: var(--plan-line); stroke-width: 3; transition: fill .25s; }
.plan .room { cursor: pointer; }
.plan .room.lv-ok rect { fill: var(--open-bg); }
.plan .room.lv-some rect { fill: var(--wait-bg); }
.plan .room.lv-high rect { fill: var(--warn-bg); }
.plan .room:hover rect, .plan .room:focus-visible rect { stroke: var(--blue); stroke-width: 5; }
.plan .room:focus { outline: none; }
.plan .room.is-active rect { stroke: var(--blue); stroke-width: 6; }
.plan .rname { font: 700 21px var(--display); fill: var(--ink); pointer-events: none; }
.plan .rstate { font: 700 16px var(--body); fill: var(--ink-soft); pointer-events: none; }
.plan .lv-ok .rstate { fill: var(--open); } .plan .lv-some .rstate { fill: var(--wait); } .plan .lv-high .rstate { fill: var(--warn); }
.plan .fx { fill: none; stroke: var(--plan-line); stroke-width: 2; opacity: .45; pointer-events: none; }
.plan .walls { fill: none; stroke: var(--plan-line); stroke-width: 8; pointer-events: none; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 15px; color: var(--ink-soft); margin-top: 8px; }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.sw { width: 16px; height: 16px; border-radius: 4px; border: 2px solid var(--plan-line); display: inline-block; background: var(--hatch); }
.sw.lv-ok { background: var(--open-bg); } .sw.lv-some { background: var(--wait-bg); } .sw.lv-high { background: var(--warn-bg); }

/* ---------- walk ---------- */
.walk { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 22px; align-items: start; margin-top: 18px; }
.walk-plan { position: sticky; top: calc(10px + env(safe-area-inset-top, 0px)); }
@media (max-width: 760px) { .walk { grid-template-columns: 1fr; } .walk-plan { position: static; } }
.walk-panel h2 { font-size: 26px; }
.roomcheck, .roompick { display: grid; gap: 14px; }
.hazards { display: grid; gap: 10px; }
.hazard { display: grid; grid-template-columns: 34px 1fr; gap: 4px 12px; align-items: start; text-align: left; width: 100%;
  border: 2px solid var(--rule); background: var(--card); color: var(--ink); border-radius: 12px; padding: 14px; font-size: 19px; cursor: pointer; min-height: 60px; }
.hazard:hover { border-color: var(--blue); }
.hazard .box { width: 30px; height: 30px; border: 3px solid var(--ink); border-radius: 7px; display: grid; place-items: center; font-weight: 800; font-size: 20px; }
.hazard .ht { font-weight: 700; padding-top: 2px; }
.hazard[aria-pressed="true"] { border-color: var(--ink); }
.hazard[aria-pressed="true"].r3 { background: var(--warn-bg); }
.hazard[aria-pressed="true"].r2 { background: var(--wait-bg); }
.hazard[aria-pressed="true"].r1 { background: var(--open-bg); }
.hazard[aria-pressed="true"] .box { background: var(--ink); color: var(--card); }
.fixnow { grid-column: 2; font-size: 16px; line-height: 1.45; color: var(--ink); }
.tier { display: inline-block; font: 700 13px var(--body); letter-spacing: .05em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; vertical-align: 2px; }
.t-free { background: var(--open); color: var(--card); }
.t-cheap { background: var(--blue); color: var(--blue-ink); }
.t-pro { background: var(--ink); color: var(--paper); }
.roomlist { display: grid; gap: 10px; }
.roombtn { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; text-align: left; border: 2px solid var(--rule); background: var(--card); color: var(--ink); border-radius: 12px; padding: 14px 16px; cursor: pointer; font-size: 19px; }
.roombtn small { grid-column: 1; color: var(--ink-soft); font-size: 15px; }
.roombtn .tag { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-size: 14px; font-weight: 700; color: var(--ink-soft); }
.roombtn.lv-ok .tag { color: var(--open); } .roombtn.lv-some .tag { color: var(--wait); } .roombtn.lv-high .tag { color: var(--warn); }

.urgent { background: var(--warn-bg); border: 2px solid var(--warn); border-radius: 12px; padding: 16px 18px; margin-top: 16px; display: grid; gap: 6px; }
.urgent h2 { font-size: 20px; color: var(--warn); }
.urgent p { margin: 0; }

/* ---------- who pays ---------- */
.paywrap { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 760px) { .paywrap { grid-template-columns: 1fr; } }
.guess { background: var(--ink); color: var(--paper); border-radius: 14px; padding: 18px 20px; margin-top: 18px; display: grid; gap: 8px; }
.guess .progress { color: var(--paper); text-decoration: underline; text-decoration-color: var(--mark); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.guess h2 { font-size: 22px; }
.guess p { margin: 0; font-size: 17px; }
.guess .count b { font-size: 24px; color: var(--paper); font-variant-numeric: tabular-nums; }

/* ---------- plan ---------- */
.planhead { display: grid; gap: 12px; margin-top: 10px; }
.planhead .pitch { font-size: clamp(28px, 5.5vw, 40px); margin: 0; }
.plan-mini { max-width: 520px; }
.planactions { display: flex; flex-wrap: wrap; gap: 10px; }
.copied { color: var(--open); font-weight: 700; margin: 0; }
.block { margin-top: 26px; display: grid; gap: 12px; }
.block h2 { font-size: 26px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.block.first { background: var(--mark); color: var(--mark-ink); border-radius: 14px; padding: 18px 20px; }
.firstlist { margin: 0; padding-left: 24px; display: grid; gap: 8px; font-size: 20px; font-weight: 700; }
.checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.checklist label { display: grid; grid-template-columns: 32px 1fr; gap: 12px; background: var(--card); border: 1px solid var(--rule); border-radius: 12px; padding: 14px; cursor: pointer; }
.checklist input { width: 26px; height: 26px; margin-top: 3px; accent-color: var(--open); }
.checklist input:checked + span b { text-decoration: line-through; opacity: .6; }
.checklist .why { display: block; font-size: 15px; color: var(--ink-soft); margin-top: 6px; }
.fact { display: block; font-size: 15px; color: var(--ink-soft); }
.fact a { font-weight: 700; }
.job { border-top: 3px solid var(--ink); padding-top: 14px; display: grid; gap: 10px; }
.job h3 { font-size: 22px; }
.job > .why { margin: 0; color: var(--ink-soft); font-size: 16px; }
.prog { background: var(--card); border: 1px solid var(--rule); border-radius: 12px; padding: 14px 16px; display: grid; gap: 8px; }
.prog.lead { border: 2px solid var(--ink); }
.prog h3, .prog h4 { font: 700 20px var(--display); margin: 0; }
.prog p { margin: 0; font-size: 17px; }
.ph { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.badge { font-size: 14px; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--unk-bg); color: var(--unk); }
.badge.fit, .badge.st-open { background: var(--open-bg); color: var(--open); }
.badge.maybe, .badge.st-waitlist, .badge.st-unknown { background: var(--wait-bg); color: var(--wait); }
.badge.st-closed-for-year { background: var(--closed-bg); color: var(--closed); }
.lvl { font-size: 14px; font-weight: 700; color: var(--ink-soft); }
.dots { display: inline-flex; gap: 4px; align-items: center; font-size: 13px; color: var(--ink-soft); }
.dots::before { content: "Paperwork"; margin-right: 4px; font-weight: 700; }
.dots i { width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--ink-soft); }
.dots i.on { background: var(--ink-soft); }
.unk { color: var(--ink-soft); font-size: 15px !important; }
.src { font-size: 14px !important; color: var(--ink-soft); }
.tl { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 0; counter-reset: s; }
.tl li { display: grid; grid-template-columns: 64px 1fr; gap: 12px; position: relative; padding: 0 0 12px; font-size: 16px; }
.tl li b { font: 700 15px var(--body); text-transform: uppercase; letter-spacing: .05em; color: var(--blue); padding-top: 1px; }
.tl li::before { content: ""; position: absolute; left: 70px; top: 6px; bottom: 0; border-left: 2px dashed var(--rule); }
.tl li span { padding-left: 14px; }
.tl li:last-child::before { display: none; }
.dont { background: var(--closed-bg); border-radius: 14px; padding: 18px 20px; }
.dont h2 { color: var(--closed); }
.dont ul { margin: 0; padding-left: 22px; display: grid; gap: 8px; }
.help-block p { margin: 0; }

/* live plan bar */
.planbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; background: var(--ink); color: var(--paper);
  padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
.planbar .in { max-width: 860px; margin: 0 auto; display: flex; gap: 10px 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; font-size: 17px; }
.planbar .btn { background: var(--mark); color: var(--mark-ink); padding: 10px 16px; font-size: 18px; }

@media print {
  .planbar, .planactions, .notgov, .site-head .preview-tag, .plan-mini, .linkbtn { display: none !important; }
  body { padding-bottom: 0; font-size: 14px; }
  .block.first { background: none; border: 2px solid #000; }
}
@media (prefers-reduced-motion: reduce) { .plan .room rect { transition: none; } }

.joblist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.joblist li { background: var(--card); border: 1px solid var(--rule); border-left: 6px solid var(--ink); border-radius: 10px; padding: 12px 14px; display: grid; gap: 4px; }
.joblist .why { font-size: 15px; color: var(--ink-soft); }
.covers { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font-size: 14px; font-weight: 700; background: var(--mark); color: var(--mark-ink); border-radius: 999px; padding: 2px 10px; }
.rank { font: 800 20px var(--display); width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--paper); }
.ph { justify-content: flex-start; } .ph .dots { margin-left: auto; }
h3.local { font-size: 20px; margin-top: 8px; }

/* ---------- accessibility layer (WCAG 2.2 AA, AAA where it helps older eyes) ---------- */
:root { --ink-soft: #36454d; --blue: #1a4d69; --open: #105030; --wait: #6b4500; --closed: #7f2020; --warn: #7e2e06; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --ink-soft: #c4d1d6; --blue: #7cbde0; } }
:root[data-theme="dark"] { --ink-soft: #c4d1d6; --blue: #7cbde0; }
html { scroll-padding-top: 16px; scroll-padding-bottom: 130px; }
.choices { grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); }
:focus-visible { outline: 3px solid var(--ink) !important; outline-offset: 2px; box-shadow: 0 0 0 6px var(--mark); }
h1:focus, h2:focus { outline: none; box-shadow: none; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -80px; z-index: 50; background: var(--ink); color: var(--paper); padding: 12px 16px; border-radius: 8px; font-weight: 700; }
.skip:focus { top: calc(10px + env(safe-area-inset-top, 0px)); }
.topline { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; justify-content: space-between; padding-top: 8px; }
.topline .notgov { padding: 0; }
.a11ybar { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.a11y-label { font-size: 15px; color: var(--ink-soft); font-weight: 700; }
.a11ybtn { min-height: 48px; min-width: 48px; border: 2px solid var(--ink); background: var(--card); color: var(--ink); border-radius: 10px; font-weight: 800; font-size: 18px; padding: 6px 12px; cursor: pointer; }
.a11ybtn:disabled { opacity: .45; cursor: default; }
.a11ybtn[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; border-bottom: 3px solid var(--ink); padding-bottom: 0; }
.tabs a { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 8px 14px; font-weight: 700; font-size: 18px; color: var(--ink);
  text-decoration: none; border: 2px solid var(--rule); border-bottom: 0; border-radius: 10px 10px 0 0; background: var(--card); }
.tabs a:hover { border-color: var(--blue); }
.tabs a[aria-current="page"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.tabs .count { background: var(--warn); color: var(--card); border-radius: 999px; font-size: 14px; padding: 1px 8px; min-width: 24px; text-align: center; }
.tabs .count:empty { display: none; }
@media (max-width: 520px) { .tabs a { flex: 1 1 calc(50% - 6px); justify-content: center; border-radius: 10px; border-bottom: 2px solid var(--rule); } .tabs { border-bottom: 0; } }

/* ---------- feed pages ---------- */
.feedpage { display: grid; gap: 14px; margin-top: 14px; }
.feedpage .pitch { margin: 6px 0 0; font-size: clamp(30px, 6vw, 42px); }
.feedpage .lede { margin: 0; }
.sub-h { font-size: 22px; margin-top: 6px; }
.search.slim input { font-size: 20px; padding: 10px 14px; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filter { min-height: 48px; padding: 8px 16px; border: 2px solid var(--ink); border-radius: 999px; background: var(--card); color: var(--ink); font-weight: 700; font-size: 17px; cursor: pointer; }
.filter[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.newslist { display: grid; gap: 12px; }
.news, .result { background: var(--card); border: 1px solid var(--rule); border-left: 6px solid var(--blue); border-radius: 12px; padding: 14px 16px; display: grid; gap: 6px; }
.news h3, .result h3 { font-size: 21px; }
.news p, .result p { margin: 0; }
.news.featured { border: 3px solid var(--ink); border-left-width: 10px; padding: 18px 20px; }
.news.featured h3 { font-size: 26px; }
.news.k-recall, .news.k-scam-watch, .news.k-disaster { border-left-color: var(--warn); }
.news.k-deadline { border-left-color: var(--wait); }
.news.k-tech { border-left-color: var(--open); }
.nmeta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 15px; color: var(--ink-soft); font-weight: 700; }
.ntype { text-transform: uppercase; letter-spacing: .06em; color: var(--ink); }
.k-recall .ntype, .k-scam-watch .ntype, .k-disaster .ntype { color: var(--warn); }
.nmatch { background: var(--mark); color: var(--mark-ink); border-radius: 999px; padding: 0 10px; }
.ndl b { color: var(--warn); }
.deadlines { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.deadlines li { display: grid; grid-template-columns: 84px 1fr; gap: 16px; background: var(--card); border: 1px solid var(--rule); border-radius: 12px; padding: 14px 16px; }
.deadlines li.soon { border: 3px solid var(--warn); }
.cal { border: 3px solid var(--ink); border-radius: 10px; overflow: hidden; text-align: center; align-self: start; background: var(--card); }
.cal .m { display: block; background: var(--ink); color: var(--paper); font-weight: 800; text-transform: uppercase; font-size: 16px; padding: 2px 0; }
.cal .d { display: block; font: 800 34px/1.25 var(--display); font-variant-numeric: tabular-nums; }
.dbody { display: grid; gap: 4px; }
.dbody p { margin: 0; }
.dbody h3 { font-size: 21px; }
.dleft b { color: var(--warn); }
@media print { .tabs, .a11ybar, .skip { display: none !important; } }

/* ---------- pass 2: 16px reading floor (NIA older-adult web guidance), 44px targets (WCAG 2.5.8), reflow (WCAG 1.4.10) ---------- */
.notgov, .a11y-label, .preview-tag, .tabs .count, .src, .dots, .tier, .nmeta, .chip, .lvl, .badge, .unk, .fact, .why,
.legend, .roombtn small, .roombtn .tag, .progress, .fixnow, .checklist .why, .joblist .why, .copied, .err, .about, .about p,
.choice small, .guess p, .count, .tl li, .tl li b, .help, .sub-h, .dleft, .ndl { font-size: max(16px, 1em) !important; }
.preview-tag { padding: 4px 12px; }
.ask h1, .walk-panel h1, .roompick h1, .roomcheck h1 { font-size: 28px; }
h1.as-h2 { font-family: var(--display); line-height: 1.2; }
.checklist input { width: 32px; height: 32px; }
.checklist label { min-height: 56px; align-items: start; }
.linkbtn { min-height: 48px; display: inline-flex; align-items: center; }
.news, .result, .deadlines li, .prog, .job, .joblist li { min-width: 0; overflow-wrap: anywhere; }
.news h2 { font-size: 21px; } .news.featured h2 { font-size: 26px; }
.dbody h2 { font-size: 21px; }
main, .wrap, .feedpage, .newslist, .block { min-width: 0; max-width: 100%; }
.feedpage a, .src a { overflow-wrap: anywhere; }
/* pass 4: inputs shrink with the screen instead of forcing it wider (WCAG 1.4.10 at 400% zoom / largest text) */
.search > input { flex: 1 1 12ch; width: 100%; min-width: 0; }
.ask > *, .feedpage > *, .walk-panel > *, .roomcheck > *, .roompick > * { min-width: 0; }

/* pass 6: Windows high-contrast / forced colors (WCAG 1.4.1: never colour alone) */
@media (forced-colors: active) {
  .choice[aria-pressed="true"], .filter[aria-pressed="true"], .hazard[aria-pressed="true"], .a11ybtn[aria-pressed="true"], .tabs a[aria-current="page"] {
    border: 4px double CanvasText !important; outline: 3px solid Highlight; outline-offset: 2px; }
  .choice[aria-pressed="true"]::before { content: "✓ "; }
  .plan .room.lv-unchecked rect { stroke-dasharray: 8 6; }
  .plan .room.lv-high rect { stroke-width: 8; }
  .plan .room.lv-some rect { stroke-width: 5; }
  .tier, .badge, .chip, .ntype, .nmatch, .count { border: 1px solid CanvasText; }
}

/* pass 11 (visual review): compact header so the question sits on the first phone screen (NIA; NN/g mobile above-the-fold) */
.masthead { padding-top: 8px; }
.topline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding-top: 0; }
.topline .brand { font-size: 22px; }
.notgov-hero { margin: 0; color: var(--ink-soft); font-size: 16px; }
.tabs .short { display: none; }
@media (max-width: 640px) {
  .tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; border-bottom: 3px solid var(--ink); }
  .tabs a { flex: none; justify-content: center; padding: 6px 2px; font-size: 16px; border-radius: 10px 10px 0 0; border-bottom: 0; gap: 4px; }
  .tabs .long { display: none; } .tabs .short { display: inline; }
  .tabs .count { padding: 0 6px; min-width: 0; }
  .a11ybtn { padding: 4px 10px; font-size: 17px; }
  .a11y-label { display: none; }
  .walk-panel { order: 1; } .walk-plan { order: 2; }
}
/* screen-reader focus lands on the heading; it isn't a tab stop, so no ring there */
h1[tabindex="-1"]:focus, h2[tabindex="-1"]:focus, h1[tabindex="-1"]:focus-visible, h2[tabindex="-1"]:focus-visible { outline: none !important; box-shadow: none !important; }
.urgent-line { margin: 14px 0 0; background: var(--warn-bg); border-left: 6px solid var(--warn); padding: 10px 14px; border-radius: 8px; }

/* pass 13 (visual review): tab badge, enlarged-text tab layout, floor-plan labels at phone size (16px floor) */
.tabs a { position: relative; }
@media (max-width: 640px) {
  .tabs .count { position: absolute; top: -10px; right: -2px; font-size: 16px !important; line-height: 24px; min-width: 24px; height: 24px; padding: 0 5px; border: 2px solid var(--paper); }
}
html.bigtext .tabs { display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 0; }
html.bigtext .tabs a { flex: 1 1 40%; border-radius: 10px; border-bottom: 2px solid var(--rule); justify-content: center; }
html.bigtext .tabs a[aria-current="page"] { border-color: var(--ink); }

/* pass 21: hazard toggle holds only its name; the fix sits beside it in the card (WCAG 2.5.3, APG toggle button) */
.hazard-card { border: 2px solid var(--rule); background: var(--card); border-radius: 12px; display: grid; }
.hazard-card:hover { border-color: var(--blue); }
.hazard-card .hazard { border: 0; background: transparent; border-radius: 10px; }
.hazard-card.on { border-color: var(--ink); }
.hazard-card.on.r3 { background: var(--warn-bg); } .hazard-card.on.r2 { background: var(--wait-bg); } .hazard-card.on.r1 { background: var(--open-bg); }
.hazard-card .fixnow { margin: 0; padding: 0 14px 14px 60px; font-size: 16px; line-height: 1.45; }
@media (forced-colors: active) { .hazard-card.on { border: 4px double CanvasText; } }
.hazard-card { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.hazard-card .fixnow { overflow-wrap: anywhere; }
@media (max-width: 640px) { .hazard-card .fixnow { padding-left: 14px; } }
html.bigtext .hazard-card .fixnow { padding-left: 14px; }
.tier { white-space: normal; }
.hazard-card .fixnow { grid-column: 1; }
/* pass 26: printed plan (on the fridge): dated, cards kept whole, 12pt floor */
.printed { display: none; }
@media print {
  .printed { display: block; font-weight: 700; margin: 0; }
  .news, .prog, .joblist li, .checklist li, .block.first, .dont, .urgent-line { break-inside: avoid; }
  body { font-size: 12pt !important; }
}
/* pass 28: reserve the content area so the footer never jumps when the screen renders (Core Web Vitals CLS) */
main#view { min-height: 100vh; min-height: 100svh; }
