/* ==========================================================================
   Hubstake stylesheet.

   Three parts, in this order:
     1. the token block from the design bundle (design/bundle/hubstake.css).
        The designer kept our existing token NAMES, so swapping the values here
        re-skins the pages the bundle does not cover -- methodology, pricing,
        coverage, the legal pages -- without touching their markup.
     2. the legacy component styles, for those pages.
     3. the bundle's component styles.  These come last on purpose: where a
        class name appears in both (.btn, .wrap, .label, .fine), the bundle wins.
   ========================================================================== */

/* IBM Plex, self-hosted.  Nothing on the page waits on a third-party font host,
   which matters when the index is tens of thousands of pages.  Sans is a variable
   font, so one file covers every weight; Mono ships one file per weight. */
@font-face{font-family:"IBM Plex Sans";src:url("/assets/fonts/ibm-plex-sans.woff2") format("woff2");
  font-weight:100 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-400.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/ibm-plex-mono-600.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --bg:oklch(97.8% 0.004 254);
  --surface:oklch(100% 0 0);
  --surface-2:oklch(95.8% 0.006 254);
  --surface-3:oklch(91.5% 0.009 254);
  --line:oklch(87% 0.011 254);
  --line-soft:oklch(92.5% 0.007 254);

  --navy:#132038;
  --ink:#191c22;
  --ink-2:#454a54;
  --ink-3:#666b76;

  --blue:#1f56d8;
  --blue-600:#1a49bb;
  --blue-700:#153b97;
  --blue-wash:#e9effc;
  --blue-ring:rgba(31,86,216,.28);
  --on-accent:#ffffff;

  --series-1:#1f56d8;
  --series-2:#132038;
  --series-3:oklch(80% 0.02 254);
  --pos:#17744a;
  --neg:#b0281f;

  --ok:#17744a;
  --ok-wash:#e7f3eb;
  --ok-line:#b3d9c1;
  --warn:#8a4f00;
  --warn-wash:#fcf1dc;
  --warn-line:#e3b867;

  --radius:10px;
  --radius-sm:6px;
  --radius-xs:3px;
  --maxw:1240px;
  --gut:clamp(16px,4vw,40px);

  --shadow-sm:0 1px 0 rgba(19,32,56,.05);
  --shadow:0 1px 2px rgba(19,32,56,.06),0 4px 14px rgba(19,32,56,.06);
  --shadow-lg:0 2px 4px rgba(19,32,56,.06),0 18px 44px rgba(19,32,56,.13);
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* ---------- legacy components ---------- */
/* ============================================================
   Hubstake design system — light theme only, navy/blue palette
   ============================================================ */


*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink-2);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5{font-family:var(--serif);color:var(--ink);font-weight:600;line-height:1.2;letter-spacing:-.017em;margin:0 0 .5em}
h1{font-size:clamp(1.85rem,1.35rem+1.7vw,2.6rem);letter-spacing:-.024em}
h2{font-size:clamp(1.3rem,1.1rem+.7vw,1.6rem);letter-spacing:-.02em}
h3{font-size:1.06rem}
h4{font-size:.95rem}
p{margin:0 0 1rem}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-600);text-decoration:underline;text-underline-offset:2px}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
small{font-size:.82rem}
ul,ol{margin:0 0 1rem;padding-left:1.25rem}
li{margin:.3rem 0}
strong{color:var(--ink);font-weight:640}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:760px}
.muted{color:var(--ink-2)}
.dim{color:var(--ink-3)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.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}
a.sr-only:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;clip:auto;padding:.6rem 1rem;background:var(--navy);color:#fff;border-radius:var(--radius-xs);z-index:100}

.eyebrow{
  font-size:.74rem;font-weight:670;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 .5rem;
}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.site-head .bar{
  max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);
  height:62px;display:flex;align-items:center;gap:1.5rem;
}
.site-head .brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none!important}
.site-head .brand .logo{width:26px;height:26px;border-radius:7px;flex:none;display:block}
.site-head .brand .mark{font-size:1.06rem;font-weight:700;color:var(--navy);letter-spacing:-.03em}
.badge{
  font-size:.64rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--blue-700);background:var(--blue-wash);border:1px solid #D2E1FD;
  padding:.16rem .42rem;border-radius:5px;
}
.site-head .nav{margin-left:auto;display:flex;align-items:center;gap:.25rem}
.site-head .nav a{
  color:var(--ink-2);font-size:.9rem;font-weight:520;
  padding:.45rem .7rem;border-radius:var(--radius-xs);text-decoration:none;
}
.site-head .nav a:hover{color:var(--navy);background:var(--surface-2);text-decoration:none}
.site-head .nav a[aria-current="page"]{color:var(--navy);font-weight:620;background:var(--surface-2)}
.site-head .nav .cta{
  margin-left:.4rem;background:var(--blue);color:#fff;font-weight:600;
  padding:.45rem .85rem;box-shadow:var(--shadow-sm);
}
.site-head .nav .cta:hover{background:var(--blue-600);color:#fff}
@media(max-width:720px){
  .site-head .bar{height:auto;padding-top:.65rem;padding-bottom:.65rem;flex-wrap:wrap;gap:.5rem}
  .nav{margin-left:0;width:100%;overflow-x:auto;gap:.1rem;padding-bottom:.1rem}
  .nav a{padding:.4rem .55rem;font-size:.85rem;white-space:nowrap}
  .nav .cta{margin-left:.2rem}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  font:inherit;font-size:.92rem;font-weight:600;line-height:1;
  padding:.72rem 1.15rem;border-radius:var(--radius-sm);
  border:1px solid transparent;cursor:pointer;text-decoration:none!important;
  transition:background .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.25)}
.btn-primary:hover{background:var(--blue-600);color:#fff}
.btn-secondary{background:var(--surface);color:var(--navy);border-color:var(--line);box-shadow:var(--shadow-sm)}
.btn-secondary:hover{border-color:#C3D2E6;background:#fff;color:var(--navy)}
.btn-ghost{background:transparent;color:var(--blue);padding-left:0;padding-right:0}
.btn-lg{padding:.85rem 1.4rem;font-size:.98rem}

/* ---------- cards ---------- */
.card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.35rem;box-shadow:var(--shadow-sm);
}
.card-flush{padding:0;overflow:hidden}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}

/* ---------- stat tiles ---------- */
.stat{padding:1.05rem 1.15rem;border-radius:var(--radius-sm);background:var(--surface)}
.stat .k{font-size:.73rem;font-weight:660;letter-spacing:.075em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.4rem}
.stat .v{font-size:1.5rem;font-weight:660;color:var(--navy);line-height:1.15}
.stat .s{font-size:.8rem;margin-top:.25rem;color:var(--ink-3)}
.statrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line-soft);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
@media(max-width:860px){.statrow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.statrow{grid-template-columns:minmax(0,1fr)}}

/* ---------- pills / chips ---------- */
.pill{
  display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:620;
  padding:.2rem .5rem;border-radius:999px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--ink-2);white-space:nowrap;
}
.pill.s-developer_cfa{background:var(--blue-wash);border-color:#D2E1FD;color:var(--blue-700)}
.pill.s-city_contract{background:#E7ECF4;border-color:#D3DDEB;color:var(--navy)}
.pill.s-txdot{background:var(--surface-2);border-color:var(--line);color:var(--ink-3)}
.chip{
  display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:550;
  padding:.4rem .75rem;border-radius:999px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink-2);text-decoration:none!important;box-shadow:var(--shadow-sm);
}
.chip:hover{border-color:var(--blue);color:var(--blue-700);background:var(--blue-wash)}

/* ---------- search box ---------- */
.sbox{display:flex;align-items:center;gap:.5rem;background:var(--surface);
  border:1px solid var(--line);border-radius:999px;padding:.35rem .35rem .35rem .9rem;
  box-shadow:var(--shadow);transition:border-color .12s, box-shadow .12s}
.sbox:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-ring)}
.sbox .ico{width:18px;height:18px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.sbox input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;
  font-size:.96rem;color:var(--ink);padding:.5rem 0}
.sbox input::placeholder{color:var(--ink-3)}
.sbox .btn{border-radius:999px;padding-left:1.15rem;padding-right:1.15rem}
.sbox.lg input{font-size:1.02rem;padding:.65rem 0}

