/* ==========================================================================
   Audience Analytics — a Qube Cinema product
   Stylesheet. Extracted verbatim from v20 and extended with the Qube
   masthead / brand layer at the end of this file.
   ========================================================================== */

:root{
  --paper:#FBF8F5; --panel:#FFFFFF; --ink:#3A322F; --ink-soft:#6E625C; --ink-faint:#9C918A;
  --line:#EBE3DE; --line-strong:#D8CCC4;
  --marquee:#C97F68; --marquee-soft:#FBF1EB;
  --flag:#6E625C; --flag-soft:#F5EFEB;
  --good:#7E4232; --good-soft:#F2D8CB;
  --blue:#C97F68; --blue-soft:#FBF1EB;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:'Inter',system-ui,sans-serif;font-size:15px;line-height:1.6}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px 80px}
header{padding:44px 0 28px;border-bottom:2px solid var(--ink)}
.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--marquee);font-weight:600;margin-bottom:10px}
h1{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:clamp(30px,5vw,46px);line-height:1.08;letter-spacing:-.01em}
.sub{margin-top:12px;max-width:660px;color:var(--ink-soft)}
.sub b{color:var(--ink);font-weight:600}
nav{display:flex;border-bottom:1px solid var(--line-strong);margin:0 0 28px;overflow-x:auto}
nav button{appearance:none;background:none;border:none;border-bottom:3px solid transparent;padding:14px 18px 12px;font:inherit;font-weight:600;font-size:14px;color:var(--ink-faint);cursor:pointer;white-space:nowrap}
nav button:hover{color:var(--ink)}
nav button small{display:block;font-weight:500;font-size:11px;color:var(--ink-faint);margin-top:2px;letter-spacing:0}
nav button.on small{color:var(--ink-soft)}
th[title]{cursor:help}
th[title]::after{content:" ⓘ";font-size:10px;color:var(--ink-faint);font-weight:400}
.clickhint{font-size:12px;color:var(--ink-faint);margin:6px 0 0}
.glossary dt{font-weight:700;font-size:13.5px;margin-top:12px}
.glossary dd{margin:2px 0 0;font-size:13px;line-height:1.55;color:var(--ink-soft);max-width:80ch}
.ctlgrp{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;row-gap:10px}
.ctlgrp .g{display:flex;flex-direction:column;gap:5px}
.ctlgrp .g>span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:700}
.ctlgrp .g>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
nav button.on{color:var(--ink);border-bottom-color:var(--marquee)}
nav button:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.view{display:none}.view.on{display:block}
h2{font-family:'Inter',system-ui,sans-serif;font-weight:600;font-size:22px;margin-bottom:4px}
.hint{color:var(--ink-soft);font-size:13px;margin:0;max-width:78ch;line-height:1.55}
.about{margin:0 0 14px}
.about summary{cursor:pointer;font-size:12px;color:var(--ink-faint);list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}
.about summary::-webkit-details-marker{display:none}
.about summary::before{content:"i";display:inline-flex;width:15px;height:15px;border-radius:50%;border:1px solid var(--ink-faint);font:700 10px/15px Inter,system-ui;justify-content:center}
.about[open] summary{color:var(--ink)}
.about>div{margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.about .hint+.hint{margin-top:8px}
.ctl{font:inherit;font-size:12.5px;font-weight:400;text-transform:none;letter-spacing:0;padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel);color:var(--ink);max-width:290px}
input.ctl{width:140px}
.lead{font-size:13.5px;color:var(--ink-soft);margin:4px 0 0;max-width:78ch;line-height:1.5}
.lead-block{margin:-6px 0 14px}
.toph{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.toph h2{margin:0}
.mkcard{gap:5px;padding:10px 12px}
.mkcard .wh{display:none;font-size:11.5px;color:var(--ink-soft)}
.mkcard .vstatus{font-size:11px;color:var(--ink-faint);margin-top:6px;min-height:0}
.mkcard .places li b small{font-weight:500;color:var(--ink-faint);font-size:11px;margin-left:4px}
.mkcard[open] .wh,.mkcard.show .wh{display:block}
.mkcard .t b{font-size:12.5px}
.mkcard .more{font-size:11px;color:var(--ink-faint);cursor:pointer;text-decoration:underline dotted}
.mkbrief summary{cursor:pointer;font-weight:700;font-size:13.5px;list-style:none;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mkbrief summary::-webkit-details-marker{display:none}
.mkbrief summary span{font-weight:500;color:var(--ink-soft);font-size:12.5px}
.mkbrief[open] summary{margin-bottom:8px}
.ico{font:inherit;font-size:12px;padding:5px 12px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper);color:var(--ink-soft);cursor:pointer}



@media print{}
.controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;align-items:center}
.controls button{appearance:none;font:inherit;font-size:13px;font-weight:500;padding:7px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel);color:var(--ink-soft);cursor:pointer}
.controls button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.controls button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
select{font:inherit;font-size:13.5px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);color:var(--ink);max-width:320px}
.chartbox{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 18px 10px;margin-bottom:22px}
.chartinner{position:relative;width:100%}
table.grid{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:13px;table-layout:auto}
#tblWrap{overflow-x:auto;border-radius:10px}
.grid{width:100%;max-width:100%}
.grid .pill{white-space:nowrap}
.grid thead th{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);text-align:right;padding:8px 8px 6px;border-bottom:2px solid var(--line-strong);vertical-align:bottom;line-height:1.25;white-space:nowrap;cursor:pointer;user-select:none}
.grid thead th small{display:block;font-size:9.5px;letter-spacing:.04em;text-transform:none;color:var(--ink-faint);font-weight:500;white-space:nowrap}
.grid thead th.l{text-align:left}
.grid thead th.l small{margin-left:0}
.grid thead th.srt{color:var(--ink)}
.grid thead th[title]::after{content:" ⓘ";font-size:9px}
.grid td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;font-size:12.5px}
.grid td.num{text-align:right;font-variant-numeric:tabular-nums}
.grid td.rk{color:var(--ink-faint);font-size:11.5px;width:26px}
.grid tbody tr{cursor:pointer}
.grid tbody tr.refrow{cursor:default;background:#F7F2EE}
.grid tbody tr.refrow:hover td{background:#F7F2EE}
.grid tbody tr.refrow td{border-bottom:1px solid var(--line-strong)}
.grid tbody tr:hover td{background:rgba(201,127,104,.10)}
.grid .lang-name{font-weight:600}
.grid .pill{font-size:10.5px;padding:2px 8px}
.grid .pill.sup{display:inline-flex;justify-content:center;align-items:center;width:44px;box-sizing:border-box;padding:3px 0;font-weight:500}
.grid .pill.sup b{font-weight:600;font-variant-numeric:tabular-nums}
.grid .pill.sup span{font-size:10px;letter-spacing:0;opacity:.9}
.grid td small{color:var(--ink-faint);font-size:10.5px;font-weight:500}
table.grid thead th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--line-strong);cursor:pointer;user-select:none;white-space:nowrap}
table.grid thead th:hover{color:var(--ink)}
table.grid tbody td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
table.grid tbody tr:last-child td{border-bottom:none}
table.grid tbody tr{cursor:pointer}
table.grid tbody tr:hover td{background:var(--marquee-soft)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.lang-name{font-weight:600}
.pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}
.pill.gap{background:#FBF1EB;color:#6E625C;border:1px solid #D8CCC4}
.pill.served{background:#9A5340;color:#fff}
.pill.partial{background:#F2D8CB;color:#9A5340}
.growth-up{color:#9A5340}.growth-down{color:#9C918A}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.maplayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}
@media(max-width:900px){.grid2,.maplayout{grid-template-columns:1fr}}
.sliders{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px}
.sliders h3{font-size:14px;font-weight:600;margin-bottom:4px}
.sliders p{font-size:12.5px;color:var(--ink-soft);margin-bottom:16px}
.srow{margin-bottom:14px}
.srow label{display:flex;justify-content:space-between;font-size:13px;font-weight:500;margin-bottom:4px}
.srow label span{color:var(--marquee);font-variant-numeric:tabular-nums}
.srow small{display:block;color:var(--ink-faint);font-size:11.5px;margin-top:2px;line-height:1.45}
input[type=range]{width:100%;accent-color:var(--marquee)}
input[type=range]:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ranklist{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 0;max-height:560px;overflow-y:auto}
.rrow{display:grid;grid-template-columns:34px 1fr 110px 54px;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line);cursor:pointer}
.rrow:last-child{border-bottom:none}
.rrow:hover{background:var(--marquee-soft)}
.rrow .rk{font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:17px;color:var(--ink-faint)}
.rrow:nth-child(-n+3) .rk{color:var(--marquee)}
.rrow .nm{font-weight:600;font-size:14px}
.rrow .nm small{display:block;font-weight:400;color:var(--ink-faint);font-size:11.5px}
.rbar{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.rbar i{display:block;height:100%;background:var(--marquee)}
.rrow .sc{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:13.5px}
.mapbox{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
.mapbox svg{width:100%;height:auto;display:block}
.mapbox h4{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin:0 0 6px}
.lapath{stroke:#fff;stroke-width:.5;cursor:pointer}
.lapath:hover{stroke:#3A322F;stroke-width:1.4}
.citylab{font-family:'Inter',sans-serif;font-size:10.5px;font-weight:600;fill:#6E625C;paint-order:stroke;stroke:#FBF8F5;stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.toplab{font-family:'Inter',sans-serif;font-size:10px;font-weight:600;fill:#3A322F;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.citydot{fill:#6E625C}
.maplegend{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--ink-soft);padding:10px 4px 2px}
.sw{width:12px;height:12px;border-radius:2px;display:inline-block;border:.5px solid rgba(0,0,0,.12)}
.sidepanel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 0;max-height:640px;overflow-y:auto}
.sidepanel h3{font-size:13px;font-weight:600;padding:0 16px 8px;border-bottom:1px solid var(--line)}
.srowla{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:baseline;padding:7px 16px;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer}
.srowla:hover{background:var(--marquee-soft)}
.srowla:last-child{border-bottom:none}
.srowla .i{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}
.srowla .v{font-variant-numeric:tabular-nums;font-weight:600}
.srowla .b{grid-column:2/4;height:5px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:2px}
.srowla .b i{display:block;height:100%;background:var(--marquee)}
.detail{position:fixed;inset:0;background:rgba(34,36,42,.45);display:none;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}
.detail.on{display:flex}
.card{background:var(--panel);border-radius:14px;max-width:640px;width:100%;padding:28px 30px;position:relative;border-top:6px solid var(--marquee)}
.card.wide{max-width:980px}
.drillmap{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-top:10px}
.drillmap svg{width:100%;height:auto;display:block}
#leafmap{height:480px;border-radius:9px;z-index:0}
#leafmap .leaflet-tile-pane,#mkMap .leaflet-tile-pane{filter:saturate(.3) contrast(.9) brightness(1.03) sepia(.18)}
.cindia{width:13px;height:13px;background:#7E4232;border:2px solid #FFFFFF;transform:rotate(45deg);box-shadow:0 1px 4px rgba(0,0,0,.45)}
.leaflet-tooltip{font:12px/1.4 Inter,system-ui,sans-serif}
.chainpick{position:relative;display:inline-block}
.chainpick summary::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:9px;opacity:.7}
.chainpick[open] summary::after{transform:rotate(-135deg) translateY(-1px)}
select.ctl{-webkit-appearance:none;appearance:none;padding-right:28px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 3.5l3 3 3-3' fill='none' stroke='%236E625C' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}
select.ctl:hover,input.ctl:hover{border-color:var(--ink-faint)}
.chainpick summary{list-style:none;cursor:pointer;font-size:12.5px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel);color:var(--ink-soft);user-select:none}
.chainpick summary::-webkit-details-marker{display:none}
.chainpick[open] summary{background:var(--ink);color:#fff}
.chainlist{position:absolute;z-index:1200;top:calc(100% + 6px);left:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(58,50,47,.12),0 1px 3px rgba(58,50,47,.08);padding:6px;min-width:250px;max-height:320px;overflow:auto;display:flex;flex-direction:column;gap:1px}
.chainlist label{font-size:12.5px;display:flex;gap:10px;align-items:center;white-space:nowrap;cursor:pointer;color:var(--ink-soft);padding:6px 10px;border-radius:6px}
.chainlist label:hover{background:#F5EFEB;color:var(--ink)}
.chainlist label:first-child{border-bottom:1px solid var(--line);border-radius:6px 6px 0 0;margin-bottom:3px;padding-bottom:8px}
.chainlist input{accent-color:#9A5340;width:14px;height:14px;margin:0;flex:none}
.chainlist .nm{flex:1}
.chainlist .ct{color:var(--ink-faint);font-size:11.5px;font-variant-numeric:tabular-nums;margin-left:14px}
.chainlist label:has(input:checked) .nm{color:var(--ink);font-weight:600}
.vpseg{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden}
.vpseg button{font:inherit;font-size:12.5px;padding:7px 15px;border:none;background:var(--panel);color:var(--ink-soft);cursor:pointer}
.vpseg button.on{background:var(--ink);color:#fff}
.vpwrap{overflow-x:auto;margin-top:6px}
#vpTable{width:100%;border-collapse:collapse;min-width:760px}
#vpTable th{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);text-align:right;padding:9px 10px;border-bottom:2px solid var(--line-strong);cursor:pointer;user-select:none;white-space:nowrap}
#vpTable th.l{text-align:left;cursor:default}
#vpTable th small{display:block;font-weight:400;font-size:10.5px;color:var(--ink-faint);text-transform:none;letter-spacing:0}
#vpTable th{vertical-align:bottom}
#vpTable th.srt{color:var(--ink)}
#vpTable td{padding:9px 10px;border-bottom:1px solid var(--line);font-size:13px;text-align:right;font-variant-numeric:tabular-nums;vertical-align:middle}
#vpTable td.l{text-align:left}
#vpTable tbody tr:hover td{background:rgba(201,127,104,.10)}
#vpTable tr.vprow{cursor:pointer}
.vpbar{position:relative;min-width:140px}
.vpbar .bg{position:absolute;right:0;top:50%;transform:translateY(-50%);height:17px;border-radius:3px;opacity:.3}
.vpbar span{position:relative;font-weight:600}
.vpchip{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.02em;padding:3px 10px;border-radius:999px;white-space:nowrap}
.vpname b{display:block;font-size:13.5px;line-height:1.25}
.vpname i{font-style:normal;font-size:11.5px;color:var(--ink-faint)}
a.vpgo{font-size:11.5px;padding:4px 11px;border:1px solid var(--line-strong);border-radius:999px;text-decoration:none;color:var(--ink-soft);white-space:nowrap}
a.vpgo:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.vpmore{font:inherit;font-size:12.5px;padding:7px 16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--panel);color:var(--ink-soft);cursor:pointer;margin:12px auto;display:block}
.mkctl{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;row-gap:12px}
.mkctl .grp{display:flex;flex-direction:column;gap:5px}
.mkctl .grp>span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:700}
.mkctl .grp>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mkgrid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:16px;margin-top:14px}
@media(max-width:920px){.mkgrid{grid-template-columns:1fr}}
.mklist{border:1px solid var(--line);border-radius:10px;background:var(--panel);display:flex;flex-direction:column}
.mklist>header{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;border-bottom:1px solid var(--line)}
.mklist>header b{font-size:12.5px}
.mkrows{overflow-y:auto;max-height:436px}
.mkrow{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;padding:8px 13px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}
.mkrow:last-child{border-bottom:none}
.mkrow:hover,.mkrow.hl{background:rgba(201,127,104,.16)}
.mkrow .rk{width:23px;height:23px;border-radius:50%;background:var(--marquee);color:#fff;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex:none}
.mkrow .rk.lo{background:#F2D8CB}
.mkrow .nm{min-width:0}
.mkrow .nm b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.mkrow .nm small{color:var(--ink-faint);font-size:11px}
.mkrow .shr{text-align:right;font-variant-numeric:tabular-nums;line-height:1.25}
.mkrow .shr b{display:block;font-size:12.5px}
.mkrow .shr small{color:var(--ink-faint);font-size:10.5px}
.mkpin{background:var(--marquee);color:#fff;border:2px solid #FFFFFF;border-radius:50%;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font:700 11px Inter,system-ui;box-shadow:0 1px 4px rgba(0,0,0,.45)}
.mkcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:10px;margin-top:10px}
.mkcard .places{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.mkcard .places li{display:block;font-size:12.5px;padding-left:12px;position:relative}
.mkcard .places li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:#C97F68}
.mkcard .places li b{font-weight:600}
.mkcard .places li span{color:var(--ink-faint);font-size:11.5px}
.mkcard .places li .wh{grid-column:1/-1}
.mkcard{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:12px 14px;display:flex;flex-direction:column;gap:7px}
.mkcard .t{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.mkcard .pr{font-size:12px;font-weight:600;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.mkcard .loc{font-size:12px;color:var(--ink-soft)}
.mkcard .densrow{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-soft);margin-top:2px}
.mkcard .densbar{display:inline-block;width:60px;height:7px;border-radius:2px;background:#F1EBE7;overflow:hidden;flex:none}
.mkcard .densbar i{display:block;height:100%;background:#C97F68}
.mkcard .t b{font-size:13px;line-height:1.3}
.mkcard .imp{font-size:10.5px;font-weight:800;color:var(--marquee);white-space:nowrap;letter-spacing:.02em}
.mkcard .wh{font-size:11.8px;color:var(--ink-soft);line-height:1.5;flex:1}
.mkcard .ft{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--ink-faint);gap:8px}
.mkcard{cursor:pointer;transition:border-color .12s,background-color .12s,box-shadow .12s}
.mkcard:hover{background:#FBF1EB;border-color:#E4B29F}
.mkcard.sel{background:#F2D8CB;border-color:#7E4232;box-shadow:inset 0 0 0 1px #7E4232}
.mkbrief{border:1px solid var(--line-strong);border-left:4px solid var(--marquee);border-radius:10px;background:var(--panel);padding:14px 18px;margin-top:14px}
.mkbrief h3{margin:0 0 8px;font-size:14px}
.mkbrief dl{display:grid;grid-template-columns:120px 1fr;gap:6px 14px;margin:0}
.mkbrief dt{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;padding-top:2px}
.mkbrief dd{margin:0;font-size:12.8px;line-height:1.55;color:var(--ink-soft)}
.mkbrief dd b{color:var(--ink)}
.dens{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;white-space:nowrap}
.dens.core{background:#9A5340;color:#fff}.dens.mid{background:#F2D8CB;color:#9A5340}.dens.thin{background:#FBF1EB;color:#6E625C}
.lsoadot{stroke:#fff;stroke-width:.6;cursor:pointer}
.lsoadot:hover{stroke:#3A322F;stroke-width:1.2}
.outline{fill:#F5EFEB;stroke:#D8CCC4;stroke-width:1}
.bucketnote{font-size:12px;color:var(--marquee);background:var(--marquee-soft);border-radius:6px;padding:6px 10px;margin:8px 0 0;display:inline-block}
.drillhead{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.card h3{font-family:'Inter',system-ui,sans-serif;font-size:26px;font-weight:700;margin-bottom:2px}
.card .close{position:absolute;top:14px;right:14px;appearance:none;border:1px solid var(--line-strong);background:var(--panel);border-radius:999px;width:32px;height:32px;font-size:16px;cursor:pointer;color:var(--ink-soft)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:16px 0}
.stat{background:var(--paper);border-radius:8px;padding:10px 12px}
.stat b{display:block;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.stat span{font-size:11.5px;color:var(--ink-faint)}
.card dl{font-size:13.5px}
.card dt{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin-top:14px}
.card dd{margin-top:3px}
.supplyedit{margin-top:18px;background:var(--paper);border-radius:8px;padding:14px 16px}
.supplyedit label{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}
.latable{width:100%;font-size:13px;border-collapse:collapse;margin-top:6px}
.sttab{table-layout:fixed}
.sttab col:first-child{width:46%}
.sttab col:nth-child(n+2){width:18%}
.sttab td,.sttab th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sttab th small{white-space:normal;display:block;font-size:10px;line-height:1.3}
.sttab td:nth-child(3),.sttab th:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}
.latable thead th{font-size:11px;font-weight:600;color:var(--ink-soft);text-align:right;padding:6px 0;border-bottom:1px solid var(--line-strong);white-space:nowrap}
.latable thead th:first-child{text-align:left}
.latable thead th small{font-weight:400;color:var(--ink-faint)}
.latable thead th{cursor:pointer;user-select:none}
.latable thead th.sorted{color:var(--ink)}
.latable thead th.sorted::after{content:"";display:inline-block;width:5px;height:5px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;margin-left:6px;transform:rotate(45deg) translateY(-2px)}
.latable thead th.sorted[data-dir="asc"]::after{transform:rotate(-135deg) translateY(1px)}
.latable td{padding:5px 0;border-bottom:1px solid var(--line)}
.latable td:last-child,.latable td:nth-child(2),#stHot td:nth-child(3){text-align:right;font-variant-numeric:tabular-nums;padding-left:14px}
.latable td.n,.latable th.n{text-align:right;font-variant-numeric:tabular-nums}
.latable td.l,.latable th.l{text-align:left}
#distStatsTbl td:not(:first-child),#distStatsTbl th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.latable td.yr,.latable th.yr{text-align:left;padding:5px 22px 5px 18px;white-space:nowrap}
.latable td.ds{text-align:left}
.latable td.ds{padding-right:18px}
#filmTbl{width:100%}
#filmTbl td,#filmTbl th{padding:7px 18px 7px 0}
#filmTbl td:nth-child(2),#filmTbl th:nth-child(2){text-align:left;padding-left:0}
#filmTbl td:last-child,#filmTbl th:last-child{text-align:right;padding-right:0}
footer{margin-top:36px;padding-top:18px;border-top:1px solid var(--line-strong);font-size:12.5px;color:var(--ink-faint);line-height:1.7}
footer a{color:var(--blue)}
.cinemark{fill:#7E4232;stroke:#FFFFFF;stroke-width:.5}
.cinemarkD rect{fill:#7E4232;stroke:#FFFFFF;stroke-width:1.4}
.legendrow{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--ink-soft);margin:0 0 10px}
.legendrow>span{display:inline-flex;align-items:center;gap:7px}
.scorelegend>span>span,.scorelegend>span{align-items:center}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* ---- minimal theme overrides ---- */
header{padding:34px 0 20px;border-bottom:1px solid var(--line-strong)}
h1{font-size:clamp(28px,4vw,40px);font-weight:600;letter-spacing:-.01em}
header .sub{margin-top:6px;font-size:13px;color:var(--ink-faint);max-width:none}
.eyebrow{font-size:11px;letter-spacing:.16em;margin-bottom:8px}
nav{border-bottom:1px solid var(--line);margin:0 0 26px}
nav button{padding:12px 14px 10px;font-size:13.5px;border-bottom-width:2px}
nav button small{font-size:10.5px;margin-top:1px}
h2{font-size:21px;font-weight:600}
.toph{margin-bottom:14px}
.controls{gap:6px;margin-bottom:14px}
.controls button,.ctl,.chainpick summary,.vpseg,.vpseg button,.ico,.pl,a.vpgo{font-size:12.5px;border-color:var(--line);box-shadow:none}
.pl{font:inherit;font-size:12.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink-soft);cursor:pointer}
.controls button.on,.vpseg button.on,.pl.on,.chainpick[open] summary{background:var(--ink);color:#fff;border-color:var(--ink)}
.chartbox,.mapbox,.sidepanel,.sliders,.mklist,.mkcard,.mkbrief,.drillmap,.vpwrap,.grid,#tblWrap,.chainlist{border-color:var(--line)!important;border-radius:8px;box-shadow:none}
.chartbox{padding:14px 14px 8px;margin-bottom:18px}
.mapbox{padding:12px}
.stats{gap:8px;margin:12px 0}
.stat{background:transparent;border:1px solid var(--line);border-radius:8px;padding:9px 12px}
.stat b{font-size:18px}
.stat span{font-size:11px;color:var(--ink-faint)}

.about summary{border-color:transparent;background:transparent;padding:2px 4px}
.about summary:hover{color:var(--ink)}
footer{margin-top:10px}
.maplegend{font-size:11px}
.mkbrief{border-left-width:3px}
.bucketnote{background:transparent;border:1px dashed var(--line-strong);color:var(--ink-soft)}
.mkrow .rk.lo{background:#F2D8CB}
.grid td,.latable td,#vpTable td{border-bottom-color:var(--line)}
.legendrow{font-size:11.5px}
.card{border-top-width:3px;border-radius:10px}
.close{border-color:var(--line)}
.clickhint{font-size:11.5px}

/* ---- instrument theme ---- */
:root{--paper:#FBF8F5;--panel:#FFFFFF;--ink:#3A322F;--ink-soft:#6E625C;--ink-faint:#9C918A;--line:#EBE3DE;--line-strong:#D8CCC4;--marquee:#C97F68;--marquee-soft:#FBF1EB;--blue:#3A322F;--flag:#6E625C;--flag-soft:#F5EFEB;--good:#9A5340;--good-soft:#F2D8CB}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-family:'Inter',-apple-system,'Segoe UI',system-ui,sans-serif;font-size:14px;line-height:1.5;font-feature-settings:"tnum" 1,"cv11" 1,"ss01" 0}
h1,h2,h3,.thesis,#dName,#stName{font-family:inherit;letter-spacing:-.01em}
h1{font-size:clamp(30px,3.6vw,38px);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin:0}
.thesis{font-size:clamp(16px,1.6vw,19px);font-weight:400;line-height:1.45;color:var(--ink-soft);max-width:38em;margin:12px 0 0}
header{padding:40px 0 26px;border-bottom:1px solid var(--line-strong)}
header .eyebrow,header .sub{display:none}
h2,#stName{font-size:20px;font-weight:600;line-height:1.2;margin:0}
h3{font-size:15px;font-weight:600}
#dName{font-size:24px;font-weight:600}
.eyebrow,#dEyebrow,#stEyebrow{font-family:inherit;font-size:12.5px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--ink-faint);margin-bottom:6px}
nav{margin:0 0 30px;border-bottom:1px solid var(--line)}
nav button{padding:14px 0 12px;margin-right:26px;font-size:14px;font-weight:500;border-bottom:1.5px solid transparent;color:var(--ink-faint)}
nav button.on{color:var(--ink);border-bottom-color:#C97F68}
nav button small{font-size:11px;font-weight:400;margin-top:1px;color:var(--ink-faint)}
nav button.on small{color:var(--ink-soft)}
/* no uppercase, no tracking anywhere */
.grid thead th,#vpTable th,.ctlgrp .g>span,.mkctl .grp>span,.mkbrief dt,dl dt,.grid thead th small,label{text-transform:none!important;letter-spacing:0!important}
.grid thead th,#vpTable th{font-size:12px;font-weight:600;color:var(--ink-soft)}
.grid thead th small{font-size:11px;font-weight:400;color:var(--ink-faint)}
.ctlgrp .g>span,.mkctl .grp>span{font-size:12px;font-weight:500;color:var(--ink-faint)}
.mkbrief dt,dl dt{font-size:12.5px;font-weight:600;color:var(--ink-soft)}
/* controls */
.controls button,.ctl,.chainpick summary,.vpseg button,.ico,.pl,a.vpgo,select.ctl{font-family:inherit;font-size:13px;font-weight:500;padding:6px 13px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel);color:var(--ink-soft)}
.vpseg{border:1px solid var(--line-strong);border-radius:6px}
.vpseg button{border:none;border-radius:0}
.controls button.on,.vpseg button.on,.pl.on,.chainpick[open] summary,.controls button:active{background:#9A5340;color:#fff;border-color:#9A5340}
.controls button:hover,.pl:hover,.ico:hover,.chainpick summary:hover,a.vpgo:hover{border-color:var(--ink);color:var(--ink)}
.controls button.on:hover,.pl.on:hover{color:#fff}
.chainlist{border-radius:8px}
/* surfaces: one hairline, larger radius only on the sheet-like dialog */
.chartbox,.mapbox,.sidepanel,.sliders,.mklist,.mkcard,.mkbrief,.drillmap,.vpwrap,.grid,#tblWrap,.stat{border-radius:6px}
.stat{border:1px solid var(--line)}
.stat b{font-size:20px;font-weight:600}
.stat span{font-size:12px}
.mkbrief{border-left:none;border-color:var(--line)}
.mkbrief summary{font-weight:600;font-size:14px}
.mkbrief summary span{font-size:12.5px;font-weight:400}
.mkcard .t b{font-size:14px;font-weight:600}
.mkcard .imp{color:var(--ink-soft);font-weight:600}
.mkpin{background:#7E4232;border-color:#fff;font-family:inherit}
.mkrow .rk{background:#7E4232}
.mkrow .rk.lo{background:#D8CCC4}
.vpbar .bg{opacity:.22}

.about summary{font-size:12.5px;color:var(--ink-faint)}
.about summary::before{border-color:var(--ink-faint);font-weight:600}
.about>div{border-radius:6px}
.hint{font-size:13px;color:var(--ink-soft)}
footer{font-size:12.5px;color:var(--ink-faint);line-height:1.55}
footer summary{font-weight:500;color:var(--ink-soft)}
/* dialog as a sheet */
.card{border-top:none;border:1px solid var(--line-strong);border-radius:10px;padding:26px 30px 28px}
.close{border-radius:6px;border-color:var(--line-strong)}
.supplyedit label{font-weight:500}
/* legends, notes */
.maplegend,.legendrow,.clickhint,#dotNote,#mkNote{font-size:12px;color:var(--ink-faint)}
#stBody .maplegend{display:flex;flex-direction:column;gap:7px;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:10px 12px;margin-top:8px;font-size:12px;color:var(--ink-soft)}
.maplegend .lt{font-weight:600;color:var(--ink);font-size:12.5px}
.maplegend .lg-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.maplegend .lg-row>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.maplegend .sw{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.15);display:inline-block;flex:none}
.maplegend .sw.dia{transform:rotate(45deg) scale(.8);border-radius:2px;border-color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.2)}
.maplegend .grad{display:inline-block;width:140px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.12);margin:0 4px}
.maplegend .muted{color:var(--ink-faint)}
.maplegend .ln{font-size:11px;color:var(--ink-faint);max-width:80ch;line-height:1.45}
.leaflet-popup-content-wrapper{border-radius:8px;box-shadow:0 10px 30px rgba(58,50,47,.16);font-family:inherit}
.leaflet-popup-content{margin:12px 14px;font-size:12.5px;line-height:1.4;color:var(--ink)}
.pp .pp-h{margin-bottom:8px}.pp .pp-h b{font-size:14px;display:block}.pp .pp-h small{color:var(--ink-faint)}
.pp .pp-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:3px 0;border-top:1px solid var(--line)}
.pp .pp-row span{color:var(--ink-faint);font-size:11.5px}.pp .pp-row b{font-weight:600;text-align:right}.pp .pp-row small{color:var(--ink-faint);font-size:11px;width:100%;text-align:right}
.pp .pp-tab{width:100%;border-collapse:collapse;font-size:12px;margin:2px 0 4px}.pp .pp-tab td{padding:2px 0}.pp .pp-tab td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft)}
.pp .pp-btn{margin-top:8px;width:100%;font:inherit;font-size:12px;font-weight:600;padding:7px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--paper);color:var(--ink);cursor:pointer}
.pp .pp-btn:hover{border-color:var(--ink-faint)}
.bucketnote{border-radius:6px}
.pill{font-weight:600;border-radius:4px;padding:2px 7px}
.vpchip,.dens{border-radius:4px;font-weight:600;letter-spacing:0}
/* focus + motion */
:focus-visible{outline:2px solid #C97F68;outline-offset:2px}
button,summary,a{transition:color .12s ease,background-color .12s ease,border-color .12s ease}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.sbar{display:inline-flex;height:14px;border-radius:3px;overflow:hidden;vertical-align:middle;margin-right:8px;background:#F5EFEB;flex:none}
.sbar i{display:block;height:100%;flex:none;position:static;opacity:1}
.grid td.opp{white-space:nowrap}
.grid td.dist{white-space:nowrap;text-align:right}
.distpick{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.distpick .row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.distpick .lbl{font-size:12px;color:var(--ink-faint);min-width:210px}
.distpick .row>div{display:flex;flex-wrap:wrap;gap:5px}
.distpick .pl{padding:4px 10px;font-size:12px}
.disclaim{border:1px solid var(--line-strong);border-left:3px solid #9A5340;border-radius:6px;background:#FBF1EB;padding:10px 14px;font-size:12.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 12px}
.disclaim b{color:var(--ink);margin-right:4px}
.rlgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}
@media(max-width:860px){.rlgrid{grid-template-columns:1fr}}
.cal{display:grid;grid-template-columns:auto repeat(12,1fr);gap:3px;font-size:11px;color:var(--ink-faint);align-items:center}
.cal .y{font-weight:600;color:var(--ink-soft);padding-right:6px}
.cal .m{text-align:center}
.cal .c{height:26px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink)}
#rlTbl,#rlLangTbl,#rlPeaks{width:100%}
#rlLangTbl tr.rlrow{cursor:pointer}
#rlLangTbl tr.rlrow:hover td{background:rgba(201,127,104,.10)}
#rlLangTbl td,#rlLangTbl th,#rlPeaks td,#rlPeaks th{padding:6px 12px 6px 0;white-space:nowrap}
#rlLangTbl td.n,#rlLangTbl th.n,#rlPeaks td.n,#rlPeaks th.n{text-align:right}
#rlDist .brow{grid-template-columns:150px 1fr 70px}
#rlTbl td,#rlTbl th{padding:6px 14px 6px 0;white-space:nowrap}
#rlTbl td:first-child{white-space:normal}
#rlTbl td.n,#rlTbl th.n{text-align:right}
.diststats{margin-top:10px;width:auto}
.diststats td{padding:5px 14px 5px 0;font-size:12.5px;text-align:right}
.diststats td:first-child{text-align:left}
.pbar{display:inline-flex;width:84px;height:12px;border-radius:3px;overflow:hidden;vertical-align:middle;margin-right:7px;background:#F5EFEB}
.pbar i{display:block;height:100%}
.grid td.dist b{font-weight:600;font-variant-numeric:tabular-nums;display:inline-block;min-width:32px;text-align:right}
.grid thead th small .lg{display:inline-block;width:9px;height:9px;border-radius:2px;margin:0 3px 0 6px;vertical-align:-1px}
.grid td.dist small{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:12px}
.grid td.opp b{font-variant-numeric:tabular-nums;display:inline-block;min-width:24px;text-align:right}
.grid td.opp{min-width:100px;position:static}
.grid td.opp b{position:static}
.scorelegend{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:11.5px;color:var(--ink-faint);padding:8px 10px 10px}
.scorelegend>span>span{margin-right:10px}
.scorelegend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.scorelegend .scorenote{flex-basis:100%;color:var(--ink-faint)}
.scorebrk{border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin:6px 0 14px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:4px 0 14px}
.facts>div{display:flex;flex-direction:column;gap:2px}
.facts span{font-size:11.5px;color:var(--ink-faint)}
.facts b{font-size:13px;font-weight:600;line-height:1.35}
.facts b small{font-weight:500;color:var(--ink-soft);font-size:11.5px}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px}
.twocol .scorebrk{margin:0}
@media(max-width:760px){.facts,.twocol{grid-template-columns:1fr}}
@media(max-width:900px){
  .wrap{max-width:100%;padding:0 14px;box-sizing:border-box}
  nav{overflow-x:auto;white-space:nowrap}
  .stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  #tblWrap,.vpwrap,#rlLangWrap,#rlWrap,#stHot,#stDist{overflow-x:auto}
  .mkgrid,.mkcards,.rlgrid{grid-template-columns:1fr}
  #leafmap,#mkMap{height:380px}
}
.scorebrk-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12.5px;margin-bottom:8px}
.scorebrk-head span:first-child{font-weight:600}
.scorebrk-head span:last-child{color:var(--ink-soft)}
.brow{display:grid;grid-template-columns:150px 1fr 70px;gap:10px;align-items:center;font-size:12.5px;padding:3px 0}
.bbar{display:block;height:10px;background:#F5EFEB;border-radius:2px;overflow:hidden}
.bbar i{display:block;height:100%}
.bval{text-align:right;font-variant-numeric:tabular-nums}
.bval small{color:var(--ink-faint)}
@media(max-width:700px){h1{font-size:28px}.thesis{font-size:15.5px}nav button{margin-right:16px}}

/* ==========================================================================
   Qube brand layer
   ========================================================================== */
  :root{ --qube-black:#000000; --qube-white:#FFFFFF; }

  .qbar{background:var(--qube-black);color:var(--qube-white)}
  .qbar .qinner{max-width:1120px;margin:0 auto;padding:13px 20px;
    display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
  .qlock{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
  .qlock .qmark{width:26px;height:26px;display:block;border-radius:4px;flex:none}
  .qlock .qword{height:15px;width:auto;display:block}
  .qlock .qdiv{width:1px;height:20px;background:rgba(255,255,255,.28)}
  .qlock .qprod{font-size:12px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.9);white-space:nowrap}
  .qbar .qmeta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;
    color:rgba(255,255,255,.5);font-weight:600;white-space:nowrap}

  /* v20 hides the header eyebrow; the brand line brings it back. */
  header .eyebrow{display:block}

  /* Mark set on the title's own line and optically centred against it. */
  header .hgroup{display:flex;align-items:center;gap:15px}
  header .hmark{width:clamp(34px,4.6vw,44px);height:clamp(34px,4.6vw,44px);flex:none;border-radius:7px;
    box-shadow:0 1px 0 var(--line-strong)}

  /* Data-loading gate: shown until every data/*.json file has arrived. */
  #boot{position:fixed;inset:0;z-index:200;background:var(--paper);
    display:flex;align-items:center;justify-content:center;padding:24px}
  #boot[hidden]{display:none}
  .bootcard{max-width:620px;width:100%;background:var(--panel);border:1px solid var(--line);
    border-radius:14px;padding:30px 32px;border-top:6px solid var(--qube-black)}
  .bootcard img{width:38px;height:38px;border-radius:6px;display:block;margin-bottom:16px}
  .bootcard h2{margin-bottom:8px}
  .bootcard p{font-size:13.5px;color:var(--ink-soft);line-height:1.65}
  .bootcard code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;
    background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:2px 7px}
  .bootcard pre{background:var(--ink);color:#F0EDE6;border-radius:8px;padding:13px 16px;
    margin:12px 0;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
  .bootbar{height:5px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:16px}
  .bootbar i{display:block;height:100%;width:0;background:var(--marquee);transition:width .25s ease}
  .booterr{color:var(--flag);font-weight:600}
