/* H2Prism product reading surface.
   Scoped to the live shell and the parent home/directory/detail markup.
   Tokens stay in styles/tokens.css. Nav rules stay inside #nav. */

:root{
  --xp-ink:var(--ink);
  --xp-ink-2:var(--ink-2);
  --xp-mute:var(--muted);
  --xp-faint:var(--faint);
  --xp-line:var(--line);
  --xp-line-strong:var(--line-strong);
  --xp-line-soft:var(--line2);
  /* Earlier and tracker values: grey plus a text label, never colour alone (no amber/green). */
  --xp-earlier:var(--s-dorm);
  --xp-earlier-ink:var(--ink-2);
  --xp-earlier-bg:var(--table-header-background);
  --xp-paper:var(--paper);
  --xp-white:var(--surface);
  --xp-wash:var(--surface-subtle);
  --xp-blue:var(--accent);
  --xp-blue-ink:var(--accent-ink);
  --xp-blue-soft:var(--accent-soft);
  --xp-focus:var(--focus-ring);
  --xp-rail:232px;
  --xp-read:760px;
  --xp-wide:var(--content-max);
  --xp-list:var(--content-wide);
}

body{
  background:var(--xp-paper);
  color:var(--xp-ink);
}

button,
input,
select,
textarea{
  font:inherit;
  color:inherit;
}

.app{
  background:var(--xp-paper);
  grid-template-columns:var(--xp-rail) minmax(0,1fr);
}

.app>header{
  background:var(--xp-white);
  border-bottom:1px solid var(--xp-line);
  min-height:58px;
  padding:0 22px;
}

.brand{
  font-size:var(--fs-section);
  letter-spacing:-.03em;
}

.brand b{color:var(--xp-ink)}

.tagline{
  color:var(--xp-mute);
  font-size:var(--fs-label);
  border-left-color:var(--xp-line);
}







main#main{
  background:var(--xp-paper);
  padding:28px 36px 56px;
  /* The quick view locks this scroller; the gutter keeps the page from shifting sideways when it does. */
  scrollbar-gutter:stable;
}

main#main h1{
  font-size:var(--fs-page);
  font-weight:var(--fw-title);
  letter-spacing:-.03em;
  line-height:1.12;
  color:var(--xp-ink);
  max-width:22ch;
}

main#main h2{
  font-size:var(--fs-section);
  font-weight:var(--fw-title);
  letter-spacing:-.02em;
  line-height:1.25;
  color:var(--xp-ink);
}

main#main p,
main#main li{
  color:var(--xp-ink-2);
  line-height:1.55;
}

a{color:var(--xp-blue-ink)}
a:hover{color:var(--xp-blue)}

/* Primary navigation only. Other nav elements keep their own layout. */
#nav{
  background:var(--xp-paper);
  border-right:1px solid var(--xp-line);
  padding:14px 10px 28px;
}

#nav>a,
#nav button{
  min-height:40px;
  border-radius:var(--r-ctrl);
  border-left:0;
  color:var(--xp-ink-2);
  font-size:var(--fs-body);
  padding:8px 12px;
}

#nav>a:hover,
#nav>a:focus-visible,
#nav button:hover,
#nav button:focus-visible{
  background:var(--xp-white);
  color:var(--xp-ink);
}

/* Active item: a light fill and weight 600, no side bar (DESIGN v3 5-2). Hover stays lighter than the active fill. */
#nav>a.active{
  background:var(--surface-active-background);
  color:var(--ink);
  font-weight:var(--fw-title);
}
  @media(pointer:coarse),(max-width:760px){#nav>a,#nav button{min-height:44px}}
#nav>a span:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Group names (Tools, Datasets, About) use the label role: 13px, 500, ordinary case. */
#nav .grp,
#nav .grp-toggle{
  color:var(--muted);
  font-family:var(--font-ui);
  font-size:var(--fs-label);
  font-weight:var(--fw-label);
  letter-spacing:0;
  text-transform:none;
  margin-top:16px;
}

#nav .tag{
  background:var(--xp-white);
  color:var(--xp-mute);
}

.navtoggle{
  border:1px solid transparent;
  border-radius:var(--r-ctrl);
}
.navtoggle:focus-visible{box-shadow:var(--xp-focus)}

/* Home */
.home-intro,
.homefield.home-intro{
  margin:0 0 22px;
  padding:0;
  background:transparent;
  border:0;
  max-width:var(--xp-read);
}

.wb-head .wb-kicker,
.home-intro .wb-kicker,
.home-workbench .wb-kicker,
.project-explorer>.wb-kicker{display:none}

.home-intro h1{
  margin:0;
  max-width:18ch;
}

.home-intro p{
  margin:10px 0 0;
  max-width:46ch;
  font-size:var(--fs-input);
}

.home-query{
  max-width:var(--xp-wide);
  margin:0 0 28px;
  padding:0;
  border:0;
  background:transparent;
}

.home-query-field{
  display:flex;
  align-items:stretch;
  background:var(--xp-white);
  border:1px solid var(--xp-line-strong);
  border-radius:var(--r-ctrl);
  overflow:hidden;
}

.home-query-field input{
  flex:1;
  min-width:0;
  height:52px;
  border:0;
  background:var(--xp-white);
  color:var(--xp-ink);
  font:var(--fs-input)/1.3 var(--font-ui);
  padding:0 16px;
}

.home-query-field input:focus{outline:0}
.home-query-field:focus-within{box-shadow:var(--xp-focus)}

.home-query-field button{
  min-width:104px;
  min-height:52px;
  border:0;
  border-left:1px solid var(--xp-line);
  background:var(--xp-ink);
  color:var(--xp-white);
  font:600 var(--fs-body)/1 var(--font-ui);
  cursor:pointer;
}

.home-query-field button:hover,
.home-query-field button:focus-visible{background:var(--brand-ink)}

.home-scopes{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}

.home-scope{
  display:grid;
  grid-template-rows:auto auto 1fr;
  gap:3px;
  min-height:92px;
  padding:14px 16px;
  background:var(--xp-white);
  border:1px solid var(--xp-line);
  border-radius:0;
  color:inherit;
  text-decoration:none;
}

.home-scope:hover,
.home-scope:focus-visible{
  border-color:var(--xp-blue);
  text-decoration:none;
  color:inherit;
}

.home-scope .lb{
  color:var(--xp-ink);
  font-size:var(--fs-input);
  font-weight:620;
}

.home-scope .d,
.home-scope .n{
  color:var(--xp-mute);
  font-size:var(--fs-label);
  line-height:1.4;
}

.home-workbench,
.home-policy-section,
.home-sample-section,
.home-map-entry{
  max-width:var(--xp-wide);
  margin:0 0 var(--sp-6);
  padding:var(--sp-5) 0 0;
  background:transparent;
  border:0;
  border-top:var(--rule-head);
  border-radius:0;
}



.home-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin:0 0 14px;
  border:0;
  padding:0;
}

.home-section-head h2,
.home-map-entry h2{margin:0}

.home-section-head p,
.home-map-entry p{
  margin:6px 0 0;
  max-width:52ch;
  color:var(--xp-mute);
  font-size:var(--fs-body);
}

.home-primary-action,
.home-section-head>a,
.home-map-entry>a{
  flex:none;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:0 16px;
  border-radius:var(--r-ctrl);
  background:var(--xp-blue);
  color:var(--xp-white);
  font-weight:620;
  text-decoration:none;
}

.home-section-head>a:not(.home-primary-action),
.home-map-entry>a{
  background:transparent;
  color:var(--xp-blue-ink);
  padding:0;
}

.home-primary-action:hover,
.home-primary-action:focus-visible{
  background:var(--xp-blue-ink);
  color:var(--xp-white);
  text-decoration:none;
}

.home-tools{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  border:0;
  background:transparent;
}

.home-tool{
  display:grid;
  gap:2px;
  min-height:64px;
  padding:12px 14px;
  border:1px solid var(--xp-line);
  border-radius:0;
  background:var(--xp-white);
  color:inherit;
  text-decoration:none;
}

.home-tool:hover,
.home-tool:focus-visible{
  border-color:var(--xp-blue);
  text-decoration:none;
  color:inherit;
}

.home-tool .lb{color:var(--xp-ink);font-weight:620}
.home-tool .n{color:var(--xp-mute);font-size:var(--fs-label)}

.home-policy-list{
  display:grid;
  border-top:1px solid var(--xp-line);
}

.home-policy-record{
  display:grid;
  grid-template-columns:minmax(88px,140px) minmax(0,1.4fr) minmax(140px,.8fr) 18px;
  gap:12px;
  align-items:baseline;
  padding:12px 4px;
  border-bottom:1px solid var(--xp-line);
  color:inherit;
  text-decoration:none;
}

.home-policy-record:hover,
.home-policy-record:focus-visible{
  background:var(--xp-wash);
  text-decoration:none;
  color:inherit;
}

.home-policy-country{
  color:var(--xp-mute);
  font-size:var(--fs-meta);
  font-weight:620;
  letter-spacing:0;
  text-transform:none;
}

.home-policy-record strong{
  color:var(--xp-ink);
  font-weight:600;
}

.home-policy-record span:nth-child(3){
  color:var(--xp-mute);
  font-size:var(--fs-label);
}

.home-policy-main{
  display:grid;
  gap:4px;
  min-width:0;
}

.home-policy-summary{
  color:var(--xp-mute);
  font-size:var(--fs-label);
  line-height:1.45;
}

.home-sample-note{
  margin:10px 0 0;
  color:var(--xp-mute);
  font-size:var(--fs-meta);
  line-height:1.45;
}