/* ---------- filters ---------- */
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:1.25rem 0 1rem}
.filters select{
  font:inherit;font-size:.87rem;color:var(--ink-2);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-xs);padding:.45rem 2rem .45rem .7rem;
  appearance:none;box-shadow:var(--shadow-sm);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 8l3-3.5' fill='none' stroke='%236B7F99' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .55rem center;background-size:12px;
}
.filters select:hover{border-color:#C3D2E6}

/* ---------- item cards / result rows ---------- */
.itemcard{
  display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1rem 1.1rem;text-decoration:none!important;box-shadow:var(--shadow-sm);
  transition:border-color .12s, box-shadow .12s, transform .12s;
}
.itemcard:hover{border-color:#BFD2F5;box-shadow:var(--shadow);transform:translateY(-1px)}
.itemcard .cat{font-size:.7rem;font-weight:680;letter-spacing:.075em;text-transform:uppercase;color:var(--blue-700)}
.itemcard .nm{display:block;color:var(--navy);font-weight:620;font-size:1rem;margin:.3rem 0 .55rem;line-height:1.3}
.itemcard .pv{display:block;color:var(--navy);font-weight:660;font-size:1.22rem}
.itemcard .pv small{font-size:.74rem;font-weight:500;color:var(--ink-3);font-family:var(--sans)}
.itemcard .rg{display:block;color:var(--ink-3);font-size:.8rem;margin-top:.2rem}

.results{display:flex;flex-direction:column;gap:1px;background:var(--line-soft);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.results:empty{display:none}
.rtable .r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem 1rem;
  padding:.85rem 1.05rem;background:var(--surface);text-decoration:none!important;align-items:baseline}
.rtable .r:hover{background:var(--blue-wash)}
.rtable .r .nm{color:var(--navy);font-weight:600;font-size:.97rem;grid-column:1;line-height:1.35}
.rtable .r .med{grid-column:2;grid-row:1;text-align:right;color:var(--navy);font-weight:660;font-size:1rem;white-space:nowrap}
.rtable .r .sub{grid-column:1;grid-row:2;color:var(--ink-3);font-size:.79rem}
.rtable .r .rng{grid-column:2;grid-row:2;text-align:right;color:var(--ink-3);font-size:.79rem;white-space:nowrap}

/* ---------- tables ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Scoped away from the bundle's tables: a bare `thead th{position:sticky}` was
   leaking onto .obs-table and .bands. */
table:not(.obs-table):not(.bands){width:100%;border-collapse:collapse;font-size:.88rem}
table:not(.obs-table):not(.bands) thead th{
  position:sticky;top:0;background:var(--surface-2);
  font-size:.7rem;font-weight:680;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);
  text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap;
}
tbody td{padding:.6rem .7rem;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--ink-2)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--surface-2)}
th.n,td.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
td.n strong{color:var(--navy)}
.receipt{
  display:inline-flex;align-items:center;gap:.2rem;font-size:.78rem;font-weight:600;
  color:var(--blue);background:var(--blue-wash);border:1px solid #D8E5FD;
  padding:.16rem .45rem;border-radius:var(--radius-xs);white-space:nowrap;text-decoration:none!important;
}
.receipt:hover{background:#DCE9FE;border-color:#BFD5FB}

/* ---------- charts ---------- */
.chart figcaption{margin-bottom:.6rem}
.chart-box{position:relative}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .tick{fill:var(--ink-3);font-size:11px;font-family:var(--sans)}
.chart .line{stroke:var(--blue);stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}
.chart .area{fill:var(--blue);opacity:.07}
.chart .dot{fill:#fff;stroke:var(--blue);stroke-width:2.25}
.chart .hit{fill:transparent;cursor:pointer}
.chart .pt:hover .dot,.chart .pt:focus .dot{fill:var(--blue)}
.chart .dlabel{fill:var(--navy);font-size:11px;font-weight:640;font-family:var(--mono)}
.tip{
  position:absolute;transform:translate(-50%,-135%);pointer-events:none;
  background:var(--navy);color:#fff;font-size:.76rem;line-height:1.35;
  padding:.4rem .55rem;border-radius:var(--radius-xs);white-space:nowrap;box-shadow:var(--shadow-lg);z-index:5;
}

/* segment bars */
.seg .rows{display:flex;flex-direction:column;gap:.7rem;margin-top:.9rem}
.seg .row{display:grid;grid-template-columns:130px minmax(0,1fr) 88px 58px;gap:.6rem;align-items:center;font-size:.84rem}
.seg .lab{display:flex;align-items:center;gap:.4rem;color:var(--ink-2);font-weight:550}
.seg .swatch{width:9px;height:9px;border-radius:2px;flex:none}
.seg .track{position:relative;height:22px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.seg .bar{position:absolute;left:0;top:0;bottom:0;border-radius:5px}
.seg .rng{position:absolute;top:3px;bottom:3px;border:1.5px solid rgba(15,39,71,.32);border-radius:4px}
.seg .none{display:flex;align-items:center;height:100%;padding-left:.5rem;font-size:.74rem;color:var(--ink-3)}
.seg .val{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--navy);font-weight:620}
.seg .n{text-align:right;font-size:.76rem}
.seg .row[data-empty="true"] .val{color:var(--ink-3);font-weight:500}
@media(max-width:640px){.seg .row{grid-template-columns:110px minmax(0,1fr) 74px;}.seg .n{display:none}}

/* distribution strip */
.dist{margin-top:.25rem}
.dist .bar{position:relative;height:30px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3));border-radius:7px}
.dist .iqr{position:absolute;top:0;bottom:0;background:var(--blue-wash);border:1px solid #C7DBFC;border-radius:6px}
.dist .med{position:absolute;top:-4px;bottom:-4px;width:2.5px;background:var(--blue);border-radius:2px}
.dist .obs{position:absolute;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;
  background:var(--navy);opacity:.42}
.dist .ends{display:flex;justify-content:space-between;margin-top:.4rem;font-size:.75rem;color:var(--ink-3);
  font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------- notices ---------- */
.notice{
  background:var(--blue-wash);border:1px solid #D6E4FD;border-left:3px solid var(--blue);
  border-radius:var(--radius-sm);padding:.9rem 1.1rem;color:var(--ink-2);font-size:.9rem;margin:0;
}
.notice.warn{background:#FFF8EC;border-color:#F5E3C0;border-left-color:#C98A17}

/* ---------- breadcrumb ---------- */
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.82rem;color:var(--ink-3);margin-bottom:1.1rem}
.crumb a{color:var(--ink-3)}
.crumb a:hover{color:var(--blue)}
.crumb span[aria-current]{color:var(--ink-2);font-weight:550}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(1100px 380px at 12% -10%, #E6EFFE 0%, rgba(230,239,254,0) 62%),
    radial-gradient(760px 320px at 92% 0%, #DCEBE2 0%, rgba(220,235,226,0) 60%),
    linear-gradient(180deg,#FFFFFF 0%, var(--bg) 100%);
  border-bottom:1px solid var(--line);
}
.hero .wrap{padding-top:3.6rem;padding-bottom:3rem}
.hero h1{max-width:19ch}
.hero .lede{font-size:1.06rem;color:var(--ink-2);max-width:60ch;margin-bottom:1.6rem}
@media(max-width:640px){.hero .wrap{padding-top:2.4rem;padding-bottom:2.2rem}}

.section{padding:3.2rem 0}
.section-tight{padding:2.2rem 0}
.section-head{margin-bottom:1.5rem}
.section-head p{max-width:64ch;margin:0}

/* ---------- pricing ---------- */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;align-items:start}
@media(max-width:940px){.plans{grid-template-columns:minmax(0,1fr)}}
.plan{position:relative;display:flex;flex-direction:column;height:100%}
.plan.featured{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue), var(--shadow)}
.plan .tag{position:absolute;top:-11px;left:1.35rem;font-size:.66rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;background:var(--blue);color:#fff;padding:.22rem .55rem;border-radius:5px}
.plan h3{margin-bottom:.2rem}
.plan .price{font-size:2rem;font-weight:680;color:var(--navy);line-height:1.1;margin:.5rem 0 .1rem}
.plan .per{font-size:.82rem;color:var(--ink-3);margin-bottom:.9rem}
.plan .desc{font-size:.88rem;color:var(--ink-2);min-height:2.6em;margin-bottom:1rem}
.plan ul{list-style:none;padding:0;margin:0 0 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.plan li{display:flex;gap:.55rem;font-size:.88rem;color:var(--ink-2);margin:0;line-height:1.45}
.plan li svg{width:15px;height:15px;flex:none;margin-top:.22rem;stroke:var(--blue);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.plan .btn{margin-top:auto;width:100%}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:1rem 2rem 1rem 0;position:relative;
  color:var(--navy);font-weight:600;font-size:.97rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:.4rem;top:1.35rem;width:9px;height:9px;
  border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);
  transform:rotate(45deg);transition:transform .15s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{margin:0 0 1rem;color:var(--ink-2);font-size:.92rem;max-width:72ch}

/* ---------- prose (legal + methodology) ---------- */
.prose h2{margin-top:2.4rem;padding-top:0}
.prose h3{margin-top:1.6rem;color:var(--navy)}
.prose p,.prose li{color:var(--ink-2)}
.prose .lead{font-size:1.04rem;color:var(--ink-2);max-width:64ch}
.prose ul{padding-left:1.15rem}
.toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm)}
.toc ol{margin:0;padding-left:1.15rem;font-size:.9rem}
.toc li{margin:.3rem 0}

/* ---------- CTA band ---------- */
.cta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;
  background:linear-gradient(135deg,#14181B 0%,#25332C 100%);
  border:0;color:#DDE7F5;padding:1.6rem 1.8rem;border-radius:var(--radius);box-shadow:var(--shadow);
}
.cta h3{color:#fff;margin-bottom:.3rem}
.cta p{color:#B9CBE2;margin:0;font-size:.92rem}
.cta .btn-primary{background:#fff;color:var(--navy)}
.cta .btn-primary:hover{background:#DCEBE2;color:var(--navy)}

/* ---------- footer ---------- */
.site-foot{background:var(--surface);border-top:1px solid var(--line);margin-top:4rem;padding:2.8rem 0 2.2rem}
.site-foot .cols{display:grid;grid-template-columns:1.4fr repeat(4,minmax(0,1fr));gap:1.8rem}
@media(max-width:860px){.site-foot .cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}}
.site-foot h4{font-size:.73rem;font-weight:680;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.7rem}
.site-foot a{display:block;color:var(--ink-2);font-size:.88rem;padding:.17rem 0;text-decoration:none}
.site-foot a:hover{color:var(--blue)}
.site-foot .about p{font-size:.85rem;color:var(--ink-3);margin:.6rem 0 0;max-width:34ch}
.foot-legal{margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line-soft);
  font-size:.81rem;color:var(--ink-3);max-width:80ch}
.foot-legal a{display:inline}

/* footer brand must stay inline even though footer links are block */
.site-foot .brand{display:inline-flex;align-items:center;gap:.5rem}
.site-foot .brand .mark{color:var(--navy)}

/* hero split layout + sample receipt card */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2.6rem;align-items:center}
@media(max-width:980px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:2rem}.hero-aside{display:none}}
.samp{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);overflow:hidden}
.samp .top{padding:1rem 1.15rem;border-bottom:1px solid var(--line-soft);background:var(--surface-2)}
.samp .top .nm{color:var(--navy);font-weight:640;font-size:1rem;margin:.2rem 0 0}
.samp .mid{padding:1.05rem 1.15rem;display:flex;align-items:baseline;gap:.5rem;
  border-bottom:1px solid var(--line-soft)}
.samp .mid .big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.75rem;
  font-weight:660;color:var(--navy);letter-spacing:-.03em}
.samp .mid .u{font-size:.82rem;color:var(--ink-3)}
.samp dl{margin:0;padding:.9rem 1.15rem;display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:.45rem .9rem;font-size:.82rem}
.samp dt{color:var(--ink-3);white-space:nowrap}
.samp dd{margin:0;color:var(--ink-2);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.samp .foot{padding:.85rem 1.15rem;border-top:1px solid var(--line-soft);display:flex;
  align-items:center;justify-content:space-between;gap:.75rem;background:var(--surface-2)}
.samp .foot span{font-size:.78rem;color:var(--ink-3)}
.tip strong{color:#fff;font-weight:680}
/* readable measure for long-form prose; tables and cards stay full width */
.prose > p,.prose > ul,.prose > ol,.prose > h2,.prose > h3,.prose > .lead{max-width:74ch}

/* ============================================================
   Round 2 components
   ============================================================ */

/* ---------- header: split nav ---------- */
.site-head .bar{gap:1rem}
.site-head .nav-main{display:flex;align-items:center;gap:.15rem;margin-left:1.25rem}
.site-head .nav-aux{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.site-head .nav-main a{color:var(--ink-2);font-size:.9rem;font-weight:520;padding:.45rem .7rem;
  border-radius:var(--radius-xs);text-decoration:none}
.site-head .nav-main a:hover{color:var(--navy);background:var(--surface-2);text-decoration:none}
.site-head .nav-main a[aria-current="page"]{color:var(--navy);font-weight:620;background:var(--surface-2)}
.site-head .nav-signin{color:var(--ink-2);font-size:.9rem;font-weight:550;text-decoration:none;padding:.45rem .4rem}
.site-head .nav-signin:hover{color:var(--navy);text-decoration:none}
.site-head .nav-cta{background:var(--blue);color:#fff!important;font-weight:600;font-size:.89rem;
  padding:.5rem .95rem;border-radius:var(--radius-sm);text-decoration:none!important;
  box-shadow:0 1px 2px rgba(37,99,235,.25);white-space:nowrap}
.site-head .nav-cta:hover{background:var(--blue-600)}
@media(max-width:860px){
  .site-head .bar{height:auto;padding-top:.6rem;padding-bottom:.6rem;flex-wrap:wrap;row-gap:.5rem}
  .nav-main{order:3;width:100%;margin-left:0;overflow-x:auto;gap:.1rem}
  .nav-main a{white-space:nowrap;padding:.4rem .55rem;font-size:.85rem}
  .nav-aux{margin-left:auto}
}

/* ---------- numbered steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;counter-reset:step}
@media(max-width:820px){.steps{grid-template-columns:minmax(0,1fr)}}
.step{position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.4rem 1.35rem;box-shadow:var(--shadow-sm)}
.step .no{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.02em;
  color:var(--blue-700);background:var(--blue-wash);border:1px solid #D2E1FD;
  width:34px;height:26px;border-radius:5px;margin-bottom:.85rem}
.step h3{font-size:1.05rem;margin-bottom:.4rem}
.step p{font-size:.9rem;color:var(--ink-2);margin:0}

/* ---------- audience cards ---------- */
.aud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
@media(max-width:1000px){.aud{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.aud{grid-template-columns:minmax(0,1fr)}}
.aud .card{display:flex;flex-direction:column}
.aud .ic{width:34px;height:34px;border-radius:8px;background:var(--blue-wash);
  border:1px solid #D2E1FD;display:flex;align-items:center;justify-content:center;margin-bottom:.85rem}
.aud .ic svg{width:17px;height:17px;stroke:var(--blue-700);stroke-width:1.9;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.aud h3{font-size:1rem;margin-bottom:.35rem}
.aud p{font-size:.88rem;color:var(--ink-2);margin:0}

/* ---------- search layout ---------- */
.search-layout{display:grid;grid-template-columns:246px minmax(0,1fr);gap:2rem;align-items:start}
@media(max-width:940px){.search-layout{grid-template-columns:minmax(0,1fr);gap:1.2rem}}
.fside{position:sticky;top:78px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.1rem 1.15rem;box-shadow:var(--shadow-sm)}
@media(max-width:940px){.fside{position:static}}
.fside .fhead{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;
  padding-bottom:.8rem;margin-bottom:.9rem;border-bottom:1px solid var(--line-soft)}
.fside .fhead h2{font-size:.84rem;font-weight:680;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);margin:0}
.fclear{background:none;border:0;padding:0;font:inherit;font-size:.82rem;color:var(--blue);
  cursor:pointer;font-weight:550}
.fclear:hover{text-decoration:underline}
.fclear[disabled]{color:var(--ink-3);cursor:default;text-decoration:none}
.fgroup{margin-bottom:1.1rem}
.fgroup:last-child{margin-bottom:0}
.fgroup > h3{font-size:.78rem;font-weight:660;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 .55rem}
.fopt{display:flex;align-items:center;gap:.5rem;font-size:.87rem;color:var(--ink-2);
  padding:.22rem 0;cursor:pointer;line-height:1.35}
.fopt input{accent-color:var(--blue);width:15px;height:15px;flex:none;margin:0;cursor:pointer}
.fopt .c{margin-left:auto;font-size:.76rem;color:var(--ink-3);font-family:var(--mono)}
.fopt:hover{color:var(--navy)}
.fside select{width:100%}

.rhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:.75rem;margin-bottom:.9rem}
.rhead .rcount{font-size:.92rem;color:var(--ink-2)}
.rhead .rcount strong{color:var(--navy);font-weight:660}
.rsort{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--ink-3)}

/* ---------- results table ---------- */
.rtable{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.rtable thead th{position:static;background:var(--surface-2);cursor:default}
.rtable tbody tr{cursor:pointer}
.rtable tbody tr:hover{background:var(--blue-wash)}
.rtable tbody tr:focus-within{background:var(--blue-wash)}
.rtable td{padding:.7rem .85rem;vertical-align:middle}
.rtable th{padding:.6rem .85rem}
.rtable .it a{color:var(--navy);font-weight:600;text-decoration:none}
.rtable tbody tr:hover .it a{color:var(--blue-700)}
.rtable .sub{display:block;color:var(--ink-3);font-size:.76rem;font-weight:400;margin-top:.1rem}
.rtable .obs-cell{white-space:nowrap}
.depth{display:inline-block;width:38px;height:5px;border-radius:3px;background:var(--surface-3);
  margin-left:.45rem;vertical-align:middle;position:relative;overflow:hidden}
.depth i{position:absolute;left:0;top:0;bottom:0;background:var(--blue);border-radius:3px}
@media(max-width:720px){
  .rtable,.rtable tbody,.rtable tr,.rtable td{display:block;width:100%}
  .rtable thead{display:none}
  .rtable{border:0;background:transparent;box-shadow:none;overflow:visible}
  .rtable tbody tr{background:var(--surface);border:1px solid var(--line);
    border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:.7rem;padding:.9rem 1rem}
  .rtable td{padding:.2rem 0;border:0;display:flex;justify-content:space-between;gap:1rem;
    align-items:baseline;text-align:right}
  .rtable td.it{display:block;text-align:left;margin-bottom:.5rem}
  .rtable td::before{content:attr(data-l);color:var(--ink-3);font-size:.76rem;
    font-weight:620;letter-spacing:.05em;text-transform:uppercase;text-align:left;flex:none}
  .rtable td.it::before{display:none}
}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:.2rem;border-bottom:1px solid var(--line);margin-bottom:1.3rem;
  overflow-x:auto}
.tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;
  font:inherit;font-size:.93rem;font-weight:570;color:var(--ink-3);cursor:pointer;
  padding:.65rem .9rem;margin-bottom:-1px;white-space:nowrap;border-radius:var(--radius-xs) var(--radius-xs) 0 0}
.tab:hover{color:var(--navy);background:var(--surface-2)}
.tab[aria-selected="true"]{color:var(--blue-700);border-bottom-color:var(--blue);font-weight:640}
.tab .n{font-family:var(--mono);font-size:.76rem;color:var(--ink-3);margin-left:.35rem}
.tab[aria-selected="true"] .n{color:var(--blue-700)}
.tabpanel[hidden]{display:none}

/* ---------- sortable table headers ---------- */
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable:hover{color:var(--navy)}
th.sortable .ar{opacity:0;margin-left:.25rem;font-size:.7rem}
th.sortable[aria-sort="ascending"] .ar,th.sortable[aria-sort="descending"] .ar{opacity:1;color:var(--blue)}
th.sortable[aria-sort="descending"] .ar{display:inline-block;transform:rotate(180deg)}

/* ---------- source drawer ---------- */
.drawer-scrim{position:fixed;inset:0;background:rgba(15,39,71,.38);opacity:0;pointer-events:none;
  transition:opacity .18s ease;z-index:80}
.drawer-scrim[data-open]{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);background:var(--surface);
  border-left:1px solid var(--line);box-shadow:-18px 0 48px -24px rgba(15,39,71,.4);
  transform:translateX(100%);transition:transform .22s cubic-bezier(.3,.8,.4,1);z-index:81;
  display:flex;flex-direction:column;overflow:hidden}
.drawer[data-open]{transform:none}
.drawer .dhead{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.15rem 1.3rem;border-bottom:1px solid var(--line-soft);background:var(--surface-2)}
.drawer .dhead h3{margin:0;font-size:1.02rem}
.drawer .dhead .eyebrow{margin:0 0 .2rem}
.dclose{appearance:none;background:none;border:1px solid var(--line);border-radius:var(--radius-xs);
  width:30px;height:30px;flex:none;cursor:pointer;color:var(--ink-2);font-size:1.1rem;line-height:1;
  display:flex;align-items:center;justify-content:center}
.dclose:hover{background:var(--surface);color:var(--navy);border-color:#C3D2E6}
.drawer .dbody{padding:1.2rem 1.3rem;overflow-y:auto;flex:1}
.drawer dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem 1rem;font-size:.88rem}
.drawer dt{color:var(--ink-3);white-space:nowrap}
.drawer dd{margin:0;color:var(--ink-2);text-align:right;overflow-wrap:anywhere}
.drawer dd strong{color:var(--navy)}
.drawer .dfoot{padding:1.1rem 1.3rem;border-top:1px solid var(--line-soft);background:var(--surface-2)}
.drawer .dfoot .btn{width:100%}
.drawer .printed{margin-top:1.2rem;padding:.8rem .9rem;background:var(--surface-2);
  border:1px solid var(--line-soft);border-radius:var(--radius-sm);font-family:var(--mono);
  font-size:.82rem;color:var(--ink-2);overflow-wrap:anywhere}

/* ---------- histogram ---------- */
.hist{width:100%;height:auto;display:block;overflow:visible}
.hist .bar{fill:var(--blue);opacity:.82}
.hist .bar:hover{opacity:1}
.hist .bar.out{fill:var(--series-3);opacity:.75}
.hist .axis{stroke:var(--line);stroke-width:1}
.hist .tick{fill:var(--ink-3);font-size:11px;font-family:var(--sans)}
.hist .medline{stroke:var(--navy);stroke-width:2;stroke-dasharray:4 3}
.hist .medlab{fill:var(--navy);font-size:11px;font-weight:660;font-family:var(--mono)}
.legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.9rem;font-size:.79rem;color:var(--ink-3)}
.legend span{display:inline-flex;align-items:center;gap:.4rem}
.legend i{width:10px;height:10px;border-radius:2px;display:inline-block}

