:root{   /* defaults only: the page sets every theme colour, font and type-scale entry from config/visuals/theme.yaml */
  --paper:#F7F3EE; --chart-paper:#FFFFFF; --surround:#E8E4DC; --ink:#000000; --ink-chart:#201D1D;
  --plum:#6A008E; --plum-text:#5E017F; --plum-line:#680084; --plum-deep:#25082F; --lilac:#C9A2E0;
  --mist:#B9B6B0; --stone:#86847F; --wash:#F1F0EF; --tile:#E0DEDC; --line:#C1BEB9; --rule-dark:#3D3C37; --grid:#DCDBD8;
  --serif:"MarshSerif", "Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Noto Sans", "Segoe UI", system-ui, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans);color:var(--ink);background:var(--surround);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,select,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--plum);outline-offset:2px}
[hidden]{display:none!important}

/* ---------- brand strip ---------- */
.brandbar{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
.brandbar-inner{max-width:1180px;margin:0 auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.brandbar img{height:30px;width:auto;display:block;filter:brightness(0)}
.agenda{text-align:right;font-family:var(--serif);font-weight:300;font-size:24px;line-height:1.1}
.agenda small{display:block;font-family:var(--sans);font-size:12px;color:var(--stone);margin-top:2px}

/* ---------- sticky nav + filters ---------- */
.nav{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}
.nav-row{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.tabs{display:flex;gap:2px}
.tab{background:none;border:0;border-bottom:3px solid transparent;padding:12px 16px 11px;cursor:pointer;color:var(--stone);font-size:14.5px}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--plum);font-weight:600}
.savedbtn{margin-bottom:8px;display:inline-flex;gap:7px;align-items:center;border:1px solid var(--line);background:#fff;padding:6px 12px;border-radius:2px;cursor:pointer;font-size:13.5px}
.savedbtn svg{width:15px;height:15px;color:var(--plum)}
.savedbtn b{background:var(--plum);color:#fff;border-radius:9px;padding:0 7px;font-size:11.5px;font-weight:600}
.filterbar{border-top:1px solid var(--line);background:#fff}
.filterbar-inner{max-width:1180px;margin:0 auto;padding:10px 24px;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.fbar-right{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:13px;padding-bottom:6px;flex-wrap:wrap}
.toggle{display:flex;gap:6px;align-items:center;cursor:pointer}
.toggle input{accent-color:var(--plum)}
.linkbtn{background:none;border:0;color:var(--plum);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0;font-size:inherit}
.btn-s{border:1px solid var(--plum);background:#fff;color:var(--plum);padding:6px 11px;cursor:pointer;font-weight:600;font-size:12.5px;border-radius:2px;display:inline-flex;gap:6px;align-items:center}
.btn-s:hover{background:var(--plum);color:#fff}
.btn-s svg{width:14px;height:14px}
.sample{font-size:12px;color:var(--stone);width:100%}
.sample strong{color:var(--ink);font-weight:600}
.proto-note{max-width:1180px;margin:0 auto;padding:8px 24px 0;font-size:12px;color:var(--stone)}
main{max-width:1180px;margin:0 auto;padding:0 24px 80px}
.intro{padding:16px 0 14px;max-width:760px}
.intro h2{font-family:var(--serif);font-weight:300;font-size:28px;line-height:1.12;margin:0 0 4px}
.intro p{margin:0;font-size:14px;color:#3c3842}

/* ---------- dropdowns ---------- */
.ms{position:relative}
.ms-lab{display:block;font-size:11px;color:var(--stone);margin-bottom:2px}
.ms-btn{display:block;text-align:left;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235E0F80'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--line);padding:6px 28px 6px 10px;min-width:170px;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:2px;cursor:pointer;font-size:14px}
.ms-btn.on{border-color:var(--plum);box-shadow:inset 0 0 0 1px var(--plum)}
.ms-pop{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 28px rgba(37,8,47,.14);padding:6px 0;min-width:240px;z-index:60}
.ms-pop label{display:flex;gap:10px;align-items:center;padding:6px 14px;cursor:pointer;font-size:13.5px}
.ms-pop label:hover{background:var(--wash)}
.ms-pop input[type=checkbox]{accent-color:var(--plum);width:15px;height:15px;margin:0;flex:none}
.ms-foot{border-top:1px solid var(--wash);margin-top:6px;padding:8px 14px 4px;display:flex;justify-content:space-between;gap:10px;font-size:13px}
.ms-foot small{color:var(--stone)}
.geo-pop{width:300px}
.geo-search{width:calc(100% - 20px);margin:4px 10px 6px;padding:7px 10px;border:1px solid var(--line);border-radius:2px}
.geo-list{max-height:320px;overflow:auto}
.geo-r label.rl{font-weight:600}
.geo-c label{padding-left:38px}
.geo-empty{padding:10px 14px;color:var(--stone);font-size:13px}

/* ---------- report ---------- */
.chapters{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:var(--paper);margin-bottom:18px}
.chap{background:none;border:0;border-right:1px solid var(--line);text-align:left;padding:10px 14px 12px;cursor:pointer;border-top:3px solid transparent;display:flex;flex-direction:column;justify-content:flex-start}
.chap:last-child{border-right:0}
.chap .cn{display:block;font-size:11.5px;color:var(--stone)}
.chap .ck{display:block;font-family:var(--serif);font-size:24px;line-height:1.1;margin-top:2px}
.chap .ct{display:block;font-size:13px;line-height:1.35;margin-top:4px;color:#3c3842}
.chap.pending .ck,.chap.pending .ct{color:var(--stone)}
.chap[aria-selected="true"] .ck{color:var(--plum)}
.chap[aria-selected="true"]{border-top-color:var(--plum);background:#fff}
.chap[aria-selected="true"] .cn{color:var(--plum)}
.page{background:var(--paper);border:1px solid var(--line);padding:30px 40px 36px;margin-bottom:22px;position:relative}
.page-head{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.06em;font-weight:600;padding-bottom:10px;border-bottom:1px solid #8d8893;margin-bottom:22px}
.page h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,40px);line-height:1.08;margin:0 0 26px;max-width:26ch}
.page h2 em{color:var(--plum)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.block{position:relative;scroll-margin-top:var(--navH,180px)}
.bhead{display:flex;justify-content:space-between;align-items:flex-start;gap:6px 12px;flex-wrap:wrap-reverse;margin-bottom:4px}
.bhead>div:first-child{flex:1 1 240px}
.chart-title{font-weight:600;font-size:14.5px;margin:0;line-height:1.35}
.chart-sub{font-size:13px;margin:8px 0 14px;color:#3c3842}
.narr{font-size:12.5px;color:#3c3842;margin:4px 0 0;font-style:italic}
.src{font-size:11px;color:var(--stone);margin-top:12px;line-height:1.4}
.block.flash{animation:flash 2.2s ease-out}
@keyframes flash{0%,30%{box-shadow:0 0 0 10px rgba(94,15,128,.12);background:rgba(94,15,128,.05)}100%{box-shadow:0 0 0 10px rgba(94,15,128,0);background:transparent}}
.pill{display:inline-block;font-size:12px;padding:3px 9px;border-radius:10px;background:#F3E3C3;color:#6b4a0c;margin:6px 0 8px}
.pill.sup{background:#ead9d9;color:#7a2323}
.block.sup .vals{filter:blur(5px);opacity:.35;pointer-events:none}
.pending-page h2{max-width:none}
.skeleton{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:28px}
.skeleton div{height:150px;background:repeating-linear-gradient(135deg,var(--wash) 0 10px,transparent 10px 20px);border:1px dashed var(--line)}

/* action bar: labelled, at the foot of every chart and question */
.actbar{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:16px 0 0 -5px;padding-top:8px;border-top:1px solid var(--wash)}
.actbar button{display:inline-flex;gap:4px;align-items:center;background:none;border:1px solid transparent;border-radius:2px;padding:4px 5px;cursor:pointer;font-size:12px;color:#4b4650;position:relative}
.actbar button:hover,.actbar button:focus-visible{border-color:var(--line);background:#fff;color:var(--plum)}
.actbar svg{width:14px;height:14px;color:var(--plum);flex:none}
.actbar button[aria-pressed="true"]{color:var(--plum);font-weight:600}
.actbar button[aria-pressed="true"] svg{fill:var(--plum)}
.actbar button::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:11.5px;font-weight:400;padding:3px 7px;border-radius:2px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s .3s;z-index:5}
.actbar button:hover::after,.actbar button:focus-visible::after{opacity:1}

.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px}
.numgroup{padding:16px 0 20px;border-bottom:1px solid var(--line)}
.numgroup h4{font-size:13.5px;font-weight:600;margin:0 0 6px;line-height:1.3;max-width:28ch}
.bignum{font-family:var(--serif);font-weight:300;font-size:56px;line-height:1;color:var(--plum);margin:10px 0 4px;font-variant-numeric:lining-nums}
.bignum + p{margin:0;font-size:13px;max-width:30ch}
.vs{font-size:12px;color:var(--stone);margin-top:4px}
.vs b{font-weight:600}
.up{color:#2c6b3f}.down{color:#9a2f2f}

.hbar{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--wash)}
.hbar .lab{font-size:13px}
.hbar .lab small{display:block;font-size:11px;color:var(--stone)}
.track{position:relative;height:22px;background:var(--wash)}
.fill{position:absolute;left:0;top:0;bottom:0;background:var(--plum);transition:width .6s cubic-bezier(.2,.7,.2,1);display:flex;align-items:center;justify-content:flex-end}
.fill>span{color:#fff;font-size:11.5px;white-space:nowrap}   /* direct child only: the number inside inherits (U-09, A75) */
.fill>span{padding-right:4px}   /* 3pt inside the fill end (A61) */
.fill.grey{background:var(--mist)} .fill.grey>span{color:var(--ink)}
.fill.lowfill{background:repeating-linear-gradient(135deg,#b9a6c4 0 5px,#cdbfd5 5px 10px)}
.fill.lowfill>span{color:var(--ink)}
.ghost{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);transition:left .6s}
.ghost::after{content:"";position:absolute;top:-4px;left:-3px;border:4px solid transparent;border-top-color:var(--ink)}
.pair .track{height:16px;margin:2px 0}
.hide-ghost .ghost,.hide-ghost .gdot{display:none}
.stack{display:grid;grid-template-columns:44px 30px 1fr;gap:0 12px;height:300px}
.stack .col{display:flex;flex-direction:column-reverse;gap:3px}
.stack .seg{transition:height .6s cubic-bezier(.2,.7,.2,1);background:var(--mist)}
.stack .seg.p{background:var(--plum)}
.stack .pcts,.stack .labs{display:flex;flex-direction:column-reverse;gap:3px}
.stack .pcts div,.stack .labs div{transition:height .6s;display:flex;align-items:center;font-size:13px;overflow:hidden}
.stack .pcts div{justify-content:flex-end}
.stack .p-t{color:var(--plum)}
.callout{display:flex;gap:16px;align-items:flex-start;margin-top:12px}
.callout .bignum{margin:0}
.db-legend{display:flex;gap:18px;font-size:12px;margin:0 0 12px;flex-wrap:wrap}
.db-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.db-row{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--wash)}
.db-row .lab{font-size:13px}
.db-track{position:relative;height:26px;margin:0 34px}
.db-line{position:absolute;top:12px;height:2px;background:var(--mist);transition:left .6s,width .6s}
.dot{position:absolute;top:6px;width:14px;height:14px;border-radius:50%;margin-left:-7px;transition:left .6s}
.dot .t{position:absolute;top:-1px;font-size:12px;white-space:nowrap;font-weight:600}
.dot.lt .t{right:20px}.dot.rt .t{left:20px}
.dot.mid .t{display:none}
.gdot{position:absolute;top:4px;width:2px;height:18px;background:var(--ink);opacity:.5;transition:left .6s}
.slope svg{width:100%;max-width:760px;height:auto;display:block}
.slope text{font-family:var(--sans);font-size:12.5px;fill:var(--ink)}
.slope .hd{font-size:10.5px;font-weight:600;letter-spacing:.05em}
.minihead{display:grid;grid-template-columns:170px 1fr 1fr;gap:14px;font-size:11.5px;font-weight:600;padding-bottom:6px;border-bottom:1px solid var(--line)}
.mrow{display:grid;grid-template-columns:170px 1fr 1fr;gap:14px;align-items:center;padding:7px 0;border-bottom:1px solid var(--wash);font-size:13px}
.mrow.hl .lab{font-weight:600;color:var(--plum)}

/* ---------- more from the survey ---------- */
.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);background:var(--paper)}
.topic{background:none;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;padding:16px 18px 18px;cursor:pointer;border-top:3px solid transparent}
.topic:nth-child(3n){border-right:0}
.topic:nth-last-child(-n+3){border-bottom:0}
.topic h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;margin:0 0 6px}
.topic p{margin:0 0 8px;font-size:13.5px;color:#3c3842}
.topic .cnt{font-size:12px;color:var(--stone)}
.topic[aria-pressed="true"]{background:#fff;border-top-color:var(--plum)}
.topic[aria-pressed="true"] h3{color:var(--plum)}
.qsearch{display:flex;align-items:center;gap:10px;margin:18px 0 0;background:#fff;border:1px solid var(--line);padding:0 12px}
.qsearch input{flex:1;border:0;padding:11px 4px;font-size:15px;background:transparent;min-width:0}
.qsearch input:focus{outline:none}
.qsearch:focus-within{outline:2px solid var(--plum);outline-offset:2px}
.qsearch svg{width:16px;height:16px;color:var(--stone)}
.tpanel{margin-top:22px}
.thead{background:#fff;color:var(--ink);padding:20px 28px;border:1px solid var(--line);border-top:3px solid var(--plum)}
.thead .kick{font-size:12px;color:var(--plum);margin:0 0 4px}
.thead h2{font-family:var(--serif);font-weight:300;font-size:30px;line-height:1.12;margin:0 0 6px}
.thead p{margin:0;font-size:14px;color:#3c3842;max-width:70ch}
.inreport{background:var(--paper);border:1px solid var(--line);border-top:0;padding:16px 28px}
.inreport h3,.more-h{font-size:12.5px;font-weight:600;color:var(--stone);margin:0 0 8px}
.rchips{display:flex;flex-wrap:wrap;gap:8px}
.rchip{border:1px solid var(--line);background:#fff;padding:6px 12px;border-radius:2px;cursor:pointer;font-size:13px;text-align:left}
.rchip small{display:block;color:var(--stone);font-size:11px}
.rchip:hover{border-color:var(--plum)}
.more-h{margin:22px 0 10px}
.qcard{background:var(--paper);border:1px solid var(--line);padding:22px 28px 24px;margin-bottom:16px;scroll-margin-top:var(--navH,180px)}
.qrow-head .qtag{margin-bottom:5px}
.qtag{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;background:#e3d4ec;color:var(--plum);margin-right:6px}
.qtag.text{background:#F3E3C3;color:#6b4a0c}
.qtag.narrow{background:var(--wash);color:var(--stone)}
.qcard h3{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;margin:8px 0 4px}
.qmeta{font-size:12.5px;color:var(--stone);margin:0 0 14px}
.qgrid{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start}
.bdctl label{display:block;font-size:11.5px;color:var(--stone);margin-bottom:3px}
.bdctl select{width:100%;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235E0F80'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--line);padding:7px 28px 7px 10px;border-radius:2px;cursor:pointer}
.why{font-size:12.5px;color:#3c3842;margin:10px 0 0;border-left:2px solid var(--lilac);padding-left:10px}
.qbig{font-family:var(--serif);font-weight:300;font-size:48px;line-height:1;color:var(--plum);margin:18px 0 2px}
.qbig + p{font-size:12.5px;margin:0;color:#3c3842}
.empty{background:var(--paper);border:1px dashed var(--line);padding:26px;text-align:center;color:var(--stone)}
.repo{display:grid;grid-template-columns:250px 1fr;gap:24px;align-items:start}
.tnav{position:sticky;top:var(--navH,180px);background:var(--paper);border:1px solid var(--line);padding-bottom:6px}
.tnav h3{font-size:12px;font-weight:600;color:var(--stone);margin:0;padding:12px 14px 6px}
.tnav button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:0;border-left:3px solid transparent;padding:9px 14px;cursor:pointer;font-size:14px;line-height:1.3}
.tnav button span{color:var(--stone);font-size:12px;font-weight:400}
.tnav button:hover{background:#fff}
.tnav button[aria-pressed="true"]{background:#fff;border-left-color:var(--plum);color:var(--plum);font-weight:600}
.rtools{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}
.rtools .qsearch{flex:1 1 200px;margin:0}
.rtools label{font-size:11px;color:var(--stone);display:block;margin-bottom:2px}
.rtools select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235E0F80'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--line);padding:9px 28px 9px 10px;border-radius:2px;cursor:pointer;min-width:0}
.filtbtn{border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:2px;cursor:pointer;font-size:14px;white-space:nowrap;display:inline-flex;gap:7px;align-items:center}
.filtbtn[aria-expanded="true"]{border-color:var(--plum);color:var(--plum)}
.filtbtn b{background:var(--plum);color:#fff;border-radius:9px;padding:0 7px;font-size:11.5px}
.rfilters{display:flex;flex-wrap:wrap;gap:10px 14px;margin:-4px 0 14px;padding:12px 14px;background:var(--paper);border:1px solid var(--line)}
.rfilters label{font-size:11px;color:var(--stone);display:block;margin-bottom:2px}
.rfilters select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235E0F80'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--line);padding:8px 28px 8px 10px;border-radius:2px;cursor:pointer}
.chead{padding:2px 0 4px}
.chead .kick{font-size:12px;color:var(--plum);margin:0 0 2px}
.chead h2{font-family:var(--serif);font-weight:300;font-size:30px;line-height:1.15;margin:0 0 6px}
.chead h2 span{display:block;font-size:18px;color:#3c3842;margin-top:2px}
.chead p{margin:0;font-size:14px;color:#3c3842;max-width:70ch}
.moreq{display:block;width:100%;text-align:left;background:none;border:1px solid var(--line);border-top:0;padding:10px 18px;cursor:pointer;color:var(--plum);font-size:13.5px;font-weight:600}
.moreq:hover{background:#fff}
.rcount{font-size:12.5px;color:var(--stone);margin:14px 0 8px}
.ghead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:26px 0 8px;font-family:var(--serif);font-size:21px;line-height:1.2}
.ghead small{display:block;font-family:var(--sans);font-size:12.5px;color:var(--stone);margin-top:2px}
.ghead .linkbtn{font-family:var(--sans);font-size:12.5px;white-space:nowrap}
.qlist{border:1px solid var(--line);background:var(--paper)}
.qrow{border-top:1px solid var(--line);scroll-margin-top:var(--navH,180px)}
.qrow:first-child{border-top:0}
.qrow-head{display:grid;grid-template-columns:1fr 150px 20px;gap:18px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:13px 18px;cursor:pointer}
.qrow-head:hover,.qrow.open .qrow-head{background:#fff}
.qrow-head h4{margin:0;font-size:15px;font-weight:600;line-height:1.3}
.qw{font-size:12.5px;color:var(--stone);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62ch}
.qhint{display:inline-block;font-size:12px;color:var(--plum);margin-top:4px}
.qrow-val{font-family:var(--serif);font-weight:300;font-size:28px;line-height:1;color:var(--plum)}
.qrow-val small{font-family:var(--sans);font-size:11.5px;color:var(--stone);margin-left:5px}
.qrow-val .track{height:6px;margin-top:7px}
.chev{width:18px;height:18px;color:var(--plum);transition:transform .2s}
.qrow.open .chev{transform:rotate(180deg)}
.qrow-body{background:#fff;padding:2px 18px 14px}
.tnav button .tn{font-size:14.5px;color:inherit;font-weight:inherit}
.tnav .tn small{display:block;font-size:11px;color:var(--stone);font-weight:400}
.tnav button[aria-pressed="true"] .tn small{color:var(--plum)}
.thead .ttl{font-family:var(--serif);font-size:18px;color:var(--ink);margin:0 0 6px}
.rnone{font-size:13px;color:var(--stone);margin:0}
.gk{display:block;font-family:var(--sans);font-size:11.5px;color:var(--stone);margin-bottom:2px}
.qsub{background:var(--wash);font-size:12px;font-weight:600;color:var(--stone);padding:6px 18px;border-top:1px solid var(--line)}
.qlist>.qsub:first-child{border-top:0}
.qtag.wave{background:transparent;border:1px solid var(--line);color:var(--stone);font-weight:400}
.qtag.other{background:#dfe6ee;color:#2f4a63}

/* ---------- overlays ---------- */
.pop{position:absolute;z-index:80;background:#fff;border:1px solid var(--line);box-shadow:0 12px 32px rgba(37,8,47,.18);padding:16px 18px;width:340px;font-size:13px;line-height:1.45}
.pop h4{margin:0 0 8px;font-size:13px}
.pop dl{margin:0;display:grid;grid-template-columns:90px 1fr;gap:6px 10px}
.pop dt{color:var(--stone)}
.pop dd{margin:0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;font-size:13.5px;border-radius:2px;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:90vw}
.modal{position:fixed;inset:0;background:rgba(37,8,47,.55);z-index:90;display:flex;justify-content:flex-end}
.sheet{background:var(--paper);width:min(520px,100%);height:100%;overflow:auto;padding:22px 24px 28px}
.sheet.center{height:auto;max-height:80vh;margin:auto;width:min(560px,92%)}
.sheet-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;gap:10px}
.sheet-head strong{font-family:var(--serif);font-weight:400;font-size:22px}
.sheet textarea{width:100%;height:180px;border:1px solid var(--line);padding:10px;font-size:13px}
.saved-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.sitem{border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:1fr auto;gap:10px}
.sitem h4{margin:0 0 2px;font-size:14px;font-weight:600;line-height:1.35}
.sitem p{margin:0;font-size:12.5px;color:var(--stone)}
.sitem .acts{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.note{font-size:12px;color:var(--stone);background:var(--wash);padding:10px 12px;margin-top:16px}

@media (max-width:900px){
  .cols,.skeleton,.qgrid,.repo{grid-template-columns:1fr}
  .tnav{position:static}
  .qrow-head{grid-template-columns:1fr 100px 18px}
  .chapters,.nums,.topics{grid-template-columns:1fr 1fr}
  .topic:nth-child(3n){border-right:1px solid var(--line)}.topic:nth-child(2n){border-right:0}
  .page,.qcard{padding:22px 18px}
  .db-row{grid-template-columns:1fr}
  .nav{position:static}
}
@media (max-width:560px){ .nums,.chapters,.topics{grid-template-columns:1fr} .topic{border-right:0!important} .hbar{grid-template-columns:110px 1fr} .brandbar img{height:24px} .agenda{font-size:19px} }
@media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important} }

/* report-aligned page styles */
.page{background:#fff}
.page.numbers{background:var(--paper)}
.page h2 em{font-style:italic}
.fullw{margin-top:34px;padding-top:26px;border-top:1px solid var(--wash)}
.page h2+.fullw{margin-top:0;padding-top:0;border-top:0}
.chart-title+.minihead,.bhead+.vals>.minihead{margin-top:12px}
.cols{align-items:start}
.cols-aside{display:flex;flex-direction:column;justify-content:center;height:100%}
.chart-subt{font-size:13.5px;color:#3c3842;margin:2px 0 0}
.srcblock{margin-top:14px;font-size:11px;line-height:1.45;color:var(--stone)}
.srcblock p{margin:0 0 3px}
.sub-label{font-size:11.5px;font-weight:600;letter-spacing:.05em;margin:26px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.hbar.pair.wide{grid-template-columns:minmax(160px,30%) 1fr}
.navbtns{display:flex;gap:8px}
/* In brief */
.inbrief h2{max-width:30ch}
.ib-kick{font-size:12px;color:var(--plum);margin:0 0 6px}
.ib-stand{font-size:16px;color:#3c3842;margin:-12px 0 26px;max-width:62ch}
.ib-label{font-size:12px;font-weight:600;letter-spacing:.05em;margin:0 0 6px}
.ib-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.ib-list li{border-top:1px solid var(--line)}
.ib-list li>button,.ib-list li>div{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:0;padding:6px 4px;cursor:pointer;font-size:15px}
.ib-list li>div{cursor:default}
.ib-list li>button:hover{background:var(--paper)}
.ib-n{font-family:var(--serif);font-weight:300;font-size:52px;line-height:1;color:#B3ABBA}
.ib-t em{color:var(--plum);font-style:italic}
.ib-go{font-size:12px;color:var(--plum);opacity:0;transition:opacity .15s}
.ib-list li>button:hover .ib-go,.ib-list li>button:focus-visible .ib-go{opacity:1}
/* By the numbers */
.bn-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.bn-cell{padding:18px 22px 22px;border-left:1px solid var(--line)}
.bn-cell:nth-child(3n+1){border-left:0;padding-left:0}
.bn-cell:nth-child(n+4){border-top:1px solid var(--line)}
.bn-cell h4{font-size:13.5px;font-weight:600;margin:0 0 10px;line-height:1.3}
.bn-fig{margin-bottom:18px}
.bn-num{font-family:var(--serif);font-weight:300;font-size:46px;line-height:1.05;color:var(--plum)}
.bn-fig p{margin:4px 0 0;font-size:13px;max-width:34ch}
.bn-fig sup{font-size:9px;margin-left:1px}
.bn-foot{margin-top:18px;font-size:10.5px;line-height:1.45;color:var(--stone)}
.bn-foot p{margin:0 0 4px}
.bn-foot ol{margin:0;padding-left:16px}
/* waffles */
.wf{padding:12px 0;border-bottom:1px solid var(--wash)}
.wf:last-child{border-bottom:0}
.wf-label{font-size:11px;font-weight:600;letter-spacing:.04em;margin:0 0 8px;max-width:26ch;line-height:1.3}
.wf-row{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:start}
.waffle{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.waffle i{aspect-ratio:1;border-radius:50%;border:1px solid #C9C3CF;transition:background .3s,border-color .3s}
.waffle i.on{background:var(--plum);border-color:var(--plum)}
.wf-num{font-family:var(--serif);font-weight:300;font-size:46px;line-height:1;color:var(--plum)}
.wf-cap{font-size:12.5px;margin:4px 0 0}
.wf-note{font-size:12px;color:#3c3842;margin:8px 0 0}
/* pull quotes */
.pull{padding:6px 0}
.pq-num{font-family:var(--serif);font-weight:300;font-size:58px;line-height:1;color:var(--plum)}
.pq-text{font-family:var(--serif);font-weight:300;font-size:22px;line-height:1.3;margin:6px 0 0;max-width:28ch}
/* brackets */
.bstack{display:grid;grid-template-columns:1fr 200px;gap:12px;align-items:start}
.bk-col{position:relative;height:300px}
.bbars .bk-col{height:auto}
.bk{position:absolute;top:0;left:0;width:10px;border:1px solid var(--mist);border-left:0;transition:height .6s}
.bk-call{position:absolute;left:22px;top:50%;transform:translateY(-50%);width:176px}
.bk-num{font-family:var(--serif);font-weight:300;font-size:34px;line-height:1;color:var(--plum);white-space:nowrap}
.bk-call p{margin:4px 0 0;font-size:12px;line-height:1.35}
.bbars{display:grid;grid-template-columns:1fr 170px;gap:12px;align-items:stretch}
.bk.bk-full{top:18px;bottom:18px;height:auto}
.support{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.support div{display:flex;gap:10px;align-items:center;border:1px solid var(--line);padding:10px 12px;font-size:13px;background:#fff}
.support span{flex:none;width:22px;height:22px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font-size:11px}
.support p{margin:0}.support.sup4{grid-template-columns:repeat(4,1fr)}
/* line chart */
.linechart svg{width:100%;max-width:980px;height:auto;display:block}
.linechart .ax{font-family:var(--sans);font-size:11.5px;fill:#3c3842}
.linechart .lv{font-family:var(--sans);font-size:12px;font-weight:600}
.linechart .ll{font-family:var(--sans);font-size:12px;fill:var(--ink)}
/* about panel */
.about h3{font-family:var(--serif);font-weight:400;font-size:19px;margin:18px 0 6px}
.about h3:first-child{margin-top:0}
.about p,.about li,.about dd{font-size:13.5px;line-height:1.5}
.about dl{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;margin:8px 0}
.about dt{color:var(--stone);font-size:13px}
.about dd{margin:0}
.about ul{padding-left:18px;margin:6px 0}
.about-link{color:var(--plum);font-weight:600}
/* About the data (A66): the standard right-hand sheet; surveys top to bottom, each with a grid of metric tiles */
.ab-src{margin:14px 0 0}
.ab-src h4{font-family:var(--serif);font-weight:400;font-size:17px;line-height:1.2;margin:0;color:var(--plum-text)}   /* U2-06 (A76) */
.about .ab-src .ab-fw{font-size:12.5px;line-height:1.45;margin:4px 0 8px}
.ab-tiles{display:grid;grid-template-columns:repeat(3,1fr);padding:0 1px 1px 0}   /* tiles carry fill and rule: an empty cell stays blank */
.ab-tile{background:var(--chart-paper);border:1px solid var(--line);margin:0 -1px -1px 0;padding:10px 12px;min-width:0}
.ab-tile.wide{grid-column:1/-1}
.ab-lab{display:block;font-size:13px;color:var(--stone);line-height:1.3}
.ab-val{font-weight:600;font-size:22px;line-height:1.25;color:var(--ink);font-variant-numeric:tabular-nums}
.ab-vline{display:flex;flex-wrap:wrap;align-items:baseline}   /* value, then the secondary; a long secondary wraps under the value */
.about .ab-tile ul.ab-list{margin:4px 0 0;padding-left:16px}
.about .ab-list li{font-size:13px;line-height:1.4;margin:0}
.ab-list b{font-weight:600}
.about .ab-pointer{margin:14px 0 0}
@media (max-width:420px){.ab-tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.bn-grid,.support,.support.sup4{grid-template-columns:1fr}.bn-cell{border-left:0!important;padding-left:0!important;border-top:1px solid var(--line)}.bstack,.bbars{grid-template-columns:1fr 130px}.wf-row{grid-template-columns:110px 1fr}}

.vals-wrap{position:relative}
.vals-wrap>.pill{position:absolute;z-index:3;top:0;right:0;margin:0;box-shadow:0 2px 8px rgba(37,8,47,.12)}
.block.sup .vals-wrap>.pill,.qrow.sup .vals-wrap>.pill{top:40%;left:50%;right:auto;transform:translate(-50%,-50%);white-space:nowrap}
.sample{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bn-hint{margin:2px 0 0;font-style:italic}
.pop{max-height:70vh;overflow:auto}
.pop-foot{margin:0;padding-left:16px;font-size:12px;line-height:1.45}
.pop-foot li{margin-bottom:4px}
.pop-title{margin:0 0 8px;font-style:italic}
.page{overflow-anchor:none}
/* ---------- preview additions (data explorer v1) ---------- */
.status-strip{background:var(--panel);color:var(--ink);font-family:var(--type-caption-font);font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);line-height:1.45;border:1px solid var(--line);padding:8px 16px;margin:0 0 12px}   /* chapter / library in progress (A62) */
.repo>*{min-width:0}   /* Tab 2 (A63): sticky chapter menu, then the list; static above it below 900px */
.lib-group .ghead{margin-top:0}
.lib-group+.lib-group .ghead{margin-top:26px}
.qrow-head>div{min-width:0}
.qrow-head .qt{display:block;font-size:15px;font-weight:600;line-height:1.3}
.qrow-head .qq{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;line-height:1.4;color:var(--stone);margin-top:3px}
.qrow-head:focus-visible{outline-offset:-2px}
.qrow-val{min-width:0}
.qrow-val .toofew{font-family:var(--sans);font-size:13px}
.qrow-val .qhl{display:block;font-family:var(--sans);font-size:11px;line-height:1.3;color:var(--stone);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qrow.open .qrow-head .qq{display:block;-webkit-line-clamp:unset;overflow:visible}   /* open row: the full question (U-01, A75) */
.qrow-body>.qmeta:first-child{margin-top:12px}
.qrow-body .qmeta{margin:0 0 4px}
.marker{display:inline-block;font-size:11px;font-weight:600;color:#7a2323;background:#f4e1e1;border:1px dashed #c98f8f;padding:1px 6px;margin-left:6px;vertical-align:1px;font-style:normal;letter-spacing:0}
.chart-note{display:inline-block;font-size:12px;font-weight:600;color:#6b4a0c;background:#F3E3C3;padding:3px 9px;border-radius:10px;margin:8px 0 2px}
.fnote{font-size:12px;color:var(--warn);background:var(--alert-bg);margin:8px 0 0;border-left:3px solid var(--warn);padding:4px 8px}   /* U-06 (A75) */
.fnote b{color:var(--warn);font-weight:600;text-decoration:line-through;text-decoration-color:var(--warn)}
.toofew{font-size:12px;color:var(--warn);font-style:italic}
.linechart .gaplabel{fill:var(--warn);font-style:italic}
.slope .rk{fill:var(--on-dark);font-size:10px}
.legend-gap{margin-top:12px}
.db-legend i.sq{border-radius:0}
.sub-label.centred{text-align:center}
.sub-label.kpi-group:first-child{margin-top:0;padding-top:0;border-top:0}
.track .toofew{position:absolute;left:8px;top:2px}
.bn-num.toofew,.wf-num.toofew,.pq-num.toofew{font-size:16px;font-family:var(--sans)}
.dot.mid .t{display:block;top:15px;left:50%;transform:translateX(-50%);font-weight:400;font-size:11px}
.dot.mid.low .t{top:27px}
.db-row:has(.dot.mid){padding-bottom:22px}
.db-gap{position:absolute;top:4px;font-size:11px;color:#7a2323;font-style:italic;white-space:nowrap;transform:translateX(-50%)}
.actbar button[disabled]{color:#a9a4ad;cursor:not-allowed}
.actbar button[disabled] svg{color:#a9a4ad}
.actbar button[disabled]:hover{border-color:transparent;background:none;color:#a9a4ad}
.coming{background:var(--paper);border:1px dashed var(--line);padding:40px;text-align:center;color:var(--stone);font-size:15px}
.coming h3{font-family:var(--serif);font-weight:300;font-size:28px;color:var(--ink);margin:0 0 8px}
.residual{font-size:12px;color:var(--stone);margin:8px 0 0}
.allhidden{font-size:14px;color:#7a2323;background:#f7ecec;border:1px dashed #d8b3b3;padding:18px 20px;margin:12px 0 0}
.db-row .lab .toofew{display:block;font-size:11px;margin-top:2px}
.nodata{max-width:760px;margin:60px auto;padding:30px;background:var(--paper);border:1px solid var(--line)}
/* ---------- design tokens from the locked PDF (A55): papers, inks, plums, greys ---------- */
.page{background:var(--chart-paper)}                       /* exhibit pages, incl. reality-check callouts */
.page.numbers{background:var(--paper)}                     /* By the numbers cards */
.page-head{border-bottom:.25pt solid var(--rule-dark)}
.page h2 em,.ib-t em{color:var(--plum-text)}
.bn-num{color:var(--plum-text)}
.vals,.fill.grey span,.slope text,.linechart .ll{color:var(--ink-chart);fill:var(--ink-chart)}
.slope .rk{fill:var(--on-dark)}
.waffle i{border-color:var(--line)}
.stack .seg{background:var(--tile)}
.stack .seg.p{background:var(--plum)}
.db-line{background:var(--grid)}
/* printed type scale (theme.type, set as --type-<key>-font/-size/-weight/-transform). Not yet placed:
   tile_number, ratio_text (their layouts are built per chapter, A56); SVG chart text keeps the chart code's sizes. */
.page h2{font-family:var(--type-page_title-font);font-size:var(--type-page_title-size)}
.bn-num{font-family:var(--type-kpi_number-font);font-size:var(--type-kpi_number-size)}
.numbers.stacked .bn-num{font-family:var(--type-kpi_number_stacked-font);font-size:var(--type-kpi_number_stacked-size)}   /* chapter numbers_type: stacked (A68) */
.pq-num{font-family:var(--type-callout_number-font);font-size:var(--type-callout_number-size)}
.pq-text{font-family:var(--type-callout_sentence-font);font-size:var(--type-callout_sentence-size)}
.chart-title{font-family:var(--type-chart_title-font);font-weight:var(--type-chart_title-weight);font-size:var(--type-chart_title-size)}
.bn-cell .chart-title{font-family:var(--type-card_heading-font);font-weight:var(--type-card_heading-weight);font-size:var(--type-card_heading-size)}
.chart-subt{font-family:var(--type-subtitle-font);font-weight:var(--type-subtitle-weight);font-size:var(--type-subtitle-size)}
.bn-fig p,.wf-cap{font-family:var(--type-caption-font);font-weight:var(--type-caption-weight);font-size:var(--type-caption-size)}
.hbar .lab,.mrow .lab,.db-row .lab{font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
.fill span,.dot .t{font-family:var(--type-value_label-font);font-weight:var(--type-value_label-weight);font-size:var(--type-value_label-size)}
.minihead{font-family:var(--type-column_head-font);font-weight:var(--type-column_head-weight);font-size:var(--type-column_head-size);text-transform:var(--type-column_head-transform)}
.db-legend{font-family:var(--type-legend-font);font-weight:var(--type-legend-weight);font-size:var(--type-legend-size)}
.srcblock{font-family:var(--type-note-font);font-weight:var(--type-note-weight);font-size:var(--type-note-size);color:var(--ink)}
.page-head{font-family:var(--type-kicker-font);font-weight:var(--type-kicker-weight);font-size:var(--type-kicker-size);text-transform:var(--type-kicker-transform)}
/* ---------- ROI visual pass L1 (A58); the grey, note and label rules apply to every chapter ---------- */
.fill.grey{background:var(--bar-grey)}
.srcblock .src-note{margin-bottom:4px}                     /* D4: the printed note is the first footer line */
.bn-lead{font-family:var(--type-caption-font);font-weight:var(--type-caption-weight);font-size:var(--type-caption-size);margin:0 0 2px}
.page:not(.numbers) .bn-num{font-family:var(--type-callout_number-font);font-size:var(--type-callout_number-size);color:var(--plum)}
.page:not(.numbers) .bn-fig+.bn-fig{border-top:.5pt solid var(--line);padding-top:16px}
.fill.out{justify-content:flex-start}                      /* value label outside a fill too short to hold it */
.fill.out>span{position:absolute;left:100%;padding:0 0 0 5px;color:var(--ink-chart)}
.hbar.above{grid-template-columns:1fr;gap:4px}
/* bracket_bars with `bracket`: printed proportions (ROI-EX-06, p21): track 168px, bracket line 4px after the track end,
   text column from 26px after the track end, 100px wide */
.bbars.bk-printed{grid-template-columns:168px 126px;gap:0;justify-content:start}
.bk-printed .bk.bk-span{left:4px}
.bk-printed .bk-call{width:100px}
.bk.bk-span{top:0;bottom:-4px;height:auto;border-color:var(--line)}
.bk.bk-span::after{content:"";position:absolute;top:50%;left:100%;width:8px;border-top:1px solid var(--line)}
.bk-span .bk-num{font-family:var(--type-callout_number-font);font-size:var(--type-callout_number-size);color:var(--plum)}
.ib-stand{font-family:var(--type-standfirst-font);font-weight:var(--type-standfirst-weight);font-size:var(--type-standfirst-size)}
.srcblock p{margin:0 0 2px}
.bk-span .bk-call p{font-family:var(--type-bracket_caption-font);font-weight:var(--type-bracket_caption-weight);font-size:var(--type-bracket_caption-size)}
/* ---------- ROI visual pass L3-1: placement (A60) ---------- */
/* exhibit width (registry `width`) and indent on reality-check pages; print scale, 1pt = 1.333px */
.block.pw{max-width:100%}
.block.pw-column{width:295px}                              /* print 221pt */
.block.pw-full{width:620px}                                /* print 464pt */
.page:not(.numbers) .block.pw{margin-left:130px;max-width:calc(100% - 130px)}   /* indent 98pt from the heading */
.page h2:has(+div>.block.pw){margin-bottom:60px}           /* h2 to first exhibit about 60px */
.pw .hbar{grid-template-columns:230px 1fr;gap:0;padding:0;height:43px}          /* bars: label column 172pt, pitch 32pt */
.pw .hbar .lab{white-space:normal;line-height:1.25}              /* a label longer than the column wraps instead of clipping (GOV-EX-02, A77) */
.pw .track{height:16px}                                    /* 12.1pt */
.pw .vals .hbar:last-child{border-bottom:0}
.pw .bk-printed .hbar{grid-template-columns:1fr;height:auto;gap:11px;border-bottom:0}   /* label to bar 8pt, no rules */
.pw .bk-printed .hbar+.hbar{margin-top:52px}               /* bar 1 bottom to label 2 top 39pt */
.pw .bk-printed .hbar .lab{white-space:normal;max-width:125px}                  /* labels wrap at 92pt */
.pw .bk-printed .track{height:17px}                        /* 12.8pt */
.pw .bn-fig .bn-num{margin:0}
.pw .bn-fig .bn-num+p{margin-top:17px}                     /* number to caption 13pt */
/* global fixes: outside labels centred on the fill; value labels at the value_label weight on every fill */
.fill.out>span{top:50%;transform:translateY(-50%);padding:0;margin-left:5px}
.fill span,.fill span [data-m]{font-weight:var(--type-value_label-weight)}
/* By the numbers: rule between rows stops 12pt short of the vertical rules (three-column grid only) */
@media (min-width:901px){
  .bn-cell{position:relative}
  .bn-cell:nth-child(n+4){border-top:0}
  .bn-cell:nth-child(n+4)::before{content:"";position:absolute;top:0;left:16px;right:16px;border-top:1px solid var(--line)}
  .bn-cell:nth-child(3n+1)::before{left:0}
  .bn-cell:nth-child(3n)::before{right:0}
}
.bn-leadband{display:flex;flex-direction:column;justify-content:flex-end}
/* In brief (p9): cropped sans numerals, sans italic, 360pt rows, mist rules, always-visible no-chart label */
.ib-list{border-bottom-color:var(--mist)}
.ib-list li{border-top-color:var(--mist)}
.ib-list li>button,.ib-list li>div{grid-template-columns:90px 1fr auto;padding:0 4px 0 0;align-items:center}
.ib-n{align-self:stretch;position:relative;overflow:hidden;min-height:48px}
.ib-n span{position:absolute;left:0;bottom:-.2em;line-height:1;font-family:var(--type-ib_numeral-font);font-weight:var(--type-ib_numeral-weight);font-size:var(--type-ib_numeral-size);color:var(--numeral)}
.ib-t{max-width:504px;padding:10px 0}   /* print 480px (360pt); row 6 needs >= 502px in the available font (A61) */
.ib-t em{font-family:var(--sans);font-style:italic;color:var(--plum-text)}
.ib-list li>div .ib-go{opacity:1;color:var(--stone)}
.chap .ct em{font-style:italic}
/* ---------- ROI visual pass L3-2 (A61) ---------- */
@media (min-width:900px){.pw .actbar{flex-wrap:nowrap;width:max-content}}
.ib-t{font-family:var(--type-ib_row-font);font-weight:var(--type-ib_row-weight);font-size:var(--type-ib_row-size)}
.ib-list li>button,.ib-list li>div{min-height:66px}   /* print pitch about 49pt */
/* ---------- Kinds batch K1 (A67): print geometry at 1pt = 1.333px, for a 1280px window ---------- */
/* callout (AG-EX-03, 09, 15) and the waffle's callout mode (AG-EX-12): sentence 20pt on a 24pt line, number 35pt, 47px top to top */
.cl-num{font-family:var(--type-callout_number-font);font-weight:var(--type-callout_number-weight);font-size:var(--type-callout_number-size);line-height:47px;height:47px;color:var(--plum-text);white-space:nowrap}
.cl-sent{font-family:var(--type-callout_sentence-font);font-weight:var(--type-callout_sentence-weight);font-size:var(--type-callout_sentence-size);line-height:32px;margin:0;color:var(--ink)}
.cl-sent em{font-style:normal;color:var(--plum-text)}
.cl-sent [data-m],.cl-sent [data-m-text]{color:var(--plum-text)}
.wfc-row{display:flex;gap:30px;align-items:flex-start}
.wfc-row>div:first-child{flex:0 0 295px}
.wfc{position:relative;flex:none;width:199px;height:159px}
.wfc i{position:absolute;width:10.6px;height:10.6px;border-radius:50%;border:.7px solid var(--line);transition:background .3s,border-color .3s}
.wfc i.on{background:var(--plum);border-color:var(--plum)}
/* bracket_stack in print geometry (AG-EX-05, 10): column 19 x 305px at 36px, values end at 27px, labels from 66px */
.bks{position:relative;height:305px}
.bks-seg{position:absolute;left:36px;width:19px;background:var(--tile)}
.bks-seg.p{background:var(--plum)}
.bks-v,.bks-l{position:absolute;transform:translateY(-50%);white-space:nowrap;line-height:1.2;color:var(--ink);font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
.bks-v{left:0;width:27px;text-align:right}
.bks-l{left:66px}
.bks-v.p,.bks-l.p{color:var(--plum)}
.bks-bk{position:absolute;left:0;width:12px;border:1px solid var(--line);border-left:0}   /* left: 8px after the widest highlighted label (layoutKinds) */
.bks-bk::after{content:"";position:absolute;top:50%;left:100%;width:8px;border-top:1px solid var(--line)}
.bks-call{position:absolute;left:calc(100% + 15px);top:50%;transform:translateY(-50%);width:107px}
.bks-num{font-family:var(--type-bracket_number-font);font-weight:var(--type-bracket_number-weight);font-size:var(--type-bracket_number-size);line-height:1;color:var(--plum);white-space:nowrap}
.bks-call p{margin:5px 0 0;font-family:var(--type-bracket_caption-font);font-weight:var(--type-bracket_caption-weight);font-size:var(--type-bracket_caption-size);line-height:1.3;color:var(--ink)}
/* tiles: 2 columns (AG-EX-02) or 3 (GOV-EX-06); tile_colour / mark_colour set --tl-bg / --tl-mark */
.tl{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 10px}
.tl-c3{grid-template-columns:repeat(3,1fr);gap:14px}
.tl-t{display:flex;flex-direction:column;justify-content:space-between;height:128px;padding:21px 18px 13px;border-radius:7px;background:var(--tl-bg);color:var(--ink);min-width:0}
.tl-c3 .tl-t{height:171px;padding:15px 12px 14px}
.tl-c3 .tl-num{margin-left:1px}
.tl-t.hl{background:var(--tl-mark);color:var(--on-dark)}
.tl-num{font-family:var(--type-tile_number-font);font-weight:var(--type-tile_number-weight);font-size:var(--type-tile_number-size);line-height:1}
.tl-cap,.mo-lab,.ws-cap,.kl-cap,.kl-cell{font-family:var(--type-chart_caption-font);font-weight:var(--type-chart_caption-weight);font-size:var(--type-chart_caption-size);line-height:1.35;margin:0}
.tl-t.hl .vs,.tl-t.hl .vs b,.kl-tile .vs,.kl-tile .vs b{color:var(--on-dark)}
/* mosaic (AG-EX-13): 223px tall, 6px gaps, tiles placed in % of the print width */
.mo{position:relative;height:223px}
.mo-t{position:absolute;border-radius:7px;background:var(--tile);color:var(--ink);overflow:hidden}
.mo-num{position:absolute;left:10px;top:15px;font-family:var(--type-tile_number-font);font-weight:var(--type-tile_number-weight);font-size:var(--type-tile_number-size);line-height:1}
.mo-lab{position:absolute;left:10px;right:10px;bottom:10px}
/* dot_ladder (AG-EX-14): 620 x 327px; the line from (4, 282) to (614, 18) */
.dl{position:relative;height:327px}
.dl-line{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.dl-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--stone)}
.dl-lab{position:absolute;white-space:nowrap;line-height:1.3;color:var(--ink);font-family:var(--type-dot_label-font);font-weight:var(--type-dot_label-weight);font-size:var(--type-dot_label-size)}
.dl-lab b{font-family:var(--type-dot_value-font);font-weight:var(--type-dot_value-weight);font-size:var(--type-dot_value-size)}
.dl-lab.left{transform:translate(-100%,-50%);margin-left:-15px}   /* right edge 9px before the dot's left edge */
.dl-lab.right{margin:8px 0 0 14px}                                 /* 8px after the dot's right edge, top 8px below its centre */
.dl-lab.below{margin:15px 0 0 2px}
.dl-lab.right.wrap{white-space:normal}
.dl-lab.right.wrap .dl-name{display:block}
.dl-cap{position:absolute;color:var(--stone);font-family:var(--type-column_head-font);font-weight:var(--type-column_head-weight);font-size:var(--type-column_head-size);text-transform:var(--type-column_head-transform)}
.dl-cap.hi{right:0;top:0}
.dl-cap.lo{left:0;bottom:0}
/* waffle_split (GOV-EX-05): dots 15.5px, pitch 30.3 x 29.5px; callouts from 323px */
.ws{position:relative;height:282px}
.ws-grid{position:absolute;left:0;top:0;width:288px;height:282px}
.ws-grid i{position:absolute;width:15.5px;height:15.5px;border-radius:50%;border:1.3px solid var(--mist)}
.ws-grid i.s{border:0}
.ws-call{position:absolute;left:323px;width:232px}
.ws-num{height:57px;font-family:var(--type-callout_number-font);font-weight:var(--type-callout_number-weight);font-size:var(--type-callout_number-size);line-height:1;white-space:nowrap}
.ws-cap{color:var(--ink)}
/* kpi_list (SOV-EX-01): tile 225 x 295px in mark_colour, panel 380px; list grid of two 156px columns */
.kl{display:flex;gap:14px}
.kl-tile,.kl-panel{position:relative;flex:none;height:295px;border-radius:6px}
.kl-tile{width:225px;background:var(--kl-mark);color:var(--on-dark)}
.kl-panel{width:380px;background:var(--panel);color:var(--ink-chart)}
.kl-kick,.kl-title{position:absolute;top:24px;margin:0;line-height:1.2;font-family:var(--type-panel_kicker-font);font-weight:var(--type-panel_kicker-weight);font-size:var(--type-panel_kicker-size);text-transform:var(--type-panel_kicker-transform)}
.kl-kick{left:15px}
.kl-title{left:28px}
.kl-foot{position:absolute;left:15px;right:15px;bottom:23px}
.kl-num{font-family:var(--type-callout_number-font);font-weight:var(--type-callout_number-weight);font-size:var(--type-callout_number-size);line-height:1}
.kl-cap{margin-top:7px}
.kl-grid{position:absolute;left:28px;top:81px;width:337px;height:190px}
.kl-cell{position:absolute;width:156px}
.kl-c1{left:181px}
.kl-r0{top:9px}.kl-r1{top:86px}.kl-r2{top:151px}                    /* row 1 9px below the grid top, rows 2-3 23px below their rule */
.kl-h{position:absolute;width:156px;border-top:.7px solid var(--line)}
.kl-h.kl-r1{top:63px}.kl-h.kl-r2{top:128px}
.kl-v{position:absolute;left:162px;border-left:.7px solid var(--line)}
.kl-v0{top:0;height:53.5px}.kl-v1{top:72.5px;height:46px}.kl-v2{top:137.5px;height:52.5px}   /* 19px gaps centred on the rules */
/* market_table (SOV-EX-05): a real table; column centres 110 / 157 / 210 / 265 / 300px, bar track 337 -> 618px, row pitch 32px */
.mt{position:relative;padding-bottom:40px}
.mt-t{width:620px;max-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;color:var(--ink-chart)}
.mt-t col.c0{width:86px}.mt-t col.c1{width:48px}.mt-t col.c2{width:46px}.mt-t col.c3{width:60px}.mt-t col.c4{width:50px}.mt-t col.c5{width:20px}
.mt-t th,.mt-t td{padding:0;font-family:var(--type-table_cell-font);font-weight:var(--type-table_cell-weight);font-size:var(--type-table_cell-size);text-align:left}
.mt-t thead th{vertical-align:bottom;padding-bottom:15px;line-height:1.25;font-family:var(--type-table_head-font);font-weight:var(--type-table_head-weight);font-size:var(--type-table_head-size)}
.mt-t tbody tr{height:32px}
.mt-t tbody th,.mt-t tbody td{vertical-align:top;padding-top:7px;line-height:16px;height:32px;box-sizing:border-box;border-bottom:.85px solid var(--ink);white-space:nowrap}
.mt-c{display:inline-block;position:relative;left:50%;transform:translateX(-50%);white-space:nowrap}
.mt-c.two{white-space:normal;width:min-content;text-align:center}
.mt-t .mt-op{font-family:var(--type-table_operator-font);font-weight:var(--type-table_operator-weight);font-size:var(--type-table_operator-size)}
.mt-t .mt-bar{padding-left:27px}
.mt-t thead .mt-bar{white-space:normal}
.mt .track{width:281.6px;max-width:100%}
.mt .fill{background:var(--mt-mark)}
.mt-ref{position:absolute;width:0;border-left:.7px dashed var(--numeral);border-image:repeating-linear-gradient(to bottom,var(--numeral) 0 4px,transparent 4px 6.7px) 1}
.mt-ref-lab{position:absolute;transform:translateX(-50%);white-space:nowrap;color:var(--ink-chart);font-family:var(--type-table_cell-font);font-weight:var(--type-table_cell-weight);font-size:var(--type-table_cell-size)}
/* ---------- Workforce forms batch W2 (A69): print geometry at 1pt = 1.333px, for a 1280px window ---------- */
/* bracket_stack: WF-EX-01's labels wrap at 94px (its printed breaks are a placement item; AG-EX-05 / 10 keep one line); a callout block
   taller than its bracket is top-aligned 6px below the bracket top (layoutKinds); callout_lead above the number in row_label type, ink */
#WF-EX-01 .bks-l{white-space:normal;max-width:94px}
.bks-call.top{top:6px;transform:none}
.bks-lead{margin:0 0 2px;line-height:1.2;color:var(--ink);font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
#WF-EX-01 .bks-call{width:100px}                           /* p27 callout width */
/* page_callout: the K1 callout values (number 47px line, sentence 32px line), column width, ink sentence and values */
.pcl{max-width:295px}
.pcl-before{margin:0 0 28px}
.pcl-after{margin:28px 0 12px}
.pcl-num{font-family:var(--type-callout_number-font);font-weight:var(--type-callout_number-weight);font-size:var(--type-callout_number-size);line-height:47px;height:47px;color:var(--plum-text);white-space:nowrap}
.pcl-sent{font-family:var(--type-callout_sentence-font);font-weight:var(--type-callout_sentence-weight);font-size:var(--type-callout_sentence-size);line-height:32px;margin:0;color:var(--ink)}
.pcl-sent em{font-family:var(--serif);font-style:italic;color:var(--ink)}
.pcl-sent [data-m]{color:var(--ink)}
/* waffle panels: dots 5.75px at 11.19 x 10.9px (grid 106 x 104px), number 29px right of the grid, heading 20px above it, subline 23px below,
   a 0.64px numeral rule 23px below the panel and the next panel 23px below the rule */
.wp+.wp{border-top:.64px solid var(--numeral);margin-top:23px;padding-top:23px}
.wp-head{margin:0 0 20px;line-height:12.75px;color:var(--ink);font-family:var(--type-panel_heading-font);font-weight:var(--type-panel_heading-weight);font-size:var(--type-panel_heading-size);text-transform:var(--type-panel_heading-transform)}
.wp-row{display:flex;gap:29px;align-items:flex-start}
.wp-grid{position:relative;flex:none;width:106px;height:104px}
.wp-grid i{position:absolute;width:5.75px;height:5.75px;box-sizing:border-box;border-radius:50%;border:.64px solid var(--mist);transition:background .3s,border-color .3s}
.wp-grid i.on{background:var(--plum);border-color:var(--plum)}
.wp-text{min-width:0}
.wp-num{line-height:1;color:var(--plum-line);font-family:var(--type-waffle_number-font);font-weight:var(--type-waffle_number-weight);font-size:var(--type-waffle_number-size)}
.wp-cap,.wp-sub{line-height:12.75px;color:var(--ink);font-family:var(--type-waffle_caption-font);font-weight:var(--type-waffle_caption-weight);font-size:var(--type-waffle_caption-size)}
.wp-cap{margin:4px 0 0}
.wp-sub{margin:23px 0 0}
/* dumbbell in print geometry: row pitch 58px, dots 8.1px, 1.9px grid connector, values 8.1pt 3px outside the outermost dot, legend 8.1px dots */
.dbp-row{display:grid;grid-template-columns:194px 1fr;align-items:center;min-height:58px}   /* grows when a "too few" note is added (P-WF) */
.dbp-row .lab .toofew{display:block;font-size:11px;margin-top:2px}   /* the hidden-points note on its own line, as .db-row (P-WF) */
.dbp-row .lab{padding-right:16px;line-height:1.3;font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
.dbp-track{position:relative;height:8.1px}
.dbp-track .db-line{top:3.1px;height:1.9px;background:var(--grid)}
.dbp-track .dot{top:0;width:8.1px;height:8.1px;margin-left:-4.05px}
.dbp-track .gdot{top:0}
.dbp-v{position:absolute;top:50%;transform:translateY(-50%);white-space:nowrap;line-height:1;color:var(--ink-chart);font-family:var(--sans);font-weight:400;font-size:10.8px;transition:left .6s}
.dbp-v.lt{transform:translate(-100%,-50%);margin-left:-7.05px}
.dbp-v.rt{margin-left:7.05px}
.dbp-v.b,.dbp-v.b [data-m]{font-weight:700}
.dbp-legend{margin:0 0 20px}
.dbp-legend.below{margin:28px 0 0}
.dbp-legend i{width:8.1px;height:8.1px}
/* dumbbell panel (WF-EX-11): 0.68px mist rule 20px above the heading, label column 195px, two touching 16.2px bars on a 417px wash track,
   row pitch 58.6px, wash rules between rows, 8px legend squares */
.dbp-panel{margin-top:20px;padding-top:20px;border-top:.68px solid var(--mist)}
.dbp-ph{margin:0 0 8px;color:var(--ink);font-family:var(--type-panel_title-font);font-weight:var(--type-panel_title-weight);font-size:var(--type-panel_title-size);text-transform:var(--type-panel_title-transform)}
.dbp-prow{display:grid;grid-template-columns:195px 417px;align-items:center;height:58.6px}
.dbp-prow+.dbp-prow{border-top:.68px solid var(--wash)}
.dbp-plab{line-height:1.3;font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
.dbp-sub{display:block}
.dbp-ptrack{background:var(--wash);max-width:100%}
.dbp-bar{position:relative;height:16.2px}
.dbp-plegend{margin:12px 0 0}
.dbp-plegend i.sq{width:8px;height:8px}
/* slopegraph: dots 14.8px, row pitch 38.8px, 0.68px connectors (highlight plum-line), headings slope_head, rank digits rank_digit */
.pw .slope text{font-size:10.8px}
.pw .slope .hd{font-family:var(--type-slope_head-font);font-weight:var(--type-slope_head-weight);font-size:var(--type-slope_head-size);text-transform:var(--type-slope_head-transform);letter-spacing:0}
.pw .slope .rk{font-family:var(--type-rank_digit-font);font-weight:var(--type-rank_digit-weight);font-size:var(--type-rank_digit-size)}
/* paired_bars: label column 196px, two 196px tracks 19.5px apart, 16.2px bars, row pitch 32.4px, rules between rows only */
.pw .minihead,.pw .mrow{grid-template-columns:196px 196px 215.5px;gap:0}
.pw .minihead>:nth-child(3),.pw .mrow>:nth-child(3){margin-left:19.5px}
.pw .minihead{align-items:end;padding-bottom:8px;border-bottom:0;text-transform:none;font-family:var(--type-chart_head-font);font-weight:var(--type-chart_head-weight);font-size:var(--type-chart_head-size)}
.pw .mrow{height:32.4px;padding:0}
.pw .mrow:last-child{border-bottom:0}
.pw .mrow .track{height:16.2px}
/* grouped_bars: label column 245.6px, paired 16.2px bars touching on one 373px track, row pitch 58.7px; series legend one per line, 27px below */
.pw .hbar.pair.wide{grid-template-columns:245.6px 373px;height:58.7px;padding:0;gap:0;border-bottom:0}
.pw .hbar.pair .track{height:16.2px}
.pw .hbar.pair .lab{white-space:normal;padding-right:16px;line-height:1.3}   /* the 245.6px label column wraps (p37) */
.gb-legend{margin-top:27px;font-family:var(--type-legend-font);font-weight:var(--type-legend-weight);font-size:var(--type-legend-size)}
.gb-legend p{margin:0 0 4px}
.gb-legend i{display:inline-block;width:8.5px;height:8.5px;margin-right:6px;vertical-align:-1px}
/* bracket_bars with bracket.text: label column 151px, no track; bracket lines 0.68px; support strip of 186.6 x 46.9px boxes */
.bbt-head{display:grid;grid-template-columns:151px 1fr;margin-bottom:6px;font-family:var(--type-chart_head-font);font-weight:var(--type-chart_head-weight);font-size:var(--type-chart_head-size)}
.bbt-rows{position:relative}
.bbt-row{display:grid;grid-template-columns:151px 1fr;align-items:center;height:43px}
.bbt-row .lab{font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
.track.bbt-track{background:none}
.bbt-arm{position:absolute;height:0;border-top:.68px solid var(--line)}
.bbt-line{position:absolute;width:0;border-left:.68px solid var(--line)}
.bbt-txt{position:absolute;width:97px;transform:translateY(-50%)}
.bbt-txt p{margin:0;font-weight:600;line-height:1.3;color:var(--ink);font-family:var(--type-bracket_caption-font);font-size:var(--type-bracket_caption-size)}
.bbt-txt p [data-m],.bbt-txt p [data-m-text]{font-weight:600}
.sup{margin-top:14px}
.sup-bk{display:block;position:relative;height:12px;width:611.8px;max-width:100%;margin-top:22px;box-sizing:border-box;border:.68px solid var(--line);border-bottom:0}
.sup-bk::before{content:"";position:absolute;left:50%;bottom:100%;height:22px;border-left:.68px solid var(--line)}
.sup-head{margin:15px 0 10px;text-align:center;width:611.8px;max-width:100%;color:var(--ink);font-family:var(--type-panel_heading-font);font-weight:var(--type-panel_heading-weight);font-size:var(--type-panel_heading-size);text-transform:var(--type-panel_heading-transform)}
.sup-grid{display:grid;grid-template-columns:repeat(3,186.6px);gap:9.7px 26px}
.sup-box{display:flex;align-items:center;gap:10px;height:46.9px;padding:0 12px;box-sizing:border-box;border:.68px solid var(--line);border-radius:3px;line-height:1.3;color:var(--ink);font-family:var(--type-row_label-font);font-weight:var(--type-row_label-weight);font-size:var(--type-row_label-size)}
.sup-n{flex:none;display:grid;place-items:center;width:14.8px;height:14.8px;box-sizing:border-box;border-radius:50%;border:.68px solid var(--plum-line);color:var(--plum-line);font-family:var(--type-rank_digit-font);font-weight:var(--type-rank_digit-weight);font-size:var(--type-rank_digit-size)}
/* line in print geometry; shared: dotted 0.68px mist leaders from the start and end labels to their points */
.linechart .ld{stroke:var(--mist);stroke-width:.68;stroke-dasharray:1 1.5}
.linechart.lp text{font-size:10.8px}
.linechart.lp .ax{font-size:9.5px}                       /* category labels 7.1pt, one line per printed line */
@media (max-width:900px){.sup-grid{grid-template-columns:1fr}.dbp-prow{grid-template-columns:1fr}}
@media (max-width:900px){.kl,.wfc-row{flex-wrap:wrap}.ws,.mt,.kl{overflow-x:auto;overflow-y:hidden}}   /* narrower windows: the print widths are maximums */