.home-map-entry{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.home-data-basis{
  max-width:var(--xp-wide);
  margin-top:8px;
  color:var(--xp-mute);
}

.home-data-basis summary{
  cursor:pointer;
  font-weight:600;
  color:var(--xp-ink-2);
}

.home-data-basis p,
.home-basis{font-size:var(--fs-label)}

/* Directory explorer. Parent owns the live list markup. */
.project-explorer,
.project-directory-page{
  max-width:var(--xp-wide);
}

.explorer-controls,
.project-explorer form,
.project-directory-page form{
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:10px;
  margin:18px 0 8px;
  padding:0 0 14px;
  border-bottom:1px solid var(--xp-line);
}

.explorer-controls label,
.project-explorer form label{
  display:grid;
  gap:5px;
  min-width:min(180px,100%);
  color:var(--xp-mute);
  font-size:var(--fs-meta);
  font-weight:620;
}

.explorer-controls input,
.explorer-controls select,
.project-explorer form input,
.project-explorer form select,
.project-directory-page form input{
  min-height:42px;
  width:100%;
  border:1px solid var(--xp-line-strong);
  border-radius:var(--r-ctrl);
  background:var(--xp-white);
  color:var(--xp-ink);
  font:var(--fs-body) var(--font-ui);
  padding:8px 10px;
}

.explorer-controls input:focus,
.explorer-controls select:focus,
.project-explorer form input:focus,
.project-explorer form select:focus{
  outline:0;
  border-color:var(--xp-blue);
  box-shadow:var(--xp-focus);
}

.explorer-controls button,
.explorer-controls .explorer-reset,
.project-explorer form button,
.project-directory-page form button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  min-height:42px;
  padding:0 14px;
  border:1px solid var(--xp-ink);
  border-radius:var(--r-ctrl);
  background:var(--xp-ink);
  color:var(--xp-white);
  font:600 var(--fs-body) var(--font-ui);
  cursor:pointer;
}

.explorer-controls button[type="reset"],
.explorer-controls .explorer-reset,
.project-explorer form button[type="reset"]{
  background:var(--xp-white);
  color:var(--xp-ink);
  border-color:var(--xp-line-strong);
}

.explorer-result-bar,
.explorer-scope{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  align-items:baseline;
  margin:8px 0 14px;
  color:var(--xp-mute);
  font-size:var(--fs-label);
}

.explorer-empty,
.explorer-unavailable{
  margin:18px 0;
  padding:16px;
  border:1px dashed var(--xp-line-strong);
  border-radius:0;
  background:var(--xp-white);
  color:var(--xp-ink-2);
}

.project-explorer .entity-directory,
.project-directory-page .entity-directory{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

.project-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "heading open"
    "facts facts";
  gap:6px 16px;
  margin:0;
  padding:14px 16px;
  background:var(--xp-white);
  border:1px solid var(--xp-line);
  border-radius:0;
  list-style:none;
}

.project-card-heading{
  grid-area:heading;
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 10px;
  min-width:0;
}

.project-card .dir-record{
  color:var(--xp-ink);
  font-size:var(--fs-input);
  font-weight:620;
  letter-spacing:-.015em;
  line-height:1.3;
  text-decoration:none;
}

.project-card .dir-record:hover,
.project-card .dir-record:focus-visible{
  color:var(--xp-blue-ink);
  text-decoration:underline;
  text-underline-offset:3px;
}

.project-card-facts{
  grid-area:facts;
  display:flex;
  flex-wrap:wrap;
  gap:6px 18px;
  margin:0;
}

.project-card-facts>div{
  display:flex;
  gap:6px;
  align-items:baseline;
  min-width:0;
}

.project-card-facts dt{
  color:var(--xp-faint);
  font-size:var(--fs-meta);
  font-weight:650;
  letter-spacing:0;
  text-transform:none;
}

.project-card-facts dd{
  margin:0;
  color:var(--xp-ink);
  font-size:var(--fs-body);
}

.project-card-open{
  grid-area:open;
  align-self:start;
  color:var(--xp-blue-ink);
  font-size:var(--fs-label);
  font-weight:620;
  text-decoration:none;
  white-space:nowrap;
}

.project-card-open:hover,
.project-card-open:focus-visible{text-decoration:underline}

.status-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:22px;
  padding:0 7px;
  border-radius:var(--r-pill);
  background:var(--xp-wash);
  color:var(--xp-ink-2);
  font-size:var(--fs-meta);
  font-weight:620;
}

.status-chip-cancelled{
  background:var(--surface-rail);
  color:var(--brand);
  box-shadow:inset 0 0 0 1px var(--shadow-ink);
}

.cancelled-banner{
  display:flex;
  gap:12px;
  max-width:var(--xp-wide);
  margin:14px 0;
  padding:12px 14px;
  border:1px solid var(--ink);
  border-radius:0;
  background:var(--xp-white);
  color:var(--xp-ink);
}

.cancelled-banner p{margin:0;color:var(--xp-ink)}
.cancelled-last-stage{display:block;margin-top:4px;color:var(--xp-mute);font-size:var(--fs-label)}

.explorer-pagination,
.dir-pagination{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-1);
  align-items:center;
  margin:var(--sp-4) 0 0;
}

.explorer-pagination a,
.explorer-pagination button,
.dir-pagination a,
.dir-pagination button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  min-width:32px;
  padding:0 var(--sp-3);
  border:1px solid var(--xp-line);
  border-radius:var(--r-ctrl);
  background:var(--xp-white);
  color:var(--xp-ink);
  text-decoration:none;
}
  @media(max-width:760px){.explorer-pagination a,.explorer-pagination button,.dir-pagination a,.dir-pagination button{min-height:44px;min-width:44px}}

/* Detail reading */
.detail-page{
  max-width:var(--xp-wide);
}

.back-link{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  margin-bottom:10px;
  color:var(--xp-mute);
  font-family:var(--font-ui);
  font-size:var(--fs-label);
  font-weight:600;
  text-decoration:none;
}

.detail-page .wb-head{
  display:block;
  margin:0 0 16px;
}



.detail-page h1{max-width:24ch}

.name-source,
.count-line,
.legend,
.detail-note{
  max-width:68ch;
  color:var(--xp-mute);
  font-size:var(--fs-label);
}

.summary-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  margin:var(--sp-4) 0 var(--sp-2);
  border:0;
  border-top:var(--rule-head);
  border-bottom:1px solid var(--xp-line);
  border-radius:0;
  background:transparent;
}

/* No clipping here: an opened source note must stay readable. */
.summary-item{
  min-width:0;
  padding:14px 16px;
  background:transparent;
  border-right:1px solid var(--xp-line);
}

.summary-strip:has(.summary-long){grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}

.summary-label{
  display:block;
  margin-bottom:var(--sp-1);
  color:var(--xp-mute);
  font:var(--fw-label) var(--fs-label)/1.4 var(--font-ui);
  letter-spacing:0;
  text-transform:none;
}

.summary-value{
  display:block;
  color:var(--xp-ink);
  font-size:var(--fs-input);
  font-weight:600;
  line-height:1.35;
}

.summary-action{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  font-weight:620;
  text-decoration:none;
}

.data-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:var(--sp-5);
  border:0;
  border-top:var(--rule-head);
  border-radius:0;
  background:transparent;
}

.data-cell{
  display:grid;
  grid-template-columns:minmax(108px,150px) minmax(0,1fr);
  gap:var(--sp-3);
  align-items:baseline;
  padding:var(--sp-3) 0;
  border-bottom:1px solid var(--xp-line);
  border-right:0;
  background:transparent;
}

.data-grid>.data-cell:last-child{border-bottom:0}

.data-label{
  color:var(--xp-mute);
  font:var(--fw-label) var(--fs-label)/1.5 var(--font-ui);
}

.data-value,
.record-value,
.evidence-value{
  color:var(--xp-ink);
  font-size:var(--fs-body);
  line-height:1.45;
}



.source-badge,
.evidence-source-list a{
  color:var(--xp-blue-ink);
  font-size:var(--fs-label);
}

.record-basis summary,
.detail-page details summary{
  cursor:pointer;
  font-weight:620;
}

.record-state{
  max-width:var(--xp-read);
  padding:8px 0 24px;
}

.read-state-note{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  padding:10px 12px;
  border:1px solid var(--xp-line);
  background:var(--xp-white);
}

.read-state-note[data-read-state-note="failed"]{
  border-color:var(--xp-line-strong);
}

.read-state-retry{
  min-height:44px;
  padding:0 14px;
  border:1px solid var(--xp-line-strong);
  border-radius:0;
  background:var(--xp-white);
  cursor:pointer;
}

.record-state-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.record-state-links a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 12px;
  border:1px solid var(--xp-line);
  border-radius:0;
  background:var(--xp-white);
  text-decoration:none;
}

.entity-search{
  max-width:var(--xp-wide);
}

main#main .entity-directory a.dir-record{font:var(--fw-title) var(--fs-input)/1.3 var(--font-ui)}
.entity-search form,
.search-field{
  display:flex;
  gap:8px;
  margin:14px 0;
}

.entity-search input[type="search"]{
  flex:1;
  min-height:48px;
  border:1px solid var(--xp-line-strong);
  border-radius:var(--r-ctrl);
  padding:0 12px;
  font:var(--fs-input) var(--font-ui);
}

.company-page .wb-head,
.country-page .wb-head,
.country-workspace .wb-head{
  display:block;
}

.foot,
.detail-footer{
  max-width:var(--xp-wide);
  margin-top:28px;
  padding-top:14px;
  border-top:1px solid var(--xp-line);
  color:var(--xp-faint);
  font-size:var(--fs-meta);
}

.hf-dots,
.hf-dot{display:none}