/* ---------- comparison table ---------- */
.cmp{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.cmp th,.cmp td{padding:.72rem .9rem;border-bottom:1px solid var(--line-soft);font-size:.88rem}
.cmp thead th{background:var(--surface-2);color:var(--ink-3);font-size:.72rem;font-weight:680;
  letter-spacing:.07em;text-transform:uppercase;text-align:center;white-space:nowrap}
.cmp thead th:first-child{text-align:left}
.cmp tbody th{text-align:left;font-weight:550;color:var(--ink-2)}
.cmp td{text-align:center;color:var(--ink-2)}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp .yes{color:var(--blue);font-weight:700}
.cmp .no{color:var(--ink-3)}
.cmp .feat{background:#F7FAFF}
.cmp caption{caption-side:top;text-align:left;padding:0 0 .9rem;color:var(--ink-3);font-size:.85rem}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:2.2rem;
  align-items:start}
@media(max-width:920px){.contact-grid{grid-template-columns:minmax(0,1fr);gap:1.6rem}}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.83rem;font-weight:600;color:var(--navy);margin-bottom:.35rem}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:.92rem;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:.6rem .75rem;
  box-shadow:var(--shadow-sm);transition:border-color .12s, box-shadow .12s}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}
.field .hint{font-size:.78rem;color:var(--ink-3);margin:.3rem 0 0}
.emailbox{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;background:var(--blue-wash);
  border:1px solid #D6E4FD;border-radius:var(--radius);padding:1rem 1.15rem}
.emailbox a{font-weight:640;font-size:1.02rem}

/* ---------- legal layout ---------- */
.legal-grid{display:grid;grid-template-columns:216px minmax(0,1fr);gap:2.4rem;align-items:start}
@media(max-width:900px){.legal-grid{grid-template-columns:minmax(0,1fr);gap:1.4rem}}
.legal-nav{position:sticky;top:78px}
@media(max-width:900px){.legal-nav{position:static;border:1px solid var(--line);
  border-radius:var(--radius);padding:1rem 1.1rem;background:var(--surface)}}
.legal-nav h4{font-size:.73rem;font-weight:680;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:.6rem}
.legal-nav a{display:block;font-size:.86rem;color:var(--ink-2);padding:.3rem 0 .3rem .7rem;
  border-left:2px solid var(--line-soft);text-decoration:none;line-height:1.4}
.legal-nav a:hover{color:var(--blue);border-left-color:var(--blue)}
.legal-nav .sep{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line-soft)}
.legal-body{max-width:800px}
.legal-body > *{max-width:100%}
.legal-body h2{scroll-margin-top:86px}
.updated{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--ink-3);
  background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.3rem .75rem}

/* ---------- coverage ---------- */
.covbars{display:flex;flex-direction:column;gap:.75rem}
.covrow{display:grid;grid-template-columns:190px minmax(0,1fr) 92px;gap:.8rem;align-items:center;
  font-size:.87rem}
@media(max-width:620px){.covrow{grid-template-columns:130px minmax(0,1fr) 72px}}
.covrow .lab{color:var(--ink-2);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.covrow .track{height:20px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.covrow .fill{height:100%;background:var(--blue);border-radius:5px}
.covrow .fill.alt{background:var(--navy)}
.covrow .v{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--navy);
  font-weight:620}

/* select styling applies everywhere, not just inside .filters */
.rsort select,.fside select,.field select{
  font:inherit;font-size:.87rem;color:var(--ink-2);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-xs);padding:.45rem 2rem .45rem .7rem;
  appearance:none;box-shadow:var(--shadow-sm);cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 8l3-3.5' fill='none' stroke='%236B7F99' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .55rem center;background-size:12px;
}
.field select{font-size:.92rem;padding:.6rem 2rem .6rem .75rem;border-radius:var(--radius-sm)}
.rsort select:hover,.fside select:hover{border-color:#C3D2E6}

/* keep money columns on one line */
.rtable td.n,.rtable th.n{white-space:nowrap}
/* long / mis-parsed category names must not blow out the sidebar */
.fopt > span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fopt{min-width:0}

/* price distribution: chart + spread summary */
.distgrid{display:grid;grid-template-columns:minmax(0,1fr) 168px;gap:1.6rem;align-items:start;
  margin-top:.8rem}
@media(max-width:780px){.distgrid{grid-template-columns:minmax(0,1fr)}}
.spread{border-left:1px solid var(--line-soft);padding-left:1.3rem}
@media(max-width:780px){.spread{border-left:0;border-top:1px solid var(--line-soft);
  padding-left:0;padding-top:1rem}}
.spread dl{margin:.7rem 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.4rem .8rem;
  font-size:.85rem}
.spread dt{color:var(--ink-3)}
.spread dd{margin:0;text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;
  color:var(--navy);font-weight:600}

/* collapsible filter panel */
.fside details > summary{list-style:none;cursor:default}
.fside details > summary::-webkit-details-marker{display:none}
.fside .fhead{display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding-bottom:.8rem;margin-bottom:.9rem;border-bottom:1px solid var(--line-soft)}
.fside .fclear{white-space:nowrap}
.fgroup-scroll{max-height:none}
@media(max-width:940px){
  .fside details > summary{cursor:pointer;position:relative;padding-right:1.6rem}
  .fside details > summary::after{content:"";position:absolute;right:.2rem;top:.35rem;width:9px;
    height:9px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);
    transform:rotate(45deg);transition:transform .15s ease}
  .fside details[open] > summary::after{transform:rotate(-135deg);top:.6rem}
  .fside details:not([open]) > summary .fhead{margin-bottom:0;padding-bottom:0;border-bottom:0}
  .fgroup-scroll{max-height:220px;overflow-y:auto;padding-right:.3rem}
}

/* collapsed filter summary should not keep its divider */
.fside details:not([open]) > summary.fhead{margin-bottom:0;padding-bottom:0;border-bottom:0}
/* keep brand and the auth actions on one row on narrow phones */
@media(max-width:520px){
  .site-head .brand .badge{display:none}
  .site-head .bar{gap:.5rem}
  .nav-cta{padding:.45rem .8rem;font-size:.85rem}
}

