@charset "UTF-8";
:root{--bg-main:#1e2328;--bg-panel:#252b31;--bg-panel-alt:#2b3239;--bg-hover:#323b43;--border:#3a444d;--border-soft:#333c44;--border-control:#738390;--text-primary:#e5ebee;--text-secondary:#bdc8ce;--text-muted:#9eacb7;--accent-green:#93c5ad;--accent-green-soft:#35594c;--accent-gold:#d8b574;--accent-blue:#a8c2df;--accent-cyan:#9ccfd5;--attention:#d8b574;--panel-x:14px;--positive:#93c5ad;--negative:#ddb0a6;--error-bg:#3c302c;--error-text:#e9c0a7;--map-0:#29343e;--map-1:#3c4c53;--map-2:#4d685e;--map-3:#638570;--map-4:#82a786;--map-5:#a4caa2;--map-6:#c6ebc7;--map-unknown:#46515a;--map-line:#233039;--map-label:#eef2f4;--map-halo:#1e2328;--chart-bar:#678879;--chart-current:#93c5ad;--shadow:0 18px 54px rgb(11 21 27 / .45);--backdrop:rgb(17 24 30 / .75);--ink:var(--text-primary);--muted:var(--text-secondary);--line:var(--border);--paper:var(--bg-main);--green:var(--accent-green);--deep:var(--accent-green);--warm:var(--accent-gold);--radius:8px;--gutter:28px;--gap:12px;--panel-padding:14px;font-family:"Segoe UI","Malgun Gothic",sans-serif;font-size:13px;color:var(--text-primary);background:var(--bg-main);color-scheme:dark;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}summary:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--warm);outline-offset:3px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}.skip-link{position:fixed;left:12px;top:-100px;z-index:20;background:var(--bg-panel);padding:12px}.skip-link:focus{top:8px}
/* App frame: full desktop width, compact toolbar, persistent compact mobile navigation. */
.header{min-height:64px;display:flex;align-items:center;gap:20px;padding:0 var(--gutter);background:var(--bg-panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;flex-shrink:0;font-size:24px;font-weight:750;letter-spacing:-1px}.brand-accent{color:var(--accent-green)}.brand small{display:block;font-size:10px;letter-spacing:.6px;font-weight:600;color:var(--muted);margin-top:1px}.header nav{display:flex;align-self:stretch;align-items:stretch;gap:20px}.header nav a{display:flex;align-items:center;min-height:44px;padding:3px 0 0;border-bottom:3px solid transparent;color:var(--muted);font-weight:650;white-space:nowrap}.header nav .nav-active{color:var(--deep);border-color:var(--deep)}.toolbar-context{margin-left:auto;display:flex;align-items:center;gap:16px}#freshness{font-size:11px;color:var(--muted);max-width:190px}.period{display:flex;align-items:center;gap:8px;white-space:nowrap}.period label{font-size:12px;color:var(--muted)}.period select{min-height:36px;padding:6px 9px;border:1px solid var(--border-control);border-radius:6px;background:var(--bg-panel);color:var(--deep);font-size:14px;font-weight:650}.search-trigger{display:flex;align-items:center;gap:8px;min-height:36px;padding:7px 10px;background:var(--bg-panel-alt);border:1px solid var(--line);border-radius:6px;color:var(--muted);white-space:nowrap}.search-trigger kbd{font-size:11px;border:1px solid var(--line);background:var(--bg-panel);padding:0 4px;border-radius:3px}
main{width:100%;max-width:none;padding:12px var(--gutter) 14px;margin:auto}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.eyebrow{display:block;font-size:10px;font-weight:750;color:var(--muted);letter-spacing:1.3px}h1{font-size:24px;line-height:1.3;letter-spacing:-.8px;margin:4px 0;word-break:keep-all}.page-intro p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.intro-link{color:var(--green);font-size:12px;padding:8px 0;white-space:nowrap}.data-status{font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:24px;margin:0 0 10px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.data-status.demo{color:var(--accent-gold)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--positive);flex-shrink:0}.demo .status-dot{background:var(--warm)}
/* Shared values; page-specific strips extend this without large decorative cards. */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.metric-card{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-width:0}.metric-name{font-size:12px;color:var(--muted);margin-bottom:4px}.metric-card strong{display:block;font-size:26px;line-height:1.2;font-weight:710;letter-spacing:-.7px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric-card strong span{font-size:13px;letter-spacing:0;color:var(--muted);font-weight:400;margin-left:5px}.metric-sub{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.4;overflow-wrap:anywhere}.skeleton{min-height:92px;background:linear-gradient(90deg,var(--bg-panel-alt) 25%,var(--bg-hover) 50%,var(--bg-panel-alt) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}
.workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,1fr);gap:var(--gap);align-items:start}.workspace>*{min-width:0}.map-card,.region-panel,.data-panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.tag{font-size:11px;border:1px solid var(--line);border-radius:4px;color:var(--muted);padding:4px 7px;white-space:nowrap}.metric-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:0 var(--panel-padding);margin-bottom:4px}.metric-tabs button{min-height:36px;font-size:12px;padding:7px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg-panel);color:var(--muted)}.metric-tabs button[aria-pressed=true]{color:var(--text-primary);background:var(--accent-green-soft);border-color:var(--deep)}.metric-tabs button:hover{border-color:var(--accent-green)}
.map-stage{position:relative;background:radial-gradient(circle at 50% 42%,var(--bg-panel-alt),var(--bg-panel) 70%)}.map-stage:before{content:"";position:absolute;inset:12px 20px;background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:19px 19px;opacity:.23;pointer-events:none}.map-stage svg{width:100%;height:clamp(390px,calc(100vh - 420px),650px);display:block;position:relative}.province{stroke:var(--map-line);stroke-width:1.7;vector-effect:non-scaling-stroke;transition:fill .3s,filter .15s;cursor:pointer}.province:hover,.province:focus{filter:brightness(1.1);stroke:var(--accent-green);stroke-width:2}.province[aria-pressed=true]{stroke:var(--warm);stroke-width:2.7;filter:drop-shadow(0 2px 3px var(--border-soft))}.map-label{font-size:22px;font-weight:650;fill:var(--map-label);paint-order:stroke;stroke:var(--map-halo);stroke-width:4;pointer-events:none;text-anchor:middle}.leader{stroke:var(--text-muted);stroke-width:1;fill:none;pointer-events:none;stroke-dasharray:2 2}.map-hint{position:absolute;top:20px;left:20px;font-size:12px;line-height:1.7;color:var(--muted);z-index:1}.map-direction{position:absolute;top:20px;right:20px;z-index:1;color:var(--muted);font-size:11px;text-align:center}.map-direction i{display:block;font-style:normal;font-size:24px}.map-legend{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px var(--panel-padding);border-top:1px solid var(--line);gap:8px;font-size:12px;color:var(--muted)}.legend-scale{display:flex;align-items:center;gap:8px}.legend-ramp{width:100px;height:7px;border-radius:4px;display:flex;overflow:hidden}.unknown-key{font-size:11px}.map-footnote{background:var(--bg-panel-alt);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);padding:10px var(--panel-padding);line-height:1.6;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.map-footnote a{text-decoration:underline}#map-tooltip{position:absolute;z-index:4;pointer-events:none;background:var(--bg-panel-alt);color:var(--text-primary);border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.7;max-width:235px}#map-tooltip strong{font-size:14px}
.panel-top{padding:12px var(--panel-padding);border-bottom:1px solid var(--line);background:var(--bg-panel-alt);border-radius:var(--radius) var(--radius) 0 0}.region-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:5px}.region-heading h2{font-size:23px;margin:0;word-break:keep-all}.region-heading select{max-width:160px;min-width:0;min-height:36px;border:1px solid var(--line);border-radius:6px;background:var(--bg-panel);color:var(--green);padding:6px;font-size:12px}.region-description{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.6}.regional-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px var(--panel-padding)}.regional-kpis strong{font-size:26px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.regional-kpis small{font-size:12px;font-weight:400;color:var(--muted);margin-left:4px}.mini-growth{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.panel-section{border-top:1px solid var(--line);min-width:0}.trend-chart{width:100%;height:auto;max-height:165px;display:block}.chart-axis{stroke:var(--border);stroke-width:1}.chart-bar{fill:var(--chart-bar)}.chart-bar.current{fill:var(--chart-current)}.trend-chart text{fill:var(--text-secondary);font-size:12px}
.top-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.top-table th{font-size:12px;color:var(--muted);text-align:left;padding:0 4px 8px;font-weight:500}.top-table td{padding:8px 4px;border-top:1px solid var(--border-soft);overflow-wrap:anywhere}.top-table th:first-child,.top-table td:first-child{width:44px;color:var(--muted)}.top-table th:last-child,.top-table td:last-child{width:100px;text-align:right;font-variant-numeric:tabular-nums;color:var(--green)}.company-link{font-weight:600;color:var(--text-primary);display:inline-block;padding:3px 0}.company-link:hover{text-decoration:underline}.empty-state{padding:16px;border:1px dashed var(--line);border-radius:6px;background:var(--bg-panel-alt);color:var(--muted);font-size:13px;text-align:center;line-height:1.7}.quality-note{padding:10px var(--panel-padding);font-size:12px;line-height:1.6;color:var(--muted);background:var(--bg-panel-alt);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius)}.panel-placeholder{padding:24px var(--panel-padding);color:var(--muted);font-size:13px;line-height:1.7}#region-content[aria-busy=true]{opacity:.55;transition:opacity .2s}.region-all{background:none;border:0;color:var(--green);text-decoration:underline;padding:6px 0;min-height:36px;font-size:12px}
.method-note{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;border-top:1px solid var(--border);padding:6px 0;margin-top:10px;color:var(--text-secondary);font-size:12px}.method-note a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent-green)}footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted);padding:14px 0 0;line-height:1.7}.footer-separator{margin:0 8px}
.error-box{padding:14px;background:var(--error-bg);border:1px solid var(--border-control);border-radius:6px;color:var(--error-text);font-size:13px;line-height:1.8;width:100%}.error-box button{border:1px solid var(--border-control);border-radius:6px;padding:7px 12px;min-height:36px;background:var(--bg-panel);color:var(--error-text);margin-left:8px}dialog{border:1px solid var(--line);border-radius:8px;max-width:650px;width:calc(100% - 24px);padding:20px;color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:var(--backdrop)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dialog-head h2{font-size:19px;margin:0}.dialog-head button{background:none;border:0;padding:10px;min-height:44px;color:var(--muted)}.search-box{display:flex;gap:8px;margin-top:8px}.search-box input{border:1px solid var(--border-control);border-radius:6px;padding:10px;min-width:0;flex:1}.search-box button{border:0;border-radius:6px;background:var(--accent-green-soft);color:var(--text-primary);padding:10px 16px;min-height:44px}#search-form label{font-size:13px;color:var(--muted)}#search-results{margin-top:16px;font-size:13px;color:var(--muted);line-height:1.7;max-height:55vh;overflow:auto}.search-result{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.search-result:hover{color:var(--green)}.search-summary{color:var(--muted);font-size:12px}.pagination{display:flex;justify-content:flex-end;gap:8px;padding-top:12px}.pagination button{border:1px solid var(--line);background:var(--bg-panel);color:var(--green);padding:8px 16px;border-radius:6px;min-height:44px}#method-dialog p{font-size:13px;line-height:1.8;color:var(--muted)}
#hub-shell{min-width:0}#hub-shell h2{font-size:26px;letter-spacing:-.7px;margin:6px 0;overflow-wrap:anywhere}#hub-shell p{font-size:13px;color:var(--muted);line-height:1.7}.hub-placeholder{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--panel-padding)}.hub-back{display:inline-block;border:1px solid var(--border-control);border-radius:6px;padding:9px 12px;min-height:36px;font-size:13px;margin-top:12px;color:var(--green)}.company-performances{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.profile-details{line-height:1.8;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.mobile-top-list,.mobile-region-picker{display:none}
@keyframes shimmer{to{background-position:-200% 0}}
@media(max-width:1200px){:root{--gutter:20px}.header{gap:16px}.header nav{gap:16px}#freshness{max-width:180px}.search-trigger kbd{display:none}.map-hint{display:none}}
@media(max-width:900px){.workspace{grid-template-columns:minmax(0,1fr)}.company-performances{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){:root{--gutter:12px;--panel-padding:12px;--panel-x:12px}.header{gap:6px 8px}.brand{font-size:21px;gap:6px}.brand img{width:28px;height:28px}.brand small{display:none}.header nav{gap:8px}.header nav a{font-size:12px;min-height:44px;padding:3px 4px 0}.period{gap:4px}.period label{font-size:12px}.period select{min-height:44px;padding:6px;font-size:13px}.search-trigger{min-height:44px;padding:8px;font-size:17px}.search-trigger span,.search-trigger kbd{display:none}main{padding-top:12px}h1{font-size:22px}.page-intro{align-items:flex-start}.page-intro .eyebrow{display:none}.page-intro p{font-size:12px}.intro-link{font-size:12px}.data-status{font-size:12px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{padding:12px}.metric-card strong{font-size:26px}.metric-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.metric-tabs button{min-height:44px;font-size:13px}.mobile-region-picker{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:8px 12px;font-size:12px;color:var(--muted)}.mobile-region-picker select{min-height:44px;min-width:0;max-width:100%;border:1px solid var(--line);border-radius:6px;background:var(--bg-panel);padding:7px;color:var(--green)}.map-stage svg{height:390px}.map-stage:before{inset:12px}.map-hint{display:none}.map-label{font-size:22px}.unknown-key{flex-basis:100%}.region-heading select{min-height:44px;max-width:155px}.regional-kpis{gap:12px}.top-table{display:none}.mobile-top-list{display:grid;gap:0}.mobile-company{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:10px 0;min-height:44px;font-size:13px}.mobile-company>div{min-width:0;overflow-wrap:anywhere}.mobile-company>span{color:var(--green);font-size:13px;font-variant-numeric:tabular-nums;flex-shrink:0}.rank-bubble{display:inline-block;min-width:23px;margin-right:5px;color:var(--muted);font-size:12px}.region-all{min-height:44px}.method-note a{min-height:44px}footer{display:block}footer>span{display:block}.search-result{flex-direction:column;gap:3px}dialog{padding:16px}.region-panel{scroll-margin-top:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* One compact KPI panel, four desktop cells and two mobile columns. */
.kpis,.company-performances{gap:0;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius)}
.kpis:empty{display:none}
.kpis .metric-card,.company-performances .metric-card{border:0;border-radius:0;border-right:1px solid var(--line);padding:10px 14px;background:transparent}
.kpis .metric-card:last-child,.company-performances .metric-card:last-child{border-right:0}
.snapshot-note{color:var(--muted);font-size:11px}

@media(max-width:760px){.kpis .metric-card,.company-performances .metric-card{padding:12px}.kpis .metric-card:nth-child(2n){border-right:0}.kpis .metric-card:nth-child(n+3){border-top:1px solid var(--line)}}

/* Company sections keep supported information close to the summary. */
.trend-chart text{font-size:16px}
.quality-note summary{cursor:pointer;padding:4px 0;min-height:32px}
@media(max-width:760px){.quality-note summary{min-height:44px}}
.company-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--panel-padding)}

#hub-shell .company-summary p{margin:4px 0 0}
.company-tabs{min-width:0;max-width:100%;margin:0 0 12px}
.company-tab-buttons{display:flex;flex-wrap:wrap;gap:6px;min-width:0;max-width:100%}
.company-tab-buttons button{padding:6px 10px;min-height:36px;min-width:0;max-width:100%;border:1px solid var(--border-control);border-radius:6px;background:var(--bg-panel-alt);color:var(--text-secondary);font-size:12px;white-space:normal;overflow-wrap:anywhere}
.company-tab-buttons button[aria-selected="true"]{background:var(--accent-green-soft);border-color:var(--accent-green);color:var(--text-primary)}
.company-tab-buttons button:focus-visible,#company-tab-content:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}
#company-tab-content{min-width:0;max-width:100%}
#company-tab-content .company-records{margin-top:0}

.profile-details{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 12px;margin:0}
.profile-details dt{color:var(--muted)}.profile-details dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.industry-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.industry-list li{font-size:13px;background:var(--bg-panel-alt);border:1px solid var(--line);padding:7px 10px;border-radius:6px;overflow-wrap:anywhere;max-width:100%}
.industry-code{font-size:11px;color:var(--muted)}.coverage-note{font-size:12px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}
@media(max-width:760px){.company-summary{flex-direction:column;align-items:flex-start}.company-tab-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.company-tab-buttons button{min-height:44px}.profile-details{grid-template-columns:80px minmax(0,1fr);gap:8px}}

/* Market summary uses only the existing read-only summary contract. */
.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-items:start}
.market-overview{display:grid;gap:var(--gap);min-width:0}.market-regions{grid-column:span 2}

.coverage-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin:0;font-size:13px}
.coverage-grid dt{color:var(--muted)}.coverage-grid dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.region-share-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.region-link{display:block;padding:8px 0;border-top:1px solid var(--line);min-width:0}
.region-link:hover{background:var(--bg-hover)}.share-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 64px 80px;gap:8px;align-items:baseline;font-size:13px}
.share-row strong{overflow-wrap:anywhere}.share-row>span{font-variant-numeric:tabular-nums;text-align:right}.share-amount{color:var(--green)}
.share-track{display:block;width:100%;height:3px;margin:4px 0}.share-background{fill:var(--border-soft)}.share-fill{fill:var(--map-3)}
.share-meta{font-size:12px;color:var(--muted)}
@media(max-width:1200px){.market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.market-regions{grid-column:auto}.region-share-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){.market-grid{grid-template-columns:minmax(0,1fr)}.region-share-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.region-share-list{grid-template-columns:minmax(0,1fr)}.share-row{gap:8px}.share-row>span{font-size:12px}}

