/* 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,1fr) minmax(21.25rem,26rem);grid-template-areas:"ma mr" "mb mrel";column-gap:2.5rem;justify-content:stretch;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:none;margin-left:0;margin-right:0}
}
/* 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){
  .mgrid{grid-template-columns:minmax(0,60rem) minmax(2rem,1fr) minmax(21.25rem,26rem);grid-template-areas:"ma . mr" "mb . mrel"}
}
@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;display:contents}
  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}

/* v8.7: text pages on a wide screen. The reading column stays a comfortable measure and starts
   at the same left edge as the header; an "On this page" menu sits sticky at the right of the wrap.
   Tables, accordions and card grids may use the full first column. Phone and tablet (under 64rem) stay as they were. */
.textpage .tp-head > :first-child,.textpage .tp-body > :first-child{margin-top:0}
@media (min-width:64rem){
  .textpage{display:grid;grid-template-columns:minmax(0,1fr) 17.5rem;grid-template-areas:"head toc" "body toc";column-gap:clamp(1.5rem,3vw,2.75rem);align-items:start}
  .textpage > .tp-head{grid-area:head;max-width:48rem;min-width:0}
  .textpage > .tp-body{grid-area:body;max-width:48rem;min-width:0}
  .textpage > .toc{grid-area:toc;position:sticky;top:1rem;align-self:start;margin:0;max-height:calc(100vh - 2rem);overflow:auto;width:100%}
  .textpage .prose,.textpage .prose.wide,.textpage .prose.wide>p,.textpage .prose.wide>ul{max-width:none}
  .textpage .toc .toc2{columns:1;column-gap:0}
  .textpage .toc ol{margin:0;padding-left:1.25rem}
  .textpage details.tocd>summary{pointer-events:none}
  .textpage details.tocd>summary::after{display:none;content:none}
  .textpage details.tocd .toc2{display:block}
  .textpage .tp-body .tablewrap,.textpage .tp-body .tscroll,.textpage .tp-body details.acc,
  .textpage .tp-body .gaps,.textpage .tp-body .gaplist,.textpage .tp-body .whos,.textpage .tp-body .tiles,
  .textpage .tp-body .props,.textpage .tp-wide{max-width:none}
  .textpage .tp-body h2,.textpage .tp-body h1,.textpage .tp-body details.acc,.textpage .tp-body section,
  .textpage .tp-body [id]{scroll-margin-top:1rem}
}
/* About and other short-section pages: two columns of cards beside the menu, from 1,440 px */
@media (min-width:90rem){
  .textpage.tp-cards > .tp-body{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}
  .textpage.tp-cards > .tp-body > section{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:.85rem 1.1rem}
  .textpage.tp-cards > .tp-body > section h2,.textpage.tp-cards > .tp-body > section .sub{margin-top:0}
  /* Latest updates: two columns of entries, still a readable line length in each */
  .textpage.tp-list > .tp-body{max-width:none}
  .textpage.tp-list .ulist.big{columns:2 22rem;column-gap:2.5rem}
  .textpage.tp-list .ulist.big > li{break-inside:avoid}
}
