/* =========================================================
   SLC Recommendation Dashboard — Prototype
   Palette: deep navy (NI Executive feel) + teal/amber/coral accents
   Type: Satoshi (UI) + JetBrains Mono (numerals)
========================================================= */

:root{
  /* Palette */
  --ink:        #0b1f3a;
  --ink-2:      #142b4a;
  --ink-3:      #243d62;
  --paper:      #f6f7fb;
  --paper-2:    #ffffff;
  --line:       #e3e7ef;
  --line-2:     #cfd6e3;
  --muted:      #5a6a85;
  --muted-2:    #8693a8;

  --green:      #00a878;
  --green-2:    #00c48c;
  --green-soft: #d9f5ea;

  --red:        #d64545;
  --red-2:      #ef5b5b;
  --red-soft:   #fde0e0;

  --amber:      #d99214;
  --amber-soft: #fdecca;

  --teal:       #0aa1b1;

  /* Tokens */
  --radius:     14px;
  --radius-lg:  20px;
  --shadow-sm:  0 1px 2px rgba(11,31,58,.06), 0 1px 4px rgba(11,31,58,.04);
  --shadow-md:  0 8px 24px rgba(11,31,58,.10), 0 2px 6px rgba(11,31,58,.06);
  --shadow-lg:  0 18px 50px rgba(11,31,58,.18), 0 4px 14px rgba(11,31,58,.10);
  --ease:       cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Satoshi','Inter',system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  padding-top:170px; /* room for floating decision dock + NI break-even mini-strip */
}
h1,h2,h3{font-weight:700;letter-spacing:-.01em;color:var(--ink)}
h2{font-size:18px;margin:0}
h3{font-size:15px;margin:0}
p{margin:0}
button{font-family:inherit;cursor:pointer}
output{font-family:'JetBrains Mono',monospace}

/* ============ FLOATING DECISION DOCK ============ */
.decision-dock{
  position:fixed;
  top:18px; left:50%; transform:translateX(-50%);
  z-index:50;
  width:min(860px, calc(100vw - 28px));
  max-width:calc(100vw - 16px);
  display:flex; flex-direction:column; align-items:center; gap:6px;
  pointer-events:none;
}
.decision-pill{
  pointer-events:auto;
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:18px;
  padding:12px 18px 12px 14px;
  border:none;
  border-radius:999px;
  background:linear-gradient(180deg, var(--green) 0%, #00926a 100%);
  color:#fff;
  box-shadow:var(--shadow-lg);
  text-align:left;
  transition:background .45s var(--ease), box-shadow .35s var(--ease), transform .25s var(--ease);
}
.decision-pill:hover{transform:translateY(-1px)}
.decision-pill.state-no{
  background:linear-gradient(180deg, var(--red) 0%, #b03232 100%);
}
.decision-pill.state-marginal{
  background:linear-gradient(180deg, var(--amber) 0%, #b8770c 100%);
}
.decision-pill.state-unfunded{
  background:linear-gradient(180deg, #6b4ea8 0%, #4a3580 100%);
}

.decision-pulse{
  width:14px;height:14px;border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 0 rgba(255,255,255,.7);
  animation:pulse 2.2s var(--ease) infinite;
  flex:none;
}
@keyframes pulse{
  0%   {box-shadow:0 0 0 0 rgba(255,255,255,.55)}
  70%  {box-shadow:0 0 0 14px rgba(255,255,255,0)}
  100% {box-shadow:0 0 0 0 rgba(255,255,255,0)}
}

.decision-meta{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.decision-label{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  opacity:.85;
  font-weight:500;
}
.decision-state{
  font-size:22px;
  font-weight:900;
  letter-spacing:-.01em;
  white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}

.decision-readout{
  display:flex;align-items:center;gap:14px;
  font-family:'JetBrains Mono',monospace;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  padding:8px 16px;
  border-radius:999px;
}
.decision-bcr,.decision-npv,.decision-ni,.decision-payback{display:flex;flex-direction:column;line-height:1.05}
.decision-bcr-label,.decision-npv-label,.decision-ni-label,.decision-payback-label{
  font-size:9px;text-transform:uppercase;letter-spacing:.14em;opacity:.85;font-family:'Satoshi',sans-serif;font-weight:600;
  margin-bottom:2px;
}
.decision-bcr-value,.decision-npv-value,.decision-ni-value,.decision-payback-value{font-size:18px;font-weight:700}
.decision-divider{width:1px;height:22px;background:rgba(255,255,255,.3)}

.decision-hint{
  pointer-events:auto;
  font-size:12px;color:var(--muted);
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(6px);
  padding:3px 10px;border-radius:999px;
  border:1px solid var(--line);
}

/* ============ HEADER ============ */
.site-head{
  max-width:1240px;margin:8px auto 16px;padding:0 24px;
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:38px;height:38px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-weight:700;font-size:16px;color:var(--ink)}
.brand-sub{font-size:12px;color:var(--muted)}
.head-meta{display:flex;gap:8px;flex-wrap:wrap}
.head-chip{
  font-size:11px;font-weight:500;
  background:var(--paper-2);border:1px solid var(--line);
  padding:5px 10px;border-radius:999px;color:var(--ink-3);
  letter-spacing:.02em;
}
.head-chip-muted{color:var(--muted)}

/* ============ MAIN GRID ============ */
.grid{
  max-width:1240px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:20px;
}
@media (max-width:920px){ .grid{grid-template-columns:minmax(0,1fr)} body{padding-top:188px} }
@media (max-width:640px){
  body{padding-top:175px}
  .grid{padding:0 12px;gap:14px}
}

.card{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:22px 22px 24px;
  box-shadow:var(--shadow-sm);
  min-width:0;
}
@media (max-width:640px){
  .card{ padding:16px 14px 18px; }
}
.card-head{
  display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;
}
.card-intro{font-size:13px;color:var(--muted);margin-bottom:18px;max-width:48ch}
.card-tag{
  font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  background:var(--ink); color:#fff;
  padding:5px 10px;border-radius:999px;
}

.ghost-btn{
  background:transparent;border:1px solid var(--line-2);
  font-size:12px;color:var(--ink-3);font-weight:500;
  padding:6px 12px;border-radius:999px;
  transition:background .2s var(--ease), border-color .2s var(--ease);
}
.ghost-btn:hover{background:var(--paper);border-color:var(--ink-3)}

/* ============ SLIDERS ============ */
.sliders{display:flex;flex-direction:column;gap:18px;margin-top:8px}
.slider-row{display:flex;flex-direction:column;gap:6px;min-width:0}
.slider-row input[type=range]{min-width:0;width:100%}
.slider-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.slider-head label{font-size:13px;font-weight:500;color:var(--ink-2)}
.slider-head output{
  font-size:14px;font-weight:700;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);
  padding:2px 9px;border-radius:6px;
  min-width:64px;text-align:right;
}
.slider-scale{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted-2);font-family:'JetBrains Mono',monospace}

/* range input */
input[type=range]{
  -webkit-appearance:none;appearance:none;
  width:100%;height:6px;border-radius:3px;
  background:linear-gradient(90deg,var(--teal) 0%, var(--teal) var(--p,50%), var(--line) var(--p,50%), var(--line) 100%);
  outline:none;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:18px;height:18px;border-radius:50%;
  background:#fff;border:2px solid var(--ink);
  box-shadow:var(--shadow-sm);cursor:grab;
  transition:transform .15s var(--ease);
}
input[type=range]::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}
input[type=range]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;
  background:#fff;border:2px solid var(--ink);box-shadow:var(--shadow-sm);
}

.slider-row.driver-hot input[type=range]{
  background:linear-gradient(90deg, var(--amber) 0%, var(--amber) var(--p,50%), var(--amber-soft) var(--p,50%), var(--amber-soft) 100%);
}
.slider-row.driver-hot .slider-head label::after{
  content:"driver"; margin-left:8px;
  font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--amber-soft);color:#7a510a;
  padding:2px 6px;border-radius:4px;
}