.page-intro .eyebrow{display:none}

/* The wide map panel also exposes actual regional values without requiring hover. */
.map-stage{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:start}
.map-region-index{padding:12px;border-left:1px solid var(--line);min-width:0}
.map-region-index h3{font-size:13px;color:var(--muted);margin:0 0 8px}
#region-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
#region-index button{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;min-height:36px;border:0;border-bottom:1px solid var(--line);padding:6px 4px;background:transparent;text-align:left;font-size:12px;color:var(--muted)}
#region-index strong{font-weight:650;min-width:0;overflow-wrap:anywhere;text-align:right;font-variant-numeric:tabular-nums;color:var(--green)}
#region-index button[aria-pressed=true]{background:var(--accent-green-soft);color:var(--deep);box-shadow:inset 2px 0 var(--warm)}
.map-direction{right:280px}
@media(max-width:1200px){.map-stage{display:block}.map-region-index{display:none}.map-direction{right:20px}}
@media(max-width:360px){.map-label{font-size:28px}.page-intro{flex-wrap:wrap}.intro-link{padding:0}}

input{color:var(--text-primary);background:var(--bg-panel-alt)}

/* Dense desktop intro; mobile retains a briefing reading order. */
.page-intro>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;min-width:0}
h1{font-size:22px;margin:0}.page-intro p{font-size:12px}
@media(max-width:760px){.page-intro>div{display:block}.page-intro p{margin-top:4px}}

