/* Audience Atlas — styles */
html,body{height:100%}
[hidden]{display:none!important}
img{max-width:100%}
/* Layout: full-screen atlas. Map fills the viewport; floating title card and controls; pull-out drawer (right on desktop, bottom sheet on phones). */
:root{
  --paper:#F4F0F5; --panel:#FFFFFF; --ink:#1E1424; --muted:#655A6B; --line:#DED6E2;
  --land:#E4DEE7; --land-edge:#F4F0F5; --sea:#EEE9F0; --focus:#1D4E89; --shadow:rgba(19,32,46,.16);
  --crit:#B42318; --high:#D2570C; --elev:#B98309; --watch:#4A7397; --low:#3C8762;
  --crit-bg:#FBE9E7; --high-bg:#FDEEE3; --elev-bg:#FBF3DD; --watch-bg:#E6EEF5; --low-bg:#E5F2EB;
  --f-display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --dw:min(440px,86vw);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#140F19; --panel:#1C1623; --ink:#EEE6F2; --muted:#A496AB; --line:#352B3D;
  --land:#2A2232; --land-edge:#140F19; --sea:#110D15; --focus:#7FB0E6; --shadow:rgba(0,0,0,.45);
  --crit:#F0614F; --high:#F38A3E; --elev:#E3B23C; --watch:#7FA7CC; --low:#5FB98A;
  --crit-bg:#3A1714; --high-bg:#3A2212; --elev-bg:#352A10; --watch-bg:#172838; --low-bg:#14301F;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#140F19; --panel:#1C1623; --ink:#EEE6F2; --muted:#A496AB; --line:#352B3D;
  --land:#2A2232; --land-edge:#140F19; --sea:#110D15; --focus:#7FB0E6; --shadow:rgba(0,0,0,.45);
  --crit:#F0614F; --high:#F38A3E; --elev:#E3B23C; --watch:#7FA7CC; --low:#5FB98A;
  --crit-bg:#3A1714; --high-bg:#3A2212; --elev-bg:#352A10; --watch-bg:#172838; --low-bg:#14301F;
  color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--sea);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5;overflow:hidden}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
#app{position:relative;height:100%;overflow:hidden}

/* map */
#mapbox{position:absolute;inset:0;background:var(--sea)}
#map{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
#map:active{cursor:grabbing}
.country{fill:var(--land);stroke:var(--land-edge);stroke-width:.5;vector-effect:non-scaling-stroke}
.country.sel{stroke:var(--ink);stroke-width:1.4}
.grat{fill:none;stroke:var(--line);stroke-width:.5;vector-effect:non-scaling-stroke}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--paper);font-size:12px;padding:6px 9px;max-width:240px;opacity:0;transition:opacity .12s;z-index:5}
.tip b{display:block;font-weight:600}

/* floating title card */
.titlecard{position:absolute;z-index:4;top:calc(12px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));
  background:var(--panel);border:1px solid var(--line);box-shadow:0 4px 18px var(--shadow);padding:12px 14px;max-width:min(360px,calc(100vw - 24px))}