/* ============ SOCIETAL BLOCK (collapsible) ============ */
.societal-block{
  margin-top:22px; padding-top:18px;
  border-top:1px dashed var(--line-2);
}
.societal-summary{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  cursor:pointer; list-style:none;
  padding:4px 0;
  user-select:none;
}
.societal-summary::-webkit-details-marker{ display:none }
.societal-chevron{
  display:inline-block; width:14px;
  font-size:18px; font-weight:600; color:var(--ink-3);
  transition:transform .2s var(--ease);
}
.societal-block[open] .societal-chevron{ transform:rotate(90deg) }
.societal-title{ font-size:14px; font-weight:700; color:var(--ink); letter-spacing:-.01em }
.societal-hint{ font-size:12px; color:var(--muted); flex:1 }
.societal-share-tag{
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:700;
  background:var(--paper); border:1px solid var(--line);
  padding:3px 9px; border-radius:999px;
  color:var(--ink-3);
}
.societal-share-tag.heavy{
  background:#f3edf9; border-color:#c8b5e3; color:#4a3580;
}
.societal-intro{
  font-size:12px; color:var(--muted);
  margin:10px 0 14px; max-width:52ch;
}
.slider-foot{
  font-size:11px; color:var(--muted-2);
  margin:4px 0 0; line-height:1.4;
}

.aadt-trajectory{
  display:flex; flex-wrap:wrap; gap:6px;
  margin:8px 0 0;
}
.aadt-traj-chip{
  display:inline-flex; align-items:center; gap:5px;
  padding:3px 8px; border-radius:999px;
  background:rgba(10,161,177,0.08);
  border:1px solid rgba(10,161,177,0.22);
  font-size:10.5px; color:var(--muted);
  font-family:'JetBrains Mono',monospace;
  letter-spacing:0.02em;
}
.aadt-traj-chip strong{
  color:var(--ink); font-weight:600;
}