/* Read-only engine status: native disclosure on every route. */
.header{position:relative}
.engine-status{position:static;font-size:12px;min-width:0}
.engine-status .status-dot{background:var(--text-muted)}
.engine-status[data-health=ready] .status-dot{background:var(--positive)}
.engine-status[data-health=attention] .status-dot{background:var(--accent-gold)}
.engine-status summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;min-height:36px;color:var(--text-secondary)}
.engine-status summary::-webkit-details-marker{display:none}
#freshness{max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.engine-panel{position:absolute;right:var(--gutter);top:calc(100% + 8px);width:min(1100px,calc(100% - 2 * var(--gutter)));max-height:70vh;overflow:auto;scrollbar-gutter:stable;padding:0;border:1px solid var(--border-control);border-radius:var(--radius);background:var(--bg-panel);box-shadow:var(--shadow);z-index:30}.engine-note{font-size:12px;line-height:1.6;color:var(--text-secondary);margin:8px 0}
.engine-table-wrap{min-width:0;overflow:auto}.engine-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;text-align:left;font-size:12px;font-variant-numeric:tabular-nums}
.engine-table th,.engine-table td{padding:8px 6px;border-bottom:1px solid var(--border);vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.engine-table thead th:nth-child(1){width:12%}.engine-table thead th:nth-child(2){width:12%}.engine-table thead th:nth-child(3),.engine-table thead th:nth-child(4){width:16%}.engine-table thead th:nth-child(5){width:23%}.engine-table thead th:nth-child(6){width:21%}
.engine-table thead th{color:var(--text-muted);font-weight:500}.engine-table tbody th{font-weight:600}
.engine-table small{display:block;font-size:11px;color:var(--text-muted);margin-top:3px}
.engine-badge{display:block;font-size:12px}.engine-NORMAL{color:var(--positive)}.engine-BACKLOG,.engine-PENDING,.engine-BACKOFF,.engine-STALE{color:var(--attention)}.engine-FAILED{color:var(--negative)}.engine-WAITING,.engine-STATIC{color:var(--text-secondary)}
@media(max-width:1100px){#freshness{max-width:180px}}
@media(max-width:760px){.engine-status summary{min-height:44px}#freshness{max-width:170px}.engine-panel{position:fixed;left:12px;right:12px;top:156px;width:auto;padding:0;max-height:calc(100dvh - 180px)}.engine-table{min-width:0}}

@media(max-width:760px){.toolbar-context{order:3;flex-basis:100%;gap:8px;min-width:0}.engine-status{flex:1}.engine-status summary{min-width:0}#freshness{flex:1;max-width:none}.search-trigger{margin-left:auto}}

.share-meta{display:flex;justify-content:space-between;gap:8px}.share-meta>span{color:var(--accent-green)}
@media(max-width:760px){.share-row{grid-template-columns:minmax(0,1fr) auto}.share-row>span:nth-child(3){text-align:left}.region-link{min-height:44px}}

.company-terminal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:10px}
.company-terminal .company-performances{border:0;border-top:1px solid var(--border);border-radius:0;margin:0}
.annual-table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums;margin-top:8px}
.annual-table th,.annual-table td{padding:8px 6px;border-bottom:1px solid var(--border);text-align:right}
.annual-table th:first-child{text-align:left}.annual-table thead th{color:var(--text-secondary);font-weight:500}



.ranking-filters{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}
.ranking-filters button{min-height:36px;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-panel-alt)}
.ranking-table-wrap{overflow:auto}.ranking-table{border-collapse:collapse;width:100%;font-size:13px;min-width:540px}
.ranking-table th,.ranking-table td{padding:9px 8px;border-bottom:1px solid var(--border);text-align:right}
.ranking-table th{font-weight:500;color:var(--text-secondary)}.ranking-table th:nth-child(2),.ranking-table th:nth-child(3){text-align:left}
.ranking-table .ranking-empty{text-align:center;padding:22px 12px;color:var(--text-muted);background:var(--bg-panel-alt)}
@media(max-width:760px){.ranking-filters button{min-height:44px}.ranking-table-wrap{margin-bottom:8px}}

@media(max-width:1100px){.header{flex-wrap:wrap;gap:8px 12px;padding-top:8px}.header nav{order:4;flex-basis:100%;justify-content:space-between}.toolbar-context{margin-left:auto}}

/* Intelligence uses existing compact surfaces and separate sample definitions. */
.intelligence-summary{margin-bottom:12px}
.intelligence-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.intelligence-strip span,.intelligence-strip small{display:block;font-size:12px;color:var(--text-secondary)}.intelligence-strip strong{display:block;font-size:20px;margin:4px 0;font-variant-numeric:tabular-nums}
.intelligence-table-wrap{overflow:auto;min-width:0}.intelligence-table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
.intelligence-table th,.intelligence-table td{padding:8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.intelligence-table thead th{font-size:12px;color:var(--text-secondary);font-weight:500}.intelligence-table td small,.annual-table small{display:block;font-size:12px;color:var(--text-secondary);margin-top:3px}
.intelligence-table a{color:var(--accent-green)}.record-table td:nth-child(2){overflow-wrap:anywhere}.record-table th:nth-child(n+4),.record-table td:nth-child(n+4){text-align:right}
.record-table summary{cursor:pointer;min-height:36px}.company-records{margin-top:12px;scroll-margin-top:12px}.record-coverage{font-size:12px;color:var(--text-secondary)}
@media(max-width:760px){.intelligence-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.intelligence-table{font-size:12px}.record-table summary{min-height:44px}.annual-table{font-size:12px}}

.ranking-filters label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}
.ranking-filters select{max-width:230px;min-height:36px;background:var(--bg-panel-alt);color:var(--text-primary);border:1px solid var(--border-control);border-radius:6px;padding:6px}
.ranking-filters button{color:var(--text-secondary)}.ranking-filters button[aria-pressed=true]{background:var(--accent-green-soft);border-color:var(--accent-green);color:var(--text-primary)}
.ranking-table{min-width:960px}.ranking-table td small{display:block;font-size:12px;color:var(--text-secondary)}.ranking-table td:nth-child(2),.ranking-table td:nth-child(3){text-align:left}.ranking-table a{color:var(--accent-green)}
@media(max-width:760px){.ranking-filters select{min-height:44px;max-width:210px}.ranking-filters label{flex-wrap:wrap}.ranking-table{font-size:12px}}


.agency-table{min-width:900px}
.market-intelligence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:var(--gap)}
.market-intelligence .data-panel{min-width:0;overflow-wrap:anywhere}
.market-top-table{table-layout:fixed;width:100%}
.market-top-table th:first-child{width:44px}.market-top-table th:last-child{width:92px}.market-agency-table th:first-child{width:45%}.market-agency-table th:last-child{width:60px}
.market-top-table td,.market-top-table th{overflow-wrap:anywhere}
.market-price-strip{margin-top:var(--gap)}
.market-price-strip small{margin-left:8px;color:var(--text-muted)}
@media(max-width:1200px){.market-intelligence{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.market-intelligence{grid-template-columns:minmax(0,1fr)}}

#hub-shell[aria-busy=true]{opacity:.7}

/* Panel title, one-line scope, then data; criteria remain a single expandable note. */
.panel-subtitle{color:var(--text-muted);font-size:12px;line-height:1.5;margin:0 0 12px}
.panel-criteria{font-size:12px;color:var(--text-secondary);margin-left:auto;max-width:600px}
.panel-criteria summary{cursor:pointer;white-space:nowrap}
.panel-criteria p{line-height:1.6;margin:8px 0}

.company-scope-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
.company-rank-strip{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--border-soft)}
.company-rank-strip>div{min-width:140px;flex:1}
.company-rank-strip span{display:block;font-size:12px;color:var(--text-muted)}
.company-rank-strip strong{display:block;font-size:18px;margin-top:3px;font-variant-numeric:tabular-nums}
.company-rank-strip strong small{font-size:12px;font-weight:400;color:var(--text-secondary)}
.industry-rank-details{border-top:1px solid var(--border-soft);padding-top:10px;font-size:12px}
.industry-rank-details summary,.company-basics summary{cursor:pointer;color:var(--text-secondary)}
.company-basics{margin:12px 0}
.company-records select{background:var(--bg-panel-alt);color:var(--text-primary);border:1px solid var(--border-control);padding:6px;border-radius:4px}
@media(max-width:760px){.company-scope-summary{grid-template-columns:minmax(0,1fr)}.company-rank-strip{gap:10px}.company-rank-strip>div{min-width:100px}.company-rank-strip strong{font-size:16px}}

.notice-link{color:var(--accent-cyan);font-weight:600;overflow-wrap:anywhere}
.notice-link span{color:var(--accent-green);font-size:11px}
.notice-link:hover{text-decoration:underline;text-underline-offset:3px}
.notice-amounts{font-size:11px;color:var(--text-muted);margin-top:3px}
.notice-amounts summary{cursor:pointer}
.notice-amounts div{white-space:nowrap;margin-top:4px}

.legend-step{height:100%;flex:1}
.legend-step-0{background:var(--map-0)}.legend-step-1{background:var(--map-1)}.legend-step-2{background:var(--map-2)}.legend-step-3{background:var(--map-3)}.legend-step-4{background:var(--map-4)}.legend-step-5{background:var(--map-5)}.legend-step-6{background:var(--map-6)}
.legend-values{display:flex;justify-content:space-between;gap:14px;font-variant-numeric:tabular-nums;font-size:11px;min-width:200px}

@media(max-width:760px){.company-scope-summary .metric-card{border-right:0}.company-scope-summary .metric-card+.metric-card{border-top:1px solid var(--border)}}


.estimated-value{white-space:nowrap;color:var(--accent-gold)}

.no-data-swatch{display:inline-block;width:12px;height:8px;background:var(--map-unknown);border:1px solid var(--border-control);border-radius:2px;vertical-align:middle}

/* Shared panel grid: header band and first table cell start at the same inset. */
.panel-header{padding:10px var(--panel-x);background:var(--bg-panel-alt);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;min-width:0}
.panel-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;min-width:0}
.panel-title-row h2,.panel-title-row h3{margin:0;font-size:15px;line-height:1.4;font-weight:750;color:var(--text-primary);overflow-wrap:anywhere}
#hub-shell .panel-title-row h2{font-size:15px;margin:0;letter-spacing:0}
.panel-title-row>span,.panel-title-row>a,.panel-title-row>label{font-size:12px;color:var(--text-secondary)}
.panel-header .panel-subtitle{margin:4px 0 0;font-size:12px;line-height:1.5}
#hub-shell .panel-header .panel-subtitle{margin:4px 0 0;font-size:12px;color:var(--text-muted)}
.panel-body{padding:12px var(--panel-x);min-width:0}
.panel-body>:first-child{margin-top:0}.panel-body>:last-child{margin-bottom:0}.panel-body .record-coverage{margin-top:0}
.panel-body table{border-collapse:collapse;width:100%}
.panel-body table th,.panel-body table td{vertical-align:top;padding:9px 8px;line-height:1.5}
.panel-body table th:first-child,.panel-body table td:first-child{padding-left:0}
.panel-body table th:last-child,.panel-body table td:last-child{padding-right:0}
.panel-body table thead{background:var(--bg-panel-alt)}
.panel-body table thead th{font-weight:650;color:var(--text-secondary);border-bottom:1px solid var(--border-control)}
.page-intro{padding:4px 0 10px;border-bottom:1px solid var(--border);margin-bottom:10px}
.page-intro>div{display:block}.page-intro p{margin-top:4px}h1{font-size:24px;font-weight:750}
.ranking-filters{padding-bottom:12px;border-bottom:1px solid var(--border);margin:0 0 12px}
.ranking-table,.annual-table,.record-table,.company-agency-table,.industry-rank-table{table-layout:fixed}
.ranking-table th:nth-child(1){width:135px}.ranking-table th:nth-child(2){width:23%}.ranking-table th:nth-child(3){width:95px}
.ranking-table th:nth-child(4),.ranking-table th:nth-child(5),.ranking-table th:nth-child(8){width:130px}
.ranking-table th:nth-child(6),.ranking-table th:nth-child(7){width:115px}
.ranking-table td:nth-child(2),.record-table td:nth-child(2),.record-table td:nth-child(3){overflow-wrap:anywhere}
.annual-table{min-width:1020px;margin-top:0}
.annual-table th:first-child{width:85px}.annual-table th:nth-child(2),.annual-table th:nth-child(3),.annual-table th:nth-child(8){width:160px}
.annual-table th:nth-child(4),.annual-table th:nth-child(5),.annual-table th:nth-child(6){width:105px}
.annual-table th:nth-child(7){width:140px}
.record-table{min-width:1250px}
.record-table .col-date{width:140px}.record-table .col-agency{width:155px}.record-table .col-amount{width:140px}
.record-table .col-rank{width:85px}.record-table .col-rate{width:90px}.record-table .col-evaluation{width:140px}.record-table .col-winner{width:160px}
.record-table .col-project{width:auto}
.record-table th:nth-child(2),.record-table th:nth-child(3){text-align:left}
.participation-record-table th:nth-child(6),.participation-record-table td:nth-child(6),.participation-record-table th:nth-child(7),.participation-record-table td:nth-child(7){text-align:left}
.company-agency-table th:first-child{width:60%}.company-agency-table th:nth-child(n+2),.company-agency-table td:nth-child(n+2){text-align:right}
.industry-rank-table th:first-child{width:50%}.industry-rank-table th:nth-child(n+2),.industry-rank-table td:nth-child(n+2){text-align:right}
.market-top-table th:first-child,.market-top-table td:first-child,.top-table th:first-child,.top-table td:first-child{text-align:center}
.market-top-table th:last-child,.market-top-table td:last-child{text-align:right}
.market-agency-table th:first-child,.market-agency-table td:first-child{text-align:left}
.agency-table th:nth-child(n+2):nth-child(-n+5),.agency-table td:nth-child(n+2):nth-child(-n+5){text-align:right}
.scope-all{color:var(--accent-blue)}.scope-gis{color:var(--accent-green)}
.annual-table thead th:nth-child(2),.annual-table thead th:nth-child(4),.annual-table thead th:nth-child(7){color:var(--accent-blue)}
.annual-table thead th:nth-child(3),.annual-table thead th:nth-child(5),.annual-table thead th:nth-child(6){color:var(--accent-green)}
.company-scope-summary .metric-card:nth-child(1){box-shadow:inset 0 2px var(--accent-blue)}
.company-scope-summary .metric-card:nth-child(1) strong{color:var(--accent-blue)}
.company-scope-summary .metric-card:nth-child(2){box-shadow:inset 0 2px var(--accent-green)}
.company-scope-summary .metric-card:nth-child(2) strong{color:var(--accent-green)}
.company-scope-summary .metric-card:nth-child(3){box-shadow:inset 0 2px var(--accent-cyan)}
.company-scope-summary .metric-card:nth-child(3) strong{color:var(--accent-cyan)}
.company-scope-summary .metric-card{display:flex;flex-direction:column;align-items:flex-start}
.company-scope-summary .metric-sub{margin-top:auto;padding-top:4px}
.company-summary{background:var(--bg-panel);border-bottom:1px solid var(--border);padding:12px var(--panel-x)}
.company-terminal .intelligence-summary{border:0;border-top:1px solid var(--border);border-radius:0;margin:0}
.company-rank-strip{margin-bottom:10px}
.value-positive{color:var(--positive)}.value-negative{color:var(--negative)}.value-missing,.value-neutral{color:var(--text-muted)}
.rank-first{color:var(--accent-gold)}.rank-leading{color:var(--accent-cyan)}
.winner-value,.winner-value a{color:var(--accent-green)}
.notice-missing{color:var(--text-muted);font-size:12px}
.map-body{min-width:0}.map-body .metric-tabs{padding:10px var(--panel-x);border-bottom:1px solid var(--border);margin:0}
.regional-kpis{padding:12px var(--panel-x)}
.region-heading h2{font-size:18px;font-weight:750}.panel-top{border-radius:var(--radius) var(--radius) 0 0}
@media(max-width:760px){h1{font-size:22px}.panel-body{padding:12px var(--panel-x)}.panel-title-row label{max-width:100%}.panel-title-row select{min-height:44px;max-width:100%}}

