/* One Malaysia instrument: the user's selected 3D aesthetic in both renderers.
   Data ramps and supplied artwork keep their original colours and meaning. */
:root { --instrument-ground:#070b0e; --instrument-raised:#0d1418; --instrument-line:#33454a; --instrument-ink:#e8e4d8; --instrument-muted:#a8b5b1; --instrument-active:#f2c14e; }
body.dashboard {
 color-scheme:dark;--paper:var(--instrument-ground);--well:#132025;--well-2:var(--instrument-raised);
 --nav:var(--instrument-ground);--nav-ink:var(--instrument-ink);--ink:var(--instrument-ink);--ink-mid:#bac7c3;--ink-low:var(--instrument-muted);
 --rule:#26373c;--rule-strong:var(--instrument-line);--accent:var(--instrument-active);--accent-ink:#070b0e;--accent-dim:#16262e;
 --ok:#6fcf97;--alert:#f2c14e;--warn:#f48067;--bad:#f48067;--bad-ink:#ffaba0;
 --wash-ok:#14271d;--wash-alert:#302918;--wash-warn:#302018;--wash-bad:#321d1c;--wash-info:#14252c;
 font-size:13px;
}
.kl-nation-body { font-family:var(--font); }
.dashboard .ticker,.dashboard .top,.dashboard .lenses,.dashboard .tabs,.dashboard .bottom-nav,.dashboard .foot { background:var(--instrument-ground);border-color:var(--rule-strong); }
.dashboard .ticker-zone,.dashboard .ticker-markets,.dashboard .tkz-cell b,.dashboard .tkm-cell b,.dashboard .tkm-age { color:var(--ink-low); }
.dashboard .lens,.dashboard .tabs button,.dashboard .langs button,.dashboard .toplink { color:var(--ink-mid); }
.dashboard .lens:hover,.dashboard .tabs button:hover,.dashboard .langs button:hover { background:var(--well);color:var(--ink); }
.dashboard .lens[aria-pressed=true],.dashboard .tabs button[aria-selected=true],.dashboard .top .langs button[aria-pressed=true] { color:var(--instrument-active);background:transparent;border-bottom-color:var(--instrument-active); }
.dashboard .top .search input { background:var(--well-2);border:1px solid var(--rule-strong);color:var(--ink); }
.dashboard .verdict,.dashboard .kpis,.dashboard .rail { background:var(--instrument-raised);color:var(--ink); }
.dashboard .rail { border-left:1px solid var(--rule-strong); }
.dashboard .kpi:nth-child(-n+2) { background:transparent; }
.dashboard .kpi:hover { background:var(--well); }
.dashboard .note,.dashboard .bcard.insights,.dashboard .card.you { background:var(--well);color:var(--ink-mid);border-color:var(--rule-strong); }
.dashboard .btn,.dashboard .btn.ghost,.dashboard .panel-head,.dashboard .layer-panel,.dashboard .legend { background:var(--well-2);color:var(--ink);border-color:var(--rule-strong); }
.dashboard .btn:hover,.dashboard .btn[aria-pressed=true] { background:var(--well);border-color:var(--instrument-active);color:var(--instrument-active); }
.dashboard .btn.danger { background:#a12329;color:#fff;border-color:#a12329; }
.dashboard .panel-head kbd { color:var(--ink-low);border-color:var(--rule-strong); }
.dashboard .seg button[aria-pressed=true] { background:var(--well);color:var(--instrument-active);border-color:var(--instrument-active); }
.dashboard .sat-hud { background:var(--instrument-ground);color:var(--ink-mid);border:1px solid var(--rule-strong); }
.dashboard .caption { background:var(--well-2);color:var(--ink); }
.dashboard .place-start,.dashboard .context-line { border-color:var(--rule-strong); }
.dashboard .local-evidence { border-top-color:var(--instrument-line); }
.dashboard .bottom-nav button { color:var(--ink-mid); }
.dashboard .bottom-nav button[aria-pressed=true] { color:var(--instrument-active);box-shadow:inset 0 2px var(--instrument-active);background:transparent; }
.dashboard .leaflet-container { background:var(--instrument-ground);font-family:var(--font); }
.dashboard .leaflet-popup-content-wrapper,.dashboard .leaflet-popup-tip,.dashboard .leaflet-control-zoom a { background:var(--well-2);color:var(--ink);box-shadow:none;border-color:var(--rule-strong); }
.dashboard .leaflet-control-attribution { background:var(--instrument-ground) !important;color:var(--ink-low) !important; }
.dashboard .leaflet-control-attribution a { color:var(--accent) !important; }
.dashboard[data-basemap=sat] .leaflet-tile-pane { filter:brightness(.62) saturate(.5); }
.dashboard :focus-visible { outline-color:var(--instrument-active); }
.map-views { position:absolute;left:8px;top:8px;display:flex;background:var(--instrument-ground);border:1px solid var(--rule-strong);z-index:850; }
.map-views button { min-height:26px;padding:2px 7px;background:transparent;color:var(--ink-mid);border:0;border-bottom:2px solid transparent;line-height:18px;font-weight:600; }
.map-views button[aria-pressed=true] { color:var(--instrument-active);border-bottom-color:var(--instrument-active); }
.dashboard .place-map-tools { left:91px;max-width:calc(100% - 205px);background:var(--instrument-ground); }
#scene3d { position:absolute;inset:0;width:100%;height:100%;border:0;z-index:410;display:none;background:var(--instrument-ground); }
#sceneNotice { display:none;position:absolute;left:8px;bottom:45px;z-index:810;max-width:320px;padding:5px 8px;background:var(--instrument-ground);color:var(--instrument-active);border-left:2px solid var(--instrument-active);font-size:12px; }
#sceneNotice:empty { display:none !important; }
.map-wrap[data-map-mode="3d"] #scene3d { display:block; }
.map-wrap[data-map-mode="3d"] #sceneNotice { display:block; }
.map-wrap[data-map-mode="3d"] #map { visibility:hidden;pointer-events:none; }
.map-wrap[data-map-mode="3d"] #legend,.map-wrap[data-map-mode="3d"] #caption,.map-wrap[data-map-mode="3d"] #hudCoords,.map-wrap[data-map-mode="3d"] #hudStack,.map-wrap[data-map-mode="3d"] .hud-sep { display:none !important; }
.map-wrap[data-map-mode="3d"] #hud3d { display:inline !important; }
.map-view-context { padding:7px 12px;margin:0;color:var(--ink-low);font-size:11px;border-bottom:1px solid var(--rule); }
html[data-embedded=true] .n-top,html[data-embedded=true] .n-tools,html[data-embedded=true] .n-rail,html[data-embedded=true] .n-status { display:none !important; }
html[data-embedded=true] #n-map { inset:0; }
@media(max-width:900px) {
 .map-views button { min-height:44px;min-width:36px;padding:2px 6px; }
 .dashboard .place-map-tools { left:87px;max-width:calc(100% - 190px); }
 .dashboard .place-map-tools [data-home-map] { display:none; }
 .dashboard .place-map-tools button { font-size:11px;line-height:15px;padding:2px 5px; }
 .map-view-context { font-size:11px; }
}
.scene-picking .maplibregl-canvas { cursor:crosshair !important; }
/* Supplied navy lockup is designed for a light ground; keep its alpha intact. */
.dashboard .brand-lockup { background:#f5f8f6;padding:8px; }

/* Glance controls · 19 October: plain keys; gold means selected/action.
   Signal colours belong to readings, not decorative card backgrounds. */
.dashboard { font-variant-numeric:tabular-nums; }
.dashboard .top { grid-template-columns:auto minmax(160px,1fr) auto;grid-template-areas:"brand search right" "lenses lenses lenses"; }
.dashboard .brand h1 { letter-spacing:-.025em; }
.dashboard .kpis { grid-template-columns: minmax(210px,1fr) minmax(210px,1fr) repeat(7, minmax(95px, .3fr)); }
.dashboard .kpi { min-width:0;border-left:0;padding:4px 8px;column-gap:4px; }
.dashboard .kpi:nth-child(-n+2) .k-v { font-size:26px; }
.dashboard .kpi:nth-child(n+3) .k-v { font-size:16px; }
.dashboard .kpi:nth-child(-n+2) .k-l { font-size:12px;line-height:1.15;gap:4px; }
.dashboard .kpi:nth-child(n+3) .k-l { font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;gap:3px;line-height:1; }
.dashboard .k-s,.dashboard .k-age { font-size:10px;line-height:1.2; }
.dashboard .k-age { color:var(--ink-low); }
.dashboard .map-views,.dashboard .place-map-tools { border:0; }
.dashboard .panel-head { border:0; }
.dashboard .layer-panel:has(.panel-head[aria-expanded="false"]) { border-color:transparent; }
.dashboard .panel-head kbd { border:0;padding:0 2px; }
.dashboard .btn.ghost { border:0;border-bottom:1px solid var(--rule-strong);background:transparent; }
.dashboard .bcard.insights,.dashboard .card.you { background:transparent;padding-left:0;padding-right:0;border-left:0;border-top-color:var(--rule-strong); }
.dashboard .note { background:transparent;border-left:2px solid var(--rule-strong);padding:4px 0 4px 10px; }
.dashboard .tab-body p { max-width:65ch; }
.dashboard .map-view-context { font-size:12px;line-height:1.4;padding:6px 12px; }
@media(min-width:901px) {
 .dashboard .v-act .btn { min-height:24px;padding:2px 6px;line-height:18px; }
 .dashboard .toplink { font-size:12px; }
 .dashboard .status { display:none; }
 .dashboard .v-why { max-width:75ch; }
 .dashboard .ticker-zone { flex-basis:38%; }
}
@media(max-width:1100px) and (min-width:901px) {
 .dashboard .top-right > .toplink { display:none; } /* Retained in Menu. */
 .dashboard .top { grid-template-columns:auto minmax(150px,1fr) auto; }
}
@media(max-width:900px) {
 .dashboard .top { grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand right" "lenses lenses"; }
 .dashboard .top[data-search="open"] { grid-template-areas:"brand right" "search search" "lenses lenses"; }
 .dashboard .kpis { grid-template-columns:repeat(9,166px); }
 .dashboard .v-act { gap:4px 12px; }
 .dashboard .v-act .btn { min-height:44px;padding:2px 0;border:0;background:transparent; }
 .dashboard .v-act .btn.danger { color:#ffaba0; }
 .dashboard .panel-head { min-height:44px; }
}

/* antiSHism: persistent space buys a map decision; full feed detail is chosen. */
body.dashboard { grid-template-areas:"ticker" "top" "banner" "verdict" "stage" "foot";grid-template-rows:max-content max-content max-content max-content minmax(320px,1fr) max-content; }
/* The readings band takes its intrinsic height. A viewport-relative cap clipped
   the ninth tile's source and age at 1280x720, and a hidden age is hidden
   provenance. The panel is the one scroll region and the summary stays pinned,
   so a genuinely short window degrades by scrolling instead of by cutting. */
.dashboard .pulse-panel { flex:0 1 auto;min-height:0;min-width:0;overflow:auto;border-bottom:1px solid var(--rule-strong); }
.dashboard .pulse-panel > summary { position:sticky;top:0;z-index:2;cursor:pointer;min-height:26px;padding:2px 8px;background:var(--instrument-raised);color:var(--ink-mid);font-weight:600; }
.dashboard .pulse-panel[open] > summary { color:var(--instrument-active); }
.dashboard .pulse-body { min-height:0; }
.dashboard .pulse-panel .kpis { grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;border:0; }
.dashboard .pulse-panel .kpi { padding:6px 12px;border-bottom:1px solid var(--rule); }
@media(min-width:901px) {
 .dashboard .top .search input,.dashboard .top .icon-btn { height:24px; }
 /* The masthead utilities top out at 24px (languages, menu). The briefing key
    inherited the generic 28px button and made the whole masthead 4px taller,
    which is 4px of map at every desktop height. */
 .dashboard .top #briefingBtn { height:24px; min-height:24px; padding:2px 8px; font-size:12px; }
 .dashboard .brand-mark { height:22px; }
 .dashboard .lens { min-height:22px; }
 .dashboard .ticker,.dashboard .ticker-zone,.dashboard .ticker-markets { min-height:22px; }
}
@media(max-width:900px) {
 .dashboard .pulse-panel > summary { min-height:44px;padding:10px 12px; }
}
/* Phone map height follows actual chrome, not the old 315px subtraction. */
@media(max-width:900px) {
 body.dashboard[data-view="map"] { display:grid; }
 .dashboard[data-view="map"] .stage { min-height:0; }
 .dashboard[data-view="map"] .map-wrap { height:100%;min-height:0; }
}

@media(max-width:900px){.dashboard .place-map-tools{max-width:calc(100% - 170px);}.dashboard #weatherMotion{font-size:11px;}}

/* One decision row, intrinsic disclosure. No duplicated full-width outage band. */
.dashboard .verdict{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;padding:0 8px;}
.dashboard .v-details{flex:1;min-width:0;}
.dashboard .v-details>summary{cursor:pointer;min-height:24px;line-height:18px;}
.dashboard .v-details .v-verb{font-size:15px;line-height:18px;letter-spacing:0;}
.dashboard .v-counts,.dashboard .v-feed{font-size:12px;line-height:18px;margin-left:8px;}
.dashboard .v-feed{color:var(--warn);}
.dashboard .v-act{align-self:flex-start;display:flex;gap:8px;max-width:none;align-items:center;}
.dashboard .v-act .btn{min-height:24px;padding:2px 5px;font-size:12px;line-height:18px;border:0;}
.dashboard .v-note{width:auto;font-size:11px;line-height:16px;}
.dashboard .v-detail-body{padding:4px 0 6px;}
.dashboard .v-detail-body .v-chips{display:flex;flex-wrap:wrap;gap:4px;}
.dashboard .v-detail-body .banner{padding:4px 6px;font-size:12px;line-height:17px;}
.dashboard .v-main{display:block;}
@media(min-width:901px){.dashboard .top{padding-top:0;gap:0 8px;}.dashboard .lens{min-height:22px;padding-top:0;padding-bottom:0;}}
@media(max-width:900px){
 .dashboard .verdict{gap:0 6px;padding:0 8px 2px;}
 .dashboard .v-details>summary{min-height:44px;line-height:18px;}
 .dashboard .v-counts{display:block;margin-left:12px;font-size:11px;line-height:15px;}
 .dashboard .v-feed{display:block;margin-left:12px;font-size:11px;line-height:15px;}
 .dashboard .v-act .btn{min-height:44px;padding:2px 4px;display:flex;align-items:center;}
 .dashboard .v-note{flex-basis:100%;line-height:15px;}
}
/* An expanded explanation is a reading surface, not a narrow sibling column. */
.dashboard .v-details[open]{flex-basis:100%;}