@media (max-width:900px){
  .home-scopes,
  .home-tools,
  .summary-strip{grid-template-columns:1fr}
  .home-policy-record{grid-template-columns:minmax(0,1fr) 18px}
  /* Country, title, status/date stack in the wide column; the 18px column holds only the arrow. */
  .home-policy-country,
  .home-policy-record>.home-policy-main,
  .home-policy-record span:nth-child(3){grid-column:1;min-width:0;overflow-wrap:anywhere}
  .home-policy-record>span:last-child{grid-column:2;grid-row:1}
  .data-grid{grid-template-columns:1fr}
  .home-section-head,
  .home-map-entry{align-items:flex-start;flex-direction:column}
}

@media (max-width:760px){
  .app{grid-template-columns:1fr}
  main#main{padding:18px 16px 72px}
  main#main h1{font-size:var(--fs-page)}
  .home-query-field{display:grid}
  .home-query-field button{
    min-height:48px;
    border-left:0;
    border-top:1px solid color-mix(in srgb,var(--on-accent) 20%,transparent);
  }
  .project-card{
    grid-template-columns:1fr;
    grid-template-areas:"heading" "facts" "open";
  }
  .data-cell{grid-template-columns:1fr;gap:3px}
  #nav{
    background:var(--xp-white);
  }
}


.report-topics{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.report-topics button{font:inherit;min-height:44px;padding:8px 14px;border:1px solid var(--xp-line);border-radius:var(--r-ctrl);background:var(--xp-white);color:var(--xp-ink);cursor:pointer}.report-topics button[aria-pressed="true"]{background:var(--xp-ink);color:var(--xp-white)}

/* Use the product's bundled UI face when remote font hosts are unavailable. */
@font-face{font-family:Satoshi;src:url('/calc-kit/fonts/satoshi-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url('/calc-kit/fonts/satoshi-500.woff2') format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:Satoshi;src:url('/calc-kit/fonts/satoshi-700.woff2') format('woff2');font-weight:700 900;font-display:swap}
body{font-family:var(--font-ui),system-ui,sans-serif}
input,select,button{font-family:var(--font-ui),system-ui,sans-serif}
.home-primary-action,.home-section-head>a,.home-map-entry>a,.home-tool .n,.home-scope .n{font-family:var(--font-ui),system-ui,sans-serif}



.summary-item.legacy{box-shadow:none}
.data-cell.legacy{border-left:0}
/* Full 44px touch area with no negative margins, so it never overlaps a neighbouring control. */
.evidence-toggle{border:0;background:transparent;width:44px;height:44px;min-width:44px;min-height:44px;margin:0 0 0 2px;border-radius:var(--r-ctrl)}
.evidence-toggle>span{width:15px;height:15px;border:1px solid var(--s-op);background:transparent;color:var(--s-op);display:flex;align-items:center;justify-content:center;font:500 var(--fs-meta)/1 sans-serif}
.evidence-toggle>span:empty:before{content:'i'}
.evidence-toggle[aria-expanded="true"]{background:var(--xp-blue-soft);color:var(--xp-blue-ink)}
.company-directory-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:20px 0}
.company-directory-filters label{display:grid;gap:6px;font-size:var(--fs-label)}
@media(min-width:761px){.company-directory-filters input[type="search"],.company-directory-filters input[type="text"],.company-directory-filters input:not([type]){min-width:280px}}
.company-directory-filters input,.company-directory-filters select,.company-directory-filters button{min-height:44px;padding:8px 12px;font:var(--fs-input)/1.3 var(--font-ui);border:1px solid var(--xp-line);border-radius:var(--r-ctrl);background:var(--surface)}
.company-quick-summary{padding:8px 0;color:var(--xp-ink-2)}
.company-quick-summary summary{cursor:pointer;min-height:44px;padding:10px 0}
.company-role-list{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:760px){.home-scopes{gap:6px}.home-scope{padding:12px 14px}.home-scope .n{display:none}}

.record-preview{margin:0 0 0 auto;inset:0;width:min(600px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-left:1px solid var(--xp-line);padding:24px;background:var(--surface);color:var(--xp-ink);box-sizing:border-box}
.record-preview::backdrop{background:var(--scrim)}
.record-preview-top{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-meta);color:var(--xp-mute);margin-bottom:28px}
.record-preview-close{min-width:60px;min-height:44px;border:1px solid var(--xp-line);background:var(--surface);border-radius:0;font:inherit;cursor:pointer}
.record-preview h2{font-size:var(--fs-page);line-height:1.2;margin:0 0 24px;letter-spacing:-.03em}
.record-preview-facts{margin:0}.record-preview-facts>div{padding:16px 0;border-top:1px solid var(--xp-line)}.record-preview-facts dt{font-size:var(--fs-meta);color:var(--xp-mute);margin-bottom:6px}.record-preview-facts dd{margin:0;font-size:var(--fs-input);line-height:1.55}.record-preview-facts small{color:var(--xp-mute);font-size:var(--fs-meta)}
.record-preview-full{display:block;background:var(--xp-blue);color:var(--on-accent);padding:14px 18px;text-align:center;border-radius:0;margin-top:24px}.record-preview-full:hover{color:var(--on-accent)}
.record-preview-note{font-size:var(--fs-label);color:var(--xp-mute);line-height:1.6}
@media(max-width:760px){.record-preview{padding:20px}.record-preview h2{font-size:var(--fs-page)}}

/* Keep long status text readable without pushing the whole mobile record below the fold. */
.summary-item .summary-value{font-weight:500}
.summary-strip .summary-item{padding:14px 16px}
.name-source{margin:0}.wb-head .name-source{display:inline-block}
.company-directory-row{background:transparent;border:0;border-bottom:1px solid var(--xp-line);border-radius:0;padding:var(--sp-2) 0}
.company-directory .entity-directory>li{padding:var(--sp-2) 0;min-height:0}
.company-directory .company-quick-summary{padding:0}.company-directory .company-quick-summary summary{font-weight:400;font-size:var(--fs-label);color:var(--xp-mute)}
.company-pagination{position:static;display:flex;transform:none;visibility:visible;width:auto;height:auto;box-shadow:none;gap:var(--sp-1);background:transparent;border:0;padding:16px 0}
.company-pagination a,.company-pagination span{min-width:32px;min-height:32px;padding:0 var(--sp-3);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--xp-line);border-radius:var(--r-ctrl)}
  @media(max-width:760px){.company-pagination a,.company-pagination span{min-width:44px;min-height:44px}}
#main .kit-wrap{padding:0;max-width:none}#main .kit-related{position:static;transform:none;visibility:visible;width:auto;height:auto;box-shadow:none;border:0}
@media(max-width:760px){.summary-strip{grid-template-columns:1fr 1fr}.summary-strip .summary-item:first-child{grid-column:1/-1}.summary-strip .summary-item{padding:12px 14px}.summary-strip .summary-item:last-child{grid-column:1/-1}.company-directory-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2) var(--sp-3);margin:var(--sp-3) 0}.company-directory-filters>label:first-child,.company-directory-filters>p,.company-directory-filters>div{grid-column:1/-1}.company-directory-filters>p{margin:0}.company-directory-filters input,.company-directory-filters select{width:100%;box-sizing:border-box;min-width:0}.project-card .project-card-facts{grid-template-columns:1fr 1fr}}

.summary-strip:has([data-field-code="organization.hydrogen_position.activity_summary"]){grid-template-columns:minmax(0,3fr) minmax(200px,1fr)}
.summary-strip:has([data-field-code="organization.hydrogen_position.activity_summary"]) > .summary-item:last-child:nth-child(n){grid-column:auto}
.quantity-limit{display:block;color:var(--xp-mute);font-size:var(--fs-meta);line-height:1.5;margin-top:4px}
@media(max-width:760px){.summary-strip:has([data-field-code="organization.hydrogen_position.activity_summary"]){grid-template-columns:1fr}.summary-strip:has([data-field-code="organization.hydrogen_position.activity_summary"]) .summary-item{grid-column:1}}

/* Representative home, project directory and project detail.
   Earlier and tracker markers are grey and carry a visible word; the button's aria-label names the same state. */
.evidence-value[data-record-class="earlier_record"]+.evidence-toggle,
.evidence-value[data-record-class="tracker_supplement"]+.evidence-toggle{width:auto;gap:5px;padding:0 6px;color:var(--xp-earlier-ink);font:600 var(--fs-meta)/1 var(--font-ui);white-space:nowrap}
.evidence-value[data-record-class="earlier_record"]+.evidence-toggle::after{content:"Earlier record"}
.evidence-value[data-record-class="tracker_supplement"]+.evidence-toggle::after{content:"Tracker snapshot"}
.evidence-value[data-record-class="earlier_record"]+.evidence-toggle>span,
.evidence-value[data-record-class="tracker_supplement"]+.evidence-toggle>span,
.name-source.legacy .evidence-toggle>span{border-color:var(--xp-earlier);color:var(--xp-earlier-ink);background:var(--xp-earlier-bg)}
.secondary-context-note,.unverified-note,.relation-status:not(.known){border-color:var(--xp-earlier);background:var(--xp-earlier-bg)}
.record-basis .legend-dot{display:inline-block;width:13px;height:13px;background:transparent}
.record-basis .legend-dot.legacy{border-color:var(--xp-earlier);background:var(--xp-earlier-bg)}
.summary-strip .summary-item:last-child{border-right:0}
.summary-strip .summary-value.muted-value{color:var(--xp-mute)}
@media(max-width:900px){
  .summary-strip .summary-item{border-right:0}
  .summary-strip:has(.summary-long){grid-template-columns:1fr}
  .detail-page .summary-strip .summary-item:not(:last-child){border-bottom:1px solid var(--xp-line)}
}
@media(max-width:760px){
  .summary-strip:has(.summary-long){grid-template-columns:1fr 1fr}
  .detail-page .summary-strip .summary-item:nth-child(2):nth-last-child(3){border-right:1px solid var(--xp-line)}
  .detail-page .summary-strip .summary-item:nth-child(2):nth-last-child(2){grid-column:1/-1}
}

