:root{
  --bg:#f7f7f6; --surface:#ffffff; --ink:#23262b; --muted:#5f6469; --line:rgba(35,38,43,.12); --line2:rgba(35,38,43,.07);
  --brand:#1a1d21; --brand-ink:#000000; --soft:#ececeb; --link:#2b5d9f;
  --oi-black:#000000; --oi-orange:#E69F00; --oi-sky:#56B4E9; --oi-green:#009E73;
  --oi-yellow:#F0E442; --oi-blue:#0072B2; --oi-vermilion:#D55E00; --oi-purple:#CC79A7;
  /* colorblind-safe status palette (Okabe-Ito derived) — was green #0e7a5f / red #b3372b,
     the pair red-green color blindness confuses most; see design/midpoint/MIDPOINT_v1.html §1 */
  --s-op:#0060A8; --s-con:#1E6C8C; --s-feas:#8A5A00; --s-dorm:#5C6470; --s-cancel:#9B3C74; --s-decom:#0A7F14;
  --s-op-bg:#e3eef7; --s-feas-bg:#f5ecd9; --s-cancel-bg:#f6e8f0; --s-decom-bg:#e9f6ea;
  /* Lifecycle-stage ramp — map pins, project legend, status chips and the maturity bar only.
     One ordered hue axis (the existing --s-con teal → --s-op blue), darkening as a project advances,
     so Concept no longer shares a swatch with Feasibility nor DEMO with FID/Construction. Halted and
     terminal states sit off the ramp in the neutral/--s-cancel family. Deliberately disjoint from the
     offtake product palette (OFF_PC) and the policy amber, which stay categorical. */
   --st-concept:#8FB4CB; --st-feas:#5591B1; --st-fid:#1E6C8C; --st-demo:#12557E; --st-op:#0060A8;
    --st-hold:#8A929C; --st-dorm:#5C6470; --st-cancel:#9B3C74; --st-decom:#3A3F45;
    --st-decom-bg:#eceeef;
   --cat-cfd:#2b5d9f; --cat-tax-credit:#b8862c; --cat-total-lcoe:#7a5cae; --cat-offtake:#2b9e8f; --cat-grant:#6e7377;
   --cat-reference:#5f6761; --cat-reference-bg:#eeeeea; --cat-offtake-ref:#1f7d70; --cat-offtake-ref-bg:#e3f1ee;
   --cat-policy-marker:#b8862c; --cat-offtake-fallback:#6e7670;
   --bm-grid-cols:210px minmax(0,1fr) 160px;
    --content-max:1180px;
  --display:"Satoshi",system-ui,-apple-system,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  --sans:"Satoshi",system-ui,-apple-system,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;
  --shadow:0 1px 2px rgba(25,29,33,.04),0 6px 16px rgba(25,29,33,.05),0 18px 40px rgba(25,29,33,.045);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow-x:hidden}
 /* mono 확정은 B 리셋(.num 재정의) */
 body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.num{font-variant-numeric:tabular-nums}
