/* FleetCleared: "The Dispatcher" in the Lot Light palette.
   A dispatcher's status board: a dark plate, one amber band across the top edge, one green
   square that means yes/done, stencil numbers, and short board sentences.
   Day = clipboard paper, night = the board. Default follows the device; the sun/moon switch
   in the controls cluster overrides it and is remembered in this browser only.
   Hard rules: no red, no blue, nothing governmental, stencil only for the wordmark and big numbers. */

/* ---------- Tokens ---------- */
:root{
  color-scheme:light;
  /* Day: paper */
  --logo-plate:#f5a524; --logo-fleet:#141210; --logo-cleared:#141210;
  --bg:#f6f1e6; --panel:#fffdf7; --raised:#f0e9dc; --line:#ddd3c2; --line-strong:#c9bda8;
  --band:#f5a524; --band-ink:#141210;
  --focus:#1c1a17;         /* focus ring: dark on paper (amber fails 3:1 here), amber in dark mode */
  --go:#178a47; --go-ink:#ffffff;
  --cau:#9a6b00; --cau-ink:#ffffff;
  --text:#1c1a17; --dim:#6b6256;
  --link:#12703a;          /* green dark enough to read as text on paper */
  --amber-text:#a34c00;    /* amber dark enough to read as text on paper */
  --alert:#a34c00;         /* form errors: amber, never red */
  --shadow:0 18px 40px -22px rgba(40,30,10,.35);
  /* Fixed paper, for the strip under the night hero */
  --paper:#f6f1e6; --paper-2:#fffdf7; --paper-ink:#1c1a17; --paper-dim:#6b6256; --paper-line:#ddd3c2;
  --radius:10px;
  --wrap:1160px;
  --f-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --f-stencil:"Big Shoulders Stencil","Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --f-body:"Barlow","Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --logo-plate:#f5a524; --logo-fleet:#141210; --logo-cleared:#141210;
    --logo-plate:#f5a524; --logo-fleet:#141210; --logo-cleared:#141210;
  --bg:#121110; --focus:#f5a524; --panel:#1c1a17; --raised:#27241f; --line:#352f28; --line-strong:#4a4238;
    --go:#5fe39a; --go-ink:#0a2416;
    --cau:#fff1b8; --cau-ink:#3a2a00;
    --text:#f4efe6; --dim:#b3a99a;
    --link:#5fe39a; --amber-text:#f5a524; --alert:#f5a524;
    --shadow:0 18px 40px -18px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#121110; --focus:#f5a524; --panel:#1c1a17; --raised:#27241f; --line:#352f28; --line-strong:#4a4238;
  --go:#5fe39a; --go-ink:#0a2416;
  --cau:#fff1b8; --cau-ink:#3a2a00;
  --text:#f4efe6; --dim:#b3a99a;
  --link:#5fe39a; --amber-text:#f5a524; --alert:#f5a524;
  --shadow:0 18px 40px -18px rgba(0,0,0,.7);
}

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
html{ font-size:17px; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font:400 17px/1.55 var(--f-body); -webkit-font-smoothing:antialiased;
  display:flex; flex-direction:column; min-height:100vh; overflow-x:hidden;
}
main{ flex:1; }
h1,h2,h3,h4{ font-family:var(--f-display); line-height:1.06; margin:0; text-wrap:balance; letter-spacing:.005em; }
h1,h2{ font-weight:800; }
h3,h4{ font-weight:700; }
p{ margin:0; }
a{ color:var(--link); text-underline-offset:2px; text-decoration-thickness:1px; }
a:hover{ text-decoration-thickness:2px; }
img,svg{ max-width:100%; }
code{ font-family:var(--f-mono); font-size:.88em; background:var(--raised); padding:1px 6px; border-radius:4px; }
:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; border-radius:3px; }
.skip{ position:absolute; left:8px; top:-60px; z-index:100; padding:8px 14px; background:var(--panel); color:var(--text); border:2px solid var(--focus); border-radius:6px; font-weight:700; }
.skip:focus{ top:8px; }
::selection{ background:var(--band); color:var(--band-ink); }
[hidden]{ display:none !important; }
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }
.wrap.narrow{ max-width:620px; }
.num, .stencil{ font-family:var(--f-stencil); font-weight:900; font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.dim{ color:var(--dim); }
.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; }

/* ---------- The band: top edge of every page, same amber day or night ---------- */
.band{
  background:var(--band); color:var(--band-ink);
  font:800 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.08em;
}
.band b{ font-family:var(--f-stencil); font-weight:900; letter-spacing:.06em; font-size:15px; }
.band a{ color:inherit; }
.band-in{ display:flex; justify-content:space-between; align-items:center; gap:4px 16px; flex-wrap:wrap; min-height:38px; padding-block:8px; }
.band-in > span{ display:inline-flex; align-items:baseline; gap:0 8px; flex-wrap:wrap; }

/* ---------- Header ---------- */
.site-header{ border-bottom:1px solid var(--line); background:var(--bg); }
.head-in{ display:flex; align-items:center; gap:12px 22px; flex-wrap:nowrap; padding-block:14px; }
.logo{ display:inline-flex; align-items:center; flex:none; text-decoration:none; line-height:0; }
/* Clearance Plate. Clear space = half the plate height; never below 120px wide (use .logo-fc instead). */
.logo svg{ display:block; height:34px; width:auto; }
.logo .lp{ fill:var(--logo-plate); } .logo .lf{ fill:var(--logo-fleet); } .logo .lc{ fill:var(--logo-cleared); }
.logo-fc{ display:none !important; }
.logo:hover{ text-decoration:none; }
.site-nav{
  display:flex; align-items:center; gap:6px 22px; margin-left:auto;
  font:700 15px/1 var(--f-display); text-transform:uppercase; letter-spacing:.05em;
}
.site-nav a{ color:var(--dim); text-decoration:none; padding:7px 0 4px; border-bottom:3px solid transparent; white-space:nowrap; }
.site-nav a:hover{ color:var(--text); }
.site-nav a[aria-current="page"]{ color:var(--text); border-bottom-color:var(--band); }
.site-nav a.go{ color:var(--amber-text); }
/* Above the phone layout, let the nav wrap to a second line instead of pushing the controls off-screen
   (Spanish labels and 860-1150px widths both overflowed). Phone widths keep the scrolling nav row. */
@media (min-width: 861px){ .site-nav{ flex-wrap:wrap; justify-content:flex-end; min-width:0; row-gap:2px; } }
.head-note{ margin-left:auto; font:700 13px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; color:var(--dim); }