.detail-page .wb-head h1{margin:2px 0 6px;max-width:28ch}
.wb-head .name-source{margin:0 0 4px;color:var(--xp-mute);font-size:var(--fs-label)}
.name-source-label{font-weight:600}
.summary-value .evidence-entry{display:inline-block;vertical-align:baseline}
.detail-lede{max-width:var(--xp-read);margin:4px 0 2px}
main#main .detail-lede-line{margin:0;color:var(--xp-ink-2);font-size:var(--fs-input);line-height:1.45}
main#main .detail-lede-note{margin:10px 0 0;padding:9px 12px;border:0;border-radius:0;background:var(--xp-earlier-bg);color:var(--xp-ink);font-size:var(--fs-label);line-height:1.5}
.detail-page>.record-basis{max-width:var(--xp-wide);margin:0 0 4px;color:var(--xp-mute);font-size:var(--fs-label)}
.detail-page>.record-basis>summary{display:inline-flex;align-items:center;gap:4px;min-height:40px;color:var(--xp-ink-2);font-size:var(--fs-label);font-weight:600}
.detail-page>.record-basis[open]{padding:0 0 12px;border-bottom:1px solid var(--xp-line)}
.detail-page>.record-basis .legend{border-top:0;padding-top:4px;font:var(--fs-meta)/1.6 var(--font-ui)}
.detail-page .section{margin-top:var(--sp-6)}
main#main .detail-page .section>h2{margin:0 0 var(--sp-3)}
.detail-group+.detail-group{margin-top:18px}
main#main .detail-group h3{margin:0 0 var(--sp-2);color:var(--xp-ink-2);font:var(--fw-title) var(--fs-body)/1.4 var(--font-ui);letter-spacing:0;text-transform:none}
.detail-page .data-label{font:var(--fw-label) var(--fs-label)/1.5 var(--font-ui)}
@media(min-width:901px){.data-grid>.data-cell:nth-last-child(2):nth-child(odd){border-bottom:0}}
@media(max-width:900px){.data-cell{border-right:0}}
.secondary-context-note,.detail-page .secondary-context>.record-basis{max-width:var(--xp-read)}
.detail-page .secondary-context{border-top:1px solid var(--xp-line);padding-top:20px}

.relation-section .relation-directory{border:0;border-top:var(--rule-head);border-radius:0;background:transparent}
.relation-section .relation-directory>li.relation-group{display:block;min-height:0;padding:var(--sp-3) 0;border-bottom:1px solid var(--xp-line)}
.relation-section .relation-directory>li.relation-group:last-child{border-bottom:0}
.relation-target{font-size:var(--fs-input);font-weight:620;line-height:1.35}
.relation-target a{color:var(--xp-ink);text-decoration:underline;text-decoration-color:var(--xp-line-strong);text-underline-offset:3px}
.relation-target a:hover{color:var(--xp-blue-ink)}
.relation-section .relation-record-list{margin:6px 0 0;border:0;border-radius:0;background:transparent}
.relation-section .relation-record-list>li.relation-record{display:block;min-height:0;padding:6px 0;border:0}
.relation-section .relation-record-list>li.relation-record+li.relation-record{border-top:1px solid var(--xp-line-soft)}
.relation-section .relation-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.relation-section .relation-role{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:var(--r-ctrl);background:var(--xp-blue-soft);color:var(--xp-blue-ink);font:600 var(--fs-meta)/1.3 var(--font-ui)}
.relation-section .relation-role-note,.relation-section .relation-caveat,.relation-section .relation-fact-date{flex-basis:100%;color:var(--xp-mute);font:var(--fs-meta)/1.5 var(--font-ui)}
.relation-section .relation-values,.relation-section .relation-source-list{margin:6px 0 0;padding:0;list-style:none}
.relation-section .relation-values li,.relation-section .relation-source-list li{display:block;min-height:0;padding:2px 0;border:0;font-size:var(--fs-body);color:var(--xp-ink-2)}
.relation-section .relation-values li>span{color:var(--xp-mute)}
.relation-section .relation-source{min-height:44px;border:0;padding:0;color:var(--xp-blue-ink);font:600 var(--fs-label)/1.4 var(--font-ui);white-space:normal;text-decoration:underline;text-underline-offset:2px}
.relation-section .relation-source-list small{color:var(--xp-mute);font:var(--fs-meta)/1.5 var(--font-ui)}

main#main .project-explorer .explorer-intro{max-width:64ch;margin:8px 0 0;color:var(--xp-mute);font-size:var(--fs-body)}
.explorer-controls button:hover,.explorer-controls button:focus-visible{background:var(--brand-ink)}
.explorer-controls .explorer-reset:hover,.explorer-controls .explorer-reset:focus-visible{border-color:var(--xp-ink);background:var(--xp-white);color:var(--xp-ink)}
.explorer-result-bar{justify-content:space-between}
main#main .explorer-result-bar p{margin:0;color:var(--xp-mute);font-size:var(--fs-label)}
.explorer-result-bar>a,.explorer-scope a{font-weight:600}
.project-card-open{display:inline-flex;align-items:center;min-height:44px}
.explorer-pagination>span{color:var(--xp-mute);font-size:var(--fs-label)}
.explorer-pagination a:hover,.explorer-pagination a:focus-visible{border-color:var(--xp-blue);color:var(--xp-blue-ink)}
.explorer-empty h2,.explorer-unavailable h2{margin:0 0 6px}
@media(max-width:760px){
  .explorer-controls label{flex:1 1 100%}
  .explorer-controls button,.explorer-controls .explorer-reset{flex:1 1 auto;justify-content:center}
  .explorer-result-bar{flex-direction:column;gap:4px}
}

.record-preview-lede{margin:-12px 0 16px;color:var(--xp-ink-2);font-size:var(--fs-body);line-height:1.5}
.record-preview-caution{margin:0 0 16px;padding:9px 12px;background:var(--xp-earlier-bg);color:var(--xp-ink);font-size:var(--fs-label);line-height:1.5}
.record-preview-updated{margin:12px 0 0;color:var(--xp-mute);font-size:var(--fs-label)}

.home-policy-record>span:last-child{color:var(--xp-faint)}
.home-policy-record:hover>span:last-child,.home-policy-record:focus-visible>span:last-child{color:var(--xp-blue)}
main#main .home-policy-empty{margin:0;padding:14px 2px;color:var(--xp-mute);font-size:var(--fs-body)}
@media(max-width:760px){
  .home-workbench,.home-policy-section,.home-sample-section,.home-map-entry{padding:16px}
  .home-primary-action{width:100%;justify-content:center}
}

/* ==== v3 representative R1 (DESIGN D03/D04/D06–D10) ====
   Scope: the project list (.project-explorer), the v3 project record (.detail-page[data-record-layout="v3"]),
   the shared record panel (.record-panel) and meaning-word entries (.meaning-entry). Home, calculators,
   policies and the company/country detail markup are not touched here; tokens.css is unchanged.
   Type basis A2: the Conservative table reads var(--font-ui) 13px/400 (PLAN preflight). Labels use that size;
   values use the same family one step larger; headings keep their own sizes. Tabular figures for numbers.
   Surfaces: hairlines and space, no large radius, no side colour bars, no green/orange/yellow states. */
.project-explorer,.detail-page[data-record-layout="v3"],.record-panel{--v3-label:400 var(--fs-label)/1.5 var(--font-ui),system-ui,sans-serif;--v3-value:400 var(--fs-body)/1.5 var(--font-ui),system-ui,sans-serif;--v3-tint:var(--surface-rail)}

/* Meaning word (Layer A/B): a real button, dotted underline, muted text; tooltip one line; popover three lines. */
.meaning-entry{position:relative;display:inline;white-space:normal}
.meaning-term{display:inline;margin:0 0 0 4px;padding:0;min-height:0;border:0;background:none;color:var(--xp-mute);font:400 var(--fs-label)/1.4 var(--font-ui),system-ui,sans-serif;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer;white-space:nowrap}
.meaning-term:hover{color:var(--xp-ink)}
.meaning-term:focus-visible{outline:2px solid var(--xp-blue);outline-offset:2px;border-radius:0}
.meaning-term[aria-expanded="true"]{color:var(--xp-ink)}
.meaning-tip{display:none;position:absolute;left:0;bottom:calc(100% + 6px);z-index:45;max-width:min(320px,80vw);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:4px 8px;border-radius:var(--r-float);background:var(--xp-ink);color:var(--on-accent);font:400 var(--fs-meta)/1.4 var(--font-ui),system-ui,sans-serif;pointer-events:none}
.meaning-entry[data-tip="true"]>.meaning-tip{display:block}
.meaning-entry>.meaning-pop{display:none}
.meaning-entry[data-open="true"]>.meaning-pop{display:block;z-index:60;width:min(340px,calc(100vw - 24px));box-sizing:border-box;padding:10px 12px 12px;border:1px solid var(--xp-line-strong);border-radius:var(--r-float);background:var(--surface);color:var(--xp-ink);box-shadow:0 2px 10px var(--shadow-ink);white-space:normal;text-align:left}
.meaning-pop .pop-line{display:block;margin:0 0 2px;font:400 var(--fs-label)/1.45 var(--font-ui),system-ui,sans-serif;color:var(--xp-ink-2)}
.meaning-pop .pop-line:first-child{color:var(--xp-ink);font-weight:600;padding-right:64px}
.meaning-pop .pop-history{display:inline-block;margin-top:6px;font:600 var(--fs-label)/1.4 var(--font-ui),system-ui,sans-serif}
.meaning-pop .pop-sources{margin:4px 0 6px;padding:0 0 0 16px;font-size:var(--fs-label)}
.meaning-pop .evidence-close{float:right;position:static;width:auto;height:auto;min-width:0;min-height:32px;margin:-4px -4px 0 8px;padding:0 10px;border:1px solid var(--xp-line-strong);border-radius:var(--r-ctrl);background:var(--surface);color:var(--xp-ink);font:400 var(--fs-label)/1 var(--font-ui),system-ui,sans-serif;cursor:pointer}
.meaning-pop.evidence-sheet{position:fixed!important;left:0!important;right:0;bottom:0;top:auto!important;width:auto;max-height:60vh;overflow:auto;border-width:1px 0 0;padding:16px 16px 24px}
.meaning-review{color:var(--xp-mute);font-size:var(--fs-label)}