/* coverage status pills */
.pill.st-active{background:#E4F4EC;border-color:#C6E7D6;color:#0F7A5A}
.pill.st-limited{background:#FFF6E5;border-color:#F3E1BC;color:#9A6206}
.pill.st-planned{background:var(--surface-2);border-color:var(--line);color:var(--ink-3)}

/* fourth data series: FDOT */
:root{--series-4:#0E7C86}
.pill.s-fdot{background:#E3F4F5;border-color:#C2E4E7;color:#0B626A}

/* ============================================================
   Round 3 — mockup redesign
   ============================================================ */
/* This block used to redefine --maxw, --gut and the semantic colours after the
   token block, quietly overriding them: every page came out 1280px wide with a
   28px gutter instead of the bundle's 1240/40.  Only the tokens the bundle does
   not define survive here. */
:root{
  --maxw-wide:1420px;
  --foot:#132038;
  --foot-2:#1b2c4a;
}
.wrap.wide{max-width:var(--maxw-wide)}
@media(min-width:1100px){
  h1{font-size:clamp(2.1rem,1.3rem+2.4vw,3.15rem);letter-spacing:-.032em;font-weight:700}
  h2{font-size:clamp(1.4rem,1.05rem+1vw,1.85rem);letter-spacing:-.024em;font-weight:680}
}
.accent{color:var(--blue)}

/* ---------- header (redesign) ---------- */
.site-head{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
.site-head .bar{max-width:var(--maxw-wide);height:68px;gap:1rem}
.site-head .brand .logo{width:28px;height:28px}
.site-head .brand .mark{font-size:1.16rem;letter-spacing:-.035em}
.site-head .brand .badge{
  font-size:.66rem;letter-spacing:.06em;border-radius:999px;padding:.2rem .55rem;margin-left:.15rem;
}
.site-head .nav-main{
  margin:0 auto;display:flex;align-items:center;gap:.4rem;align-self:stretch;
}
.site-head .nav-main > a,.navdrop > button{
  position:relative;display:inline-flex;align-items:center;gap:.3rem;
  font:inherit;font-size:.93rem;font-weight:530;color:var(--ink-2);
  background:none;border:0;cursor:pointer;padding:.5rem .8rem;border-radius:var(--radius-xs);
}
.site-head .nav-main > a:hover,.navdrop > button:hover{color:var(--navy);background:var(--surface-2);text-decoration:none}
.site-head .nav-main > a[aria-current="page"]{color:var(--blue);font-weight:640;background:none}
.site-head .nav-main > a[aria-current="page"]::after{
  content:"";position:absolute;left:.8rem;right:.8rem;bottom:-23px;height:2px;background:var(--blue);
}
.navdrop{position:relative;display:inline-flex}
.navdrop > button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.navdrop:hover > button svg,.navdrop:focus-within > button svg{transform:rotate(180deg)}
.navdrop .menu{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(-4px);
  min-width:230px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:.45rem;
  opacity:0;visibility:hidden;transition:opacity .13s,transform .13s,visibility .13s;z-index:60;
}
.navdrop:hover .menu,.navdrop:focus-within .menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.navdrop .menu a{
  display:block;padding:.5rem .65rem;border-radius:var(--radius-xs);
  font-size:.89rem;font-weight:520;color:var(--ink-2);text-decoration:none;
}
.navdrop .menu a:hover{background:var(--surface-2);color:var(--navy)}
.navdrop .menu a small{display:block;font-size:.76rem;color:var(--ink-3);font-weight:450;margin-top:.1rem}
.site-head .nav-aux{margin-left:0;gap:.7rem}
.headsearch{position:relative;display:none}
@media(min-width:1180px){.headsearch{display:block}}
.headsearch input{
  width:270px;height:38px;padding:0 .8rem 0 2.2rem;font:inherit;font-size:.87rem;
  background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--ink);
}
.headsearch input::placeholder{color:var(--ink-3)}
.headsearch input:focus{outline:none;background:#fff;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}
.headsearch svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);
  width:15px;height:15px;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.site-head .nav-cta{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.05rem;border-radius:var(--radius-sm)}
.site-head .nav-cta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1000px){
  .nav-main{margin:0;order:3;width:100%;overflow-x:auto;gap:.1rem;padding-bottom:.15rem}
  .nav-main > a[aria-current="page"]::after{display:none}
  .navdrop .menu{left:0;transform:none}
  .navdrop:hover .menu,.navdrop:focus-within .menu{transform:none}
}

/* ---------- footer (dark) ---------- */
.site-foot{background:var(--foot);border-top:0;color:#AFC2DC;padding:3.2rem 0 2rem}
.site-foot .wrap{max-width:var(--maxw-wide)}
.site-foot .cols{grid-template-columns:1.6fr repeat(4,minmax(0,1fr));gap:2rem}
.site-foot h4{color:#fff;opacity:.62}
.site-foot a{color:#AFC2DC}
.site-foot a:hover{color:#fff}
.site-foot .brand .mark{color:#fff}
.site-foot .about p{color:#8FA6C5}
.foot-legal{border-top:1px solid rgba(255,255,255,.12);color:#7F97B8;max-width:92ch}
.foot-legal a{color:#AFC2DC;text-decoration:underline;text-underline-offset:2px}
.foot-legal a:hover{color:#fff}
.foot-legal{max-width:none}
.foot-legal > span{display:block;max-width:92ch}

/* ---------- hero (redesign) ---------- */
.hero-x{background:linear-gradient(180deg,#F2F6FD 0%,var(--bg) 62%);padding:3.4rem 0 3.6rem;
  border-bottom:1px solid var(--line-soft)}
.hero-x .hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:3.2rem;align-items:start}
@media(max-width:1060px){.hero-x .hero-grid{grid-template-columns:minmax(0,1fr);gap:2.4rem}}
.kicker{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 1rem}
.hero-copy h1{margin:0 0 1.1rem;max-width:14ch}
.hero-copy .lede{font-size:1.05rem;line-height:1.62;color:var(--ink-2);max-width:56ch;margin:0 0 1.7rem}
.sbox.xl{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:.45rem .45rem .45rem 1rem;box-shadow:var(--shadow);max-width:680px}
.sbox.xl .ico{width:19px;height:19px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.sbox.xl input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:.97rem;
  color:var(--ink);height:44px;outline:none}
.sbox.xl input::placeholder{color:var(--ink-3)}
.sbox.xl .btn{height:44px;padding:0 1.15rem;border-radius:9px;gap:.45rem;white-space:nowrap}
.sbox.xl .btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}
.trythis{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:1.05rem 0 0;
  font-size:.85rem;color:var(--ink-3)}
.trythis .chip{background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:.3rem .75rem;font-size:.82rem;color:var(--ink-2);text-decoration:none;font-weight:520}
.trythis .chip:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin-top:2.2rem;
  padding-top:1.7rem;border-top:1px solid var(--line)}
@media(max-width:760px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem .4rem}}
.tile{display:flex;align-items:center;gap:.7rem;padding-right:.6rem;border-right:1px solid var(--line-soft)}
.tile:last-child{border-right:0}
@media(max-width:760px){.tile:nth-child(2n){border-right:0}}
.tile .ti svg{width:26px;height:26px;fill:none;stroke:var(--blue);stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;opacity:.9;display:block}
.tile .tv{display:block;font-size:1.28rem;font-weight:700;color:var(--navy);letter-spacing:-.02em;line-height:1.15}
.tile .tl{display:block;font-size:.78rem;color:var(--ink-3);margin-top:.1rem}

/* example-item card */
.exitem{background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-lg);padding:1.35rem 1.45rem 1.1rem}
.ex-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.55rem}
.ex-top .eyebrow{margin:0}
.ex-top a{font-size:.83rem;font-weight:580;display:inline-flex;align-items:center;gap:.25rem}
.ex-top a svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ex-name{font-size:1.24rem;margin:0 0 .3rem;letter-spacing:-.022em}
.ex-spec{font-size:.85rem;color:var(--ink-3);margin:0 0 1rem}
.ex-spec .sep{opacity:.5;margin:0 .1rem}
.ex-price{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.4rem}
.ex-price .big{font-size:2.25rem;font-weight:700;color:var(--navy);letter-spacing:-.035em;line-height:1}
.ex-price .u{font-size:1.02rem;color:var(--ink-3);margin-left:.35rem;font-weight:520}
.ex-cap{font-size:.8rem;color:var(--ink-3);margin:.45rem 0 0}
.verified{display:inline-flex;align-items:flex-start;gap:.45rem;background:var(--ok-wash);
  border:1px solid var(--ok-line);color:var(--ok);border-radius:9px;padding:.5rem .7rem;
  font-size:.78rem;font-weight:600;line-height:1.35;white-space:nowrap}
.verified svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;margin-top:.05rem}
.ex-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem;align-items:center;
  padding:.9rem 0 .5rem;border-top:1px solid var(--line-soft);margin-top:.9rem}
@media(max-width:520px){.ex-body{grid-template-columns:minmax(0,1fr)}}
.minihist{width:100%;height:auto;display:block;overflow:visible}
.ex-tbl{border-collapse:collapse;font-size:.81rem;border-left:1px solid var(--line-soft);padding-left:1rem}
.ex-tbl th{text-align:left;font-weight:480;color:var(--ink-3);padding:.24rem 1.1rem .24rem 1rem;white-space:nowrap}
.ex-tbl td{text-align:right;font-weight:640;color:var(--navy);padding:.24rem 0;white-space:nowrap}
.ex-src{display:flex;align-items:center;gap:.7rem;background:var(--surface-2);
  border-radius:10px;padding:.7rem .85rem;margin-top:.4rem;text-decoration:none!important}
.ex-src:hover{background:var(--blue-wash)}
.ex-src > svg:first-child{width:20px;height:20px;flex:none;fill:none;stroke:var(--blue);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.ex-src span{flex:1;min-width:0}
.ex-src strong{display:block;font-size:.87rem;color:var(--navy);font-weight:620}
.ex-src small{display:block;font-size:.77rem;color:var(--ink-3);margin-top:.05rem;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-src > svg:last-child{width:15px;height:15px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}

/* ---------- bands with a split heading ---------- */
.band{padding:3.2rem 0;border-bottom:1px solid var(--line-soft);background:var(--surface)}
.band.alt{background:var(--bg)}
.split-head{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,2.28fr);gap:2.6rem;align-items:start}
@media(max-width:940px){.split-head{grid-template-columns:minmax(0,1fr);gap:1.6rem}}
.split-head h2{margin:0;letter-spacing:-.028em}
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
@media(max-width:840px){.how{grid-template-columns:minmax(0,1fr);gap:1.4rem}}
.how-step{display:flex;gap:.85rem;padding:0 1.6rem;border-left:1px solid var(--line-soft)}
.how-step:first-child{padding-left:0;border-left:0}
@media(max-width:840px){.how-step{padding:0;border-left:0}}
.how-step .no{flex:none;width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;
  font-size:.85rem;font-weight:700;display:grid;place-items:center;margin-top:.05rem}
.how-step h3{font-size:1rem;margin:0 0 .3rem}
.how-step p{font-size:.88rem;color:var(--ink-2);margin:0}
.aud4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
@media(max-width:1040px){.aud4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.aud4{grid-template-columns:minmax(0,1fr)}}
.audcard{position:relative;display:block;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:1.1rem 1.1rem 1.9rem;text-decoration:none!important;
  box-shadow:var(--shadow-sm);transition:border-color .13s,box-shadow .13s,transform .13s}
.audcard:hover{border-color:#C6D8F8;box-shadow:var(--shadow);transform:translateY(-1px)}
.audcard .ic svg{width:22px;height:22px;fill:none;stroke:var(--blue);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;display:block;margin-bottom:.7rem}
.audcard h3{font-size:.99rem;margin:0 0 .35rem}
.audcard p{font-size:.85rem;color:var(--ink-2);margin:0}
.audcard .go{position:absolute;right:1rem;bottom:.9rem}
.audcard .go svg{width:15px;height:15px;fill:none;stroke:var(--ink-3);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.audcard:hover .go svg{stroke:var(--blue)}

/* ---------- trace band ---------- */
.trace{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr) minmax(0,1fr);
  gap:2.4rem;align-items:center}
@media(max-width:1100px){.trace{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stack{display:none}}
@media(max-width:760px){.trace{grid-template-columns:minmax(0,1fr)}}
.trace-copy h2{margin:0 0 .9rem;letter-spacing:-.028em}
.trace-copy p{font-size:.93rem;max-width:44ch}
.trace-list{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem}
.trace-list li{display:flex;gap:.85rem}
.trace-list svg{width:22px;height:22px;flex:none;fill:none;stroke:var(--blue);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;margin-top:.15rem}
.trace-list h3{font-size:.99rem;margin:0 0 .25rem}
.trace-list p{font-size:.86rem;color:var(--ink-2);margin:0}
.stack{position:relative;height:290px}
.sheet{position:absolute;background:#fff;border:1px solid var(--line);border-radius:6px;
  width:172px;padding:.7rem .75rem;box-shadow:var(--shadow-lg)}
.sheet b{display:block;font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-3);border-bottom:1px solid var(--line-soft);padding-bottom:.35rem;margin-bottom:.45rem}
.sheet .ln{display:grid;gap:4px}
.sheet .ln i{display:block;height:3px;border-radius:2px;background:var(--surface-3)}
.sheet.s3{top:6px;right:120px;transform:rotate(-7deg)}
.sheet.s2{top:26px;right:34px;transform:rotate(3deg)}
.sheet.s1{top:96px;right:110px;transform:rotate(-2deg)}
.stack-badge{position:absolute;left:0;bottom:12px;display:flex;align-items:center;gap:.6rem;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;
  box-shadow:var(--shadow-lg)}
.stack-badge svg{width:24px;height:24px;fill:none;stroke:var(--blue);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.stack-badge .num{display:block;font-size:1.22rem;font-weight:700;color:var(--navy);line-height:1.1}
.stack-badge small{display:block;font-size:.72rem;color:var(--ink-3);line-height:1.3;margin-top:.1rem}

/* numbers: proportional sans with tabular figures, per the redesign */
.num{font-family:var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.012em;
  font-feature-settings:"tnum" 1}
.hero-x .hero-grid{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr)}
.hero-copy h1{max-width:19ch}
.tiles{align-items:start}
.tile .tl{line-height:1.3}
.tile .tv{font-size:1.18rem}
.tile .ti svg{width:23px;height:23px}
.tile{gap:.6rem}
.btn svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:-2px}
.btn{display:inline-flex;align-items:center;gap:.45rem}
.audcard .ic svg,.trace-list svg{width:24px;height:24px;stroke-width:1.7}
.sheet.s3{right:150px}.sheet.s2{right:52px}.sheet.s1{right:118px}

/* ---------- search page (redesign) ---------- */
.shero{background:linear-gradient(180deg,#F2F6FD 0%,var(--bg) 100%);
  border-bottom:1px solid var(--line-soft);padding:2.6rem 0 2.2rem}
.shero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:2.4rem;align-items:center;margin-bottom:1.6rem}
@media(max-width:940px){.shero-grid{grid-template-columns:minmax(0,1fr);gap:1.4rem}}
.shero h1{margin:0 0 .5rem}
.shero .lede{font-size:1.02rem;color:var(--ink-2);margin:0;max-width:56ch}
.promo{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:1.05rem 1.15rem;box-shadow:var(--shadow-sm)}
.promo > svg{width:28px;height:28px;flex:none;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.promo h3{font-size:.97rem;margin:0 0 .25rem}
.promo p{font-size:.84rem;color:var(--ink-2);margin:0}
.promo .btn{flex:none;white-space:nowrap}
@media(max-width:560px){.promo{flex-wrap:wrap}}
.sbox.xl.wide{max-width:none}
.btn-dark{background:var(--navy);color:#fff;border:1px solid var(--navy)}
.btn-dark:hover{background:#17385F;color:#fff}
.shero .trythis{margin-top:.9rem}

/* sidebar */
.fside{width:268px}
.catgroup{max-height:none}
.catgroup .fopt.extra{display:none}
.catgroup.expanded .fopt.extra{display:flex}
.fmore{background:none;border:0;color:var(--blue);font:inherit;font-size:.83rem;font-weight:580;
  cursor:pointer;padding:.35rem 0 0}
.fmore:hover{text-decoration:underline}
.fopt .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.45rem;
  vertical-align:.02em}
.fhead .fclear-slot{margin-left:auto}
.fclear{background:none;border:0;color:var(--blue);font:inherit;font-size:.83rem;font-weight:580;cursor:pointer}
.fclear:disabled{color:var(--ink-3);cursor:default}
.fclear:not(:disabled):hover{text-decoration:underline}

/* results table */
.rtable.big th{font-size:.78rem;vertical-align:bottom}
.rtable.big .th-sub{display:block;font-size:.71rem;font-weight:450;color:var(--ink-3);
  text-transform:none;letter-spacing:0;margin-top:.1rem}
.rtable .pick{width:36px;padding-right:0}
.rtable .pick input{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;margin:0}
.rtable .it a{font-weight:600}
.rtable .it .sub{display:block;font-size:.74rem;color:var(--ink-3);margin-top:.1rem}
.rtable .per{display:block;font-family:var(--sans);font-size:.73rem;font-weight:450;color:var(--ink-3)}
.rtable .tr-cell{width:76px}
.spark{width:64px;height:22px;display:block;overflow:visible}
.spark polyline{fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.nospark{color:var(--ink-3);font-size:.85rem}
.dpill{display:inline-block;font-size:.73rem;font-weight:640;padding:.2rem .55rem;border-radius:999px;
  white-space:nowrap;border:1px solid transparent}
.dpill.d-deep{background:var(--ok-wash);border-color:var(--ok-line);color:var(--ok)}
.dpill.d-mod{background:var(--blue-wash);border-color:#D2E1FD;color:var(--blue-700)}
.dpill.d-thin{background:var(--warn-wash);border-color:var(--warn-line);color:var(--warn)}
.dpill.d-vthin{background:#FDECE6;border-color:#F6D6C9;color:#9B3A17}
.dpill.d-single{background:var(--surface-2);border-color:var(--line);color:var(--ink-3)}

/* compare */
.cmptray{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--navy);
  box-shadow:0 -6px 24px rgba(15,39,71,.22)}
.cmptray .wrap{display:flex;align-items:center;gap:.8rem;padding-top:.7rem;padding-bottom:.7rem}
.cmptray .ci svg{width:22px;height:22px;fill:none;stroke:#7FAAF5;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.cmptray strong{color:#fff;font-size:.9rem;white-space:nowrap}
.cmptray .cdiv{width:1px;height:22px;background:rgba(255,255,255,.2)}
.cchips{display:flex;gap:.45rem;flex:1;min-width:0;overflow-x:auto}
.cchip{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);color:#DDE7F5;border-radius:7px;
  padding:.28rem .5rem .28rem .65rem;font-size:.82rem;white-space:nowrap}
.cchip button{background:none;border:0;color:#AFC2DC;font-size:1rem;line-height:1;cursor:pointer;padding:0 .1rem}
.cchip button:hover{color:#fff}
.btn-ghost{background:transparent;color:#DDE7F5;border:1px solid rgba(221,231,245,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}
body.has-tray{padding-bottom:64px}
.cmp-panel{margin-bottom:1.2rem}
.cmp-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.cmp-head h2{margin:0;font-size:1.1rem}
.cmp-tbl{border-collapse:collapse;width:100%;font-size:.87rem}
.cmp-tbl th,.cmp-tbl td{text-align:left;padding:.55rem .8rem;border-bottom:1px solid var(--line-soft)}
.cmp-tbl thead th{font-size:.82rem;color:var(--navy);font-weight:660;vertical-align:bottom;
  border-bottom:1px solid var(--line)}
.cmp-tbl tbody th{color:var(--ink-3);font-weight:480;white-space:nowrap;width:1%}
.cmp-tbl td{color:var(--ink);font-variant-numeric:tabular-nums}
@media(max-width:940px){
  .fside{width:auto}
  .cmptray .cchips{display:none}
  .cmptray .cdiv{display:none}
}
.fopt .c{font-family:var(--sans);font-variant-numeric:tabular-nums}
.cmp-panel{scroll-margin-top:88px}
.cmptray .btn{white-space:nowrap;flex:none}
.rtable.big th,.rtable.big td{padding-left:.7rem;padding-right:.7rem}
.rtable.big .it{min-width:190px}
.rtable.big .it .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.rtable.big thead th{text-transform:none;letter-spacing:0;font-size:.84rem;font-weight:620;color:var(--navy)}
.rtable.big .th-sub{font-size:.73rem}
.rtable.big th:last-child,.rtable.big td:last-child{padding-right:1rem}
.rtable.big th:nth-child(2),.rtable.big td:nth-child(2){padding-left:.2rem}

/* ---------- item page (redesign) ---------- */
.crumbrow{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.lastobs{font-size:.82rem;color:var(--ink-3)}
.lastobs strong{color:var(--ink-2);font-weight:600}
.titlerow{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;
  flex-wrap:wrap;margin:.4rem 0 .5rem}
.titlerow h1{margin:0 0 .5rem}
.itags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0}
.itag{display:inline-block;background:var(--surface-2);border:1px solid var(--line);
  border-radius:999px;padding:.2rem .65rem;font-size:.78rem;color:var(--ink-2);font-weight:520}
.itags .sep{display:none}
.tacts{display:flex;gap:.5rem;flex-wrap:wrap}
.btn-sm{padding:.42rem .85rem;font-size:.85rem}
.statcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
@media(max-width:980px){.statcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.statcards{grid-template-columns:minmax(0,1fr)}}
.scard{display:flex;gap:.8rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow-sm)}
.scard .si{flex:none;width:34px;height:34px;border-radius:9px;background:var(--blue-wash);
  display:grid;place-items:center}
.scard .si svg{width:18px;height:18px;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.scard .k{font-size:.78rem;color:var(--ink-3);font-weight:520}
.scard .v{font-size:1.5rem;font-weight:700;color:var(--navy);letter-spacing:-.028em;line-height:1.2;
  margin:.1rem 0}
.scard .v small{font-size:.86rem;font-weight:500;color:var(--ink-3);letter-spacing:0}
.scard .v .dpill{font-size:.8rem;vertical-align:.12em}
.scard .s{font-size:.76rem;color:var(--ink-3)}
.dist-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1rem;margin-top:1.1rem}
@media(max-width:1000px){.dist-grid{grid-template-columns:minmax(0,1fr)}}
.item-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.4rem;
  align-items:start;margin-top:2.2rem}
@media(max-width:1100px){.item-grid{grid-template-columns:minmax(0,1fr)}}
.about{position:sticky;top:88px}
.about-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.5rem}
.about-head h2{font-size:1.02rem;margin:0}
.about-head svg{width:19px;height:19px;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.about > p{font-size:.85rem;color:var(--ink-2)}
.about-tbl{width:100%;border-collapse:collapse;font-size:.84rem}
.about-tbl th{text-align:left;font-weight:480;color:var(--ink-3);padding:.4rem 0;
  border-top:1px solid var(--line-soft);white-space:nowrap;vertical-align:top}
.about-tbl td{text-align:right;color:var(--ink);font-weight:580;padding:.4rem 0;
  border-top:1px solid var(--line-soft);word-break:break-word}
.about-tbl tr:first-child th,.about-tbl tr:first-child td{border-top:0}
.obs-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;margin-bottom:.7rem}
.obs-tools h2{font-size:1.06rem;margin:0}
.obs-tools h2 .dim{font-weight:480}
.obs-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.obs-find{position:relative;display:inline-block}
.obs-find svg{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:15px;height:15px;
  fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.obs-find input{width:240px;height:36px;padding:0 .8rem 0 2.1rem;font:inherit;font-size:.86rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink)}
.obs-find input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}
@media(max-width:560px){.obs-find input{width:100%}.obs-find{display:block;width:100%}}
#obstable td:nth-child(7){max-width:150px}
#obstable td:nth-child(8){max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- coverage charts ---------- */
.vbars{display:grid;grid-template-columns:repeat(var(--vbn),minmax(0,1fr));gap:.5rem;
  align-items:end;height:calc(var(--vbh) + 44px);padding-top:.4rem}
.vb{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.vb .vv{font-size:.76rem;font-weight:660;color:var(--navy);margin-bottom:.3rem;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.vb .vbar{width:100%;max-width:56px;background:var(--blue);border-radius:4px 4px 0 0;
  min-height:3px;display:block}
.vb:nth-child(even) .vbar{background:#4F86F0}
.vb .vl{font-size:.7rem;color:var(--ink-3);margin-top:.4rem;text-align:center;line-height:1.25;
  word-break:break-word}
.donut{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.dring{position:relative;flex:none}
.dring svg{width:170px;height:170px;display:block}
.dcentre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;pointer-events:none}
.dcentre span{font-size:1.25rem;font-weight:700;color:var(--navy);line-height:1.1}
.dcentre small{font-size:.75rem;color:var(--ink-3)}
.dlegend{list-style:none;margin:0;padding:0;flex:1;min-width:190px;display:grid;gap:.42rem}
.dlegend li{display:flex;align-items:center;gap:.5rem;font-size:.83rem;color:var(--ink-2)}
.dlegend i{width:9px;height:9px;border-radius:50%;flex:none}
.dlegend span{flex:1;min-width:0}
.dlegend b{font-weight:640;color:var(--navy)}
.dlegend em{font-style:normal;color:var(--ink-3);width:38px;text-align:right}
.unit-tbl{width:100%;border-collapse:collapse;font-size:.85rem}
.unit-tbl th{text-align:left;font-size:.73rem;font-weight:680;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-3);padding:.4rem .6rem;border-bottom:1px solid var(--line)}
.unit-tbl td{padding:.45rem .6rem;border-bottom:1px solid var(--line-soft);color:var(--ink-2)}
.unit-tbl .n{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- coverage cards ---------- */
.cvh{font-size:1.06rem;margin:0 0 .3rem}
.cvs{font-size:.83rem;color:var(--ink-3);margin:0 0 1rem}
.cvbody{margin-top:.2rem}
.cvf{font-size:.78rem;color:var(--ink-3);margin:1rem 0 0}
.cov-scroll{max-height:330px;overflow:auto;margin:-.2rem -.3rem;padding:0 .3rem}
.cov-tbl{width:100%;border-collapse:collapse;font-size:.83rem}
.cov-tbl thead th{position:sticky;top:0;background:var(--surface);text-align:left;
  font-size:.7rem;font-weight:680;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);
  padding:.35rem .4rem;border-bottom:1px solid var(--line);z-index:1}
.cov-tbl td{padding:.45rem .4rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
.cov-tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cov-tbl .sub{display:block;font-size:.72rem;color:var(--ink-3);font-weight:450;margin-top:.05rem}
.cov-tbl .pill{font-size:.7rem;padding:.12rem .45rem}
.grid.g3 > .card{display:flex;flex-direction:column}
.grid.g3 > .card .cvbody{flex:1}
.vb .vl{white-space:nowrap;word-break:normal;font-size:.72rem}

/* ---------- methodology ---------- */
.procband{background:linear-gradient(180deg,#EEF4FE,#F7FAFF)}
.psteps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
@media(max-width:1200px){.psteps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.psteps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.psteps{grid-template-columns:minmax(0,1fr)}}
.pstep{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1rem .95rem;box-shadow:var(--shadow-sm);position:relative}
.pstep .no{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--blue);color:#fff;font-size:.78rem;font-weight:700;margin-bottom:.6rem}
.pstep h3{font-size:.95rem;margin:0 0 .3rem}
.pstep p{font-size:.82rem;color:var(--ink-2);margin:0}
.pipeline{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.pstage{flex:1;min-width:190px}
.plab{font-size:.74rem;font-weight:680;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 .6rem;text-align:center}
.pdocs{position:relative;height:118px}
.pdoc{position:absolute;top:0;background:#fff;border:1px solid var(--line);border-radius:5px;
  width:98px;padding:.45rem .5rem;box-shadow:var(--shadow)}
.pdoc:nth-child(1){left:2%;transform:rotate(-6deg)}
.pdoc:nth-child(2){left:31%;transform:rotate(2deg);top:6px}
.pdoc:nth-child(3){left:60%;transform:rotate(-2deg);top:2px}
.pdoc b{display:block;font-size:.56rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-3);border-bottom:1px solid var(--line-soft);padding-bottom:.25rem;margin-bottom:.3rem}
.pdoc i{display:block;height:3px;border-radius:2px;background:var(--surface-3);margin-bottom:3px}
.parrow svg{width:22px;height:22px;fill:none;stroke:var(--blue);stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;display:block}
@media(max-width:860px){.parrow{display:none}}
.ptbl{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ptbl table{width:100%;border-collapse:collapse;font-size:.74rem}
.ptbl th{background:var(--surface-2);text-align:left;padding:.35rem .5rem;color:var(--ink-3);
  font-weight:620;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}
.ptbl td{padding:.35rem .5rem;border-top:1px solid var(--line-soft);color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.ptbl .n{text-align:right;font-variant-numeric:tabular-nums;color:var(--navy);font-weight:620}
.pchart{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .8rem}
.pct{display:block;font-size:.72rem;color:var(--ink-3);margin-bottom:.5rem}
.pbars{display:flex;align-items:flex-end;gap:5px;height:76px}
.pbars span{flex:1;background:var(--blue);border-radius:3px 3px 0 0;opacity:.85}
.pbars span:last-child{opacity:1}
.quad .card{display:flex;flex-direction:column}
.quad .qi{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;
  background:var(--blue-wash);margin-bottom:.7rem}
.quad .qi svg{width:18px;height:18px;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.quad h3{font-size:.98rem;margin:0 0 .4rem}
.quad p{font-size:.84rem;color:var(--ink-2)}
.ticks{list-style:none;margin:0 0 .9rem;padding:0;display:grid;gap:.32rem}
.ticks li{position:relative;padding-left:1.25rem;font-size:.83rem;color:var(--ink-2)}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:8px;height:5px;
  border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}
.updbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1.1rem;font-size:.85rem;
  color:var(--ink-2)}
.updbar svg{width:20px;height:20px;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.updbar strong{color:var(--navy)}
.updbar b{color:var(--navy);font-weight:640}
.updbar em{font-style:normal;color:var(--ink-3);margin-left:auto;font-size:.82rem}
.arw{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;
  stroke-linejoin:round;display:inline-block;vertical-align:-2px;flex:none}

/* ---------- pricing ---------- */
.pstats .tiles{margin-top:1.6rem;padding-top:1.4rem}
.verify-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.4rem 1.5rem;box-shadow:var(--shadow-sm)}
.verify-panel h2{font-size:1.28rem;margin:0 0 .5rem;letter-spacing:-.024em}
.verify-panel p{font-size:.88rem;color:var(--ink-2);margin:0 0 .9rem}
.pricegrid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:1rem;align-items:start}
@media(max-width:1000px){.pricegrid{grid-template-columns:minmax(0,1fr)}}
.verifcard{position:relative;overflow:hidden}
.verifcard .eyebrow{margin-bottom:.4rem}
.vprice{margin:.9rem 0 1rem}
.vprice .num{font-size:2.1rem;font-weight:700;color:var(--navy);letter-spacing:-.035em}
.vprice small{font-size:.95rem;color:var(--ink-3);margin-left:.3rem}
.vdocs{position:absolute;right:-26px;bottom:-20px;width:150px;height:110px;opacity:.5;pointer-events:none}
.vsheet{position:absolute;right:26px;bottom:24px;width:110px;background:#fff;
  border:1px solid var(--line);border-radius:5px;padding:.5rem .55rem;box-shadow:var(--shadow);
  transform:rotate(-7deg)}
.vsheet b{display:block;font-size:.55rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-3);border-bottom:1px solid var(--line-soft);padding-bottom:.25rem;margin-bottom:.3rem}
.vsheet i{display:block;height:3px;border-radius:2px;background:var(--surface-3);margin-bottom:3px}
.vsheet.v2{right:6px;bottom:8px;height:78px;transform:rotate(5deg);z-index:-1}
.faq-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;margin-bottom:1.1rem}
.faq-head h2{margin:0}
.faq-head a{font-size:.87rem;font-weight:560}
.faq2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;align-content:start}
@media(max-width:860px){.faq2{grid-template-columns:minmax(0,1fr)}}
.faq2 details{height:fit-content}
.verifcard > *{position:relative;z-index:1}
.vdocs{z-index:0;right:-34px;bottom:-30px}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:1.4rem;
  align-items:start}
@media(max-width:940px){.contact-grid{grid-template-columns:minmax(0,1fr)}}
.emailbox{display:flex;align-items:flex-start;gap:.9rem;background:var(--blue-wash);
  border:1px solid #D2E1FD;border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1.1rem}
.emailbox .eb-ic{flex:none;width:40px;height:40px;border-radius:10px;background:#fff;
  display:grid;place-items:center}
.emailbox .eb-ic svg{width:20px;height:20px;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.emailbox a{font-size:1.16rem;font-weight:660;color:var(--navy);letter-spacing:-.02em}
.emailbox a:hover{color:var(--blue)}
.topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
@media(max-width:600px){.topics{grid-template-columns:minmax(0,1fr)}}
.topic{position:relative;display:flex;gap:.7rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:.95rem 1.9rem .95rem 1rem;box-shadow:var(--shadow-sm)}
.topic .ti{flex:none;width:32px;height:32px;border-radius:9px;background:var(--blue-wash);
  display:grid;place-items:center}
.topic .ti svg{width:17px;height:17px;fill:none;stroke:var(--blue);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:block}
.topic h3{font-size:.92rem;margin:0 0 .2rem}
.topic p{font-size:.82rem;color:var(--ink-2);margin:0}
.topic > svg:last-child{position:absolute;right:.7rem;top:1.15rem;width:14px;height:14px;fill:none;
  stroke:var(--ink-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.faq-block{margin-top:1.4rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.2rem 1.3rem;box-shadow:var(--shadow-sm)}
.faq-block .faq-head h2{font-size:1.1rem}
.statstrip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.2rem 1.4rem;box-shadow:var(--shadow-sm)}
.statstrip .tiles{margin:0;padding:0;border-top:0}
@media(max-width:1000px){
  /* the dropdown panel cannot be positioned sanely inside the scrolling nav row;
     these links remain available in the footer */
  .navdrop{display:none}
}
@media(max-width:1000px){.site-foot .cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}}
@media(max-width:560px){.site-foot .cols{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1000px){
  .site-head .bar{height:auto;padding-top:.55rem;padding-bottom:.55rem;flex-wrap:wrap;row-gap:.45rem}
  .nav-aux{margin-left:auto;order:2}
  .brand{order:1}
  .nav-main{order:3}
}

/* ---------- responsive re-assertions (must stay last) ---------- */
@media(max-width:1060px){
  .hero-x .hero-grid{grid-template-columns:minmax(0,1fr);gap:2rem}
  .hero-x .hero-aside{display:block}
  .hero-copy h1{max-width:none}
}
@media(max-width:940px){
  .shero-grid{grid-template-columns:minmax(0,1fr)}
  .split-head{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem .4rem}
  .trace{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
  .titlerow{gap:.8rem}
  .exitem{padding:1.1rem}
  .ex-price{flex-wrap:wrap}
  .band{padding:2.4rem 0}
  .shero{padding:2rem 0 1.8rem}
  .hero-x{padding:2.2rem 0 2.4rem}
}

/* ---------------------------------------------------------- gated sections */
/* Signed-out visitors see the item name, its category, the median and how many
   observations sit behind it. Everything below that is injected server side once a
   session cookie is present, so the locked markup is what the asset server holds. */
.lockpanel{
  display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:14px;background:var(--card);
  padding:1.15rem 1.25rem;box-shadow:var(--shadow-sm)
}
.lockpanel .lockmark{
  flex:0 0 auto;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  background:#DCEBE2;color:var(--blue)
}
.lockpanel .lockmark svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}
.lockpanel .lockbody{flex:1 1 17rem;min-width:0}
.lockpanel h3{font-size:1rem;margin:0;letter-spacing:-.01em}
.lockpanel p{margin:.22rem 0 0;color:var(--muted);font-size:.87rem;max-width:56ch}
.lockpanel .lockacts{display:flex;gap:.5rem;flex-wrap:wrap;flex:0 0 auto}
@media(max-width:560px){.lockpanel .lockacts{width:100%}.lockpanel .lockacts .btn{flex:1 1 auto}}
.lockcards{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1rem
}
@media(max-width:980px){.lockcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.lockcards{grid-template-columns:minmax(0,1fr)}}
.lockcards .scard .v.locked{
  color:var(--muted);font-size:1.05rem;font-weight:600;letter-spacing:-.01em
}
.lockcards .scard .v.locked a{color:var(--blue);text-decoration:none}
.lockcards .scard .v.locked a:hover{text-decoration:underline}

/* the account strip in the header */
.acct{display:flex;align-items:center;gap:.5rem}
.acct .who{
  font-size:.82rem;color:var(--muted);max-width:16ch;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap
}
@media(max-width:860px){.acct .who{display:none}}

/* sign-in / sign-up */
.authwrap{max-width:26rem;margin:0 auto;padding:2.6rem 0 4rem}
.authcard{
  border:1px solid var(--line);border-radius:16px;background:var(--card);
  padding:1.6rem 1.5rem;box-shadow:var(--shadow-sm)
}
.authcard h1{font-size:1.4rem;margin:0 0 .3rem;letter-spacing:-.02em}
.authcard .sub{color:var(--muted);font-size:.9rem;margin:0 0 1.2rem}
.authcard label{display:block;font-size:.82rem;font-weight:600;margin:.85rem 0 .3rem}
.authcard input{
  width:100%;padding:.62rem .7rem;border:1px solid var(--line);border-radius:9px;
  font:inherit;font-size:.93rem;background:var(--bg);color:var(--ink)
}
.authcard input:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.authcard .btn{width:100%;margin-top:1.1rem;justify-content:center}
.authcard .hint{color:var(--muted);font-size:.78rem;margin:.3rem 0 0}
.authcard .swap{text-align:center;font-size:.86rem;margin:1.1rem 0 0;color:var(--muted)}
.authmsg{
  margin:.9rem 0 0;padding:.6rem .7rem;border-radius:9px;font-size:.85rem;
  border:1px solid #F3C7C2;background:#FDF2F1;color:#8E2E22
}
.authmsg.ok{border-color:#BFE3C9;background:#F1FAF3;color:#215C34}
.authmsg[hidden]{display:none}
.rangelock{
  color:var(--blue);text-decoration:none;font-weight:600;font-size:.84rem;white-space:nowrap
}
.rangelock:hover{text-decoration:underline}
.scopeline{
  margin:.55rem 0 0;font-size:.84rem;color:var(--muted);
  border-left:2px solid var(--line);padding-left:.7rem
}


/* ============================================================
   Direction C — Ledger.  The serif carries the item name and the
   price; everything else stays in the sans.  Tabular columns keep
   the mono, which is what actually lines digits up in a table.
   ============================================================ */
.stat .v{font-family:var(--serif);font-weight:600;letter-spacing:-.012em}
.samp .mid .big{font-family:var(--serif);font-weight:600;letter-spacing:-.015em}
.plan .price{font-family:var(--serif);font-weight:600}
.rtable .r .med{font-family:var(--serif);font-weight:600}
.seg .val{font-family:var(--serif);font-weight:600}
.covrow .v{font-family:var(--serif);font-weight:600}
.spread dd{font-family:var(--serif);font-weight:600}


/* ---------- design bundle components ---------- */
/* Hubstake — single stylesheet. Token names are fixed; values are ours. */


/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.5 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--blue-600);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--blue-700)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
h1,h2,h3{margin:0;color:var(--navy);font-weight:600;letter-spacing:-.01em;text-wrap:balance}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0}
mark{background:var(--blue-wash);color:inherit;border-radius:2px;padding:0 1px}
.mono{font-family:var(--mono)}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.label{font:500 .75rem/1.3 var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.fine{font-size:.8125rem;line-height:1.45;color:var(--ink-3)}

/* ---------- header / footer ---------- */
.site-header{background:var(--navy);border-bottom:1px solid var(--navy)}
.site-header .wrap{display:flex;align-items:center;gap:24px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;color:var(--on-accent);text-decoration:none;font-weight:600;font-size:1.375rem;letter-spacing:-.03em}
.brand:hover{color:var(--on-accent)}
.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-xs);background:var(--blue);color:var(--on-accent);font-size:.9375rem;font-weight:700}
.brand-mark::after{content:"H"}
.header-search{flex:1;max-width:460px}
.header-search .field{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.06)}
.header-search .field input{color:var(--on-accent)}
.header-search .field input::placeholder{color:rgba(255,255,255,.55)}
.header-search .field .btn{background:transparent;border-left:1px solid rgba(255,255,255,.28);color:var(--on-accent)}
.header-search .field .btn:hover{background:rgba(255,255,255,.12)}
.nav{display:flex;align-items:center;gap:20px;margin-left:auto;font-size:.875rem}
.nav a:not(.btn){color:rgba(255,255,255,.78);text-decoration:none}
.nav a:not(.btn):hover{color:var(--on-accent)}
.account{display:flex;align-items:center;gap:8px}
.avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--blue);color:var(--on-accent);font:600 .6875rem/1 var(--sans);letter-spacing:.02em}
.site-footer{border-top:1px solid var(--navy);margin-top:0;padding:24px 0 40px;background:var(--navy)}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:.8125rem;color:rgba(255,255,255,.6)}
.site-footer nav{display:flex;gap:20px}
.site-footer a{color:rgba(255,255,255,.8);text-decoration:none}
.site-footer a:hover{color:var(--on-accent)}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:500 .9375rem/1 var(--sans);text-decoration:none;white-space:nowrap;cursor:pointer}
.btn:hover{background:var(--surface-2);color:var(--ink)}
.btn-primary{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}
.btn-primary:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--on-accent)}
.btn-sm{height:32px;padding:0 12px;font-size:.8125rem}
.btn-lg{height:48px;padding:0 22px;font-size:1rem}
.btn-block{width:100%}
.field{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}
.field input{flex:1;min-width:0;height:36px;padding:0 12px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.9375rem;outline:none}
.field input::placeholder{color:var(--ink-3)}
.field .btn{height:auto;border:0;border-radius:0}
.field--sm .btn{padding:0 12px;font-size:.8125rem;background:var(--surface-2);border-left:1px solid var(--line)}
.field--lg input{height:48px;font-size:1.0625rem;padding:0 16px}
.field--xl{border:1.5px solid var(--navy);border-radius:var(--radius);box-shadow:var(--shadow)}
.field--xl input{height:68px;padding:0 22px;font-size:1.25rem}
.field--xl .btn{padding:0 28px;font-size:1.0625rem}
select{height:34px;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23454a54' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--ink);font:inherit;font-size:.875rem;-webkit-appearance:none;appearance:none}
.tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--ink-2);font:500 .75rem/1 var(--sans);white-space:nowrap;vertical-align:middle}
.tag-warn{background:var(--warn-wash);border-color:var(--warn-line);color:var(--warn)}
.tag-ls{background:var(--navy);border-color:var(--navy);color:var(--on-accent);font-family:var(--mono);letter-spacing:.04em}

/* ---------- homepage ---------- */
.home{padding:0}
.hero-photo{position:relative;overflow:hidden;padding:88px 0 64px}
.hero-slides{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(13,20,32,.45),rgba(13,20,32,.9))}
.hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,rgba(13,20,32,.78) 0%,rgba(13,20,32,.55) 32%,rgba(13,20,32,.15) 62%,transparent 80%)}
.hero-inner{position:relative;z-index:2}
.home-search{max-width:860px}
.home-search h1{color:#fff}
.home-search .lede{margin:12px 0 28px;max-width:58ch;color:rgba(255,255,255,.78);font-size:1.0625rem}
.home-scope{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;font-size:.875rem;color:rgba(255,255,255,.72)}
.home-scope label{display:flex;align-items:center;gap:8px}
.home-scope select{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.32);color:#fff}
.field--xl{box-shadow:0 16px 34px rgba(0,0,0,.32);border-color:transparent}
.try{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;font-size:.875rem;color:rgba(255,255,255,.6)}
.try a{display:inline-flex;align-items:center;height:30px;padding:0 12px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.try a:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.stats-band{background:var(--blue-700)}
.stats-band .coverage{border:0;margin:0 auto;padding:20px var(--gut)}
.stats-band .coverage div+div{border-left-color:rgba(255,255,255,.22)}
.stats-band .coverage dt{color:rgba(255,255,255,.7)}
.stats-band .coverage dd{color:#fff}
.content-white{background:var(--surface)}
.coverage-note{margin-top:16px}
.promise{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:28px;list-style:none;font-size:.875rem;color:var(--ink-2)}
.promise li{display:flex;align-items:center;gap:8px}
.promise li::before{content:"";width:6px;height:6px;background:var(--blue);border-radius:1px}
.home-search h1{font-size:clamp(1.75rem,3.4vw,2.4375rem);line-height:1.15;letter-spacing:-.02em;max-width:22ch}
.coverage{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.coverage div{padding:0 20px 0 0}
.coverage div+div{padding-left:20px;border-left:1px solid var(--line-soft)}
.coverage dt{font-size:.9375rem;color:var(--ink-3)}
.coverage dd{margin:4px 0 0;color:var(--blue-700);font-size:1.875rem;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.example{margin-top:56px;padding-bottom:56px}
.example h2,.example>header a{color:var(--navy)}
.example>header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:16px}
.example>header h2{font-size:1.25rem}
.example-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.example-card>div{padding:24px 28px}
.example-card>div+div{border-left:1px solid var(--line-soft);background:var(--blue-wash)}
.example-card h3{font-size:1.125rem;margin:6px 0 16px}
.anno{display:block;margin-bottom:4px}
.ex-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0 20px}
.ex-row dd{margin:2px 0 0;font-weight:500;font-variant-numeric:tabular-nums}
.ex-source p{color:var(--ink-2);font-size:.9375rem;margin-bottom:16px}
.ex-source dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:0 0 20px;font-size:.875rem}
.ex-source dt{color:var(--ink-3)}
.ex-source dd{margin:0;font-variant-numeric:tabular-nums}

/* ---------- search results ---------- */
.search-top{background:var(--surface);border-bottom:1px solid var(--line);padding:20px 0}
.search-top .field{max-width:760px}
.results-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;padding-top:24px}
/* display:block is explicit because the retired search page left a
   `.filters{display:flex}` behind, which laid the Refine label beside the
   fieldsets instead of above them. */
.filters{display:block;position:sticky;top:16px;align-self:start}
.filters>.label{display:block;margin-bottom:16px;color:var(--navy)}
.filter-group{margin:0 0 16px;padding:0 0 16px;border:0;border-bottom:1px solid var(--line-soft)}
.filter-group legend{padding:0;margin-bottom:8px;font-size:.875rem;font-weight:600;color:var(--navy)}
.check{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.875rem;cursor:pointer}
.check input{width:16px;height:16px;margin:0;accent-color:var(--blue)}
.check .count{margin-left:auto;color:var(--ink-3);font-size:.8125rem;font-variant-numeric:tabular-nums}
.check input:checked+span{font-weight:500}
.filter-find{margin-bottom:6px}
.filter-find input{height:32px;font-size:.8125rem}
.more{display:inline-block;margin-top:4px;font-size:.8125rem}
.more-details{margin-top:4px}
.more-details summary{cursor:pointer;list-style:none}
.more-details summary::-webkit-details-marker{display:none}
.more-details summary::marker{content:""}
.more-open{display:none}
.more-details[open] .more-open{display:inline}
.more-details[open] .more-closed{display:none}
.more-details .more-list{display:flex;flex-direction:column;margin-top:4px}
.results-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:12px}
.results-count{font-size:.9375rem;color:var(--ink-2)}
.results-count strong{color:var(--navy);font-weight:600}
.sort{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:.875rem;color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-size:.8125rem}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border:1px solid var(--blue-ring);border-radius:999px;background:var(--blue-wash);color:var(--blue-700);text-decoration:none}
.chip:hover{border-color:var(--blue);color:var(--blue-700)}
.chip b{font-weight:500}
.chip .x{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:.875rem;line-height:1}
.chip:hover .x{background:var(--blue);color:var(--on-accent)}
.result-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.result-head,.result{display:grid;grid-template-columns:minmax(0,1fr) 120px 56px 84px;gap:16px;align-items:center;padding:0 20px}
.result-head{height:36px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.result-head span:nth-child(n+2),.result-price,.result-obs{text-align:right}
.result-list{list-style:none}
.result{position:relative;padding-top:14px;padding-bottom:14px}
.result+.result{border-top:1px solid var(--line-soft)}
.result:hover{background:var(--bg)}
.result-name{font-size:1rem;font-weight:500;line-height:1.35}
.result-name a{color:var(--navy);text-decoration:none}
.result-name a::after{content:"";position:absolute;inset:0}
.result:hover .result-name a{color:var(--blue-700);text-decoration:underline}
.result-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:3px;font-size:.8125rem;color:var(--ink-3)}
.result-price{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.rp{font-size:1.0625rem;font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.2}
.rp small{font-size:.75rem;font-weight:400;color:var(--ink-2)}
.result-unit{font:500 .8125rem var(--mono);color:var(--ink-2)}
.result-obs{font-size:.875rem;color:var(--ink-2);font-variant-numeric:tabular-nums}
.result-obs b{color:var(--ink);font-weight:500}
.result-obs.is-thin b{color:var(--warn);font-weight:600}
.pager{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;font-size:.875rem;color:var(--ink-2)}
.pager nav{display:flex;gap:6px}
.pager a,.pager span[aria-current]{display:grid;place-items:center;min-width:34px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-decoration:none}
.pager span[aria-current]{background:var(--navy);border-color:var(--navy);color:var(--on-accent)}

/* ---------- zero-result search state ---------- */
.empty-state{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:48px 40px;text-align:left;max-width:640px}
.empty-state h2{font-size:1.25rem;margin-bottom:10px}
.empty-state>p{color:var(--ink-2);font-size:.9375rem;max-width:56ch}
.empty-try,.empty-cats{margin-top:24px}
.empty-try-links,.empty-cat-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.empty-try-links a,.empty-cat-grid a{display:inline-flex;align-items:center;height:32px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;font-size:.875rem}
.empty-try-links a:hover,.empty-cat-grid a:hover{border-color:var(--blue);color:var(--blue-700)}
.empty-state .fine{margin-top:28px;padding-top:20px;border-top:1px solid var(--line-soft)}

/* ---------- single-observation item ---------- */
.single-note{margin-top:12px;padding:12px 14px;border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);color:var(--ink);font-size:.875rem}
.single-note strong{color:var(--warn)}
.single-only{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:200px;border:1px dashed var(--line);border-radius:var(--radius-sm);text-align:center;padding:24px}
.single-only .figure{font-size:2.25rem}
.single-only p{max-width:36ch;color:var(--ink-2);font-size:.875rem}