/* ---------- Controls cluster: EN | ES, then day / night. A control, not an asset. ---------- */
.ctl{
  display:inline-flex; align-items:stretch; height:32px; flex:none;
  border:2px solid var(--line); border-radius:6px; overflow:hidden; background:var(--panel);
  font:700 13px/1 var(--f-display); letter-spacing:.06em; color:var(--dim);
}
.ctl > a, .ctl > span, .ctl > button{
  display:grid; place-items:center; padding:0 10px; min-width:34px;
  color:inherit; text-decoration:none; background:none; border:0; margin:0; cursor:pointer; font:inherit; letter-spacing:inherit;
}
.ctl > span{ cursor:default; }
.ctl > a:hover, .ctl > button:hover{ color:var(--text); }
.ctl .sep{ display:block; width:2px; min-width:0; padding:0; background:var(--line); flex:none; }
.ctl svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.ctl .on,
:root[data-theme="light"] .ctl [data-theme-set="light"],
:root[data-theme="dark"] .ctl [data-theme-set="dark"],
:root:not([data-theme]) .ctl [data-theme-set="light"]{ background:var(--band); color:var(--band-ink); }
@media (prefers-color-scheme: dark){
  :root:not([data-theme]) .ctl [data-theme-set="light"]{ background:none; color:inherit; }
  :root:not([data-theme]) .ctl [data-theme-set="dark"]{ background:var(--band); color:var(--band-ink); }
}

/* ---------- Buttons: one amber action per screen; the rest are text with a hairline ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:13px 18px; border-radius:7px; border:2px solid transparent;
  font:700 16px/1.15 var(--f-body); text-decoration:none; cursor:pointer; text-align:center;
  color:var(--text); background:none;
}
.btn:hover{ text-decoration:none; }
.btn-go, .btn-primary{ background:var(--band); color:var(--band-ink); border-color:var(--band); }
.btn-go:hover, .btn-primary:hover{ background:#ffb43c; border-color:#ffb43c; }
.btn-ghost{ background:transparent; color:var(--text); border-color:var(--dim); }
.btn-ghost:hover{ border-color:var(--text); }
.btn-lg, .btn-xl{ padding:16px 22px; font-size:18px; }
.btn-block{ width:100%; }
.btn-sm{ padding:7px 12px; font-size:14px; border-radius:6px; }
.btn-danger{ background:transparent; color:var(--alert); border-color:var(--alert); }
.btn:disabled, .btn[aria-disabled="true"]{ background:var(--raised); color:var(--dim); border-color:var(--line); cursor:not-allowed; }
.btn .sq{ width:22px; height:22px; border-radius:4px; }
.btn .sq svg{ width:15px; height:15px; }
.actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.link-btn{ background:none; border:none; padding:0; font:inherit; color:var(--link); text-decoration:underline; cursor:pointer; }
.go-link{ font:700 15px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--amber-text); text-decoration:none; }
.go-link:hover{ text-decoration:underline; }

/* ---------- The green square: filled = yes, hollow = not yet, ? = not sure, dot = a no ---------- */
.sq{ width:26px; height:26px; border-radius:5px; background:var(--go); display:inline-grid; place-items:center; flex:none; }
.sq svg{ width:18px; height:18px; stroke:var(--go-ink); stroke-width:3.2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.sq.open{ background:transparent; border:2px solid var(--dim); }
.sq.cau{ background:var(--cau); }
.sq.cau::after{ content:"?"; font:900 17px/1 var(--f-display); color:var(--cau-ink); }
.sq.no{ background:transparent; border:2px solid var(--dim); }
.sq.no::after{ content:""; width:10px; height:10px; border-radius:2px; background:var(--band); }
.sq.open svg, .sq.cau svg, .sq.no svg{ display:none; }

/* ---------- Board panels ---------- */
.board{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); }
.board > .band:first-child{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 16px; border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0; }
.board > .band:first-child > :first-child{ margin:0; font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; }
.board > .band b{ font-size:16px; white-space:nowrap; }
.board-body{ padding:6px 16px 12px; }
.board + .board{ margin-top:14px; }
.row{ display:grid; grid-template-columns:26px minmax(0,1fr); gap:12px; align-items:start; padding:12px 0; border-top:1px solid var(--line); color:inherit; text-decoration:none; }
.row:first-child{ border-top:0; }
.row .lab{ font:700 14px/1.25 var(--f-display); text-transform:uppercase; letter-spacing:.05em; color:var(--dim); }
.row .val{ font-size:16px; margin-top:3px; }
.row .val:first-child{ margin-top:2px; }
a.row:hover .lab{ color:var(--text); }
a.row:hover .val{ text-decoration:underline; text-decoration-color:var(--line-strong); }
a.row .lab::after{ content:" \2192"; color:var(--amber-text); }
.board-sentence{ font:800 clamp(34px,5vw,48px)/1.02 var(--f-display); letter-spacing:-.005em; }
.board-sentence .num{ font-size:1.12em; line-height:.9; }

/* Big stencil numbers (crisis clock, stats) */
.bignum{ display:grid; grid-template-columns:minmax(76px,auto) 1fr; gap:16px; align-items:center; padding:14px 0; border-top:1px solid var(--line); }
.bignum:first-child{ border-top:0; }
.bignum .num{ font-size:62px; line-height:.85; color:var(--text); text-align:center; }
.bignum .lab{ font:700 15px/1.3 var(--f-display); text-transform:uppercase; letter-spacing:.04em; color:var(--dim); }
.bignum .lab b{ display:block; color:var(--text); font-size:18px; margin-bottom:4px; }