/* Project list: hairline rows, name on line 1, values on line 2. */
.project-explorer h1{max-width:none}
main#main .project-explorer .explorer-intro{font-size:var(--fs-body);margin:6px 0 0}
.project-explorer .explorer-controls input,.project-explorer .explorer-controls select,.project-explorer .explorer-controls button,.project-explorer .explorer-controls .explorer-reset{border-radius:var(--r-ctrl);min-height:40px}
.project-explorer .explorer-controls label{font:var(--v3-label);color:var(--xp-mute)}
.project-explorer .explorer-result-tools{display:inline-flex;gap:16px;align-items:baseline}
.project-explorer .list-source{margin:0;font-size:var(--fs-label);color:var(--xp-ink-2)}
.project-explorer .list-source-entry .meaning-tip{left:auto;right:0}
main#main .project-explorer .explorer-order-note{margin:0 0 10px;color:var(--xp-mute);font:var(--v3-label)}
.project-explorer .entity-directory{gap:0;border-top:var(--rule-head)}
/* One row per project: the name, then the labelled values. From 1100px the values sit beside the name in aligned columns. */
.project-explorer .entity-directory>li.project-card{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-2) var(--sp-5);align-items:start;margin:0;padding:var(--sp-3) var(--sp-2);border:0;border-bottom:1px solid var(--xp-line);border-radius:0;background:transparent;cursor:pointer}
  .project-explorer .entity-directory>li.project-card:hover{background:var(--xp-wash)}
