/* Reuse bundled calculator fonts on direct entry, before any kit tool is visited. */
@font-face{font-family:Newsreader;src:url('/calc-kit/fonts/newsreader-opsz-vf.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@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;font-display:swap}
@font-face{font-family:Satoshi;src:url('/calc-kit/fonts/satoshi-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{
  --font-display:"Satoshi",system-ui,-apple-system,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  --font-ui:"Satoshi",system-ui,-apple-system,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;
  --display:var(--font-display);--sans:var(--font-ui);--mono:var(--font-mono);

  /* ==== Type roles (DESIGN v3 5-1). One set of sizes; every surface reads these, none writes its own number. ====
     meta 12 (dates, publishers, result counts) · label 13 (field names, menu group names, table heads) · body 14.5 ·
     input 16 (control text; keeps phone browsers from zooming) · section 20 · page 28 · figure 40 (result numbers). */
  --fs-meta:12px;--fs-label:13px;--fs-body:14.5px;--fs-input:16px;
  --fs-section:20px;--fs-page:28px;--fs-figure:40px;
  --lh-body:1.55;--lh-title:1.25;--fw-label:500;--fw-title:600;
  /* Earlier names stay as aliases of the roles above so an old rule follows the same value. */
  --fs-cap:var(--fs-meta);--fs-sm:var(--fs-label);--fs-h3:var(--fs-section);--fs-h2:var(--fs-page);--fs-title:var(--fs-page);--fs-display:var(--fs-figure);
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;
  --paper:#f7f7f6;--surface:#ffffff;--ink:#23262b;--muted:#5f6469;
  /* Text and line steps shared by every surface (earlier per-page copies such as --xp-ink-2 and kit --ink-3 alias these). */
  --ink-2:#3d434b;--ink-3:var(--muted);--faint:#6b727a;--line-strong:rgba(35,38,43,.28);--line-2:var(--line-strong);--line-soft:var(--line2);
  --on-accent:#ffffff;--accent-ink:#1f4a80;--accent-soft:#e7f0fa;--surface-2:var(--surface-subtle);--rail:var(--surface-rail);
  --scrim:rgba(18,22,25,.28);--shadow-ink:rgba(18,22,25,.18);--focus-ring:0 0 0 3px rgba(43,93,159,.28);
  --warn:var(--status-warning-ink);--warn-soft:var(--status-warning-background);--error:var(--status-error-ink);--error-soft:var(--status-error-background);
  /* ==== Corners (DESIGN v3 5-1): controls 4, floating surfaces 8, everything else 0; round marks only for state dots and pills. ==== */
  --r-ctrl:4px;--r-float:8px;--r-none:0;--r-pill:999px;--r-round:50%;
  --r-sm:var(--r-ctrl);--r-md:var(--r-float);--r-lg:var(--r-float);
  --shadow-1:none;--shadow-sheet:none;--shadow-pop:none;
  /* The one soft shadow a floating surface (quick view, popover) may carry. */
  --shadow-float:0 8px 24px rgba(18,22,25,.18);
  /* One hairline for the top of a list, table or section: replaces the earlier 2px ink rules. */
  --rule-head:1px solid var(--ink);
  /* Quick view geometry (DESIGN v3 6-1): 620 to 760px at 1024px and wider, full screen below. */
  --panel-w-min:620px;--panel-w-max:760px;--panel-w:clamp(var(--panel-w-min),44vw,var(--panel-w-max));--panel-pad:var(--sp-5);

  --bg:var(--paper);--line:rgba(35,38,43,.12);--line2:rgba(35,38,43,.07);
  --brand:#1a1d21;--brand-ink:#000000;--soft:#ececeb;--accent:#2b5d9f;--link:var(--accent);
  --oi-black:#000000;--oi-orange:#E69F00;--oi-sky:#56B4E9;--oi-green:#009E73;
  --oi-yellow:#F0E442;--oi-blue:#0072B2;--oi-vermilion:#D55E00;--oi-purple:#CC79A7;
  /* Color-blind-safe status colors and the existing lifecycle-stage ramp. */
  --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;
  --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;--content-wide:min(1560px,100%);
  --radius:var(--r-ctrl);--shadow:var(--shadow-1);
  --status-fresh-border:#cfe3da;
  --transparent:transparent;
  --control-hover-background:#ececec;
  --focus-ring-shadow:rgba(35,38,43,.2);
  --status-warning-ink:#3d434b;--status-warning-edge:1px dashed var(--ink-2);
  --surface-subtle:#f9f9f8;
  --surface-rail:#f3f4f3;
  --map-tooltip-shadow:rgba(0,0,0,.7);
  --draft-border:#c4ccd6;
  --intel-state-unchecked-background:#eef0f2;
  --intel-state-fresh-background:#e3f3ea;
  --intel-state-stale-background:#e9edf2;
  --intel-state-error-background:#fae7e3;
  --drawer-backdrop:rgba(18,28,22,.28);
  --drawer-shadow:rgba(20,40,30,.14);
  --verdict-border:#d8dee6;
  --verdict-background:#f7f9fc;
  --verdict-empty-border:#b6bec9;
  --trust-partner-ink:#245d91;
  --fade-transparent-white:rgba(255,255,255,0);
  --table-edge-shadow:rgba(20,40,30,.12);
  --table-edge-transparent:rgba(20,40,30,0);
  --chart-white-overlay:rgba(255,255,255,.5);
  --status-warning-background:#e9edf2;
  --source-hover-background:#e7f0fa;
  --loading-placeholder:#e6e2d8;
  --status-error-ink:#642e26;
  --status-error-border:#d5a49c;
  --homefield-dot:#eceeec;
  --header-background:#fbfbfa;
  --nav-button-hover-background:#e9ebea;
  --surface-active-background:#e2e4e3;
  --freshness-border:#c5ddd4;
  --chart-series-dark:#34383c;
  --chart-series-light:#7fb2dc;
  --chart-series-muted:#8c9296;
  --chart-segment-neutral:#70767a;
  --chart-segment-muted:#b0b5b8;
  --chart-primary:#4e5458;
  --chart-band:#d4d8d9;
  --table-header-background:#eef0ef;
  --table-row-background:#f1f3f2;
  --table-row-focus-background:#e9ecea;
  --policy-hover-background:#eef3f8;
  --policy-loading-placeholder:#dfe2e1;
  --analytics-panel-shadow:rgba(18,22,25,.18);
  --drawer-overlay:rgba(18,22,25,.28);
  --drawer-background:#fafaf9;
  --spec-table-background:#f4f4f2;

  --status-error-background:#f9e9e6;
  --intel-state-fresh-ink:#0f684a;
  --intel-state-warning-ink:#3d434b;
  --intel-state-error-ink:#9d3c31;
  --toast-shadow:rgba(18,22,25,.22);
  --mobile-summary-shadow:rgba(25,29,33,.10);
  --policy-status-unknown-ink:#3d434b;
  --focus-ring-shadow-strong:rgba(35,38,43,.24);

  /* R3 (S-V): one reading voice for prices, tables and chart labels.
     --font-figure is the converter/power headline face (Newsreader from calc-kit, Satoshi if it is not loaded).
     --font-num is Satoshi with tabular figures: use it instead of --font-mono for numbers in prose, tables and charts.
     --font-mono stays defined for real code/identifier text only. */
  --font-figure:"Newsreader","Satoshi",system-ui,-apple-system,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  --font-num:"Satoshi",system-ui,-apple-system,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  --ctl-h:40px;
  --ctl-line:rgba(35,38,43,.22);
  --accent-wb:#155f9a;
  --chart-axis-ink:#4a5a6b;
  --chart-grid:#e3e9ef;
  --modal-backdrop:rgba(18,22,25,.46);
}