.titlecard h1{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,4vw,36px);line-height:.9;margin:0;text-transform:uppercase;letter-spacing:.01em}
.titlecard .asof{font-family:var(--f-mono);font-size:11px;color:var(--muted);margin-top:4px}
.heatkey{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11px;color:var(--muted)}
.heatkey i{display:block;width:110px;height:8px;background:linear-gradient(90deg,#ffffcc,#fed976,#fd8d3c,#e31a1c,#800026)}
.heatkey i.lk{background:linear-gradient(90deg,#ffffe5,#fee391,#fe9929,#cc4c02,#662506)}
.ladder.c6,.ladlab.c6{grid-template-columns:repeat(6,minmax(0,1fr))}
.persp{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.persp li{font-size:13px;border-left:3px solid var(--line);padding-left:10px}
.persp li b{display:block;font-family:var(--f-mono);font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.persp li p{margin:3px 0 4px}
.persp li a{color:var(--ink);font-weight:600}
.persp li span{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.heatkey i.ck{background:linear-gradient(90deg,#eceef6,#b8bbdc,#7b78b8,#4a3a8f,#240b52)}
.cbig{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.cbig .n{font-family:var(--f-display);font-weight:800;font-size:44px;line-height:1}
.cbig .band{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px}
.comps{display:grid;gap:10px}
.crow{display:grid;grid-template-columns:128px minmax(0,1fr) 30px;gap:4px 10px;align-items:center;font-size:13px}
.crow .cbar{height:8px;background:var(--line);display:block}
.crow .cbar i{display:block;height:100%}
.crow .ctxt{grid-column:1/-1;font-size:12px;color:var(--muted)}
.rel{display:grid;gap:6px}
.relb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--line);background:transparent;padding:8px 10px;cursor:pointer;text-align:left;font-size:13px;font-weight:600}
.relb:hover{background:var(--paper)}
.srcl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.srcl li{display:grid;gap:1px;font-size:13px}
.srcl a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
.srcl span{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.toprisk{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.toprisk li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;font-size:13px}
.toprisk .tv{display:block;text-align:center;font-weight:500;color:#3a0a00;padding:3px 0}
.toprisk .why{color:var(--muted);font-size:12px}

.mapctl{position:absolute;z-index:4;display:flex;flex-direction:column;gap:4px;left:calc(12px + env(safe-area-inset-left,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px))}
.mapctl button{width:36px;height:36px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-family:var(--f-mono);font-size:16px;box-shadow:0 2px 8px var(--shadow)}

/* drawer */
.drawer{position:fixed;z-index:10;top:0;right:0;bottom:0;width:var(--dw);background:var(--panel);border-left:1px solid var(--line);
  box-shadow:-8px 0 30px var(--shadow);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);
  padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.drawer.open{transform:none}
.handle{position:absolute;left:-38px;top:50%;transform:translateY(-50%);width:38px;padding:16px 0;background:var(--ink);color:var(--paper);border:0;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:-4px 0 14px var(--shadow)}
.handle .lbl{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.handle .chev{font-size:14px;transition:transform .3s}
.drawer.open .handle .chev{transform:rotate(180deg)}
.handle .grip,.handle .peeklbl{display:none}
.handle .cnt{font-family:var(--f-mono);font-size:10px;background:var(--crit);color:#fff;padding:1px 5px;border-radius:999px}
.dtabs{display:flex;align-items:stretch;border-bottom:1px solid var(--line);flex:none}
.dtabs button{flex:1;border:0;background:transparent;padding:13px 6px 11px;font-size:13px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.dtabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.dtabs .x{flex:none;width:46px;font-size:18px}
.pane{flex:1;overflow:auto;overscroll-behavior:contain;min-height:0}

@media (max-width:720px){
  .mapctl{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .titlecard{padding:10px 12px}
  .titlecard{max-width:calc(100vw - 70px - env(safe-area-inset-left,0px));padding:9px 10px}
  .titlecard h1{font-size:22px}
  .titlecard .asof{font-size:10px;margin-top:2px}
  .heatkey{margin-top:6px;font-size:10px}
  .heatkey i{width:70px}
  .handle{left:-34px;width:34px;padding:14px 0}
}
.city circle{fill:var(--ink);stroke:var(--sea);vector-effect:non-scaling-stroke}
.city text{fill:var(--ink);font-family:var(--f-body);font-weight:500;paint-order:stroke;stroke:var(--sea);stroke-linejoin:round;pointer-events:none}
.city.t2 text{fill:var(--muted);font-weight:400}
#map.nocity .city{display:none}
.keylist i.tri{border-radius:0;background:transparent;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid var(--ink)}

/* drawer content: briefings */
.sidehead{padding:14px 16px 10px;border-bottom:1px solid var(--line)}
.tabs{display:flex;margin:0 0 10px;border-bottom:1px solid var(--line)}
.tabs button{border:0;background:transparent;padding:6px 2px;margin-right:18px;font-size:13px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:transparent;padding:4px 10px;font-size:12px;cursor:pointer;border-radius:999px}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.list{list-style:none;margin:0;padding:0}
.item{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:0 12px;align-items:stretch;border-bottom:1px solid var(--line);cursor:pointer;background:transparent;width:100%;text-align:left;border-left:0;border-right:0;border-top:0;padding:0}
.item:hover{background:var(--paper)}
.item .stripe{background:var(--c)}
.item .body{padding:11px 0;min-width:0}
.item .nm{font-weight:600;font-size:15px}
.item .meta{font-size:12px;color:var(--muted);margin-top:1px}
.item .latest{font-size:13px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .rt{padding:11px 14px 11px 0;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.pill{display:inline-block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;background:var(--cb);color:var(--c);font-weight:500;white-space:nowrap}
.trend{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.trend.up{color:var(--crit)} .trend.down{color:var(--low)}
.kind{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.detail{padding:0 0 22px}
.back{display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:12px 16px;cursor:pointer;font-size:13px;color:var(--muted);width:100%;text-align:left;border-bottom:1px solid var(--line)}
.back:hover{color:var(--ink)}
.dhead{padding:16px 16px 12px;border-left:6px solid var(--c)}
.dhead h2{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,4vw,36px);line-height:1;margin:8px 0 6px;text-transform:uppercase;text-wrap:balance}
.dhead .meta{font-size:13px;color:var(--muted)}
.sec{padding:14px 16px 0}
.sec h3{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.sec p{margin:0 0 8px;max-width:65ch}
.ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin-bottom:6px}
.rung{height:30px;background:var(--line);position:relative}
.rung.on{background:var(--c)}
.rung.cur::after{content:"";position:absolute;inset:-3px;border:2px solid var(--ink)}
.ladlab{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;font-size:10.5px;color:var(--muted);line-height:1.25}
.ladlab span.cur{color:var(--ink);font-weight:600}
.status{margin-top:10px;padding:9px 11px;background:var(--paper);font-size:13px}
.status b{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;font-weight:500;margin-bottom:2px}
.news{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.news li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;font-size:13.5px}
.news .dt{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);padding-top:2px}
.risk{display:grid;gap:9px}
.rrow{display:grid;grid-template-columns:128px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:13px}
.bar{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}
.bar i{height:8px;background:var(--line)}
.overall{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.overall .n{font-family:var(--f-display);font-weight:800;font-size:30px;line-height:1;color:var(--c)}
.overall .w{font-size:13px;color:var(--muted)}
.ukgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.ukc{border:1px solid var(--line);padding:10px 11px;border-left:4px solid var(--c);background:var(--panel);display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;align-items:center}
.ukc .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ukc .v{font-family:var(--f-display);font-weight:800;font-size:20px;color:var(--c);text-transform:uppercase;line-height:1.1;text-align:right}
.ukc .bar{grid-column:1/-1;margin:4px 0}
.ukc p{grid-column:1/-1;font-size:12.5px;margin:0}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.facts div{background:var(--panel);padding:8px 10px;min-width:0}
.facts .k{font-size:11px;color:var(--muted)}
.facts .v{font-family:var(--f-mono);font-size:13px;font-weight:500}
.note{font-size:11.5px;color:var(--muted);margin-top:10px}

/* register pane */
.pad{padding:14px 16px 24px}
.pad h2{font-family:var(--f-display);font-weight:800;font-size:26px;text-transform:uppercase;margin:0}
.sub{color:var(--muted);font-size:13px;margin:4px 0 12px}
.regctl{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.regctl input{border:1px solid var(--line);background:var(--panel);padding:7px 10px;font:inherit;font-size:13px;width:100%;color:var(--ink)}
.reglist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.reglist li{padding:10px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px}
.reglist li.link{cursor:pointer}
.reglist li.link:hover{background:var(--paper)}
.reglist .n{font-weight:600;font-size:14px}
.reglist .p{grid-column:1/-1;font-size:12.5px;color:var(--muted)}
.reglist .s{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.int-war{--c:var(--crit);--cb:var(--crit-bg)} .int-minor{--c:var(--muted);--cb:var(--paper)}

/* overview pane */
.figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:12px 0}
.fig{background:var(--panel);padding:10px 12px}
.fig .n{font-family:var(--f-display);font-weight:800;font-size:30px;line-height:1}
.fig .d{font-size:12px;color:var(--muted);margin-top:4px}
.fig.wide{grid-column:1/-1}
.ukbox{padding:10px 12px;background:var(--crit-bg);border-left:4px solid var(--crit);font-size:13px}
.ukbox strong{display:block;font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:.04em;color:var(--crit)}
.opt h3{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.optrow{display:flex;flex-wrap:wrap;gap:6px}
.keylist{display:grid;gap:6px;font-size:13px}
.keylist i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:-1px}
.keylist i.dia{border-radius:0;background:transparent;border:1.5px solid var(--ink);transform:rotate(45deg) scale(.85)}
.sources{margin:0;padding-left:18px;font-size:12.5px;color:var(--muted)}
.sources a{color:var(--ink)}
.disc{font-size:12px;color:var(--muted);margin-top:12px}
.lv-critical{--c:var(--crit);--cb:var(--crit-bg)} .lv-high{--c:var(--high);--cb:var(--high-bg)}
.lv-elevated{--c:var(--elev);--cb:var(--elev-bg)} .lv-watch{--c:var(--watch);--cb:var(--watch-bg)}
.r1{--c:var(--low);--cb:var(--low-bg)} .r2{--c:var(--watch);--cb:var(--watch-bg)} .r3{--c:var(--elev);--cb:var(--elev-bg)} .r4{--c:var(--high);--cb:var(--high-bg)} .r5{--c:var(--crit);--cb:var(--crit-bg)}

/* ---------- audience edition ---------- */
:root{--aud:#8a2be2;--aud-bg:#F6E9F7;--up:#8a2be2;--dn:#C2185B}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--aud:#d78cf5;--aud-bg:#2B1736;--up:#d78cf5;--dn:#FF7AA8}}
:root[data-theme="dark"]{--aud:#d78cf5;--aud-bg:#2B1736;--up:#d78cf5;--dn:#FF7AA8}
.titlecard .edition{display:inline-block;vertical-align:4px;margin-left:8px;margin-top:6px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;background:var(--aud);color:var(--panel);padding:2px 7px}
.audg .af{cursor:pointer;stroke:var(--land-edge);stroke-width:.4;vector-effect:non-scaling-stroke;transition:opacity .25s}
.audg .af.dim{opacity:.18}
.audg .af.dim.sel{opacity:1}
.audg .af.sel{stroke:var(--ink);stroke-width:1.4}
.audctl{margin-top:8px;display:grid;gap:6px}
.audctl select,.audpick select{font:inherit;font-size:12.5px;padding:5px 8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);width:100%}
.yrrow{display:grid;grid-template-columns:30px minmax(0,1fr) 40px;gap:8px;align-items:center}
.yrrow input{width:100%;accent-color:var(--aud);margin:0}
.yrrow .mono{font-size:13px;font-weight:500;text-align:right}
.audplay{width:30px;height:26px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:11px;padding:0}
.audplay:hover{background:var(--paper)}
.audctl .heatkey{margin-top:0}
.audctl .heatkey i{width:110px}
.audpick{display:grid;gap:8px;margin-top:4px}
.audpick label{display:grid;gap:3px}
#audreg{margin:10px 0 2px}
.ph{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}
.audlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.audlist li{display:grid;grid-template-columns:24px minmax(0,1fr) auto 50px;gap:8px;align-items:center;padding:7px 2px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}
.audlist li:hover{background:var(--paper)}
.audlist .rk{color:var(--muted);font-size:11.5px}
.audlist .nm b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.audlist .mb{display:block;height:4px;background:var(--line);margin-top:3px}
.audlist .mb i{display:block;height:100%}
.audlist .vv{text-align:right;font-weight:500}
.audlist .vv small{display:block;font-size:10px;color:var(--muted);font-weight:400}
.audlist .cc{text-align:right;font-size:11.5px;color:var(--muted)}
.up{color:var(--up)!important} .dn{color:var(--dn)!important}
.hcg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-top:10px}
.hc{margin:0;min-width:0}
.hc figcaption{display:flex;flex-direction:column;gap:0;font-size:12px;line-height:1.3}
.hc figcaption .t{font-weight:600}
.hc figcaption .ro{font-size:11px;color:var(--muted);min-height:1.3em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y;margin-top:2px}
.hc .gl{stroke:var(--line);stroke-width:.6}
.hc .tl,.hc .xl{fill:var(--muted);font-family:var(--f-mono);font-size:8px}
.hc .tl{paint-order:stroke;stroke:var(--panel);stroke-width:2.5px;stroke-linejoin:round}
.hc .ar{fill:var(--aud);fill-opacity:.13}
.hc .ln{fill:none;stroke:var(--aud);stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.hc .ln.pj{stroke-dasharray:3 2.5;stroke-width:1.4}
.hc .bl{fill:none;stroke:var(--muted);stroke-width:1.1;stroke-opacity:.7;stroke-dasharray:1.5 2}
.hc .ld{fill:var(--aud);stroke:var(--panel);stroke-width:1.2}
.hc .bb{fill:var(--crit);fill-opacity:.8}
.hc .bb.ytd{fill-opacity:.4}
.hc .guide{stroke:var(--ink);stroke-width:.6;stroke-opacity:.5}
.hc .gd{fill:var(--panel);stroke:var(--ink);stroke-width:1.2}
.hc .hit{fill:transparent;cursor:crosshair}
.hc .cs{font-size:11px;color:var(--muted);margin-top:1px}
.hc .cs .bk{white-space:nowrap}
.facts.aud .v .yr{font-size:10.5px;color:var(--muted);font-weight:400}
.facts.aud .dl{display:block;font-family:var(--f-mono);font-size:10.5px;color:var(--muted)}
.ins{margin:0 0 12px;padding:10px 12px 10px 28px;background:var(--aud-bg);border-left:4px solid var(--aud);font-size:13px;display:grid;gap:5px}
.ins b{font-weight:600}
.agekey{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted);margin-bottom:8px}
.agekey i{display:inline-block;width:9px;height:9px;margin-right:5px;vertical-align:-1px}
.agerow{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:center;margin-bottom:5px;font-size:12px}
.agerow .al{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.abar{display:flex;height:20px;overflow:hidden}
.abar i{display:flex;align-items:center;justify-content:center;height:100%;min-width:0}
.abar b{font-family:var(--f-mono);font-size:10px;font-weight:500}
.bench{margin-bottom:2px}
.relb.audb{font-weight:500}
@media (max-width:720px){
  .titlecard .edition{font-size:9px;margin-left:6px;vertical-align:3px;padding:1px 5px}
  .audctl{margin-top:6px;gap:4px}
  .audctl select{font-size:12px;padding:3px 6px}
  .audctl .heatkey i{width:70px}
}

/* ---------- Audience Atlas ---------- */
.handle{background:var(--aud)}
.handle .cnt{background:var(--panel);color:var(--ink)}
.drawer .dtabs .mono{font-size:11px;color:var(--aud)}
.empty .chips{margin-top:12px}
.profhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.slbtn{flex:none;margin-top:8px;border:1px solid var(--aud);background:transparent;color:var(--aud);padding:6px 12px;font-size:12.5px;cursor:pointer;font-weight:600}
.slbtn[aria-pressed="true"]{background:var(--aud);color:var(--panel)}
.dhead{border-left-color:var(--aud)}
.pyr{display:block;width:100%;height:auto;max-width:420px}
.pyr .lab{fill:var(--muted);font-family:var(--f-mono);font-size:8.5px}
.pyr .lab.hi{fill:var(--ink);font-weight:500}
.pyr .m{fill:var(--aud);fill-opacity:.38}
.pyr .f{fill:var(--aud);fill-opacity:.38}
.pyr .m.hi,.pyr .f.hi{fill-opacity:1}
.pyr .old{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:2 1.6;stroke-opacity:.7}
.pyr .hd{fill:var(--muted);font-family:var(--f-mono);font-size:9px;letter-spacing:.06em}
.pyr .tot{fill:var(--ink);font-family:var(--f-mono);font-size:9px}
.pyrkey{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--muted);margin:6px 0 2px}
.pyrkey i{display:inline-block;width:14px;height:9px;margin-right:5px;vertical-align:-1px}
.pyrkey i.o{border:1px dashed var(--ink);background:transparent}
.slwrap{overflow-x:auto;border:1px solid var(--line)}
.sl{border-collapse:collapse;width:100%;font-size:12.5px;min-width:560px}
.sl th,.sl td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.sl th{font-family:var(--f-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:pointer;position:sticky;top:0;background:var(--panel)}
.sl th[aria-sort]{color:var(--ink)}
.sl th:first-child,.sl td:first-child{text-align:left}
.sl td:first-child button{border:0;background:transparent;padding:0;font-weight:600;cursor:pointer;text-align:left;color:var(--ink)}
.sl td .rm{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;padding:0 2px}
.sl tr.tot td{font-weight:600;background:var(--paper)}
.plain{margin:0;padding-left:18px;display:grid;gap:8px;font-size:13px}
.about .srcl{margin-bottom:6px}
.colsec .cbig .band{color:#4a0f2a}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--paper);font-size:12px;padding:6px 9px;max-width:240px;opacity:0;transition:opacity .12s;z-index:5}
.tip b{display:block;font-weight:600}
.dtabs button{white-space:nowrap}
@media (max-width:720px){
  .mapctl{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .dtabs button{font-size:12.5px;padding:12px 4px 10px}
}

/* ---------- drill-down atlas ---------- */
#heat{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;transform-origin:0 0;image-rendering:auto}
#over{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#map:not(.aud-on) .audg .af{fill:var(--land)!important;fill-opacity:1!important}
.audg .af.act{fill-opacity:.25!important}
.borders .bd{fill:none;stroke:var(--land-edge);stroke-width:.9;vector-effect:non-scaling-stroke;pointer-events:none}
#map.heat-on .borders .bd{stroke:var(--muted);stroke-opacity:.45}
.regg .rg{stroke:var(--panel);stroke-width:.6;vector-effect:non-scaling-stroke;cursor:pointer;fill-opacity:.9}
#map.heat-on .regg .rg{stroke:var(--muted);stroke-opacity:.55}
.regg .rg:hover{stroke:var(--ink);stroke-opacity:1}
.regg .rg.sel{stroke:var(--ink);stroke-width:2;stroke-opacity:1}
#map.pinning{cursor:crosshair}
.towns circle{fill:var(--panel);stroke:var(--ink);fill-opacity:.85}
.towns circle.act{fill:var(--aud);stroke:var(--panel)}
.towns circle.sel{fill:var(--ink);stroke:var(--panel)}
.tlabels text{fill:var(--ink);font-family:var(--f-body);font-weight:500;paint-order:stroke;stroke:var(--panel);stroke-linejoin:round;stroke-opacity:.9}
.tlabels text.big{font-weight:600}
.rings .ring{fill:var(--aud);fill-opacity:.06;stroke:var(--aud);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-dasharray:5 4}
.rings .ring.r10{fill-opacity:.1;stroke-dasharray:none}
.rings .rlab{fill:var(--aud);font-family:var(--f-mono);font-weight:500;paint-order:stroke;stroke:var(--panel);stroke-width:3px;vector-effect:non-scaling-stroke}
.pins circle{fill:var(--aud);stroke:var(--panel)}
.heatkey i.hk{background:linear-gradient(90deg,#ffe3f3,#f9a8d4,#ec4899,#c026d3,#7e22ce,#3b0764)}
.seg{display:flex;margin-top:10px;border:1px solid var(--line)}
.seg button{flex:1;border:0;background:transparent;padding:6px 8px;font-size:12px;cursor:pointer;white-space:nowrap}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.search{position:relative;margin-top:10px}
.search input{width:100%;font:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.qres{position:absolute;left:0;right:0;top:100%;z-index:20;list-style:none;margin:2px 0 0;padding:0;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 24px var(--shadow);max-height:320px;overflow:auto}
.qres li{padding:7px 10px;cursor:pointer;display:grid;font-size:13px;border-bottom:1px solid var(--line)}
.qres li span{font-size:11.5px;color:var(--muted)}
.qres li:hover,.qres li.on{background:var(--paper)}
.qres li.none{cursor:default;color:var(--muted);font-size:12px}
.crumbs{position:absolute;z-index:4;left:50%;transform:translateX(-50%);top:calc(12px + env(safe-area-inset-top,0px));display:flex;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--line);box-shadow:0 4px 14px var(--shadow);padding:6px 12px;font-size:12.5px;max-width:min(560px,calc(100vw - var(--dw) - 420px));white-space:nowrap;overflow:hidden}
.crumbs button,.pcrumbs button{border:0;background:transparent;padding:0;cursor:pointer;color:var(--aud);font:inherit;font-weight:500}
.crumbs span,.pcrumbs span{color:var(--muted)}
.crumbs b{overflow:hidden;text-overflow:ellipsis}
.pcrumbs{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;padding:12px 16px 0;font-size:12.5px}
.loading{position:absolute;z-index:6;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:12px;padding:6px 12px;font-family:var(--f-mono)}
.toast{position:absolute;z-index:6;left:50%;top:calc(60px + env(safe-area-inset-top,0px));transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:13px;padding:8px 14px}
.mapctl #pinbtn[aria-pressed="true"]{background:var(--aud);color:var(--panel);border-color:var(--aud)}
.sl td small{display:block;font-size:10.5px;color:var(--muted);font-weight:400}
.sl td.mut{color:var(--muted);font-size:11.5px}
.sl.tl,.sl.ct{min-width:0}
.sl.tl td:first-child,.sl.tl th:first-child{white-space:normal}
.sl .up{color:var(--up)} .sl .dn{color:var(--dn)}
.dhead .profhead h2{overflow-wrap:anywhere}
@media (max-width:1180px){ .crumbs{display:none} }
@media (max-width:720px){
  .seg{margin-top:6px} .seg button{padding:5px 6px;font-size:11.5px}
  .search{margin-top:6px} .search input{padding:5px 8px}
  .titlecard{width:calc(100vw - 70px - env(safe-area-inset-left,0px))}
}

/* ---------- UK neighbourhoods ---------- */
.nbg .nb{stroke:var(--panel);stroke-width:.3;stroke-opacity:.6;vector-effect:non-scaling-stroke;cursor:pointer;fill-opacity:.88}
#map:not(.nb-on) .nbg{display:none}
.nbg .nb.inb{stroke:var(--ink);stroke-opacity:.35;stroke-width:.5}
.nbg .nb.sel{stroke:var(--ink);stroke-width:2.2;stroke-opacity:1}
.nbg .nb:hover{stroke:var(--ink);stroke-opacity:1;stroke-width:1}
.cbars{display:grid;gap:5px}
.cb{display:grid;grid-template-columns:minmax(0,11.5em) minmax(0,1fr) 48px;gap:8px;align-items:center;font-size:12.5px}
.cb .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb .t{position:relative;height:10px;background:var(--paper)}
.cb .t i{display:block;height:100%;background:var(--aud);opacity:.75}
.cb.hi .t i{opacity:1}
.cb .t b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);margin-left:-1px}
.cb .v{text-align:right;font-size:11.5px}
.ewk{display:inline-block;width:2px;height:10px;background:var(--ink);vertical-align:-1px;margin-right:4px}
.stack{display:flex;height:16px;overflow:hidden;margin-bottom:6px}
.stack i{display:block;height:100%}
.imdbar{display:flex;height:14px;overflow:hidden}
.imdbar i{display:block;height:100%;min-width:0}
.imdkey{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:3px}
details.more{margin-top:8px;font-size:13px}
details.more summary{cursor:pointer;color:var(--aud);font-weight:500;margin-bottom:8px}
.pcl{font-size:11px;color:var(--muted);line-height:1.6;max-height:180px;overflow:auto;margin:8px 0 0;word-break:break-word}
.chip.copy{border-color:var(--aud);color:var(--aud)}
.copyfb{position:fixed;left:16px;right:16px;bottom:16px;height:120px;z-index:50}
.sl.est td:first-child small{white-space:nowrap}
.sl.areas th{cursor:pointer}
.sl.areas td button,.sl.est td button{border:0;background:transparent;padding:0;font-weight:600;cursor:pointer;text-align:left;color:var(--ink)}
.uk .figs{grid-template-columns:repeat(2,minmax(0,1fr))}
#lyNb[hidden]{display:none}

/* ---------- big search bar and results ---------- */
.qbox{position:absolute;z-index:8;top:calc(12px + env(safe-area-inset-top,0px));left:336px;right:calc(var(--dw) + 60px);max-width:780px;display:flex;align-items:center;gap:6px;background:var(--panel);border:2px solid var(--aud);box-shadow:0 10px 34px var(--shadow);padding:6px 6px 6px 14px;border-radius:14px}
.qbox.open{border-radius:14px 14px 0 0}
.qlogo{color:var(--aud);font-size:18px;line-height:1}
.qbox input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;padding:10px 4px;color:var(--ink);outline:none}
.qbox input::-webkit-search-cancel-button{display:none}
.qgo{border:0;background:var(--aud);color:var(--panel);font:inherit;font-weight:600;font-size:14px;padding:10px 18px;border-radius:10px;cursor:pointer}
.qclear{border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:4px 8px}
.qclear:hover{color:var(--ink)}
.qbox .qres{left:-2px;right:-2px;top:100%;margin:0;border:2px solid var(--aud);border-top:1px solid var(--line);border-radius:0 0 14px 14px;max-height:min(420px,60vh)}
.qres li.ai b{color:var(--aud)}
.qres li .spark,.spark{color:var(--aud);margin-right:6px}
.crumbs{left:336px;transform:none;top:calc(78px + env(safe-area-inset-top,0px));max-width:calc(100vw - var(--dw) - 400px)}
.pinbar{position:absolute;z-index:7;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--aud);color:var(--panel);padding:10px 14px;font-size:14px;font-weight:500;display:flex;gap:12px;align-items:center;border-radius:10px;box-shadow:0 6px 20px var(--shadow)}
.pinbar button{border:1px solid var(--panel);background:transparent;color:var(--panel);font:inherit;font-size:13px;padding:4px 10px;border-radius:6px;cursor:pointer}
.pbar{display:flex;justify-content:space-between;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:2}
.pbar button{border:1px solid var(--line);background:transparent;padding:6px 10px;font:inherit;font-size:12.5px;cursor:pointer;border-radius:8px}
.pbar button:hover:not(:disabled){border-color:var(--ink)}
.pbar button:disabled{opacity:.4;cursor:default}
.srhead h2{margin:4px 0 6px}
.srblock{display:grid;gap:6px;margin:12px 0;padding:12px;background:var(--paper);border-radius:10px}
.srlabel{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{display:inline-flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--aud);border-radius:999px;padding:3px 4px 3px 11px;font-size:12.5px;width:max-content;max-width:100%}
.fchip.place{padding-right:4px}
.fchip b{font-weight:600}
.fchip .fv{width:5.2em;border:0;border-bottom:1px dashed var(--aud);background:transparent;font-size:12.5px;color:var(--ink);padding:1px 2px;text-align:right}
.fx{border:0;background:var(--aud);color:var(--panel);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;margin-left:4px}
.addf select{font:inherit;font-size:12.5px;padding:5px 8px;border:1px dashed var(--aud);background:transparent;color:var(--aud);border-radius:999px}
.srtools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:4px 0 10px}
.seg.sm{margin:0} .seg.sm button{padding:5px 10px}
.srcopy{margin-bottom:10px}
.srlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.srlist li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:4px 8px;padding:10px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.srlist li:hover{background:var(--paper)}
.srlist .rk{color:var(--aud);font-size:12px;padding-top:2px}
.srlist .nm b{display:block;font-weight:600;font-size:14px}
.srlist .nm small{display:block;color:var(--muted);font-size:11.5px}
.srlist .vals{grid-column:2;display:flex;flex-wrap:wrap;gap:4px 14px}
.srlist .vals span{display:grid;font-size:12px}
.srlist .vals i{font-style:normal;color:var(--muted);font-size:10.5px}
.srlist .vals b{font-weight:500}
.srwait{display:grid;justify-items:start;gap:6px;padding:20px 0}
.srwait span{color:var(--muted);font-size:13px}
.spin{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--aud);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}
.relb.ex{font-weight:500}
.hits circle{fill:var(--ink);stroke:#f9a8d4;fill-opacity:.92}
.nbg .nb.fade{fill-opacity:.12}
.nbg .nb.hit{stroke:#ec4899;stroke-width:1.2;stroke-opacity:1}
.chip.danger{border-color:var(--dn);color:var(--dn)}
.sl td .rm{border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:11.5px;padding:3px 8px;border-radius:6px}
.sl td .rm:hover{border-color:var(--dn);color:var(--dn)}
.mapctl button[title]{position:relative}
@media (max-width:1180px){ .crumbs{display:none} }
@media (max-width:1100px) and (min-width:721px){ .qbox{left:12px;top:calc(12px + env(safe-area-inset-top,0px))} .titlecard{top:calc(84px + env(safe-area-inset-top,0px))} }
@media (max-width:720px){
  .qbox{left:12px;right:12px;padding:4px 4px 4px 10px;border-radius:12px}
  .qbox input{font-size:16px;padding:8px 2px}
  .qgo{padding:9px 12px}
  .titlecard{top:calc(76px + env(safe-area-inset-top,0px));max-width:calc(100vw - 70px)}
  .titlecard h1{display:none}
  .titlecard .asof{display:none}
  .pinbar{left:12px;right:12px;transform:none;justify-content:space-between}
}

/* ---------- export menu ---------- */
.exp{position:relative;display:inline-block}
.expbtn{border-color:var(--aud)!important;color:var(--aud);font-weight:600}
.expbtn[aria-expanded="true"]{background:var(--aud);color:var(--panel)}
.expmenu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;min-width:260px;max-width:min(340px,80vw);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px var(--shadow);padding:6px;display:grid;gap:2px}
.expmenu button{border:0;background:transparent;text-align:left;font:inherit;font-size:13px;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--ink)}
.expmenu button:first-child{font-weight:600;color:var(--aud)}
.expmenu button:hover,.expmenu button:focus-visible{background:var(--paper)}
.exprow{margin-top:12px}
.phrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.phrow .ph{margin:16px 0 8px}
.phrow .expmenu{left:auto;right:0}
.sltools{margin-bottom:12px;gap:8px}

/* =========================================================
   Spacing system: 4 · 8 · 12 · 16 · 24 · 32 (overrides above)
   ========================================================= */
:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r:10px}
/* floating map chrome */
.titlecard{width:300px;padding:var(--s4);border-radius:var(--r)}
.titlecard h1{line-height:1}
.titlecard .asof{margin-top:var(--s1)}
.titlecard .seg{margin-top:var(--s3);border-radius:8px;overflow:hidden}
.titlecard .heatkey{margin-top:var(--s3)}
.audctl{margin-top:var(--s3);gap:var(--s2)}
.audctl select{border-radius:8px;padding:7px 10px}
.qbox{left:calc(12px + 300px + var(--s4));top:calc(12px + env(safe-area-inset-top,0px))}
.crumbs{left:calc(12px + 300px + var(--s4));top:calc(86px + env(safe-area-inset-top,0px));padding:var(--s2) var(--s3);border-radius:8px;gap:var(--s2)}
.mapctl{gap:var(--s2);bottom:calc(var(--s4) + env(safe-area-inset-bottom,0px))}
.mapctl button{width:40px;height:40px;border-radius:8px}
/* drawer tabs */
.dtabs{gap:var(--s1);padding:0 var(--s2)}
.dtabs button{padding:var(--s4) var(--s2) 14px;flex:1 1 auto}
.dtabs .x{flex:none;width:44px}
/* panes and sections */
.pad{padding:var(--s4) var(--s4) var(--s6)}
.pad > h2{margin:0}
.sub{margin:var(--s2) 0 var(--s3)}
.detail{padding:0 0 var(--s6)}
.pbar{padding:var(--s3) var(--s4);gap:var(--s3)}
.pbar .sm{display:none}
.pcrumbs{padding:var(--s3) var(--s4) 0;gap:var(--s1) var(--s2)}
.dhead{padding:var(--s4) var(--s4) 0;border-left:0}
.dhead h2{margin:var(--s1) 0 var(--s2)}
.dhead .meta{margin:0}
.profhead{gap:var(--s3)}
.slbtn{margin-top:var(--s1);border-radius:8px;padding:7px 12px}
.exprow{margin-top:var(--s3)}
.sec{padding:0 var(--s4);margin-top:var(--s5)}
.sec h3{margin:0 0 var(--s3);padding-top:var(--s4)}
.sec > p:last-child,.sec > .note:last-child{margin-bottom:0}
.ph,.phrow .ph{margin:var(--s5) 0 var(--s3)}
.sec .ph:first-child{margin-top:0}
.note{margin:var(--s3) 0 0;line-height:1.5}
/* stat tiles and fact grids */
.figs{margin:var(--s3) 0 var(--s4);border-radius:var(--r);overflow:hidden}
.fig{padding:var(--s3) 14px}
.fig .d{margin-top:var(--s1);line-height:1.4}
.facts{border-radius:var(--r);overflow:hidden}
.facts > div{padding:var(--s3) 14px}
.facts .k,.facts .v,.facts .dl{padding:0}
.facts .v{margin-top:2px}
.facts .dl{margin-top:var(--s1)}
.ins{margin:0 0 var(--s4);padding:var(--s3) var(--s4) var(--s3) 30px;gap:var(--s2);border-radius:0 var(--r) var(--r) 0}
.status{margin-top:var(--s3);padding:var(--s3) 14px;border-radius:8px}
/* chips, buttons, lists */
.chips{gap:var(--s2)}
.chip{padding:6px 12px;font-size:12.5px;line-height:1.3}
.rel{gap:var(--s2)}
.relb{padding:var(--s3) 14px;border-radius:8px;gap:var(--s2)}
.optrow{gap:var(--s2)}
.bench{margin-bottom:var(--s3)}
.agekey{gap:var(--s1) var(--s3);margin-bottom:var(--s3)}
.agerow{margin-bottom:var(--s2)}
.cbars{gap:var(--s2)}
.cb{gap:var(--s3)}
.stack{border-radius:4px;margin-bottom:var(--s2)}
.imdbar{border-radius:4px}
.imdkey{margin-top:var(--s1)}
details.more{margin-top:var(--s3)}
details.more summary{margin-bottom:var(--s3)}
.hcg{gap:var(--s4) var(--s4);margin-top:var(--s3)}
.pcl{margin:var(--s3) 0 0}
/* tables */
.slwrap{border-radius:var(--r)}
.sl th,.sl td{padding:9px 10px}
.sl th{padding-top:10px;padding-bottom:10px}
.sl td small{margin-top:2px}
.sl.est td:first-child{min-width:170px}
/* search panel */
.srhead h2{margin:var(--s1) 0 var(--s2)}
.srblock{gap:var(--s2);margin:var(--s4) 0;padding:14px var(--s4)}
.srlabel{margin-top:var(--s2)}
.srlabel:first-child{margin-top:0}
.fchips{gap:var(--s2)}
.addf{margin-top:var(--s1)}
.srtools{margin:var(--s4) 0 var(--s3)}
.srcopy{margin-bottom:var(--s4)}
.srlist li{padding:var(--s3) var(--s1);gap:var(--s1) var(--s3)}
.srlist .vals{gap:var(--s1) var(--s4);margin-top:var(--s1)}
.srwait{gap:var(--s2);padding:var(--s5) 0}
/* countries pane */
.audpick{gap:var(--s3);margin-top:var(--s2)}
#audreg{margin:var(--s3) 0 var(--s2)}
.audlist li{padding:var(--s2) var(--s1);gap:var(--s3)}
/* sources */
.srcl{gap:var(--s3)}
.plain{gap:var(--s3);padding-left:20px}
/* shortlist */
.sltools{margin-bottom:var(--s4)}
/* export menu sits above everything */
.expmenu{position:fixed;z-index:60;left:0;top:0;min-width:0;padding:var(--s2);gap:2px}
.expmenu button{padding:10px var(--s3)}
/* empty place pane */
.empty .chips{margin-top:var(--s3)}

/* ---------- phones ---------- */
@media (max-width:720px){
  .qbox{left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px))}
  .titlecard{width:auto;max-width:calc(100vw - 70px);top:calc(80px + env(safe-area-inset-top,0px));padding:var(--s3)}
  .titlecard .seg{margin-top:0}
  .drawer{top:calc(78px + env(safe-area-inset-top,0px));border-radius:var(--r) 0 0 0;padding-top:0}
  .dtabs{overflow-x:auto;scrollbar-width:none;padding:0 var(--s1)}
  .dtabs::-webkit-scrollbar{display:none}
  .dtabs button{flex:none;padding:14px 10px 12px;font-size:13px}
  .dtabs .x{position:sticky;right:0;background:var(--panel);margin-left:auto}
  .pbar .lg{display:none} .pbar .sm{display:inline}
  .hcg{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
  .cb{grid-template-columns:minmax(0,9.5em) minmax(0,1fr) 44px;gap:var(--s2)}
  /* tables become stacked cards */
  .slwrap{overflow:visible;border:0}
  .sl{min-width:0!important}
  .sl thead{display:none}
  .sl,.sl tbody{display:block}
  .sl tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2) var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);margin-bottom:var(--s2)}
  .sl td{display:block;padding:0;border:0;text-align:left!important;white-space:normal;min-width:0!important}
  .sl td::before{content:attr(data-l);display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .sl td:first-child{grid-column:1/-1}
  .sl td:first-child::before{display:none}
  .sl td:last-child:empty{display:none}
  .sl td .rm{margin-top:var(--s1)}
  .sl tr.tot{background:var(--paper)}
  .crumbs{display:none}
}
/* leftovers */
.titlecard h1{font-size:30px;white-space:nowrap}
.titlecard .edition{margin-left:var(--s2);vertical-align:5px}
.titlecard .audctl .heatkey{margin-top:0}
.titlecard .audctl{margin-top:var(--s3)}
@media (max-width:720px){
  :root{--dw:100vw}
  .drawer{width:100vw;border-radius:var(--r) var(--r) 0 0;border-left:0}
  .drawer.open .handle{display:none}
  .dtabs{padding:0}
  .dtabs button{padding:14px 9px 12px;font-size:12.5px}
  .dtabs .x{position:static;margin-left:auto}
}

/* ---------- e-commerce and targeting ---------- */
.livebadge{display:inline-block;margin:var(--s2) 0 var(--s3);padding:4px 10px;border-radius:999px;background:var(--paper);font-size:12px;color:var(--muted)}
.livebadge.on{background:var(--aud-bg);color:var(--aud);font-weight:600}
.sec.flat{padding:0;margin-top:var(--s5)}
.mchart{display:block;width:100%;height:auto;overflow:visible}
.mchart .gl{stroke:var(--line);stroke-width:.6}
.mchart .tl,.mchart .xl{fill:var(--muted);font-family:var(--f-mono);font-size:9px}
.mchart .tl{paint-order:stroke;stroke:var(--panel);stroke-width:2.5px}
.mchart .ln{fill:none;stroke:var(--aud);stroke-width:2;stroke-linejoin:round}
.mchart .ld{fill:var(--aud);stroke:var(--panel);stroke-width:1.5}
.eulist{display:grid;gap:6px}
.eu{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr) 64px;gap:var(--s3);align-items:center;font-size:12.5px}
.eu.link{cursor:pointer} .eu.link:hover .l{color:var(--aud)}
.eu .l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eu .t{height:10px;background:var(--paper);border-radius:3px;overflow:hidden}
.eu .t i{display:block;height:100%;background:var(--aud)}
.eu .v{text-align:right;font-size:11.5px} .eu .v small{color:var(--muted)}
.tgform{display:flex;gap:var(--s2);margin-top:var(--s1)}
.tgin{flex:1;min-width:0;font:inherit;font-size:14px;padding:10px 12px;border:2px solid var(--aud);border-radius:10px;background:var(--panel);color:var(--ink)}
.tgout{margin-top:var(--s4)}
.tgplan > p{margin:0 0 var(--s3)}
.tgplan .srlabel{margin:var(--s3) 0 var(--s2)}
.adg{border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);margin-bottom:var(--s2)}
.adgh{display:flex;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s2);font-size:13px}
.adgh .mono{color:var(--muted);font-size:11px}
.kws{display:flex;flex-wrap:wrap;gap:6px}
.kw{font-family:var(--f-mono);font-size:11.5px;padding:3px 8px;border-radius:6px;background:var(--paper);border:1px solid var(--line)}
.kw.exact{border-color:var(--aud);color:var(--aud)}
.kw.neg{color:var(--dn);border-color:var(--line)}
@media (max-width:720px){ .tgform{flex-direction:column} .eu{grid-template-columns:minmax(0,7.5em) minmax(0,1fr) 54px} }

/* ---------- country view tabs and e-commerce laws ---------- */
.ctabs{display:flex;gap:var(--s1);padding:0 var(--s4);margin-top:var(--s4);border-bottom:1px solid var(--line)}
.ctabs button{border:0;background:transparent;padding:var(--s2) var(--s3);font-size:13.5px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.ctabs button[aria-selected="true"]{color:var(--ink);font-weight:600;border-bottom-color:var(--aud)}
.lawsum{font-size:15px;margin:0 0 var(--s2)}
.lawnav{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.lawdl{margin:var(--s3) 0 0;display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.lawdl>div{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:var(--s3);padding:var(--s3) 14px;background:var(--panel)}
.lawdl>div+div{border-top:1px solid var(--line)}
.lawdl dt{font-weight:600;font-size:13px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s1)}
.lawdl dd{margin:0;font-size:13.5px}
.lawdl dd small{display:block;margin-top:var(--s1);color:var(--muted);font-size:12px}
.lawdl .tag,.fxtags .tag{display:inline-block;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;padding:2px 6px;border-radius:999px;background:var(--aud-bg);color:var(--aud)}
.lawlinks{margin:var(--s2) 0 0;padding-left:18px;font-size:13px;display:grid;gap:var(--s1)}
.lawlinks a{color:var(--ink)}
.lawsec{scroll-margin-top:var(--s4)}
@media (max-width:720px){ .lawdl>div{grid-template-columns:1fr;gap:var(--s1)} }

/* ---------- Finder: list view ---------- */
.tofinder{display:flex;align-items:center;gap:var(--s2);width:100%;margin-top:var(--s3);border:1px solid var(--aud);background:var(--aud-bg);color:var(--aud);padding:var(--s2) var(--s3);border-radius:8px;font-size:13px;cursor:pointer;text-align:left}
.tofinder span{color:var(--ink);opacity:.8;font-size:12px}
.tofinder:hover{background:var(--aud);color:var(--panel)} .tofinder:hover span{color:var(--panel)}
body.fxon .qbox,body.fxon .drawer,body.fxon .mapctl,body.fxon .crumbs,body.fxon .titlecard{visibility:hidden}
.finder{position:absolute;inset:0;z-index:30;background:var(--paper);overflow-y:auto;-webkit-overflow-scrolling:touch}
.fxtop{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s5);padding-top:calc(var(--s3) + env(safe-area-inset-top,0px));background:var(--panel);border-bottom:1px solid var(--line)}
.fxbrand{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase;line-height:1}
.fxbrand .edition{display:inline-block;vertical-align:3px;margin-left:8px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;background:var(--aud);color:var(--panel);padding:2px 7px}
.fxwrap{max-width:1040px;margin:0 auto;padding:var(--s5) var(--s5) var(--s6)}
.fxhero h2{font-family:var(--f-display);font-weight:800;font-size:clamp(32px,5vw,52px);line-height:.95;text-transform:uppercase;margin:0 0 var(--s2)}
.fxhero>.sub{max-width:680px;margin:0 0 var(--s4)}
.fxq{display:flex;align-items:center;gap:6px;background:var(--panel);border:2px solid var(--aud);box-shadow:0 10px 34px var(--shadow);padding:6px 6px 6px 14px;border-radius:14px}
.fxq input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:17px;padding:12px 4px;color:var(--ink);outline:none}
.fxq .qlogo{color:var(--aud)}
.fxeg{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.fxconn{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.fxpill{font-size:11.5px;color:var(--muted);padding:3px 10px;border-radius:999px;border:1px dashed var(--line)}
.fxpill.on{color:var(--ink);border-style:solid;background:var(--panel)}
#fxout{margin-top:var(--s5)}
#fxout .srwait{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.srwait.sm{padding:var(--s3);flex-direction:row;gap:var(--s2);align-items:center}
.fxsum{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s5) var(--s5)}
.fxsumh{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3);flex-wrap:wrap}
.fxsum h3{margin:2px 0 var(--s2);font-size:20px}
.fxsum .kind{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--aud)}
.fxsum p{margin:var(--s2) 0}
.fxread{display:grid;gap:var(--s2);margin:var(--s3) 0}
.fxread>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fxread b{font-size:12px;min-width:150px;color:var(--muted);font-weight:600}
.chip.on{background:var(--aud-bg);border-color:var(--aud);color:var(--aud)}
.fxctx{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:var(--s4) 0 0}
.fxctx .fig{display:flex;flex-direction:column;gap:var(--s1)}
.fxctx .n{font-size:24px;font-weight:600}
.fxctx .d{font-size:12.5px;color:var(--muted)}
.fxlaw .relb{margin-top:auto}
.fxtr,.fxstrat{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line)}
.fxtr h3,.fxstrat h3{font-size:14px;margin:0 0 var(--s2)}
.fxstrat{background:var(--aud-bg);border:0;border-left:4px solid var(--aud);padding:var(--s3) var(--s4);border-radius:0 8px 8px 0}
.fxstrat p{margin:0 0 var(--s2)}
.fxcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s4);font-size:13.5px}
.fxcols ul{margin:var(--s1) 0 0;padding-left:18px}
.fxlist{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s3)}
.fxcard{display:grid;grid-template-columns:76px 1fr;gap:var(--s4);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.fxscore{display:flex;flex-direction:column;align-items:center;gap:var(--s1)}
.fxrank{font-size:12px;color:var(--muted)}
.ring{--v:50;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--aud) calc(var(--v)*1%),var(--line) 0)}
.ring b{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--panel);font-size:18px}
.fxscore small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.fxhead{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3);flex-wrap:wrap}
.fxhead h4{margin:0;font-size:18px}
.fxtags{display:flex;flex-wrap:wrap;gap:6px}
.fxtags .tag.warn{background:var(--high-bg);color:var(--high)}
.fxgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3);margin:var(--s3) 0}
.fxgrid>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.fxgrid b{font-size:11px;font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.fxgrid .big{font-size:20px;font-weight:600}
.fxgrid span{font-size:12.5px}
.fxbars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px var(--s4)}
.fxbar{display:grid;grid-template-columns:130px 1fr 28px;align-items:center;gap:var(--s2);font-size:12px;color:var(--muted)}
.fxbar i{display:block;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.fxbar i b{display:block;height:100%;background:var(--aud)}
.fxbar em{font-style:normal;text-align:right;color:var(--ink)}
.fxwhy:not(:empty){margin-top:var(--s3);font-size:13.5px;padding:var(--s2) var(--s3);background:var(--paper);border-radius:8px}
.fxwhy p{margin:2px 0}
.fxmore{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:var(--s2)}
.fxmore summary{cursor:pointer;font-size:13px;font-weight:600;padding:var(--s1) 0}
.fxin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin-top:var(--s3)}
.fxin>div>b{display:block;font-size:12px;color:var(--muted);margin-bottom:var(--s1)}
.fxin p{margin:0;font-size:13px}
.fxin .chip{margin-top:var(--s2)}
.sl.mini{width:100%;font-size:12.5px;margin-top:var(--s1)} .sl.mini td{padding:4px 6px}
.fxact{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.fxsrc{margin-top:var(--s4)}
.fxtr details{margin-top:var(--s2)}
@media (max-width:820px){ .fxgrid{grid-template-columns:repeat(2,minmax(0,1fr))} .fxin{grid-template-columns:1fr} .fxbars{grid-template-columns:1fr} }
@media (max-width:560px){
  .fxtop{padding:var(--s2) var(--s4)} .fxwrap{padding:var(--s4) var(--s4) var(--s6)} .fxbrand{font-size:20px}
  .fxq{padding:4px 4px 4px 10px;border-radius:12px} .fxq input{font-size:16px;padding:9px 2px}
  .fxcard{grid-template-columns:1fr;gap:var(--s3);padding:var(--s3) var(--s4)} .fxscore{flex-direction:row;justify-content:flex-start;gap:var(--s3)}
  .ring{width:48px;height:48px} .ring b{width:36px;height:36px;font-size:15px}
  .fxsum{padding:var(--s3) var(--s4) var(--s4)} .fxread b{min-width:0;width:100%}
  .fxbar{grid-template-columns:120px 1fr 26px} .fxeg .chip{font-size:12px}
}
.sl.mini{min-width:0}
.sl.mini td,.sl.mini th{white-space:normal;padding:5px 6px}
.fxmain,.fxin>div,.fxgrid>div{min-width:0}
.fxvolout,.fxplout{overflow-x:auto}

/* disclaimers */
.discl{margin:var(--s4) 0;padding:var(--s3) var(--s4);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:0 8px 8px 0;background:var(--paper);font-size:12.5px;color:var(--muted);line-height:1.55}
.discl b{color:var(--ink)} .discl p{margin:0 0 var(--s2)} .discl p:last-child{margin:0} .discl .ph{margin:0 0 var(--s2)}
.about .discl{font-size:13px}
.discls{margin-top:var(--s3)} .discls a,.tcdiscl a{color:inherit;text-decoration:underline}
.tcdiscl{margin:var(--s2) 0 0;font-size:11px;color:var(--muted)}
.fxhero .discls{max-width:680px}

/* ---------- report view (main view): header search, full-width reports; the map is an optional extra ---------- */
.rvbar{display:none}
body.rv .rvbar{display:flex;position:fixed;z-index:12;top:0;left:0;right:0;align-items:center;gap:var(--s4);padding:var(--s3) var(--s5);padding-top:calc(var(--s3) + env(safe-area-inset-top,0px));background:var(--panel);border-bottom:1px solid var(--line)}
.rvbrand{font-family:var(--f-display);font-weight:800;font-size:26px;line-height:1;text-transform:uppercase;white-space:nowrap}
.rvbrand .edition{display:inline-block;vertical-align:4px;margin-left:var(--s2);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;background:var(--aud);color:var(--panel);padding:2px 7px}
.rvq{flex:1;min-width:0;display:flex;justify-content:center}
body.rv .qbox{position:relative;top:auto;left:auto;right:auto;width:100%;max-width:820px;box-shadow:0 6px 22px var(--shadow)}
.rvmap{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:9px 16px;font-size:13px;cursor:pointer;white-space:nowrap}
.rvmap:hover{border-color:var(--aud);color:var(--aud)}
body.rv #mapbox,body.rv .titlecard,body.rv .mapctl,body.rv .crumbs,body.rv .pinbar{visibility:hidden}
body.rv .drawer{top:var(--hh,76px)!important;left:0;right:0;bottom:0;width:auto!important;transform:none!important;transition:none;border-left:0;box-shadow:none;background:var(--paper);border-radius:0!important;padding-top:0}
body.rv .handle,body.rv .dtabs .x{display:none!important}
body.rv .dtabs{justify-content:center;background:var(--panel);padding:0 var(--s4);overflow-x:auto;scrollbar-width:none}
body.rv .dtabs::-webkit-scrollbar{display:none}
body.rv .dtabs button{flex:none;padding:14px var(--s3) 12px;font-size:13.5px}
body.rv .pane>.pad,body.rv #profbody:not(:empty){max-width:980px;margin:var(--s5) auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
body.rv #profbody:not(:empty){overflow:hidden}
body.rv .fxwrap{max-width:1040px;margin:0 auto;padding:var(--s5) var(--s5) var(--s6)}
.fxhero .kind{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--aud)}
body:not(.rv) .fxwrap{padding:var(--s4)}
@media (max-width:720px){
  body.rv .rvbar{flex-wrap:wrap;gap:var(--s2) var(--s3);padding:var(--s2) var(--s3);padding-top:calc(var(--s2) + env(safe-area-inset-top,0px))}
  .rvbrand{font-size:21px;flex:1}
  .rvq{order:3;flex-basis:100%}
  .rvmap{padding:7px 12px;font-size:12.5px}
  body.rv .dtabs{justify-content:flex-start;padding:0}
  body.rv .pane>.pad,body.rv #profbody:not(:empty){margin:0;border:0;border-radius:0;max-width:none}
  body.rv .fxwrap{padding:var(--s4) var(--s4) var(--s6)}
}
.fxwrap.has .fxhero .kind,.fxwrap.has .fxhero h2,.fxwrap.has .fxhero>.sub,.fxwrap.has .fxhero .fxeg{display:none}
.fxwrap.has .fxhero .fxconn{margin-top:0}
.fxwrap.has #fxout{margin-top:var(--s3)}
.fxdem:not(:empty){margin-top:var(--s3);font-size:13px;padding:var(--s2) var(--s3);border-radius:8px;border:1px solid var(--aud);background:var(--aud-bg)}
.fxdem b{color:var(--aud);margin-right:4px}
.kw i{font-style:normal;color:var(--aud);margin-left:2px}
.fxhand{margin-top:var(--s4);padding:var(--s4);border-radius:var(--r);background:var(--ink);color:var(--paper);display:grid;gap:var(--s3)}
.fxhand>div:first-child{display:flex;flex-direction:column;gap:var(--s1)}
.fxhand b{font-size:15px} .fxhand span{font-size:13px;opacity:.85}
.fxhbtn{display:flex;flex-wrap:wrap;gap:var(--s2)}
.fxhand .chip{border-color:rgba(255,255,255,.35);color:var(--paper)}
.fxhand .note{color:var(--paper);opacity:.7;margin:0} .fxhand .note a{color:inherit}
.fxpill a{color:inherit;text-decoration:underline}