/* Labels, pills, tags */
.eyebrow{ display:inline-block; font:700 13px/1.25 var(--f-display); text-transform:uppercase; letter-spacing:.12em; color:var(--amber-text); }
.lede{ font-size:19px; color:var(--dim); max-width:62ch; }
.fine{ font-size:13.5px; color:var(--dim); line-height:1.45; margin-top:12px; }
.hint{ font-size:14px; color:var(--dim); }
.pills, .tags{ display:flex; flex-wrap:wrap; gap:6px; }
.pill, .tag{ display:inline-block; font:600 13px/1 var(--f-body); padding:7px 9px; border-radius:4px; background:var(--raised); color:var(--text); white-space:nowrap; }
.pill.g{ background:var(--go); color:var(--go-ink); font-weight:700; }
.pill-ok{ background:var(--go); color:var(--go-ink); }
.pill-warn{ background:transparent; color:var(--alert); box-shadow:inset 0 0 0 1px var(--alert); }
.pill-trial{ background:var(--cau); color:var(--cau-ink); }
.tag-concept{ display:inline-block; font:700 11px/1 var(--f-display); letter-spacing:.1em; text-transform:uppercase; color:var(--amber-text); border:1px solid currentColor; border-radius:3px; padding:3px 6px; vertical-align:middle; }
.quote{ margin:16px 0 0; padding:12px 14px; border-left:4px solid var(--band); background:var(--raised); border-radius:0 6px 6px 0; font-size:16px; }
.quote small{ display:block; color:var(--dim); margin-top:6px; font-size:13px; }
.icon-badge{ width:36px; height:36px; border-radius:7px; background:var(--raised); border:1px solid var(--line); display:grid; place-items:center; flex:none; }
.icon-badge svg{ width:19px; height:19px; fill:none; stroke:var(--text); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Home ---------- */
.hero-d{ display:grid; grid-template-columns:1.1fr .9fr; gap:44px; padding-block:56px 48px; align-items:center; }
.hero-d h1{ font-size:clamp(42px,5.7vw,68px); line-height:1.01; margin-top:14px; letter-spacing:-.005em; }
.hero-d .lede{ font-size:20px; margin-top:16px; max-width:46ch; }
.hero-d .actions{ margin-top:26px; }
.trust{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:22px; font:600 14px/1.35 var(--f-body); color:var(--dim); }
.trust span{ display:inline-flex; align-items:center; gap:8px; }
.trust span::before{ content:""; width:8px; height:8px; border-radius:2px; background:var(--band); flex:none; }
.m-only{ display:none; }
.paper-strip{ background:var(--paper); color:var(--paper-ink); border-top:1px solid var(--paper-line); }
.paper-strip .wrap{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 28px; padding-block:30px; }
.paper-strip a.pcard{ color:inherit; text-decoration:none; display:block; }
.paper-strip a.pcard:hover h3{ text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.paper-strip h3{ font-size:23px; color:var(--paper-ink); margin-top:8px; }
.paper-strip p{ color:var(--paper-dim); font-size:15px; margin-top:6px; }
.paper-strip .eyebrow{ color:#a34c00; }
.paper-strip .more{ grid-column:1 / -1; border-top:1px solid var(--paper-line); padding-top:16px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 20px; font-size:15px; }
.paper-strip .more a{ color:#12703a; font-weight:600; }
.home-wait{ padding-block:44px 64px; display:grid; gap:14px; justify-items:center; }
.home-wait .board{ width:100%; max-width:600px; }
.home-wait > .fine{ text-align:center; }
.m-bar{ display:none; }

/* ---------- Inner page heading ---------- */
.page-head{ padding-block:44px 26px; display:grid; gap:12px; justify-items:start; }
.page-head h1{ font-size:clamp(34px,4.6vw,52px); letter-spacing:-.005em; max-width:24ch; }
.page-head .lede{ margin-top:2px; }

/* ---------- Reading pages: guides, state pages ---------- */
.crumbs{ display:flex; gap:8px; flex-wrap:wrap; font:700 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.1em; color:var(--dim); }
.crumbs a{ color:var(--amber-text); text-decoration:none; }
.crumbs a:hover{ text-decoration:underline; }
.read{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:48px; padding-block:30px 72px; align-items:start; }
.read-main{ min-width:0; }
.read-main > h1{ font-size:clamp(34px,4.6vw,54px); letter-spacing:-.005em; margin-top:12px; max-width:22ch; }
.guide-meta{ font:600 14px/1.45 var(--f-body); color:var(--dim); margin-top:12px; }
.guide-meta a{ color:var(--dim); }
.guide-notice{ font-size:14px; color:var(--dim); max-width:72ch; margin-top:12px; }
.short-answer{ margin-top:20px; max-width:76ch; }
.short-answer .board-body{ padding:14px 16px 16px; }
.short-answer p{ font-size:18px; }
.read-main > .board, .read-main > .tool{ margin-top:22px; }
.read-rail{ position:sticky; top:16px; display:grid; gap:14px; }
.read-rail .board + .board{ margin-top:0; }
.read-rail ol{ margin:0; padding:2px 0 2px 20px; display:grid; gap:7px; font-size:15px; }
.read-rail ol a{ color:var(--text); text-decoration:none; }
.read-rail ol a:hover{ text-decoration:underline; }
.read-rail li::marker{ color:var(--dim); font-family:var(--f-display); font-weight:700; }
.read-rail .board-body > p{ font-size:15px; }
.read-rail .board-body > .btn{ margin-top:12px; }
.read-rail .fine{ margin-top:0; }
.prose{ max-width:72ch; }
.prose h2{ font-size:30px; margin:46px 0 12px; scroll-margin-top:16px; }
.prose h3{ font-size:22px; margin:26px 0 8px; }
.prose p, .prose li{ font-size:18px; }
.prose p + p{ margin-top:12px; }
.prose ul, .prose ol{ padding-left:22px; display:grid; gap:7px; margin:12px 0; }
.prose ul{ list-style:square; }
.prose li::marker{ color:var(--amber-text); }
.prose ol li::marker{ font-family:var(--f-display); font-weight:800; }
.prose .table-wrap{ margin:14px 0; }
.prose td, .prose th{ vertical-align:top; }
.prose td{ font-size:15.5px; }
.sources{ padding-left:20px; display:grid; gap:6px; }
.sources li{ font-size:15px !important; }
.guide-disclaimer{ margin-top:22px; margin-bottom:56px; max-width:72ch; }
.guide-cta{ margin:40px 0 8px; max-width:72ch; }
.guide-cta .board-body{ padding:14px 16px 18px; display:grid; gap:14px; justify-items:start; }
.guide-cta p{ font-size:17px; }
.request-desk .board-body{ justify-items:stretch; }
.request-desk .request-form{ display:grid; gap:4px; }
.request-desk .form-grid .field{ margin-bottom:12px; }
.request-desk .field-error{ margin:0 0 6px; }
.request-desk .btn{ justify-self:start; }
.request-desk .notice{ margin:0; }
.request-desk .notice p{ margin:0 0 6px; }
.request-desk .notice p:last-child{ margin-bottom:0; }
.request-desk .consent{ margin:10px 0 0; }
.jump-request{ margin:0 0 18px; font-weight:600; }
.review-pending{ color:var(--dim); font-weight:600; }
.related-row{ padding-block:0 64px; }

/* The ledger: the 16 automatic fails */
.ledger{ margin:16px 0 8px; border-top:2px solid var(--text); }
.lrow{ display:grid; grid-template-columns:60px minmax(0,1.15fr) minmax(0,1fr); gap:18px; padding:16px 0; border-bottom:1px solid var(--line); align-items:start; }
.lrow .n{ font-family:var(--f-stencil); font-weight:900; font-size:36px; line-height:.9; color:var(--amber-text); }
.lrow .w b{ display:block; font:700 20px/1.2 var(--f-display); }
.lrow .w p, .lrow .a p{ font-size:16px !important; margin-top:4px; }
.lrow .c{ display:block; margin-top:6px; font:600 12.5px/1.3 var(--f-mono); color:var(--dim); }
.lrow .k{ display:block; font:700 12px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; color:var(--dim); }
.lrow .freq{ display:inline-block; margin-top:8px; font:700 12px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; padding:4px 7px; border-radius:3px; background:var(--raised); color:var(--dim); }
.lrow .freq.top{ background:var(--band); color:var(--band-ink); }

/* Compliance calendar */
.cal-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; margin:14px 0; }
.cal-month{ background:var(--panel); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.cal-month h3{ margin:0 !important; font:800 14px/1.2 var(--f-display) !important; text-transform:uppercase; letter-spacing:.08em; background:var(--raised); padding:8px 12px; border-bottom:1px solid var(--line); }
.cal-month ul{ margin:0 !important; padding:10px 12px 12px 28px !important; gap:5px !important; }
.cal-month li{ font-size:14.5px !important; }

/* ---------- Tables ---------- */
.table-wrap{ overflow-x:auto; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); }
table{ width:100%; border-collapse:collapse; font-size:15px; font-variant-numeric:tabular-nums; }
th{ text-align:left; font:700 12.5px/1.2 var(--f-display); letter-spacing:.08em; text-transform:uppercase; color:var(--dim); background:var(--raised); padding:10px 14px; border-bottom:2px solid var(--band); white-space:nowrap; }
td{ padding:12px 14px; border-bottom:1px solid var(--line); }
tr:last-child td{ border-bottom:none; }
td.num, th.num{ font-family:var(--f-display); font-weight:700; font-size:16px; white-space:nowrap; }

/* ---------- Tools ---------- */
.tool{ max-width:780px; }
.tool .board-body{ padding:16px 18px 18px; display:grid; gap:14px; grid-template-columns:minmax(0,1fr); }
.tool h2{ font-size:28px; }
.tool-form{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.tool-form .field{ margin:0; flex:1 1 220px; }
.tool-result{ display:grid; gap:10px; justify-items:start; border-top:1px solid var(--line); padding-top:16px; }
.tool-result > p{ margin:0; }
.tool-big{ font:800 26px/1.15 var(--f-display); }
.tool .fine{ margin-top:0; }

/* Audit check */
.prog-wrap{ position:sticky; top:0; z-index:5; background:var(--panel); padding:10px 0 12px; border-bottom:1px solid var(--line); display:grid; gap:8px; }
.prog{ display:grid; grid-template-columns:repeat(var(--n,10),1fr); gap:5px; }
.prog i{ display:block; height:8px; border-radius:2px; background:var(--line); }
.prog i.d{ background:var(--go); }
.prog i.now{ background:var(--band); }
.prog-label{ font:700 13px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; color:var(--dim); }
.check-form{ display:grid; gap:0; }
.check-form .q{ border:0; border-bottom:1px solid var(--line); margin:0; padding:18px 0; min-width:0; }
.check-form .q legend{ float:left; width:100%; padding:0; display:grid; grid-template-columns:62px minmax(0,1fr); gap:0 14px; align-items:start; }
.check-form .q legend + *{ clear:both; }
.q-num{ grid-row:span 2; display:grid; justify-items:start; }
.q-n{ font-family:var(--f-stencil); font-weight:900; font-size:46px; line-height:.85; }
.q-of{ font:700 12px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); margin-top:4px; white-space:nowrap; }
.q-t{ font:700 21px/1.2 var(--f-display); }
.q-gate{ background:var(--raised); border-radius:8px; padding:16px !important; margin-bottom:6px !important; border-bottom:0 !important; }
.q-gate legend{ display:block !important; font:700 19px/1.25 var(--f-display); }
.ans{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding-top:14px; padding-left:76px; }
.ans-2{ grid-template-columns:repeat(2,minmax(0,160px)); padding-left:0; }
.ans-opt{ position:relative; display:flex; align-items:center; gap:10px; padding:11px 12px; border:2px solid var(--line); border-radius:7px; background:var(--panel); cursor:pointer; font:600 16px/1.1 var(--f-body); user-select:none; }
.ans-opt:hover{ border-color:var(--dim); }
.ans-opt input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.ans-opt:has(input:checked){ border-color:var(--text); background:var(--raised); font-weight:700; }
.ans-opt:has(input:focus-visible){ outline:3px solid var(--focus); outline-offset:2px; }
.ans-opt .sq{ width:22px; height:22px; border-radius:4px; }
.ans-opt .sq svg{ width:15px; height:15px; }
.ans-opt .sq.cau::after{ font-size:15px; }
.ans-opt .sq.no::after{ width:8px; height:8px; }
.check-form > .btn{ justify-self:start; margin-top:18px; }
.result{ display:grid; gap:14px; }
.result .board{ width:100%; }
.result .board + .board{ margin-top:0; }
.result .lede{ font-size:18px; color:var(--text); }

/* Crisis clock */
.clock .board-body{ padding:4px 16px 8px; }

/* ---------- Forms ---------- */
.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px; min-width:0; }
.field label, .choice legend, .field-label{ font:700 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); }
.field label .hint{ text-transform:none; letter-spacing:0; font-family:var(--f-body); font-weight:400; }
input, select, textarea{ font:inherit; }
.field input, .field textarea, .field select, .filters select, .filters input[type=search], .review-tools select, .fields input{
  width:100%; min-width:0; font:600 17px/1.2 var(--f-body); color:var(--text);
  background:var(--raised); border:1px solid var(--line-strong); border-radius:6px; padding:12px 12px;
}
.field textarea{ font-weight:400; line-height:1.45; }
.field input::placeholder, .field textarea::placeholder{ color:var(--dim); font-weight:400; opacity:.85; }
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--focus); outline:2px solid var(--focus); outline-offset:1px; }
.field.full{ grid-column:1 / -1; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; min-width:0; }
.form-grid > .field{ min-width:0; }
.field-error{ font-size:14px; font-weight:700; color:var(--alert); }
[aria-invalid="true"]{ border-color:var(--alert) !important; }
.notice{ background:var(--panel); color:var(--text); border:1px solid var(--line); border-left:5px solid var(--go); border-radius:6px; padding:14px 16px; font-weight:600; }
.consent{ margin-top:4px; }
.agree{ display:flex; gap:10px; align-items:flex-start; font-size:15px; margin:4px 0 18px; cursor:pointer; }
.agree input, .check-inline input, .fopt input{ width:20px; height:20px; margin:2px 0 0; flex:none; accent-color:var(--go); }
.check-inline{ display:inline-flex; align-items:center; gap:9px; font-size:15px; font-weight:600; cursor:pointer; user-select:none; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.choice{ border:0; padding:0; margin:0 0 16px; min-width:0; }
.choice legend{ padding:0; margin-bottom:8px; }
.choice .hint{ margin-top:6px; }
.segmented{ display:grid; grid-template-columns:repeat(3,1fr); border:2px solid var(--line); border-radius:7px; overflow:hidden; background:var(--panel); }
.segmented-2{ grid-template-columns:repeat(2,1fr); max-width:300px; }
.segmented label{ position:relative; }
.segmented input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.segmented span{ display:block; text-align:center; padding:10px 6px; font:700 15px/1.1 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); border-left:2px solid var(--line); }
.segmented label:first-child span{ border-left:0; }
.segmented input:checked + span{ background:var(--band); color:var(--band-ink); }
.segmented input:focus-visible + span{ outline:3px solid var(--text); outline-offset:-3px; }
.form-card{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); }
.form-card > .band:first-child{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 18px; border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0; }
.form-card > .band h2{ font:inherit; letter-spacing:inherit; }
.form-card .board-body{ padding:18px 20px 20px; }
.form-card .board-body > p:first-child{ color:var(--dim); margin-bottom:18px; }
.remembered{ margin:-4px 0 12px; }
.field-optional summary{ cursor:pointer; color:var(--link); font-size:14px; font-weight:600; }
.field-optional input{ margin-top:10px; }

