/* CNUCAP Observatory V2. Visual tokens follow yutengfei.com; chart colours are functional. */
:root{
 color-scheme:dark;
 --paper:#080909;--ink:#eeeee8;--muted:#a5a8a1;--soft:#949991;--line:#2b2e2c;
 --wash:#111411;--panel:#151916;--accent:#a7bddf;--inverse:#080909;
 --series-personal:#a7bddf;--series-union:#9daf9f;--series-asset:#bcad8f;
 --map-land:#111512;--map-outline:#343b36;--map-dot:#c1c9bf;
 --text:var(--ink);--blue:var(--accent);--green:var(--series-union);--gold:var(--series-asset);
 --chart-grid:color-mix(in srgb,var(--line) 78%,transparent);
 --accent-wash:color-mix(in srgb,var(--accent) 9%,var(--paper));
 --screen-gutter:clamp(18px,2.2vw,36px);--screen-gap:14px;
 font-synthesis:none;
}
:root[data-theme="light"]{
 color-scheme:light;
 --paper:#f7f6f1;--ink:#1b221e;--muted:#61685e;--soft:#686f65;--line:#d5d8cf;
 --wash:#eeefe8;--panel:#e8ece2;--accent:#365d83;--inverse:#f7f6f1;
 --series-personal:#365d83;--series-union:#607b66;--series-asset:#8d784e;
 --map-land:#e9ece2;--map-outline:#bfc8bc;--map-dot:#5e6d61;
}
*{box-sizing:border-box}
html{background:var(--paper);scroll-behavior:smooth}
body{margin:0;min-width:280px;background:var(--paper);color:var(--ink);font:14px/1.55 Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
button,input,select,summary{font:inherit;color:inherit}
button,select,summary{cursor:pointer}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{border-radius:0}
button:disabled{cursor:wait;opacity:.5}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
[hidden]{display:none!important}
svg{display:block;max-width:100%;overflow:visible}
h1,h2,h3,p{margin:0;font-weight:400}
.sr-only{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ambient{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.22;background-image:radial-gradient(circle,var(--accent) .55px,transparent .85px),radial-gradient(ellipse at 76% 8%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 52%);background-size:17px 17px,100% 100%;mask-image:radial-gradient(ellipse at 75% 0%,#000 0%,transparent 58%);-webkit-mask-image:radial-gradient(ellipse at 75% 0%,#000 0%,transparent 58%)}
.masthead,main{position:relative;z-index:1}
.masthead{display:grid;grid-template-columns:minmax(138px,.55fr) minmax(250px,1.2fr) minmax(0,1fr);align-items:center;gap:18px;padding:15px var(--screen-gutter);border-bottom:1px solid var(--line);min-height:80px;background:color-mix(in srgb,var(--paper) 93%,transparent)}
.brand{display:inline-flex;gap:12px;align-items:center;max-width:max-content}
.brand img{display:block;width:34px;height:38px;object-fit:contain;flex:none}
.brand>span{font-size:15px;letter-spacing:.11em;line-height:1.3;font-weight:500}
.brand-sub{display:block;font-size:8px;letter-spacing:.17em;color:var(--muted);font-weight:400;margin-top:5px}
:root[data-theme="light"] .brand img{filter:brightness(.15)}
.screen-title{min-width:0;text-align:center}
h1{font-size:clamp(19px,1.9vw,28px);letter-spacing:.03em;line-height:1.35;font-weight:450;text-wrap:balance}
.eyebrow{display:block;color:var(--muted);font-size:9px;letter-spacing:.14em;line-height:1.4;margin-bottom:5px}
.header-tools{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;min-width:0}
.quiet,.icon-button,.toolbar-button,.filter-reset{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 11px;border:1px solid var(--line);background:transparent;font-size:12px;line-height:1.3;color:var(--muted);transition:color .2s,border-color .2s,background .2s}
.quiet:hover,.icon-button:hover,.toolbar-button:hover,.filter-reset:hover{border-color:var(--muted);color:var(--ink);background:var(--wash)}
.icon-button{min-width:44px;width:44px;padding:4px;font-size:22px;flex:none}
.header-tools .back-entry{font-size:11px;border-color:transparent;padding-inline:4px}
.ui-language-control{display:inline-flex;align-items:center;min-width:0;max-width:145px}
.ui-language-control select{min-height:44px;max-width:100%;width:128px;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:8px 9px;font-size:12px}
#ui-language-status{font-size:12px;color:var(--ink);line-height:1.5;flex-basis:100%}
.status-dot{display:inline-block;flex:none;width:4px;height:4px;border-radius:50%;background:var(--accent)}
main{padding:0 var(--screen-gutter) 14px}
.control-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0 8px;min-width:0}
.site-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0}
.site-tabs button,.view-tabs button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 15px;border:1px solid transparent;background:transparent;font-size:13px;line-height:1.4;white-space:normal;color:var(--muted);transition:color .2s,border-color .2s,background .2s}
.site-tabs button:hover,.view-tabs button:hover{color:var(--ink);background:var(--wash)}
.site-tabs button[aria-pressed="true"]{color:var(--ink);border-color:var(--line);background:var(--wash)}
.site-tabs i,.platform-dot{width:5px;height:5px;border-radius:50%;display:inline-block;flex:none;background:var(--site-color,var(--accent))}
.filters{display:flex;align-items:center;gap:7px;min-width:0}
.filters select,#language-select,.metric-select{min-height:44px;max-width:100%;border:1px solid var(--line);padding:8px 12px;background:var(--paper);color:var(--ink);font-size:12px;line-height:1.4}
.filters select{width:222px}
.context-line{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;min-height:34px;margin-bottom:11px;color:var(--muted);font-size:12px;line-height:1.55}
.context-line>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}
#scope-name{color:var(--ink)}
.divider{color:var(--line)}
#period-label{font-variant-numeric:tabular-nums}
#coverage-label{color:var(--muted)}
.data-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--line);color:var(--accent);font-size:11px;line-height:1.5;max-width:100%;overflow-wrap:anywhere}
.data-badge::before{content:"";width:3px;height:3px;background:currentColor;border-radius:50%;flex:none}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--screen-gap);margin:0 0 12px;min-width:0}
.kpi{position:relative;min-width:0;padding:14px 17px 12px;border:1px solid var(--line);background:color-mix(in srgb,var(--wash) 76%,var(--paper));overflow:hidden}
.kpi::before{content:"";position:absolute;top:0;left:17px;width:32px;height:1px;background:var(--accent);opacity:.65}
.kpi-name{display:flex;gap:10px;align-items:baseline;font-size:12px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
.index{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--soft);font-size:10px;font-weight:400;letter-spacing:.04em;margin-right:8px}
.kpi-value{display:flex;align-items:baseline;gap:8px;font-size:clamp(30px,3.3vw,50px);font-weight:450;line-height:1.15;letter-spacing:-.045em;color:var(--ink);margin:7px 0 6px;font-variant-numeric:tabular-nums}
.kpi-value small{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}
.kpi-foot{font-size:11px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
.kpi-grid:has(>.kpi:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi-grid:has(>.kpi:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.kpi-grid:has(>.kpi:only-child){grid-template-columns:1fr}
.view-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 22px;border-bottom:1px solid var(--line);margin:0 0 14px;min-width:0}
.view-tabs{display:flex;align-items:stretch;gap:18px;flex-wrap:wrap;min-width:0}
.view-tabs button{padding:8px 0 11px;border:0;min-height:46px;white-space:nowrap;font-size:13px}
.view-tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;transform:scaleX(.6);transition:transform .2s,background .2s}
.view-tabs button[aria-pressed="true"]{color:var(--ink)}
.view-tabs button[aria-pressed="true"]::after{background:var(--accent);transform:scaleX(1)}
.secondary-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px 16px;flex-wrap:wrap;color:var(--muted);font-size:12px;min-width:0}
#language-control{display:inline-flex;align-items:center;gap:7px;min-width:0}
#language-select{border-color:transparent;width:125px;padding-inline:7px;background:transparent}
.cycle-label{display:inline-flex;align-items:center;gap:8px;min-height:44px;line-height:1.35;cursor:pointer;white-space:nowrap}
input[type="checkbox"]{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}
.dashboard{display:grid;grid-template-columns:minmax(0,1.68fr) minmax(310px,.9fr);grid-template-rows:minmax(0,1fr);gap:var(--screen-gap);height:var(--screen-grid-height,440px);min-height:240px;min-width:0;isolation:isolate}
.dashboard[data-panel-count="3"]{grid-template-rows:repeat(2,minmax(0,1fr))}
.dashboard[data-panel-count="3"]>.main-visual{grid-column:1;grid-row:1/span 2}
.dashboard>.panel:only-child{grid-column:1/-1;grid-row:1/-1}
.dashboard.view-content{grid-template-columns:minmax(0,1.4fr) minmax(370px,1fr)}
.dashboard.view-audience{grid-template-columns:minmax(0,1.55fr) minmax(335px,1fr)}
.dashboard.view-world{grid-template-columns:minmax(0,2.25fr) minmax(275px,.8fr)}
.panel{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;padding:17px 18px 13px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 68%,var(--wash));transition:border-color .2s,background .2s}
.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;flex:none}
.panel-title h2{font-size:16px;font-weight:450;line-height:1.4;letter-spacing:-.015em;overflow-wrap:anywhere}
.panel-title h2 .index{display:inline-block;vertical-align:baseline;min-width:18px}
.panel-meta{font-size:10px;color:var(--soft);line-height:1.5;text-align:right;max-width:45%;overflow-wrap:anywhere}
.panel-subtitle{font-size:12px;color:var(--muted);line-height:1.6;margin:6px 0 12px;flex:none;overflow-wrap:anywhere}
.panel-body{flex:1;min-height:0;min-width:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain}
.panel-note{font-size:11px;color:var(--muted);line-height:1.55;border-top:1px solid var(--line);margin-top:12px;padding-top:8px;flex:none;overflow-wrap:anywhere}
.panel-note>span{display:block}
.main-visual>.panel-body{display:flex;flex-direction:column;justify-content:center}
.panel.wide{grid-column:1/-1}
.chart,.viz-scroll{min-height:0;min-width:0;width:100%;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
.panel-body>svg,.chart>svg{width:100%;height:auto;flex:none}
.chart{flex:1}
.viz-trend{width:100%;height:auto;min-height:180px;flex:1}
.viz-treemap{width:100%;height:auto;min-height:220px;flex:1}
.viz-source-flow{width:100%;height:auto;min-height:240px;flex:1}
.viz-label{fill:var(--ink);font-family:inherit;font-size:12px;line-height:1.4}
.viz-value{fill:var(--ink);font-family:inherit;font-weight:450;font-size:13px;font-variant-numeric:tabular-nums}
.viz-muted,.viz-axis-label{fill:var(--muted);font-family:inherit;font-size:11px}
.viz-grid-line{stroke:var(--chart-grid);stroke-width:1;vector-effect:non-scaling-stroke}
.viz-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}
.viz-area{opacity:.55;transition:opacity .2s}
.viz-dot{stroke:var(--paper);stroke-width:1.5;vector-effect:non-scaling-stroke}
.viz-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px 19px;color:var(--muted);font-size:11px;line-height:1.5;margin-top:9px}
.viz-legend-item{display:inline-flex;align-items:center;gap:7px;min-width:0}
.viz-legend-item i,.viz-legend-item .swatch{display:inline-block;width:14px;height:2px;background:var(--series-color,var(--c,var(--accent)));flex:none}
.viz-tree-cell{cursor:pointer;transition:opacity .18s}
.viz-tree-cell>rect{stroke:var(--paper);stroke-width:2;vector-effect:non-scaling-stroke;transition:stroke .18s,fill-opacity .18s}
.viz-tree-cell:hover>rect,.viz-tree-cell:focus-visible>rect,.viz-tree-cell.is-selected>rect{stroke:var(--accent);stroke-width:2;fill-opacity:.5}
.viz-tree-cell.is-dimmed{opacity:.25}
.viz-tree-cell:focus-visible,.viz-source-node:focus-visible{outline:none}
.viz-tree-cell:focus-visible>rect,.viz-source-node:focus-visible>rect{stroke:var(--ink);stroke-width:2.5}
.viz-comparison{display:grid;gap:15px;align-content:start;padding-block:1px}
.comparison-row{min-width:0;padding-bottom:12px;border-bottom:1px solid var(--line)}
.comparison-row:last-child{border:0;padding-bottom:0}
.comparison-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;line-height:1.4;margin-bottom:8px;color:var(--ink)}
.comparison-label small{font-size:11px;color:var(--muted)}
.comparison-track{position:relative;height:4px;min-width:0;background:var(--line);margin-top:7px;overflow:hidden}
.comparison-fill{display:block;height:100%;background:var(--series-color,var(--c,var(--accent)));transform-origin:left center}
.comparison-value{color:var(--ink);font-variant-numeric:tabular-nums;font-size:18px;line-height:1.3}
.comparison-value small{font-size:11px;color:var(--muted)}
.metric-selector,.comparison-controls,.content-controls,.map-controls{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;margin-bottom:10px}
.metric-selector button,.comparison-controls button,.content-controls button,.map-controls button,.chart-toolbar button,.country-clear{border:1px solid var(--line);background:transparent;color:var(--muted);padding:6px 10px;min-height:36px;font-size:12px;line-height:1.4}
.metric-selector button[aria-pressed="true"],.comparison-controls button[aria-pressed="true"],.content-controls button[aria-pressed="true"],.map-controls button[aria-pressed="true"]{background:var(--accent-wash);border-color:var(--accent);color:var(--ink)}
.viz-heatmap{width:100%;min-width:490px;border-collapse:separate;border-spacing:4px;table-layout:fixed;font-size:11px;line-height:1.35}
.viz-heatmap th{font-weight:400;text-align:center;color:var(--muted);padding:4px 2px 7px;min-width:51px;overflow-wrap:anywhere;vertical-align:bottom}
.viz-heatmap th:first-child{width:98px;text-align:left;padding-inline:0}
.viz-heatmap td{padding:0;text-align:center;vertical-align:middle}
.viz-heatmap .heatmap-cell{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;border:1px solid color-mix(in srgb,var(--accent) 12%,var(--line));background:color-mix(in srgb,var(--accent) calc(var(--heat,0)*32% + 4%),var(--paper));color:var(--ink);padding:6px 3px;font-size:12px;line-height:1.4;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .2s,border-color .2s}
.viz-heatmap .heatmap-cell:hover,.viz-heatmap .heatmap-cell[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) calc(var(--heat,0)*38% + 8%),var(--paper))}
.viz-heatmap .is-missing{color:var(--soft);background:transparent;border:1px dashed var(--line);cursor:default}
.viz-heatmap caption{caption-side:bottom;text-align:left;color:var(--muted);font-size:11px;padding:9px 0 0}
.viz-source-node{cursor:pointer;transition:opacity .18s}
.viz-source-node rect{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke;transition:stroke .2s,fill .2s}
.viz-source-node:hover rect,.viz-source-node.is-selected rect{stroke:var(--accent);stroke-width:1.5}
.viz-flow-link{fill-opacity:.3;transition:fill-opacity .2s,opacity .2s}
.viz-flow-link:hover,.viz-flow-link.is-selected{fill-opacity:.62}
.viz-flow-link.is-dimmed,.viz-source-node.is-dimmed{opacity:.1}
.viz-device-bars{display:grid;gap:17px}
.device-platform{border-bottom:1px solid var(--line);padding-bottom:13px;min-width:0}
.device-platform:last-child{border:0;padding-bottom:0}
.device-platform h3,.device-platform-title{font-size:12px;line-height:1.5;margin-bottom:9px}
.device-stack{display:flex;height:8px;overflow:hidden;gap:2px;background:var(--line)}
.device-segment{display:block;min-width:0;height:100%;background:var(--series-color,var(--c,var(--accent)))}
.device-key{display:flex;flex-wrap:wrap;gap:5px 13px;margin-top:9px}
.device-key-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);line-height:1.5}
.device-key-item i{width:5px;height:5px;background:var(--series-color,var(--c,var(--accent)));border-radius:50%;flex:none}
.viz-event-bars{display:grid;gap:12px}
.event-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:0 0 10px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4}
.event-row:last-child{border:0;padding-bottom:0}
.event-row>span{min-width:0}
.event-row code{display:block;font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--soft);overflow-wrap:anywhere;margin-top:3px}
.event-track{grid-column:1/-1;height:3px;background:var(--line);overflow:hidden}
.event-fill{display:block;height:100%;background:var(--accent);opacity:.75}
.event-value{font-size:15px;color:var(--ink);font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}
.event-summary,.metric-summary,.view-summary{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:13px;color:var(--muted);font-size:12px;line-height:1.6}
.event-summary strong,.metric-summary strong,.view-summary strong{font-size:24px;line-height:1.2;letter-spacing:-.03em;font-weight:450;color:var(--ink)}
.metric-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.metric-pair>div{min-width:0}
.metric-pair span,.metric-label{font-size:11px;line-height:1.5;color:var(--muted)}
.metric-pair strong,.metric-number{display:block;font-size:24px;line-height:1.3;font-weight:450;color:var(--ink);margin-top:5px}
.table-wrap{width:100%;overflow:auto;scrollbar-width:thin;min-height:0}
.content-table,.detail-table,.country-table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;line-height:1.45}
.content-table th,.detail-table th,.country-table th{font-size:11px;font-weight:400;color:var(--muted);padding:0 7px 9px;border-bottom:1px solid var(--line);white-space:normal;vertical-align:bottom}
.content-table td,.detail-table td,.country-table td{padding:10px 7px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.content-table tr:last-child td,.detail-table tr:last-child td,.country-table tr:last-child td{border-bottom:0}
.content-table td:last-child,.detail-table td:last-child,.country-table td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.content-table .rank{width:34px;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--soft);padding-left:0}
.page-name{display:block;color:var(--ink);line-height:1.5}
.page-path{display:block;color:var(--soft);font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;margin-top:3px;overflow-wrap:anywhere}
.detail-list,.country-list{display:grid;gap:0;min-height:0}
.country-row,.country-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:center;min-height:44px;border:0;border-bottom:1px solid var(--line);padding:9px 2px;text-align:left;background:transparent;color:var(--ink);font-size:12px;line-height:1.4;width:100%}
.country-row:hover,.country-list>button:hover,.country-row[aria-pressed="true"],.country-list>button[aria-pressed="true"]{background:var(--accent-wash);color:var(--accent)}
.country-row small,.country-row .country-share{font-size:11px;color:var(--muted)}
.country-row strong{font-size:14px;font-weight:450;color:var(--ink)}
.country-summary,.map-selection{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:10px;color:var(--muted);font-size:12px;line-height:1.6}
.country-summary strong,.map-selection strong{color:var(--ink);font-weight:450}
.selection-details,.data-notice,.quality-notice{padding:11px 13px;border:1px solid var(--line);background:var(--wash);font-size:12px;line-height:1.7;color:var(--muted);margin-block:10px;overflow-wrap:anywhere}
.selection-details:empty{display:none}
.quality-notice{border-left:2px solid var(--accent)}
.details-toggle,details>summary{cursor:pointer;color:var(--accent);font-size:12px;line-height:1.5;min-height:44px;display:flex;align-items:center;gap:8px;padding-block:7px}
.chart-toolbar{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;margin-top:10px}
.world-map-wrap{min-height:0;min-width:0;width:100%;height:100%;overflow:auto;scrollbar-width:thin}
.world-map{width:100%;height:100%;min-width:640px;display:block;font-family:inherit}
.world-map-country{transition:opacity .2s,stroke-opacity .2s;stroke:var(--map-outline)}
.world-map-country:hover{stroke:var(--accent);stroke-opacity:.8}
.world-map-route,.world-map-point,.world-map-site-card{transition:opacity .25s}
.world-map-route[data-emphasis="muted"],.world-map-point[data-emphasis="muted"],.world-map-site-card[data-emphasis="muted"]{opacity:.14}
.world-map-route[data-emphasis="active"],.world-map-point[data-emphasis="active"],.world-map-site-card[data-emphasis="active"]{opacity:1}
.world-map-point,.world-map-site-card{cursor:pointer}
.world-map-point:focus-visible,.world-map-site-card:focus-visible{outline:none}
.world-map-point:focus-visible circle:first-of-type{stroke:var(--ink);stroke-width:2}
.world-map-site-card:focus-visible>rect:first-of-type{stroke:var(--ink);stroke-width:2}
.world-map-flow{stroke-opacity:.24}
.world-map-route[data-presenting="true"] .world-map-flow,.world-map-route[data-emphasis="active"] .world-map-flow{stroke-opacity:.8}
.world-map-card-glow{opacity:.18}
.world-map-site-card[data-presenting="true"] .world-map-card-glow,.world-map-site-card[data-emphasis="active"] .world-map-card-glow{opacity:.65}
.world-map-point-halo{opacity:.2;transform-box:fill-box;transform-origin:center}
.world-map-point[data-presenting="true"] .world-map-point-halo,.world-map-point[data-emphasis="active"] .world-map-point-halo{opacity:.55}
.world-map-mode,.world-map-note{fill:var(--muted)}
.world-map-country-label{fill:var(--ink)}
.map-legend{display:flex;gap:6px 15px;flex-wrap:wrap;margin-top:8px;font-size:11px;color:var(--muted)}
.map-legend span{display:inline-flex;align-items:center;gap:6px}
.map-legend i{width:6px;height:6px;border:1px solid var(--c,var(--accent));border-radius:50%;display:inline-block}
.screen-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 20px;align-items:baseline;color:var(--muted);font-size:11px;line-height:1.6;padding-top:13px;min-width:0}
#source-note{min-width:0;overflow-wrap:anywhere}
#integrity-note{grid-column:1;min-width:0;overflow-wrap:anywhere}
#clock{grid-column:2;grid-row:1/span 2;white-space:nowrap;color:var(--soft);font-size:11px;font-variant-numeric:tabular-nums}
dialog{width:min(920px,calc(100vw - 36px));max-height:86svh;border:1px solid var(--line);padding:24px;color:var(--ink);background:var(--paper);box-shadow:0 24px 100px #0005;overflow:auto;scrollbar-width:thin}
dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}
.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:13px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.dialog-top h2{font-size:21px;line-height:1.4;letter-spacing:-.02em}
#dialog-body{font-size:14px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
#dialog-body p{margin:10px 0}
#dialog-body h3{font-size:16px;line-height:1.5;color:var(--ink);margin:22px 0 9px}
#dialog-body table{border-collapse:collapse;width:100%;font-size:12px;line-height:1.5;margin:13px 0}
#dialog-body td,#dialog-body th{padding:9px 7px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
#dialog-body th{font-weight:450;color:var(--ink)}
#dialog-body a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
#dialog-body ul{padding-left:22px}
.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}
.noscript{margin:20px;padding:20px;border:1px solid var(--line);color:var(--ink)}
@media(min-width:1600px){
 :root{--screen-gap:18px}
 .masthead{min-height:92px;padding-block:18px}
 .panel{padding:21px 23px 16px}
 .panel-title h2{font-size:18px}
 .panel-subtitle{font-size:13px}
 .kpi{padding:17px 21px 15px}
 .kpi-name{font-size:13px}
 .kpi-value{font-size:52px}
 .view-tabs button{font-size:14px}
 .comparison-label,.device-platform h3,.event-row,.country-row{font-size:13px}
 .panel-note,.screen-footer{font-size:12px}
}
@media(min-width:1100px) and (max-height:800px){
 :root{--screen-gap:12px}
 .masthead{min-height:64px;padding-block:9px;gap:14px}
 h1{font-size:21px}
 .eyebrow{font-size:8px}
 .header-tools .quiet{font-size:11px;padding-inline:8px}
 .control-bar{padding-top:8px;padding-bottom:5px}
 .context-line{margin-bottom:8px;font-size:11px;min-height:28px}
 .kpi{padding:10px 14px 9px}
 .kpi-name{font-size:11px}
 .kpi-value{font-size:33px;margin:5px 0 4px}
 .kpi-foot{font-size:11px}
 .kpi-grid{margin-bottom:7px}
 .view-bar{margin-bottom:11px}
 .view-tabs button{min-height:44px;padding-bottom:9px}
 .panel{padding:13px 15px 11px}
 .panel-title h2{font-size:15px}
 .panel-subtitle{font-size:11px;margin-top:5px;margin-bottom:8px}
 .panel-note{font-size:11px;line-height:1.45;margin-top:8px;padding-top:6px}
 .screen-footer{font-size:11px;line-height:1.45;padding-top:10px}
 .viz-comparison{gap:11px}
 .comparison-row{padding-bottom:9px}
 .comparison-value{font-size:17px}
}
@media(min-width:1100px) and (max-width:1300px){
 .masthead{grid-template-columns:135px minmax(270px,.9fr) minmax(0,1.2fr);gap:15px}
 .brand>span{font-size:13px}
 .brand-sub{font-size:7px}
 .header-tools{gap:5px}
 .header-tools .back-entry{font-size:10px;min-height:36px}
 .ui-language-control select{width:113px}
 .dashboard.view-content{grid-template-columns:minmax(0,1.25fr) minmax(345px,1fr)}
 .dashboard.view-audience{grid-template-columns:minmax(0,1.4fr) minmax(310px,1fr)}
}
@media(max-width:1099px){
 :root{--screen-gutter:22px}
 .masthead{grid-template-columns:120px minmax(0,1fr);gap:12px 20px;align-items:center;padding-block:14px}
 .screen-title{text-align:left}
 .header-tools{grid-column:1/-1;justify-content:flex-start;gap:8px;flex-wrap:wrap}
 .header-tools .back-entry{margin-right:auto}
 h1{font-size:24px}
 .eyebrow{font-size:9px}
 .control-bar{flex-wrap:wrap;align-items:flex-start;gap:8px 16px}
 .filters{margin-left:auto}
 .context-line{align-items:flex-start;flex-wrap:wrap}
 .view-bar{flex-wrap:wrap;align-items:center;gap:3px 12px}
 .secondary-tools{margin-left:auto}
 .dashboard,.dashboard.view-content,.dashboard.view-audience,.dashboard.view-world{height:auto!important;min-height:0;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);grid-template-rows:auto;align-items:stretch}
 .dashboard[data-panel-count="3"]{grid-template-rows:auto}
 .dashboard[data-panel-count="3"]>.main-visual{grid-column:1;grid-row:1/span 2}
 .main-visual .panel-body{min-height:320px}
 .panel-body{max-height:440px}
 .view-world .world-map-wrap{min-height:400px}
 .view-world .detail-panel .panel-body{max-height:470px}
 .screen-footer{margin-top:6px}
}
@media(max-width:759px){
 :root{--screen-gutter:18px;--screen-gap:14px}
 body{font-size:14px}
 .masthead{grid-template-columns:32px minmax(0,1fr);padding-top:17px;padding-bottom:14px;gap:12px}
 .brand{grid-column:1;grid-row:1;gap:0}
 .brand img{width:29px;height:34px}
 .brand>span{display:none}
 .screen-title{grid-column:2;grid-row:1}
 .screen-title h1{font-size:20px;line-height:1.45;letter-spacing:-.02em;text-wrap:pretty}
 .eyebrow{font-size:8px;letter-spacing:.09em;margin-bottom:5px}
 .header-tools{grid-column:1/-1;grid-row:2;display:flex;justify-content:flex-start;gap:7px}
 .header-tools .back-entry{font-size:11px;flex:1 1 auto;margin-right:0;justify-content:flex-start}
 .ui-language-control{max-width:140px;margin-left:auto}
 .ui-language-control select{width:128px}
 #connection-button,#method-button{flex:1 1 calc(40% - 14px);min-height:44px}
 #theme-button,#appearance-button{flex:0 0 44px;width:44px;padding-inline:5px}
 #fullscreen-button{display:none}
 .quiet{font-size:12px}
 main{padding-bottom:24px}
 .control-bar{display:block;padding-top:13px;padding-bottom:10px}
 .site-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .site-tabs button{font-size:12px;min-height:46px;padding:9px 8px;justify-content:flex-start;gap:8px}
 .site-tabs button:first-child{justify-content:flex-start}
 .filters{display:flex;width:100%;margin-top:11px}
 .filters select{width:auto;flex:1;font-size:12px;padding-inline:11px}
 .context-line{display:flex;align-items:flex-start;flex-direction:column;gap:8px;margin:0 0 14px;font-size:12px;line-height:1.6}
 .context-line>div:first-child{gap:4px 9px;align-items:baseline}
 #coverage-label{flex-basis:100%}
 .data-badge{font-size:11px;line-height:1.6}
 .kpi-grid,.kpi-grid:has(>.kpi:nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:15px}
 .kpi{padding:13px 12px 12px}
 .kpi::before{left:12px}
 .kpi-name{font-size:12px;gap:5px;line-height:1.55}
 .kpi .index{display:none}
 .kpi-value{font-size:32px;line-height:1.2;margin-top:8px;gap:5px}
 .kpi-value small{font-size:11px}
 .kpi-foot{font-size:11px;line-height:1.55;margin-top:7px}
 .view-bar{display:block;margin-bottom:16px;border-bottom:0}
 .view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;border-bottom:1px solid var(--line)}
 .view-tabs button{white-space:normal;justify-content:flex-start;text-align:left;padding:10px 0 12px;font-size:13px;line-height:1.5;min-height:46px}
 .secondary-tools{justify-content:space-between;gap:5px 10px;margin-top:9px;font-size:12px}
 #language-control{flex-wrap:wrap;gap:0 8px;max-width:100%}
 #language-select{font-size:12px;min-height:44px;width:119px}
 .cycle-label{font-size:12px;white-space:normal;min-height:44px}
 .dashboard,.dashboard.view-content,.dashboard.view-audience,.dashboard.view-world{display:flex;flex-direction:column;height:auto!important;min-height:0;gap:var(--screen-gap)}
 .panel{padding:17px 15px 15px;min-height:0;overflow:hidden}
 .panel-title h2{font-size:17px;line-height:1.5}
 .panel-title .index{font-size:10px;margin-right:6px}
 .panel-meta{font-size:10px;max-width:40%}
 .panel-subtitle{font-size:12px;line-height:1.7;margin-top:6px;margin-bottom:14px}
 .panel-note{font-size:11px;line-height:1.7;margin-top:13px;padding-top:10px}
 .panel-body{max-height:none;overflow:auto}
 .main-visual .panel-body{min-height:0}
 .viz-trend{min-height:220px}
 .viz-treemap{min-height:300px}
 .viz-source-flow{min-width:640px;min-height:280px}
 .viz-scroll{overflow:auto}
 .viz-heatmap{min-width:590px;font-size:12px;border-spacing:4px}
 .viz-heatmap th:first-child{width:110px}
 .viz-heatmap .heatmap-cell{min-height:48px;font-size:13px}
 .viz-legend{font-size:12px;gap:8px 16px;margin-top:12px}
 .viz-label{font-size:12px}
 .viz-axis-label,.viz-muted{font-size:11px}
 .viz-comparison{gap:18px}
 .comparison-label{font-size:13px;margin-bottom:10px}
 .comparison-row{padding-bottom:16px}
 .comparison-value{font-size:21px}
 .comparison-track{height:5px}
 .metric-selector button,.comparison-controls button,.content-controls button,.map-controls button,.chart-toolbar button,.country-clear{min-height:44px;padding:8px 10px;font-size:12px}
 .viz-device-bars{gap:19px}
 .device-platform{padding-bottom:16px}
 .device-platform h3,.device-platform-title{font-size:13px}
 .device-stack{height:9px}
 .device-key{gap:7px 15px}
 .device-key-item{font-size:12px}
 .event-row{font-size:13px;padding-bottom:13px;gap:8px 12px}
 .event-row code{font-size:11px}
 .event-value{font-size:17px}
 .event-track{height:4px}
 .content-table,.detail-table,.country-table{font-size:12px}
 .content-table th,.detail-table th,.country-table th{font-size:11px}
 .content-table td,.detail-table td,.country-table td{padding-block:12px}
 .country-row,.country-list>button{min-height:48px;font-size:13px;padding:11px 2px}
 .country-row strong{font-size:15px}
 .view-world .world-map-wrap{min-height:360px;max-height:none;height:auto;overflow:auto}
 .world-map{height:auto;min-height:360px;min-width:640px}
 .view-world .detail-panel .panel-body{max-height:510px}
 .map-legend{font-size:12px}
 .screen-footer{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:21px;font-size:11px;line-height:1.75;margin-top:0}
 #source-note,#integrity-note{width:100%}
 #clock{font-size:11px;white-space:normal}
 dialog{padding:19px 17px;width:calc(100vw - 24px);max-height:90svh}
 .dialog-top h2{font-size:20px}
 #dialog-body{font-size:14px}
 #dialog-body table{font-size:12px}
 .ambient{opacity:.14;background-size:20px 20px,100% 100%;mask-image:radial-gradient(ellipse at 80% 0%,#000,transparent 35%);-webkit-mask-image:radial-gradient(ellipse at 80% 0%,#000,transparent 35%)}
}
@media(max-width:359px){
 :root{--screen-gutter:14px}
 .screen-title h1{font-size:17px;letter-spacing:-.025em}
 .eyebrow{font-size:7px}
 .header-tools{gap:6px}
 .ui-language-control select{width:113px}
 .site-tabs button{font-size:11px}
 .kpi-value{font-size:28px}
 .kpi-name{font-size:11px}
 .kpi{padding-inline:10px}
 .panel{padding-inline:12px}
 .panel-title h2{font-size:16px}
 .view-tabs{gap:4px 12px}
}
@media(prefers-reduced-motion:no-preference){
 .ambient{animation:ambient-drift 32s ease-in-out infinite alternate}
 .dashboard>.panel,.kpi{animation:panel-reveal .42s ease both}
 .dashboard>.panel:nth-child(2){animation-delay:.05s}
 .dashboard>.panel:nth-child(3){animation-delay:.09s}
 .viz-line{animation:line-reveal .9s ease both}
 .viz-tree-cell>rect{animation:tree-reveal .55s ease both;transform-box:fill-box;transform-origin:center}
 .world-map-route[data-presenting="true"] .world-map-flow{animation:world-flow 3.8s linear infinite}
 .world-map-point[data-presenting="true"] .world-map-point-halo{animation:world-pulse 3.8s ease-out infinite}
 .world-map-site-card[data-presenting="true"] .world-map-card-glow{animation:world-glow 3.8s ease-in-out infinite}
 @keyframes ambient-drift{to{transform:translate3d(6px,4px,0)}}
 @keyframes panel-reveal{from{opacity:.55;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
 @keyframes line-reveal{from{opacity:.15}to{opacity:1}}
 @keyframes tree-reveal{from{opacity:.2;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
 @keyframes world-flow{to{stroke-dashoffset:-100}}
 @keyframes world-pulse{0%{opacity:.2;transform:scale(.86)}50%{opacity:.65;transform:scale(1.12)}100%{opacity:.2;transform:scale(.86)}}
 @keyframes world-glow{0%,100%{opacity:.15}50%{opacity:.65}}
}
html[data-animations-paused="true"] *,html[data-animations-paused="true"] *::before,html[data-animations-paused="true"] *::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .ambient{transform:none}
 .world-map-point-halo,.world-map-card-glow{opacity:.25}
}
/* Controller contracts: summaries, complete detail actions, and country focus. */
.view-subtitle{font-size:12px;line-height:1.65;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
.panel-actions{display:flex;align-items:center;justify-content:space-between;gap:7px 12px;flex-wrap:wrap;padding-top:9px;border-top:1px solid var(--line);margin-top:10px;flex:none}
.panel-actions button,.panel-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 9px;border:1px solid transparent;background:transparent;color:var(--accent);font-size:12px;line-height:1.4;gap:7px}
.panel-actions button:hover,.panel-actions a:hover{background:var(--accent-wash);border-color:var(--line)}
.panel-actions .quiet{border-color:var(--line)}
.quality-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 17px;border-top:1px solid var(--line);padding-top:14px;margin-top:15px}
.summary-item{min-width:0;font-size:11px;line-height:1.55;color:var(--muted)}
.summary-item>span,.summary-item>label{display:block;font-size:11px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.summary-item>strong{display:block;font-size:24px;font-weight:450;line-height:1.3;color:var(--ink);margin:5px 0 3px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.summary-item>small{display:block;font-size:11px;line-height:1.5;color:var(--soft);overflow-wrap:anywhere}
.country-button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 14px;min-height:44px;width:100%;padding:9px 3px;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:transparent;font-size:12px;line-height:1.5;text-align:left}
.country-button:hover,.country-button[aria-pressed="true"]{background:var(--accent-wash);color:var(--accent)}
.country-button .country-value{font-size:15px;font-weight:450;font-variant-numeric:tabular-nums;white-space:nowrap}
.country-button small{display:block;color:var(--soft);font-size:11px;line-height:1.5;margin-top:2px}
.country-button:last-child{border-bottom:0}
.geo-summary{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:12px;line-height:1.6;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:5px}
.geo-summary strong{font-size:23px;font-weight:450;line-height:1.3;color:var(--ink)}
.country-focus{margin:0 0 11px;padding:11px 12px;background:var(--wash);border:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.country-focus h3{font-size:15px;line-height:1.5;color:var(--ink);margin-bottom:8px}
.country-focus p+ p{margin-top:6px}
.country-focus strong{font-weight:450;color:var(--ink)}
.country-focus .focus-platform{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;border-bottom:1px solid var(--line)}
.country-focus .focus-platform:last-child{border:0}
.report-note{font-size:11px;line-height:1.6;color:var(--muted);border-left:2px solid var(--line);padding-left:9px;margin-top:9px;overflow-wrap:anywhere}
.report-note strong{font-weight:450;color:var(--ink)}
.interaction-status{font-size:11px;line-height:1.5;color:var(--muted);max-width:100%;overflow-wrap:anywhere}
.interaction-status:empty{display:none}
@media(min-width:1100px) and (max-height:800px){.quality-rail{gap:10px 14px;margin-top:12px;padding-top:11px}.summary-item>strong{font-size:21px}.comparison-controls{gap:5px}.comparison-controls button{padding-inline:8px;font-size:11px}.panel-actions{padding-top:7px;margin-top:8px}.panel-actions button,.panel-actions a{min-height:36px}.country-focus{padding:9px 10px}}
@media(max-width:759px){.quality-rail{gap:18px;margin-top:18px;padding-top:17px}.summary-item>span,.summary-item>label{font-size:12px}.summary-item>strong{font-size:27px}.summary-item>small{font-size:11px}.panel-actions{margin-top:13px;padding-top:10px}.panel-actions button,.panel-actions a{font-size:12px;min-height:44px}.country-button{min-height:48px;font-size:13px;padding-block:11px}.country-button .country-value{font-size:16px}.country-focus{padding:13px;font-size:13px}.geo-summary{font-size:13px}.interaction-status,.report-note{font-size:11px;line-height:1.7}}

/* Chart-module contracts refined against actual output. */
.event-value{grid-column:2;grid-row:1;align-self:start}.event-track{grid-row:2}
.viz-heatmap table{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed}
.summary-item>strong>small{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:0;margin-left:5px}
.viz-source-keys{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
.viz-source-key{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:7px 10px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:12px;line-height:1.5;text-align:left}
.viz-source-key b{font-weight:450;color:var(--ink);font-variant-numeric:tabular-nums}.viz-source-key:hover,.viz-source-key.is-selected{border-color:var(--accent);background:var(--accent-wash);color:var(--ink)}
.viz-data-note{font-size:11px;color:var(--muted);line-height:1.6;margin:11px 0 5px}.viz-language-totals{margin-top:18px;border-top:1px solid var(--line);padding-top:13px}.viz-language-totals h3{font-size:13px;line-height:1.5;color:var(--ink)}.viz-language-totals p{font-size:11px;line-height:1.7;color:var(--muted);margin:5px 0 12px}
.language-total-list{display:grid;gap:9px}.language-total-row{display:grid;grid-template-columns:minmax(60px,.8fr) minmax(30px,1fr) 50px;gap:9px;align-items:center;font-size:12px;line-height:1.5}.language-total-row>span{overflow-wrap:anywhere}.language-total-row>b{font-weight:450;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.language-total-track{height:3px;background:var(--line)}.language-total-track>span{height:100%;display:block;background:var(--accent);opacity:.7}
@media(max-width:759px){.viz-source-key{font-size:12px;min-height:46px}.language-total-row{font-size:13px;grid-template-columns:minmax(80px,.9fr) minmax(30px,1fr) 50px}.viz-language-totals h3{font-size:14px}.viz-language-totals p,.viz-data-note{font-size:12px;line-height:1.7}}
.comparison-controls select{min-height:44px;padding:7px 10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:12px;max-width:100%}
.country-focus>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:5px 0;border-bottom:1px solid var(--line)}
.country-focus>div:last-of-type{border-bottom:0}.country-focus>div>strong{font-size:16px;font-variant-numeric:tabular-nums}
.report-note dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 20px;margin:12px 0 16px;max-width:640px}
.report-note dt,.report-note dd{padding:9px 0;border-bottom:1px solid var(--line);margin:0;line-height:1.5;font-size:13px}
.report-note dd{text-align:right;color:var(--ink);font-weight:450;font-variant-numeric:tabular-nums}
.viz-tree-outline{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.viz-source-hit{stroke:transparent!important}
.viz-source-node:focus-visible .viz-source-hit{stroke:var(--accent)!important}
/* Desktop audience view: preserve three device groups and the non-basic event overview. */
@media(min-width:1100px){
 .view-audience .viz-device-bars{gap:0}
 .view-audience .device-platform{display:grid;grid-template-columns:minmax(82px,112px) minmax(0,1fr);grid-template-rows:auto auto;gap:4px 12px;align-items:center;min-height:44px;padding:8px 0;border-bottom:1px solid var(--line)}
 .view-audience .device-platform:last-child{border-bottom:0}
 .view-audience .device-platform h3{grid-column:1;grid-row:1/span 2;margin:0;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
 .view-audience .device-stack{grid-column:2;grid-row:1;height:5px}
 .view-audience .device-key{grid-column:2;grid-row:2;gap:3px 11px;margin:0}
 .view-audience .device-key-item{font-size:11px;line-height:1.4;gap:4px}
 .view-audience .device-key-item small{font-size:10px;color:var(--muted)}
 .view-audience .event-panel>.panel-title{min-height:34px;padding-right:48%;align-items:center}
 .view-audience .event-panel>.panel-title h2{font-size:14px;line-height:1.35}
 .view-audience .event-panel>.panel-actions{position:absolute;top:8px;right:15px;max-width:46%;margin:0;padding:0;border:0;justify-content:flex-end}
 .view-audience .event-panel>.panel-actions button{min-height:36px;font-size:11px;line-height:1.35;padding:6px 8px;white-space:normal;text-align:right}
 .view-audience .event-panel>.panel-subtitle{margin-top:1px;margin-bottom:10px}
 .view-audience .viz-event-bars[data-expanded="false"] .event-row code{display:none}
 .view-audience .viz-event-bars[data-expanded="false"]{gap:6px}
 .view-audience .viz-event-bars[data-expanded="false"] .event-row{grid-template-rows:18px 2px;row-gap:2px;padding:0 0 3px;border:0;font-size:12px;line-height:18px}
 .view-audience .viz-event-bars[data-expanded="false"] .event-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .view-audience .viz-event-bars[data-expanded="false"] .event-value{font-size:13px;line-height:18px}
 .view-audience .viz-event-bars[data-expanded="false"] .event-track{height:2px}
 .view-audience .main-visual>.panel-body{justify-content:flex-start}
 .view-audience .main-visual .viz-scroll{flex:0 0 auto;overflow:visible}
 .view-audience .main-visual .viz-source-flow{min-height:240px}
}
@media(min-width:1100px) and (max-height:800px){
 .view-audience .device-platform{min-height:42px;padding:6px 0;gap:3px 12px}
 .view-audience .device-platform h3{font-size:11px}
 .view-audience .device-key{gap:2px 9px}
 .view-audience .event-panel>.panel-title{min-height:31px}
 .view-audience .event-panel>.panel-actions{top:7px}
 .view-audience .event-panel>.panel-actions button{min-height:32px}
 .view-audience .event-panel>.panel-subtitle{margin-bottom:7px}
 .view-audience .viz-event-bars[data-expanded="false"]{gap:2px}
 .view-audience .viz-event-bars[data-expanded="false"] .event-row{grid-template-rows:15px 2px;row-gap:1px;padding:0 0 2px;min-height:20px;font-size:11px;line-height:15px}
 .view-audience .viz-event-bars[data-expanded="false"] .event-value{font-size:12px;line-height:15px}
}

/* Quality summaries already have a panel heading; their top separator repeated that spacing. */
@media(min-width:1100px){.quality-rail{border-top:0;margin-top:0;padding-top:0}}
/* Language focus: de-emphasize the colour field, never the legibility of its value. */
.viz-heatmap .heatmap-cell.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) calc(var(--heat,0)*38% + 8%),var(--paper));color:var(--ink);font-weight:550;box-shadow:inset 0 -2px 0 var(--accent)}
.viz-heatmap .heatmap-cell.is-dimmed{opacity:1;background:color-mix(in srgb,var(--accent) 3%,var(--paper));border-color:var(--line);color:var(--muted);box-shadow:none}
.viz-heatmap .heatmap-cell.is-dimmed:hover{border-color:var(--accent);background:var(--accent-wash);color:var(--ink)}
.viz-heatmap .heatmap-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px;color:var(--ink)}

/* CNUCAP identity */
:root{--bg:#071a20;--surface:#0c3944;--accent:#83d5da;--series-cnucap:#83d5da;--series-huang:#b6a483}body{background:#071a20;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif}.brand img{width:124px;height:38px;object-fit:contain}.masthead{border-bottom-color:#83d5da44}.panel{border-radius:0}.brand>span{display:none}
:root[data-theme="dark"]{--paper:#071a20;--wash:#0a242c;--panel:#0c303b;--line:#33515a;--ink:#f5f6f3;--muted:#adc0c4;--accent:#83d5da;--map-land:#0c303b;--map-outline:#48717b}