/* ---------- calm interface: neutral chrome, colour reserved for the data ----------
   Purple (--aud) now marks data only: fit rings, score bars, charts, map shading and catchment rings.
   Buttons, tabs, labels and panels use ink and neutral greys; up/down changes use green/red. */
:root{--paper:#F4F4F1;--panel:#FFFFFF;--ink:#18181B;--muted:#5E5F66;--line:#E1E1DC;--land:#E5E5E1;--land-edge:#F4F4F1;--sea:#EEEEEA;
  --chip:#F0F0EC;--up:#1F7A4D;--dn:#C0392B;--good:#1F7A4D;--good-bg:#E6F2EC;--warn:#B45309;--warn-bg:#FBEFDD}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--paper:#121214;--panel:#1B1B1F;--ink:#ECECEF;--muted:#A1A1AA;--line:#2E2E34;--land:#26262B;--land-edge:#121214;--sea:#0F0F11;
  --chip:#242428;--up:#4ADE80;--dn:#F87171;--good:#4ADE80;--good-bg:#12291D;--warn:#FBBF24;--warn-bg:#2E2410}}
:root[data-theme="dark"]{--paper:#121214;--panel:#1B1B1F;--ink:#ECECEF;--muted:#A1A1AA;--line:#2E2E34;--land:#26262B;--land-edge:#121214;--sea:#0F0F11;
  --chip:#242428;--up:#4ADE80;--dn:#F87171;--good:#4ADE80;--good-bg:#12291D;--warn:#FBBF24;--warn-bg:#2E2410}
/* brand marks and buttons */
.titlecard .edition,.fxbrand .edition,.rvbrand .edition{background:var(--ink);color:var(--panel)}
.qgo,.fx{background:var(--ink);color:var(--panel)}
.qgo:hover{filter:none;opacity:.88}
.qbox,.fxq{border:1px solid var(--line);box-shadow:0 6px 24px rgba(0,0,0,.08)}
.qbox:focus-within,.fxq:focus-within{border-color:var(--ink)}
.qbox .qres{border:1px solid var(--line);border-top:1px solid var(--line)}
.qlogo,.fxq .qlogo,.qres li .spark,.spark{color:var(--muted)}
.qres li.ai b{color:var(--ink)}
.handle{background:var(--ink)}
.pinbar,.mapctl #pinbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
/* navigation and labels */
.crumbs button,.pcrumbs button{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.drawer .dtabs .mono{color:var(--muted)}
.ctabs button[aria-selected="true"]{border-bottom-color:var(--ink)}
.fxsum .kind,.fxhero .kind{color:var(--muted)}
details.more summary{color:var(--ink)}
.srlist .rk{color:var(--muted)}
.spin{border-top-color:var(--ink)}
/* controls */
.slbtn{border-color:var(--line);color:var(--ink)}
.slbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.expbtn{border-color:var(--line)!important;color:var(--ink)}
.expbtn[aria-expanded="true"]{background:var(--ink);color:var(--panel)}
.expmenu button:first-child{color:var(--ink)}
.chip.copy{border-color:var(--line);color:var(--ink)}
.chip.on{background:var(--chip);border-color:var(--line);color:var(--ink)}
.fchip{border-color:var(--line)} .fchip .fv{border-bottom-color:var(--muted)}
.addf select{border-color:var(--line);color:var(--ink)}
.tgin{border:1px solid var(--line)} .tgin:focus{border-color:var(--ink);outline:none}
.kw.exact{border-color:var(--ink);color:var(--ink)}
.tofinder{border-color:var(--line);background:var(--panel);color:var(--ink)}
.tofinder:hover{background:var(--ink);color:var(--panel)}
.rvmap:hover{border-color:var(--ink);color:var(--ink)}
.livebadge.on{background:var(--good-bg);color:var(--good)}
.yrrow input{accent-color:var(--ink)}
/* panels: neutral, so the figures inside carry the weight */
.ins{background:var(--paper);border-left-color:var(--ink)}
.dhead{border-left-color:var(--ink)}
.fxstrat{background:var(--paper);border-left-color:var(--ink)}
.fxdem:not(:empty){border:1px solid var(--line);background:var(--paper)}
.fxdem b{color:var(--muted);font-weight:500}
.fxdem .mono{font-weight:600;color:var(--ink)}
.kw i{color:var(--ink);font-weight:600}
.lawdl .tag,.fxtags .tag{background:var(--chip);color:var(--muted)}
.fxtags .tag.good{background:var(--good-bg);color:var(--good)}
.fxtags .tag.warn{background:var(--warn-bg);color:var(--warn)}
.fxgrid .big{color:var(--ink)}
.fxhand .qgo{background:var(--panel);color:var(--ink)}

/* ---------- brand: white, purple and mint green ---------- */
:root{--brand:#7B2FD6;--brand-ink:#FFFFFF;--brand-bg:#F3EAFC;--mint:#3EB489;--mint-bg:#E6F7EF;--mint-ink:#16704F}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--brand:#C08CFF;--brand-ink:#1B0F2A;--brand-bg:#2A1A3D;--mint:#5FD3A6;--mint-bg:#123227;--mint-ink:#7BE3BB}}
:root[data-theme="dark"]{--brand:#C08CFF;--brand-ink:#1B0F2A;--brand-bg:#2A1A3D;--mint:#5FD3A6;--mint-bg:#123227;--mint-ink:#7BE3BB}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--paper:#FFFFFF;--line:#E4E9E6;--chip:#F1FAF5;--land:#E9EEEB;--sea:#F6FBF8;--land-edge:#FFFFFF}}
:root[data-theme="light"]{--paper:#FFFFFF;--line:#E4E9E6;--chip:#F1FAF5;--land:#E9EEEB;--sea:#F6FBF8;--land-edge:#FFFFFF}
body{background:var(--paper)}
.titlecard .edition,.fxbrand .edition,.rvbrand .edition{background:var(--brand);color:var(--brand-ink)}
.qgo,.fx,.fxbig button{background:var(--brand);color:var(--brand-ink)}
.qbox:focus-within,.fxq:focus-within,.fxbig:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-bg)}
.qlogo,.spark{color:var(--brand)}
.ctabs button[aria-selected="true"],.dtabs button[aria-selected="true"]{border-bottom-color:var(--brand);color:var(--brand)}
.chip:hover{border-color:var(--mint)} .chip.on,.chip[aria-pressed="true"]{background:var(--mint-bg);border-color:var(--mint);color:var(--mint-ink)}
.fxpill.on,.livebadge.on{background:var(--mint-bg);border-color:transparent;color:var(--mint-ink)}
.fxsum .kind,.fxhero .kind{color:var(--brand)}
.ins,.fxstrat,.dhead{background:var(--mint-bg);border-left-color:var(--mint)}
.fxdem:not(:empty){background:var(--chip);border-color:var(--line)}
.fxtags .tag.good{background:var(--mint-bg);color:var(--mint-ink)}
.slbtn[aria-pressed="true"],.expbtn[aria-expanded="true"],.pinbar,.mapctl #pinbtn[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.tofinder:hover{background:var(--brand);color:var(--brand-ink)}
.rvmap:hover{border-color:var(--brand);color:var(--brand)}
.spin{border-top-color:var(--brand)}
.handle{background:var(--brand)}
.kw.exact{border-color:var(--brand);color:var(--brand)}
/* big search on the Where to sell page */
.fxbig{display:flex;align-items:center;gap:8px;max-width:760px;margin:18px 0 6px;padding:6px 6px 6px 16px;background:var(--panel);border:1.5px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(123,47,214,.08)}
.fxbig .qlogo{font-size:18px}
.fxbig input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:16px;color:var(--ink);padding:10px 0}
.fxbig button{border:0;border-radius:10px;padding:12px 18px;font:600 15px var(--f-body);cursor:pointer;white-space:nowrap}
@media (max-width:560px){.fxbig button{padding:12px 14px}}
.fxhand{background:var(--brand)!important;color:#FFFFFF}
.fxhand .qgo{background:#FFFFFF;color:var(--brand)}