.project-explorer .entity-directory>li.project-card[data-record-selected]{background:var(--v3-tint)}
.project-explorer .project-card .dir-record{font:var(--fw-title) var(--fs-input)/1.3 var(--font-ui),system-ui,sans-serif;letter-spacing:0;color:var(--xp-ink)}
.project-explorer .project-card .project-card-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--sp-2) var(--sp-4);margin:0}
.project-explorer .project-card .project-card-facts>div{display:block;min-width:0}
.project-explorer .project-card .project-card-facts dt{position:static;width:auto;height:auto;margin:0 0 2px;overflow:visible;clip:auto;color:var(--xp-mute);font:var(--fw-label) var(--fs-label)/1.4 var(--font-ui),system-ui,sans-serif;letter-spacing:0;text-transform:none}
.project-explorer .project-card .project-card-facts dd{display:block;margin:0;font:var(--v3-value);color:var(--xp-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
/* Project list table (R2-008, F010). Markup contract: .project-sort-bar (phone sort buttons) + .project-table-wrap > table.project-table.
   Columns Name | Status | Country | Technology | Product | Capacity from 1100px; below that each row is a stacked record whose td[data-label] shows its label. */
.project-explorer .project-sort-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);margin:0;padding:var(--sp-2) 0;border-top:var(--rule-head);border-bottom:1px solid var(--xp-line);color:var(--xp-mute);font:var(--fw-label) var(--fs-label)/1.4 var(--font-ui)}
.project-explorer .project-sort-bar .sort-link{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;padding:0 var(--sp-3);border:1px solid var(--xp-line);border-radius:var(--r-ctrl);background:var(--surface);color:var(--xp-ink);text-decoration:none}
.project-explorer .project-sort-bar .sort-link:hover,.project-explorer .project-sort-bar .sort-link:focus-visible{background:var(--xp-blue-soft);text-decoration:none}
.project-explorer .project-sort-bar .sort-link[aria-current="true"]{border-color:var(--xp-blue);background:var(--xp-blue-soft);color:var(--xp-blue-ink);font-weight:600}
.project-explorer .project-sort-bar .sort-link:not([aria-current="true"]) .sort-mark{display:none}
.project-explorer .project-table-wrap{margin:0;max-width:100%}
.project-explorer .project-table,.project-explorer .project-table tbody,.project-explorer .project-table tr,.project-explorer .project-table th,.project-explorer .project-table td{display:block;box-sizing:border-box}
.project-explorer .project-table{width:100%;border-collapse:collapse}
.project-explorer .project-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.project-explorer .project-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.project-explorer .project-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-2) var(--sp-4);align-items:start;padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--xp-line);cursor:pointer}
.project-explorer .project-table tbody tr:hover{background:var(--xp-wash)}
.project-explorer .project-table tbody tr[data-record-selected]{background:var(--v3-tint)}
.project-explorer .project-table tbody th{background:transparent}
.project-explorer .project-table tbody [data-col="name"]{grid-column:1/-1;padding:0;font:var(--fw-title) var(--fs-input)/1.3 var(--font-ui);text-align:left}
.project-explorer .project-table tbody td{padding:0;min-width:0;font:var(--v3-value);color:var(--xp-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.project-explorer .project-table tbody td::before{content:attr(data-label);display:block;margin:0 0 2px;color:var(--xp-mute);font:var(--fw-label) var(--fs-label)/1.4 var(--font-ui)}
.project-explorer .project-table tbody td[data-empty]{color:var(--xp-mute)}
.project-explorer .project-table .project-production{display:block;margin-top:2px;color:var(--xp-mute);font:400 var(--fs-label)/1.4 var(--font-ui)}
@media(min-width:1100px){
 .project-explorer .project-sort-bar{display:none}
 .project-explorer .project-table{display:table;table-layout:fixed;border-top:var(--rule-head)}
 .project-explorer .project-table caption{position:static;width:auto;height:auto;clip:auto;overflow:visible}
 .project-explorer .project-table thead{position:static;width:auto;height:auto;overflow:visible;clip:auto;display:table-header-group}
 .project-explorer .project-table tbody{display:table-row-group}
 .project-explorer .project-table tr{display:table-row}
 .project-explorer .project-table th,.project-explorer .project-table td{display:table-cell}
 .project-explorer .project-table th[data-col="name"]{width:30%}.project-explorer .project-table th[data-col="status"]{width:15%}.project-explorer .project-table th[data-col="country"]{width:14%}.project-explorer .project-table th[data-col="technology"]{width:15%}.project-explorer .project-table th[data-col="product"]{width:10%}.project-explorer .project-table th[data-col="capacity"]{width:16%}
 .project-explorer .project-table thead th{padding:0 var(--sp-2);border-bottom:1px solid var(--xp-line);color:var(--xp-mute);font:var(--fw-label) var(--fs-label)/1.4 var(--font-ui);text-align:left;vertical-align:middle;height:44px}
 .project-explorer .project-table thead th[aria-sort="ascending"],.project-explorer .project-table thead th[aria-sort="descending"]{color:var(--xp-ink);font-weight:600}
 .project-explorer .project-table thead .sort-link{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:44px;color:inherit;text-decoration:none}
 .project-explorer .project-table thead .sort-link:hover,.project-explorer .project-table thead .sort-link:focus-visible{text-decoration:underline;text-underline-offset:3px}
 .project-explorer .project-table thead th:not([aria-sort="ascending"]):not([aria-sort="descending"]) .sort-mark{display:none}
 .project-explorer .project-table th[data-col="capacity"],.project-explorer .project-table td[data-col="capacity"]{text-align:right}
 .project-explorer .project-table thead th[data-col="capacity"] .sort-link{justify-content:flex-end}
 .project-explorer .project-table tbody tr{display:table-row;padding:0;cursor:pointer}
 .project-explorer .project-table tbody td,.project-explorer .project-table tbody th[data-col="name"]{padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--xp-line);vertical-align:top}
 .project-explorer .project-table tbody tr:hover td,.project-explorer .project-table tbody tr:hover th{background:var(--xp-wash)}
 .project-explorer .project-table tbody tr[data-record-selected] td,.project-explorer .project-table tbody tr[data-record-selected] th{background:var(--v3-tint)}
 .project-explorer .project-table tbody tr:hover,.project-explorer .project-table tbody tr[data-record-selected]{background:transparent}
 .project-explorer .project-table tbody td::before{content:none}
}
.project-explorer .status-chip{border-radius:var(--r-ctrl)}
.project-explorer .explorer-pagination a,.project-explorer .explorer-empty{border-radius:0}

/* v3 project record. */
.detail-page[data-record-layout="v3"] .record-breadcrumb{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;margin:0 0 10px;color:var(--xp-mute);font:var(--v3-label)}
.detail-page[data-record-layout="v3"] .record-breadcrumb .back-link{display:inline;min-height:0;margin:0;color:var(--xp-blue-ink);font:inherit;font-weight:400;text-decoration:underline;text-underline-offset:3px}
.detail-page[data-record-layout="v3"] .record-breadcrumb [aria-current]{overflow-wrap:anywhere}
.detail-page[data-record-layout="v3"] .record-head{margin:0 0 6px}
main#main .detail-page[data-record-layout="v3"] h1{margin:0;max-width:32ch;font-size:var(--fs-page);font-weight:600}
main#main .detail-page[data-record-layout="v3"] .detail-meta-line{margin:6px 0 0;font:var(--v3-value);color:var(--xp-ink-2)}
main#main .detail-page[data-record-layout="v3"] .detail-summary{max-width:var(--xp-read);margin:14px 0 0;font-size:var(--fs-body);line-height:1.55;color:var(--xp-ink-2)}
.detail-page[data-record-layout="v3"] .cancelled-banner{border-radius:0}
.detail-page[data-record-layout="v3"] .section{margin-top:var(--sp-6)}
main#main .detail-page[data-record-layout="v3"] .section>h2,main#main .detail-page[data-record-layout="v3"] .record-sources>summary>h2{margin:0 0 var(--sp-3);font-size:var(--fs-section);font-weight:600;letter-spacing:-.01em}
.detail-page[data-record-layout="v3"] .summary-strip{display:block;margin:22px 0 0;border:0;border-radius:0;background:transparent}
.detail-page[data-record-layout="v3"] .fact-grid,.detail-page[data-record-layout="v3"] .data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;border:0;border-top:1px solid var(--xp-line);border-radius:0;background:transparent}
.detail-page[data-record-layout="v3"] .data-cell{grid-template-columns:minmax(110px,150px) minmax(0,1fr);padding:9px 0;border-right:0;border-bottom:1px solid var(--xp-line);background:transparent}
.detail-page[data-record-layout="v3"] .data-grid>.data-cell:last-child{border-bottom:1px solid var(--xp-line)}
.detail-page[data-record-layout="v3"] .data-label{font:var(--v3-label);color:var(--xp-mute)}
.detail-page[data-record-layout="v3"] .data-value,.detail-page[data-record-layout="v3"] .evidence-value{font:var(--v3-value);color:var(--xp-ink);font-variant-numeric:tabular-nums}
.detail-page[data-record-layout="v3"] .value-line{display:block}
.detail-page[data-record-layout="v3"] .detail-map-link{margin:8px 0 0;font:var(--v3-label)}
main#main .detail-page[data-record-layout="v3"] .detail-group h3{margin:0 0 var(--sp-2);color:var(--xp-ink-2);font:var(--fw-title) var(--fs-body)/1.4 var(--font-ui),system-ui,sans-serif;letter-spacing:0;text-transform:none}
.detail-page[data-record-layout="v3"] .secondary-context{border-top:0;padding-top:0}
.detail-page[data-record-layout="v3"] .record-timeline{margin:0;padding:0;list-style:none;border-top:1px solid var(--xp-line)}
.detail-page[data-record-layout="v3"] .record-timeline>li{padding:8px 0;border-bottom:1px solid var(--xp-line);font:var(--v3-value);font-variant-numeric:tabular-nums}
.detail-page[data-record-layout="v3"] .relation-section .relation-directory{border:0;border-top:1px solid var(--xp-line);border-radius:0;background:transparent}
.detail-page[data-record-layout="v3"] .relation-section .relation-directory>li.relation-group{padding:12px 0}
.detail-page[data-record-layout="v3"] .relation-section .relation-role{border-radius:0;background:var(--v3-tint);color:var(--xp-ink)}
.detail-page[data-record-layout="v3"]>.record-sources{max-width:none;margin:30px 0 0;padding:0;border-top:1px solid var(--xp-line);color:var(--xp-ink-2);font:var(--v3-label)}
.detail-page[data-record-layout="v3"]>.record-sources>summary{display:block;min-height:44px;padding:12px 0 0;cursor:pointer;list-style:none}
.detail-page[data-record-layout="v3"]>.record-sources>summary::-webkit-details-marker{display:none}
.detail-page[data-record-layout="v3"]>.record-sources>summary>h2{display:inline}
.detail-page[data-record-layout="v3"]>.record-sources>summary>h2::after{content:" +";color:var(--xp-mute);font-weight:400}
.detail-page[data-record-layout="v3"]>.record-sources[open]>summary>h2::after{content:" −"}
main#main .detail-page[data-record-layout="v3"] .record-sources h3{margin:18px 0 6px;font:600 var(--fs-label)/1.4 var(--font-ui),system-ui,sans-serif;color:var(--xp-ink)}
.detail-page[data-record-layout="v3"] .record-source-list{margin:0;padding:0 0 0 18px}
.detail-page[data-record-layout="v3"] .record-source-list li{margin:0 0 4px}
.detail-page[data-record-layout="v3"] .source-publisher{color:var(--xp-ink);font-weight:600}
.detail-page[data-record-layout="v3"] .field-evidence-wrap{overflow-x:auto;border-top:1px solid var(--xp-line)}
.detail-page[data-record-layout="v3"] .field-evidence{width:100%;border-collapse:collapse;font:var(--v3-label);font-variant-numeric:tabular-nums}
.detail-page[data-record-layout="v3"] .field-evidence th,.detail-page[data-record-layout="v3"] .field-evidence td{padding:7px 10px 7px 0;border-bottom:1px solid var(--xp-line);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.detail-page[data-record-layout="v3"] .field-evidence thead th{color:var(--xp-mute);font-weight:400}
.detail-page[data-record-layout="v3"] .field-evidence tbody th{color:var(--xp-ink);font-weight:600}
.detail-page[data-record-layout="v3"] .field-evidence tr:target,.detail-page[data-record-layout="v3"] .field-evidence tr:focus{background:var(--v3-tint);outline:0}
.detail-page[data-record-layout="v3"] .field-original{color:var(--xp-ink-2)}
.detail-page[data-record-layout="v3"] .count-line{margin:0;max-width:none}
@media(max-width:900px){.detail-page[data-record-layout="v3"] .fact-grid,.detail-page[data-record-layout="v3"] .data-grid{grid-template-columns:1fr}}
@media(max-width:760px){.detail-page[data-record-layout="v3"] .data-cell{grid-template-columns:minmax(96px,120px) minmax(0,1fr);gap:8px}}
/* R1 print fix (TASK 필수1, Sol R1-01). Scope: only pages holding the v3 record or the project list.
   The shell's 100vh .app grid with a scrolling main#main clipped everything below the first screen in print, so the
   bottom field sources and record history never reached the PDF even when opened. Release that scroller here, keep
   the opened (beforeprint) Sources & record history fully visible, print materialized popovers inline, and hide the
   interactive controls (meaning buttons, tooltips, Close, history jump links, the quick panel, the side nav). */
@media print{
  html:has(.detail-page[data-record-layout="v3"]),html:has(.project-explorer),
  html:has(.detail-page[data-record-layout="v3"]) body,html:has(.project-explorer) body{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  html:has(.detail-page[data-record-layout="v3"]) .app,html:has(.project-explorer) .app{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  html:has(.detail-page[data-record-layout="v3"]) main#main,html:has(.project-explorer) main#main{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding-right:0!important}
  html:has(.detail-page[data-record-layout="v3"]) #nav,html:has(.project-explorer) #nav,
  html:has(.detail-page[data-record-layout="v3"]) .navtoggle,html:has(.project-explorer) .navtoggle{display:none!important}
  .detail-page[data-record-layout="v3"]>.record-sources>summary>h2::after{content:""}
  .detail-page[data-record-layout="v3"] .field-evidence-wrap{overflow:visible!important}
  .detail-page[data-record-layout="v3"] .field-evidence tr{break-inside:avoid}
  .meaning-tip,.meaning-term,.meaning-pop .evidence-close,.meaning-pop .pop-history{display:none!important}
  .meaning-pop{position:static!important;display:block!important;width:auto!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important;padding:0 0 0 8px!important}
  /* Project list: the one list-level source overview prints as a short block under the result count. */
  .project-explorer .list-source-entry>.meaning-pop{display:block!important;margin:4px 0 8px;padding:0!important}
  .record-panel,.record-panel-backdrop{display:none!important}
}

/* ==== Shared quick view (DESIGN v3 6-1; R4-008, R5-001, R5-002, R3-009) ====
   One shell for project, map, country and company. 1024px and wider: a panel on the right edge over a dimmed page, width
   var(--panel-w) = clamp(620px, 44vw, 760px) (tokens.css); the page keeps its position, width and scroll. Below 1024px: one
   full-screen sheet. The head (kind, Close, title) and the action row stay put and only .record-panel-body scrolls.
   Padding is --panel-pad (24px, 16px on phones) on all three parts so the title never touches the edge. No transform
   survives the entry animation, so fixed-position source popovers inside keep viewport coordinates. */
.record-panel-backdrop{position:fixed;inset:0;z-index:999;background:var(--scrim)}
.record-panel-backdrop[hidden]{display:none}
.record-panel{position:fixed;top:0;right:0;bottom:0;left:auto;z-index:1000;box-sizing:border-box;display:flex;flex-direction:column;width:var(--panel-w);max-width:100vw;height:100vh;height:100dvh;margin:0;padding:0;overflow:hidden;border:0;border-left:1px solid var(--line);border-radius:var(--r-float) 0 0 var(--r-float);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-float);font-family:var(--font-ui),system-ui,sans-serif;animation:record-panel-in var(--dur-panel,200ms) var(--ease-panel,cubic-bezier(.23,1,.32,1))}
.record-panel[hidden]{display:none}
@keyframes record-panel-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.record-panel{animation:none}}
@media(max-width:1023.98px){.record-panel{width:100vw;border-left:0;border-radius:0;box-shadow:none}}
.record-panel-head{flex:none;padding:var(--panel-pad) var(--panel-pad) var(--sp-3);border-bottom:1px solid var(--line);background:var(--surface)}
.record-panel-body{flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--sp-4) var(--panel-pad) var(--panel-pad)}
.record-panel-actions{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--panel-pad);border-top:1px solid var(--line);background:var(--surface)}
.record-panel-actions:empty{display:none}
@media(max-width:760px){.record-panel{--panel-pad:var(--sp-4)}}