.company-basics .industry-list{margin-top:10px}
.panel-body table td.rank-first{color:var(--accent-gold)}.panel-body table td.rank-leading{color:var(--accent-cyan)}
.company-rank-strip strong{color:var(--accent-green)}
.award-record-table[data-scope=all] td:nth-child(5){color:var(--accent-blue)}
.award-record-table[data-scope=gis] td:nth-child(5){color:var(--accent-green)}
.record-table .notice-link{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.intelligence-strip>div:nth-child(1) strong,.intelligence-strip>div:nth-child(3) strong{color:var(--accent-blue)}
.intelligence-strip>div:nth-child(2) strong{color:var(--accent-green)}

/* Scope chooses the population above the ordinary search form. */
.sanction-scope{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0;max-width:100%;margin-bottom:12px}
.sanction-scope>span{font-size:12px;font-weight:500;color:var(--text-muted)}
.sanction-scope-buttons{display:flex;flex-wrap:wrap;gap:2px;min-width:0;max-width:100%;padding:3px;border:1px solid var(--border);border-radius:8px;background:var(--bg-main)}
.sanction-scope-buttons button{appearance:none;min-width:0;max-width:100%;min-height:32px;padding:6px 12px;border:0;border-radius:5px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;line-height:1.35;white-space:normal;overflow-wrap:anywhere;box-shadow:none}
.sanction-scope-buttons button[aria-pressed="true"]{background:var(--accent-green-soft);color:var(--text-primary);font-weight:600}
.sanction-scope-buttons button[aria-pressed="false"]:hover{background:var(--bg-hover);color:var(--text-primary)}
.sanction-scope-buttons button:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}
.sanction-scope p{flex-basis:100%;margin:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
@media(max-width:760px){.sanction-scope-buttons button{min-height:44px}}
.sanction-filters{display:grid;gap:12px;margin-bottom:14px}
.sanction-filter-identity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sanction-filter-options{display:grid;grid-template-columns:minmax(340px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:12px;align-items:start}
.sanction-filters label{display:flex;flex-direction:column;gap:4px;min-width:0;color:var(--text-secondary);font-size:12px}
.sanction-filters input,.sanction-filters select{width:100%;min-width:0;min-height:36px;background:var(--bg-main);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px}
.sanction-filters .sanction-history{flex-direction:row;align-items:center}.sanction-history input{width:18px;min-height:18px}
.sanction-filter-actions{display:flex;gap:6px;padding-top:20px}
.sanction-filters button,.sanction-detail-toggle{min-height:36px;padding:6px 10px;border:1px solid var(--border-control);border-radius:6px;background:var(--bg-panel-alt);color:var(--text-primary);white-space:nowrap}
.sanction-filter-actions button[type=submit]{color:var(--accent-green)}
.sanction-period{margin:0;padding:0;min-width:0;border:0}.sanction-period legend{font-size:12px;color:var(--text-secondary);padding:0;margin-bottom:4px}
.sanction-period-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}
.sanction-period p{font-size:11px;color:var(--text-muted);margin:4px 0 6px;line-height:1.5}
.sanction-quick-period{display:flex;flex-wrap:wrap;gap:4px}.sanction-quick-period button{font-size:11px;min-height:28px;padding:3px 7px}
.sanction-badge{display:inline-block;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;color:var(--accent-gold)}
.sanction-observed{color:var(--accent-cyan)}.sanction-muted{color:var(--text-muted)}
.sanction-table-wrap{overflow-x:auto;max-width:100%;margin-top:12px}
.sanction-table{min-width:1200px;width:100%;table-layout:fixed}
.sanction-table th,.sanction-table td{text-align:left;vertical-align:top;overflow-wrap:anywhere}
.sanction-table th:first-child,.sanction-table td:first-child{width:230px}
.sanction-table th:nth-child(2),.sanction-table td:nth-child(2){width:180px}
.sanction-table small{display:block;color:var(--text-muted)}
.sanction-detail-toggle{display:block;margin-top:6px;padding:3px 7px;min-height:28px;font-size:12px;color:var(--accent-cyan)}
.sanction-table .sanction-detail-row>td{width:auto;padding:0;text-align:left}
.sanction-details{min-width:0;max-width:100%;padding:12px;background:var(--bg-panel-alt);border-bottom:1px solid var(--border)}
.sanction-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sanction-category{min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:6px}
.sanction-category-wide{grid-column:1/-1}.sanction-category h4{font-size:12px;margin:0 0 8px;color:var(--text-primary)}
.sanction-field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;margin:0;font-size:12px}
.sanction-category .sanction-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sanction-category-wide .sanction-field-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.sanction-field{min-width:0}.sanction-field-wide{grid-column:1/-1}
.sanction-field dt{color:var(--text-muted);font-size:11px;margin-bottom:3px}.sanction-field dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.sanction-support{margin-top:8px;color:var(--text-muted);font-size:11px}.sanction-support summary{cursor:pointer;padding:4px 0}.sanction-support .sanction-field-grid{margin-top:6px;color:var(--text-muted);font-size:11px}
.sanction-long-text summary{display:block;cursor:pointer;list-style:none}.sanction-long-text summary::-webkit-details-marker{display:none}
.sanction-text-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sanction-expand,.sanction-collapse{color:var(--accent-cyan);font-size:11px}.sanction-collapse{display:none}
.sanction-long-text[open] .sanction-text-preview,.sanction-long-text[open] .sanction-expand{display:none}.sanction-long-text[open] .sanction-collapse{display:inline}
.sanction-long-text p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
#company-sanctions details>summary{cursor:pointer;color:var(--text-secondary);padding:8px 0}
@media(max-width:1100px){.sanction-field-grid,.sanction-category-wide .sanction-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sanction-filter-identity,.sanction-filter-options{grid-template-columns:repeat(2,minmax(0,1fr))}.sanction-period{grid-column:1/-1}.sanction-filter-actions{padding-top:0}.sanction-table{min-width:0;display:block}.sanction-table thead{display:none}.sanction-table tbody{display:grid;gap:12px}.sanction-table .sanction-main-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius)}.sanction-table td,.sanction-table td:first-child,.sanction-table td:nth-child(2){display:block;width:auto;padding:0;border:0}.sanction-main-row td:first-child{grid-column:1/-1}.sanction-main-row td::before{content:attr(data-label);display:block;color:var(--text-muted);font-size:11px;margin-bottom:3px}.sanction-detail-row{display:block}}
@media(max-width:760px){.sanction-filters input,.sanction-filters select,.sanction-filters button,.sanction-detail-toggle{min-height:44px}.header nav{flex-wrap:wrap}.sanction-filters .sanction-history input{min-height:18px}.sanction-filter-identity,.sanction-filter-options,.sanction-detail-grid,.sanction-field-grid,.sanction-category .sanction-field-grid,.sanction-category-wide .sanction-field-grid{grid-template-columns:minmax(0,1fr)}.sanction-details{padding:8px}.sanction-support summary,.sanction-long-text summary{min-height:44px}}