a{color:var(--link);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}
.app{display:grid;grid-template-columns:236px 1fr;grid-template-rows:auto 1fr;height:100vh}
header{grid-column:1/3;display:flex;align-items:center;gap:14px;padding:0 22px;height:58px;background:var(--surface);border-bottom:1px solid var(--line)}
.brand{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.01em;cursor:pointer;color:inherit;text-decoration:none}
.brand:hover,.brand:focus-visible{text-decoration:none}
.brand b{color:var(--brand)}
.tagline{color:var(--muted);font-size:12.5px;border-left:1px solid var(--line);padding-left:14px}
header .spacer{flex:1}
.langsel{font-family:var(--sans);font-size:12.5px;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 9px;background:var(--surface);cursor:pointer}
.langsel:focus{outline:none;border-color:var(--brand)}
.hchip{font-family:var(--sans);font-size:11px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:4px 11px;white-space:nowrap}
.dfresh{font-family:var(--sans);font-size:11px;color:var(--s-op);background:var(--s-op-bg);border:1px solid #cfe3da;border-radius:99px;padding:4px 11px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.dfresh:before{content:"";width:6px;height:6px;border-radius:99px;background:var(--s-op);flex:none}
header .cta{font-family:var(--sans);font-size:13px;font-weight:500;color:#fff;border:1px solid var(--brand);padding:7px 15px;border-radius:8px;background:var(--brand);cursor:pointer}
header .cta:hover,header .cta:focus-visible{background:var(--brand-ink)}
.navtoggle{display:none;background:none;border:0;font-size:20px;line-height:1;cursor:pointer;color:var(--ink);padding:4px}
nav{background:var(--surface);border-right:1px solid var(--line);padding:16px 12px;overflow:auto}
nav .grp{font-family:var(--sans);font-size:10.5px;text-transform:none;letter-spacing:.08em;color:var(--muted);margin:18px 8px 7px}
nav .grp:first-child{margin-top:2px}
nav button{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:none;border:0;border-left:2px solid transparent;padding:8px 11px;border-radius:7px;color:var(--ink);font-family:var(--sans);font-size:13.5px;cursor:pointer;transition:background .12s}
nav button:hover,nav button:focus-visible{background:#ececec}
nav button.active{background:var(--soft);color:var(--brand-ink);font-weight:600;border-left-color:var(--brand)}
#nav>a{display:flex;align-items:center;width:100%;min-height:36px;border-left:2px solid transparent;padding:7px 11px;border-radius:7px;color:var(--ink);font-family:var(--sans);font-size:13.5px;box-sizing:border-box}
#nav>a:hover,#nav>a:focus-visible{background:#ececec;text-decoration:none}
#nav>a.active{background:var(--soft);color:var(--brand-ink);font-weight:600;border-left-color:var(--brand)}
nav .tag{font-family:var(--sans);font-size:9.5px;padding:1px 6px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}
main{overflow:auto;padding:30px 34px;background:var(--bg)}
 .page{display:none;max-width:var(--content-max)}.page.active{display:block;animation:fade .26s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
h1{font-family:var(--sans);font-size:27px;font-weight:600;margin:0 0 6px;letter-spacing:-.02em;line-height:1.15}
.sub{color:var(--muted);margin:0 0 22px;font-size:14.5px;max-width:660px;line-height:1.55}
.decision-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:18px}.decision-form label{display:grid;gap:5px;min-width:0;color:var(--muted);font-family:var(--mono);font-size:10.5px}.decision-form input,.decision-form select{width:100%;min-width:0;min-height:38px;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--ink);font:13px var(--sans);padding:7px 9px}.decision-form button{grid-column:1/-1;justify-self:start;min-height:38px;border:1px solid var(--brand);border-radius:3px;background:var(--brand);color:#fff;font:600 13px var(--sans);padding:8px 13px;cursor:pointer}.decision-form button:hover,.decision-form button:focus-visible{background:var(--brand-ink)}.decision-summary{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 14px;font-size:13px;color:var(--muted)}.decision-summary b{font-family:var(--mono);font-size:24px;color:var(--ink)}.decision-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.decision-record{min-width:0;padding:15px;border-bottom:1px solid var(--line);background:var(--surface)}.decision-record:nth-child(odd){border-right:1px solid var(--line)}.decision-record h2{margin:0 0 4px;font-size:16px;line-height:1.25}.decision-record p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}.decision-record dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:12px 0 0;font-family:var(--mono);font-size:11px}.decision-record dt{color:var(--muted)}.decision-record dd{margin:0;text-align:right;color:var(--ink);overflow-wrap:anywhere}.decision-state{display:inline-block;margin:9px 0 0;padding:3px 5px;background:var(--soft);color:var(--muted);font-family:var(--mono);font-size:10px}.decision-state.warn{background:var(--s-feas-bg);color:var(--s-feas)}.decision-state.conflict{background:var(--s-cancel-bg);color:var(--s-cancel)}.decision-source{display:inline-flex;align-items:center;min-height:36px;margin-top:10px;font-size:12px;font-weight:600}.decision-empty{padding:24px 0;color:var(--muted);font-size:13px}.decision-claims{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.decision-claims span{padding:3px 5px;background:var(--soft);color:var(--muted);font-family:var(--mono);font-size:10px;overflow-wrap:anywhere}
.hero{margin-bottom:18px}
.eyebrow{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:none;color:var(--brand);margin-bottom:13px}
.hero h1{font-size:38px;font-weight:700;line-height:1.05;margin-bottom:13px}
.lede{color:var(--muted);font-size:17px;max-width:620px;line-height:1.5;margin:0 0 16px}
.scope{font-family:var(--sans);font-size:12px;color:var(--muted);display:flex;gap:9px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:15px}
.scope b{color:var(--ink);font-weight:600}
.searchbar{position:relative;max-width:520px;margin:0 0 16px}
.searchbar input{width:100%;font-family:var(--sans);font-size:15px;padding:12px 14px 12px 38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.searchbar input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(35,38,43,.2)}
.searchbar svg{position:absolute;left:13px;top:13px;width:17px;height:17px;stroke:var(--muted);fill:none}
.catbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}
.catbar button{font-family:var(--sans);font-size:12.5px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:99px;padding:6px 13px;cursor:pointer;transition:.12s}
.catbar button:hover,.catbar button:focus-visible{border-color:var(--brand);color:var(--brand-ink)}
.catbar button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.catlabel{font-family:var(--sans);font-size:11px;letter-spacing:.06em;text-transform:none;color:var(--muted);margin:24px 2px 12px;display:flex;align-items:center;gap:10px}
.catlabel:after{content:"";flex:1;height:1px;background:var(--line)}
.catlabel:first-child{margin-top:4px}
.toolgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:13px}
.toolcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 17px;cursor:pointer;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex;flex-direction:column;gap:5px;min-height:112px}
.toolcard:hover,.toolcard:focus-visible{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow)}
.toolcard .tc-top{display:flex;justify-content:space-between;align-items:center;gap:6px}
.toolcard .tc-cat{font-family:var(--sans);font-size:9.5px;letter-spacing:.05em;text-transform:none;color:var(--brand);font-weight:500}
.toolcard h3{font-family:var(--sans);font-weight:600;font-size:15.5px;margin:0;letter-spacing:-.01em;line-height:1.25}
.toolcard p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.45;font-family:var(--sans)}
.kind{font-family:var(--sans);font-size:9px;letter-spacing:.03em;text-transform:none;padding:2px 7px;border-radius:99px;white-space:nowrap}
.kind.exact{color:var(--s-op);background:var(--s-op-bg)}
.kind.est{color:#805c08;background:#f6eeda}
.toolcount{font-family:var(--sans);font-size:12px;color:var(--muted)}
.empty{color:var(--muted);font-size:14px;padding:30px 4px}.empty p{margin:0}.empty-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.freshness-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-family:var(--mono);font-size:10px;line-height:1.3}.freshness-badge[data-state="fresh"]{color:var(--s-op);border-color:#cfe3da}.freshness-badge[data-state="stale"]{color:#805c08;background:#f6eeda}.freshness-badge[data-state="empty"],.freshness-badge[data-state="filtered-empty"]{background:var(--soft)}
.backlink{font-family:var(--sans);font-size:12px;color:var(--brand-ink);cursor:pointer;display:inline-flex;align-items:center;gap:5px;margin-bottom:14px}
.backlink:hover,.backlink:focus-visible{text-decoration:underline}
.kindline{display:inline-block;margin:0 0 18px}
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px 14px;margin-bottom:14px}
.toolbar label{font-size:11.5px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.toolbar select,.toolbar input{font-family:var(--sans);font-size:13px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
.toolbar select:focus,.toolbar input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(35,38,43,.2)}
.toolbar .count{margin-left:auto;font-family:var(--sans);font-size:12.5px;color:var(--muted)}
.toolbar .count b{color:var(--ink)}
.mapwrap{position:relative}
#map{height:470px;border:1px solid var(--line);border-radius:var(--radius)}
.map-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:500;color:var(--muted);font-size:13px}
.map-loading[hidden]{display:none}
.map-loading.err{color:var(--s-cancel)}
.mlspin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:mlspin .8s linear infinite}
.map-loading.err .mlspin{display:none}
@keyframes mlspin{to{transform:rotate(360deg)}}
.mltxt{font-family:var(--sans)}
.map-loading .mlretry{margin-top:4px;padding:6px 14px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--brand);font-family:var(--sans);font-size:13px;cursor:pointer}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin:11px 2px 0;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:99px;margin-right:6px;vertical-align:middle}
.legend .lg-head{flex-basis:100%;margin-top:2px;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:.06em;font-size:10px}
.legend .lg-head:first-child{margin-top:0}
.legend .lg-note{flex-basis:100%;margin-top:2px}
table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:14px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line2);font-size:13px}
th{font-family:var(--sans);color:var(--muted);font-weight:500;font-size:10.5px;text-transform:none;letter-spacing:.05em;background:#f9f9f8}
tbody tr{transition:background .12s}tbody tr:hover td,tbody tr:focus-visible td{background:#f3f4f3}
tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right}td.num{font-family:var(--sans);font-variant-numeric:tabular-nums}
.provenance{display:block;margin-top:3px;font-size:10.5px;line-height:1.35;color:var(--muted)}
.provenance a{color:var(--link)}
.provenance .provenance-flag{display:block;color:#805c08}
.pill{font-size:11px;padding:2px 9px;border-radius:99px;color:#fff;white-space:nowrap}
.note{background:#f9f9f8;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;color:var(--muted);font-size:13px;line-height:1.6}
form.signup{display:flex;flex-wrap:wrap;gap:8px;max-width:430px;margin-top:14px}
form.signup input[type="email"]{flex:1;padding:10px 13px;border:1px solid var(--line);border-radius:8px;font-family:var(--sans);font-size:14px}
form.signup input[type="email"]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(35,38,43,.2)}
form.signup button{background:var(--brand);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-family:var(--sans);font-weight:600;cursor:pointer}
 .leaflet-popup-content{font-family:var(--sans);font-size:13px}.pop-name{font-weight:600;margin-bottom:3px}.pop-row{color:var(--muted);font-size:12px}.pop-filter{border:0;background:transparent;color:var(--link);font:inherit;font-weight:600;padding:0;cursor:pointer;text-decoration:underline}
/* status glyph overlaid on each map marker (color+shape+text, not fill hue alone) — strip Leaflet's default tooltip chrome down to plain centered text */
.pm-glyph.leaflet-tooltip{background:none;border:none;box-shadow:none;padding:0;margin:0;color:#fff;font-size:9px;line-height:1;font-weight:700;text-shadow:0 0 1.5px rgba(0,0,0,.7)}
.pm-glyph.leaflet-tooltip:before{display:none}
.signup-note{margin:8px 0 0;max-width:430px;color:var(--muted);font-size:12px;line-height:1.5}
.signup-consent{display:flex;flex-basis:100%;align-items:flex-start;gap:7px;margin-top:1px;color:var(--muted);font-size:12px;line-height:1.45}
.signup-consent input{margin:3px 0 0}
form.signup[aria-disabled="true"]{opacity:.72}
form.signup[aria-disabled="true"] button{cursor:not-allowed;background:var(--muted)}
.calc{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start}
.calc .inputs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.calc .field{margin-bottom:13px}
.calc .field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.calc .field input,.calc .field select{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-family:var(--sans);font-size:15px;font-variant-numeric:tabular-nums;background:#fff;color:var(--ink)}
.calc .field select{font-family:var(--sans);font-size:13.5px}
.calc .field input:focus,.calc .field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(35,38,43,.2)}
.calc .presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.calc .presets button{font-family:var(--sans);font-size:11.5px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 11px;cursor:pointer;color:var(--muted)}
.calc .presets button:hover,.calc .presets button:focus-visible{border-color:var(--brand);color:var(--brand-ink)}
.calc .fieldchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.calc .fieldchip{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:7px;padding:0 12px;min-height:30px;line-height:1;cursor:pointer;transition:border-color .12s,color .12s,background .12s}
.calc .fieldchip:hover,.calc .fieldchip:focus-visible{border-color:var(--brand);color:var(--brand-ink)}
.calc .fieldchip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.calc .fieldslider{margin-top:11px}
.calc .fieldwarn{font-size:11px;color:var(--s-cancel);margin-top:5px}
.calc .fslider{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:99px;background:var(--line);cursor:pointer;outline:none;margin:6px 0}
.calc .fslider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;border-radius:50%;background:#fff;border:2px solid var(--brand);box-shadow:0 1px 2px rgba(20,40,30,.12);cursor:pointer;transition:transform .12s}
.calc .fslider:focus-visible::-webkit-slider-thumb,.calc .fslider:focus-visible::-moz-range-thumb{transform:scale(1.12)}
.calc .fslider::-moz-range-thumb{width:17px;height:17px;border-radius:50%;background:#fff;border:2px solid var(--brand);box-shadow:0 1px 2px rgba(20,40,30,.12);cursor:pointer}
.calc .fslider:focus{box-shadow:0 0 0 3px rgba(35,38,43,.2)}
.calc .fsticks{display:flex;justify-content:space-between;margin-top:4px;font-family:var(--mono);font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.calc .fieldchip,.calc .fslider::-webkit-slider-thumb{transition:none}}
.result{background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.result .big{font-family:var(--sans);font-size:46px;font-weight:700;letter-spacing:-.03em;color:var(--brand-ink);font-variant-numeric:tabular-nums;line-height:1}
.result .big small{font-family:var(--sans);font-size:15px;color:var(--muted);font-weight:500;margin-left:6px}
.result .net{font-size:13.5px;color:var(--muted);margin-top:9px}
.result h4{font-family:var(--sans);margin:0 0 12px;font-size:11px;color:var(--muted);text-transform:none;letter-spacing:.05em;font-weight:500}
.kv{display:grid;grid-template-columns:1fr auto;gap:9px 16px;font-size:14px}
.kv .k{color:var(--muted)}.kv .v{text-align:right;font-family:var(--sans);font-variant-numeric:tabular-nums;font-weight:500}
.bar{display:flex;height:10px;border-radius:99px;overflow:hidden;margin:18px 0 9px}.bar span{display:block;height:100%}
.barleg{display:flex;gap:16px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.barleg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:middle}
.col-list{display:grid;gap:13px;max-width:780px}
.col-card{display:block;width:100%;font:inherit;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;cursor:pointer;transition:border-color .12s,transform .12s,box-shadow .12s}
.col-card:hover,.col-card:focus-visible{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow)}
.col-card h3,.col-card .col-title{display:block;font-family:var(--display);font-weight:500;margin:4px 0 5px;font-size:19px;letter-spacing:-.01em;line-height:1.2}
.col-card .meta{font-family:var(--sans);font-size:11.5px;color:var(--muted);margin-bottom:8px}
.col-card p,.col-card .col-summary{display:block;margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.col-tags{display:block}.col-tags > span{font-family:var(--sans);display:inline-block;font-size:10px;color:var(--brand-ink);background:var(--soft);border-radius:99px;padding:2px 8px;margin-right:5px;text-transform:none;letter-spacing:.04em}
.col-tags span.dr{color:#805c08;background:#f6eeda}
.article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:34px 40px;max-width:720px}
.article h2{font-family:var(--display);font-size:30px;font-weight:500;margin:0 0 10px;letter-spacing:-.02em;line-height:1.18}
.article .meta{font-family:var(--sans);color:var(--muted);font-size:12px;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:16px}
.article p{margin:0 0 16px;line-height:1.8;font-size:15.5px}
.article h4{font-family:var(--display);font-weight:600;margin:26px 0 8px;font-size:18px}
.article .draft{font-family:var(--sans);font-size:10.5px;color:#805c08;background:#f6eeda;border:1px solid #e6dcbe;border-radius:99px;padding:2px 9px;margin-left:8px}
.foot{margin-top:30px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:11.5px;line-height:1.7;max-width:780px}
/* data sections */
.fresh{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin:-10px 0 16px}
.layerbar{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap;align-items:center}
.lchip{font-family:var(--sans);font-size:13px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:99px;padding:7px 14px;cursor:pointer;display:flex;align-items:center;gap:7px}
.lchip:hover,.lchip:focus-visible{border-color:var(--brand)}
.lchip.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.fresh .d{width:7px;height:7px;border-radius:99px;background:var(--s-op)}
.fresh[data-state="stale"] .d,.fresh[data-state="partial"] .d,.dfresh[data-state="stale"]:before{background:var(--s-feas)}.fresh[data-state="blocked"] .d,.fresh[data-state="error"] .d,.dfresh[data-state="blocked"]:before,.dfresh[data-state="error"]:before{background:var(--s-cancel)}
.agg{display:flex;gap:0;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 6px;margin-bottom:14px}
.agg .a{display:flex;flex-direction:column;gap:2px;padding:2px 20px;border-right:1px solid var(--line2)}
.agg .a:last-child{border-right:0}
.agg .a .n{font-size:23px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.agg .a .n small{font-size:13px;color:var(--muted);font-weight:500}
.agg .a .l{font-size:11.5px;color:var(--muted)}
 .clickrow{cursor:pointer}
 .clickrow:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
 .cell-ellipsis{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .spill{font-size:10.5px;padding:2px 9px;border-radius:99px;font-weight:600;white-space:nowrap}
 .flag-badge{color:var(--s-cancel);background:var(--s-cancel-bg);margin-right:5px;display:inline-block}
.relpill{font-size:10px;padding:1px 7px;border-radius:99px;font-weight:600}
 .rel-high{color:var(--s-op);background:var(--s-op-bg)}.rel-medium{color:var(--s-feas);background:var(--s-feas-bg)}.rel-low{color:var(--s-dorm);background:var(--soft)}
.acc{font-size:10.5px;padding:1px 8px;border-radius:99px;font-weight:600;white-space:nowrap}
 .acc-free{color:var(--s-op);background:var(--s-op-bg)}.acc-pay{color:var(--s-feas);background:var(--s-feas-bg)}.acc-none{color:var(--s-dorm);background:var(--soft)}
.morebtn{font-size:12.5px;color:var(--brand-ink);cursor:pointer;margin-top:12px;display:inline-block}
.exp{font-family:var(--sans);font-size:12px;font-weight:500;border:1px solid var(--line);background:#fff;color:var(--brand-ink);border-radius:7px;padding:6px 12px;cursor:pointer;margin-left:10px;white-space:nowrap}
.exp:hover,.exp:focus-visible{border-color:var(--brand);background:var(--soft)}
/* intel cards (home) */
.intel{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:20px 0}
.intel a{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;display:flex;flex-direction:column;gap:5px;transition:border-color .12s,transform .12s,box-shadow .12s;text-decoration:none;color:var(--ink)}
.intel a:hover,.intel a:focus-visible{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow);text-decoration:none}
.intel .ik{font-size:10.5px;letter-spacing:.05em;text-transform:none;color:var(--brand);font-weight:600}
.intel .it{font-size:14px;font-weight:600;line-height:1.3}
.intel .ip{font-size:12.5px;color:var(--muted);line-height:1.45}
.intel-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}.intel-card .latest-open{align-self:flex-start;min-height:44px;border:0;background:transparent;color:var(--brand-ink);font-family:var(--sans);font-size:13px;font-weight:600;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.intel-card .latest-open:hover,.intel-card .latest-open:focus-visible{text-decoration-thickness:2px}.intel-card .imeta{font-family:var(--mono);font-size:10.5px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}.intel-card .istate{align-self:flex-start;padding:3px 6px;background:#f1efe7;color:var(--muted);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:none}.intel-card .istate[data-state="fresh"],.intel-card .istate[data-state="recovered"]{background:#e3f3ea;color:#0f684a}.intel-card .istate[data-state="stale"],.intel-card .istate[data-state="partial"],.intel-card .istate[data-state="unchecked"],.intel-card .istate[data-state="paywall"]{background:#faf3e3;color:#8a5a12}.intel-card .istate[data-state="blocked"],.intel-card .istate[data-state="error"]{background:#fae7e3;color:#9d3c31}
/* drawer */
.drawer-bg{position:fixed;inset:0;background:rgba(18,28,22,.28);z-index:3000;opacity:0;pointer-events:none;transition:opacity .2s}
.drawer-bg.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(860px,96vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:-16px 0 50px rgba(20,40,30,.14);z-index:3001;transform:translateX(100%);transition:transform .24s cubic-bezier(.4,0,.2,1);overflow:auto;padding:30px 32px}
.drawer.on{transform:none}
.drawer .x{position:absolute;top:9px;right:14px;cursor:pointer;color:var(--muted);font-size:24px;line-height:1;background:none;border:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px}
.drawer .x:hover,.drawer .x:focus-visible{background:var(--soft);color:var(--ink)}
.drawer h2{font-size:20px;font-weight:600;letter-spacing:-.01em;margin:0 48px 5px 0;line-height:1.3}
.drawer .dsub{color:var(--muted);font-size:13px;margin-bottom:20px}
.drawer h2,.drawer .dsub,.planbox span,.evidencebox,.evidence-note{overflow-wrap:anywhere}
.dl{display:grid;gap:15px}
.dl .di .dk{font-size:10.5px;text-transform:none;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}
.dl .di .dv{font-size:14px;line-height:1.6}
.dl .di.imp{background:var(--soft);border-radius:8px;padding:13px 15px}
.dl .di.imp .dk{color:var(--brand-ink)}
.drawer .dsrc{margin-top:20px;display:inline-block;font-weight:600;color:var(--brand-ink)}
.drelated{margin-top:18px;padding-top:16px;border-top:1px solid var(--line2);font-size:13px;color:var(--muted);line-height:1.6}
.drelated a,.rellink{color:var(--brand-ink);font-weight:600;cursor:pointer}
.view-details{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:#fff!important;font-weight:600;text-decoration:none!important}
.view-details:hover,.view-details:focus-visible{background:var(--brand-ink)}
.rellink{font-size:13px;font-family:var(--sans);border:0;background:none;padding:0;text-align:left}.rellink:hover,.rellink:focus-visible,.drelated a:hover,.drelated a:focus-visible{text-decoration:underline}
.verdictrow{border:1px solid var(--line,#d8dee6);border-left:3px solid var(--brand-ink,#000);background:#f7f9fc;padding:9px 12px;margin:0 0 12px;font-size:13px;line-height:1.6}
.verdictrow b{margin-right:6px}
.verdict-stage{font-weight:700;color:var(--brand-ink,#000)}
.verdict-meta{color:var(--muted);margin-left:8px;font-size:12px;white-space:nowrap}
.verdict-tracker{color:var(--muted);font-size:12px;margin-top:4px}
.verdict-none{border-left-color:#b6bec9;color:var(--muted)}
/* Inline evidence quote: the analyst sentence behind the verdict, kept next to the judgement it
   supports and excluded from the copy payload via data-nocopy. */
.dq{margin:9px 0 0;padding:0 0 0 11px;border-left:2px solid var(--line);color:var(--ink)}
.dq p{margin:0;font-size:13px;line-height:1.6}
.dq p:before{content:"“"}.dq p:after{content:"”"}
.dq cite{display:block;margin-top:4px;font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
/* Record-level data layer: which tier of the ledger the shown values come from, and as of when. */
.provrow{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin:0 0 12px;padding:9px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.provrow .prov-k{font-family:var(--mono);font-size:10px;text-transform:none;letter-spacing:.05em;color:var(--muted)}
.provrow .prov-v{display:flex;gap:12px;flex-wrap:wrap;align-items:baseline;font-family:var(--mono);font-size:11px;color:var(--muted);min-width:0}
.provrow .prov-tier{font-weight:600;color:var(--ink)}
.provrow .prov-tier[data-tier="source_claim"],.provrow .prov-tier[data-tier="missing"]{color:var(--s-feas)}
.provrow .prov-id{opacity:.7;overflow-wrap:anywhere}
.provrow .prov-precision[data-low]{color:var(--s-feas)}
.cprov{display:block;margin-top:5px;font-family:var(--mono);font-size:10px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}.cprov a{white-space:nowrap}
.drawer-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.copyev{min-height:38px;padding:8px 14px;border:1px solid var(--ink);border-radius:3px;background:transparent;color:var(--ink);font:600 12.5px var(--sans);cursor:pointer}
.copyev:hover,.copyev:focus-visible{background:var(--ink);color:var(--surface)}
.copyev-note{font-family:var(--mono);font-size:10px;color:var(--muted);flex:1 1 200px;min-width:0}
#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);z-index:4000;max-width:min(520px,92vw);padding:11px 16px;background:var(--ink);color:#fff;font-size:13px;line-height:1.45;border-radius:4px;box-shadow:0 8px 26px rgba(18,22,25,.22);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}
#toast.on{opacity:1;transform:translate(-50%,0)}
#toast.toast-err{background:var(--s-cancel)}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}
.trustrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:11px 0 18px}
.trustpill{font-size:11px;font-weight:700;border-radius:99px;padding:3px 9px;white-space:nowrap}
.trust-official_confirmed{color:var(--s-op);background:var(--s-op-bg)}
.trust-partner_supported{color:#245d91;background:#e7f0fa}
.trust-media_reported,.trust-cross_reported{color:#805c08;background:#f6eeda}
.trust-tracker_only,.trust-unconfirmed{color:#5f6761;background:#eeeeea}
.trust-conflicting{color:var(--s-cancel);background:var(--s-cancel-bg)}
.planstrip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
.planbox{border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#f9f9f8}
.planbox b{display:block;font-size:12px;margin-bottom:3px}
.planbox span{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.claimgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.claim{border:1px solid var(--line2);border-radius:8px;padding:11px 12px;background:#fff;min-width:0}
.claim .ck{font-size:10.5px;text-transform:none;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}
.claim .cv{font-size:14px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.claim .cl{margin-top:8px}
.evidencebox{margin-top:18px;border-top:1px solid var(--line2);padding-top:16px;color:var(--muted);font-size:13px;line-height:1.6}
.evidencebox a{font-weight:700;color:var(--brand-ink)}
.evidence-note{margin-top:10px;background:#f9f9f8;border:1px solid var(--line2);border-radius:8px;padding:10px 12px;color:var(--muted);font-size:12.5px;line-height:1.55}
@media(max-width:760px){.drawer{left:0;right:0;width:100vw;max-width:100vw;padding:26px 20px}.planstrip,.claimgrid{grid-template-columns:1fr}.trustpill,.acc{white-space:normal}main{overflow-x:hidden}table{display:block;overflow-x:auto}.decision-form{grid-template-columns:1fr}.decision-record:nth-child(odd){border-right:0}.decision-results{grid-template-columns:1fr}}
@media(max-width:760px){table:not(.table-stack){display:block;overflow-x:auto}}
@media(max-width:760px){.app{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;min-width:0}
 header{grid-column:1}
 nav{position:fixed;top:0;left:0;height:100%;width:min(280px,82vw);z-index:3001;transform:translateX(-100%);transition:transform .24s cubic-bezier(.4,0,.2,1),visibility .24s;box-shadow:16px 0 50px rgba(20,40,30,.14);overflow:auto;visibility:hidden}
 nav.open{transform:none;visibility:visible}
 .navtoggle{display:inline-flex;align-items:center}
 header{flex-wrap:wrap;gap:10px;padding:0 16px;height:auto;min-height:58px}
 .hchip{display:none}
 header .cta{padding:7px 12px;font-size:12.5px}
 main{padding:24px 16px;min-width:0}
 .page{min-width:0}
 .calc{grid-template-columns:1fr}.calc .inputs,.calc .result{min-width:0}.hero h1{font-size:32px}.tagline{display:none}.intel{grid-template-columns:1fr}
 .calc .fieldchip{min-height:40px;font-size:13px;padding:0 14px}.calc .fslider{height:6px}.calc .fslider::-webkit-slider-thumb{width:26px;height:26px}.calc .fslider::-moz-range-thumb{width:26px;height:26px}}
@media(max-width:760px) and (prefers-reduced-motion:reduce){nav{transition:none}}
/* lcoh-invest: cash flow + tornado */
.cf-wrap{position:relative;height:120px;margin:14px 0 4px;display:flex;align-items:stretch;gap:0}
.cf-base{position:absolute;left:0;right:0;top:60px;height:1px;background:var(--line);z-index:1}
.cf-col{position:relative;flex:1;min-width:0}
.cf-bar{position:absolute;left:1px;right:1px;border-radius:2px 2px 0 0}
.cf-bar.pos{bottom:60px}
.cf-bar.neg{top:60px;border-radius:0 0 2px 2px}
.cf-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}
.cf-pay{position:absolute;top:0;bottom:0;border-left:1.5px dashed var(--brand-ink);z-index:3}
.cf-axis{display:flex;font-family:var(--mono);font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:8px}
.cf-axis span{flex:1;min-width:0;text-align:center;overflow:hidden}
.tor-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12px}
.tor-lab{width:104px;color:var(--muted);flex-shrink:0}
.tor-track{position:relative;flex:1;height:18px;background:var(--line2);border-radius:4px}
.tor-seg{position:absolute;top:0;bottom:0}
.tor-base{position:absolute;top:0;bottom:0;width:1.5px;background:var(--ink);z-index:2}
.tor-sw{width:90px;text-align:right;flex-shrink:0;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted)}
/* ===== UX quick wins (additive) ===== */
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 4px}
.hero-cta button{font-family:var(--sans);font-size:14px;font-weight:600;border-radius:9px;padding:11px 20px;cursor:pointer;transition:background .12s,border-color .12s}
.hero-cta .primary{background:var(--brand);color:#fff;border:1px solid var(--brand)}
.hero-cta .primary:hover,.hero-cta .primary:focus-visible{background:var(--brand-ink);border-color:var(--brand-ink)}
.hero-cta .secondary{background:var(--surface);color:var(--brand-ink);border:1px solid var(--line)}
.hero-cta .secondary:hover,.hero-cta .secondary:focus-visible{border-color:var(--brand);background:var(--soft)}
.calc .result{position:sticky;top:20px}
.cf-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:4px 0 0}
.cf-leg span{display:inline-flex;align-items:center}
.cf-leg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle}
.cf-leg i.ln{width:14px;height:0;border-top:1.5px solid var(--brand-ink);border-radius:0}
.cf-leg i.dl{width:14px;height:0;border-top:1.5px dashed var(--brand-ink);border-radius:0}
.news-vals{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:8px;max-width:560px}
.news-vals li{position:relative;padding-left:20px;font-size:13.5px;color:var(--ink);line-height:1.5}
.news-vals li:before{content:"";position:absolute;left:2px;top:8px;width:7px;height:7px;border-radius:99px;background:var(--brand)}
.news-cadence{font-size:12.5px;color:var(--muted);margin-top:12px}
/* focus visibility (keyboard) */
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,.fieldchip:focus-visible,.fslider:focus-visible,.backlink:focus-visible,.toolcard:focus-visible,.lchip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* skip-link: keyboard users otherwise tab through the full 14-item sidebar nav before reaching #main */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--brand);color:#fff;font-family:var(--sans);font-size:14px;font-weight:600;padding:10px 16px;border-radius:0 0 6px 0}
.skip-link:focus{left:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.langsel:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-color:var(--brand)}
@media(max-width:760px){
 .calc .result{position:static;top:auto}
 .calc .field input,.calc .field select,.toolbar input,.toolbar select,.searchbar input,form.signup input,.langsel{font-size:16px}
}
/* ===== Mobile-only improvements (Phase 1 + 2a) — all ≤760; desktop untouched ===== */
.mob-summary{display:none}
@media(max-width:760px){
 /* P1.1 toolbar select clipping → stack full-width inside the card */
 .toolbar{flex-direction:column;align-items:stretch}
 .toolbar label{min-width:0;max-width:100%}
 .toolbar select,.toolbar input{max-width:100%;width:100%}
 .toolbar .count{margin-left:0}
 /* P1.2 newsletter button no longer clipped on ≤360 */
 form.signup{flex-wrap:wrap}
 form.signup input{min-width:0;flex:1 1 auto}
 form.signup button{flex:1 1 auto}
 /* P1.3 44px tap targets (hit area only; icon/visual size unchanged) */
 .navtoggle{min-width:44px;min-height:44px;justify-content:center}
 nav button{min-height:44px;padding-top:11px;padding-bottom:11px}
 .catbar button{min-height:44px}
 .exp{min-height:44px}
 /* G4 ⑥ 44px touch target sweep: header controls, filters, chips, map controls, drawer links.
    Hit area only — type size, padding rhythm and swatch sizes are unchanged. */
 .langsel,header .cta{min-height:44px}
 .toolbar select,.toolbar input{min-height:44px}
 .matchip,#pg-map .matchip{min-height:44px}
 .map-loading .mlretry,.analytics-consent button{min-height:44px}
 .searchbar input{min-height:44px}
 .drawer .dsrc,.evidencebox a,.verdictrow a,.drelated a,.provrow a,.dq cite a,.copyev{min-height:44px;display:inline-flex;align-items:center}
 /* P1.6 horizontal-scroll table: right/left fade hints "more columns" */
 table{background-image:linear-gradient(to right,var(--surface),rgba(255,255,255,0)),linear-gradient(to left,var(--surface),rgba(255,255,255,0)),linear-gradient(to right,rgba(20,40,30,.12),rgba(20,40,30,0)),linear-gradient(to left,rgba(20,40,30,.12),rgba(20,40,30,0));background-position:left center,right center,left center,right center;background-repeat:no-repeat;background-size:18px 100%,18px 100%,10px 100%,10px 100%;background-attachment:local,local,scroll,scroll}
 /* P2a mobile sticky result summary bar */
 .mob-summary{display:block;position:sticky;top:0;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 10px rgba(25,29,33,.10);padding:10px 14px;margin:0 0 14px}
 .mob-summary .ms-val{font-family:var(--sans);font-size:23px;font-weight:700;color:var(--brand-ink);font-variant-numeric:tabular-nums;line-height:1.1}
 .mob-summary .ms-val small{font-size:12px;color:var(--muted);font-weight:500;margin-left:4px}
 .mob-summary .ms-kpis{display:flex;gap:18px;margin-top:6px;flex-wrap:wrap}
 .mob-summary .ms-kpi{font-size:10.5px;color:var(--muted);text-transform:none;letter-spacing:.04em}
 .mob-summary .ms-kpi b{display:block;font-size:14px;color:var(--ink);font-weight:600;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}
}
/* ===== LCOH mode toggle + advanced settings (additive) ===== */
.modeseg{display:flex;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:4px;margin:0 0 8px}
.modeseg button{flex:1 1 0;min-width:0;min-height:38px;border:0;background:none;border-radius:99px;font-family:var(--sans);font-size:13px;color:var(--muted);cursor:pointer;transition:background .12s,color .12s}
.modeseg button:hover,.modeseg button:focus-visible{color:var(--brand-ink)}
.modeseg button.on{background:var(--brand);color:#fff}
.modesub{font-size:12px;color:var(--muted);margin:0 0 16px;line-height:1.5}
.modesub .modealllink{color:var(--brand-ink);cursor:pointer;font-weight:500;white-space:nowrap}
.modesub .modealllink:hover,.modesub .modealllink:focus-visible{text-decoration:underline}
.advtoggle{font-family:var(--sans);font-size:12.5px;color:var(--muted);background:none;border:0;cursor:pointer;padding:6px 0;margin-top:2px}
.advtoggle:hover,.advtoggle:focus-visible{color:var(--brand-ink)}
.advgroup{margin-top:6px;padding-top:10px;border-top:1px dashed var(--line)}
@media(max-width:760px){.modeseg button{min-height:44px}.advtoggle{min-height:44px}}
/* ===== Project maturity / attrition tracker (additive) ===== */
.matstrip{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.matstrip .mlab{font-family:var(--sans);font-size:11px;letter-spacing:.06em;text-transform:none;color:var(--muted);margin-right:3px}
.matchip{font-family:var(--sans);font-size:12.5px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:99px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;min-height:32px;transition:border-color .12s,background .12s}
.matchip:hover,.matchip:focus-visible{border-color:var(--brand)}
.matchip.on{border-color:var(--brand);background:var(--soft)}
.matchip .dot{width:9px;height:9px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:6px;line-height:1;font-weight:700}
.matchip .mc-n{font-weight:700;font-variant-numeric:tabular-nums}
.matchip .mc-l{color:var(--muted)}
.matchip.on .mc-l{color:var(--brand-ink)}
.matwrap{margin:0 0 18px}
.matwrap .mk{font-family:var(--sans);font-size:10.5px;text-transform:none;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}
.matbar{display:flex;gap:6px}
.matbar .step{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.matbar .step .track{height:6px;border-radius:99px;background:var(--line)}
.matbar .step.done .track{background:var(--st-track,var(--brand));opacity:.45}
.matbar .step.cur .track{background:var(--st-track,var(--brand))}
.matbar .step .slab{font-family:var(--sans);font-size:10px;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.matbar .step.cur .slab{color:var(--brand-ink);font-weight:600}
.matbar .step.done .slab{color:var(--ink)}
.matbadge{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:13px;font-weight:600;border-radius:8px;padding:9px 13px}
.matbadge .dot{width:8px;height:8px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:6px;line-height:1;font-weight:700}
.matbadge.mat-cancel{color:var(--s-cancel);background:var(--s-cancel-bg)}
.matbadge.mat-cancel .dot{background:var(--s-cancel)}
.matbadge.mat-decom{color:var(--st-decom);background:var(--st-decom-bg)}
.matbadge.mat-decom .dot{background:var(--st-decom)}
.matbadge.mat-hold,.matbadge.mat-dormant{color:#5f6761;background:#eeeeea}
.matbadge.mat-hold .dot,.matbadge.mat-dormant .dot{background:var(--s-dorm)}
.matnote{font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:7px}
@media(max-width:760px){.matchip{min-height:44px}.matbar .step .slab{font-size:9px}}
/* ===== Subsidy-gap benchmark (feature ②, additive) ===== */
.mechbadge{font-family:var(--sans);font-size:10px;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap;display:inline-block;border:1px solid currentColor;line-height:1.5}
.compflag{font-family:var(--sans);font-size:9.5px;color:var(--muted);margin-left:6px;white-space:nowrap}
.kgtag{font-family:var(--sans);font-size:9px;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:1px 6px;margin-left:6px;white-space:nowrap;letter-spacing:.02em;text-transform:none;font-weight:500}
.bm-table td{vertical-align:middle}
.bm-table tr.bm-sel td{background:var(--soft)!important}
.bm-mine{font-family:var(--sans);font-size:10px;font-weight:600;color:var(--brand-ink)}
.bm-judge{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:13px;font-weight:600;border-radius:8px;padding:7px 11px;line-height:1.35}
.bm-judge .dot{width:8px;height:8px;border-radius:99px;display:inline-block;flex-shrink:0}
/* ===== Installed-CAPEX benchmark (feature ④, additive) ===== */
.bm-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--s-op);background:var(--s-op-bg);border:1px solid var(--s-op);border-radius:99px;padding:5px 12px;margin-bottom:6px}
.bm-badge .dot{width:8px;height:8px;border-radius:99px;background:var(--s-op);display:inline-block}
.bm-rows{display:flex;flex-direction:column;gap:9px;margin:6px 0 14px}
 .bm-row{display:grid;grid-template-columns:var(--bm-grid-cols);gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 15px;transition:border-color .12s}
.bm-row:hover,.bm-row:focus-visible{border-color:var(--brand)}
.bm-row.bm-totalrow{background:#f9f9f8;border-color:var(--brand)}
.bm-lbl{min-width:0}
.bm-lbl b{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink);display:block;line-height:1.25}
.bm-lbl .bm-desc{font-family:var(--sans);font-size:10.5px;color:var(--muted);line-height:1.35;margin-top:3px}
.bm-lbl .bm-est{color:var(--s-dorm);font-style:italic}
/* band track: reuse .bar look; a translucent min–max track + a central median line */
.bm-track{position:relative;height:14px;border-radius:99px;background:var(--line);overflow:hidden}
.bm-track .bm-fill{position:absolute;top:0;bottom:0;border-radius:99px;opacity:.5}
.bm-track.bm-est .bm-fill{opacity:.28;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(255,255,255,.5) 3px,rgba(255,255,255,.5) 6px)}
.bm-track .bm-med{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink)}
.bm-track .bm-marker{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:11px;color:var(--s-cancel);line-height:1;z-index:2}
.bm-vals{font-family:var(--mono);font-size:11.5px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;line-height:1.4}
.bm-vals .bm-pct{color:var(--muted);font-size:10.5px}
.bm-vals .bm-tilde{color:var(--s-dorm)}
 .bm-scale{font-family:var(--mono);font-size:10px;color:var(--muted);display:grid;grid-template-columns:var(--bm-grid-cols);gap:14px;margin:2px 0 0}.bm-scale-values{grid-column:2;display:flex;justify-content:space-between}
.bm-src{font-family:var(--sans);font-size:10.5px;color:var(--muted);margin-top:2px}
.bm-src a{color:var(--link)}
/* sanity-check band-bar (calculator result) */
.bm-bandbar{position:relative;height:18px;border-radius:99px;background:var(--line);overflow:visible;margin:16px 0 8px}
.bm-bandbar .bm-fill{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--soft);border:1px solid var(--brand);opacity:.85}
.bm-bandbar .bm-med{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--brand-ink)}
.bm-bandbar .bm-marker{position:absolute;top:50%;transform:translate(-50%,-50%);color:var(--s-cancel);font-size:15px;line-height:1;z-index:3}
.bm-bandticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.bm-warn{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:13px;font-weight:600;border-radius:8px;padding:7px 11px;line-height:1.35;margin-top:4px}
 .bm-warn.ok{color:var(--s-op);background:var(--s-op-bg)}
 .bm-warn.amber{color:var(--s-feas);background:var(--s-feas-bg)}
.bm-warn .dot{width:8px;height:8px;border-radius:99px;display:inline-block;flex-shrink:0}
.bm-mini{display:grid;grid-template-columns:120px 1fr 92px;gap:10px;align-items:center;margin:7px 0;font-size:12px}
.bm-mini .bm-mlbl{color:var(--muted);font-family:var(--sans);font-size:11.5px}
.bm-acc{margin-top:5px}
.bm-acc summary{cursor:pointer;font-family:var(--sans);font-size:10.5px;color:var(--muted);list-style:none}
.bm-acc summary::-webkit-details-marker{display:none}
.bm-acc summary:hover,.bm-acc summary:focus-visible{color:var(--brand-ink)}
.bm-acc .bm-subline{font-family:var(--sans);font-size:11px;color:var(--s-dorm);padding:4px 0 2px 14px;display:flex;justify-content:space-between}
.bm-acc .bm-collect{font-size:9px;text-transform:none;letter-spacing:.04em;color:var(--s-dorm);border:1px solid var(--line);border-radius:99px;padding:1px 7px}
@media(max-width:760px){
 .bm-row{grid-template-columns:1fr;gap:8px}
 .bm-vals{text-align:left}
 .bm-scale{display:none}
 .bm-mini{grid-template-columns:1fr}
}
/* S5 evidence ledger workbench */
.wb-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);gap:24px;align-items:end;margin-bottom:22px}.wb-head h1{font-family:var(--display);font-size:38px;font-weight:500;letter-spacing:-.03em;line-height:1.06;margin:0 0 10px}.wb-head p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.wb-kicker{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:none;color:var(--brand);margin-bottom:10px}.wb-side-note{font-size:13px!important;max-width:330px;padding-bottom:2px}.wb-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 12px}.wb-action{min-height:70px;border:0;border-right:1px solid var(--line);background:transparent;padding:12px 15px;text-align:left;color:var(--ink);font-family:var(--sans);cursor:pointer}.wb-action:last-child{border-right:0}.wb-action:hover{background:var(--surface)}.wb-action b{display:block;font-size:13px;line-height:1.3}.wb-action span{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:3px}.wb-coverage{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:10px 0;color:var(--muted);font-size:12px}.wb-coverage b{color:var(--ink)}.wb-section-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin:22px 0 9px}.wb-section-head h2{font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:-.01em;margin:0}.wb-section-head p{margin:0;color:var(--muted);font-size:12px}.wb-ledger{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);min-width:0}.wb-ledger-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.32fr);gap:12px;padding:9px 12px;background:#ececec;color:var(--muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:none}.wb-record{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.32fr);gap:12px;align-items:stretch;border-top:1px solid var(--line);min-width:0}.wb-select{display:grid;grid-template-columns:minmax(116px,.8fr) minmax(0,2.1fr) minmax(150px,.95fr);gap:12px;width:100%;min-height:108px;border:0;background:transparent;padding:13px 12px;text-align:left;color:var(--ink);font-family:var(--sans);cursor:pointer;min-width:0}.wb-select:hover,.wb-select[aria-pressed="true"]{background:var(--soft)}.wb-select[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--brand)}.wb-cell{min-width:0;overflow-wrap:anywhere}.wb-region{font-size:13px;font-weight:600}.wb-region small,.wb-program small{display:block;margin-top:4px;color:var(--muted);font-family:var(--mono);font-size:10.5px;font-weight:400;line-height:1.35}.wb-program{font-size:13px;font-weight:600;line-height:1.35}.wb-support{font-size:12px;color:var(--muted);line-height:1.45}.wb-meta{display:flex;flex-wrap:wrap;gap:5px;align-content:start;font-size:11.5px;line-height:1.35}.wb-tag{display:inline-block;padding:3px 5px;background:#ececec;color:var(--muted);overflow-wrap:anywhere}.wb-state-confirmed{background:var(--s-op-bg);color:var(--s-op);font-weight:700;text-transform:none}.wb-state-unknown{background:#f6eeda;color:#9a6b00;font-weight:700;text-transform:none}.wb-state-conflict{background:var(--s-cancel-bg);color:var(--s-cancel);font-weight:700;text-transform:none}.wb-source{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:44px;border-left:1px solid var(--line);padding:12px;color:var(--brand-ink);font-size:12px;line-height:1.35;text-decoration:none}.wb-source:hover{background:#e7f0fa}.wb-source span{color:var(--muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:none}.wb-source strong{font-size:12.5px}.wb-source small{font-size:11.5px}.wb-watch{display:grid;grid-template-columns:1fr;gap:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.wb-watch-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(185px,.3fr);gap:12px;padding:13px 0;border-top:1px solid var(--line)}.wb-watch-row:first-child{border-top:0}.wb-watch-copy{min-width:0}.wb-watch-meta{display:flex;gap:5px;flex-wrap:wrap;font-size:11.5px}.wb-watch h3{font-family:var(--sans);font-size:14px;line-height:1.3;margin:8px 0 4px}.wb-watch p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.45;overflow-wrap:anywhere}.wb-watch .wb-source{border-left:0;padding:0;align-self:stretch}.wb-policy-layout{display:grid;grid-template-columns:minmax(0,13fr) minmax(280px,7fr);gap:18px;align-items:start;margin-top:18px;min-width:0}.wb-policy-layout .wb-select{grid-template-columns:minmax(105px,.72fr) minmax(0,1.8fr) minmax(145px,.92fr);min-height:116px}.wb-inspector{position:sticky;top:12px;min-width:0;background:var(--surface);border-top:3px solid var(--s-con);padding:18px}.wb-inspector.error{border-color:var(--s-cancel)}.wb-inspector-kicker{display:block;color:var(--muted);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:none;margin-bottom:5px}.wb-inspector h2{font-family:var(--display);font-size:23px;font-weight:500;line-height:1.18;letter-spacing:-.025em;margin:0 0 9px;overflow-wrap:anywhere}.wb-inspector-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:18px;font-size:11.5px}.wb-block{border-top:1px solid var(--line);padding:13px 0}.wb-block:last-child{padding-bottom:0}.wb-block h3{color:var(--muted);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:none;margin:0 0 5px}.wb-block p{font-size:13px;line-height:1.55;margin:0;overflow-wrap:anywhere}.wb-source-link,.wb-related-link{display:inline-flex;align-items:center;min-height:44px;color:var(--brand-ink);font-size:13px;font-weight:600}.wb-back{display:none;align-items:center;min-height:44px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--ink);padding:0 11px;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;margin-bottom:12px}.wb-empty,.wb-loading,.wb-error{padding:28px 16px;color:var(--muted);font-size:14px;text-align:center}.wb-empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:6px}.wb-loading i{display:block;height:12px;background:#e6e2d8;margin:12px 0}.wb-loading i:nth-child(2){width:72%;margin-left:auto;margin-right:auto}.wb-error{border-left:3px solid var(--s-cancel);background:#f9e9e6;color:#642e26;text-align:left}.wb-error button{min-height:44px;border:1px solid #d5a49c;border-radius:5px;background:transparent;color:#642e26;font-family:var(--sans);font-weight:600;padding:0 12px;margin-top:10px;cursor:pointer}.wb-toolbar{border-top:2px solid var(--ink)!important;border-radius:0!important;border-left:0!important;border-right:0!important;padding:12px 0!important}.wb-toolbar .exp{margin-left:0}.wb-policy-error{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;padding:10px 12px;border-left:3px solid var(--s-cancel);background:#f9e9e6;color:#642e26;font-size:13px}.wb-policy-error button{min-height:44px;border:1px solid #d5a49c;border-radius:5px;background:transparent;color:#642e26;font-family:var(--sans);font-weight:600;padding:0 12px;cursor:pointer}
 .wb-state-needs-review{background:#f6eeda;color:#805c08;font-weight:700;text-transform:none}
 .wb-related-empty{color:var(--muted);font-size:13px;line-height:1.55;margin:0}
@media(max-width:980px){.wb-head{grid-template-columns:1fr}.wb-side-note{max-width:680px}.wb-policy-layout{grid-template-columns:minmax(0,3fr) minmax(250px,2fr);gap:12px}.wb-policy-layout .wb-record{display:block}.wb-policy-layout .wb-select{display:block;min-height:44px}.wb-policy-layout .wb-cell{margin-top:9px}.wb-policy-layout .wb-region{margin-top:0}.wb-policy-layout .wb-support{display:none}.wb-policy-layout .wb-meta{display:flex;margin-top:10px}.wb-policy-layout .wb-source{border-left:0;border-top:1px solid var(--line);padding:11px 12px}.wb-select{grid-template-columns:minmax(105px,.78fr) minmax(0,2fr)}.wb-support{display:none}.wb-meta{grid-column:1/-1}}
@media(max-width:760px){.wb-head h1{font-size:32px}.wb-actions{grid-template-columns:1fr}.wb-action{border-right:0;border-bottom:1px solid var(--line);min-height:66px}.wb-action:last-child{border-bottom:0}.wb-ledger-head{display:none}.wb-record,.wb-policy-layout .wb-record{display:block}.wb-select,.wb-policy-layout .wb-select{display:block;min-height:44px;padding:14px 12px}.wb-cell{margin-top:9px}.wb-region{margin-top:0}.wb-support{display:block;font-size:12.5px}.wb-meta{display:flex;margin-top:10px}.wb-source{border-left:0;border-top:1px solid var(--line);padding:11px 12px}.wb-watch-row{grid-template-columns:minmax(0,1fr) minmax(116px,.42fr)}.wb-watch .wb-source{padding-left:6px}.wb-policy-layout{grid-template-columns:1fr;gap:12px}.wb-inspector{position:static;padding:16px}.wb-inspector h2{font-size:24px}.wb-back{display:inline-flex}.wb-policy-error{align-items:flex-start;flex-direction:column}.wb-policy-error button{width:100%}}
header .langsel,header .cta,nav button,.navtoggle{min-height:44px}header .cta{display:inline-flex;align-items:center;justify-content:center}nav button{display:flex}.wb-toolbar input,.wb-toolbar select,.wb-toolbar .exp{min-height:46px}.wb-source strong{overflow-wrap:anywhere}
.wb-source-link{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;overflow-wrap:anywhere}.wb-source-link span{color:var(--muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:none}.wb-source-link strong{overflow-wrap:anywhere}#pg-home .foot a,#pg-policy .foot a{display:inline-flex;align-items:center;min-height:44px}#pol-inspector-title:focus{outline:2px solid var(--brand);outline-offset:3px}
 /* home hero dot field */
.homefield{position:relative;margin:-30px -34px 22px;padding:34px 34px 16px;background:#eceeec;border-bottom:1px solid var(--line);overflow:hidden}
.homefield .wb-head{position:relative;z-index:1;margin-bottom:16px}
.hf-dots{position:absolute;inset:0;z-index:0}
.hf-dot{position:absolute;border-radius:99px}
.hf-legend{position:relative;z-index:1;display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--muted)}
.hf-legend i{display:inline-flex;align-items:center;justify-content:center;width:8px;height:8px;border-radius:99px;margin-right:6px;vertical-align:-1px;color:#fff;font-size:6px;font-style:normal;font-weight:700;line-height:1}
.hf-legend b{color:var(--ink);font-weight:600}
@media(max-width:760px){.homefield{margin:-30px -16px 18px;padding:26px 16px 12px}.hf-dots{opacity:.4;-webkit-mask-image:linear-gradient(180deg,transparent 0 62%,#000 96%);mask-image:linear-gradient(180deg,transparent 0 62%,#000 96%)}}
/* ===== B3 detail-surface consolidation: evidence workbench, not SaaS dashboard ===== */
:root{--radius:4px;--shadow:none}
/* T17 design QA: status/freshness chips must never break mid-word. */
.wb-tag,.dfresh,.hchip{white-space:nowrap}
/* T17 design QA: keep the home dot field clear of the headline and body copy. */
.hf-dots{-webkit-mask-image:linear-gradient(90deg,transparent 0 54%,#000 60% 66%,transparent 72% 100%);mask-image:linear-gradient(90deg,transparent 0 54%,#000 60% 66%,transparent 72% 100%)}

.wb-action:focus-visible{background:var(--surface)}.wb-select:focus-visible{background:var(--soft)}.wb-source:focus-visible{background:#e7f0fa}
.num,td.num,.result .big,.kv .v,.agg .a .n,.fresh,.provenance,.cf-axis,.tor-sw,.bm-vals,.bm-bandticks,.bm-scale,.modesub,.foot{font-family:var(--mono);font-variant-numeric:tabular-nums}
header{background:#fbfbfa}
nav{background:#f3f4f3}
nav button{border-radius:0}
nav button:hover,nav button:focus-visible{background:#e9ebea}
nav button.active{background:#e2e4e3}
.langsel,.hchip,.dfresh,header .cta{border-radius:3px}
.hchip{background:transparent}
.dfresh{border-color:#c5ddd4}
header .cta{box-shadow:none}

/* Shared neutral controls: compact, aligned, and visibly focusable. */
.searchbar input,.toolbar select,.toolbar input,.calc .field input,.calc .field select,form.signup input[type="email"]{border-radius:3px;box-shadow:none}
.searchbar input:focus,.toolbar select:focus,.toolbar input:focus,.calc .field input:focus,.calc .field select:focus,form.signup input[type="email"]:focus{border-color:var(--brand);box-shadow:0 0 0 2px rgba(35,38,43,.24)}
.toolbar{border-radius:0;background:transparent;border-left:0;border-right:0;border-top:2px solid var(--ink);padding:10px 0;gap:10px}
.toolbar label{font-family:var(--mono);font-size:10.5px;letter-spacing:.01em}
.toolbar select,.toolbar input{min-height:36px;font-family:var(--sans);background:var(--surface)}
.toolbar .count{font-family:var(--mono);font-size:11px}
.exp{border-radius:3px;margin-left:0;min-height:36px;background:transparent}
.exp:hover,.exp:focus-visible{background:var(--soft)}
.fresh{font-size:10.5px;letter-spacing:.01em}
.fresh .d{border-radius:0;width:6px;height:6px}
.sub{max-width:780px}

/* Calculator libraries become a searchable instrument index instead of a card gallery. */
 #pg-lcoh,#pg-tools{max-width:var(--content-max)}
#pg-lcoh h1,#pg-tools h1,#pg-map>h1,#pg-offtake>h1,#pg-reports>h1,#pg-specs>h1,#pg-fuelcell>h1,#pg-benchmark>h1,#pg-columns>h1,#pg-updates>h1,#pg-news>h1,#pg-privacy>h1,#pg-terms>h1{font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.12}
#pg-lcoh .searchbar,#pg-tools .searchbar{max-width:680px;margin-bottom:12px}
.catbar{gap:0;margin:0 0 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.catbar button{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;min-height:38px;padding:6px 12px;color:var(--muted)}
.catbar button:last-child{border-right:0}
.catbar button:hover,.catbar button:focus-visible{background:var(--surface);color:var(--ink)}
.catbar button.on{background:var(--brand);color:#fff}
.catlabel{font-family:var(--mono);letter-spacing:.035em;text-transform:none;margin:23px 0 0;padding:8px 0;border-bottom:1px solid var(--line)}
.catlabel:after{display:none}
.toolcount{font-family:var(--mono)}
.toolgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.toolcard{min-height:122px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:16px;gap:6px}
.toolcard:nth-child(odd){border-right:1px solid var(--line)}
.toolcard:hover,.toolcard:focus-visible{border-color:var(--line);background:var(--surface);box-shadow:none;transform:none}
.toolcard:focus-visible{outline-offset:-3px}
.toolcard .tc-cat{font-family:var(--mono);font-size:10px;letter-spacing:.02em;text-transform:none;color:var(--muted)}
.toolcard h3{font-size:16px}
.kind{border:1px solid currentColor;border-radius:2px;background:transparent;padding:2px 5px;letter-spacing:.02em;text-transform:none}
.kind.exact{background:transparent}.kind.est{background:transparent}

/* LCOH and calculator detail: one divided work surface, inputs left and evidence-grade result right. */
.modeseg{max-width:620px;gap:0;padding:0;border-radius:0;background:transparent}
.modeseg button{min-height:42px;border-radius:0;border-right:1px solid var(--line);color:var(--ink)}
.modeseg button:last-child{border-right:0}
.modeseg button.on{background:var(--brand)}
.modesub{font-size:10.5px;margin-bottom:18px}
.backlink{font-family:var(--mono);font-size:11px}
.kindline{margin:0 0 12px}
.calc{gap:0;background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink)}
.calc .inputs{border:0;border-right:1px solid var(--line);border-radius:0;background:#fafaf9;padding:18px}
.calc .field{margin-bottom:15px}
.calc .field label{font-family:var(--mono);font-size:10.5px;letter-spacing:.01em}
.calc .field input,.calc .field select{border-radius:3px;font-family:var(--mono);font-size:14px}
.calc .field select{font-family:var(--sans)}
.calc .presets{gap:0;margin-top:9px;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.calc .presets button{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:6px 10px}
.calc .presets button:last-child{border-right:0}
.calc .fieldchips{gap:0;border:1px solid var(--line);border-radius:3px;overflow:hidden}
.calc .fieldchip{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;min-height:32px}
.calc .fieldchip:last-child{border-right:0}
.calc .fieldchip.on{background:var(--brand)}
.calc .fslider{border-radius:0;background:var(--line)!important}
.calc .fslider::-webkit-slider-thumb,.calc .fslider::-moz-range-thumb{border-radius:2px;box-shadow:none}
.advtoggle{font-family:var(--mono);font-size:10.5px}
.result{border-radius:0;box-shadow:none;padding:22px 24px;background:var(--surface)}
.result .big{font-size:42px;letter-spacing:-.045em}
.result .big small{font-family:var(--mono);font-size:13px}
.result h4{font-family:var(--mono);font-size:10.5px;text-transform:none;letter-spacing:.015em}
.kv{gap:0 16px;border-top:1px solid var(--line)}
.kv .k,.kv .v{padding:8px 0;border-bottom:1px solid var(--line2)}
.kv .v{font-size:13px}
.bar,.bm-track,.bm-bandbar{border-radius:0}
.result .bar span{background:#34383c!important}
.result .bar span:nth-child(even){background:#8c9296!important}
.result .barleg i{background:#34383c!important;border-radius:0}
.result .barleg span:nth-child(even) i{background:#8c9296!important}
.agg{border-radius:0;background:transparent;border-left:0;border-right:0;border-top:2px solid var(--ink);padding:0;margin:14px 0}
.agg .a{flex:1 1 150px;padding:12px 14px}
.agg .a .n{font-size:21px}
.agg .a .l{font-family:var(--mono);font-size:10px}
.result .agg{margin:16px 0!important}
.result .agg .a{padding:10px 12px}
.tor-track{border-radius:0}
.tor-seg{background:#70767a!important}
.tor-seg:nth-child(2){background:#b0b5b8!important}
.bm-track{background:#e2e4e3}
.bm-track .bm-fill{background:#4e5458!important;border-radius:0}
.bm-track.bm-est .bm-fill{background-image:none}
.bm-track .bm-med{background:var(--ink)}
.bm-bandbar .bm-fill{background:#d4d8d9;border-color:var(--ink);border-radius:0}
.bm-badge{border-radius:2px;background:transparent;color:var(--ink);border-color:var(--line)}
.bm-badge .dot{display:none}
.bm-warn,.bm-judge{border-radius:2px}

/* Ledger surfaces: flat rows, stable columns, source/date/confidence adjacent to the data. */
table{border-radius:0;border-left:0;border-right:0;border-top:2px solid var(--ink);box-shadow:none;background-image:none}
th{font-family:var(--mono);font-size:10px;letter-spacing:.025em;text-transform:none;background:#eef0ef}
th,td{padding:10px 12px;vertical-align:top}
#off-table,#rep-table{table-layout:fixed}
#off-table th,#off-table td,#rep-table th,#rep-table td{overflow-wrap:anywhere}
#off-table .cell-ellipsis,#rep-table .cell-ellipsis{white-space:normal;overflow:visible;text-overflow:clip}
#off-table th:nth-child(1){width:20%}
#off-table th:nth-child(2){width:25%}
#off-table th:nth-child(3){width:12%}
#off-table th:nth-child(4){width:18%}
#off-table th:nth-child(5){width:15%}
#off-table th:nth-child(6){width:10%}
#rep-table th:nth-child(1){width:20%}
#rep-table th:nth-child(2){width:40%}
#rep-table th:nth-child(3){width:9%}
#rep-table th:nth-child(4){width:18%}
#rep-table th:nth-child(5){width:13%}
tbody tr:hover td,tbody tr:focus-visible td{background:#f1f3f2}
.clickrow:focus-within td{background:#e9ecea}
.provenance{font-family:var(--mono);font-size:10px;line-height:1.45}
.provenance .provenance-flag{font-family:var(--sans)}
.pill,.spill,.acc,.relpill,.trustpill,.mechbadge,.kgtag,.matbadge{border-radius:2px}
#pg-specs .spill,#pg-fuelcell .spill{color:var(--ink)!important;background:transparent!important;border:1px solid var(--line)}
#pg-specs .relpill,#pg-fuelcell .relpill{border-radius:2px}
.note{border-radius:0;background:transparent;border-left:3px solid var(--ink);padding:13px 15px}
.route-trust{max-width:780px;margin:0 0 18px;border-left-color:var(--brand)}
.route-trust-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.route-trust-head b{color:var(--ink)}
.route-trust p{margin:7px 0 0}
.route-trust-badge{display:inline-block;border:1px solid var(--line);background:var(--soft);color:var(--ink);font-family:var(--mono);font-size:10.5px;line-height:1.4;padding:3px 6px}
.route-trust details{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.route-trust summary{cursor:pointer;color:var(--ink);font-family:var(--mono);font-size:10.5px}
.route-trust ul{margin:7px 0 0;padding-left:17px;font-size:12px}
.route-trust li+li{margin-top:4px}
.calc-evidence{max-width:780px;margin:0 0 16px}
.calc-evidence-title{color:var(--ink);font-family:var(--sans);font-size:13px;font-weight:700}
.calc-evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:8px}
.calc-evidence-item{min-width:0;border-top:1px solid var(--line);padding-top:7px}
.calc-evidence-item b{color:var(--ink);display:block;font-family:var(--mono);font-size:10.5px;font-weight:600}
.calc-evidence-item p{margin:3px 0 0;font-size:12px;overflow-wrap:anywhere}
.calc-evidence-item code{font-family:var(--mono);font-size:11px;color:var(--ink)}
 .own-interpretation{display:block;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:12px;padding:8px 0;color:var(--muted);font-size:11.5px;line-height:1.5}
.own-interpretation b{color:var(--ink);font-family:var(--mono);font-size:10.5px}
 .own-interpretation p,.own-interpretation .own-interpretation-text{display:block;margin:3px 0 0!important;font-size:11.5px!important}
.article .own-interpretation{margin:0 0 18px}
@media(max-width:680px){.calc-evidence-grid{grid-template-columns:1fr}.route-trust-head{align-items:flex-start}}

/* Policy evidence keeps the selected row and inspector as one continuous workbench. */
#pg-policy .wb-head{grid-template-columns:minmax(0,1fr) minmax(220px,.36fr);margin-bottom:18px}
#pg-policy .wb-head h1{font-family:var(--sans);font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.12}
#pg-policy .wb-kicker{font-size:10px;letter-spacing:.02em;text-transform:none;color:var(--muted);margin-bottom:7px}
#pg-policy .wb-toolbar{margin-bottom:0}
#pg-policy .wb-tag{border:1px solid var(--line);border-radius:2px;background:transparent;padding:2px 5px;font-family:var(--mono);font-size:9.5px;text-transform:none;letter-spacing:0}
#pg-policy .wb-state-confirmed,#pg-policy .wb-state-unknown,#pg-policy .wb-state-conflict,#pg-policy .wb-state-needs-review{font-weight:600}
.wb-state-unknown{color:#805c08}
#pg-policy .wb-ledger{border-top:2px solid var(--ink)}
#pg-policy .wb-ledger-head{background:#eef0ef;font-size:10px;letter-spacing:.025em}
#pg-policy .wb-select:hover,#pg-policy .wb-select:focus-visible,#pg-policy .wb-select[aria-pressed="true"]{background:#eef0ef}
#pg-policy .wb-select[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--brand)}
#pg-policy .wb-region small,#pg-policy .wb-program small,#pg-policy .wb-source span,#pg-policy .wb-source-link span{font-family:var(--mono)}
#pg-policy .wb-source{background:transparent}
#pg-policy .wb-source:hover,#pg-policy .wb-source:focus-visible{background:#eef3f8}
#pg-policy .wb-inspector{border-top:2px solid var(--ink);border-left:1px solid var(--line);background:transparent;padding:0 0 0 18px}
#pg-policy .wb-inspector h2{font-family:var(--sans);font-size:23px;font-weight:700}
#pg-policy .wb-inspector-kicker,#pg-policy .wb-block h3{font-family:var(--mono);font-size:10px;letter-spacing:.02em;text-transform:none}
#pg-policy .wb-back{border-radius:2px}
#pg-policy .wb-loading i{background:#dfe2e1}
#pg-policy .wb-empty,#pg-policy .wb-loading{border-bottom:1px solid var(--line)}
#pg-policy .wb-error,#pg-policy .wb-policy-error{border-radius:0}

/* Map is the primary field; layers and state controls stay compact and secondary. */
#pg-map{max-width:none}
#pg-map .layerbar{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:10px}
#pg-map .layerbar>span{font-family:var(--mono);font-size:10px!important;margin:0!important;padding:9px 10px 9px 0}
#pg-map .lchip{min-height:36px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:6px 10px;font-family:var(--sans);font-size:12px}
#pg-map .lchip.on{background:var(--brand);color:#fff}
#pg-map .matstrip{gap:0;border-bottom:1px solid var(--line);padding-bottom:8px}
#pg-map .matstrip .mlab{font-family:var(--mono);font-size:10px;text-transform:none;letter-spacing:.01em}
#pg-map .matchip{min-height:30px;border-radius:2px;padding:4px 8px}
#pg-map .matchip .dot{width:7px;height:7px}
#pg-map .mapwrap{border-top:2px solid var(--ink)}
#pg-map #map{height:clamp(430px,58vh,620px);border:0;border-radius:0}
#pg-map .map-loading{border:0;border-radius:0}
#pg-map .legend{margin:0;padding:9px 0;border-bottom:1px solid var(--line);gap:12px;font-family:var(--mono);font-size:10px}
#pg-map .legend i{border-radius:0;width:7px;height:7px}
#pg-map #m-table{margin-top:12px}

/* Cost benchmark rows use one neutral measurement scale, not decorative category colors. */
 .bm-row{border-radius:0;background:transparent;padding:12px 0;grid-template-columns:var(--bm-grid-cols)}
.bm-row:hover,.bm-row:focus-visible{border-color:var(--line);background:#f3f4f3}
.bm-row.bm-totalrow{background:#eef0ef;border-color:var(--ink)}
.bm-src,.bm-lbl .bm-desc{font-family:var(--mono);font-size:10px}
.bm-acc .bm-collect{border-radius:2px}

/* Editorial and legal pages use a restrained publication/ledger rhythm. */
 #pg-columns .col-list{max-width:var(--content-max);gap:0;border-top:2px solid var(--ink)}
.col-card{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:16px 0}
.col-card:hover,.col-card:focus-visible{border-color:var(--line);background:#f1f3f2;box-shadow:none;transform:none}
.col-card h3,.col-card .col-title{font-family:var(--sans);font-size:20px;font-weight:700}
.col-card .meta,.article .meta{font-family:var(--mono);font-size:10.5px}
.col-tags > span,.article .draft{border:1px solid var(--line);border-radius:2px;background:transparent;padding:1px 5px}
.col-tags > span.dr,.article .draft{color:#805c08;background:transparent}
 .article{max-width:var(--content-max);border:0;border-top:2px solid var(--ink);border-radius:0;background:transparent;padding:22px 0}
.article h2{font-family:var(--sans);font-size:29px;font-weight:700}
.article p{max-width:720px}
#pg-updates h2{font-family:var(--sans);font-size:16px;font-weight:700;margin:24px 0 8px;padding-top:11px;border-top:1px solid var(--line)}
#pg-updates h2:first-of-type{border-top:2px solid var(--ink)}
#pg-updates p{max-width:760px}
#pg-news .news-vals{max-width:760px;gap:0;border-top:2px solid var(--ink)}
#pg-news .news-vals li{padding:11px 0 11px 18px;border-bottom:1px solid var(--line)}
#pg-news .news-vals li:before{width:3px;height:3px;border-radius:0;background:var(--ink);top:20px}
#pg-news .news-cadence{font-family:var(--mono);font-size:10.5px}
#pg-news form.signup{max-width:540px}
#pg-news form.signup button{border-radius:3px}
 #pg-privacy .note,#pg-terms .note{max-width:var(--content-max);border-left:0;border-right:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);background:transparent;padding:16px 0}
.analytics-consent{position:fixed;z-index:5000;left:18px;right:18px;bottom:18px;max-width:760px;margin:auto;padding:16px 18px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 35px rgba(18,22,25,.18);font-size:13px}.analytics-consent p{margin:0 0 12px}.analytics-consent-actions{display:flex;gap:8px}.analytics-consent button{min-height:44px;padding:7px 14px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}.analytics-consent button[data-choice="accept"]{background:var(--ink);color:var(--surface)}
.foot{border-top-color:var(--line);font-size:10.5px}

/* Drawers retain detail density and evidence hierarchy without card decoration. */
.drawer-bg{background:rgba(18,22,25,.28)}
.drawer{background:#fafaf9;box-shadow:none;padding:28px 30px}
.drawer h2{font-family:var(--sans);font-weight:700}
.drawer .dsub,.drawer .dk{font-family:var(--mono)}
.dl{gap:0;border-top:2px solid var(--ink)}
.dl .di{padding:11px 0;border-bottom:1px solid var(--line)}
.dl .di.imp{background:transparent;border-radius:0;border-left:3px solid var(--ink);padding:11px 12px}
.trustpill{border:1px solid currentColor}
.planstrip{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.planbox{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:11px 12px}
.planbox:last-child{border-right:0}
.claimgrid{gap:0;border-top:1px solid var(--line)}
.claim{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:10px}
.claim:nth-child(even){border-right:0}
.evidencebox{border-top:2px solid var(--ink)}
.evidence-note{border-radius:0;background:transparent;border-left:3px solid var(--line);padding:9px 11px}
.provrow{border-top:2px solid var(--ink)}
.copyev{border-radius:2px}
#toast{border-radius:2px}

@media(max-width:760px){
 .toolgrid{grid-template-columns:1fr}
 .toolcard:nth-child(odd){border-right:0}
 .toolcard{min-height:108px;padding:14px 0}
 .catbar button{min-height:44px}
 .modeseg{width:100%}
 .modeseg button{min-height:44px}
 .calc{grid-template-columns:1fr}
 .calc .inputs{border-right:0;border-bottom:1px solid var(--line);padding:16px}
 .result{padding:18px 16px}
 .result .big{font-size:36px}
 .agg .a{flex-basis:50%;padding:10px}
 #pg-policy .wb-head{grid-template-columns:1fr}
 #pg-policy .wb-inspector{border-left:0;border-top:2px solid var(--ink);padding:16px 0 0}
 #pg-map #map{height:440px}
 #pg-map .layerbar{overflow-x:auto;flex-wrap:nowrap;position:relative;scrollbar-width:thin}
 #pg-map .layerbar[data-scrollable="true"][data-scroll-end="false"]::after{content:"";position:sticky;right:0;align-self:stretch;flex:0 0 28px;background:linear-gradient(90deg,transparent,var(--bg));pointer-events:none}
 #pg-map .lchip{flex:0 0 auto;min-height:44px}
 #pg-map .matchip{min-height:44px}
}
@media(max-width:820px){
 /* G4 boh-2: the project table becomes stacked records at phone width. The generic
    table{display:block;overflow-x:auto} pattern kept the page from scrolling sideways but squeezed
    six columns into ~100px each, so names broke one word per line and the last columns sat outside
    the clip. Labels move inline with each value; the desktop column grid is untouched above 760px. */
 .table-stack{display:table;width:100%;min-width:0;overflow:visible;background-image:none;border-top:2px solid var(--ink)}
 .table-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .table-stack tbody{display:block}
 .table-stack tr{display:block;padding:11px 0;border-bottom:1px solid var(--line)}
 .table-stack td{display:grid;grid-template-columns:minmax(104px,34%) minmax(0,1fr);gap:10px;align-items:baseline;padding:2px 0;border:0;text-align:left;overflow-wrap:anywhere}
  .table-stack td:before{content:attr(data-label);font-family:var(--mono);font-size:10px;text-transform:none;letter-spacing:.04em;color:var(--muted);line-height:1.7}
 .table-stack td.r{text-align:left}
 .table-stack td>span{justify-self:start}
 .table-stack td.mr-name{grid-template-columns:minmax(0,1fr);font-size:14.5px;font-weight:600;line-height:1.35;padding-bottom:6px}
  .table-stack td.mr-name:before{display:none}
  .bm-row{grid-template-columns:1fr;padding:12px 0}
  .table-stack .cell-ellipsis{white-space:normal;overflow:visible}
}
@media(max-width:760px){
  .calc .presets,.calc .fieldchips{gap:8px;overflow:visible}
  .calc .presets button,.calc .fieldchip{min-height:44px}
  .leaflet-control-zoom{display:flex;flex-direction:column;gap:4px}
  #pg-map .leaflet-control-zoom a{min-width:44px;min-height:44px;line-height:44px}
 /* the B visual layer resets .toolbar controls to 36px further down the sheet, so the 44px touch
    minimum is restated here, after it, rather than fighting it with selector weight. */
 .toolbar select,.toolbar input,.searchbar input,.country-controls select{min-height:44px}
 .drawer{padding:24px 18px}
 .planstrip,.claimgrid{grid-template-columns:1fr}
 .planbox,.claim{border-right:0}
 .mob-summary{border-radius:0;box-shadow:none;border-top:2px solid var(--ink)}
}
/* Country evidence workspaces keep local-data scope visible. */
 .country-workspace{max-width:var(--content-max)}.country-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:11px 0;margin:16px 0}.country-controls label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-family:var(--mono);font-size:10px}.country-controls select{min-width:200px;min-height:36px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--sans);padding:6px 9px}.country-controls button,.country-actions button,.map-reset{min-height:36px;border:1px solid var(--line);background:transparent;color:var(--ink);font-family:var(--sans);font-size:12.5px;padding:6px 11px;cursor:pointer}.country-controls button:hover,.country-actions button:hover,.map-reset:hover{background:var(--soft)}.country-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.country-actions button[disabled]{color:var(--muted);cursor:not-allowed;background:#eeeeea}.country-status{font-family:var(--mono);font-size:10px;color:var(--muted);margin:10px 0}.country-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.country-cell{padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.country-cell:nth-child(3n){border-right:0}.country-cell b{display:block;font-size:20px;line-height:1.15;font-variant-numeric:tabular-nums}.country-cell span{display:block;color:var(--muted);font-family:var(--mono);font-size:10px;margin-top:5px}.country-cell.is-zero{background:var(--bg)}.country-cell.is-zero b{color:var(--muted);font-size:16px;font-weight:500}.country-cell.is-zero span{color:var(--muted)}.country-section{margin-top:24px}.country-section h2{font-size:16px;margin:0 0 8px}.country-section p{color:var(--muted);margin:0 0 10px}.country-list{border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.country-list-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.35fr);gap:12px;padding:11px 0;border-top:1px solid var(--line)}.country-list-row:first-child{border-top:0}.country-list-row b{font-size:13px}.country-list-row small{display:block;color:var(--muted);font-family:var(--mono);font-size:10px;margin-top:3px}.country-empty{padding:16px 0;color:var(--muted)}.country-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.map-row-more{margin-top:10px}
.axis-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));border-top:2px solid var(--ink);border-bottom:1px solid var(--line);margin:18px 0}.axis-summary>div{padding:13px;border-right:1px solid var(--line);min-width:0}.axis-summary>div:last-child{border-right:0}.axis-summary b{display:block;font-size:20px;line-height:1.1;font-variant-numeric:tabular-nums}.axis-summary span{display:block;color:var(--muted);font-family:var(--mono);font-size:10px;margin-top:5px}.organizations-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:20px;align-items:start}.organization-list{border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.organization-row{display:block;width:100%;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;padding:13px 0;cursor:pointer}.organization-row:first-child{border-top:0}.organization-row:hover,.organization-row.active{background:var(--soft)}.organization-row b{display:block;font-size:14px;overflow-wrap:anywhere}.organization-row small{display:block;color:var(--muted);font-family:var(--mono);font-size:10.5px;line-height:1.5;margin-top:4px;overflow-wrap:anywhere}.organization-quick{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:0 0 14px}.organization-quick h2{font-size:18px;margin:12px 0 6px;overflow-wrap:anywhere}.organization-quick h3{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:none;margin:16px 0 6px}.organization-quick p{color:var(--muted);margin:5px 0;overflow-wrap:anywhere}.organization-quick .country-list{margin-top:6px}.organization-quick .country-list-row{grid-template-columns:1fr}.organization-quick .country-list-row>div,.organization-quick .country-list-row b,.organization-quick .country-list-row small{min-width:0;overflow-wrap:anywhere}.drawer-detail{border-top:2px solid var(--ink);margin-top:18px;padding-top:13px}.drawer-detail h3{font-size:15px;margin:0 0 7px}.drawer-detail p{color:var(--muted);font-size:12px;line-height:1.55}.drawer-detail-list{border-top:1px solid var(--line)}.drawer-detail-row{padding:9px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.drawer-detail-row b{display:block;font-size:12px}.drawer-detail-row small{display:block;color:var(--muted);font-family:var(--mono);font-size:10px;line-height:1.5;margin-top:3px}.country-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.country-index button{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;padding:10px;cursor:pointer;overflow-wrap:anywhere}#research-workspace .country-index button>b{display:block;word-break:keep-all;overflow-wrap:normal}.country-index button:hover{background:var(--soft)}.country-index small{display:block;color:var(--muted);font-family:var(--mono);font-size:10px;margin-top:3px}.henresearch-label{white-space:nowrap}
.country-controls button:focus-visible,.country-actions button:focus-visible,.map-reset:focus-visible{background:var(--soft)}.organization-row:focus-visible{background:var(--soft)}.country-index button:focus-visible{background:var(--soft)}
@media(max-width:760px){.country-grid{grid-template-columns:1fr 1fr}.country-cell:nth-child(3n){border-right:1px solid var(--line)}.country-cell:nth-child(even){border-right:0}.country-controls select{width:100%;min-height:44px}.country-controls button,.country-actions button,.map-reset{min-height:44px}.country-list-row{grid-template-columns:1fr}.country-workspace h1{font-size:30px}}
@media(max-width:760px){.axis-summary{grid-template-columns:1fr}.axis-summary>div{border-right:0;border-bottom:1px solid var(--line)}.organizations-layout{grid-template-columns:1fr}.organization-row{min-height:44px}.country-index button{min-height:44px}#research-workspace .country-index{grid-template-columns:1fr}}
.entity-directory-group{margin-top:24px}.entity-directory-group h2{border-bottom:2px solid var(--ink);padding-bottom:7px}.entity-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0;padding:0;list-style:none}.entity-directory li{min-width:0;border-bottom:1px solid var(--line);padding:9px 0}.entity-directory a{display:block;overflow-wrap:anywhere}@media(max-width:760px){.entity-directory{grid-template-columns:1fr}}
/* Release 6 home B: query first, then the existing map, records, and tools. */
.home-pitch{margin:0 0 18px}.home-pitch h1{max-width:18ch;font-size:38px;font-weight:500;letter-spacing:-.03em}.home-pitch .sub{margin:0}
.home-query{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);background:var(--surface);padding:18px 20px 14px}
.home-query-field{display:flex;align-items:stretch;border:1px solid var(--ink);background:var(--surface)}.home-query-field input{flex:1;min-width:0;height:48px;border:0;outline:0;background:none;color:var(--ink);font:16px var(--sans);padding:0 14px}.home-query-field input::placeholder{color:var(--muted)}.home-query-field button{border:0;border-left:1px solid var(--line);background:var(--brand);color:#fff;font:600 13px var(--sans);padding:0 22px;cursor:pointer;white-space:nowrap}.home-query-field button:hover,.home-query-field button:focus-visible{background:var(--brand-ink)}
.home-scopes{display:flex;flex-wrap:wrap;gap:0;margin-top:12px}.home-scope{display:flex;flex-direction:column;gap:1px;min-width:150px;padding:8px 16px;border:1px solid var(--line);border-right:0;background:var(--surface);color:var(--ink)}.home-scope:last-child{border-right:1px solid var(--line)}.home-scope:hover,.home-scope:focus-visible{background:var(--soft);text-decoration:none}.home-scope .lb{font-size:13px;font-weight:600}.home-scope .n{color:var(--muted);font:10.5px var(--mono);font-variant-numeric:tabular-nums}
.home-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:8px;margin:28px 0 14px}.home-section-head h2{font-size:16px}.home-section-head a{font:11px var(--mono)}
.home-sample{width:100%;border-collapse:collapse;background:var(--surface);border-bottom:1px solid var(--line)}.home-sample th{text-align:left;color:var(--muted);background:#ececec;border-bottom:1px solid var(--line);padding:9px 12px;font:500 9.5px var(--mono);letter-spacing:.06em;text-transform:uppercase}.home-sample td{padding:9px 12px;border-bottom:1px solid var(--line2);font-size:13px;vertical-align:baseline}.home-sample tr:last-child td{border-bottom:0}.home-sample tr:hover td{background:var(--bg)}.home-sample .record-type{color:var(--muted);font:9.5px var(--mono);letter-spacing:.05em;text-transform:uppercase}.home-sample .record-name{font-weight:600}.home-sample .record-num{font:12px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.home-sample .empty{color:var(--muted)}
.home-record-link{border:0;background:transparent;color:var(--link);font:inherit;font-weight:600;padding:0;text-align:left;cursor:pointer}.home-record-link:hover,.home-record-link:focus-visible{text-decoration:underline}
.home-mark{display:inline-block;width:9px;height:9px;margin-left:5px;border:1px solid var(--s-op);border-radius:99px;background:var(--s-op-bg);vertical-align:1px}.home-mark.earlier{border-color:var(--cat-policy-marker);background:var(--s-feas-bg)}.home-legend{margin:8px 2px 0;color:var(--muted);font:10.5px var(--mono)}.home-legend .home-mark{margin:0 4px 0 16px}.home-legend .home-mark:first-child{margin-left:0}
.home-status{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font:10.5px var(--mono);white-space:nowrap}.home-status i{width:8px;height:8px;flex:none}.home-status.operational i{background:var(--st-op);border-radius:99px}.home-status.construction i{background:var(--st-fid)}.home-status.feasibility i{border:1.5px solid var(--st-feas);border-radius:99px}.home-status.cancelled i{border:1.5px solid var(--st-cancel);transform:rotate(45deg)}
.home-tools{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);background:var(--surface)}.home-tool{display:flex;flex-direction:column;gap:1px;min-width:0;padding:10px 16px;border-right:1px solid var(--line2)}.home-tool:last-child{border-right:0}.home-tool:hover,.home-tool:focus-visible{background:var(--soft);text-decoration:none}.home-tool .lb{color:var(--ink);font-size:13px}.home-tool .n{color:var(--muted);font:10px var(--mono)}
.grp-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px;margin-top:10px;padding:4px 8px;border:0;background:transparent;color:var(--muted);font:10px var(--mono);letter-spacing:.06em;text-align:left;cursor:pointer}.grp-toggle:first-child{margin-top:0}.grp-toggle:hover,.grp-toggle:focus-visible{background:#ececec}.grp-toggle .chev{transition:transform .12s}.grp-toggle[aria-expanded="false"] .chev{transform:rotate(-90deg)}nav button[data-nav-group][hidden]{display:none}
@media(max-width:900px){.home-pitch h1{font-size:28px}.home-scopes{flex-direction:column}.home-scope{border-right:1px solid var(--line);border-bottom:0}.home-scope:last-child{border-bottom:1px solid var(--line)}.home-sample thead{display:none}.home-sample,.home-sample tbody,.home-sample tr,.home-sample td{display:block;width:100%}.home-sample tr{border-bottom:1px solid var(--line);padding:8px 0}.home-sample td{border:0;padding:2px 12px}.home-sample td[data-label]::before{content:attr(data-label) " ";color:var(--muted);font:9.5px var(--mono);text-transform:uppercase}.home-sample td.empty{display:none}.home-tool{flex:1 1 44%}}
@media(max-width:520px){.home-query{padding:14px 12px}.home-query-field{display:grid}.home-query-field button{min-height:44px;border-left:0;border-top:1px solid var(--line)}.home-section-head{align-items:flex-start;flex-direction:column;gap:5px}.home-tool{flex-basis:100%;border-right:0;border-bottom:1px solid var(--line2)}}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}nav,.navtoggle,.mob-summary{display:none!important}.app{display:block;height:auto}}
/* R2: compact mono labels share one 10px scale. */
nav .grp,.decision-form label,.intel .ik,.intel-card .imeta,.intel-card .istate,.provrow .prov-k,.dl .di .dk,.claim .ck,.mob-summary .ms-kpi,.matstrip .mlab,.matwrap .mk,.bm-acc .bm-collect,.wb-kicker,.wb-ledger-head,.wb-region small,.wb-program small,.wb-source span,.wb-inspector-kicker,.wb-block h3,.wb-source-link span,.toolbar label,.calc .field label,.advtoggle,.result h4,.col-card .meta,.article .meta,.country-controls label,.country-list-row small,.organization-row small,.organization-quick h3,.news-cadence{font-size:10px}