html.record-panel-open main#main,html.record-sheet-open main#main{overflow:hidden}
.record-panel-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin:0 0 var(--sp-2);color:var(--muted);font:var(--fw-label) var(--fs-label)/1.4 var(--font-ui),system-ui,sans-serif}
.record-panel-close{min-height:44px;min-width:64px;padding:0 14px;border:1px solid var(--xp-line-strong);border-radius:var(--r-ctrl);background:var(--surface);color:var(--xp-ink);font:500 var(--fs-label)/1 var(--font-ui),system-ui,sans-serif;cursor:pointer}
.record-panel-close:hover{background:var(--xp-wash)}
.record-panel-body{min-width:0}
/* Quick view stays quick: facts in two columns inside the wide modal. */
.record-panel .record-preview-facts{display:grid;grid-template-columns:minmax(0,1fr);column-gap:32px}
@media(min-width:900px){
  .record-panel .fact-grid,.record-panel .data-grid,.record-panel .record-preview-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
  .record-panel .record-preview-facts>div{border-top:1px solid var(--xp-line)}
}
/* R3-022: stage line (country quick view) reads as one tidy row of figures. */
.record-panel .record-panel-stage-line{margin:8px 0 0;color:var(--xp-ink-2);font:500 var(--fs-body)/1.5 var(--font-ui);font-variant-numeric:tabular-nums}
.record-panel-close:focus-visible,.record-panel-title:focus-visible{outline:2px solid var(--xp-blue);outline-offset:2px}
.record-panel .record-panel-title{margin:0 0 4px;font:600 var(--fs-section)/1.3 var(--font-ui),system-ui,sans-serif;letter-spacing:-.01em;color:var(--xp-ink)}
.record-panel-title:focus{outline:0}
.record-panel-title a{color:var(--xp-ink);text-decoration:none}
.record-panel-title a:hover{text-decoration:underline;text-underline-offset:3px}
.record-panel .detail-meta-line{margin:0 0 12px;font:var(--v3-value);color:var(--xp-ink-2)}
.record-panel .detail-summary{margin:12px 0 0;font:400 var(--fs-body)/1.55 var(--font-ui),system-ui,sans-serif;color:var(--xp-ink-2)}
.record-panel h3{margin:var(--sp-4) 0 var(--sp-2);font:var(--fw-title) var(--fs-body)/1.4 var(--font-ui),system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--xp-ink)}
.record-panel .fact-grid,.record-panel .data-grid{display:block;border:0;border-top:1px solid var(--xp-line);border-radius:0;background:transparent}
.record-panel .data-cell{display:grid;grid-template-columns:minmax(96px,128px) minmax(0,1fr);gap:10px;align-items:baseline;padding:8px 0;border:0;border-bottom:1px solid var(--xp-line);background:transparent}
.record-panel .data-label{font:var(--v3-label);color:var(--xp-mute)}
.record-panel .data-value,.record-panel .evidence-value{font:var(--v3-value);color:var(--xp-ink);font-variant-numeric:tabular-nums}
.record-panel .value-line{display:block}
.record-panel .detail-group h3{margin:12px 0 4px}
.record-panel-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--xp-line)}
.record-panel-list li{padding:7px 0;border-bottom:1px solid var(--xp-line);font:var(--v3-value)}
.record-panel-role{color:var(--xp-mute);font:var(--v3-label)}
.record-panel-details{margin-top:14px}
.record-panel-details>summary{min-height:40px;padding:10px 0 0;cursor:pointer;font:600 var(--fs-label)/1.4 var(--font-ui),system-ui,sans-serif}
.record-panel-status{margin:0 0 10px;padding:8px 10px;border:1px solid var(--xp-ink);font:var(--v3-label);color:var(--xp-ink)}
.record-panel-note{color:var(--xp-mute);font:var(--v3-value)}
.record-panel-foot{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);align-items:center;margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--line)}
.record-panel-full{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-ctrl);background:var(--accent);color:var(--on-accent);font:var(--fw-title) var(--fs-body)/1 var(--font-ui),system-ui,sans-serif;text-decoration:none}
.record-panel-full:hover,.record-panel-full:focus-visible{background:var(--accent-ink);color:var(--on-accent);text-decoration:none}
.record-panel-sources-toggle{min-height:40px;padding:0;border:0;background:none;color:var(--xp-ink-2);font:400 var(--fs-label)/1 var(--font-ui),system-ui,sans-serif;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}
.record-panel-sources{margin-top:8px;font:var(--v3-label);color:var(--xp-ink-2)}
.record-panel-sources ul{margin:0 0 6px;padding:0 0 0 18px}
.record-panel .record-preview-facts>div{padding:8px 0}
.record-panel .record-preview-facts dt{font:var(--v3-label);color:var(--xp-mute);margin:0 0 2px}
.record-panel .record-preview-facts dd{font:var(--v3-value)}
/* R2 country/company blocks use the same evidence typography as the representative project. */
.detail-page:has(.sources-disclosure.record-sources) .data-label,
.detail-page:has(.sources-disclosure.record-sources) .summary-label{font:400 var(--fs-label)/1.5 var(--font-ui),system-ui,sans-serif;text-transform:none;letter-spacing:normal}
.country-definition,.country-counts,.relation-project-facts,.country-stage-heading .stage-count{color:var(--xp-mute);font:400 var(--fs-label)/1.5 var(--font-ui),system-ui,sans-serif;font-variant-numeric:tabular-nums}
.country-stage-heading{font-size:var(--fs-body);font-weight:600;border-top:1px solid var(--xp-line);padding-top:16px;margin:24px 0 8px}
.country-stages a.stage-label{color:inherit;text-decoration:none}.country-stages a.stage-label:hover{text-decoration:underline}
.country-summary p,.company-summary p{max-width:75ch;font-weight:400}
.country-alpha-index{display:flex;flex-wrap:wrap;gap:4px}.country-alpha-index a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.sources-disclosure.record-sources .field-evidence-wrap{overflow:auto}
.sources-disclosure.record-sources .field-evidence{width:100%;border-collapse:collapse;font:400 var(--fs-label)/1.5 var(--font-ui),system-ui,sans-serif}
.sources-disclosure.record-sources .field-evidence th,.sources-disclosure.record-sources .field-evidence td{padding:8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--xp-line);overflow-wrap:anywhere}
.sources-disclosure.record-sources .field-original{font-variant-numeric:tabular-nums}
.record-sources .field-evidence{min-width:880px;table-layout:fixed}
.record-sources .field-evidence th,.record-sources .field-evidence td{word-break:normal;overflow-wrap:break-word}
.record-sources .field-evidence th:first-child{width:14%}
.record-sources .field-evidence th:nth-child(2),.record-sources .field-evidence th:nth-child(3){width:20%}
.record-sources .field-evidence th:nth-child(4){width:22%}
.record-sources .field-evidence th:nth-child(5),.record-sources .field-evidence th:nth-child(6){width:12%}
@media print{
 .record-sources .field-evidence{min-width:0;width:100%;font-size:var(--fs-meta)}
 html:has(.sources-disclosure.record-sources),html:has(.sources-disclosure.record-sources) body,
 html:has(.sources-disclosure.record-sources) .app,html:has(.sources-disclosure.record-sources) main#main{height:auto!important;max-height:none!important;overflow:visible!important}
 html:has(.sources-disclosure.record-sources) .app{display:block!important}
 html:has(.sources-disclosure.record-sources) #nav,html:has(.sources-disclosure.record-sources) .navtoggle{display:none!important}
 .sources-disclosure.record-sources .field-evidence-wrap{overflow:visible!important}
 .sources-disclosure.record-sources .field-evidence tr{break-inside:avoid}
}
/* Phone sheet: the page behind does not scroll (the sheet geometry is in the quick view block above). */
html.record-sheet-open,html.record-sheet-open body,html.record-sheet-open main#main{overflow:hidden}


/* ==== R3 visual polish (S-V) ====
   Same visual world: warm-neutral ink, Satoshi UI, Newsreader only for headline figures (as in converter/power).
   Selectors lead with main#main so they win over the inline <style> in index.html without !important. */

/* R3-046: the shell scroller must always reach the end of the page. dvh keeps the phone URL bar from hiding the bottom. */
.app{height:100vh;height:100dvh;min-height:0}
main#main{min-height:0;overscroll-behavior:contain;scroll-padding-bottom:56px}
main#main::after{content:"";display:block;height:24px}
#lcoh-workbench-root,.lcoh-workspace,.lcoh-workspace .lc-body,.lcoh-workspace .lc-main,.lcoh-workspace .lc-panes,.lcoh-workspace .lc-pane{height:auto;max-height:none;min-height:0}

/* R3-013: project record header is one calm block: title, meta line, hairline. */
.detail-page[data-record-layout="v3"] .record-head{margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid var(--xp-line)}
main#main .detail-page[data-record-layout="v3"] .record-head h1{margin:0 0 10px;max-width:30ch;font-size:var(--fs-page);font-weight:600;line-height:1.15;letter-spacing:-.025em;color:var(--xp-ink)}
main#main .detail-page[data-record-layout="v3"] .record-head .detail-meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;font:500 var(--fs-body)/1.45 var(--font-ui);color:var(--xp-ink-2);font-variant-numeric:tabular-nums}
.detail-page[data-record-layout="v3"] .record-head .status-chip{margin-left:0;border-radius:var(--r-ctrl)}

/* R3-014: footer reading text. */
main#main .detail-footer,main#main .foot{max-width:var(--xp-wide);color:var(--xp-mute);font:400 var(--fs-label)/1.65 var(--font-ui);font-variant-numeric:tabular-nums}
main#main .detail-footer p{max-width:78ch;margin:0 0 8px;color:inherit;font:inherit}

/* R3-023: heading block text boxes use the full record width. */
main#main .detail-page .wb-head,main#main .detail-page .wb-head>div,main#main .detail-page .wb-head>section{width:100%;max-width:none}
main#main .detail-page .wb-head p,.country-summary,.company-summary,main#main .country-summary p,main#main .company-summary p{max-width:none}