/* ---------- Directory (Preview: full app) ---------- */
.dir{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:28px; padding-block:8px 72px; align-items:start; }
.filters{ position:sticky; top:16px; }
.filters .board-body{ padding:10px 16px 16px; display:grid; gap:4px; }
.filters h3{ font:700 13px/1 var(--f-display); text-transform:uppercase; letter-spacing:.1em; color:var(--dim); margin:14px 0 6px; }
.filters h3:first-child{ margin-top:6px; }
.fopt{ display:flex; align-items:center; gap:10px; font-size:15px; padding:5px 0; cursor:pointer; }
.filters .btn{ margin-top:12px; }
.filters-toggle{ display:none; }
.res-head{ display:flex; justify-content:space-between; align-items:baseline; gap:8px 16px; flex-wrap:wrap; border-bottom:2px solid var(--text); padding-bottom:12px; }
.res-head h2{ font-size:30px; }
.res-head .fine{ margin:0; }
.crow{ display:grid; grid-template-columns:26px minmax(0,1.5fr) minmax(0,.8fr) minmax(0,1.3fr) minmax(0,1fr) 180px; gap:16px; align-items:start; padding:16px 0; border-bottom:1px solid var(--line); font-size:15px; }
.crow .nm{ font:700 21px/1.1 var(--f-display); text-transform:uppercase; letter-spacing:.01em; }
.crow .nm a{ color:var(--text); text-decoration:none; }
.crow .nm a:hover{ text-decoration:underline; }
.crow .k{ display:block; font:700 11.5px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; color:var(--dim); margin-bottom:6px; }
.crow .pill{ font-size:12.5px; padding:5px 7px; }
.crow .sub{ color:var(--dim); font-size:14.5px; margin-top:4px; }
.crow .acts{ display:grid; gap:8px; justify-items:stretch; }
.crow .acts .btn{ padding:10px 14px; font-size:15px; white-space:nowrap; }
.open-chip{ display:inline-flex; align-items:center; gap:8px; width:fit-content; font:700 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); }
.open-chip::before{ content:""; width:10px; height:10px; border-radius:2px; border:2px solid var(--dim); flex:none; }
.open-chip.is-open{ color:var(--text); }
.open-chip.is-open::before{ background:var(--go); border-color:var(--go); }
.open-chip:empty{ display:none; }
.empty{ color:var(--dim); padding-block:24px; }
.launch-empty{ max-width:640px; padding-block:24px 64px; display:grid; gap:14px; }
.launch-empty .board-body{ display:grid; gap:12px; padding:16px 18px 18px; }
.launch-empty p{ color:var(--dim); }
.org-logo{ width:52px; height:52px; border-radius:8px; flex:none; display:grid; place-items:center; overflow:hidden; font:800 19px/1 var(--f-display); letter-spacing:.04em; color:var(--band-ink); background:var(--band); }
.org-logo img{ width:100%; height:100%; object-fit:cover; }
.org-logo.placeholder{ background:var(--raised); color:var(--dim); border:1px solid var(--line); }