.strategic-divider{
  display:flex; align-items:center; gap:10px;
  margin:18px 0 4px;
  font-size:10.5px; font-weight:700; color:#6b4ea8;
  text-transform:uppercase; letter-spacing:.08em;
}
.strategic-divider::before, .strategic-divider::after{
  content:''; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, #c8b5e3, transparent);
}
.strategic-divider-label{
  background:#f3edf9; border:1px solid #c8b5e3;
  padding:3px 9px; border-radius:999px;
  white-space:nowrap;
}
.slider-row-strategic input[type=range]{
  background:linear-gradient(90deg, #6b4ea8 0%, #6b4ea8 var(--p,0%), #ede4f7 var(--p,0%), #ede4f7 100%);
}
.slider-row-strategic input[type=range]::-webkit-slider-thumb{ border-color:#6b4ea8 }
.slider-row-strategic input[type=range]::-moz-range-thumb{ border-color:#6b4ea8 }
.slider-row-strategic .slider-head output{
  background:#f3edf9; border-color:#c8b5e3; color:#4a3580;
}

.revenue-divider{ color:#067252 }
.revenue-divider::before, .revenue-divider::after{
  background:linear-gradient(90deg, transparent, #9bd9be, transparent);
}
.revenue-divider-label{
  background:var(--green-soft); border-color:#9bd9be; color:#067252;
}
.slider-row-revenue input[type=range]{
  background:linear-gradient(90deg, var(--green) 0%, var(--green) var(--p,0%), #d9f5ea var(--p,0%), #d9f5ea 100%);
}
.slider-row-revenue input[type=range]::-webkit-slider-thumb{ border-color:var(--green) }
.slider-row-revenue input[type=range]::-moz-range-thumb{ border-color:var(--green) }
.slider-row-revenue .slider-head output{
  background:var(--green-soft); border-color:#9bd9be; color:#067252;
}

/* ============ FUNDING BLOCK ============ */
.funding-block{
  margin-top:24px; padding-top:20px;
  border-top:1px dashed var(--line-2);
}
.funding-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;
}
.funding-head h3{font-size:14px;font-weight:700;letter-spacing:-.01em}
.funding-sum{
  font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;
  background:var(--green-soft);color:#067252;
  padding:3px 8px;border-radius:6px;
  transition:background .25s var(--ease), color .25s var(--ease);
}
.funding-sum.off{ background:var(--red-soft); color:#9a2727; }
.funding-intro{font-size:12px;color:var(--muted);margin-bottom:14px;max-width:48ch}

.funding-rows{display:flex;flex-direction:column;gap:14px;margin-bottom:12px}
.funding-row{display:grid;grid-template-columns:1fr;gap:4px}
.funding-label{
  display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;
  font-size:13px;
}
.funding-swatch{
  width:12px;height:12px;border-radius:3px;background:var(--c,#ccc);
  display:inline-block;
}
.funding-name{font-weight:500;color:var(--ink-2)}
.funding-label output{
  font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--ink);
  min-width:42px;text-align:right;
}
.funding-amount{
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--muted);
  text-align:right;margin-top:-2px;
}

/* funder-specific slider colours */
.funding-row[data-funder="ni"] input[type=range]{
  background:linear-gradient(90deg,var(--ink) 0%, var(--ink) var(--p,40%), var(--line) var(--p,40%), var(--line) 100%);
}
.funding-row[data-funder="uk"] input[type=range]{
  background:linear-gradient(90deg,var(--teal) 0%, var(--teal) var(--p,45%), var(--line) var(--p,45%), var(--line) 100%);
}
.funding-row[data-funder="ie"] input[type=range]{
  background:linear-gradient(90deg,var(--green) 0%, var(--green) var(--p,15%), var(--line) var(--p,15%), var(--line) 100%);
}

/* stacked bar */
.funding-bar{
  display:flex;height:10px;border-radius:5px;overflow:hidden;
  background:var(--line);margin-top:8px;
}
.funding-bar-seg{ height:100%; transition:width .15s var(--ease); }
.seg-ni{background:var(--ink)}
.seg-uk{background:var(--teal)}
.seg-ie{background:var(--green)}

/* ============ NI STRIP ============ */
.ni-strip{
  background:linear-gradient(180deg, #f0f4fb 0%, #e8edf6 100%);
  border:1px solid var(--line-2);
  border-radius:var(--radius);
  padding:14px 16px 16px;
  margin-bottom:18px;
}
.ni-strip-head{
  display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;
}
.ni-strip-head h3{font-size:13px;font-weight:700;color:var(--ink)}
.ni-strip-tag{
  font-size:10.5px;font-weight:600;letter-spacing:.04em;
  background:var(--paper-2);border:1px solid var(--line);
  color:var(--ink-3);
  padding:3px 9px;border-radius:999px;
}
.ni-strip-tag.warn{background:var(--amber-soft);border-color:#e9b96b;color:#7a510a}
.ni-strip-tag.bad{background:var(--red-soft);border-color:#e9a5a5;color:#9a2727}
.ni-strip-tag.good{background:var(--green-soft);border-color:#9bd9be;color:#067252}

.ni-strip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:640px){.ni-strip-grid{grid-template-columns:1fr}}
.funder-strip-intro{
  font-size:11.5px; color:var(--muted);
  margin:-2px 0 10px;
}
.ni-metric{
  background:var(--paper-2);border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;
  display:flex;flex-direction:column;gap:2px;
  position:relative;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.funder-card-head{
  display:flex;align-items:center;gap:6px;margin-bottom:4px;
}
.funder-card-name{
  font-size:11.5px;font-weight:600;color:var(--ink-2);flex:1;
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.funder-card.fail .funder-card-name,
.funder-card.dormant .funder-card-name,
.funder-card.below-test .funder-card-name{
  padding-right:46px; /* room for the absolute-positioned tag */
}
.funder-share{
  font-family:'JetBrains Mono',monospace;
  font-size:10.5px;font-weight:700;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);
  padding:1px 6px;border-radius:4px;
}
.ni-metric-label{font-size:10px;color:var(--muted);font-weight:500;letter-spacing:.02em}
.ni-metric-value{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.ni-metric-foot{font-size:10px;color:var(--muted-2);line-height:1.35}

/* Funder pass / fail / dormant states */
.funder-card.fail{
  background:#fff5f5; border-color:#e9a5a5;
}
.funder-card.fail .ni-metric-value{ color:#9a2727 }
.funder-card.fail::after{
  content:"✕ fails";
  position:absolute; top:8px; right:8px;
  background:var(--red); color:#fff;
  font-size:9px; font-weight:700; letter-spacing:.05em;
  padding:2px 6px; border-radius:4px;
}
.funder-card.pass{
  background:#f4fbf8; border-color:#9bd9be;
}
.funder-card.pass .ni-metric-value{ color:#067252 }
.funder-card.dormant{
  opacity:.45;
}
.funder-card.dormant .ni-metric-value{ color:var(--muted) }
.funder-card.dormant::after{
  content:"not contributing";
  position:absolute; top:8px; right:8px;
  background:var(--line); color:var(--muted);
  font-size:9px; font-weight:600; letter-spacing:.04em;
  padding:2px 6px; border-radius:4px;
}
.funder-card.below-test{
  background:var(--paper-2);
}
.funder-card.below-test::after{
  content:"goodwill share";
  position:absolute; top:8px; right:8px;
  background:var(--paper); color:var(--muted);
  font-size:9px; font-weight:600; letter-spacing:.04em;
  border:1px solid var(--line);
  padding:2px 6px; border-radius:4px;
}

/* ============ TAB STRIP ============ */
.tab-strip{
  display:flex; gap:2px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  padding:3px;
  margin:6px 0 18px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.tab-strip::-webkit-scrollbar{display:none}
.tab-btn{
  flex:0 0 auto; appearance:none; background:transparent; border:none;
  font-family:inherit;
  font-size:12.5px; font-weight:600; color:var(--muted);
  padding:8px 14px;
  border-radius:8px;
  cursor:pointer;
  transition:background .15s var(--ease), color .15s var(--ease);
  letter-spacing:.01em;
  white-space:nowrap;
  flex-shrink:0;
}
.tab-btn:hover{ color:var(--ink-2) }
.tab-btn.active{
  background:var(--ink); color:#fff;
  box-shadow:var(--shadow-sm);
}
@media (max-width:640px){
  .tab-btn{ font-size:11.5px; padding:7px 9px; }
}
.tab-panel{ display:none }
.tab-panel.active{ display:block }

/* ============ QCRA BLOCK ============ */
.qcra-block, .phased-block, .carbon-block{
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px 18px;
  margin-bottom:16px;
}
.qcra-head, .phased-head, .carbon-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:10px; margin-bottom:8px; flex-wrap:wrap;
}
.qcra-head h3, .phased-head h3, .carbon-head h3{
  font-size:14px; font-weight:700; letter-spacing:-.01em;
}
.qcra-tag, .phased-tag, .carbon-tag{
  font-size:10.5px; font-weight:600; letter-spacing:.04em;
  background:var(--paper-2); border:1px solid var(--line);
  padding:3px 9px; border-radius:999px; color:var(--ink-3);
}
.carbon-tag.good{ background:var(--green-soft); border-color:#9bd9be; color:#067252 }
.carbon-tag.bad{ background:var(--red-soft); border-color:#e9a5a5; color:#9a2727 }
.qcra-intro, .phased-intro, .carbon-intro{
  font-size:12px; color:var(--muted);
  margin:0 0 12px; max-width:60ch;
}
.qcra-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;
  margin-bottom:14px;
}
@media (max-width:640px){ .qcra-grid{ grid-template-columns:repeat(2,1fr) } }
.qcra-cell{
  background:var(--paper-2); border:1px solid var(--line);
  border-radius:10px; padding:10px 12px;
  display:flex; flex-direction:column; gap:2px;
}
.qcra-cell-mid{ background:#f0f4fb; border-color:#cfd6e3 }
.qcra-cell-bcr{ background:var(--ink); color:#fff; border-color:var(--ink) }
.qcra-cell-bcr .qcra-label{ color:#cfd6e3 }
.qcra-cell-bcr .qcra-value{ color:#fff }
.qcra-cell-bcr .qcra-foot{ color:#8693a8 }
.qcra-label{
  font-size:10.5px; color:var(--muted); font-weight:500; letter-spacing:.02em;
}
.qcra-value{
  font-family:'JetBrains Mono', monospace;
  font-size:18px; font-weight:700; color:var(--ink); letter-spacing:-.02em;
}
.qcra-foot{ font-size:10px; color:var(--muted-2) }
.qcra-bar-wrap{ margin-top:6px }
.qcra-bar{
  position:relative; height:8px;
  border-radius:4px;
  background:linear-gradient(90deg, #cfeede 0%, #fdecca 50%, #f6d6d6 100%);
}
.qcra-bar-tick{
  position:absolute; top:-4px; width:2px; height:16px;
  background:var(--ink-2); transform:translateX(-50%);
}
.qcra-bar-tick-mid{ background:var(--ink); width:3px }
.qcra-bar-scale{
  display:flex; justify-content:space-between;
  margin-top:8px;
  font-family:'JetBrains Mono', monospace;
  font-size:10px; color:var(--muted-2);
}

/* ============ PHASED CAPEX CHART ============ */
.phased-chart{
  display:flex; align-items:flex-end; gap:6px;
  height:140px; padding:8px 0 24px;
  border-bottom:1px solid var(--line);
  margin-bottom:10px;
  position:relative;
}
.phased-bar-col{
  flex:1; min-width:24px;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  position:relative; height:100%;
}
.phased-bar{
  width:100%; max-width:48px;
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink-3) 100%);
  border-radius:4px 4px 0 0;
  position:relative;
  align-self:flex-end;
  transition:height .25s var(--ease);
}
.phased-bar.warn{ background:linear-gradient(180deg, var(--amber) 0%, #b8770c 100%) }
.phased-bar.bad{ background:linear-gradient(180deg, var(--red) 0%, #9a2727 100%) }
.phased-bar-val{
  font-family:'JetBrains Mono', monospace;
  font-size:10px; font-weight:700; color:var(--ink);
  position:absolute; top:-16px; left:50%; transform:translateX(-50%);
  white-space:nowrap;
}
.phased-bar-label{
  font-size:10px; color:var(--muted);
  position:absolute; bottom:-20px; left:50%; transform:translateX(-50%);
  white-space:nowrap;
}
.phased-legend{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  font-size:11px; color:var(--muted);
}
.phased-legend-rule{
  display:inline-block; width:14px; height:2px;
}
.rule-warn{ background:var(--amber) }
.rule-bad{ background:var(--red); margin-left:8px }

/* ============ CARBON BLOCK ============ */
.carbon-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;
  margin-bottom:14px;
}
@media (max-width:640px){ .carbon-grid{ grid-template-columns:repeat(2,1fr) } }
.carbon-cell{
  background:var(--paper-2); border:1px solid var(--line);
  border-radius:10px; padding:10px 12px;
  display:flex; flex-direction:column; gap:2px;
}
.carbon-cell-good{ background:#f4fbf8; border-color:#9bd9be }
.carbon-cell-good .carbon-value{ color:#067252 }
.carbon-cell-bad{ background:#fff5f5; border-color:#e9a5a5 }
.carbon-cell-bad .carbon-value{ color:#9a2727 }
.carbon-cell-headline{ background:var(--ink); color:#fff; border-color:var(--ink) }
.carbon-cell-headline .carbon-label{ color:#cfd6e3 }
.carbon-cell-headline .carbon-value{ color:#fff }
.carbon-cell-headline .carbon-foot{ color:#8693a8 }
.carbon-label{ font-size:10.5px; color:var(--muted); font-weight:500; letter-spacing:.02em }
.carbon-value{
  font-family:'JetBrains Mono', monospace;
  font-size:18px; font-weight:700; color:var(--ink); letter-spacing:-.02em;
}
.carbon-foot{ font-size:10px; color:var(--muted-2) }
.carbon-bar-wrap{ margin:14px 0 12px }
.carbon-bar-label{ font-size:11px; color:var(--muted-2); margin:6px 0 4px }
.carbon-bar{
  height:10px; border-radius:5px; overflow:hidden;
  background:var(--line);
}
.bar-construction span{ display:block; height:100%; background:linear-gradient(90deg, var(--red) 0%, #9a2727 100%) }
.bar-operational  span{ display:block; height:100%; background:linear-gradient(90deg, var(--green) 0%, #067252 100%) }
.carbon-note{
  font-size:11px; color:var(--muted-2); line-height:1.45;
  border-top:1px dashed var(--line); padding-top:10px;
}

/* ============ STRATEGIC CONSTRAINTS PANEL ============ */
.constraints-block{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:14px 18px 16px;
  margin-top:16px;
}
.constraints-summary{
  display:flex; align-items:center; gap:10px;
  cursor:pointer; list-style:none;
  padding:2px 0;
  user-select:none;
}
.constraints-summary::-webkit-details-marker{ display:none }
.constraints-chevron{
  display:inline-block; width:14px;
  font-size:18px; font-weight:600; color:var(--ink-3);
  transition:transform .2s var(--ease);
}
.constraints-block[open] .constraints-chevron{ transform:rotate(90deg) }
.constraints-title{
  font-size:14px; font-weight:700; color:var(--ink); letter-spacing:-.01em;
  flex:1;
}
.constraints-summary-meta{
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:700;
  background:var(--paper-2); border:1px solid var(--line);
  padding:3px 9px; border-radius:999px;
  color:var(--ink-3);
}
.constraints-intro{
  font-size:12px; color:var(--muted);
  margin:10px 0 14px; max-width:62ch;
}
.constraints-list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:10px;
}
.constraints-row{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-left:3px solid var(--line-2);
  border-radius:10px;
  padding:10px 14px 12px;
}
.constraints-row[data-status="cleared"]    { border-left-color:var(--green) }
.constraints-row[data-status="in-progress"]{ border-left-color:var(--teal) }
.constraints-row[data-status="open"]       { border-left-color:var(--ink-3) }
.constraints-row[data-status="blocking"]   { border-left-color:var(--red) }
.constraints-row-head{
  display:flex; align-items:center; gap:10px;
  margin-bottom:6px; flex-wrap:wrap;
}
.constraints-row-title{
  font-size:13px; font-weight:700; color:var(--ink);
  margin:0; letter-spacing:-.01em;
}
.constraints-status{
  font-size:10px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase;
  padding:3px 9px; border-radius:999px;
  white-space:nowrap;
}
.status-cleared    { background:var(--green-soft); color:#067252; border:1px solid #9bd9be }
.status-in-progress{ background:#dff3f6; color:#056877; border:1px solid #8ec9d2 }
.status-open       { background:var(--paper); color:var(--ink-3); border:1px solid var(--line-2) }
.status-blocking   { background:var(--red-soft); color:#9a2727; border:1px solid #e9a5a5 }
.constraints-row-body{
  font-size:12.5px; color:var(--ink-2);
  margin:0 0 6px; line-height:1.5;
}
.constraints-row-impact{
  font-size:11.5px; color:var(--muted);
  margin:0; line-height:1.5;
}
.constraints-row-impact strong{ color:var(--ink-2); font-weight:700 }

/* ============ REVENUE & FINANCING BLOCK ============ */
.revenue-block{
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px 18px;
  margin-bottom:16px;
}
.revenue-block-ni{ background:#f4fbf8; border-color:#9bd9be }
.revenue-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:10px; margin-bottom:8px; flex-wrap:wrap;
}
.revenue-head h3{ font-size:14px; font-weight:700; letter-spacing:-.01em }
.revenue-tag{
  font-size:10.5px; font-weight:600; letter-spacing:.04em;
  background:var(--paper-2); border:1px solid var(--line);
  padding:3px 9px; border-radius:999px; color:var(--ink-3);
}
.revenue-tag.good{ background:var(--green-soft); border-color:#9bd9be; color:#067252 }
.revenue-tag.warn{ background:var(--amber-soft); border-color:#e9b96b; color:#7a510a }
.revenue-intro{
  font-size:12px; color:var(--muted);
  margin:0 0 12px; max-width:60ch;
}
.revenue-intro strong{ color:var(--ink) }
.revenue-intro em{ color:var(--ink-2); font-style:normal; font-weight:500 }
.revenue-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;
  margin-bottom:14px;
}
.revenue-grid-ni{ grid-template-columns:repeat(3, 1fr) }
@media (max-width:640px){
  .revenue-grid, .revenue-grid-ni{ grid-template-columns:repeat(2,1fr) }
}
.revenue-cell{
  background:var(--paper-2); border:1px solid var(--line);
  border-radius:10px; padding:10px 12px;
  display:flex; flex-direction:column; gap:2px;
}
.revenue-cell-cost{ background:#fff5f5; border-color:#e9a5a5 }
.revenue-cell-cost .revenue-value{ color:#9a2727 }
.revenue-cell-good{ background:var(--green-soft); border-color:#9bd9be }
.revenue-cell-good .revenue-value{ color:#067252 }
.revenue-cell-headline{ background:var(--ink); color:#fff; border-color:var(--ink) }
.revenue-cell-headline .revenue-label{ color:#cfd6e3 }
.revenue-cell-headline .revenue-value{ color:#fff }
.revenue-cell-headline .revenue-foot{ color:#8693a8 }
.revenue-label{ font-size:10.5px; color:var(--muted); font-weight:500; letter-spacing:.02em }
.revenue-value{
  font-family:'JetBrains Mono', monospace;
  font-size:18px; font-weight:700; color:var(--ink); letter-spacing:-.02em;
}
.revenue-foot{ font-size:10px; color:var(--muted-2) }

.revenue-bar-wrap{ margin:14px 0 8px }
.revenue-bar-label{ font-size:11px; color:var(--muted-2); margin:6px 0 4px }
.revenue-bar-label-net{ font-weight:600; color:var(--ink) }
.revenue-bar{
  height:10px; border-radius:5px; overflow:hidden;
  background:var(--line);
}
.bar-capex  span{ display:block; height:100%; background:linear-gradient(90deg, var(--red) 0%, #9a2727 100%) }
.bar-toll   span{ display:block; height:100%; background:linear-gradient(90deg, var(--green) 0%, #067252 100%) }
.bar-rates  span{ display:block; height:100%; background:linear-gradient(90deg, var(--teal) 0%, #056877 100%) }
.bar-net    span{ display:block; height:100%; background:linear-gradient(90deg, var(--ink) 0%, var(--ink-3) 100%) }
.revenue-note{
  font-size:11px; color:var(--muted-2); line-height:1.45;
  border-top:1px dashed var(--line); padding-top:10px; margin-top:6px;
}

/* ============ BENEFITS COMPOSITION BAR ============ */
.composition-block{
  margin:14px 0 18px; padding:12px 14px;
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius);
}
.composition-head{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:10px; margin-bottom:8px;
}
.composition-head h3{ font-size:13px; font-weight:700; color:var(--ink) }
.composition-total{
  font-family:'JetBrains Mono', monospace;
  font-size:12px; font-weight:700; color:var(--ink);
}
.composition-bar{
  display:flex; height:14px; border-radius:7px; overflow:hidden;
  background:var(--line); margin-bottom:10px;
}
.comp-seg{ height:100%; transition:width .25s var(--ease) }
.composition-legend{
  display:flex; flex-wrap:wrap; gap:6px 12px;
}
.comp-legend-item{
  display:flex; align-items:center; gap:5px;
  font-size:11px; line-height:1.2;
}
.comp-legend-swatch{
  width:9px; height:9px; border-radius:2px; flex:none;
}
.comp-legend-name{ color:var(--ink-2); font-weight:500 }
.comp-legend-val{
  font-family:'JetBrains Mono', monospace;
  color:var(--muted); font-size:10.5px;
}

/* ============ KPI ROW ============ */
.kpi-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 18px;
}
@media (max-width:640px){ .kpi-row{grid-template-columns:repeat(2,1fr)} }
.kpi{
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius);padding:12px 14px;
  display:flex;flex-direction:column;gap:2px;
}
.kpi-label{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.02em}
.kpi-value{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.kpi-foot{font-size:10.5px;color:var(--muted-2)}

/* ============ BCR BAR ============ */
.bcr-bar{margin:6px 0 22px}
.bcr-bar-track{
  position:relative;
  height:14px;border-radius:7px;overflow:hidden;
  display:flex;
  background:var(--line);
}
.bcr-bar-zone{height:100%;width:var(--w)}
.zone-poor{background:#f6d6d6}
.zone-mid{background:#fdecca}
.zone-good{background:#cfeede}

.bcr-bar-threshold{ display:none; }
.bcr-bar-marker{
  position:absolute;top:50%;left:var(--x);
  width:14px;height:14px;border-radius:50%;
  background:#fff;border:3px solid var(--green);
  transform:translate(-50%,-50%);
  box-shadow:var(--shadow-sm);
  transition:left .35s var(--ease), border-color .35s var(--ease);
}
.bcr-bar-marker.state-no{border-color:var(--red)}
.bcr-bar-marker.state-marginal{border-color:var(--amber)}
.bcr-bar-marker.state-unfunded{border-color:#6b4ea8}

.bcr-bar-scale{
  display:flex;justify-content:space-between;
  font-size:10px;color:var(--muted-2);
  font-family:'JetBrains Mono',monospace;
  margin-top:8px;
}
.bcr-bar-scale span:nth-child(3){ color:var(--ink); font-weight:700 }
.bcr-bar-scale span:nth-child(3)::before{ content:"▲ "; }

/* ============ RATIONALE ============ */
.rationale{
  background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 18px;
}
.rationale-title{margin-bottom:6px}
.rationale-summary{font-size:13.5px;color:var(--ink-2);margin-bottom:12px}
.driver-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:8px}
.driver-item{
  display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;
  font-size:13px;
  padding:8px 10px;border-radius:8px;
  background:var(--paper-2);border:1px solid var(--line);
}
.driver-rank{
  width:24px;height:24px;border-radius:50%;
  background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;
}
.driver-text strong{font-weight:700;color:var(--ink)}
.driver-text small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.driver-arrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;font-weight:600;
  padding:3px 8px;border-radius:6px;
}
.driver-arrow.up{background:var(--green-soft);color:#067252}
.driver-arrow.down{background:var(--red-soft);color:#9a2727}

.rationale-note{font-size:11.5px;color:var(--muted-2);line-height:1.45;border-top:1px dashed var(--line);padding-top:10px}

/* ============ PRESETS ============ */
.presets-strip{
  max-width:1240px;margin:24px auto;padding:0 24px;
}
.presets-inner{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--paper-2);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:14px 18px;
}
.presets-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-right:4px}
.preset-divider{
  width:1px; height:22px; background:var(--line-2);
  display:inline-block; margin:0 4px;
}
.preset-btn{
  background:var(--paper);border:1px solid var(--line);
  font-size:12.5px;font-weight:500;color:var(--ink-2);
  padding:7px 14px;border-radius:999px;
  transition:all .2s var(--ease);
}
.preset-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.preset-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.preset-btn-emphasis{
  background:var(--green-soft); border-color:#9bd9be; color:#067252;
}
.preset-btn-emphasis:hover{ background:var(--green); color:#fff; border-color:var(--green) }
.preset-btn-emphasis.active{ background:var(--green); color:#fff; border-color:var(--green) }
.preset-btn-premium{
  background:#f3edf9; border-color:#c8b5e3; color:#4a3580;
}
.preset-btn-premium:hover{ background:#6b4ea8; color:#fff; border-color:#6b4ea8 }
.preset-btn-premium.active{ background:#6b4ea8; color:#fff; border-color:#6b4ea8 }

/* ============ FOOTER ============ */
.site-foot{
  max-width:1240px;margin:24px auto 40px;padding:0 28px;
  font-size:11.5px;color:var(--muted-2);line-height:1.5;
}

/* flash highlight on changed kpi */
@keyframes flash{
  0%{background:var(--green-soft)}
  100%{background:var(--paper)}
}
.kpi.flash, .ni-metric.flash{animation:flash .8s var(--ease)}

/* mobile tighten */
@media (max-width:640px){
  .decision-dock{ top:10px; width:calc(100vw - 16px); max-width:calc(100vw - 16px); }
  /* Keep the readout visible on mobile but drop BCR + NPV — NI net is the
     headline the user actually wants to see at a glance. */
  .decision-readout{
    display:flex; gap:8px;
    padding:5px 10px;
  }
  .decision-bcr, .decision-npv, .decision-divider { display:none; }
  .decision-readout{ gap:6px; padding:5px 8px }
  .decision-ni-label,.decision-payback-label{ font-size:7.5px; letter-spacing:.08em }
  .decision-ni-value,.decision-payback-value{ font-size:13.5px }
  /* Show the divider that separates NI net from NI break-even on mobile */
  .decision-ni + .decision-divider{ display:block; height:16px; margin:0 2px }
  .decision-pill{
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:8px; padding:8px 12px;
    min-width:0;
  }
  .decision-state{font-size:14px; line-height:1.1}
  .decision-label{font-size:8.5px}
  .decision-pulse{width:9px;height:9px}
  .decision-hint{font-size:10px; padding:3px 9px}
  .site-head{padding:0 12px}
  .presets-strip{padding:0 12px}
}
/* Very narrow phones (iPhone SE / Galaxy S9+ at 320-360px): drop BREAK-EVEN
   chip so the state label has room. Standard phones (≥ 361px) keep both. */
@media (max-width:360px){
  .decision-payback, .decision-ni + .decision-divider{ display:none }
  .decision-hint{display:none}
}
/* belt-and-braces: stop horizontal scroll on any phone */
html,body{overflow-x:hidden;max-width:100vw}

/* ============ METHODS & SOURCES TAB ============ */
.methods-intro{
  background:linear-gradient(180deg,#fbfaf7 0%,#f4f1ea 100%);
  border:1px solid #d8d2c2;
  border-radius:10px;
  padding:14px 16px;
  margin-bottom:18px;
  font-size:13px; line-height:1.5;
  color:var(--ink-2);
}
.methods-intro p{ margin:0 0 6px }
.methods-intro p:last-child{ margin-bottom:0 }
.methods-h{
  font-size:13px; font-weight:700;
  margin:20px 0 8px;
  padding-bottom:5px;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  letter-spacing:.01em;
}
.methods-h:first-of-type{ margin-top:8px }
.methods-table{
  width:100%;
  border-collapse:collapse;
  font-size:11.5px; line-height:1.45;
  margin-bottom:6px;
  table-layout:fixed;
}
.methods-table th,.methods-table td{
  padding:8px 10px;
  vertical-align:top;
  text-align:left;
  border-bottom:1px solid #eee5d4;
}
.methods-table th{
  font-weight:700;
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  background:#faf7ef;
  border-bottom:1px solid #d8d2c2;
}
.methods-table th:nth-child(1),.methods-table td:nth-child(1){ width:22% }
.methods-table th:nth-child(2),.methods-table td:nth-child(2){ width:16%; font-family:'JetBrains Mono',monospace; font-weight:600 }
.methods-table th:nth-child(3),.methods-table td:nth-child(3){ width:36% }
.methods-table th:nth-child(4),.methods-table td:nth-child(4){ width:26%; color:var(--muted) }
.methods-table tr:hover td{ background:#fdfbf6 }
.methods-table strong{ color:var(--ink); font-weight:600 }
.methods-gaps,.methods-defend{
  margin:8px 0 18px;
  padding-left:0;
  list-style:none;
  font-size:12.5px; line-height:1.55;
}
.methods-gaps li,.methods-defend li{
  padding:7px 12px;
  margin-bottom:5px;
  border-left:3px solid;
  background:#faf7ef;
  border-radius:0 6px 6px 0;
}
.methods-gaps li{ border-left-color:#c44428 }
.methods-defend li{ border-left-color:#0a9b5a; background:#f0f9f4 }
.methods-gaps strong{ color:#9a3318 }
.methods-defend strong{ color:#065e34 }
.methods-author{
  margin-top:18px; padding:12px 14px;
  background:rgba(11,31,58,0.04);
  border-left:3px solid var(--ink);
  border-radius:0 6px 6px 0;
  font-size:12px; line-height:1.5;
  color:var(--ink-2);
}
@media (max-width:640px){
  .methods-table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .methods-table th,.methods-table td{ font-size:11px; padding:6px 8px }
}

/* ============ NI BREAK-EVEN MINI-STRIP (under floating pill) ============ */
.ni-be-strip{
  pointer-events:auto;
  display:flex; flex-wrap:wrap; align-items:center;
  gap:6px;
  margin-top:6px;
  padding:6px 12px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(11,31,58,0.10);
  border-radius:999px;
  box-shadow:0 4px 14px rgba(11,31,58,0.08);
  max-width:fit-content;
  margin-left:auto; margin-right:auto;
}
.ni-be-label{
  font-size:10px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted);
  padding:0 4px 0 2px;
  white-space:nowrap;
}
.ni-be-btn{
  appearance:none; cursor:pointer;
  font-family:inherit; font-size:11.5px; font-weight:700;
  padding:5px 11px;
  border-radius:999px;
  background:#0b1f3a; color:#fff;
  border:1px solid transparent;
  letter-spacing:.02em;
  transition:background .15s var(--ease), transform .12s var(--ease), box-shadow .15s var(--ease);
}
.ni-be-btn:hover{
  background:#143258;
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(11,31,58,0.18);
}
.ni-be-btn.active{
  background:#076b3e; color:#fff;
  box-shadow:0 0 0 2px rgba(7,107,62,0.25);
}
@media (max-width:640px){
  .ni-be-strip{
    margin-top:5px;
    padding:5px 8px;
    gap:4px;
    max-width:calc(100vw - 16px);
  }
  .ni-be-label{ font-size:8.5px; padding:0 2px }
  .ni-be-btn{ font-size:10.5px; padding:4px 8px }
}
@media (max-width:360px){
  .ni-be-label{ display:none }
}

/* ============ NI EXECUTIVE NET-POSITION PANEL ============ */
.ni-position-panel{
  margin-top:14px;
  padding:16px 18px 14px;
  border-radius:12px;
  background:linear-gradient(180deg,#f8fafb 0%,#f1f5f7 100%);
  border:1px solid #d8dfe3;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.ni-position-panel.is-cost{
  background:linear-gradient(180deg,#fdf5f3 0%,#faeae5 100%);
  border-color:#e8c9bf;
}
.ni-position-panel.is-breakeven{
  background:linear-gradient(180deg,#fdfaf2 0%,#f8f0d8 100%);
  border-color:#e6d29a;
}
.ni-position-panel.is-income{
  background:linear-gradient(180deg,#f0faf4 0%,#deefe3 100%);
  border-color:#a9d4b7;
}
.ni-position-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:10px; margin-bottom:4px;
}
.ni-position-title{
  font-size:11px; font-weight:700; letter-spacing:0.07em;
  text-transform:uppercase; color:var(--muted);
}
.ni-position-tag{
  font-size:10.5px; font-weight:700; letter-spacing:0.04em;
  padding:3px 9px; border-radius:999px;
  background:rgba(11,31,58,0.08); color:var(--ink-2);
  text-transform:uppercase;
}
.is-cost .ni-position-tag     { background:rgba(196,68,40,0.14); color:#a83a1f }
.is-breakeven .ni-position-tag{ background:rgba(178,134,18,0.16); color:#7a5800 }
.is-income .ni-position-tag   { background:rgba(0,154,90,0.16); color:#076b3e }
.ni-position-value{
  font-size:28px; font-weight:800; letter-spacing:-0.02em;
  color:var(--ink);
  font-family:'JetBrains Mono', monospace;
  margin-top:2px;
}
.is-cost .ni-position-value     { color:#a83a1f }
.is-income .ni-position-value   { color:#076b3e }
.ni-position-sub{
  font-size:11px; color:var(--muted-2);
  margin-top:2px;
}
.ni-position-breakdown{
  margin-top:12px; padding-top:10px;
  border-top:1px dashed rgba(0,0,0,0.08);
  display:flex; flex-direction:column; gap:4px;
}
.ni-pos-row{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:10px;
  font-size:12px;
}
.ni-pos-label{ color:var(--muted) }
.ni-pos-num{
  font-family:'JetBrains Mono', monospace;
  font-weight:600; color:var(--ink-2);
}
.ni-pos-cost{ color:#a83a1f }
.ni-pos-rev{ color:#076b3e }
.ni-pos-total{
  margin-top:5px; padding-top:6px;
  border-top:1px solid rgba(0,0,0,0.10);
}
.ni-pos-total .ni-pos-label{
  color:var(--ink); font-weight:600;
}
.ni-pos-total .ni-pos-num{
  font-size:13.5px; font-weight:800; color:var(--ink);
}
.is-cost .ni-pos-total .ni-pos-num    { color:#a83a1f }
.is-income .ni-pos-total .ni-pos-num  { color:#076b3e }
.ni-position-hint{
  margin-top:10px;
  font-size:11.5px; line-height:1.45;
  color:var(--ink-2);
  padding:8px 10px;
  background:rgba(255,255,255,0.6);
  border-radius:8px;
  border:1px solid rgba(0,0,0,0.05);
}
.ni-position-levers{
  margin-top:8px;
  font-size:10.5px; line-height:1.4;
  color:var(--muted-2);
}
.ni-position-levers strong{ color:var(--ink-2); font-weight:600 }