/* ---------- LOW CONFIDENCE (state A) — lives on the number itself ---------- */
.thin{position:relative;display:inline-block;padding:0 .18em;border-bottom:2px dashed var(--warn);background:repeating-linear-gradient(135deg,var(--warn-wash) 0 5px,transparent 5px 10px);color:var(--navy)}
.thin .approx{margin-right:.06em;color:var(--warn);font-weight:500}
.thin-flag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border:1px solid var(--warn-line);border-radius:var(--radius-xs);background:var(--warn-wash);color:var(--warn);font:600 .75rem/1 var(--sans);white-space:nowrap}
.thin-flag::before{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid currentColor}

/* ---------- item page ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:8px;padding:18px 0 0;font-size:.8125rem;color:var(--ink-3)}
.crumbs a{color:var(--ink-2)}
.crumbs span[aria-hidden]{color:var(--line)}
.item-head{padding:14px 0 24px}
.item-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;font-size:.8125rem;color:var(--ink-3)}
.item-head h1{font-size:clamp(1.5rem,2.7vw,2rem);line-height:1.2;letter-spacing:-.02em;max-width:30ch}
.item-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:10px;font-size:.875rem;color:var(--ink-2)}
.item-meta b{font-weight:500;color:var(--ink)}
.item-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;align-items:start}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.panel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:20px}
.panel-head h2{font-size:1rem}
.price-panel .price,.example-card .price,.single-only .price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:8px}
.price .figure,.single-only .figure{color:var(--navy);font-size:3.0625rem;font-weight:600;line-height:1.05;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.price .per{font:500 1rem var(--mono);color:var(--ink-2)}
.price .thin-flag{align-self:center;margin-left:4px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line-soft)}
.stats div{min-width:0}
.stats dt{font-size:.8125rem;color:var(--ink-3)}
.stats dd{margin:2px 0 0;font-size:1.0625rem;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.stats dd small{font-size:.8125rem;font-weight:400;color:var(--ink-3)}
.stats .is-thin dd{color:var(--warn);font-weight:600}
.price-panel .fine{margin-top:18px}

/* range bar: --l/--m/--r are server-computed % positions */
.range{position:relative;height:58px;margin:22px 0 4px}
.range-track{position:absolute;left:0;right:0;top:15px;height:4px;border-radius:2px;background:var(--surface-3)}
.range-iqr{position:absolute;top:8px;left:var(--l);width:calc(var(--r) - var(--l));height:18px;border:1.5px solid var(--blue);border-radius:var(--radius-xs);background:var(--blue-wash)}
.range-med{position:absolute;top:2px;left:var(--m);width:3px;height:30px;margin-left:-1.5px;border-radius:1px;background:var(--navy)}
.range-lab{position:absolute;top:36px;transform:translateX(-50%);font-size:.8125rem;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.range-lab b{font-weight:500;color:var(--ink-3);margin-right:4px;font-size:.75rem}
.range-lab.l{left:var(--l)} .range-lab.r{left:var(--r)}
.range.is-thin .range-iqr{border:1.5px dashed var(--warn);background:repeating-linear-gradient(135deg,var(--warn-wash) 0 5px,var(--surface) 5px 10px)}
.range-caption{font-size:.8125rem;color:var(--ink-3)}

/* thin explanation, attached directly under the figure */
.thin-why{margin-top:12px;padding:12px 14px;border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);color:var(--ink);font-size:.875rem}
.thin-why strong{color:var(--warn)}
.thin-why ul{list-style:none;display:grid;gap:4px;margin:8px 0 0}
.thin-why li{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}
.thin-why li b{color:var(--warn)}

