/* Victoria indicators v2: mobile first, no JavaScript. Colours checked by scripts/check_contrast.py (WCAG AA). */
:root{
  --bg:#f5f4f0;--card:#ffffff;--text:#15181c;--muted:#474e57;--border:#c9cdd3;--link:#0a55a6;--focus:#8a4b00;
  --better-bg:#e2f2e6;--better-tx:#0b4a1d;--worse-bg:#fdebd2;--worse-tx:#6b3700;--flat-bg:#e7eaee;--flat-tx:#262c34;--mixed-bg:#e5ebf8;--mixed-tx:#1c3877;
  --chart:#24405f;--chart2:#a3480b;--chart3:#2c6b38;--chart4:#6d3d8f;--gridline:#c9cdd3;--cmp1:#5f6b78;--cmp2:#3d7375;--cmp3:#8a6a45;--elx:#a7adb5;
}
:root{color-scheme:light}
/* Dark colours: chosen with the switch (data-theme="dark" on <html>), or the device setting when no choice is saved.
   The two dark blocks must stay identical (scripts/check_contrast.py checks this). */
:root[data-theme="dark"]{color-scheme:dark;
  --bg:#101318;--card:#181d24;--text:#eef0f3;--muted:#bec5cf;--border:#3a424d;--link:#8fc4ff;--focus:#ffcc66;
  --better-bg:#133a22;--better-tx:#c3ebcf;--worse-bg:#4a3007;--worse-tx:#ffdfad;--flat-bg:#2b323b;--flat-tx:#e0e4ea;--mixed-bg:#202e57;--mixed-tx:#d0dbff;
  --chart:#9fc2ea;--chart2:#f2a65a;--chart3:#8fd19e;--chart4:#d6aef2;--gridline:#3a424d;--cmp1:#a3adb8;--cmp2:#8fbcc7;--cmp3:#c9a77f;--elx:#5d6672;}
@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;
  --bg:#101318;--card:#181d24;--text:#eef0f3;--muted:#bec5cf;--border:#3a424d;--link:#8fc4ff;--focus:#ffcc66;
  --better-bg:#133a22;--better-tx:#c3ebcf;--worse-bg:#4a3007;--worse-tx:#ffdfad;--flat-bg:#2b323b;--flat-tx:#e0e4ea;--mixed-bg:#202e57;--mixed-tx:#d0dbff;
  --chart:#9fc2ea;--chart2:#f2a65a;--chart3:#8fd19e;--chart4:#d6aef2;--gridline:#3a424d;--cmp1:#a3adb8;--cmp2:#8fbcc7;--cmp3:#c9a77f;--elx:#5d6672;}}
*{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:1.125rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;overflow-wrap:break-word}
.wrap{max-width:105rem;margin:0 auto;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}

.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a{color:var(--link);text-underline-offset:.15em}
a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--card);padding:.75rem 1rem;z-index:10}
.skip:focus{left:.5rem;top:.5rem}
header.site{background:var(--card);border-bottom:1px solid var(--border)}
.brand{margin:0;font-weight:700;font-size:1.125rem}
.brand a{color:var(--text);text-decoration:none;display:inline-flex;align-items:center;min-height:48px}
main{padding-top:.75rem;padding-bottom:2rem}
h1{font-size:1.6rem;line-height:1.2;margin:.4rem 0 .4rem}
h2{font-size:1.3rem;line-height:1.25;margin:1.75rem 0 .5rem}
h3{font-size:1.125rem;line-height:1.3;margin:0}
p{margin:.5rem 0}
.lead{font-size:1.125rem;color:var(--muted);margin:.25rem 0 .5rem;max-width:44rem}
.small{font-size:1rem;color:var(--muted)}
.tally{margin:.25rem 0 0;font-weight:700;font-size:1rem;display:flex;flex-wrap:wrap;gap:.1rem .9rem}
.better-tx{color:var(--better-tx)}.worse-tx{color:var(--worse-tx)}.flat-tx{color:var(--flat-tx)}.mixed-tx{color:var(--mixed-tx)}
.tally span{white-space:nowrap}

/* sticky theme nav */
.themenav{position:sticky;top:0;z-index:5;background:var(--bg);margin:.5rem calc(-1 * max(1rem,env(safe-area-inset-left)));padding:.25rem max(1rem,env(safe-area-inset-left));border-bottom:1px solid var(--border)}
.themenav ul{list-style:none;margin:0;padding:0;display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none}
.themenav a{display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;border:1px solid var(--border);border-radius:2rem;background:var(--card);text-decoration:none;font-weight:600;font-size:1rem;white-space:nowrap}
.tilebox[id],#h-more{scroll-margin-top:4rem}
.kicker{margin:0 0 .15rem;font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
/* tiles */
.tiles{display:grid;gap:.75rem;grid-template-columns:1fr;list-style:none;margin:.75rem 0 0;padding:0}
.tiles>li{min-width:0}
.tilebox{height:100%}
.tile{position:relative;background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.85rem 1rem .8rem;height:100%;display:flex;flex-direction:column}
.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.2rem .75rem;margin:.35rem 0 .1rem}
.row .big,.row .status{margin:0}
.tile:hover{border-color:var(--link)}
.tile:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.tile .label{font-size:1.125rem}
.tile .label a{color:var(--text);text-decoration:none}
.tile .label a::after{content:"";position:absolute;inset:0;border-radius:.9rem} /* whole tile is the tap target */
.tile .label a:focus-visible{outline:none}
.tile .label a::before{content:"›";float:right;color:var(--link);font-size:1.5rem;line-height:1;margin-left:.5rem}
.where{margin:0;font-size:1rem;color:var(--muted)}
.big{margin:.35rem 0 .1rem;line-height:1.1}
.num{white-space:nowrap}
.num{font-size:2.25rem;font-weight:800;letter-spacing:-.02em}
.unit{font-size:1rem;color:var(--muted);font-weight:600}
.status{display:inline-flex;align-items:center;gap:.45rem;margin:.35rem 0 .1rem;padding:.3rem .7rem .3rem .4rem;border-radius:2rem;border:2px solid currentColor;font-weight:700;font-size:1rem;white-space:nowrap;width:max-content}
.better{background:var(--better-bg);color:var(--better-tx)}.worse{background:var(--worse-bg);color:var(--worse-tx)}
.flat{background:var(--flat-bg);color:var(--flat-tx)}.mixed{background:var(--mixed-bg);color:var(--mixed-tx)}
.ico{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;border:2px solid currentColor;font-weight:800;line-height:1;font-size:1rem}
.since{margin:.15rem 0 0;font-size:1rem}
.note{margin:.15rem 0 0;font-size:1rem;color:var(--muted);font-style:italic}
.srcline{margin:.35rem 0 0;font-size:1rem;color:var(--muted)}
.tile .srcline{border-top:1px solid var(--border);padding-top:.35rem;margin-top:auto}
.tile .since{margin-bottom:.35rem}

/* more measures list */
.moremeasures ul{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--border);border-radius:.9rem}
.moremeasures li+li{border-top:1px solid var(--border)}
.moremeasures a{display:grid;grid-template-columns:1fr auto;grid-template-areas:"l v" "s s";gap:.1rem .75rem;padding:.7rem 1rem;min-height:48px;text-decoration:none;color:var(--text)}
.moremeasures a:hover .ml{text-decoration:underline}
.ml{grid-area:l;font-weight:600;color:var(--link)}.mv{grid-area:v;font-weight:700;text-align:right}.ms{grid-area:s;font-size:1rem;font-weight:600}

/* detail page */
.crumb{margin:.25rem 0 0}.crumb a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.detail .where{margin-bottom:.5rem}
.headline{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.9rem 1rem}
.headline .num{font-size:2.75rem}
.chart{margin:.5rem 0}
.plot{position:relative;color:var(--chart)}
.chart svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}
.chart .grid{stroke:var(--gridline);stroke-width:1.5}
.chart .ax{fill:var(--muted);font-size:16px}
.chart .vl{fill:var(--text);font-size:16px;font-weight:700;paint-order:stroke;stroke:var(--card);stroke-width:5px;stroke-linejoin:round}
.chart .pt{fill:var(--card);stroke:currentColor;stroke-width:3.5}
.chart .pt.on{fill:currentColor;r:9}
.chart .guide{stroke:var(--muted);stroke-width:2;stroke-dasharray:6 5}
.ichart.js{border-radius:.5rem}
.ichart.js:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.ichart.js svg{cursor:crosshair}
.tip{position:absolute;z-index:3;pointer-events:none;background:var(--text);color:var(--card);padding:.4rem .7rem;border-radius:.5rem;font-size:1rem;line-height:1.35;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.chart figcaption{margin-top:.4rem}
details.more{margin:.5rem 0 1rem}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--link)}
ul.plain{padding-left:1.2rem}ul.plain li{margin:.4rem 0}
.src{margin:.5rem 0;padding:.75rem .9rem;border:1px solid var(--border);border-radius:.6rem;background:var(--card);font-size:1rem}
.src div{display:grid;grid-template-columns:1fr;gap:0;padding:.3rem 0}
.src dt{font-weight:700;color:var(--muted)}.src dd{margin:0;overflow-wrap:anywhere}
.src a{display:inline-block;min-height:44px;line-height:44px}
.related .tiles{margin-top:.5rem}
.tile{padding:.75rem .9rem .7rem}
table.data{border-collapse:collapse;width:100%;font-size:1rem;margin:.5rem 0;background:var(--card)}
.data caption{text-align:left;font-weight:700;padding:.25rem 0}
.data th,.data td{border:1px solid var(--border);padding:.45rem .6rem;text-align:left;vertical-align:top}
.data thead th{background:var(--bg)}
.tablewrap{overflow-x:auto}
.data a{display:inline-block;padding:.65rem 0}
.props{padding-left:1.1rem}.props li{margin-bottom:1rem}
footer.site{border-top:1px solid var(--border);background:var(--card);padding:.75rem 0 max(1.5rem,env(safe-area-inset-bottom));margin-top:1rem}
.footlink{display:inline-flex;align-items:center;min-height:44px;font-weight:700}