/* Consultant card (profile, listing preview, partner example) */
.ccard{ max-width:620px; }
.ccard .board-body{ padding:16px 18px 18px; }
.ccard .who{ display:flex; gap:14px; align-items:center; }
.ccard .who h1, .ccard .who h2, .ccard .who h3{ font-size:30px; text-transform:uppercase; letter-spacing:.01em; line-height:1.02; }
.ccard .where{ font:700 14px/1.25 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); margin-top:5px; }
.ccard .pills{ margin-top:14px; }
.ccard .rows{ margin-top:8px; }
.ccard .actions{ margin-top:18px; }
.ccard .open-chip{ margin-top:10px; }
.ccard .fine{ margin-top:14px; }
.listing-preview{ position:sticky; top:16px; display:grid; gap:10px; }
.preview-label{ font:700 13px/1 var(--f-display); letter-spacing:.1em; text-transform:uppercase; color:var(--dim); }

/* Profile */
.back-row{ padding-block:18px 14px; }
.back-link{ font:700 14px/1 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); text-decoration:none; }
.back-link:hover{ color:var(--text); }
.profile-grid{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; padding-bottom:72px; align-items:start; }
.profile-grid .ccard{ max-width:none; }
.profile-side{ display:grid; gap:14px; }
.profile-side .board + .board{ margin-top:0; }
.hours{ width:100%; font-size:15px; }
.hours td{ padding:8px 0; border-bottom:1px solid var(--line); }
.hours tr:last-child td{ border-bottom:0; }
.hours td:last-child{ text-align:right; }
.hours tr.today td{ font-weight:700; }
.hours tr.today td:first-child{ color:var(--amber-text); }
.hours tr.closed td:last-child{ color:var(--dim); }
.open-line{ font:700 15px/1.3 var(--f-display); text-transform:uppercase; letter-spacing:.05em; color:var(--dim); margin:6px 0 6px; }
.open-line.is-open{ color:var(--text); }
.limit-note{ background:var(--raised); color:var(--text); border-left:5px solid var(--cau); border-radius:0 6px 6px 0; padding:12px 16px; font-size:15px; margin-top:14px; }
.disclaimer-line{ font-size:14px; color:var(--dim); }
.review-list{ display:grid; gap:0; }
.review{ padding:14px 0; border-top:1px solid var(--line); }
.review:first-child{ border-top:0; }
.review-head{ display:flex; gap:12px; align-items:baseline; justify-content:space-between; flex-wrap:wrap; margin-bottom:6px; }
.review-who b{ font:700 16px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.04em; }
.review-who span{ display:block; font-size:13.5px; color:var(--dim); }
.verified{ font:700 12px/1 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); }
.review p{ font-size:15.5px; }
.reply{ margin-top:10px; padding:10px 12px; background:var(--raised); border-left:4px solid var(--line-strong); border-radius:0 6px 6px 0; font-size:15px; }
.reply b{ display:block; font:700 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; margin-bottom:3px; }
.sample-flag{ font-size:14px; color:var(--text); background:var(--raised); border-left:5px solid var(--cau); border-radius:0 6px 6px 0; padding:10px 14px; }
.review-rules{ margin:0; padding-left:20px; display:grid; gap:7px; color:var(--dim); font-size:15px; list-style:square; }
.mobile-bar{ display:none; }