/* histogram: each .bar gets --h */
.histo{position:relative;display:flex;align-items:flex-end;gap:2px;height:200px;margin-top:28px;border-bottom:1px solid var(--ink-3)}
.histo .bar{flex:1;height:var(--h);min-height:0;border-radius:2px 2px 0 0;background:var(--series-3)}
.histo .bar.in{background:var(--series-1)}
.histo .mark,.strip .mark{position:absolute;top:-22px;bottom:0;left:var(--x);border-left:1.5px dashed var(--series-2)}
.histo .mark span,.strip .mark span{position:absolute;top:0;left:6px;font-size:.75rem;font-weight:500;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
.histo .mark.q{border-left-color:var(--blue-700);border-left-style:dotted}
.histo .mark.q span{color:var(--blue-700);font-weight:400}
.histo .mark.q.l span{left:auto;right:6px}
.histo+.axis,.strip+.axis,figure .axis{position:relative;height:22px;margin-top:6px;font-size:.75rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
figure .axis span{position:absolute;left:var(--x);transform:translateX(-50%)}
figure .axis span:first-child{transform:none}
figure .axis span:last-child{transform:translateX(-100%)}
.panel-head .legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.8125rem;color:var(--ink-2);list-style:none}
.panel-head .legend li{display:flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;border-radius:2px;background:var(--series-3)}
.sw.in{background:var(--series-1)}
.sw.pt{border-radius:50%;background:var(--navy)}
.sw.hatch{border:1px dashed var(--warn);background:var(--warn-wash)}

/* strip plot for thin items: every observation drawn individually */
.strip{position:relative;height:120px;margin-top:28px;border-bottom:1px solid var(--ink-3)}
.strip-iqr{position:absolute;top:20px;bottom:0;left:var(--l);width:calc(var(--r) - var(--l));border:1px dashed var(--warn);border-bottom:0;background:repeating-linear-gradient(135deg,var(--warn-wash) 0 5px,transparent 5px 10px)}
.strip .dot{position:absolute;left:var(--x);bottom:var(--y);width:14px;height:14px;margin-left:-7px;border:2px solid var(--surface);border-radius:50%;background:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.strip .dot span{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:.6875rem;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.strip .mark{top:0}

/* observations table */
.obs{margin-top:40px}
.obs-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:14px}
.obs-head h2{font-size:1.25rem}
.obs-head p{margin-top:4px;color:var(--ink-2);font-size:.9375rem;max-width:62ch}
.obs-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.table-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.obs-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.875rem}
.obs-table caption{text-align:left}
.obs-table th{padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--ink-3);font:500 .75rem/1.25 var(--sans);text-transform:uppercase;letter-spacing:.05em;text-align:left;white-space:nowrap}
.obs-table td{padding:10px 14px;border-top:1px solid var(--line-soft);vertical-align:middle;font-variant-numeric:tabular-nums}
.obs-table tr:first-child td{border-top:0}
.obs-table tbody tr:hover td{background:var(--bg)}
.obs-table .r{text-align:right}
.obs-table .src-col{width:230px;padding-right:10px;position:sticky;right:0;background:var(--surface);box-shadow:-8px 0 8px -8px rgba(19,32,56,.1)}
.obs-table thead .src-col{background:var(--surface-2)}
.obs-table tbody tr:hover .src-col{background:var(--bg)}
.cell-sub{display:block;font-size:.75rem;color:var(--ink-3)}
.cell-price{font-size:.9375rem;font-weight:600;color:var(--navy)}
.delta{font-size:.8125rem}
.delta.up{color:var(--neg)} .delta.down{color:var(--pos)}
.contract{font:400 .8125rem var(--mono);color:var(--ink-2)}