/* detail two-column */
.detail{max-width:none}
.cols{display:block}
@media (min-width:37.5rem){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .moremeasures ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .moremeasures li+li{border-top:0}
  .moremeasures li{border-top:1px solid var(--border)}
  .moremeasures li:nth-child(-n+2){border-top:0}
  .src div{grid-template-columns:9rem 1fr;gap:.75rem}
  .src a{min-height:44px;line-height:1.5;padding:.65rem 0}
  h1{font-size:2rem}
}
@media (min-width:64rem){
  .wrap{padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right))}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
  .moremeasures ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .moremeasures li:nth-child(3){border-top:0}
  .themenav{position:static;border:0;margin:.5rem 0;padding:0}
  .hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 2rem;align-items:end}
  .hero h1{grid-column:1/-1}
  .cols{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:2.5rem;align-items:start}
  .sidecol>h2:first-child{margin-top:1.75rem}
}
@media (min-width:90rem){
  .tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media print{.skip{display:none}.tile{break-inside:avoid}}

/* area chips and legend */
.chip{display:inline-block;font-size:1rem;font-weight:600;color:var(--text);background:var(--bg);border:1px solid var(--border);border-left:4px solid var(--chart);border-radius:.4rem;padding:.05rem .5rem;line-height:1.5}
.tile .where{margin:.25rem 0 0}
.detail .where{display:flex;flex-wrap:wrap;gap:.25rem .6rem;align-items:center}
.detail .where a{display:inline-flex;align-items:center;min-height:44px}
h3.sub{font-size:1.05rem;margin:.9rem 0 .2rem}
.legend{margin:1rem 0 0;background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.25rem 1rem .5rem}
.legend ul{list-style:none;margin:.25rem 0;padding:0;display:grid;gap:.6rem}
.legend li{display:grid;gap:.2rem}
.legend li .chip{justify-self:start}
@media (min-width:64rem){.legend li{grid-template-columns:16rem 1fr;align-items:start}}
.moremeasures a{grid-template-areas:"l v" "c c" "s s"}
.mc{grid-area:c;margin:.15rem 0}

/* v4: calculated-here measures, multi-line charts, "not measured yet" tiles */
.calcbadge{display:inline-block;font-size:1rem;font-weight:700;color:var(--text);background:var(--bg);border:2px dashed var(--muted);border-radius:.4rem;padding:0 .45rem;line-height:1.5;margin-right:.4rem;white-space:nowrap}
.vs{font-size:1rem;color:var(--muted)}
.where .chip{margin:.1rem 0}
.tilebox{display:flex;flex-direction:column}
.tilebox>.tile{height:auto;flex:1}
.kidlink{margin:.35rem 0 0}
.kidlink a{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .3rem;min-height:44px;padding:.35rem .9rem;background:var(--card);border:1px solid var(--border);border-radius:.6rem;font-weight:600;font-size:1rem;text-decoration:none}
.kidlink a span:not(.calcbadge){text-decoration:underline;text-underline-offset:.15em}
.kidlink .calcbadge{font-size:1rem}
.chart .line.s0{stroke:var(--chart)}.chart .line.s1{stroke:var(--chart2)}.chart .line.s2{stroke:var(--chart3)}.chart .line.s3{stroke:var(--chart4)}
.chart .line{stroke:var(--chart)}
.mk{fill:var(--card);stroke-width:3}
.mk.s0{stroke:var(--chart)}.mk.s1{stroke:var(--chart2)}.mk.s2{stroke:var(--chart3)}.mk.s3{stroke:var(--chart4)}
.mk.on.s0{fill:var(--chart)}.mk.on.s1{fill:var(--chart2)}.mk.on.s2{fill:var(--chart3)}.mk.on.s3{fill:var(--chart4)}
.chart .pt.hit,.chart .pt.hit.on{fill:transparent;stroke:none}
.chart .grid.zero{stroke:var(--muted)}
.ctitle{font-weight:700;margin:1rem 0 .25rem}
.clegend{list-style:none;margin:.25rem 0 .5rem;padding:0;display:grid;gap:.3rem;font-size:1rem}
.clegend li{display:flex;align-items:center;gap:.5rem}
.clegend .sw{width:56px;height:20px;flex:none;overflow:visible}
.calcbox{margin:1.5rem 0 .5rem;padding:.25rem 1rem .75rem;background:var(--card);border:2px dashed var(--muted);border-radius:.9rem}
.calcbox h2{margin-top:.75rem}
.formula{font-weight:600;padding:.5rem .75rem;background:var(--bg);border-radius:.5rem}
.inputs{list-style:none;margin:.25rem 0;padding:0}
.inputs>li{margin:.5rem 0}
.inputs>li>p{margin:.25rem 0}
.gaps{margin-top:2rem}
.gaptile{background:var(--card);border:2px dashed var(--border);border-radius:.9rem;padding:.75rem .9rem;height:100%}
.gaptile h3,.gaptile h2{font-size:1.125rem;margin:.1rem 0 .3rem}
.gapspage{margin-top:0}
.gapbadge{display:inline-block;margin:.1rem 0 .3rem;padding:.1rem .6rem;border-radius:2rem;background:var(--flat-bg);color:var(--flat-tx);font-weight:700;font-size:1rem}
.gaptile p{font-size:1rem}
.ctx{border-left:4px solid var(--border);padding-left:.6rem}
.ctx a,.gaps .lead a{display:inline-block;min-height:44px;line-height:44px}
.multi .tip{white-space:normal;max-width:min(22rem,100%)}
.moremeasures a{grid-template-columns:1fr;grid-template-areas:"l" "v" "c" "s"}
.mv{text-align:left;font-weight:700}
.note.strong{font-style:normal;font-weight:700;color:var(--text)}

/* v5: public data that is not openly licensed; theme groups in "More measures" */
.pubbadge{display:inline-block;font-size:1rem;font-weight:700;color:var(--text);background:var(--bg);border:2px solid var(--muted);border-radius:.4rem;padding:0 .45rem;line-height:1.5;margin-right:.4rem;white-space:nowrap}
.moregroup{font-size:1.125rem;margin:1.25rem 0 .4rem;scroll-margin-top:4rem}
.moremeasures h3+ul{margin-bottom:.25rem}
.quotes q{font-style:italic}
.quotes li{font-size:1rem;overflow-wrap:anywhere}
@media (max-width:22rem){.pubbadge,.calcbadge{white-space:normal}}

/* v6: one status rule, change vs last year and five years, level-of-government tags and filter,
   sized chart variants, break markers and reference lines, compact phone list */
.status{margin:.3rem 0 .1rem}
.row{justify-content:flex-start;align-items:flex-end;gap:.2rem 1rem}
.spark{color:var(--chart);flex:none;margin-bottom:.35rem}
.changes{margin:.3rem 0 0;font-size:1rem;font-weight:600}
.extra{list-style:none;margin:.25rem 0 0;padding:0;font-size:1rem}
.extra li{margin:.1rem 0}
.govline{margin:.35rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.gov{display:inline-block;font-size:1rem;font-weight:600;color:var(--text);border:1px solid var(--muted);border-radius:2rem;padding:0 .55rem;line-height:1.5}
.mc .gov{margin-left:.25rem}
.govfilter{min-width:0;border:1px solid var(--border);border-radius:.9rem;background:var(--card);margin:.75rem 0 0;padding:.4rem .9rem .5rem}
.govopts{display:flex;flex-wrap:wrap;gap:.4rem}
.govfilter legend{font-weight:700;padding:0 .3rem;font-size:1rem}
.govfilter input{position:absolute;opacity:0;width:1px;height:1px}
.govfilter label{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 .9rem;border:1px solid var(--border);border-radius:2rem;background:var(--bg);font-weight:600;font-size:1rem;cursor:pointer}
.govfilter input:checked+label{background:var(--text);color:var(--card);border-color:var(--text)}
.govfilter input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}
.govfilter p{flex-basis:100%;margin:.2rem 0 0}
.govfilter p a{display:inline-block;min-height:44px;line-height:44px}
body:has(#gov-city:checked) :is(.govf>li,.govf2 li):not(.g-city),
body:has(#gov-region:checked) :is(.govf>li,.govf2 li):not(.g-region),
body:has(#gov-province:checked) :is(.govf>li,.govf2 li):not(.g-province),
body:has(#gov-federal:checked) :is(.govf>li,.govf2 li):not(.g-federal){display:none}
.scrollhint{display:none;margin:.15rem 0 0;font-size:1rem;color:var(--muted)}
@media (min-width:64rem){.themenav{position:relative}}
.themenav::after{content:"";position:absolute;right:0;top:0;bottom:0;width:2.5rem;pointer-events:none;background:linear-gradient(to right,transparent,var(--bg))}
.cq{container-type:inline-size;width:100%}
/* v7.5 (QA S-1): a box narrower than 340px shows a narrower drawing (290, or 250 under 290px), so chart text is never shrunk below 16px */
.chart .brk{stroke:var(--muted);stroke-width:2;stroke-dasharray:5 4}
.chart .brklab,.chart .reflab{fill:var(--muted);font-size:16px;font-weight:600;paint-order:stroke;stroke:var(--card);stroke-width:4px}
.chart .ref{stroke:var(--chart2);stroke-width:2;stroke-dasharray:8 5}
.overtime{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.25rem 1rem .5rem;margin-top:1rem}
.overtime h2{margin-top:.75rem}
.overtime .ctitle{margin-top:.5rem}
.detail .headline{display:grid;gap:.25rem 2rem}
.hnum .status{margin-top:.2rem}
.hmore .changes{margin-top:0}
@media (min-width:48rem){.detail .headline{grid-template-columns:auto minmax(0,1fr);align-items:start}}
@media (min-width:64rem){.themenav ul{flex-wrap:wrap}.themenav::after{display:none}}
@media (max-width:37.49rem){
  .scrollhint{display:block}
  .govfilter{padding:.2rem .6rem .4rem}
  .govopts{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:.35rem}
  .govfilter label{flex:none;padding:0 .7rem}
  .govfilter p{display:none}
  /* compact phone list: one row per measure (label; area; number, sparkline and status; change; source) */
  .tiles.home{gap:0;border:1px solid var(--border);border-radius:.9rem;overflow:hidden;background:var(--card)}
  .tiles.home>li+li{border-top:1px solid var(--border)}
  .tiles.home .tile{border:0;border-radius:0;padding:.55rem .85rem;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.6rem;align-items:center}
  .tiles.home .tile>*{grid-column:1/-1}
  .tiles.home .kicker,.tiles.home .since,.tiles.home .note,.tiles.home .extra,.tiles.home .kidlink,.tiles.home .govline{display:none}
  .tiles.home .label{font-size:1.0625rem}
  .tiles.home .where{margin:.1rem 0 0}
  .tiles.home .row{margin:.1rem 0 0;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem}
  .tiles.home .num{font-size:1.6rem}
  .tiles.home .spark{margin:0;width:64px;height:24px}
  .tiles.home .status{grid-column:1;margin:.15rem 0 0;padding:.1rem .55rem .1rem .25rem}
  .tiles.home .ico{width:1.3rem;height:1.3rem}
  .tiles.home .changes{grid-column:2;margin:.15rem 0 0;line-height:1.3}
  .tiles.home .srcline{border:0;padding-top:0;margin-top:.1rem}
  .tiles.home .tilebox[id]{scroll-margin-top:4.5rem}
}
.govnote{display:none;grid-column:1/-1;background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.5rem 1rem}
.govnote a{display:inline-block;min-height:44px;line-height:44px}
body:has(#gov-city:checked) .govnote.g-city,body:has(#gov-region:checked) .govnote.g-region,
body:has(#gov-province:checked) .govnote.g-province,body:has(#gov-federal:checked) .govnote.g-federal{display:block}

/* v6.1: light/dark switch in the header */
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.headacts{display:inline-flex;align-items:center;gap:.4rem;flex:none}
.themetoggle,.walltoggle{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;min-width:44px;padding:0 .8rem;margin:.25rem 0;
  font:inherit;font-size:1rem;font-weight:600;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:2rem;cursor:pointer;flex:none;text-decoration:none}
.themetoggle:hover,.walltoggle:hover{border-color:var(--link)}
.themetoggle:focus-visible,.walltoggle:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.wico{display:inline-block;width:1.1rem;height:1.1rem;flex:none;background:
  linear-gradient(currentColor,currentColor) 0 0 / 45% 45% no-repeat,
  linear-gradient(currentColor,currentColor) 100% 0 / 45% 45% no-repeat,
  linear-gradient(currentColor,currentColor) 0 100% / 45% 45% no-repeat,
  linear-gradient(currentColor,currentColor) 100% 100% / 45% 45% no-repeat}
.tico{display:inline-block;width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid currentColor;
  background:linear-gradient(90deg,currentColor 50%,transparent 50%)} /* half-filled circle: works in both modes */
[data-theme="dark"] .themetoggle .tico{background:linear-gradient(270deg,currentColor 50%,transparent 50%)}
html:not([data-theme]) .themetoggle{display:none} /* no JavaScript: the device setting applies */

/* v6.1: one compact badge row at the bottom of each tile (level of government, calculated here, public data) */
.tilefoot{margin-top:auto;border-top:1px solid var(--border);padding-top:.4rem}
.tile .tilefoot .srcline{border:0;padding-top:0;margin:.25rem 0 0}
.badges{margin:.35rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;font-size:1rem}
.tilefoot .badges{margin:0}
.badges .calcbadge,.badges .pubbadge,.badges .gov{margin:0;line-height:1.4;padding:0 .5rem;font-weight:600;font-size:1rem;border-radius:.4rem}
.badges .calcbadge{border-width:1.5px}
.badges .pubbadge{border-width:1.5px}
.mc .gov{white-space:nowrap}
@media (max-width:37.49rem){
  .tiles.home .tilefoot{border:0;padding-top:0;margin-top:.2rem}
  .tiles.home .badges .gov{display:none}  /* compact list: keep only the data badges */
  .tiles.home .badges:not(:has(.calcbadge,.pubbadge)){display:none}
}

/* v6.2: footer "Follow" row (plain links, inline icons) */
.follow{display:flex;flex-wrap:wrap;align-items:center;gap:.1rem .9rem;margin:.25rem 0}
.followlabel{font-weight:700;font-size:1rem}
.social{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;font-size:1rem;font-weight:600}
.social svg{flex:none}
.social:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:3px}

/* ===== v7 ===== */
/* G4: multi-line source links no longer get a 44px line box each (they were double-spaced on phones) */
.src a,.src div a{display:inline;min-height:0;line-height:inherit;padding:0}
.src dd{line-height:1.5}
/* header: wordmark, site links (Menu on phones), light/dark switch */
header.site .wrap{flex-wrap:nowrap}
.topnav{margin-left:auto;display:none}
.topnav ul,.menu ul{list-style:none;margin:0;padding:0}
.topnav ul{display:flex;gap:.25rem}
.topnav a,.menu a{display:inline-flex;align-items:center;min-height:44px;padding:0 .7rem;font-weight:600;text-decoration:none;border-radius:.4rem}
.topnav a:hover,.menu a:hover{text-decoration:underline}
.topnav a[aria-current],.menu a[aria-current]{text-decoration:underline;text-decoration-thickness:2px}
.menu{margin-left:auto;position:relative}
.menu summary{list-style:none;display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;border:1px solid var(--border);border-radius:2rem;font-weight:700;cursor:pointer;background:var(--card)}
.menu summary::-webkit-details-marker{display:none}
.menu nav{position:absolute;right:0;top:calc(100% + .35rem);z-index:20;background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:.4rem;min-width:15rem;box-shadow:0 6px 24px rgba(0,0,0,.18)}
.menu nav a{display:flex;width:100%}
@media (min-width:64rem){.topnav{display:block}.menu{display:none}}
.topnav a{white-space:nowrap}
@media (max-width:37.49rem){.themetoggle .tlabel,.walltoggle .tlabel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.themetoggle,.walltoggle{padding:0;justify-content:center;width:44px}}
/* direction chips */
.nolab{color:var(--muted);font-size:1rem;font-weight:600}
.dchip{display:inline-flex;align-items:center;gap:.25rem;padding:.05rem .55rem;border-radius:1rem;border:1.5px solid currentColor;font-size:1rem;font-weight:700;line-height:1.5;white-space:nowrap}
.dchip.nc{border-style:dashed}
.legend1{display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center;margin:.75rem 0;font-size:1rem}
.legend1 .lgtxt{color:var(--muted);flex-basis:100%}
.legend1 .lgtxt a{display:inline}
.legendstrip{display:none}
/* home */
.home main{padding-top:.25rem}
.hero h1{font-size:1.5rem;margin:.35rem 0 .15rem}
.lead1{margin:0 0 .5rem;color:var(--muted);font-size:1rem}
/* desktop direction cards (hidden on phones; the compact legend stays there) */
.dircards{display:none}
.dircard-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.dircard{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.85rem 1rem .95rem}
.dircard .dirchips{display:flex;flex-wrap:wrap;gap:.35rem .45rem;align-items:center;margin:0 0 .45rem}
.dircard p:last-child{margin:0;color:var(--muted);font-size:1rem;line-height:1.45}
.dirnote{margin:.6rem 0 0;color:var(--muted);font-size:1rem}
.dirnote a{display:inline}
.homegrid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"levels" "board" "cards";gap:.5rem}
.levels{grid-area:levels;border:0;margin:0;padding:0;min-width:0}
.levels legend{font-weight:700;color:var(--muted);margin-bottom:.35rem;padding:0}   /* brief v3.1 H6: the label shows above the buttons on phones too */
.lvopts{display:flex;flex-wrap:wrap;gap:.35rem}
.lvopts input{position:absolute;opacity:0;width:1px;height:1px}
.lvopts label{flex:1 1 30%;display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 .6rem;border:1px solid var(--border);border-radius:.6rem;background:var(--card);font-weight:700;font-size:1rem;cursor:pointer;white-space:nowrap}
.lvopts input:checked+label{background:var(--text);color:var(--bg);border-color:var(--text)}
.lvopts input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}
.lvnote{display:block;margin:.4rem 0 0}   /* brief v3.1 H6: the filter rule is shown on phones too */
.railthemes{display:none;grid-area:themes}
.board{grid-area:board;min-width:0}
.cards{grid-area:cards;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);margin-top:.5rem}
.card{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.85rem 1rem}
.card h2{margin:0 0 .35rem;font-size:1.15rem}
.ulist{list-style:none;margin:0;padding:0}
.ulist li{padding:.3rem 0;border-bottom:1px solid var(--border)}
.ulist li:last-child{border-bottom:0}
.ulist .ud{display:inline-block;font-weight:700;color:var(--muted);margin-right:.4rem}
.ulist.big li{padding:.5rem 0}
.srcs{columns:1}
/* compact rows (phone list; also related measures) */
.rows{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--border);border-radius:.9rem;overflow:hidden}
.rows>li+li{border-top:1px solid var(--border)}
.mrow{display:block;padding:.55rem .9rem .6rem;min-height:76px;color:var(--text);text-decoration:none}
.mrow:hover{background:var(--bg)}
.mrow:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:.6rem}
.r1{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}
/* v7.2: the name never truncates (short names are 22 characters or fewer); the unit wraps under the value first,
   and the value block moves to its own line only if even the value does not fit */
.r1{flex-wrap:wrap}
.rn{font-weight:700;font-size:1.0625rem;flex:none;white-space:nowrap}
.rv{flex:1 1 0;min-width:min-content;text-align:right;color:var(--muted);font-size:1rem;line-height:1.3}
.rv b{white-space:nowrap}
.rv b{color:var(--text);font-size:1.25rem;font-weight:800;letter-spacing:-.01em}
.r2{display:flex;align-items:center;gap:.5rem;margin-top:.3rem}
.ra{flex:1;min-width:0;color:var(--muted);font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r2 .spark{width:72px;height:24px;flex:none;color:var(--chart)}
.rows .govnote{display:none;padding:.75rem 1rem}
.homegrid:has(#gov-city:checked) .lv:not(.g-city),.homegrid:has(#gov-region:checked) .lv:not(.g-region),
.homegrid:has(#gov-province:checked) .lv:not(.g-province),.homegrid:has(#gov-federal:checked) .lv:not(.g-federal),
.homegrid:has(#gov-school:checked) .lv:not(.g-school){display:none}
.govnote{display:none}
.govnotes .govnote{margin:0 0 .6rem;background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.75rem 1rem}
/* v7.2: counts, headings and empty themes follow the level filter */
.lc{display:none}.lc.lc-all{display:inline}
.homegrid:has(#gov-city:checked) .govnote.g-city{display:block}
.homegrid:has(#gov-city:checked) .lc-all{display:none}.homegrid:has(#gov-city:checked) .lc-city{display:inline}
.homegrid:has(#gov-city:checked) .z-city,.homegrid:has(#gov-city:checked) table.nh-city{display:none}
.homegrid:has(#gov-region:checked) .govnote.g-region{display:block}
.homegrid:has(#gov-region:checked) .lc-all{display:none}.homegrid:has(#gov-region:checked) .lc-region{display:inline}
.homegrid:has(#gov-region:checked) .z-region,.homegrid:has(#gov-region:checked) table.nh-region{display:none}
.homegrid:has(#gov-province:checked) .govnote.g-province{display:block}
.homegrid:has(#gov-province:checked) .lc-all{display:none}.homegrid:has(#gov-province:checked) .lc-province{display:inline}
.homegrid:has(#gov-province:checked) .z-province,.homegrid:has(#gov-province:checked) table.nh-province{display:none}
.homegrid:has(#gov-federal:checked) .govnote.g-federal{display:block}
.homegrid:has(#gov-federal:checked) .lc-all{display:none}.homegrid:has(#gov-federal:checked) .lc-federal{display:inline}
.homegrid:has(#gov-federal:checked) .z-federal,.homegrid:has(#gov-federal:checked) table.nh-federal{display:none}
.homegrid:has(#gov-school:checked) .govnote.g-school{display:block}
.homegrid:has(#gov-school:checked) .lc-all{display:none}.homegrid:has(#gov-school:checked) .lc-school{display:inline}
.homegrid:has(#gov-school:checked) .z-school,.homegrid:has(#gov-school:checked) table.nh-school{display:none}
/* brief v3.1 H1: "Who decides what" block under the headline card */
.whod{margin:.75rem 0 1rem}
.whot th[scope=row]{font-weight:700}
.whot td,.whot th{vertical-align:top}
.whot .nt{color:var(--muted)}
.nogov{margin:.5rem 0}
.whoh{font-size:1.0625rem;margin:1.1rem 0 .4rem}
.whos{margin-top:1.5rem}
.all h2{margin:1.25rem 0 .5rem}
details.theme{background:var(--card);border:1px solid var(--border);border-radius:.75rem;margin:0 0 .4rem}
details.theme>summary{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:0 1rem;font-weight:700;cursor:pointer;list-style:none}
details.theme>summary::-webkit-details-marker{display:none}
details.theme>summary::after{content:"+";font-size:1.4rem;color:var(--link);margin-left:.75rem}
details.theme[open]>summary::after{content:"−"}
.cnt{color:var(--muted);font-weight:600;margin-left:auto}
details.theme .rows{border:0;border-top:1px solid var(--border);border-radius:0 0 .75rem .75rem}
.desk{display:none}
/* desktop scoreboard */
table.score{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:.9rem;font-size:1rem;margin:0 0 .5rem}
table.score th,table.score td{padding:.55rem .75rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border)}
table.score tbody tr:last-child>*{border-bottom:0}
table.score thead th{font-size:1rem;color:var(--muted);font-weight:700}
table.score tbody tr{position:relative}
table.score tbody tr:hover{background:var(--bg)}
table.score tbody th a{color:var(--text);font-weight:700;text-decoration:none;font-size:1.0625rem}
table.score tbody th a::after{content:"";position:absolute;inset:0}
table.score tbody th a:focus-visible{outline:none}
table.score tbody tr:focus-within{outline:3px solid var(--focus);outline-offset:-3px}
table.score .ta,table.score .tl .small,table.score td .small{display:block;color:var(--muted);font-weight:400;font-size:1rem}
table.score .tl b{font-size:1.2rem}
table.score .tt .spark{width:96px;height:30px;color:var(--chart)}
table.score .ts{color:var(--muted)}
table.score .srcl{position:relative;z-index:1;color:var(--link);display:inline-flex;align-items:center;min-height:44px}
table.score .tv{display:block;white-space:nowrap}
table.score .tl .tp{display:block}
table.score .rowlink{display:inline-block}
h3.grp{margin:1.25rem 0 .4rem;font-size:1.15rem;scroll-margin-top:1rem}
@media (min-width:64rem){
  .phone{display:none}.desk{display:block}table.desk{display:table}
  .hero h1{font-size:1.9rem}.lead1{font-size:1.125rem}
  .homegrid{grid-template-columns:15rem minmax(0,1fr);grid-template-areas:"levels board" "themes board" ". cards";grid-template-rows:auto 1fr auto;column-gap:1.5rem;row-gap:.75rem}
  .levels legend{position:static;width:auto;height:auto;clip:auto;font-weight:700;color:var(--muted);margin-bottom:.35rem}
  .lvopts{flex-direction:column;flex-wrap:nowrap}
  .lvopts label{justify-content:flex-start;padding:0 .85rem}
  .lvnote{display:block}
  .railthemes{display:block;align-self:start}
  .railh{font-size:1rem;color:var(--muted);margin:.5rem 0 .35rem}
  .railthemes ul{list-style:none;margin:0;padding:0}
  .railthemes a{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:0 .5rem;border-radius:.4rem;text-decoration:none;font-weight:600}
  .railthemes a:hover{background:var(--card)}
  .dircards{display:block;margin:0 0 1.15rem}
  .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:102.5rem){
  .homegrid{grid-template-columns:15rem minmax(0,1fr) 22rem;grid-template-areas:"levels board cards" "themes board cards";grid-template-rows:auto 1fr}
  .cards{grid-template-columns:1fr;align-self:start;margin-top:0}
}
/* measure page */
.meta{margin:.1rem 0 .5rem;color:var(--muted);font-size:1rem}
.mhead{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.9rem 1.15rem 1rem;margin:.35rem 0 1rem}
.mhead .big{margin:.25rem 0}
.mhead .num{font-size:2.6rem}
.mchip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0}
.mchip .dchip{font-size:1.0625rem;padding:.15rem .7rem}
.sentence{font-size:1.125rem;margin:.4rem 0 .25rem;max-width:44rem}
.share{display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;border:1px solid var(--border);border-radius:2rem;background:var(--card);color:var(--text);font:inherit;font-size:1rem;font-weight:700;cursor:pointer}
.share:focus-visible,.btn:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.overtime h2{margin-top:1rem}
.ctl{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 .5rem}
.seg{display:inline-flex;flex-wrap:wrap;gap:0;border:0;margin:0;padding:0}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{display:inline-flex;align-items:center;min-height:44px;padding:0 .8rem;border:1px solid var(--border);background:var(--card);font-weight:700;font-size:1rem;cursor:pointer;margin-left:-1px}
.seg label:first-of-type{border-radius:.6rem 0 0 .6rem;margin-left:0}.seg label:last-of-type{border-radius:0 .6rem .6rem 0}
.seg input:checked+label{background:var(--text);color:var(--bg);border-color:var(--text)}
.seg input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px;position:relative;z-index:1}
.cv{display:none}.cv.dflt{display:block}
@supports selector(:has(a)){
  .cbox .cv.dflt{display:none}
  .cbox:has(.rg-5:checked):has(.cm:not(:checked)) .cv-5-0,.cbox:has(.rg-5:checked):has(.cm:checked) .cv-5-1,.cbox:has(.rg-5:checked):has(.cm-x) .cv-5-x,
  .cbox:has(.rg-10:checked):has(.cm:not(:checked)) .cv-10-0,.cbox:has(.rg-10:checked):has(.cm:checked) .cv-10-1,.cbox:has(.rg-10:checked):has(.cm-x) .cv-10-x,
  .cbox:has(.rg-20:checked):has(.cm:not(:checked)) .cv-20-0,.cbox:has(.rg-20:checked):has(.cm:checked) .cv-20-1,.cbox:has(.rg-20:checked):has(.cm-x) .cv-20-x,
  .cbox:has(.rg-all:checked):has(.cm:not(:checked)) .cv-all-0,.cbox:has(.rg-all:checked):has(.cm:checked) .cv-all-1,.cbox:has(.rg-all:checked):has(.cm-x) .cv-all-x{display:block}
}
.refkey{display:flex;align-items:center;gap:.5rem;margin:.2rem 0;color:var(--muted);font-size:1rem;font-weight:600}
.refkey .sw{width:56px;height:20px;flex:none}
.refkey .ref{stroke:var(--chart2);stroke-width:2.5;stroke-dasharray:8 5}
.check{background:var(--card);border:1px solid var(--border);border-left:5px solid var(--link);border-radius:.9rem;padding:.85rem 1rem;margin:1rem 0}
.check h2{margin:0 0 .4rem;font-size:1.2rem}
.kv{margin:0}
.kv div{padding:.3rem 0;border-bottom:1px solid var(--border)}
.kv div:last-child{border-bottom:0}
.kv dt{font-weight:700;color:var(--muted);font-size:1rem}
.kv dd{margin:0;overflow-wrap:anywhere}
.btnrow{margin:.75rem 0 .25rem}
.btn{display:inline-flex;align-items:center;gap:.4rem;min-height:48px;padding:.5rem 1.1rem;border-radius:.6rem;background:var(--link);color:var(--bg);font-weight:800;text-decoration:none}
.btn:hover{text-decoration:underline}
.check .dl a{display:inline}
.keyfacts{display:none}
.plainw h2{margin-top:1.25rem}
details.acc{border-top:1px solid var(--border)}
details.acc:last-of-type{border-bottom:1px solid var(--border)}
details.acc>summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;cursor:pointer;list-style:none}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary h2{margin:0;font-size:1.15rem}
details.acc>summary::after{content:"+";font-size:1.5rem;color:var(--link);margin-left:1rem}
details.acc[open]>summary::after{content:"−"}
.accb{padding:0 0 1rem}
.note2{background:var(--bg);border-radius:.6rem;padding:.6rem .8rem;font-size:1rem}
.related h2,.mistake h2{font-size:1.2rem;margin:1.5rem 0 .5rem}
.mistake{margin-bottom:1rem}
@media (min-width:64rem){
  .mgrid{display:grid;grid-template-columns:minmax(0,60rem) minmax(21.25rem,26rem);grid-template-areas:"ma mr" "mb mrel";column-gap:2.5rem;justify-content:center;align-items:start}
  .ma{grid-area:ma}.mr{grid-area:mr}.mb{grid-area:mb}.mrel{grid-area:mrel}
  .mr .check{margin-top:.5rem}
  .keyfacts{display:block}
  .mrel .related h2{margin-top:.5rem}
  .measure .crumb{max-width:88.5rem;margin-left:auto;margin-right:auto}
}
/* footer */
.notgov{margin:.25rem 0 .1rem;font-size:1rem}
.footnav{list-style:none;margin:0 0 .25rem;padding:0;display:flex;flex-wrap:wrap;gap:0 .25rem}
.footnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 .6rem 0 0;font-weight:600}
/* about */
.prose{max-width:44rem}
.prose.wide{max-width:none}
.prose.wide>p,.prose.wide>ul{max-width:44rem}
.prose h2{margin-top:1.5rem}
.cite{background:var(--card);border:1px solid var(--border);border-radius:.6rem;padding:.6rem .8rem;font-size:1rem}
.seg.tog label{border-radius:.6rem;margin-left:0}
.seg.tog label::before{content:"";width:.9rem;height:.9rem;border:2px solid currentColor;border-radius:.2rem;margin-right:.45rem}
.seg.tog input:checked+label::before{background:currentColor;box-shadow:inset 0 0 0 2px var(--text)}
.r2 .spark{width:60px}
@media (max-width:63.99rem){
  .check .kv dt{display:inline;margin-right:.35rem}.check .kv dd{display:inline}
  .measure .crumb{display:none}
  .footnav{display:grid;grid-template-columns:1fr 1fr}
  details.acc>summary{min-height:48px}
  footer.site .follow{margin:.25rem 0}
}
@media (max-width:63.99rem){
  .measure h2,.plainw h2{margin-top:1rem}
  .related h2,.mistake h2{margin:1rem 0 .35rem}
  .overtime h2{margin:.75rem 0 .25rem}
  .footnav a{font-size:1rem}
  .check{margin:.75rem 0}
  .mhead .num{font-size:2.3rem}
}
@media (max-width:63.99rem){
  .measure main{padding-bottom:.5rem}
  details.acc>summary{min-height:44px}
  .mistake h2{display:inline;font-size:1.0625rem;margin:0 .35rem 0 0}
  .mistake p{display:inline}
  .mistake{margin:1rem 0 .5rem}
  .measure .overtime details.more>summary{min-height:44px}
}
table.score .tl b{white-space:nowrap}
table.score tbody th{width:18%}
table.score td.ts{min-width:9rem;max-width:14rem}
@media (min-width:64rem){table.score th,table.score td{padding-top:.45rem;padding-bottom:.45rem}}
table.score td .dchip{white-space:nowrap}
/* A1 (brief v3.1): no forced one-line cells on wide screens; the table must fit its column (it printed over the side cards at 1,900 px and wider) */
@media (min-width:90rem){table.score tbody th a{white-space:nowrap}}
table.score td .dchip{white-space:normal;display:inline-block;line-height:1.35;padding:.1rem .55rem}
table.score .tv{white-space:normal}
@media (min-width:64rem) and (max-width:79.99rem){
  .homegrid{grid-template-columns:12rem minmax(0,1fr);column-gap:1rem}
  table.score .tt,table.score thead th:nth-child(5){display:none}
  table.score th,table.score td{padding:.5rem .55rem}
}
details.theme>table.score{border:0;border-top:1px solid var(--border);border-radius:0 0 .75rem .75rem;margin:0}
details.theme{scroll-margin-top:1rem}
@media (max-width:37.49rem){
  /* phone measure pages: the chart heading is read by screen readers but not shown (the chart's own title says what it is) */
  .overtime>#h-time{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .check dl{margin:.25rem 0}
  .check dd{margin-bottom:.35rem}
  footer.site p{margin:.35rem 0}
}

/* v7.2: methods page contents, closed reference sections, stacked tables on phones; CMHC host note */
.toc{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.6rem 1rem;margin:.75rem 0 1rem}
.toc h2{font-size:1.1rem;margin:.2rem 0 .3rem}
.toc ol{margin:0;padding-left:1.4rem}
.toc a{display:inline-flex;align-items:center;min-height:44px}
details.mdet>summary h3{margin:0;font-size:1.0625rem}
details.mdet{border-bottom:1px solid var(--border)}
.hostnote{margin:.35rem 0 0}
.btnrow2{margin:.1rem 0 .25rem}
.btnrow2 a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.corrlist li{margin-bottom:.75rem}
@media (max-width:37.49rem){
  table.stack,table.stack tbody,table.stack tr,table.stack th,table.stack td{display:block;width:auto}
  table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.stack tr{border:1px solid var(--border);border-radius:.6rem;margin:0 0 .6rem;padding:.35rem .7rem;background:var(--card)}
  table.stack th,table.stack td{border:0;padding:.2rem 0;overflow-wrap:anywhere}
  table.stack td[data-label]::before{content:attr(data-label) ": ";font-weight:700;color:var(--muted)}
  table.stack .dchip{white-space:normal}
  .tablewrap:has(table.stack){overflow-x:visible}
}

/* brief v3.1 H10: election days. Thin lines in a neutral grey; the dash pattern names the level (no colours) */
.elx{stroke:var(--muted);stroke-width:2;fill:none;stroke-linecap:round}
.elx.e-city,.elx.e-local{stroke-dasharray:0.1 5}
.elx.e-provincial{stroke-dasharray:9 5}
.elx.e-federal{stroke-dasharray:9 4 0.1 4}
.elkey{list-style:none;margin:.4rem 0 0;padding:0;font-size:1rem}
.elkey li{display:flex;align-items:center;gap:.5rem;margin:.2rem 0}
.elkey svg.elsw{flex:none;width:16px!important;height:28px!important;max-width:16px;overflow:visible}
.elnote{margin:.3rem 0 0}
/* brief v3.1 C4: the 5-year reading on phone rows, and the pandemic-year tag */
.r3{display:block;margin-top:.2rem;font-size:1rem;color:var(--muted)}
.pbase{display:inline-block;margin-left:.35rem;padding:0 .35rem;border:1px dashed var(--muted);border-radius:.35rem;font-size:1rem;color:var(--muted);white-space:nowrap}
.tierb{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
ol.tiers li{margin:.4rem 0}
table.score .pbase{display:block;margin:.2rem 0 0;margin-left:0;white-space:normal;width:fit-content}

/* brief v3.1 F6: view switch (City of Victoria only) */
.vsw{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 .75rem}
.vsw button{min-height:44px;min-width:44px;padding:.5rem 1rem;font:inherit;font-size:1rem;border:2px solid var(--border);border-radius:2rem;background:var(--card);color:var(--text);font-weight:700;cursor:pointer}
.vsw button[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.vsw button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

/* brief v3.1 F23: by-municipality tables scroll inside their own box on small screens */
.tscroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.tscroll:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
table.muni{border-collapse:collapse;font-size:1rem;min-width:100%}
table.muni caption{text-align:left;font-weight:700;padding:.25rem 0 .5rem}
table.muni th,table.muni td{padding:.4rem .6rem;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}
table.muni th[scope="row"],table.muni thead th:first-child{text-align:left;white-space:normal;min-width:9rem}
.tcap{margin:.75rem 0 .25rem}
/* brief v3.1 E4 / J1: the data-requests table wraps text, and stacks on phones, so nothing is cut off */
table.muni.reqt th,table.muni.reqt td{text-align:left;white-space:normal;vertical-align:top}
@media (max-width: 40rem) {
  table.muni.reqt, table.muni.reqt tbody, table.muni.reqt tr, table.muni.reqt th, table.muni.reqt td { display: block; width: auto; min-width: 0; }
  table.muni.reqt thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.muni.reqt tr { padding: .5rem 0; border-top: 1px solid var(--border); }
  table.muni.reqt th[scope="row"], table.muni.reqt td { padding: .15rem 0; border-bottom: 0; }
  table.muni.reqt td::before { content: attr(data-label) ": "; font-weight: 600; }
}
/* brief v3.1 G4: inputs and results in two labelled groups inside each theme */
.tgrp{margin:.25rem 0 .75rem}
.tgh{font-size:1rem;font-weight:700;margin:.75rem 0 .25rem;color:var(--muted)}
.tgnone{margin:.25rem 0}
.inres h3{font-size:1rem;margin:1rem 0 .25rem}
/* brief v3.1 I2: the neutral count line under the home question */
.countline{font-size:1rem;margin:.25rem 0 0}
/* brief v3.1 J1: area names on phone rows wrap instead of being cut off ("Sout…") */
.r2{flex-wrap:wrap}
.ra{overflow:visible;text-overflow:clip;white-space:normal;min-width:6rem}
/* brief v3.1 I2: the count line spans the hero under the lead */
.hero .countline{grid-column:1/-1}
/* brief v3.1 J3: at 1,440 px and wider, "Latest" stays on two lines (value and unit, then period) and chips stay on one line */
/* J3: Latest already fits in two lines at 1,440 px (value and unit, then period); no nowrap rule needed */
@media (min-width:90rem){
}
.r2 .spark{margin-left:auto}
@media (min-width:90rem) and (max-width:100rem){table.score.head .tv,table.score.head .tl .tp{white-space:nowrap}}   /* J3: at 1,440 px the board is wide enough; wider screens add the side column */
/* ---- brief v3.2 (staging v7.6) ------------------------------------------------------------------ */
/* in-threshold chips carry no arrow; the change and its band are printed in words */
.dchip .cwin{font-weight:500}
.dchips{display:inline-flex;flex-wrap:wrap;gap:.3rem .35rem;align-items:center}
.chipnote,.agread{font-size:1rem;color:var(--muted);font-weight:600}
.r5{color:var(--muted);font-size:1rem;white-space:nowrap}
.pnote{margin:.4rem 0 0}
/* phone key rows (C1): fixed two lines; area under the name, never beside the chip */
.homegrid{grid-template-areas:"keys" "levels" "board" "cards"}
.keys{grid-area:keys;min-width:0}
.mrow{min-height:0;padding:.45rem .8rem .5rem}
.mrow{container-type:inline-size}
.mrow .r1{flex-wrap:nowrap;align-items:flex-start}
.rnb{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
.rnb .ra{flex:none;overflow:visible;white-space:normal;line-height:1.25;min-width:0}
.mrow .rn{line-height:1.3}
.mrow .rv{flex:0 0 auto;line-height:1.3}
.mrow .spark{display:none;width:72px;height:24px;flex:none;color:var(--chart);align-self:center;margin:0 .5rem 0 auto}
@container (min-width:28rem){.mrow .spark{display:block}}
.mrow .r2{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin-top:.25rem}
.mrow .r3{display:none}
.mrow .dchip{line-height:1.35;white-space:normal}
.lvexp{display:none}
.legend1{margin:.5rem 0}
@media (min-width:64rem){
  .lvexp{display:inline}
  .homegrid{grid-template-columns:15rem minmax(0,1fr);grid-template-areas:"levels keys" "themes board" ". cards";grid-template-rows:auto auto 1fr;column-gap:1.5rem;row-gap:.75rem}
  .cards{grid-template-columns:repeat(3,minmax(0,1fr));align-self:start;margin-top:.5rem}
  .levels{align-self:start}
  .railthemes{align-self:start}
  .dircards{margin:0 0 .5rem}
  .dirline{margin:0;color:var(--muted);font-size:1rem;line-height:1.4}
  .hero{margin-bottom:.25rem}
  .hero h1{margin:.2rem 0 .1rem;font-size:1.75rem}
  .lead1{margin:0 0 .15rem}
  /* desktop key rows (C2): 60 px or less */
  table.score.head th,table.score.head td{padding-top:.3rem;padding-bottom:.3rem;line-height:1.3}
  table.score.head .tv{display:inline;white-space:nowrap}
  table.score.head .tl .tp{display:inline;margin-left:.35rem;white-space:normal}
  table.score.head .tl .tp::before{content:"· "}
  table.score .tl b{font-size:1.125rem}
  table.score.head .tt .spark{height:26px}
  table.score.head .srcl{min-height:44px}
  table.score td .dchip{white-space:nowrap;line-height:1.3;padding:.05rem .5rem}
  table.score td .dchip .cwin{display:none}
  table.score td .dchips{flex-wrap:wrap;gap:.15rem .3rem}
  table.score td.tdc{min-width:0}
  table.score.head td.t1 .small,table.score.head td.t5 .small{display:block}
}
@media (min-width:64rem) and (max-width:89.99rem){
  table.score.head .tl .tp{display:block;margin-left:0}
  table.score.head .tl .tp::before{content:none}
}
@media (min-width:64rem) and (max-width:89.99rem){table.score.head .tt,table.score.head thead th:nth-child(5){display:none}}
/* At 1,440 px the side column is back and there is room for Trend or Source, not both. Source stays on the measure page and returns here from 1,600 px. */
@media (min-width:90rem) and (max-width:99.99rem){
  table.score.head th:nth-child(7),table.score.head td.ts{display:none}
  table.score.head .tt .spark{width:80px;height:24px}
}
@media (min-width:64rem){table.score.head td.t1,table.score.head td.t5{min-width:8.5rem}table.score.head td.ts{min-width:0;max-width:10rem}}
@media (min-width:64rem){
  table.score td .dchips{flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:.15rem}
  table.score.head td.t1,table.score.head td.t5{min-width:10rem}
  table.score.head td.ts{max-width:none;min-width:9rem}
  table.score.head th[scope=row]{width:auto}
}
@media (min-width:64rem){table.score td .dchips .dchip{line-height:1.2;padding:0 .45rem}table.score.head th,table.score.head td{padding-top:.25rem;padding-bottom:.25rem}}
/* t110u: an in-threshold chip reads as one line of words, no arrow */
.dchip.flat,.dchip.mixed{display:inline-block}
details.legend1{margin:.5rem 0;display:block}
details.legend1>summary{min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--link);cursor:pointer}
@media (max-width:63.99rem){.ulist li:nth-child(n+4){display:none}.cards .srcs{display:none}}
@media (max-width:63.99rem){.leadarea{display:none}}
.rows.head .mrow{padding:.35rem .8rem .4rem}

/* brief v3.2 B3: who decides, one line on phones */
.whod summary{flex-wrap:wrap}
.whod .wholine{display:block;flex-basis:100%;font-size:1rem;color:var(--muted);margin-top:.15rem}
.whod .showall{color:var(--link);text-decoration:underline}
.whod[open] .showall{display:none}
.elx-l{margin-top:.5rem}
td.nod{display:none}
@media (min-width:48rem){td.nod{display:table-cell}}
.whod>summary h2{flex:1;order:1}
.whod>summary::after{order:2}
.whod .wholine{order:3}

/* brief v3.2 B4 / D1 / D2: jump menus and compact cards */
.toc{border:1px solid var(--border);border-radius:.5rem;padding:.5rem 1rem;margin:1rem 0;background:var(--card)}
.toc .tocx{font-size:1.125rem;margin:.25rem 0}
.toc2{columns:2 14rem;column-gap:1.5rem;margin:0}
.toc2 li{break-inside:avoid}
.toc2 a{display:inline-block;min-height:44px;line-height:44px}
.whocard{border-top:1px solid var(--border);padding:.5rem 0}
.whocard .whoh{font-size:1.05rem;margin:.25rem 0}
.wlist li{margin:.35rem 0;font-size:1rem}
.wlist .wl,.wlist .wd{color:var(--muted)}
.wmore>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--link);font-size:1rem}

/* brief v3.2 t111u: plain-words line for an index or a percentile */
.rplain{display:block;font-size:1rem;color:var(--muted);line-height:1.3}
.mrow .rplain{grid-column:1/-1;margin:.1rem 0 .15rem}
.plainl{margin:.1rem 0 .4rem;color:var(--muted);font-size:1rem}
/* brief v3.2 E1: on phones the source card keeps its first sentence and the link (the counts are on the methods page) */
@media (max-width:47.99rem){section.card[aria-labelledby="h-src"] p.small+ul+p.small{display:none}}
/* brief v3.1 J1 kept with the v3.2 two-line rows: the name never shrinks; the value column takes the rest, unit under the value */
.mrow .rnb{min-width:min-content;flex:0 1 auto}
.mrow .rv{flex:0 0 auto;min-width:0;text-align:right}
.mrow .rv .ru{display:block}
.mrow .rv b{line-height:1.1}
.mchip .dchip,.mchip .dchips{white-space:normal;max-width:100%}
.mchip .dchips{flex-wrap:wrap}
/* QA: 1,024 to 1,365 px, the key table fits its column: the source column moves to the measure page, the chip wraps */
@media (min-width:64rem) and (max-width:85.37rem){
  table.score th:nth-child(7),table.score td.ts{display:none}
  table.score .t1,table.score .t5{min-width:7rem}
  table.score .dchip{white-space:normal}
}
/* QA: below 1,280 px the side column goes under the key table, so the table has the full width */
@media (min-width:64rem) and (max-width:79.99rem){
  .homegrid{grid-template-columns:minmax(0,1fr);grid-template-areas:"keys" "levels" "themes" "board" "cards";grid-template-rows:auto}
}
.whoh a{display:inline-block;min-height:44px;line-height:44px}
/* brief v3.2 phone defect: table captions stay in view and wrap instead of scrolling sideways with a wide table */
@media (max-width:40rem){.tablewrap .data caption{position:sticky;left:0;max-width:calc(100vw - 4.2rem);white-space:normal}}

/* brief v3.2 t115u: chart rules. Two drawings: phones (chart box under 560px, at most 400px wide) and wide screens (560 to 720px). */
.ichart{max-width:45rem}
/* v8.2: four drawings (250, 290, 560 and 700 units wide), each shown only near its own width, so chart text renders at 16 to 19px and never smaller */
.plot.v-m,.plot.v-l,.plot.v-x{display:none}
.plot.v-s{max-width:400px}
.plot.v-m{max-width:340px}
.plot.v-x{max-width:740px}
@container (min-width:288px){.plot.v-s{display:none}.plot.v-m{display:block}}
@container (min-width:560px){.plot.v-m{display:none}.plot.v-l{display:block}}
@container (min-width:700px){.plot.v-l{display:none}.plot.v-x{display:block}}
.plot svg{display:block;width:100%;height:auto}
.chart .grid{stroke:var(--gridline);stroke-width:1}
.chart .line.rp{stroke-width:3px}.chart .line.rk{stroke-width:1.5px}.chart .line.rj{stroke-width:1.5px}
.chart .line.raw{stroke-width:1px;opacity:.45}
.chart .line.k0,.chart .dot.k0{stroke:var(--chart)}.chart .line.k1,.chart .dot.k1{stroke:var(--chart2)}.chart .line.k2,.chart .dot.k2{stroke:var(--chart3)}.chart .line.k3,.chart .dot.k3{stroke:var(--chart4)}
.chart .line.m0,.chart .dot.m0{stroke:var(--cmp1)}.chart .line.m1,.chart .dot.m1{stroke:var(--cmp2)}.chart .line.m2,.chart .dot.m2{stroke:var(--cmp3)}
.chart .dot{stroke-width:2;fill:var(--card)}
.chart .dot:not(.pk){paint-order:stroke}
.chart .dot.k0{fill:var(--chart)}.chart .dot.k1{fill:var(--chart2)}.chart .dot.k2{fill:var(--chart3)}.chart .dot.k3{fill:var(--chart4)}
.chart .dot.m0{fill:var(--cmp1)}.chart .dot.m1{fill:var(--cmp2)}.chart .dot.m2{fill:var(--cmp3)}
.chart .dot:not(.pk):not(.tap){stroke:var(--card)}
.chart .dot.tap{stroke:var(--card);stroke-width:2}
.chart .guide{stroke:var(--muted);stroke-width:1;stroke-dasharray:none}
.chart .elx{stroke:var(--elx);stroke-width:1;stroke-dasharray:none!important}
.chart .elt{fill:var(--cmp1);font-size:16px;font-weight:400}
.ichart.js:not(.showel) .oth{display:none}
.chart .elab{font-size:16px;font-weight:600}
.chart .elab.k0{fill:var(--chart)}.chart .elab.k1{fill:var(--chart2)}.chart .elab.k2{fill:var(--chart3)}.chart .elab.k3{fill:var(--chart4)}
.chart .elab.m0{fill:var(--cmp1)}.chart .elab.m1{fill:var(--cmp2)}.chart .elab.m2{fill:var(--cmp3)}
.chart .elab .ev{font-weight:700}
.rdo{margin:.25rem 0 .4rem}
.rdh{margin:0 0 .2rem;font-size:1rem}
.rdh .ru{color:var(--muted)}
.rdo .clegend{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.15rem .9rem;margin:0;font-size:1rem}
.rdo .clegend li{display:block;line-height:1.3}
.rdo .clegend .sw{width:28px;height:12px;vertical-align:middle;margin-right:.3rem}
.rdo .clegend .lv{overflow-wrap:anywhere}
.rdo .clegend li{min-width:0}
.rdo .clegend .la{display:block;color:var(--muted)}
.rdo.one .clegend{display:block;font-weight:700}
.rdo.one .clegend li{display:inline}
.rdo.one .clegend .la{display:inline;margin-left:.6rem}
.ichart{container-type:inline-size}
/* v8.2 readout: with several lines, one row per line (swatch, name, value at the right; the unit is in the line above).
   Wide screens: the rows sit on one line; where the lines are named at their right end, the row keeps its space and
   shows only while a period is being read, so the end labels can stay on the latest value. */
.multi .rdo .clegend{grid-template-columns:minmax(0,1fr);gap:0;max-width:24rem}
.multi .rdo .clegend li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .5rem;min-height:1.75rem;line-height:1.4}
.multi .rdo .clegend .sw{flex:none;align-self:center;margin-right:0}
.multi .rdo .clegend .ln{flex:1 1 0;min-width:0}
.multi .rdo .clegend .lv{flex:none;margin-left:auto;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:normal}
.multi .rdo .clegend .la{flex:1 0 100%;padding-left:calc(28px + .5rem)}
@container (min-width:560px){
.multi .rdo .clegend{display:flex;flex-wrap:wrap;gap:0 1rem;max-width:none}
.multi .rdo .clegend .sw{width:22px}
.multi .rdo .clegend li{flex:none}
.multi .rdo .clegend .ln{flex:none}
.multi .rdo .clegend .lv{margin-left:0}
.multi .rdo .clegend .la{flex:none;padding-left:0}
.multi .rdo .clegend.endok{display:none}
.ichart.js.multi .rdl{display:grid}
.ichart.js.multi .rdl>*{grid-area:1/1}
.ichart.js.multi .rdo .clegend.endok{display:flex;visibility:hidden}
.ichart.js.multi .rdo .clegend.endok+.rdhint{display:block}
.ichart.js.rd .rdo .clegend.endok{visibility:visible}
.ichart.js.rd .rdo .clegend.endok+.rdhint{visibility:hidden}
.ichart.js:has(.clegend.endok) .thint{display:none}
}
.rdhint{display:none;margin:0;color:var(--muted);font-size:1rem;line-height:1.75rem;align-self:start}
.chart .econ{stroke-width:1px;opacity:.75}
.chart .gtag rect{fill:var(--text)}
.chart .gtag text{fill:var(--card);font-size:16px;font-weight:600}
.elact{display:flex;flex-wrap:wrap;align-items:center;gap:0 1rem;margin:.3rem 0 0}
.elact .elbtn{margin:0}
.elact a{display:inline-block;min-height:44px;line-height:44px}
.refkey .sw{width:28px;height:12px}
.elkey{margin:.4rem 0 0;font-size:1rem;color:var(--muted)}
.elkey .ek{display:block}
.elkey .ek b{color:var(--text)}
.ichart.js:not(.showel) .elkey .ek.oth{display:none}
.elbtn{min-height:44px;min-width:44px;padding:.4rem .9rem;margin:.4rem 0;font:inherit;font-size:1rem;border:1px solid var(--muted);border-radius:.5rem;background:var(--card);color:var(--text);cursor:pointer}
.elbtn[aria-pressed="true"]{background:var(--text);color:var(--card)}
.smallm{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}
.smallm .ctitle{margin-bottom:0}
.rdo.one{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .6rem}
.rdo.one .rdh{margin:0;order:1}.rdo.one .clegend,.rdo.one .rdl{order:2}
/* v7.7 benchmark ladder: rung 2 grey dashed, rung 3 grey dotted; "Targets and comparisons" block under the chart */
.chart .ref.rg{stroke:var(--cmp1);stroke-dasharray:8 5}
.chart .ref.rs{stroke:var(--cmp1);stroke-dasharray:2 5;stroke-linecap:round}
.refkey .ref.rg{stroke:var(--cmp1);stroke-dasharray:8 5}
.refkey .ref.rs{stroke:var(--cmp1);stroke-dasharray:2 5;stroke-linecap:round}
.bench{margin:1rem 0;padding:.75rem 1rem;border-left:4px solid var(--gridline)}
.bench h3{margin:0 0 .4rem;font-size:1.125rem}
.bench ul.plain{margin:0;padding:0;list-style:none}
.bench li{margin:0 0 .6rem}
.bench li p{margin:0 0 .2rem;font-size:1rem}
.bench .bsrc,.gaptile .bsrc{font-size:1rem;color:var(--muted)}
.bench > p > a{display:inline-block;min-height:44px;line-height:44px}
/* benchmark register: a small table under a sentence (the ten housing target orders) */
.bench table.btab{min-width:0;margin:.4rem 0 .6rem}
.bench table.btab caption{font-size:1rem}
.bench table.btab th,.bench table.btab td{white-space:normal;padding:.35rem .5rem}
.bench table.btab thead th{vertical-align:bottom}
.bench table.btab th .small{display:block;font-weight:400;color:var(--muted)}
.bench table.btab th[scope="row"],.bench table.btab thead th:first-child{min-width:0;padding-left:0}
.bench table.btab tbody tr:last-child th,.bench table.btab tbody tr:last-child td{font-weight:700;border-bottom:0}
ol.rungs{padding-left:1.5rem}
ol.rungs li{margin:0 0 .5rem}
.chart .refband,.refkey .refband{fill:var(--gridline);opacity:.5}
/* v7.7.1: 44px tap targets for links in chart keys and the no-target tables */
figcaption a{padding-block:11px}
.acc .reqt th,.acc .reqt td{height:44px}
/* ---- UX pass (staging, November 2026): direction in seconds, dashboard then detail, who decides and gaps from the home page ---- */
/* header on phones: the wordmark stays on one line beside Menu, Wall mode and Dark mode */
.brand a{white-space:nowrap}
@media (max-width:37.49rem){
  header.site .wrap{gap:.4rem}
  .brand{font-size:1.0625rem;min-width:0}
  .headacts{gap:.3rem}
  .menu summary{padding:0 .75rem}
}
@media (max-width:23.4rem){.brand{font-size:1rem}.menu summary{padding:0 .6rem}}
/* the count of the 12 key measures: the same sentence, with a small colour key on each part */
.countline{line-height:1.6}
.countline .clh{font-weight:700}
.ctal{white-space:nowrap}
.ctal b{font-weight:800}
.ctal::before{content:"";display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin:0 .3rem .05rem 0;vertical-align:middle;border:1.5px solid currentColor}
.ctal.better::before{background:var(--better-bg);color:var(--better-tx)}
.ctal.worse::before{background:var(--worse-bg);color:var(--worse-tx)}
.ctal.flat::before{background:var(--flat-bg);color:var(--flat-tx)}
.ctal.mixed::before{background:var(--mixed-bg);color:var(--mixed-tx)}
.ctal.nc::before{border-style:dashed}
.countline .ctal{background:none;color:var(--text)}
.lead2{margin:.15rem 0 .35rem;color:var(--muted);font-size:1rem}
.tgap{color:var(--muted);font-size:1rem;font-weight:600;white-space:nowrap}
table.score .tgap{display:block;margin-top:.15rem;font-weight:400}
/* from the key measures to who decides, gaps and sources */
.deeper{margin:.75rem 0 .25rem}
.deeper ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;grid-template-columns:minmax(0,1fr)}
.deeper a{display:flex;flex-direction:column;justify-content:center;min-height:44px;height:100%;padding:.6rem 2rem .6rem .9rem;background:var(--card);border:1px solid var(--border);border-left:4px solid #0f766e;border-radius:.75rem;text-decoration:none;color:var(--text);position:relative}
.deeper a::after{content:"›";position:absolute;right:.7rem;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--link)}
.deeper a:hover{border-color:var(--link)}
.deeper a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.deeper .dt{font-weight:700;color:var(--link)}
.deeper .dd{font-size:1rem;color:var(--muted);line-height:1.4}
:root[data-theme="dark"] .deeper a{border-left-color:#2fb3a6}
@media (prefers-color-scheme:dark){:root:not([data-theme]) .deeper a{border-left-color:#2fb3a6}}
@media (min-width:48rem){.deeper ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* measure page: the source and "Check this number" in the headline card */
.srcq{display:flex;flex-wrap:wrap;align-items:center;gap:0 1rem;margin:.5rem 0 0;padding-top:.35rem;border-top:1px solid var(--border);font-size:1rem}
.srcq .srcqk{color:var(--muted);font-weight:700;margin-right:-.6rem}
.srcq a{display:inline-flex;align-items:center;gap:.25rem;min-height:44px;font-weight:700}
/* Targets and comparisons: one line on phones (the highest rung found), open on desktop */
details.bench>summary{display:flex;flex-wrap:wrap;align-items:center;gap:0 .6rem;min-height:44px;list-style:none;cursor:pointer;color:var(--text);font-weight:400}
details.bench>summary::-webkit-details-marker{display:none}
details.bench>summary h3{margin:0;color:var(--text)}
details.bench>summary::after{content:"+";font-size:1.4rem;color:var(--link);margin-left:auto}
details.bench[open]>summary::after{content:"−"}
details.bench>summary .bline{flex-basis:100%;order:3;color:var(--muted);font-size:1rem}
details.bench[open]>summary .bline{display:none}
details.bench[open]>summary{margin-bottom:.4rem}
.hero>p{grid-column:1/-1}
@media (max-width:63.99rem){.lead2{display:none}}   /* phones and tablets: the chevron on each row says it opens */
.ctal{white-space:normal}.ctal b{white-space:nowrap}
/* laptops (1,024 to 1,439 px): the key table takes the full width so the Trend column shows; the filter and themes follow it */
@media (min-width:64rem) and (max-width:89.99rem){
  .homegrid{grid-template-columns:minmax(0,1fr);grid-template-areas:"keys" "levels" "themes" "board" "cards";grid-template-rows:auto}
  table.score.head .tt .spark{width:80px;height:26px}
  .lvopts{flex-direction:row;flex-wrap:wrap}
  .lvopts label{flex:1 1 0;justify-content:center}
  .railthemes ul{display:flex;flex-wrap:wrap;gap:.25rem .5rem}
  .railthemes a{gap:.5rem;border:1px solid var(--border);background:var(--card)}
}
@media (min-width:75rem) and (max-width:89.99rem){table.score.head .tt,table.score.head thead th:nth-child(5){display:table-cell}}
@media (min-width:80rem) and (max-width:89.99rem){table.score.head th:nth-child(7),table.score.head td.ts{display:table-cell}}
@media (min-width:64rem) and (max-width:89.99rem){.railthemes{display:none}}   /* the theme list follows right under it */
/* 1,024 to 1,279 px: the site links fit beside the wordmark; Wall mode and Dark mode show their icons (names stay for screen readers) */
@media (min-width:64rem) and (max-width:79.99rem){
  .themetoggle .tlabel,.walltoggle .tlabel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .themetoggle,.walltoggle{padding:0;justify-content:center;width:44px}
}
.srcq .srcqa{display:inline-flex;flex-wrap:wrap;align-items:center;gap:0 .35rem}
.srcq .srcqc{color:var(--muted)}
.lphone{display:none}
@media (max-width:63.99rem){.lphone{display:inline}.ldesk{display:none}}
/* contents lists: a wrapped entry reads as one item (no 44px line box per line); the long list on "Not measured yet" folds on phones */
.toc2 a{display:inline-flex;align-items:center;min-height:44px;line-height:1.35;padding:.2rem 0}
details.tocd>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:44px;color:var(--text)}
details.tocd>summary::-webkit-details-marker{display:none}
details.tocd>summary::after{content:"+";font-size:1.4rem;color:var(--link);margin-left:1rem}
details.tocd[open]>summary::after{content:"−"}
@media (min-width:64rem){.srcq{display:none}}   /* desktop: the "Check this number" box is beside the headline */
@media (max-width:25.6rem){.brand a{white-space:normal;line-height:1.15}}   /* phones up to 409 px: the wordmark wraps onto two lines rather than slide under Menu, now that the header also holds the search button */
/* source line: a long agency name wraps as text, the arrow stays with it */
.srcq{display:block;line-height:1.5}
.srcq .srcqk{margin-right:.25rem}
.srcq .srcqa{display:inline}
.srcq .srcqa a{display:inline;padding:.65rem 0}
.srcq>a{display:inline-flex;min-height:44px;margin-left:.9rem;vertical-align:middle}

/* ===== Brief v5 (v8): one grammar for every row, pills, target lines, the home summary ===================================== */
/* Pills (A1 to A3): an arrow and one word. Colour says good or bad; the word carries the meaning. */
.pill{display:inline-flex;align-items:center;gap:.25rem;padding:.05rem .6rem;border-radius:1rem;font-size:1rem;font-weight:700;line-height:1.5;white-space:nowrap;justify-self:start}
.pill.nc{background:none;border:1.5px dashed currentColor;padding:0 .55rem;color:var(--flat-tx)}
.p3{display:grid;grid-template-columns:2rem 6.125rem 2.75rem auto;align-items:center;column-gap:.375rem}
.p3.one{display:flex;flex-wrap:wrap;gap:.25rem .5rem}
.p3 .pl,.p3 .pn{color:var(--muted);font-size:1rem;white-space:nowrap}
/* Target line (A8) */
.tln{display:flex;align-items:center;gap:.4rem;font-size:1rem;line-height:1.4}
.tln .tic{flex:none;color:var(--muted)}
.tln.f4,.tln.f5,.tln.f6,.tln.f7{color:var(--muted)}
.spark .sgoal{color:var(--muted)}
/* Phone rows (B4): four lines, the same on every row */
.mrow.r8{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .875rem .65rem;min-height:0;container-type:normal}
.mrow.r8 .q1{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 .6rem}
.mrow.r8 .rn{font-weight:700;font-size:1.0625rem;line-height:1.3;white-space:nowrap;flex:none;min-width:0}
.mrow.r8 .rv{flex:0 0 auto;margin-left:auto;text-align:right;color:var(--muted);font-size:1rem;line-height:1.3;white-space:nowrap;min-width:0}
.mrow.r8 .rv b{color:var(--text);font-size:1.25rem;font-weight:800;letter-spacing:-.01em;line-height:1.1}
.mrow.r8 .rv .ru{display:inline}
.mrow.r8 .q2{display:flex;justify-content:space-between;align-items:center;gap:.6rem;min-height:1.5rem}
.mrow.r8 .ra{flex:1 1 auto;min-width:0;color:var(--muted);font-size:1rem;line-height:1.4;white-space:nowrap;overflow:visible}
.mrow.r8 .spark{display:block;flex:none;width:72px;height:22.5px;margin:0;color:var(--chart)}
.mrow.r8 .q3{display:block;min-height:1.6rem}
.mrow.r8 .q4 b{color:var(--text)}
@media (max-width:21.5rem){.mrow.r8 .ra{white-space:normal}.p3{grid-template-columns:2rem auto;row-gap:.2rem}}
.rows.found:empty{display:none}
/* Summary card (B3, C1) */
.h8hero{display:block;margin-bottom:.75rem}
.h8hero h1{margin:.35rem 0 .15rem}
.h8hero .lead1{margin:0 0 .6rem}
.sum8{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}
.sum8 .sumh{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.sum8 h2{margin:0;font-size:1rem;line-height:1.4}
.sum8 .sumh a{font-size:1rem;display:inline-flex;align-items:center;min-height:44px;margin:-.6rem 0}
.sum8 fieldset.tiles{border:0;margin:0;padding:0;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.375rem}
.sum8 .tiles:has(#show-other){grid-template-columns:repeat(5,minmax(0,1fr))}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;border-radius:.75rem;text-align:center;cursor:pointer;line-height:1.15;border:2px solid transparent}
.tile b{font-size:1.5rem;font-weight:800;line-height:1.1}
.tile span{font-size:1rem;font-weight:600}
.tile.sm{flex-direction:row;gap:.4rem;min-height:40px;cursor:default;align-items:baseline;padding-top:.3rem}
.tiles input:checked+label.tile{border-color:currentColor}
.tiles input:focus-visible+label.tile,label.tile:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sum8 .showall{display:none;grid-column:1/-1;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--border);border-radius:.6rem;font-weight:700;color:var(--link);cursor:pointer;font-size:1rem}
.sum8 .tiles:has(input[name=show]:not(#show-all):checked) .showall{display:flex}
.sumbar,.tbar{display:flex;height:8px;gap:2px}
.sumbar{border-radius:1rem;overflow:hidden}
.sb{border-radius:4px;min-width:4px}
.sb.better{background:currentColor;color:var(--better-tx)}.sb.worse{background:currentColor;color:var(--worse-tx)}
.sb.flat{background:currentColor;color:var(--muted)}.sb.mixed{background:currentColor;color:var(--mixed-tx)}
.sum8 .sumlong p{margin:.25rem 0 0;font-size:1rem;color:var(--muted)}
.sum8 .sumlong p b,.sum8 .sumtgt b{color:var(--text)}
.sum8 .sumlong.desk{display:none}
.sum8 .sumtgt{margin:0;font-size:1rem;color:var(--muted)}
.sum8 .sumtgt a{display:flex;gap:.4rem;align-items:flex-start;color:inherit;text-decoration:none;min-height:44px;align-items:center}
.sum8 .sumtgt .tic{flex:none;color:var(--muted)}
.sum8 .sumtgt .desk,.sum8 .sumtgt .suml{display:none}
/* the tiles filter the key list (CSS only; a small script lets a second tap clear it and keeps it in the address) */
body:has(#show-better:checked) .keys .lv:not(.k-better),body:has(#show-worse:checked) .keys .lv:not(.k-worse),
body:has(#show-same:checked) .keys .lv:not(.k-same),body:has(#show-nov:checked) .keys .lv:not(.k-nov),
body:has(#show-other:checked) .keys .lv:not(.k-other){display:none}
/* Home layout */
.homegrid.h8{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"keys" "levels" "board" "cards";grid-template-rows:auto;gap:.9rem}
.homegrid.h8 .railthemes{display:none}
.homegrid.h8 .cards{grid-template-columns:minmax(0,1fr);margin-top:0;align-self:start}
.note8{margin:.6rem .25rem 0}
.phone-i{display:inline}
/* Who decides (B6): buttons with counts */
.levels.l8 legend{font-size:1.25rem;font-weight:800;color:var(--text);margin:0;padding:0}
.levels.l8 .lvnote{margin:.15rem 0 .5rem}
.levels.l8 .lvopts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem}
.levels.l8 .lvopts label{justify-content:space-between;padding:0 .75rem;gap:.5rem;flex:none;text-align:left;white-space:normal;line-height:1.2;min-width:0}
.levels.l8 .lvopts .lcn{font-weight:400;color:var(--muted)}
.levels.l8 .lvopts input:checked+label .lcn{color:inherit}
.homegrid:has(#gov-none:checked) .lv:not(.g-none){display:none}
.homegrid:has(#gov-none:checked) .govnote.g-none{display:block}
.homegrid:has(#gov-none:checked) .lc-all{display:none}.homegrid:has(#gov-none:checked) .lc-none{display:inline}
.homegrid:has(#gov-none:checked) .z-none,.homegrid:has(#gov-none:checked) table.nh-none{display:none}
/* Themes (B7): name, count, a small bar and a sentence */
details.theme.t8>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.2rem .75rem;padding:.6rem 1rem;min-height:0}
details.theme.t8>summary::after{margin-left:0;grid-column:3;grid-row:1}
details.theme.t8 .tn{color:var(--link);font-size:1.0625rem}
details.theme.t8 .cnt{margin-left:0}
details.theme.t8 .tbar{grid-column:1/-1}
.tw8{grid-column:1/-1;color:var(--muted);font-weight:400;font-size:1rem}
.homegrid:has(input[name=gov]:not(#gov-all):checked) .tbar{display:none}
details.theme.t8 .tgrp{margin:0;padding:0 0 .25rem}
details.theme.t8 .tgh{margin:.6rem 1rem .3rem}
/* Find a measure (E1) */
.find8{margin:0 0 .6rem}
.find8 input{width:100%;min-height:48px;padding:0 .9rem;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--muted);border-radius:.75rem}
.find8 input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.find8 #findstat{margin:.35rem .25rem}
.find8 #findstat:empty{display:none}
body.finding .all>.phone,body.finding .all>.desk{display:none}
/* What is missing (B8) and Check us (B9) */
.miss8 .mlist,.chk8 .cklist{list-style:none;margin:.25rem 0 0;padding:0}
.miss8 .mlist li+li{border-top:1px solid var(--border)}
.miss8 .mlist a{display:flex;align-items:center;gap:.75rem;padding:.55rem 0;text-decoration:none;color:var(--text);min-height:44px}
.miss8 .mn{flex:none;width:2.75rem;text-align:center;font-size:1.5rem;font-weight:800}
.miss8 .mt{display:flex;flex-direction:column;gap:.1rem}
.miss8 .mt b{color:var(--link)}
.chk8 .cklist li{position:relative;padding:.3rem 0 .3rem 1.9rem}
.chk8 .cklist li::before{content:"";position:absolute;left:.2rem;top:.65rem;width:.95rem;height:.5rem;border-left:2.5px solid #0f766e;border-bottom:2.5px solid #0f766e;transform:rotate(-45deg)}
:root[data-theme="dark"] .chk8 .cklist li::before{border-color:#2fb3a6}
@media (prefers-color-scheme:dark){:root:not([data-theme]) .chk8 .cklist li::before{border-color:#2fb3a6}}
.chk8 .cklinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.375rem;margin:.5rem 0 0}
.chk8 .cklinks a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:1rem;border:1px solid var(--border);border-radius:.6rem;font-weight:700;text-decoration:none;text-align:center}
/* Desktop table (C2): seven columns, two lines a row */
table.sc8{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:.9rem;font-size:1rem;margin:0}
table.sc8 th,table.sc8 td{padding:.3rem .4rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border);line-height:1.35}
table.sc8 th:first-child{padding-left:.875rem}
table.sc8 td:last-child,table.sc8 thead th:last-child{padding-right:.875rem}
table.sc8 thead th{color:var(--muted);font-weight:600;white-space:nowrap;padding-top:.55rem;padding-bottom:.55rem}
table.sc8 tbody tr{position:relative}
table.sc8 tbody tr:hover{background:var(--bg)}
table.sc8 tbody tr:last-child>*{border-bottom:0}
table.sc8 tbody th{font-weight:400}
table.sc8 tbody th a{color:var(--text);font-weight:700;text-decoration:none;font-size:1.0625rem}
table.sc8 tbody th a::after{content:"";position:absolute;inset:0}
table.sc8 tbody th a:focus-visible{outline:none}
table.sc8 tbody tr:focus-within{outline:3px solid var(--focus);outline-offset:-3px}
table.sc8 .ta,table.sc8 .tp,table.sc8 .tc,table.sc8 .tg2,table.sc8 .tw{display:block;color:var(--muted);font-weight:400;font-size:1rem;white-space:nowrap}
table.sc8 .tw{color:var(--text)}
table.sc8 .tg2 b{color:var(--text)}
table.sc8 .tno{color:var(--muted);white-space:nowrap}
table.sc8 .tno.w{white-space:normal}
table.sc8 td.tg{white-space:nowrap}
table.sc8 .tl b{font-size:1.1875rem;font-weight:800}
table.sc8 .tv{display:block;white-space:normal}
table.sc8.head .tv{white-space:nowrap}
table.sc8 .ta,table.sc8 .tp{white-space:normal}
table.sc8.head .ta,table.sc8.head .tp{white-space:nowrap}
.keys,.tgrp{overflow-x:auto}
table.sc8 .tt .spark{display:block;width:88px;height:27.5px;color:var(--chart)}
table.sc8 td.tg{min-width:8.5rem}
table.sc8 thead th:last-child{white-space:normal;min-width:8.5rem}
table.sc8.head tbody th a{white-space:nowrap}
table.sc8 .srcl{position:relative;z-index:1;white-space:nowrap}
details.theme>table.sc8,details.theme .tgrp>table.sc8{border-radius:0;border-left:0;border-right:0}
@media (min-width:64rem){
  .phone-i{display:none}
  .h8hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(30rem,41rem);gap:.5rem 2rem;align-items:center}
  .h8hero h1{grid-column:auto}
  .h8hero>.h8q{grid-column:1}
  .sum8 .sumlong.phone,.sum8 .sumtgt .phone,.sum8 .srest,.sum8 .sumh a{display:none}
  .sum8{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.4rem .9rem;padding:.7rem .8rem}
  .sum8 .sumlong.desk,.sum8 .sumtgt{display:contents}
  .sum8 .suml,.sum8 h2{font-weight:700;font-size:1rem;white-space:nowrap;color:var(--text)}
  .sum8 .sumtgt .suml{display:inline}
  .sum8 .sumlong .tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.375rem}
  .sum8 .sumtgt .desk{display:inline}
  .sum8 .sumtgt a{min-height:0;padding:.2rem 0}
  .tile,.tile.sm{flex-direction:row;gap:.4rem;min-height:44px;align-items:baseline;padding:.4rem .3rem 0;white-space:nowrap}
  .sum8 .showall{grid-column:1/-1}
  .homegrid.h8 .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .levels.l8{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem}
  .levels.l8 legend{float:left;margin-right:.75rem}
  .levels.l8 .lvnote{order:3;flex:1 1 100%;margin:0}
  .levels.l8 .lvopts{display:flex;flex-direction:row;flex-wrap:wrap;gap:.4rem}
  .levels.l8 .lvopts label{border-radius:2rem;padding:0 .9rem;justify-content:center}
  details.theme.t8>summary{grid-template-columns:minmax(12rem,16rem) minmax(8rem,12rem) minmax(0,1fr) auto auto}
  details.theme.t8 .tn{grid-column:1}details.theme.t8 .tbar{grid-column:2;grid-row:1}
  details.theme.t8 .tw8{grid-column:3;grid-row:1}details.theme.t8 .cnt{grid-column:4;grid-row:1}
  details.theme.t8>summary::after{grid-column:5}
}
@media (min-width:64rem){.rows.found{display:grid;grid-template-columns:repeat(auto-fill,minmax(21rem,1fr));border:0;background:none;gap:.5rem;overflow:visible}.rows.found>li{border:1px solid var(--border);border-radius:.9rem;background:var(--card)}.rows.found>li+li{border-top:1px solid var(--border)}}
@media (min-width:64rem) and (max-width:74.99rem){table.sc8 .tt,table.sc8 thead th:nth-child(5){display:none}}
@media (min-width:87.5rem){
  .homegrid.h8{grid-template-columns:minmax(0,1fr) 18.5rem;grid-template-areas:"keys themes" "levels themes" "cards themes" "board board";column-gap:1.125rem;grid-template-rows:auto auto auto auto}
  .homegrid.h8 .railthemes{display:block;grid-area:themes;align-self:start;background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.75rem .9rem}
  .homegrid.h8 .railthemes .railh{font-size:1.125rem;margin:0 0 .35rem}
  .homegrid.h8 .railthemes ul{list-style:none;margin:0;padding:0}
  .homegrid.h8 .railthemes li+li{border-top:1px solid var(--border)}
  .homegrid.h8 .railthemes a{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem;align-items:center;gap:.1rem .75rem;min-height:44px;padding:.3rem 0;text-decoration:none;border-radius:0}
  .homegrid.h8 .railthemes .tn{font-weight:700}
  .homegrid.h8 .railthemes .cnt{display:none}
  .homegrid.h8 .railthemes .tw8{grid-column:1/-1}
}
/* ----- Measure page (section D): headline card with both readings, the target and the source ----- */
.measure .crumb.c8{display:block}
.crumb.c8 a{font-weight:700}
.meta.m8 .chip{background:none;border:0;padding:0;font-weight:400;color:var(--muted);border-radius:0}
.meta.m8 .msep{margin:0 .15rem}
.hb8{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin:.6rem 0 .5rem}
.bx8{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.bx8.one{grid-template-columns:minmax(0,1fr)}
.bx{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .6rem .55rem;border-radius:.75rem;font-size:1rem;line-height:1.35}
.bx .bxw{font-size:1.125rem;font-weight:800;line-height:1.25}
.bx.nc{background:none;border:1.5px dashed currentColor;color:var(--flat-tx)}
.tb8{border:1px solid var(--border);border-radius:.75rem;padding:.5rem .7rem .6rem;font-size:1rem;line-height:1.4}
.tb8 .tbh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 .6rem;margin:0}
.tb8 .tbh>b{font-size:1.2rem;font-weight:800;white-space:nowrap}
.tb8.none .tbh{justify-content:flex-start;align-items:flex-start;gap:.45rem;color:var(--muted)}
.tb8.none .tbh .tic{margin-top:.2rem;flex:none}
.tb8.none .tbh b{font-size:1rem;color:var(--text)}
.meter{position:relative;height:4.1rem;margin:.15rem 0 .1rem}
.meter .mtrack,.meter .mfill{position:absolute;left:0;top:1.7rem;height:.6rem;border-radius:.3rem}
.meter .mtrack{right:0;background:var(--flat-bg)}
.meter .mfill{background:var(--chart)}
.meter .mtick{position:absolute;top:1.35rem;height:1.3rem;border-left:2px dotted var(--text)}
.meter .mnow{position:absolute;top:0;font-weight:700;white-space:nowrap}
.meter .mgoal,.meter .me0,.meter .me1{position:absolute;top:2.65rem;white-space:nowrap}
.meter .me0{left:0;color:var(--muted)}.meter .me1{right:0;color:var(--muted)}
.tb8 .tbn{margin:0;color:var(--muted)}
.src8{border-top:1px solid var(--border);margin-top:.7rem;padding-top:.6rem}
.src8 p{margin:0 0 .5rem}
.src8t{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:0 0 .5rem}.src8t p{margin:0}.src8t .share{flex:none}
.h8card .sentence.agl{margin:.3rem 0 0}
.src8 .src8b{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0}
.src8b a{display:flex;align-items:center;justify-content:center;gap:.3rem;min-height:44px;border-radius:.6rem;font-weight:700;text-decoration:none;text-align:center;padding:.25rem .5rem;line-height:1.2;font-size:1rem}
.src8b .b1{background:var(--link);color:var(--card)}
.src8b .b2{border:1px solid var(--link)}

.cmp8,.who8{background:var(--card);border:1px solid var(--border);border-radius:.9rem;padding:.85rem 1rem;margin:1rem 0}
.cmp8 h2,.who8 h2,.ns8 h2{margin:0 0 .3rem;font-size:1.2rem}
.cgrid{display:grid;grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr) auto;align-items:center;gap:.3rem .6rem;font-size:1rem;margin-top:.4rem}
.cgrid .c8b{height:.85rem;background:var(--cmp1);border-radius:3px;min-width:3px}
.cgrid .c8b.h{background:var(--chart)}
.cgrid .c8b.goal{background:none;border:2px dotted var(--text)}
.cgrid .c8n.h,.cgrid .c8v.h{font-weight:700}
.cgrid .c8v{text-align:right}
.who8 .who1{margin:.2rem 0 .2rem}
.who8d>summary{display:flex;align-items:center;min-height:44px;font-weight:700;color:var(--link);cursor:pointer;text-decoration:underline;text-underline-offset:.15em}
.who8d>summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:3px}
.ns8{margin:1rem 0}
.ns8 ul{margin:.3rem 0;padding-left:1.2rem}
.ns8 li{margin:.35rem 0}
.steps8{margin:.3rem 0 .6rem;padding-left:1.35rem}
.steps8 li{margin:.4rem 0}
.steps8 a{display:inline}
.pn8{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:1.25rem 0 .5rem}
.pn8 a{display:flex;flex-direction:column;justify-content:center;min-height:64px;padding:.5rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:.75rem;text-decoration:none}
.pn8 a b{color:var(--link)}
.pn8 .nx{align-items:flex-end;text-align:right}
@media (min-width:64rem){
  .hb8{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch}
  .bx8{align-content:stretch}
  .src8{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}
  .src8 p{margin:0}
  .src8 .src8b{display:flex;flex-wrap:wrap;gap:.5rem;flex:1 1 24rem}
  .src8b a{padding:.25rem 1.1rem}
}
/* ----- Header (B1, E2): the mark, a way to find a measure, the fuller phone menu ----- */
.brand a{gap:.5rem}
.bmark{border-radius:6px;flex:none;display:block}
.hfind{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:2rem;color:var(--text);flex:none}
.hfind:hover{background:var(--bg)}
.hfind:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media (max-width:63.99rem){header.site .walltoggle{display:none}}
@media (min-width:64rem) and (max-width:81.99rem){.themetoggle .tlabel,.walltoggle .tlabel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.themetoggle,.walltoggle{padding:0;justify-content:center;width:44px}}
@media (min-width:64rem) and (max-width:74.99rem){header.site .topnav{display:none}header.site .menu{display:block}}   /* five links and three buttons need 1,200 px; below that, the Menu */   /* phones: Wall mode is a footer link only; it is made for large screens */

/* v8.4: Wall mode is rarely used, so its header entry is a small, quiet icon (44 px target), not a labelled pill; the footer keeps a text link */
header.site .walltoggle.wallicon{width:44px;min-width:44px;padding:0;justify-content:center;border-color:transparent;background:none;color:var(--muted);border-radius:.6rem}
header.site .walltoggle.wallicon:hover{color:var(--text);background:var(--bg);border-color:transparent}
header.site .walltoggle.wallicon .wico{width:1rem;height:1rem}

/* v8.5: on phones and tablets, the long blocks lower on a measure page start closed (details.pf; the script in v7.PF_JS closes them
   under 1,024 px; with JavaScript off they stay open). Wide screens show them open, with no toggle. */
details.pf>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;cursor:pointer;list-style:none}
details.pf>summary::-webkit-details-marker{display:none}
details.pf>summary::after{content:"+";flex:none;font-size:1.5rem;line-height:1;color:var(--link)}
details.pf[open]>summary::after{content:"−"}
details.pf>summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:.4rem}
details.pf .pfs{display:flex;flex-direction:column;gap:.1rem;min-width:0}
details.pf .pfs h2{margin:0}
details.pf .pfh{color:var(--muted);font-size:1rem;font-weight:400}
details.pf[open] .pfh{display:none}
.check details.pf>summary{min-height:44px}
.ns8 details.ns8m>summary{min-height:44px;font-weight:700;color:var(--link);justify-content:flex-start}
.ns8 details.ns8m>summary::after{margin-left:.4rem}
.ns8 details.ns8m ul{margin-top:0}
@media (min-width:64rem){
  details.pf>summary{pointer-events:none;cursor:default;min-height:0}
  details.pf>summary::after,details.pf .pfh{display:none}
  .ns8 details.ns8m>summary{display:none}
}

/* v8.5: corrections log: the kind of each entry, a filter, and short entries with the rest under "More" */
.ckind{display:inline-block;padding:0 .55rem;border:1px solid var(--border);border-radius:2rem;font-weight:700;font-size:1rem;line-height:1.6;background:var(--card)}
.ckind.ck-figure{border-color:var(--text)}
.cdate{color:var(--muted)}
.ckey{margin:.25rem 0 1rem}
.cfilter{border:0;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.cfilter legend{font-weight:700;margin-bottom:.35rem;padding:0}
.cfilter input{position:absolute;opacity:0;width:1px;height:1px}
.cfilter label{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:0 .9rem;border:1px solid var(--border);border-radius:2rem;font-weight:700;cursor:pointer;background:var(--card)}
.cfilter label span{font-weight:400;color:var(--muted)}
.cfilter input:checked+label{background:var(--text);color:var(--card);border-color:var(--text)}
.cfilter input:checked+label span{color:var(--card)}
.cfilter input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}
.prose .corrlist,.corrlist{list-style:none;padding-left:0;margin-left:0}
.corrlist li{margin:0;padding:.7rem 0;border-top:1px solid var(--border)}
.corrlist li p{margin:0 0 .3rem}
.corrlist li[hidden]{display:none}
details.cmore>summary{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--link);cursor:pointer}
details.cmore[open]>summary{display:none}