/* ---------- Modal ---------- */
.modal-backdrop{ position:fixed; inset:0; background:rgba(10,9,8,.66); display:flex; align-items:center; justify-content:center; padding:16px; z-index:100; }
.modal{ background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:var(--radius); width:100%; max-width:460px; max-height:calc(100vh - 32px); overflow:auto; box-shadow:var(--shadow); }
.modal > .band{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 16px; border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0; }
.modal-inner{ padding:18px 20px 20px; }
.modal-head{ display:flex; justify-content:space-between; align-items:start; gap:12px; margin-bottom:16px; }
.modal h2{ font-size:28px; }
.modal-head p{ font-size:15px; color:var(--dim); margin-top:4px; }
.icon-btn{ background:none; border:none; color:var(--dim); font-size:28px; line-height:1; cursor:pointer; padding:2px 6px; }
.icon-btn:hover{ color:var(--text); }
.modal-actions{ display:flex; gap:10px; margin-top:6px; }
.modal-actions .btn{ flex:1; }

/* ---------- For consultants ---------- */
.facts{ list-style:none; padding:0; margin:0 0 36px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.facts li{ display:grid; gap:6px; align-content:start; padding:16px; background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--band); border-radius:var(--radius); font-size:15px; color:var(--dim); }
.facts .icon-badge{ margin-bottom:4px; }
.facts strong{ font:800 21px/1.15 var(--f-display); color:var(--text); }
.pricing{ max-width:640px; margin-bottom:40px; display:grid; gap:12px; }
.pricing h2{ font-size:30px; }
.pricing > p:not(.hint){ color:var(--dim); }
.pricing td:last-child{ font:800 20px/1 var(--f-display); font-variant-numeric:tabular-nums; }
.estimator{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; display:grid; gap:14px; }
.estimator summary{ font:800 19px/1.2 var(--f-display); cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.estimator summary::-webkit-details-marker{ display:none; }
.estimator summary::after{ content:"+"; color:var(--amber-text); font-size:24px; line-height:.8; }
.estimator[open] summary::after{ content:"\2212"; }
.est-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:0 16px; }
.est-grid .field{ margin-bottom:0; }
.est-grid input[type=range]{ padding:0; border:none; background:none; accent-color:var(--band); }
.est-result{ font-size:17px; font-weight:600; background:var(--raised); border-left:5px solid var(--go); border-radius:0 6px 6px 0; padding:12px 14px; }
.signup-layout{ display:grid; grid-template-columns:minmax(0,640px) minmax(0,1fr); gap:28px; align-items:start; margin-bottom:72px; }
.logo-upload{ display:flex; align-items:center; gap:16px; }
.logo-upload input[type=file]{ font-size:14px; padding:8px; background:none; border:1px dashed var(--line-strong); }
.panel{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:20px; }
.panel h2{ font-size:24px; margin-bottom:10px; }
.panel h3{ font-size:20px; margin-bottom:6px; }
.wait-points{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:26px; }

/* Application status */
.status-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding-bottom:72px; align-items:start; }
.status-grid .board + .board{ margin-top:0; }
.check-list{ list-style:none; margin:0 0 12px; padding:0; display:grid; gap:0; }
.check-list li{ display:grid; grid-template-columns:26px 1fr; gap:12px; align-items:start; padding:10px 0; border-top:1px solid var(--line); }
.check-list li:first-child{ border-top:0; }

/* ---------- Legal ---------- */
.legal{ display:grid; grid-template-columns:240px minmax(0,1fr); gap:48px; padding-bottom:76px; }
.legal-toc{ position:sticky; top:16px; align-self:start; }
.legal-toc ol{ margin:0; padding:2px 0 2px 20px; display:grid; gap:7px; font-size:15px; }
.legal-toc a{ color:var(--text); text-decoration:none; }
.legal-toc a:hover{ text-decoration:underline; }
.legal-toc li::marker{ color:var(--dim); font-family:var(--f-display); font-weight:700; }
.legal-body{ max-width:70ch; }
.legal-body > h2{ font-size:28px; margin:44px 0 12px; scroll-margin-top:16px; }
.legal-body h3{ font-size:21px; margin:24px 0 8px; }
.legal-body p, .legal-body li{ font-size:17px; }
.legal-body p + p{ margin-top:12px; }
.legal-body ul{ padding-left:22px; display:grid; gap:7px; margin:12px 0; list-style:square; }
.legal-body li::marker{ color:var(--amber-text); }
.summary .board-body{ padding:6px 16px 10px; }
.summary .row{ grid-template-columns:36px minmax(0,1fr); align-items:center; }
.summary .row > span:last-child{ font-size:16.5px; }
.draft-flag{ font-size:14px; color:var(--text); background:var(--raised); border-left:5px solid var(--cau); border-radius:0 6px 6px 0; padding:10px 14px; max-width:68ch; }
.fill{ background:var(--cau); color:var(--cau-ink); padding:0 4px; border-radius:3px; font-weight:700; }

/* ---------- Footer ---------- */
.site-footer{ border-top:1px solid var(--line); background:var(--panel); margin-top:auto; }
.foot-top{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px 40px; padding-block:34px 24px; align-items:start; }
.site-footer .logo svg{ height:28px; }
.footer-note{ font-size:14.5px; color:var(--dim); margin-top:10px; max-width:52ch; }
.footer-links{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,auto); gap:10px 36px; }
.footer-links a{ font:700 14px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--text); text-decoration:none; }
.footer-links a:hover{ color:var(--amber-text); }
.foot-lines{ display:flex; flex-wrap:wrap; gap:8px 22px; padding-block:16px; border-top:1px solid var(--line); font:700 14px/1.3 var(--f-display); text-transform:uppercase; letter-spacing:.05em; }
.foot-lines span{ display:inline-flex; align-items:center; gap:9px; }
.foot-lines span::before{ content:""; width:9px; height:9px; border-radius:2px; background:var(--band); flex:none; }
.foot-legal{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding-block:14px 28px; font-size:13.5px; color:var(--dim); }