/* Country directory (DESIGN v3 6-2). The A-Z index is a horizontal row that wraps; the list is one column, two from 1100px. */
main#main .country-directory,main#main .company-directory,main#main .project-explorer{max-width:var(--xp-list)}
main#main .country-alpha-index{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);margin:var(--sp-4) 0 var(--sp-3);padding:0 0 var(--sp-3);border-bottom:1px solid var(--xp-line)}
main#main .country-alpha-index a,main#main .country-alpha-index span{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:auto;min-width:36px;min-height:36px;padding:0 var(--sp-2);border:0;border-radius:var(--r-ctrl);background:transparent;color:var(--xp-blue-ink);font:600 var(--fs-label)/1 var(--font-ui);text-decoration:none}
main#main .country-alpha-index a:hover,main#main .country-alpha-index a:focus-visible{background:var(--xp-blue-soft)}
main#main .country-alpha-index span{color:var(--xp-faint)}
main#main .country-directory ul.entity-directory{display:block;margin:0;padding:0;list-style:none;border-top:var(--rule-head)}
  @media(min-width:1100px){main#main .country-directory ul.entity-directory{column-count:2;column-gap:var(--sp-6)}}
main#main .country-directory ul.entity-directory>li.country-directory-row{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"lead name" "lead counts";column-gap:var(--sp-3);row-gap:2px;align-items:center;min-height:56px;margin:0;padding:var(--sp-3) 0;border:0;border-bottom:1px solid var(--xp-line);border-radius:0;background:transparent;break-inside:avoid;scroll-margin-top:var(--sp-4)}
main#main .country-directory ul.entity-directory>li.country-directory-row:hover{background:var(--xp-wash)}
main#main .country-row-lead{grid-area:lead;display:inline-flex;align-items:center;gap:var(--sp-2);min-width:64px;color:var(--xp-mute);font:var(--fw-label) var(--fs-label)/1 var(--font-ui)}
.country-row-lead img.country-flag{width:24px;height:18px;object-fit:contain;border-radius:0;flex:0 0 auto}.country-row-lead img.country-flag[hidden]{display:none}
main#main .country-directory .country-name{grid-area:name;justify-self:start;min-height:0;color:var(--xp-ink);font:var(--fw-title) var(--fs-input)/1.3 var(--font-ui);text-decoration:none}
main#main .country-directory .country-name::after{content:"";position:absolute;inset:0}
main#main .country-directory .country-name:hover,main#main .country-directory .country-name:focus-visible{color:var(--xp-blue-ink);text-decoration:underline;text-underline-offset:3px}
main#main .country-directory li.country-directory-row>small{grid-area:counts;color:var(--xp-mute);font:400 var(--fs-label)/1.4 var(--font-ui);font-variant-numeric:tabular-nums;text-align:left}
  @media(max-width:760px){main#main .country-alpha-index{gap:0;margin:var(--sp-3) 0 var(--sp-2);padding-bottom:var(--sp-2)}main#main .country-alpha-index a,main#main .country-alpha-index span{min-width:44px;min-height:44px;padding:0}main#main .country-directory ul.entity-directory>li.country-directory-row{min-height:64px}}

/* ---- Price calculators (investment, Quick, estimate): same type and spacing as converter/power ---- */
main#main .h2p-price,main#main .h2p-price button,main#main .h2p-price input,main#main .h2p-price select{font-family:var(--font-ui)}

/* R3-002: headline figure takes the converter/power number face (Newsreader, tabular lining figures). */
main#main .h2p-price .result .big,main#main #tool-result .big{font-family:var(--font-figure);font-weight:500;font-size:var(--fs-figure);line-height:1.02;letter-spacing:-.02em;color:var(--xp-ink);font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
main#main .h2p-price .result .big small,main#main #tool-result .big small{font:500 var(--fs-input)/1.2 var(--font-ui);letter-spacing:0;color:var(--xp-ink-2);margin-left:8px}
main#main .h2p-price .result{border:1px solid var(--xp-line);border-radius:0;box-shadow:none;padding:24px 26px}
main#main .h2p-price .result h4{margin:0 0 12px;font:600 var(--fs-meta)/1.4 var(--font-ui);letter-spacing:0;text-transform:none;color:var(--xp-mute)}
main#main .h2p-price .result .net{font:400 var(--fs-body)/1.5 var(--font-ui);color:var(--xp-ink-2)}
main#main .h2p-price .kv{gap:0 20px;font:400 var(--fs-body)/1.4 var(--font-ui)}
main#main .h2p-price .kv .k{color:var(--xp-ink-2);padding:8px 0;border-bottom:1px solid var(--xp-line)}
main#main .h2p-price .kv .v{padding:8px 0;border-bottom:1px solid var(--xp-line);font:700 var(--fs-body)/1.4 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--xp-ink)}

/* R3-029: waterfall table follows the converter result table: hairline rows, 13px labels, bold tabular values. */
main#main .h2p-price table.ri-wf{width:100%;margin:12px 0 0;border:0;border-radius:0;background:transparent;border-collapse:collapse;font:400 var(--fs-label)/1.4 var(--font-ui)}
main#main .h2p-price table.ri-wf th,main#main .h2p-price table.ri-wf td{padding:9px 0;border-bottom:1px solid var(--xp-line);background:transparent;color:var(--xp-ink-2);font:400 var(--fs-label)/1.4 var(--font-ui);letter-spacing:0;text-transform:none;text-align:left}
main#main .h2p-price table.ri-wf td:last-child,main#main .h2p-price table.ri-wf td.r,main#main .h2p-price table.ri-wf td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--xp-ink)}
main#main .h2p-price table.ri-wf tbody tr:hover td{background:transparent}
main#main .h2p-price table.ri-wf tr:last-child td,main#main .h2p-price table.ri-wf tr:last-child th{border-bottom:0}

/* R3-003: investment sliders use the same native control as the workbench (.lc-range); inputs keep their praised box. */
main#main .h2p-price .calc .fslider{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;height:20px;margin:4px 0;border-radius:0;background:transparent;accent-color:var(--accent-wb);cursor:pointer}
main#main .h2p-price .calc .fslider:focus{box-shadow:none}
main#main .h2p-price .calc .fslider:focus-visible{outline:2px solid var(--accent-wb);outline-offset:3px}
main#main .h2p-price .calc .fslider::-moz-range-thumb{width:16px;height:16px;border:0;background:var(--accent-wb);box-shadow:none}
main#main .h2p-price .calc .fsticks,main#main .h2p-price .calc .fieldchip{font-family:var(--font-num);font-size:var(--fs-meta);font-variant-numeric:tabular-nums}
main#main .h2p-price .calc .fsticks{color:var(--xp-mute)}

/* R3-039/043/045: compact rectangular controls, no pills. */
main#main .h2p-price .calc .presets button,main#main .h2p-price .calc .fieldchip,main#main .h2p-price [role="tab"],main#main .h2p-price [class*="pill"],main#main .h2p-price [class*="chip"]{border-radius:var(--r-ctrl,4px)}
main#main .h2p-price .calc .presets button{font:500 var(--fs-label)/1 var(--font-ui);padding:0 12px;min-height:32px}
main#main .h2p-price .calc .field label{font:500 var(--fs-label)/1.4 var(--font-ui);color:var(--xp-ink-2)}
main#main .h2p-price .calc .field select{font:500 var(--fs-body)/1.35 var(--font-ui);text-overflow:ellipsis}

/* R3-005/007: formula region. Transparent, hairline only, scrolls sideways when wide; no white edge blocks or fades. */
main#main .ri-basis-math,main#main .calc-formula{margin:0;padding:8px 0;background:transparent;border:0;border-radius:0;box-shadow:none;-webkit-mask:none;mask:none;overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:thin;color:var(--xp-ink)}
main#main .ri-basis-math::before,main#main .ri-basis-math::after,main#main .calc-formula::before,main#main .calc-formula::after{content:none;display:none}
main#main .ri-basis-math math{display:block math;margin:0 auto;padding:0;background:transparent;font-size:var(--fs-input);color:var(--xp-ink);font-family:"STIX Two Math","Cambria Math","Latin Modern Math","Newsreader",serif}
/* R2-031 / R3-005 / R3-006: a basis formula split into whole-equation rows (.ri-math-rows > math) wraps instead of scrolling.
   Each row keeps its size; a row wider than the column falls back to the existing sideways scroll of .ri-basis-math. */
main#main .ri-basis-math .ri-math-rows{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-5);margin:0}
main#main .ri-basis-math .ri-math-rows>math{display:block math;margin:0;max-width:100%;min-width:0}
main#main .ri-basis-live{background:transparent;border:0;box-shadow:none}
main#main .calc-formula-line{display:block;margin:0 0 4px;padding:0;background:transparent;border:0;color:var(--xp-ink);font:500 var(--fs-input)/1.6 var(--font-figure);font-variant-numeric:lining-nums tabular-nums;white-space:normal;overflow-wrap:anywhere}

/* Reading helpers for numbers shared by the data pages. */
main#main .project-card-facts dd,main#main .data-value,main#main .summary-value{font-variant-numeric:tabular-nums}

/* Leaflet MarkerCluster defaults are green/yellow/orange and read as stage or warning colours. Specificity (0,2,0) beats the lazily loaded vendor sheet. */
.marker-cluster.marker-cluster-small,.marker-cluster.marker-cluster-medium,.marker-cluster.marker-cluster-large{background-color:color-mix(in srgb,var(--brand) 28%,transparent)}
.marker-cluster.marker-cluster-small div,.marker-cluster.marker-cluster-medium div,.marker-cluster.marker-cluster-large div{background-color:var(--brand);color:var(--surface);font-family:var(--font-num);font-weight:600}