/* THE SOURCE LINK — primary action on every row */
.src{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;border:1px solid var(--blue-ring);border-radius:var(--radius-sm);background:var(--blue-wash);color:var(--blue-700);text-decoration:none}
.src:hover{border-color:var(--blue);background:var(--blue);color:var(--on-accent)}
.src-doc{position:relative;flex:none;display:grid;place-items:end center;width:24px;height:30px;padding-bottom:3px;border:1.5px solid currentColor;border-radius:2px 7px 2px 2px;background:var(--surface);color:var(--blue-700);font:600 .5625rem/1 var(--mono)}
.src:hover .src-doc{color:var(--blue-700);border-color:var(--surface)}
.src-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.src-title{font-size:.8125rem;font-weight:600;line-height:1.2}
.src-file{overflow:hidden;font:400 .6875rem/1.2 var(--mono);text-overflow:ellipsis;white-space:nowrap;opacity:.9}
.src-go{flex:none;font-size:1rem;line-height:1}
.table-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:.875rem;color:var(--ink-2)}

/* ---------- LUMP SUM (state B) ---------- */
.price-panel.is-ls{padding-top:0;overflow:hidden}
.ls-band{display:flex;align-items:center;gap:10px;margin:0 -24px 20px;padding:12px 24px;background:var(--navy);color:var(--on-accent);font-size:.875rem;font-weight:500}
.ls-band .tag-ls{background:var(--surface);color:var(--navy);border-color:var(--surface)}
.ls-note{margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);font-size:.875rem;color:var(--ink-2)}
.ls-note strong{color:var(--navy)}
.bands{width:100%;margin-top:24px;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}
.bands caption{padding-bottom:8px;text-align:left;font-weight:600;color:var(--navy)}
.bands th{padding:6px 0;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:.75rem;font-weight:500;text-align:left}
.bands td{padding:8px 0;border-bottom:1px solid var(--line-soft)}
.bands .r{text-align:right}

