:root{
  --bg:#0A0F10;
  --shell:#111617;
  --surface:#171C1D;
  --raised:#202627;
  --divider:#303738;
  --divider-soft:#252C2D;
  --text:#EFF1F1;
  --muted:#AEB8B7;
  --quiet:#74817F;
  --accent:#25D1B4;
  --accent-soft:#173C38;
  --danger:#E9A66F;
  --radius:6px;
  --topbar:62px;
  --bottomnav:44px;
  --inspector:352px;
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}
button,input,select{font:inherit;color:inherit}
button,select{cursor:pointer}
button{background:none;border:0}
.hidden{display:none!important}
.app-shell{width:100vw;height:100vh;background:var(--bg)}

/* Header */
.topbar{height:var(--topbar);display:flex;align-items:center;border-bottom:1px solid var(--divider-soft);background:var(--shell);padding:0 18px;gap:22px;position:relative;z-index:30}
.brand{display:flex;align-items:center;gap:12px;min-width:285px}
.brand-logo{display:block;width:104px;height:auto;max-height:24px;object-fit:contain;object-position:left center}
.brand-copy{display:flex;flex-direction:column;line-height:1.08;gap:3px;padding-left:12px;border-left:1px solid #35413F}
.brand-copy strong{font-size:13.5px;font-weight:620;letter-spacing:-.012em;color:var(--text)}
.brand-copy span{font-size:9px;letter-spacing:.045em;color:#7F8D8A;font-weight:500}
.command-strip{display:flex;align-items:center;gap:15px;flex:1;min-width:0}
.compact-control{display:flex;align-items:center;gap:8px;min-width:0}
.compact-control label{font-size:10px;color:var(--quiet);letter-spacing:.03em}
.compact-control select{height:34px;background:transparent;border:0;border-bottom:1px solid #44504E;padding:0 26px 0 0;outline:0;font-size:12.5px;max-width:240px}
.compact-control select:focus{border-bottom-color:var(--accent)}
.search-wrap{height:34px;min-width:190px;max-width:330px;flex:1;display:flex;align-items:center;border-bottom:1px solid #44504E;gap:7px}
.search-wrap:focus-within{border-bottom-color:var(--accent)}
.search-wrap svg{width:14px;height:14px;stroke:#71807E;fill:none;stroke-width:1.8}
.search-wrap input{width:100%;background:transparent;border:0;outline:0;font-size:12.5px;color:var(--text)}
.search-wrap input::placeholder{color:#64716F}
.text-button{height:34px;padding:0 4px;color:#C8D0CF;font-size:12.5px}
.text-button:hover{color:var(--text)}
.filter-count{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;margin-left:3px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:10px}
.active-filter-label{height:34px;padding:0 2px;color:var(--accent);font-size:11px;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid transparent}
.active-filter-label:hover{border-bottom-color:var(--accent);color:#6DE2CD}
.segmented{display:flex;align-items:center;border:1px solid #3B4544;border-radius:5px;overflow:hidden;height:32px}
.segmented button{height:100%;padding:0 12px;font-size:11.5px;color:#81908D}
.segmented button+button{border-left:1px solid #3B4544}
.segmented button.active{background:#24302F;color:var(--text)}
.header-meta{display:flex;align-items:center;gap:11px;color:#6F7D7B;font-size:10.5px;white-space:nowrap}
.header-meta b{color:#9AA6A4;font-weight:560}
.status-badge{padding:3px 6px;border:1px solid #5B4A2C;color:#E4C479;border-radius:4px;text-transform:uppercase;font-size:8px;letter-spacing:.1em}

/* Filters */
.filters-panel{position:fixed;left:18px;right:auto;top:70px;width:260px;background:var(--surface);border:1px solid var(--divider);box-shadow:0 14px 36px rgba(0,0,0,.28);z-index:50;padding:14px 15px}
.filter-section+.filter-section{border-top:1px solid var(--divider-soft);margin-top:12px;padding-top:12px}
.filter-title{font-size:10px;color:#7F8D8A;margin-bottom:7px}
.filter-section select{width:100%;height:32px;background:var(--raised);border:1px solid #394442;border-radius:4px;padding:0 8px;font-size:11.5px}
.evidence-filter{display:flex;flex-direction:column;gap:3px}
.evidence-filter .filter-title{margin-bottom:4px}
.filter-option{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 3px;color:#6F7D7B;font-size:11.5px}
.filter-option.active{color:#CBD2D1}
.dot{width:6px;height:6px;border-radius:50%;background:#6B7775;opacity:.45}
.filter-option.active .dot{opacity:1}.dot.cross{background:#25D1B4}.dot.bd{background:#9B8AC7}.dot.ext{background:#6C99C3}.dot.structural{background:#8B9795}

/* Main map / inspector */
.workspace{position:absolute;top:var(--topbar);bottom:var(--bottomnav);left:0;right:0;display:grid;grid-template-columns:minmax(0,1fr) var(--inspector);background:var(--bg)}
.map-stage{min-width:0;position:relative;background:#081011}
.map-viewport{position:absolute;inset:0;overflow:hidden;cursor:crosshair;background:#081011}
.map-viewport.dragging{cursor:grabbing}
#mapCanvas{position:absolute;inset:0;width:100%;height:100%}
.map-overlay{position:absolute;z-index:5;pointer-events:none}
.map-title-block{left:20px;top:18px;display:flex;flex-direction:column;gap:3px;text-shadow:0 1px 10px rgba(0,0,0,.65)}
.map-title-block>span{font-size:9px;letter-spacing:.08em;color:#8B9997;text-transform:uppercase}
.map-title-block strong{font-size:15px;font-weight:590;letter-spacing:-.01em}
.map-title-block small{font-size:10px;color:#75817F}.map-title-block small b{font-weight:600;color:#9EA9A7}
.legend-block{left:20px;bottom:28px;width:176px;background:rgba(10,15,16,.78);backdrop-filter:blur(8px);padding:9px 10px;border-left:1px solid #35413F}
.legend-block>span{font-size:10px;color:#A8B3B1}
.legend-gradient{height:5px;margin-top:7px;background:linear-gradient(90deg,#11070c,#30203e,#413f80,#366ca0,#3497a9,#4bc2ad,#f98e09,#f5f992)}
.legend-scale{display:flex;justify-content:space-between;margin-top:4px;color:#6E7C79}.legend-scale small{font-size:8.5px}
.map-tools{position:absolute;right:12px;top:12px;z-index:7}.map-tools button{width:30px;height:30px;background:rgba(17,22,23,.84);border:1px solid #34403E;border-radius:4px;color:#9DA8A6;font-size:14px}.map-tools button:hover{color:var(--text);border-color:#4B5856}
.map-help{position:absolute;right:14px;bottom:11px;color:#53615F;font-size:9px;z-index:5;pointer-events:none}
.map-attribution{position:absolute;left:211px;bottom:11px;color:#465350;font-size:8px;z-index:5;pointer-events:none}
.map-tooltip{position:absolute;z-index:20;min-width:185px;padding:8px 9px;background:#111718;border:1px solid #394542;box-shadow:0 8px 24px rgba(0,0,0,.28);pointer-events:none;font-size:10px}
.map-tooltip strong{display:block;font-size:10px;margin-bottom:3px}.map-tooltip span{color:#8F9C99}

.inspector{position:relative;background:var(--surface);border-left:1px solid var(--divider);overflow:hidden}
.empty-state{height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:34px;color:#778481}
.empty-crosshair{font-size:24px;color:#52605D;margin-bottom:13px}.empty-state strong{color:#C6CFCD;font-size:16px;font-weight:570}.empty-state p{max-width:250px;font-size:11.5px;line-height:1.55;color:#74817F;margin:8px 0 0}
.inspector-content{height:100%;overflow:auto;padding:20px 21px 26px;scrollbar-width:thin;scrollbar-color:#3A4543 transparent}
.selection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.label{font-size:9px;color:#75827F;text-transform:uppercase;letter-spacing:.08em}.selection-head h2{font-size:11.5px;margin:4px 0 0;font-weight:560;color:#C5CECC;letter-spacing:.01em}
.evidence-badge{font-size:8.5px;text-transform:uppercase;letter-spacing:.055em;color:#9CA8A5;border-left:2px solid #75817F;padding:2px 0 2px 7px;white-space:nowrap}.evidence-badge.cross-validated{border-color:var(--accent);color:#B7E8DE}.evidence-badge.direct-bd{border-color:#9B8AC7;color:#C8BAEB}.evidence-badge.external-only{border-color:#6C99C3;color:#A9C9E5}
.score-hero{padding:21px 0 19px;border-bottom:1px solid var(--divider-soft)}
.score-hero>strong{display:block;font-size:54px;line-height:.92;font-weight:530;letter-spacing:-.055em;color:var(--text)}
.score-hero>span{display:block;margin-top:6px;color:#9AA6A4;font-size:10.5px}.score-meta{margin-top:11px;color:#697673;font-size:10.5px}.score-meta b{font-weight:560;color:#AFB9B7}.score-meta i{font-style:normal;margin:0 5px;color:#4F5C59}
.inspector-section{padding:18px 0;border-bottom:1px solid var(--divider-soft)}
.inspector-section h3{font-size:12px;margin:0 0 9px;font-weight:590;color:#D7DDDC}.why-section p{margin:0;color:#AAB4B2;font-size:11.5px;line-height:1.56}
.rationale-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}.rationale-tags span{font-size:9px;color:#8FA3A0;padding:3px 5px;border:1px solid #34403E;border-radius:3px}
.dual-metric{display:grid;grid-template-columns:1fr 1fr;gap:0}.dual-metric>div{display:flex;flex-direction:column;gap:3px}.dual-metric>div+div{border-left:1px solid var(--divider);padding-left:18px}.dual-metric strong{font-size:25px;font-weight:530;letter-spacing:-.035em}.dual-metric span{font-size:9.5px;color:#71807D}
.section-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-row h3{margin:0}.inline-link{padding:0;color:var(--accent);font-size:10px;text-align:right}.inline-link:hover{color:#6DE2CD}
.direct-list{margin-top:10px}.direct-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 0;border-top:1px solid #242B2C}.direct-item:first-child{border-top:0}.direct-item strong{font-size:10.5px;font-weight:540;color:#C4CDCB;white-space:nowrap}.direct-item span{font-size:10.5px;color:#879491;white-space:nowrap}.direct-empty{font-size:10.5px;color:#65726F}
.info-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:4px 0;font-size:10.5px}.info-row span{color:#75827F}.info-row strong{font-weight:540;color:#B5BFBD;text-align:right;max-width:180px}.breakdown-link{margin-top:9px}

/* Inspector sheets */
.inspector-sheet{position:absolute;inset:0;background:var(--surface);z-index:8;display:flex;flex-direction:column}
.sheet-head{height:60px;display:flex;align-items:center;gap:10px;padding:0 17px;border-bottom:1px solid var(--divider-soft)}
.sheet-back{width:26px;height:26px;color:#83918E;font-size:17px}.sheet-head>div{display:flex;flex-direction:column;gap:2px}.sheet-head span{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:#6E7B78}.sheet-head strong{font-size:11.5px;font-weight:560;color:#C5CECC}
.sheet-body{flex:1;overflow:auto;padding:16px 18px 24px}.sheet-summary{display:flex;justify-content:space-between;align-items:center;color:#778481;font-size:9.5px;margin-bottom:10px}.sheet-summary strong{font-weight:500;color:#9AA6A4}
.evidence-list{display:flex;flex-direction:column}.evidence-item{padding:12px 0;border-top:1px solid var(--divider-soft)}.evidence-item:first-child{border-top:0}.evidence-top{display:flex;justify-content:space-between;gap:12px}.evidence-top strong{font-size:10.5px;font-weight:560;color:#CDD4D2}.evidence-type{font-size:8.5px;color:#798682;white-space:nowrap}.evidence-item p{font-size:10.5px;color:#8D9997;line-height:1.5;margin:6px 0}.evidence-mini{display:flex;flex-wrap:wrap;gap:7px;color:#667471;font-size:8.5px}.evidence-mini span+span:before{content:"·";margin-right:7px;color:#465350}
.subsection-title{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:#74817F;margin-bottom:9px}.gap-top{margin-top:24px}
.scenario-row,.metric-row{display:grid;grid-template-columns:48px 1fr 72px;align-items:center;gap:8px;padding:5px 0;font-size:9px;color:#73817E}.scenario-row strong,.metric-row strong{text-align:right;font-weight:520;color:#A8B2B0}.bar{height:2px;background:#293230;overflow:hidden}.fill{height:100%}
.muted{font-size:10.5px;color:#697673;line-height:1.5}

/* Bottom navigation */
.bottomnav{position:absolute;left:0;right:0;bottom:0;height:var(--bottomnav);display:flex;align-items:center;padding:0 18px;background:var(--shell);border-top:1px solid var(--divider-soft);z-index:35;gap:22px}
.nav-item{height:100%;padding:1px 0 0;color:#71807D;font-size:11px;border-top:1px solid transparent}.nav-item:hover{color:#AEB8B7}.nav-item.active{color:var(--text);border-top-color:var(--accent)}
.nav-status{margin-left:auto;color:#55625F;font-size:9.5px;white-space:nowrap;max-width:45%;overflow:hidden;text-overflow:ellipsis}

/* Workbench drawer */
.workbench{position:absolute;left:0;right:0;bottom:var(--bottomnav);height:min(360px,46vh);background:#121718;border-top:1px solid #36413F;z-index:28;box-shadow:0 -16px 32px rgba(0,0,0,.26);display:flex;flex-direction:column}
.drawer-head{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--divider-soft)}
.drawer-head>div{display:flex;flex-direction:column;gap:1px}.drawer-head span{font-size:8px;color:#64716F;text-transform:uppercase;letter-spacing:.08em}.drawer-head strong{font-size:12px;font-weight:570}.drawer-close{font-size:20px;color:#6E7B78}.drawer-close:hover{color:var(--text)}
.tab-panel{display:none;flex:1;min-height:0}.tab-panel.active{display:block}.table-wrap{height:100%;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:10px}thead{position:sticky;top:0;background:#151B1C;z-index:2}th{height:34px;padding:0 12px;text-align:left;color:#687572;font-weight:500;border-bottom:1px solid #2C3434;white-space:nowrap}td{padding:8px 12px;border-bottom:1px solid #202727;color:#98A4A1;white-space:nowrap}tbody tr:hover{background:#18201F}td.score{color:#D6DEDC;font-weight:560}.pill{font-size:8px;text-transform:capitalize;color:#81908D}
.summary-grid{height:100%;overflow:auto;padding:14px 18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 24px}.summary-card{padding:12px 0;border-bottom:1px solid #293130;cursor:pointer}.summary-card h3{font-size:10.5px;font-weight:550;margin:0;color:#B9C2C0}.summary-card .big{font-size:24px;font-weight:520;margin-top:6px}.summary-card .sub{font-size:9px;color:#65726F;margin-top:2px}
.method-layout{height:100%;overflow:auto;padding:22px 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.method-layout article{max-width:340px}.method-layout article>span{font-size:8.5px;color:#687572;text-transform:uppercase;letter-spacing:.07em}.method-layout h3{font-size:17px;font-weight:560;margin:7px 0 8px;letter-spacing:-.02em}.method-layout p{font-size:10.5px;line-height:1.55;color:#818E8B;margin:0}

@media (max-width:1100px){:root{--inspector:320px}.brand{min-width:245px}.brand-logo{width:88px}.brand-copy strong{font-size:12.5px}.header-meta{display:none}.command-strip{gap:10px}.compact-control label{display:none}.strategy-control select{max-width:205px}.search-wrap{max-width:230px}.inspector-content{padding-left:17px;padding-right:17px}}
@media (max-width:820px){:root{--topbar:104px;--inspector:0px}.topbar{align-items:flex-start;padding-top:11px;flex-wrap:wrap;gap:7px 14px}.brand{height:36px}.command-strip{order:3;width:100%;flex-basis:100%}.header-meta{display:flex;margin-left:auto}.workspace{grid-template-columns:1fr}.inspector{position:absolute;right:0;top:0;bottom:0;width:min(350px,92vw);z-index:20;box-shadow:-12px 0 30px rgba(0,0,0,.25)}.empty-state{display:none}.inspector:has(#cellInspector.hidden){display:none}.search-wrap{display:none}.method-layout{grid-template-columns:1fr}.nav-status{display:none}}

/* v1.3 data-consistency notice */
.data-warning{
  margin-top:10px;
  padding:8px 10px;
  border-left:2px solid #25D1B4;
  background:rgba(37,209,180,.055);
  color:#aeb8b7;
  font-size:11px;
  line-height:1.45;
}

/* v1.4 procurement evidence layer */
.stage-label{font-size:8.5px;font-weight:560;color:#AEB8B7;text-align:right;max-width:180px;line-height:1.25;text-transform:none}
.procurement-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px}
.procurement-metrics>div{display:flex;flex-direction:column;gap:3px}
.procurement-metrics>div+div{border-left:1px solid var(--divider);padding-left:12px}
.procurement-metrics strong{font-size:20px;font-weight:530;letter-spacing:-.03em;color:#E5ECEA}
.procurement-metrics span{font-size:9px;color:#71807D}
.procurement-names{margin-top:9px;color:#879491;font-size:10px;line-height:1.45}