/* ---------- Admin, status hub, review hub (private) ---------- */
.preview-banner{ background:var(--cau); color:var(--cau-ink); font-size:14px; font-weight:700; text-align:center; padding:10px 16px; }
.demo-banner{ background:var(--text); color:var(--bg); text-align:center; font-size:14px; padding:10px 16px; }
.demo-banner a{ color:inherit; font-weight:700; }
.stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:28px; }
.stat, .stats > div{ background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--band); border-radius:var(--radius); padding:14px 16px; }
.stat b, .stats > div b{ display:block; font-family:var(--f-stencil); font-weight:900; font-size:42px; line-height:.95; font-variant-numeric:tabular-nums; }
.stat span, .stats small{ font:700 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); }
.tabs{ display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:18px; overflow-x:auto; }
.tabs button:not(.btn){ background:none; border:none; border-bottom:3px solid transparent; padding:10px 14px; font:700 15px/1 var(--f-display); text-transform:uppercase; letter-spacing:.05em; color:var(--dim); cursor:pointer; white-space:nowrap; }
.tabs button:not(.btn)[aria-selected="true"]{ color:var(--text); border-bottom-color:var(--band); }
[data-list][aria-selected="true"], [data-status][aria-selected="true"]{ background:var(--band); color:var(--band-ink); border-color:var(--band); }
.row-actions{ display:flex; gap:8px; }
#pending-rows .row-actions{ flex-direction:column; }
.admin-note{ font-size:14px; color:var(--dim); margin-top:12px; }
.reasons{ margin:0; padding-left:18px; font-size:13px; color:var(--dim); display:grid; gap:2px; min-width:260px; }
.appeal-list{ display:grid; gap:14px; }
.appeal{ display:grid; gap:10px; }
.appeal-head{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.sband{ display:inline-block; font:700 12px/1 var(--f-display); text-transform:uppercase; letter-spacing:.06em; padding:5px 8px; border-radius:4px; white-space:nowrap; }
.sband-low{ background:var(--go); color:var(--go-ink); }
.sband-medium{ background:var(--cau); color:var(--cau-ink); }
.sband-high{ background:transparent; color:var(--alert); box-shadow:inset 0 0 0 2px var(--alert); }

/* Tickets: guide and tool cards, related reading, hubs */
.tour{ display:grid; gap:40px; padding-bottom:72px; }
.tour-section:not(:first-child){ border-top:1px solid var(--line); padding-top:34px; }
.tour-section h2{ font-size:28px; margin-bottom:6px; display:flex; align-items:center; gap:12px; }
.tour-section h2::before{ content:""; width:28px; height:6px; background:var(--band); flex:none; }
.tour-section > p{ color:var(--dim); margin-bottom:18px; max-width:60ch; }
.tour-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; align-items:stretch; }
.tour-card{ display:flex; flex-direction:column; gap:8px; padding:16px 18px 18px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); text-decoration:none; color:var(--text); position:relative; }
.tour-card:hover{ border-color:var(--text); }
.tour-card .variation{ font:700 12.5px/1.2 var(--f-display); letter-spacing:.1em; text-transform:uppercase; color:var(--amber-text); }
.tour-card b{ font:700 22px/1.15 var(--f-display); }
.tour-card span:last-child{ color:var(--dim); font-size:15px; }