.procurement-nav{position:relative;display:flex;align-items:stretch;min-width:0}
#procurement-menu-button{display:flex;align-items:center;gap:5px;min-height:44px;padding:3px 0 0;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-secondary);font:inherit;font-weight:650;white-space:nowrap}
#procurement-menu-button.nav-active{color:var(--accent-green);border-bottom-color:var(--accent-green)}
#procurement-menu-button:focus-visible,.procurement-menu a:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}
.procurement-menu{position:absolute;top:100%;left:0;z-index:25;min-width:160px;max-width:calc(100vw - 24px);padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--bg-panel-alt);box-shadow:var(--shadow)}
.procurement-menu[hidden]{display:none}.header nav .procurement-menu a{min-height:36px;padding:7px 10px;border:0;border-radius:4px;font-size:13px;font-weight:500;color:var(--text-secondary)}
.header nav .procurement-menu a:hover{background:var(--bg-hover);color:var(--text-primary)}
.procurement-filters{display:grid;grid-template-columns:2fr 2fr 1fr 1fr auto;gap:10px;align-items:end;min-width:0}
.procurement-filters>label{min-width:0}.procurement-table-wrap{min-width:0;max-width:100%;overflow:auto}
.procurement-table{width:100%;table-layout:fixed}.procurement-table th:first-child{width:130px}.procurement-table th:last-child{width:170px}.procurement-table td{overflow-wrap:anywhere;vertical-align:top}.procurement-table td small{display:block;color:var(--text-muted);margin-top:3px}
.procurement-new{display:inline-block;margin-left:6px;vertical-align:middle;color:#b7cde2;background:#2b3b4a;border:1px solid #4d657c;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600;line-height:1.4;letter-spacing:.3px;white-space:nowrap}
.procurement-links{display:flex;flex-wrap:wrap;gap:8px 14px;border-top:1px solid var(--border);margin-top:12px;padding-top:10px}
.procurement-links a{min-width:0;max-width:100%;overflow-wrap:anywhere}
.engine-DEFERRED,.engine-RUNNING{color:var(--accent-gold)}
@media(max-width:1100px){.procurement-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.procurement-filters .sanction-filter-actions{grid-column:1/-1}}
@media(max-width:760px){#procurement-menu-button{font-size:12px;padding:3px 4px 0}.procurement-menu{left:auto;right:0}.header nav .procurement-menu a{min-height:44px}.procurement-filters{grid-template-columns:minmax(0,1fr)}.procurement-table{display:block;min-width:0}.procurement-table thead{display:none}.procurement-table tbody{display:block}.procurement-table tr{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:10px 0;border-bottom:1px solid var(--border)}.procurement-table td{display:block;padding:0;border:0;min-width:0}.procurement-table td::before{content:attr(data-label);color:var(--text-muted);margin-right:8px;font-size:12px}.procurement-links a{min-height:44px;display:flex;align-items:center}.engine-panel{width:auto}.engine-table{min-width:0;display:block}.engine-table thead{display:none}.engine-table tbody{display:block}.engine-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.engine-table tbody th{grid-column:1/-1}.engine-table td,.engine-table tbody th{min-width:0;padding:0;border:0}.engine-table td::before{content:attr(data-label);display:block;color:var(--text-muted);margin-bottom:3px}}
@media(max-width:1400px) and (min-width:1101px){.header{flex-wrap:wrap;gap:8px 12px;padding-top:8px}.header nav{order:4;flex-basis:100%;justify-content:space-between}.toolbar-context{margin-left:auto}}

/* Account addition: same 64px single-row header; preserve navigation order and controls. */
.header{height:64px;min-height:64px;flex-wrap:nowrap;padding-top:0;padding-bottom:0;gap:12px}
.header nav{order:0;flex-basis:auto;flex:1;min-width:32px;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;gap:12px}
.header .toolbar-context{order:0;flex-basis:auto;flex-shrink:0;margin-left:0}
.header .procurement-menu{position:fixed;top:64px;left:auto;right:var(--gutter)}
.header .search-trigger{flex-shrink:0;margin-left:0}
.account-control{position:relative;flex-shrink:0;font-size:12px}
.account-control>a,.account-control summary{display:block;cursor:pointer;min-height:32px;line-height:32px;padding:0 5px;border:1px solid var(--border-control);border-radius:var(--radius);list-style:none;white-space:nowrap}
.account-menu{position:absolute;right:0;top:100%;min-width:130px;background:var(--bg-panel);border:1px solid var(--border-control);z-index:40;padding:4px}
.account-menu a,.account-menu button{display:block;width:100%;padding:6px;text-align:left;background:transparent;border:0;color:var(--text-primary);font-size:12px}
.admin-workspace{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px}
.admin-menu{display:flex;flex-direction:column;font-size:12px;background:var(--bg-panel);border:1px solid var(--border);align-self:start}
.admin-menu a{padding:10px 8px;border-bottom:1px solid var(--border)}
.admin-workspace h1,.auth-card h1{font-size:18px;margin:0}.admin-workspace h2{font-size:14px;margin:12px 0 6px}
.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums;text-align:left}
.admin-table th,.admin-table td{padding:6px;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}
.admin-table th{color:var(--text-muted);font-weight:500}
.admin-inline{display:flex;align-items:end;gap:6px;flex-wrap:wrap;margin-bottom:8px;font-size:12px}
.admin-inline label,.auth-form label{display:flex;flex-direction:column;gap:4px}
.admin-inline input,.admin-inline select,.auth-form input{max-width:100%;min-width:0;padding:5px;border:1px solid var(--border-control);border-radius:var(--radius);background:var(--bg-main);color:var(--text-primary)}
.admin-workspace button,.auth-form button{padding:4px 7px;border:1px solid var(--border-control);border-radius:var(--radius);background:var(--bg-panel-alt);color:var(--text-primary);font-size:12px}
.admin-workspace button:disabled{opacity:.55;cursor:default}
.auth-shell{min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);display:flex;align-items:center;justify-content:center;padding:20px var(--gutter)}
.auth-card{width:400px;max-width:100%;flex-shrink:0}.auth-card .panel-header{padding:12px var(--panel-x);border-bottom:1px solid var(--border)}
.auth-form{display:grid;gap:10px;font-size:12px}.auth-form input{width:100%;min-height:36px;padding:8px}.auth-form label{min-width:0}
.auth-form button{min-height:36px;padding:8px 10px}.auth-form .auth-submit{background:var(--accent-green-soft);border-color:var(--accent-green);font-weight:650}
.auth-field{display:grid;gap:4px}.auth-username{display:flex;gap:6px}.auth-username input{min-width:0;flex:1}.auth-username button{white-space:nowrap;flex-shrink:0}
.auth-note{font-size:11px;line-height:1.5;color:var(--text-muted);margin:0}.auth-secondary{display:flex;align-items:center;justify-content:center;min-height:36px;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel-alt);font-size:12px;color:var(--text-secondary)}
.auth-secondary:hover{border-color:var(--accent-green);color:var(--text-primary)}
#admin-message{font-size:12px;line-height:1.5;min-height:18px;color:var(--attention)}
.collector-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;flex-wrap:wrap}.collector-code{display:block;font-size:10px;color:var(--text-muted);max-width:190px;overflow-wrap:anywhere}.admin-table a{color:var(--accent-green)}
@media(max-width:1100px){.header{gap:8px}.header nav{gap:8px}.header #freshness{max-width:90px}.brand small{display:none}}
@media(max-width:760px){.header{gap:5px}.header .brand>span{display:none}.header nav{gap:5px}.header nav a{font-size:11px;flex-shrink:0}.header .period label,.header #freshness{display:none}.header .toolbar-context{gap:4px}.header .period select{min-height:32px;padding:3px;max-width:64px}.header .search-trigger{min-height:32px;padding:3px}.header .engine-status summary{min-height:32px}.account-control>a,.account-control summary{padding:0 3px}.admin-workspace{grid-template-columns:minmax(0,1fr)}.admin-menu{flex-direction:row;overflow-x:auto;white-space:nowrap}.admin-menu a{flex-shrink:0}.admin-table{min-width:500px}}
/* Header menus share the same anchor and row style on every page. */
.header{z-index:50;overflow:visible}
.header .procurement-nav,.header .account-control details{position:relative}
.header .procurement-menu,.header .account-menu{position:absolute;top:100%;left:0;right:auto;z-index:60;min-width:160px;max-width:calc(100vw - 24px);padding:4px;border:1px solid var(--border-control);border-radius:6px;background:var(--bg-panel-alt);box-shadow:var(--shadow)}
.header .account-menu{left:auto;right:0}
.header nav .procurement-menu a,.header .account-menu a,.header .account-menu button{display:flex;align-items:center;width:100%;min-height:36px;margin:0;padding:7px 10px;border:0;border-radius:4px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:500;line-height:20px;text-align:left;white-space:nowrap}
.header nav .procurement-menu a:hover,.header .account-menu a:hover,.header .account-menu button:hover{background:var(--bg-hover);color:var(--text-primary)}
.header nav .procurement-menu a[aria-current=page]{background:var(--accent-green-soft);color:var(--text-primary)}
.header .engine-panel{top:64px}
@media(max-width:760px){.header .engine-panel{position:fixed;left:12px;right:12px;top:64px;width:auto}}
.budget-job-status{font-variant-numeric:tabular-nums}.budget-job-status progress{width:180px}.budget-job-status [data-budget-feedback]{min-height:20px;color:var(--attention)}

/* Floating procurement menu escapes the horizontal nav scroller; JS anchors to its own button. */
.header .procurement-menu{position:fixed;right:auto}

/* Both menus start at the shared header bottom, independent of control height. */
.header .account-control details{position:static}
.header .account-menu{position:fixed;left:auto;right:auto}

/* Search rows display only the company name; identity stays in the selection key. */
#search-dialog .search-result{display:block;width:100%;min-width:0;padding:8px 0;text-align:left;font:inherit;color:inherit}
#search-dialog .search-result strong{display:block;min-width:0;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Opening display uses documented labels and existing response values only. */
.opening-list-key{display:inline;color:var(--text-muted);font-size:11px;font-weight:400;line-height:1.5;overflow-wrap:anywhere}
.opening-status{display:inline-block;border:1px solid #526574;border-radius:4px;padding:2px 7px;background:#2b3945;color:#c3d1dd;font-size:12px;font-weight:500;white-space:normal;overflow-wrap:anywhere}
.opening-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.opening-context-grid>div{min-width:0;border:1px solid var(--border);border-radius:5px;padding:9px 12px;background:var(--bg-panel-alt)}
.opening-context-grid dt{font-size:11px;color:var(--text-muted);margin-bottom:5px}
.opening-context-grid dd{margin:0;font-size:14px;font-weight:500;line-height:1.5;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.opening-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.opening-company-grid .sanction-field{min-width:0}.opening-company-grid .sanction-field-wide{grid-column:1/-1}
.opening-company-grid .opening-money dd{color:var(--accent-blue);font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.opening-company-grid .opening-rate dd{color:var(--accent-gold);font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.opening-raw{margin-top:12px;border-top:1px solid var(--border);padding-top:9px;font-size:12px;color:var(--text-secondary)}
.opening-raw summary{cursor:pointer;min-height:28px}.opening-raw p{overflow-wrap:anywhere;line-height:1.7;margin:6px 0}
.opening-note{font-size:11px;line-height:1.6;color:var(--text-muted);margin:9px 0 0}
.opening-detail .sanction-category h4{font-weight:600;color:var(--text-primary)}
.opening-detail .sanction-field dd{font-weight:400;line-height:1.65}
@media(max-width:760px){.opening-context-grid,.opening-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opening-context-grid{gap:6px}.opening-context-grid>div{padding:8px}.opening-context-grid dd{font-size:13px}.opening-company-grid .sanction-field:first-child{grid-column:1/-1}}
@media(max-width:440px){.opening-company-grid{grid-template-columns:minmax(0,1fr)}}

/* GeoIndex terminal system: compact controls and readable solid color cards. */
:root{
 --bg-main:#1b222a;--bg-panel:#232c35;--bg-panel-alt:#29343e;--bg-hover:#30414e;
 --border:#3d4c58;--border-soft:#34424e;--border-control:#5b6d7c;
 --text-primary:#e2e9ef;--text-secondary:#c0ccd6;--text-muted:#a4b4c2;
 --accent-blue:#a8c4df;--accent-green:#a4cdbd;--accent-green-soft:#2c443c;
 --accent-gold:#d5bf99;--accent-purple:#c0b4d7;--accent-cyan:#b0c7d8;
 --kpi-all:var(--accent-blue);--kpi-gis:var(--accent-green);--kpi-rank:var(--accent-purple);--kpi-activity:var(--accent-gold);
 --tint-all:#23476a;--tint-gis:#245346;--tint-rank:#493e65;--tint-activity:#625030;
 --growth-up:#FF404C;--growth-down:#2997FF;--status-success:#a4cdbd;--status-error:#ee9a9f;
 --positive:var(--status-success);--negative:var(--status-error);--row-selected:#29485f;
 --gutter:24px;--gap:12px;--radius:5px;--error-bg:#3d2b2f;--error-text:#ffc2c5;
}
[data-tone=all]{--kpi-tone:var(--kpi-all);--kpi-tint:var(--tint-all)}
[data-tone=gis]{--kpi-tone:var(--kpi-gis);--kpi-tint:var(--tint-gis)}
[data-tone=rank]{--kpi-tone:var(--kpi-rank);--kpi-tint:var(--tint-rank)}
[data-tone=activity]{--kpi-tone:var(--kpi-activity);--kpi-tint:var(--tint-activity)}
main{padding:14px var(--gutter) 18px}
.header{height:64px;min-height:64px;flex-wrap:nowrap;gap:12px;padding:0 var(--gutter);background:#202a33;border-bottom-color:var(--border)}
.header nav{order:0;flex:1;flex-basis:auto;flex-wrap:nowrap;min-width:32px;gap:12px;scrollbar-width:thin;scrollbar-color:#607c90 transparent}
.header .toolbar-context{order:0;flex-basis:auto;flex-shrink:0;margin:0;gap:12px}
.header nav>a,.header #procurement-menu-button{font-size:13px;font-weight:500}
.header nav>a:hover,.header #procurement-menu-button:hover{color:#edf3f7;background:#2b3944}
.header nav>.nav-active,.header #procurement-menu-button.nav-active{color:var(--text-primary);background:#2c3d48;border-bottom-color:#8aa7bb}
.header .account-control summary:hover,.header .account-control>a:hover,.search-trigger:hover{background:var(--bg-hover);border-color:#7c95a7;color:var(--text-primary)}
.header .procurement-menu,.header .account-menu,.engine-panel{background:#26333e;border-color:var(--border-control);box-shadow:0 12px 28px #0e151b99}
.page-intro{margin-bottom:10px;min-height:32px}.page-intro .eyebrow{color:var(--text-muted)}
h1{font-weight:600}.company-summary h2{font-weight:600}
.panel-header,.panel-top{background:var(--bg-panel-alt);background-image:none;border-bottom-color:var(--border)}
.panel-header h2,.panel-header h3{color:var(--text-primary);font-size:15px;font-weight:600;line-height:1.5}
#hub-shell .panel-header h2{font-size:17px;font-weight:600;line-height:1.5}
.panel-body{min-width:0}.panel-title-row{min-width:0;flex-wrap:wrap}
.data-panel,.map-card,.region-panel,.company-terminal{box-shadow:none}
/* Level 2 is the default. A single background, no colored outlines or embedded panels. */
.kpis,.company-performances{gap:8px;background:transparent;border:0;border-radius:0}
.kpis .metric-card,.company-performances .metric-card,.metric-card[data-tone]{
 background:var(--bg-panel);background-image:none;border:1px solid var(--border-soft);border-top:1px solid var(--border-soft);
 border-radius:var(--radius);padding:11px 14px;box-shadow:none;min-height:78px;
}
.kpis .metric-card:last-child,.company-performances .metric-card:last-child{border-right:1px solid var(--border-soft)}
.metric-card[data-tone] strong,.company-scope-summary .metric-card[data-tone] strong{color:var(--kpi-tone);font-size:21px;font-weight:600;line-height:1.3}
.metric-name{font-size:12px;color:var(--text-secondary);font-weight:500}.metric-sub{font-size:11px;color:var(--text-muted);line-height:1.55}
.metric-card strong span{color:var(--text-secondary);font-size:12px}
/* Level 1: one solid color plane and a large white value. */
.kpis .metric-card[data-level=primary],.company-performances .metric-card[data-level=primary]{background:var(--kpi-tint);border:0;min-height:116px;padding:15px 18px;box-shadow:none}
.metric-card[data-level=primary] .metric-name{color:#edf3f7;font-size:13px;font-weight:500}
.metric-card[data-level=primary] strong,.company-scope-summary .metric-card[data-level=primary] strong{color:#f4f7fa;font-size:32px;font-weight:600;letter-spacing:-.5px}
.metric-card[data-level=primary] strong span{color:#d9e5ee}.metric-card[data-level=primary] .metric-sub{color:#d3e0e8;font-size:11px}
.company-scope-summary{grid-template-columns:1.3fr 1.3fr 1fr}
.company-scope-summary .metric-card:nth-child(n){box-shadow:none;border-top:0}
.regional-kpis{gap:8px}.regional-kpis>div{padding:9px 11px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--bg-panel);box-shadow:none}
.regional-kpis>div:first-child strong{color:var(--kpi-gis)}.regional-kpis>div:nth-child(2) strong{color:var(--text-primary)}
.regional-kpis strong{font-size:24px;font-weight:600}
.company-rank-strip{gap:8px}.company-rank-strip>div{padding:10px 12px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:none}
.company-rank-strip>div:first-child{background:var(--tint-rank);border:0;padding:14px 16px}
.company-rank-strip strong{font-size:21px;font-weight:600;color:var(--kpi-rank)}.company-rank-strip span{color:var(--text-secondary)}
.company-rank-strip>div:first-child strong{font-size:28px;color:#f4f7fa}.company-rank-strip>div:first-child span{color:#e4dfee}
.company-rank-strip>div:first-child strong small{color:#ddd5ea}
.intelligence-strip{gap:8px;padding-top:8px}.intelligence-strip>div{padding:9px 11px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:none}
.intelligence-strip>div strong{font-size:19px;font-weight:500;color:var(--text-primary)}
.intelligence-strip>div:nth-child(2) strong{color:var(--kpi-gis)}
.intelligence-strip>div:nth-child(3) strong,.intelligence-strip>div:nth-child(4) strong{color:var(--text-primary)}
.value-positive,.value-negative{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.value-positive{color:var(--growth-up)}.value-negative{color:var(--growth-down)}
.value-positive::before{content:'▲ ';font-size:11px}.value-negative::before{content:'▼ ';font-size:11px}
.value-neutral,.value-missing{color:var(--text-muted);font-variant-numeric:tabular-nums}
.member-workspace .member-metric .member-change{display:inline;font-size:14px;font-weight:700}
.member-workspace .member-metric .member-change.value-positive{color:var(--growth-up)}
.member-workspace .member-metric .member-change.value-negative{color:var(--growth-down)}
/* Stable headers, ordinary-weight row text, immediate whole-row tracking. */
:is(.top-table,.intelligence-table,.ranking-table,.annual-table,.admin-table,.engine-table) thead th,
.panel-body :is(.top-table,.intelligence-table,.ranking-table,.annual-table,.admin-table) thead th{background:#2b3741;color:#d2dee7;font-weight:600;border-bottom:1px solid #526575;padding:8px}
:is(.top-table,.intelligence-table,.ranking-table,.annual-table,.admin-table,.engine-table) tbody tr:nth-child(even){background:#27323c}
:is(.top-table,.intelligence-table,.ranking-table,.annual-table,.admin-table,.engine-table) tbody tr:is(:hover,:focus-within)>:is(td,th){background:var(--bg-hover)}
:is(.top-table,.intelligence-table,.ranking-table,.annual-table,.admin-table,.engine-table) tbody tr:focus-within>:first-child{box-shadow:inset 2px 0 var(--accent-cyan)}
:is(.top-table,.intelligence-table,.ranking-table,.annual-table,.admin-table) tbody tr[aria-selected=true]>:is(td,th){background:var(--row-selected);border-bottom-color:#5e8da9}
.notice-link,.company-link,.intelligence-table a,.ranking-table a,.admin-table a{font-weight:500;color:var(--accent-cyan);line-height:1.65}
table a:hover,.company-link:hover,.notice-link:hover{color:#e1ebf2;text-decoration:none}
.ranking-table td:first-child{color:var(--kpi-rank);font-weight:600}.ranking-table td.rank-first{color:var(--kpi-activity)}
.ranking-table td:nth-child(4),.agency-table td:nth-child(2){color:var(--kpi-gis);font-weight:600}
.procurement-table :is(th,td):last-child{text-align:right;font-variant-numeric:tabular-nums}
.procurement-table td:last-child{color:var(--text-primary);font-weight:400}
.procurement-table td:last-child>span[title]{color:var(--accent-blue);font-weight:600}
.ngii-notice-table :is(th,td):is(:nth-child(4),:nth-child(5)){width:150px;text-align:right;font-variant-numeric:tabular-nums}
.ngii-notice-table td:nth-child(4)>span[title]{color:var(--kpi-all);font-weight:600}
.ngii-notice-table td:nth-child(5)>span[title]{color:var(--kpi-gis);font-weight:600}
.region-link:hover,.mobile-company:hover,.search-result:hover,.company-select-result:hover{background:var(--bg-hover)}
/* Slim neutral buttons. Only explicit submit/save actions receive a color fill. */
:is(.metric-tabs,.company-tab-buttons,.member-tabs,.member-scope,.ranking-filters,.sanction-scope-buttons,.budget-scopes,.pagination) button,
.admin-workspace button,.member-workspace button{min-height:32px;border:1px solid var(--border-control);border-radius:3px;padding:5px 10px;background:var(--bg-panel-alt);color:var(--text-secondary);font-size:12px;font-weight:500;box-shadow:none}
:is(.metric-tabs,.company-tab-buttons,.member-tabs,.member-scope,.ranking-filters,.sanction-scope-buttons,.budget-scopes) button:is([aria-pressed=true],[aria-selected=true]){background:#304957;border-color:#7693a7;color:#edf4f8;box-shadow:none}
.member-workspace .member-tabs button[aria-pressed=true],.company-tab-buttons button[aria-selected=true]{background:#304957;border-color:#7693a7;color:#edf4f8;box-shadow:none}
button:not(:disabled):hover{background:#344552;border-color:#7a93a5;color:#edf4f8;box-shadow:none}
button:disabled{cursor:default}
:is(input:not([type=checkbox]):not([type=hidden]),select,textarea){border-color:var(--border-control);background:#202d37;color:var(--text-primary);border-radius:3px}
:is(input,select,textarea):focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}
.sanction-filters,.ranking-filters{background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius);padding:9px 11px;margin-bottom:10px}
.sanction-observed{background:#413725;color:var(--kpi-activity);border-color:#7d6b4e}.sanction-muted{background:#303942;color:var(--text-secondary)}
.engine-NORMAL{color:var(--status-success)}.engine-FAILED{color:var(--status-error)}
.error-box{border-color:#91636a}.empty-state{background:var(--bg-panel-alt)}
.auth-card{border:1px solid var(--border);box-shadow:none}.auth-card .panel-header h1{font-size:21px}.auth-form{gap:11px}.auth-note{line-height:1.65}
.auth-form .auth-submit,.member-workspace .auth-form .auth-submit{background:#304d62;border:1px solid #64839a;color:#edf4f8;font-weight:500;min-height:36px}
#admin-message,#member-message{line-height:1.6;overflow-wrap:anywhere}
.admin-menu{border-radius:var(--radius);overflow:hidden}.admin-menu a:hover{background:var(--bg-hover)}
.admin-menu a[aria-current=page]{background:#2d4353;color:#e5eef5;box-shadow:inset 2px 0 #91aabe;font-weight:500}
.admin-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.admin-kpis .metric-card[data-tone]{background:var(--bg-panel);border:1px solid var(--border-soft);min-height:76px;padding:11px 13px}
.admin-kpis .metric-card strong{font-size:21px;font-weight:500}
.admin-state{display:inline-block;border:1px solid var(--border);border-radius:3px;padding:2px 6px;font-weight:500;white-space:nowrap}
.admin-state[data-active='1']{background:#2b4238;color:var(--status-success);border-color:#5b7668}.admin-state[data-active='0']{background:#303943;color:#c0cbd5}
.budget-job-status progress{width:min(320px,100%);height:10px;accent-color:var(--accent-green)}
.budget-job-status progress::-webkit-progress-bar{background:#344450;border-radius:3px}
.budget-job-status progress::-webkit-progress-value{background:var(--accent-green);border-radius:3px}
.budget-job-status>.admin-table{display:block;overflow:auto}
@media(max-width:1440px) and (min-width:761px){.header{gap:10px}.header nav{gap:10px}.brand{font-size:22px}.brand small{font-size:9px}.header #freshness{max-width:110px}.header .toolbar-context{gap:8px}.period label{font-size:11px}}
@media(max-width:1100px) and (min-width:761px){.brand small{display:none}.header #freshness{max-width:90px}}
@media(max-width:760px){
 :root{--gutter:12px}.header{padding:0 10px;gap:6px}.header .brand>span{display:none}.header nav{gap:5px;align-self:stretch;min-width:0}
 .header nav>a,.header #procurement-menu-button{font-size:11px;padding-left:4px;padding-right:4px}.header .toolbar-context{gap:4px}.header .period label,.header #freshness{display:none}.header .search-trigger{margin:0}.header .period select{max-width:64px}
 .kpis,.company-performances{gap:8px}.kpis .metric-card,.company-performances .metric-card{padding:10px 12px;min-height:74px}
 .kpis .metric-card[data-level=primary],.company-performances .metric-card[data-level=primary]{min-height:108px;padding:13px 15px}
 .metric-card[data-level=primary] strong,.company-scope-summary .metric-card[data-level=primary] strong{font-size:28px}
 .company-scope-summary{grid-template-columns:minmax(0,1fr)}.regional-kpis{padding:10px 12px}.regional-kpis>div{padding:8px}.regional-kpis strong{font-size:22px}
 :is(.metric-tabs,.company-tab-buttons,.member-tabs,.member-scope,.ranking-filters,.sanction-scope-buttons,.budget-scopes) button{min-height:40px}
 .admin-kpis{grid-template-columns:1fr}.admin-menu{flex-direction:row;overflow-x:auto}.admin-menu a{min-height:40px;display:flex;align-items:center}
 .auth-shell{align-items:flex-start;padding-top:28px}.auth-card{width:400px}.procurement-table td:last-child{text-align:left}.company-rank-strip>div{min-width:110px}.panel-criteria{max-width:100%}
}

/* Procurement family: one header, existing related links, all available summary values. */
.procurement-detail-family .proc-detail-head{padding:16px var(--panel-x)}
.procurement-detail-family .panel-title-row{align-items:flex-start;gap:18px}
.procurement-detail-family .panel-title-row>div{min-width:0;flex:1}
.procurement-detail-family .proc-detail-kind{display:block;font-size:12px;color:var(--text-muted);margin-bottom:7px;font-weight:500}
.procurement-detail-family .panel-title-row h2{font-size:23px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.proc-detail-back{flex-shrink:0;border:1px solid var(--border-control);border-radius:3px;padding:5px 10px;min-height:32px;display:flex;align-items:center;font-size:12px;color:var(--text-secondary)}
.proc-detail-back:hover{background:var(--bg-hover);color:var(--text-primary)}
.proc-detail-identity{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:12px;font-size:12px;color:var(--text-muted)}
.proc-detail-identity strong{color:var(--text-secondary);font-weight:500;margin-left:7px;overflow-wrap:anywhere}
.procurement-detail-family .procurement-links{margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--border-soft);gap:8px 16px;display:flex;flex-wrap:wrap}
.procurement-detail-family .procurement-links a{font-size:12px;font-weight:500}
.proc-detail-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 16px}
.proc-summary-card{min-width:0;min-height:100px;padding:14px 16px;border:0;border-radius:var(--radius);background:var(--tint-all);background-image:none;box-shadow:none}
.proc-summary-card[data-tone=gis]{background:var(--tint-gis)}
.proc-summary-card[data-tone=rank]{background:var(--tint-rank)}
.proc-summary-card[data-tone=activity]{background:var(--tint-activity)}
.proc-summary-card .metric-name{font-size:12px;font-weight:400;color:#e1eaf1;margin-bottom:9px}
.proc-summary-card strong{display:block;font-size:19px;font-weight:600;color:#f4f7fa;line-height:1.5;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.proc-summary-card.proc-summary-money strong{font-size:29px;letter-spacing:-.4px}
.procurement-detail-family .sanction-detail-grid{gap:12px}
.procurement-detail-family .sanction-category{padding:14px 16px;border-color:var(--border-soft);border-radius:var(--radius);background:var(--bg-panel)}
.procurement-detail-family .sanction-category h4{font-size:13px;font-weight:600;margin:0 0 12px;color:var(--text-primary)}
.procurement-detail-family .sanction-field-grid{gap:12px 18px}
.procurement-detail-family .sanction-field dt{font-size:11px;font-weight:400;color:var(--text-muted)}
.procurement-detail-family .sanction-field dd{font-size:13px;font-weight:400;line-height:1.65;color:var(--text-secondary);overflow-wrap:anywhere}
.procurement-detail-family .opening-company-primary{padding:0;margin:0;background:transparent;border:0}
/* Both result lists use the same date, title/key, institution and final-value rhythm. */
.procurement-result-table{table-layout:fixed;width:100%}
.procurement-result-table :is(th,td):first-child{width:145px;white-space:normal;font-variant-numeric:tabular-nums}
.procurement-result-table :is(th,td):nth-child(3){width:23%;font-size:13px;font-weight:400;overflow-wrap:anywhere}
.procurement-result-table :is(th,td):last-child{width:165px;text-align:right}
.procurement-result-table td:nth-child(2){overflow-wrap:anywhere}
.procurement-result-table td:nth-child(2)>a{font-size:14px;font-weight:500;line-height:1.6}
.procurement-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}
.procurement-title>a{min-width:0;overflow-wrap:anywhere}
.procurement-date{white-space:nowrap}
.procurement-value{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 6px}
.procurement-money{white-space:nowrap;color:var(--accent-blue);font-weight:600;font-variant-numeric:tabular-nums}
.procurement-status-badge{display:inline-block;max-width:100%;padding:1px 5px;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:10px;font-weight:400;line-height:1.5;overflow-wrap:anywhere}
.procurement-result-table .opening-list-key{display:inline;font-size:11px;color:var(--text-muted);font-weight:400}
.procurement-result-table .procurement-result-link{font-size:12px;font-weight:400}
.procurement-result-table .procurement-new{font-size:9px;background:#30494b;color:#b6cec6;border:0;margin-left:5px}
@media(max-width:760px){.procurement-value{justify-content:flex-start}.procurement-date{white-space:normal}}
/* Map and market retain their original indicators; every KPI is a solid color plane. */
#kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
#kpis .metric-card[data-tone]{background:var(--kpi-tint);border:0;box-shadow:none;background-image:none;min-height:104px;padding:14px 16px}
#kpis .metric-card .metric-name{font-size:12px;font-weight:400;color:#e1eaf1}
#kpis .metric-card strong{color:#f4f7fa;font-size:28px;font-weight:600}
#kpis .metric-card strong span{color:#d9e5ee}
#kpis .metric-card .metric-sub{color:#d3e0e8;font-size:11px;line-height:1.6}
#kpis .metric-card[data-level=primary] strong{font-size:32px}
.regional-kpis>div{background:var(--tint-gis);border:0;box-shadow:none;padding:12px 14px}
.regional-kpis>div:nth-child(2){background:var(--tint-activity)}
.regional-kpis>div strong,.regional-kpis>div:first-child strong,.regional-kpis>div:nth-child(2) strong{color:#f4f7fa;font-size:26px}
.regional-kpis .metric-name,.regional-kpis small,.regional-kpis .mini-growth{color:#dce7ed}
.market-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1.6fr)}
.market-regions{grid-column:auto}
.market-overview .trend-chart{max-height:220px}
.budget-control{margin-top:16px}
.budget-control::before{content:'지역 비교 기준 · 전국 시장과 발주예산';display:block;padding:10px var(--panel-x);font-size:12px;font-weight:500;color:var(--text-secondary);border-bottom:1px solid var(--border-soft)}
@media(max-width:1100px){.procurement-detail-family .sanction-category-wide .sanction-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.market-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
 #kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 #kpis .metric-card[data-tone]{min-height:100px;padding:12px}
 #kpis .metric-card strong,#kpis .metric-card[data-level=primary] strong{font-size:25px}
 .proc-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .proc-summary-card{min-height:104px;padding:11px 12px}
 .proc-summary-card strong{font-size:16px}
 .proc-summary-card.proc-summary-money strong{font-size:24px}
 .procurement-detail-family .proc-detail-head{padding:12px}
 .procurement-detail-family .panel-title-row h2{font-size:19px}
 .proc-detail-back{min-height:40px;padding:5px 8px}
 .proc-detail-identity{gap:7px 14px}
 .procurement-detail-family .sanction-category{padding:12px}
 .procurement-detail-family .sanction-category-wide .sanction-field-grid{grid-template-columns:minmax(0,1fr)}
 .procurement-result-table,.procurement-result-table :is(th,td):is(:first-child,:nth-child(3),:last-child){width:100%;white-space:normal;text-align:left}
 .ngii-notice-table :is(th,td):is(:nth-child(4),:nth-child(5)){width:100%;text-align:left}
 .regional-kpis>div{padding:10px 12px}
}

/* Opening/award summaries: stable six-slot order and 1.2x value typography. */
.proc-result-summary{grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;gap:10px}
.proc-result-summary .proc-summary-card{min-height:128px;padding:14px 16px;position:relative;--proc-value:#b9def3}
.proc-result-summary [data-tone=gis]{--proc-value:#b7e3d0}
.proc-result-summary [data-tone=rank]{--proc-value:#d9cef2}
.proc-result-summary [data-tone=activity]{--proc-value:#efdba8}
.proc-result-summary .metric-name{color:#edf3f7;font-size:12px;line-height:1.5}
.proc-result-summary .proc-summary-card strong{font-size:22.8px;font-weight:600;color:var(--proc-value);white-space:normal;text-overflow:clip;overflow:visible;line-height:1.45;overflow-wrap:anywhere}
.proc-result-summary .proc-summary-money strong{font-size:34.8px}
.proc-result-summary [data-missing=true] strong{color:#c9d3dc}
.proc-result-summary .proc-summary-card:has(.proc-participants-toggle){padding:0}
.proc-result-summary .proc-participants-toggle{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;width:100%;height:100%;min-height:128px;padding:14px 16px;text-align:left;cursor:pointer;border:0;border-radius:var(--radius);background:transparent;color:inherit;box-shadow:none;font:inherit}
.proc-result-summary .proc-participants-toggle:hover{background:rgba(255,255,255,.055);border:0;color:inherit;box-shadow:none}
.proc-result-summary .proc-participants-toggle:focus-visible{outline:2px solid var(--proc-value);outline-offset:2px}
.proc-result-summary .proc-participants-toggle[aria-expanded=true]{background:rgba(255,255,255,.055)}
.proc-participants-icon{font-size:13px;float:right;color:var(--proc-value)}
.proc-participants{margin-bottom:16px;scroll-margin-top:80px}
.proc-participants .panel-header{padding:12px 16px}
.proc-participants .panel-title-row h3{font-size:14px;font-weight:600}
.proc-participants button{min-height:32px;border:1px solid var(--border-control);border-radius:3px;background:var(--bg-panel-alt);color:var(--text-secondary);font-size:12px;padding:5px 9px;font-weight:500;box-shadow:none}
.participants-coverage{font-size:13px;color:var(--text-primary);margin:0 0 10px;line-height:1.6}
.participants-event-label{display:flex;align-items:center;gap:10px;font-size:12px;margin-bottom:10px}
.participants-event-label select{min-height:32px;max-width:100%;min-width:0;padding:5px 8px}
.participants-table{width:100%;table-layout:fixed}
.participants-table :is(th,td):first-child{width:75px}
.participants-table :is(th,td):nth-child(2){width:23%}
.participants-table :is(th,td):nth-child(3){width:130px}
.participants-table :is(th,td):nth-child(4){width:110px}
.participants-table :is(th,td):nth-child(5){width:165px;text-align:right}
.participants-table :is(th,td):nth-child(6){width:100px;text-align:right}
.participants-table td{font-weight:400;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.participants-table td:first-child{color:#d9cef2;font-weight:600}
.participants-table td:nth-child(2){font-weight:500;color:var(--text-primary)}
.participants-table td:nth-child(5){color:#b9def3;font-weight:600}
.participants-table td:nth-child(6){color:#d9cef2;font-weight:600}
.participants-table td small{display:block;font-size:10px;font-weight:400;color:var(--text-muted);line-height:1.6;margin-top:3px}
@media(max-width:1200px){.proc-result-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.participants-table{min-width:900px}.proc-participants .intelligence-table-wrap{overflow-x:auto}}
@media(max-width:760px){
 .proc-result-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .proc-result-summary .proc-summary-card{min-height:124px;padding:11px 12px}
 .proc-result-summary .proc-participants-toggle{min-height:124px;padding:11px 12px}
 .proc-result-summary .proc-summary-card strong{font-size:19.2px}
 .proc-result-summary .proc-summary-money strong{font-size:28.8px}
 .proc-participants button,.participants-event-label select{min-height:40px}
 .participants-table{min-width:0}
 .participants-table thead{display:none}
 .participants-table,.participants-table tbody,.participants-table tr{display:block;width:100%}
 .participants-table tbody tr{padding:8px 0;border-bottom:1px solid var(--border-soft)}
 .participants-table :is(th,td):is(:first-child,:nth-child(2),:nth-child(3),:nth-child(4),:nth-child(5),:nth-child(6)),.participants-table td{display:grid;grid-template-columns:105px minmax(0,1fr);width:100%;border:0;text-align:left;padding:5px 8px;min-width:0}
 .participants-table td:before{content:attr(data-label);font-size:11px;font-weight:400;color:var(--text-muted)}
 .participants-table td small{grid-column:2;overflow-wrap:anywhere}
 .budget-job-status{min-width:0;max-width:100%;overflow-wrap:anywhere}
 .budget-job-status>.admin-table{width:100%;min-width:0;max-width:100%;display:block;overflow-x:auto}
 .budget-job-status>.admin-table tbody,.budget-job-status>.admin-table tr{display:block;width:100%}
 .budget-job-status>.admin-table :is(th,td){display:block;width:100%;min-width:0;border:0;text-align:left;padding:5px 8px;overflow-wrap:anywhere}
 .budget-job-status>.admin-table th{padding-top:10px;background:var(--bg-panel-alt)}
 .budget-job-status>.admin-table td{border-bottom:1px solid var(--border-soft)}
}

/* GIS dashboard: one spacing and typography system; other page families are unchanged. */
.dashboard-page{--dashboard-space-1:4px;--dashboard-space-2:8px;--dashboard-card-gap:12px;--dashboard-padding:16px;--dashboard-panel-gap:20px;--dashboard-kpi-label:13px;--dashboard-kpi-value:28px;--dashboard-kpi-note:15px;--dashboard-kpi-unit:15px;--dashboard-title-height:20px;--dashboard-value-height:35px}
.dashboard-page #kpis{gap:var(--dashboard-card-gap);margin:0 0 var(--dashboard-panel-gap)}
.dashboard-page :is(#kpis .metric-card,.regional-kpis>div){display:grid;grid-template-rows:minmax(var(--dashboard-title-height),auto) minmax(var(--dashboard-value-height),auto) 1fr;align-content:start;gap:var(--dashboard-space-2);min-height:0;padding:var(--dashboard-padding);border:0;border-radius:var(--radius);background-image:none;box-shadow:none}
.dashboard-page :is(#kpis .metric-name,.regional-kpis .metric-name,.budget-metrics dt){font-size:var(--dashboard-kpi-label);font-weight:500;line-height:1.5;margin:0;color:#edf3f7}
.dashboard-page :is(#kpis .metric-card>strong,.regional-kpis>div>strong,.budget-metrics dd){display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--dashboard-space-1);font-size:var(--dashboard-kpi-value);font-weight:600;line-height:1.25;letter-spacing:0;margin:0;color:#f4f7fa;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.dashboard-page :is(#kpis .metric-card>strong>span,.regional-kpis>div>strong>small,.regional-kpis>div>strong>.kpi-unit,.budget-metrics .kpi-unit){font-size:var(--dashboard-kpi-unit);font-weight:400;line-height:1.5;letter-spacing:0;margin:0;color:#d9e5ee}
.dashboard-page :is(#kpis .metric-sub,.regional-kpis .mini-growth,.budget-metrics small){font-size:var(--dashboard-kpi-note);font-weight:400;line-height:1.5;min-height:45px;margin:0;color:#d3e0e8;overflow-wrap:anywhere}
.dashboard-page .budget-metrics>.dashboard-kpi{grid-template-rows:minmax(var(--dashboard-title-height),auto) minmax(var(--dashboard-value-height),auto) 1fr}
.dashboard-page .workspace{gap:var(--dashboard-panel-gap);align-items:stretch}
.dashboard-page .map-card,.dashboard-page .region-panel,.dashboard-page #region-content{display:flex;flex-direction:column}
.dashboard-page .map-body,.dashboard-page #region-content{flex:1;min-width:0}
.dashboard-page .map-body{display:flex;flex-direction:column}
.dashboard-page .map-stage{flex:1;align-items:stretch;grid-template-columns:minmax(0,1fr) 240px}
.dashboard-page .map-stage svg{height:100%;min-height:400px;max-height:none;align-self:stretch}
.dashboard-page .map-region-index{padding:var(--dashboard-padding)}
.dashboard-page .map-direction{right:260px}
.dashboard-page :is(.panel-header,.panel-body,.quality-note,.map-legend,.map-footnote){padding:var(--dashboard-padding)}
.dashboard-page .map-body .metric-tabs{padding:12px var(--dashboard-padding);gap:var(--dashboard-space-2)}
.dashboard-page .regional-kpis{gap:var(--dashboard-card-gap)}
.dashboard-page .panel-section{border-top:0}.dashboard-page .panel-section .panel-header{border-top:1px solid var(--border)}
.dashboard-page :is(.map-card>.panel-header,.region-panel .panel-top){padding:var(--dashboard-padding)}
.dashboard-page #map-workspace .eyebrow{font-size:10px;font-weight:600;line-height:15px;margin:0}
.dashboard-page :is(#map-heading,.region-heading h2){font-size:18px;font-weight:600;line-height:32px;margin:0}
.dashboard-page .region-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--dashboard-space-2);margin:0}
.dashboard-page .region-heading select{height:32px;min-height:32px;padding:4px 8px;font-size:13px;line-height:22px}
.dashboard-page :is(.map-card>.panel-header .panel-subtitle,.region-description){font-size:13px;line-height:1.5;margin:4px 0 0}
.dashboard-page .region-panel .panel-section:has(.trend-chart){display:flex;flex-direction:column;flex:1}
.dashboard-page .region-panel .panel-section:has(.trend-chart)>.panel-body{display:flex;flex:1}
.dashboard-page .region-panel .trend-chart{align-self:stretch}
.dashboard-page .market-grid,.dashboard-page .market-overview,.dashboard-page .market-intelligence{gap:var(--dashboard-panel-gap)}
.dashboard-page .market-grid{align-items:start}.dashboard-page .market-price-strip,.dashboard-page .market-intelligence{margin-top:var(--dashboard-panel-gap)}
.dashboard-page #budget-control{margin:var(--dashboard-panel-gap) 0 0}
.dashboard-page .method-note{margin-top:var(--dashboard-panel-gap)}
@media(max-width:1200px){.dashboard-page .map-direction{right:20px}}
@media(max-width:900px){.dashboard-page .workspace{grid-template-columns:minmax(0,1fr)}.dashboard-page .map-stage svg{height:auto;min-height:390px}.dashboard-page .region-panel .panel-section:has(.trend-chart),.dashboard-page .region-panel .panel-section:has(.trend-chart)>.panel-body{flex:none;display:block}}
@media(max-width:760px){.dashboard-page{--dashboard-kpi-value:24px;--dashboard-title-height:40px;--dashboard-value-height:30px}.dashboard-page .region-heading select{height:40px;min-height:40px}.dashboard-page .region-heading h2{line-height:40px}}

.dashboard-page .regional-kpis .mini-growth span{font-size:inherit;line-height:inherit}
.dashboard-page .panel-section .panel-header{border-radius:0}
/* Existing prespec detail: accessible tabs and shared cached opinions. */
.prespec-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line,#3b454e);margin-bottom:20px;padding-bottom:10px}
.prespec-tabs [role=tab]{padding:10px 16px;border:1px solid var(--line,#3b454e);border-radius:8px;background:transparent;color:inherit;cursor:pointer}
.prespec-tabs [aria-selected=true]{background:#243e38;border-color:#62c8aa;color:#9be6ce}
.prespec-tabs button:focus-visible,.prespec-opinion-actions button:focus-visible{outline:2px solid #9be6ce;outline-offset:3px}
#prespec-details-panel[hidden],#prespec-opinions-panel[hidden]{display:none}
#prespec-opinions-panel{min-width:0;position:relative}
.prespec-opinion-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.prespec-opinion-actions p{flex:1;min-width:180px;margin:0;color:#b4bec8;font-size:13px;line-height:1.7}
.prespec-opinion-actions button{flex-shrink:0;white-space:normal}
.prespec-opinion-actions button,#prespec-opinions-panel [data-opinion-retry]{background:#243e38;color:#b9efdc;border:1px solid #548675;border-radius:8px;padding:10px 14px;font:inherit;cursor:pointer}
.prespec-opinion-status,.prespec-opinion-checked{color:#b4bec8;font-size:12px;line-height:1.8;margin:12px 0}
.prespec-opinion-status:empty{display:none}
.prespec-opinion{min-width:0;padding:20px 0;border-top:1px solid var(--line,#3b454e)}
.prespec-opinion h3{margin:0 0 14px;font-size:17px;line-height:1.6;overflow-wrap:anywhere}
.prespec-opinion-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.prespec-opinion-meta div{min-width:0}.prespec-opinion-meta dt{font-size:12px;color:#aab7c3}.prespec-opinion-meta dd{margin:4px 0 0;overflow-wrap:anywhere}
.prespec-opinion-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;margin:20px 0}
.prespec-opinion-files{display:flex;flex-wrap:wrap;gap:10px}.prespec-opinion-files a{overflow-wrap:anywhere;max-width:100%}
.prespec-opinion-actions button:disabled{opacity:.5;cursor:not-allowed}
.engine-ON_DEMAND{color:#9be6ce;background:#243e38}
@media(max-width:600px){.prespec-opinion-meta{grid-template-columns:minmax(0,1fr)}.prespec-opinion-actions{align-items:stretch}.prespec-opinion-actions button{width:100%}.prespec-tabs button{flex:1}}

/* Explicit stage health; business holds are distinct from execution errors. */
.engine-HELD{color:var(--attention)}.engine-DELIVERY_ERROR{color:var(--negative)}.engine-stage-label{display:block;font-size:12px;margin-top:5px}.engine-table td strong{display:block;font-size:12px;margin-top:6px;line-height:1.5}