/* ---------- signed-out: "behind this price" ---------- */
.unlock h2{font-size:1.25rem}
.unlock>p{margin-top:6px;color:var(--ink-2);font-size:.9375rem}
.manifest{list-style:none;display:grid;gap:0;margin:20px 0;border-top:1px solid var(--line-soft)}
.manifest li{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-soft)}
.manifest h3{font-size:.9375rem}
.manifest p{margin-top:2px;font-size:.8125rem;color:var(--ink-2)}
.manifest .pv{position:relative;height:44px;border-radius:var(--radius-xs);background:var(--surface-2)}
.manifest .pv-range::before{content:"";position:absolute;left:10px;right:10px;top:20px;height:3px;background:var(--surface-3)}
.pv-range::after{content:"";position:absolute;left:34%;width:28%;top:14px;height:14px;border:1.5px solid var(--blue);border-radius:2px;background:var(--blue-wash)}
.manifest .pv-histo{display:flex;align-items:flex-end;gap:2px;padding:6px 10px 0}
.pv-histo i{flex:1;height:var(--h);background:var(--series-3);border-radius:1px 1px 0 0}
.pv-histo i.in{background:var(--blue)}
.manifest .pv-rows{display:grid;gap:5px;align-content:center;padding:0 10px}
.pv-rows i{height:5px;border-radius:2px;background:var(--surface-3)}
.pv-rows i:nth-child(2){width:80%} .pv-rows i:nth-child(3){width:90%}
.manifest .pv-docs{display:flex;align-items:center;justify-content:center;gap:5px}
.pv-docs i{width:18px;height:24px;border:1.5px solid var(--blue);border-radius:1px 5px 1px 1px;background:var(--surface)}
.manifest li.key{margin:0 -12px;padding:14px 12px;border:1px solid var(--blue-ring);border-radius:var(--radius-sm);background:var(--blue-wash)}
.manifest li.key .pv{background:var(--surface)}
.unlock-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.unlock-cta span{font-size:.875rem;color:var(--ink-2)}
.unlock .fine{margin-top:12px}
.ghost{display:block;width:var(--w,70%);height:9px;border-radius:3px;background:var(--surface-3)}
.ghost.r{margin-left:auto}
.obs-table.is-ghost td{padding:14px}
.obs-table.is-ghost .src{pointer-events:none;border-style:dashed;background:var(--surface)}
.obs-table.is-ghost .src .ghost{background:var(--blue-ring)}
.ghost-fade td{opacity:.45}
.locked-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-top:1px solid var(--line);background:var(--surface-2);font-size:.9375rem;color:var(--ink-2)}
.locked-foot b{color:var(--navy);font-weight:600}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .item-grid{grid-template-columns:minmax(0,1fr)}
  .example-card{grid-template-columns:minmax(0,1fr)}
  .example-card>div+div{border-left:0;border-top:1px solid var(--line-soft)}
}
@media (max-width:1100px){
  .result-head,.result{grid-template-columns:minmax(0,1fr) auto}
  .result-price{align-items:flex-end}
  .result-unit,.result-obs{display:none}
  .result-head span:nth-child(2),.result-head span:nth-child(3),.result-head span:nth-child(4){display:none}
}
@media (max-width:860px){
  .results-layout{grid-template-columns:minmax(0,1fr);gap:20px}
  .filters{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 24px}
  .filters>.label,.filters>.btn{grid-column:1/-1}
  .coverage{grid-template-columns:repeat(2,minmax(0,1fr))}
  .coverage div:nth-child(3){padding-left:0;border-left:0}
  .coverage div:nth-child(n+3){border-top:1px solid var(--line-soft)}
  .header-search{display:none}
}
@media (max-width:640px){
  .result-head{display:none}
  .result{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
  .result-main{grid-column:1/-1}
  .result-price{flex-direction:row;align-items:center}
  .result-unit{display:none}
  .field--xl input{height:56px;font-size:1.0625rem;padding:0 16px}
  .field--xl .btn{padding:0 18px}
  .figure{font-size:2.4375rem}
  .nav a:not(.btn):not(.account){display:none}
  .manifest li{grid-template-columns:72px minmax(0,1fr)}
}

/* A component that sets display: overrides the browser default for [hidden].
   The header toggles account state with the attribute, so it has to win. */
[hidden]{display:none!important}

/* The gating sentinels wrap each panel; the grid must still see the panels. */
#g-cards,#g-dist{display:contents}

/* Hero.  One photo per pageview, chosen by the script on the homepage; this rule
   paints the first one so the band is never empty before the script runs. */
.hero-slide{
  background-color:#132038;
  background-image:url("/assets/img/hero-earthwork.webp");
  background-size:cover;background-position:center;
}

/* A table caption was overlapping the heading above it on the pricing page. */
table caption{caption-side:top;text-align:left;padding:0 0 10px;color:var(--ink-3);font-size:.8125rem;line-height:1.45}

/* 2. Coverage figures read as a row of headlines, so they centre. */
.stats-band .coverage{text-align:center}
.stats-band .coverage div{padding:0 20px}
.stats-band .coverage div+div{padding-left:20px}

/* With the coverage note gone, .example was the first child of .content-white and
   its top margin collapsed out of the white section, showing a strip of page grey
   under the stats band.  Pad instead of margin so the white starts immediately. */
.content-white .example{margin-top:0;padding-top:56px}