/* Partner page reveal */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width: 1020px){
  .site-nav{ gap:6px 16px; font-size:14px; }
  .read{ grid-template-columns:minmax(0,1fr) 260px; gap:32px; }
}
@media (max-width: 860px){
  .wrap{ padding-inline:18px; }
  .head-in{ padding-block:10px 0; gap:10px 14px; flex-wrap:wrap; }
  .logo svg{ height:28px; }
  .head-in .ctl{ margin-left:auto; height:36px; }
  .head-in .ctl > a, .head-in .ctl > span, .head-in .ctl > button{ min-width:38px; }
  .site-nav{ order:3; flex-basis:100%; margin-left:0; overflow-x:auto; scrollbar-width:none; gap:20px; padding-bottom:9px; font-size:14px; }
  .site-nav::-webkit-scrollbar{ display:none; }
  .head-note{ margin-left:auto; }
  .hero-d{ grid-template-columns:1fr; gap:28px; padding-block:30px 34px; }
  .paper-strip .wrap{ grid-template-columns:1fr; }
  .read{ grid-template-columns:minmax(0,1fr); gap:26px; padding-top:22px; }
  .read-rail{ position:static; }
  .read-rail .toc{ display:none; }
  .legal{ grid-template-columns:minmax(0,1fr); gap:22px; }
  .legal-toc{ position:static; }
  .dir{ grid-template-columns:minmax(0,1fr); gap:16px; }
  .filters{ position:static; }
  .filters-toggle{ display:block; }
  .filters[data-collapsed="true"] .board-body{ display:none; }
  .crow{ grid-template-columns:26px minmax(0,1fr); gap:8px 12px; }
  .crow > :not(.sq):not(:nth-child(2)){ grid-column:2; }
  .crow .acts{ grid-auto-flow:column; justify-content:start; margin-top:6px; }
  .profile-grid{ grid-template-columns:minmax(0,1fr); }
  .signup-layout{ grid-template-columns:1fr; }
  .listing-preview{ position:static; order:-1; }
  .est-grid{ grid-template-columns:1fr; gap:12px; }
  .facts, .stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wait-points{ grid-template-columns:1fr; }
  .status-grid{ grid-template-columns:1fr; }
  .mobile-bar{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background:var(--bg); border-top:1px solid var(--line);
  }
  .mobile-bar div{ display:grid; min-width:0; }
  .mobile-bar b{ font:700 16px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mobile-bar span{ font-size:13px; color:var(--dim); }
  .mobile-bar .btn{ flex:none; padding:10px 14px; font-size:15px; }
  #profile-page{ padding-bottom:84px; }
  .ans{ padding-left:0; }
}
@media (max-width: 600px){
  html, body{ font-size:17px; }
  .wrap{ padding-inline:16px; }
  .band{ font-size:12px; }
  .band b{ font-size:14px; }
  .band-in{ min-height:36px; padding-block:7px; }
  .band .band-tag{ display:none; }
  .d-only{ display:none !important; }
  .m-only{ display:revert; }
  .hero-d{ padding-block:22px 28px; gap:20px; }
  .hero-d h1{ font-size:40px; margin-top:10px; }
  .hero-d .lede{ font-size:17px; margin-top:12px; }
  .hero-d .actions{ margin-top:18px; }
  .hero-d .actions .btn{ width:100%; }
  .hero-board .row-check{ display:none; }
  .trust{ font-size:13px; margin-top:18px; }
  .home main, main.home{ padding-bottom:64px; }
  .m-bar{
    display:flex; justify-content:space-between; align-items:center; gap:10px;
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    padding:9px 16px calc(9px + env(safe-area-inset-bottom, 0px));
    background:var(--bg); border-top:1px solid var(--line);
    font:700 12px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; color:var(--dim);
  }
  .m-bar .ctl{ height:36px; }
  .m-bar .ctl > a, .m-bar .ctl > span, .m-bar .ctl > button{ min-width:38px; }
  .page-head{ padding-block:28px 20px; }
  .read-main > h1{ font-size:36px; }
  .prose h2{ font-size:26px; margin-top:38px; }
  .prose p, .prose li{ font-size:17px; }
  .lrow{ grid-template-columns:44px minmax(0,1fr); gap:6px 12px; }
  .lrow .n{ font-size:30px; }
  .lrow .a{ grid-column:2; }
  .check-form .q legend{ grid-template-columns:48px minmax(0,1fr); gap:0 10px; }
  .q-n{ font-size:38px; }
  .q-t{ font-size:19px; }
  .ans{ grid-template-columns:1fr; gap:8px; }
  .ans-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bignum .num{ font-size:52px; }
  .form-grid{ grid-template-columns:1fr; }
  .facts, .stats{ grid-template-columns:1fr; }
  .foot-top{ grid-template-columns:1fr; }
  .footer-links{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
  .foot-legal{ padding-bottom:22px; }
  .ccard .who h1, .ccard .who h2, .ccard .who h3{ font-size:25px; }
  .res-head h2{ font-size:24px; }
  .tool .board-body{ padding:14px 14px 16px; }
  .modal-actions{ flex-direction:column-reverse; }
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ scroll-behavior:auto !important; }
}
@media print{
  :root, :root[data-theme="dark"]{
    color-scheme:light;
    --bg:#ffffff; --panel:#ffffff; --raised:#f4f1ea; --line:#cfc6b6; --line-strong:#a99f8e;
    --go:#178a47; --go-ink:#ffffff; --cau:#9a6b00; --cau-ink:#ffffff;
    --text:#1c1a17; --dim:#4f483f; --link:#12703a; --amber-text:#8a4100;
  }
  .site-nav, .ctl, .m-bar, .mobile-bar, .read-rail, .foot-legal .ctl, .guide-cta .btn{ display:none !important; }
  .band, .sq, .prog i, th{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .read{ grid-template-columns:1fr; }
  a{ color:inherit; }
}

/* ---------- Additions ---------- */
.ms{ position:relative; }
.ms-toggle{ width:100%; text-align:left; font:600 17px/1.2 var(--f-body); color:var(--text); background:var(--raised); border:1px solid var(--line-strong); border-radius:6px; padding:12px; cursor:pointer; }
.ms-toggle::after{ content:"\25BE"; float:right; color:var(--dim); }
.ms-panel{ position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:20; max-height:300px; overflow:auto; background:var(--panel); border:1px solid var(--line-strong); border-radius:8px; padding:6px; box-shadow:var(--shadow); display:grid; gap:2px; }
.field .ms-panel label, .ms-panel label{ display:flex; align-items:center; gap:10px; padding:7px 9px; border-radius:5px; font:500 15px/1.2 var(--f-body); text-transform:none; letter-spacing:0; color:var(--text); cursor:pointer; }
.ms-panel label:hover{ background:var(--raised); }
.ms-panel input{ margin:0; accent-color:var(--go); width:18px; height:18px; }
.es-board{ max-width:760px; }
.results{ min-width:0; }
.results > .fine{ margin-top:18px; }
.page-head .grid3 .panel h3{ font-size:20px; }
#ac-element{ padding:12px 14px; border:1px solid var(--line-strong); border-radius:6px; background:var(--raised); }
@media (max-width:600px){
  .head-in .head-note{ display:none; }
}
.wait-card .board-body > p:first-child{ margin:10px 0 16px; }
.dicho{ font-style:italic; color:var(--dim); font-weight:400; }

/* Directory compaction (desktop only; phones use the stacked layout) */
@media (min-width:861px){
.crow{ grid-template-columns:22px minmax(0,1.4fr) minmax(0,.6fr) minmax(0,1.4fr) minmax(0,1fr) 150px; gap:14px; padding:14px 0; }
.crow .nm{ font-size:19px; }
.crow .pill{ white-space:normal; }
.crow .pills{ gap:5px; }
.crow .acts .btn{ padding:9px 12px; font-size:14.5px; white-space:normal; }
.crow > .sq{ width:22px; height:22px; margin-top:2px; }
.crow > .sq svg{ width:15px; height:15px; }
.crow .open-chip{ font-size:12px; }
}
.crow .pill{ white-space:normal; }

/* Scan fixes */
.short-answer, .read-main > .tool, .guide-cta, .read-main > .clock, .prose, .guide-notice{ max-width:760px; }
.remind fieldset.check-list{ border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px 18px; }
.remind fieldset.check-list legend{ font:700 13px/1.2 var(--f-display); text-transform:uppercase; letter-spacing:.06em; color:var(--dim); margin-bottom:8px; padding:0; }
.remind form{ display:grid; gap:14px; }
.remind .field{ margin-bottom:0; }
.hub-grid .tour-card .variation{ display:none; }
@media (max-width:860px){
  .crow{ padding:14px 0; }
  .crow .sub, .crow .fine{ font-size:14px; }
  .crow .k{ margin:6px 0 4px; }
}
.filters-toggle.link-btn{ color:var(--band-ink); font:800 13px/1 var(--f-display); text-transform:uppercase; letter-spacing:.08em; }
@media (max-width:600px){ .short-answer p{ font-size:17px; } .short-answer .board-body{ padding:12px 14px 14px; } }
.site-nav[hidden] + .ctl{ margin-left:auto; }

/* Preferred contact: a visible chip, never hidden in the band */
.pref-chip{ display:inline-flex; align-items:center; gap:8px; width:fit-content; margin-top:12px; padding:7px 11px; border-radius:6px; background:var(--raised); border:2px solid var(--go); font:700 15px/1.1 var(--f-display); text-transform:uppercase; letter-spacing:.05em; color:var(--text); }
.pref-chip svg{ width:17px; height:17px; fill:none; stroke:var(--go); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.pref-chip.sm{ margin-top:6px; padding:4px 8px; font-size:12.5px; border-width:1.5px; }
.pref-chip.sm svg{ width:14px; height:14px; }
/* Full this month */
.full-note{ display:grid; grid-template-columns:26px minmax(0,1fr); gap:12px; margin-top:16px; padding:14px 16px; background:var(--raised); border:1px solid var(--line); border-left:5px solid var(--band); border-radius:0 8px 8px 0; }
.full-note .full-h{ font:800 20px/1.1 var(--f-display); margin-bottom:4px; }
.full-note p + p{ margin-top:4px; }

@media (max-width: 359px){ .head-in .logo-full{ display:none; } .head-in .logo-fc{ display:block !important; height:36px; } }
