/* =========================================================================
   Prismos — Marketing Profit Diagnostic  •  stylesheet v2.0
   Aesthetic: a quiet financial "instrument panel". The numbers are the hero.
   Brand teal for chrome, blue for neutral references, green/amber/red reserved
   strictly for the profit verdict so the reveal reads instantly.
   ========================================================================= */
:root {
  --ink:#0C1822; --ink-soft:#52636F; --muted:#8593A0;
  --bg:#EDF1F5; --panel:#FFFFFF; --panel-2:#F7F9FB; --line:#E3E9EF;
  --brand:#0E5A66; --brand-600:#0A4651; --brand-tint:#E4F0F1;
  --accent:#2F6FED;
  --good:#0E9F6E; --good-bg:#E7F6EF;
  --warn:#B7791F; --warn-bg:#FBF3E2;
  --bad:#D23B50;  --bad-bg:#FBE9EC;
  --seg-returns:#E07A5F; --seg-cogs:#64748B; --seg-ship:#9B8FB0;
  --seg-fees:#C9A227; --seg-ad:#3E7CB1;
  --radius:16px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(12,24,34,.04), 0 8px 24px rgba(12,24,34,.06);
  --maxw:1080px;
}
*{box-sizing:border-box}
html{ -webkit-text-size-adjust:100% }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Inter,Arial,sans-serif;
  line-height:1.5; -webkit-font-smoothing:antialiased;
}
.container{ max-width:var(--maxw); margin:0 auto; padding:28px 20px 64px }
.num,.metric-value,.reveal-figure,.sim-figure,.pstat-val,.slider-val{ font-variant-numeric:tabular-nums }
a{ color:var(--brand) }

/* ---------------- header ---------------- */
.header{ display:flex; gap:24px; justify-content:space-between; align-items:flex-start;
  flex-wrap:wrap; margin-bottom:22px }
.header-text{ max-width:640px }
.eyebrow{ margin:0 0 6px; font-size:12px; font-weight:650; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brand) }
.header h1{ margin:0 0 8px; font-size:clamp(26px,4vw,38px); line-height:1.08;
  letter-spacing:-.02em; font-weight:760 }
.lede{ margin:0; color:var(--ink-soft); font-size:16px; max-width:60ch }
.header-actions{ display:flex; gap:8px; flex-wrap:wrap }

.btn{ font:inherit; font-weight:600; font-size:14px; cursor:pointer; border-radius:10px;
  padding:10px 16px; border:1px solid transparent; transition:background .15s,border-color .15s,transform .04s }
.btn:active{ transform:translateY(1px) }
.btn--primary{ background:var(--brand); color:#fff }
.btn--primary:hover{ background:var(--brand-600) }
.btn--ghost{ background:var(--panel); color:var(--ink); border-color:var(--line) }
.btn--ghost:hover{ background:var(--panel-2) }
.btn--sm{ padding:7px 12px; font-size:13px }

/* ---------------- balance status ---------------- */
.balance-status{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 20px; box-shadow:var(--shadow); margin-bottom:18px }
.status{ display:inline-block; font-size:13px; font-weight:650; padding:5px 12px; border-radius:999px;
  background:var(--panel-2); color:var(--ink-soft); border:1px solid var(--line) }
.status--info{ background:var(--panel-2) }
.status.balanced{ background:var(--good-bg); color:#0a7a55; border-color:#bfe7d4 }
.status.front-heavy{ background:var(--warn-bg); color:#8a5b12; border-color:#f0dcae }
.status.back-heavy{ background:#E8EEFB; color:#274a9e; border-color:#cdd9f5 }
.status.both-poor{ background:var(--bad-bg); color:#a52a3c; border-color:#f3c9d1 }
.balance-description{ margin:10px 0 0; color:var(--ink-soft); font-size:14px }

/* ---------------- cards & layout ---------------- */
.card{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px; box-shadow:var(--shadow); margin-bottom:18px }
.card--accent{ border-color:#cfe2e3; background:linear-gradient(180deg,var(--brand-tint),#fff 64%) }
.card-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px }
.card-head h2{ margin:0; font-size:18px; letter-spacing:-.01em; font-weight:700 }
.card-sub{ font-size:13px; color:var(--muted) }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:18px }

.inputs-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px }
.inputs-grid--4{ grid-template-columns:repeat(4,1fr) }
.ig{ display:flex; flex-direction:column; gap:6px }
.ig label{ font-size:12.5px; font-weight:600; color:var(--ink-soft) }
.ig input{ font:inherit; font-size:15px; padding:10px 12px; border:1px solid var(--line);
  border-radius:var(--radius-sm); background:var(--panel); color:var(--ink); width:100%;
  transition:border-color .15s, box-shadow .15s }
.ig input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(47,111,237,.16) }

/* ---------------- metric cards ---------------- */
.metrics-subhead{ margin:6px 0 10px; font-size:12px; font-weight:650; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted) }
.metrics-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-bottom:8px }
.metric-card{ background:var(--panel-2); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:12px 12px 10px; position:relative }
.metric-top{ display:flex; align-items:center; justify-content:space-between; gap:6px }
.metric-name{ font-size:12px; font-weight:650; color:var(--ink-soft) }
.metric-value{ font-size:24px; font-weight:740; letter-spacing:-.02em; margin-top:4px; line-height:1 }
.metric-unit{ font-size:12px; color:var(--muted); margin-top:2px }
.metric-status{ font-size:10px; font-weight:700; padding:2px 7px; border-radius:999px; text-transform:uppercase; letter-spacing:.04em }
.metric-status.good{ background:var(--good-bg); color:#0a7a55 }
.metric-status.average{ background:var(--warn-bg); color:#8a5b12 }
.metric-status.poor{ background:var(--bad-bg); color:#a52a3c }

/* ===================== PROFIT REVEAL ===================== */
.profit-panel{ border-color:#d7dee5 }
.profit-panel.is-empty .reveal-figure{ color:var(--muted) }
.verdict-tag{ font-size:12.5px; font-weight:700; padding:5px 12px; border-radius:999px;
  background:var(--panel-2); color:var(--ink-soft); border:1px solid var(--line) }
.verdict-tag.loss{ background:var(--bad-bg); color:#a52a3c; border-color:#f3c9d1 }
.verdict-tag.thin{ background:var(--warn-bg); color:#8a5b12; border-color:#f0dcae }
.verdict-tag.healthy{ background:var(--good-bg); color:#0a7a55; border-color:#bfe7d4 }

.reveal-row{ display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding:14px 0 18px; border-bottom:1px solid var(--line); margin-bottom:16px }
.reveal-block{ display:flex; flex-direction:column; gap:2px; min-width:130px }
.reveal-block--hero{ flex:1 }
.reveal-label{ font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.08em }
.reveal-figure{ font-size:clamp(34px,7vw,56px); font-weight:780; letter-spacing:-.03em; line-height:1 }
.reveal-figure.muted{ color:var(--ink-soft) }
.reveal-figure.healthy{ color:var(--good) }
.reveal-figure.thin{ color:var(--warn) }
.reveal-figure.loss{ color:var(--bad) }
.reveal-cap{ font-size:13px; color:var(--ink-soft) }
.reveal-arrow{ font-size:28px; color:var(--muted); font-weight:300 }

.profit-narrative{ margin:0 0 18px; font-size:15.5px; line-height:1.6; color:var(--ink) }

.breakdown{ margin-bottom:16px }
.breakdown-title{ font-size:12px; font-weight:650; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); display:block; margin-bottom:8px }
.breakdown-bar{ display:flex; height:30px; width:100%; border-radius:8px; overflow:hidden;
  background:var(--panel-2); border:1px solid var(--line) }
.seg{ height:100%; display:block; transition:width .35s ease }
.seg-returns{ background:var(--seg-returns) } .seg-cogs{ background:var(--seg-cogs) }
.seg-ship{ background:var(--seg-ship) } .seg-fees{ background:var(--seg-fees) }
.seg-ad{ background:var(--seg-ad) } .seg-profit{ background:var(--good) } .seg-loss{ background:var(--bad) }

.profit-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:2px 18px }
.pstat{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:9px 0; border-bottom:1px dashed var(--line); font-size:14px }
.pstat-key{ color:var(--ink-soft); display:flex; align-items:center; gap:8px }
.pstat-val{ font-weight:680 }
.pstat-val.is-bad{ color:var(--bad) }
.pstat-highlight .pstat-key{ color:var(--ink); font-weight:650 }
.swatch{ width:10px; height:10px; border-radius:3px; display:inline-block }
.swatch.seg-returns{background:var(--seg-returns)} .swatch.seg-cogs{background:var(--seg-cogs)}
.swatch.seg-ship{background:var(--seg-ship)} .swatch.seg-fees{background:var(--seg-fees)}
.swatch.seg-ad{background:var(--seg-ad)} .swatch.seg-profit{background:var(--good)} .swatch.seg-loss{background:var(--bad)}

/* ===================== SIMULATOR ===================== */
.sim-panel{ border-color:#d7dee5 }
.sim-empty{ margin:0; color:var(--ink-soft); font-size:14.5px; background:var(--panel-2);
  border:1px dashed var(--line); border-radius:var(--radius-sm); padding:16px }
.sim-body{ display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:24px }
.sim-body.disabled{ display:none }

.slider{ margin-bottom:16px }
.slider-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:7px }
.slider-top label{ font-size:13.5px; font-weight:600; color:var(--ink) }
.slider-val{ font-size:14px; font-weight:720; color:var(--brand); background:var(--brand-tint);
  padding:1px 9px; border-radius:999px }
.slider-hint{ display:block; margin-top:5px; font-size:12px; color:var(--muted) }

input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:999px;
  background:linear-gradient(90deg,var(--brand),#7bb0b8); outline:none }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:20px; height:20px;
  border-radius:50%; background:#fff; border:2px solid var(--brand); box-shadow:0 1px 4px rgba(12,24,34,.25); cursor:pointer }
input[type=range]::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:#fff;
  border:2px solid var(--brand); box-shadow:0 1px 4px rgba(12,24,34,.25); cursor:pointer }
input[type=range]:focus-visible{ box-shadow:0 0 0 3px rgba(47,111,237,.25) }

.sim-assumptions{ border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:0 14px; margin:6px 0 14px; background:var(--panel-2) }
.sim-assumptions summary{ cursor:pointer; padding:11px 0; font-size:13.5px; font-weight:600; color:var(--ink-soft) }
.sim-assumptions[open] summary{ border-bottom:1px solid var(--line); margin-bottom:12px }
.assump-note{ font-size:12.5px; color:var(--muted); margin:0 0 12px; line-height:1.5 }

.sim-results{ background:var(--panel-2); border:1px solid var(--line); border-radius:var(--radius-sm); padding:18px }
.sim-figures{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:8px }
.sim-fig-block{ text-align:center; padding:8px 4px; border-radius:10px }
.sim-fig-block--mid{ background:var(--panel); border:1px solid var(--line) }
.sim-fig-label{ display:block; font-size:11.5px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em }
.sim-figure{ display:block; font-size:clamp(22px,3.4vw,30px); font-weight:760; letter-spacing:-.02em; line-height:1.15; margin:3px 0 1px }
.sim-figure.is-good{ color:var(--good) } .sim-figure.is-bad{ color:var(--bad) }
.sim-fig-cap{ font-size:11.5px; color:var(--muted) }
.sim-range{ margin:4px 0 6px; min-height:86px }
.svg-tick{ font-size:10px; fill:var(--muted) }
.svg-lab{ font-size:11px; font-weight:650; fill:var(--ink-soft) }
.sim-foot{ display:flex; justify-content:flex-end; font-size:13px; color:var(--muted); margin-top:2px }
.sim-delta{ font-weight:740 } .sim-delta.is-good{ color:var(--good) } .sim-delta.is-bad{ color:var(--bad) }
.sim-insight{ margin:12px 0 0; font-size:14px; line-height:1.55; color:var(--ink);
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px 14px }

/* ---------------- recommendations ---------------- */
.muted{ color:var(--muted) }
.rec{ border:1px solid var(--line); border-left-width:4px; border-radius:var(--radius-sm);
  padding:13px 16px; margin-bottom:10px; background:var(--panel-2) }
.rec.priority-high{ border-left-color:var(--bad) }
.rec.priority-medium{ border-left-color:var(--warn) }
.rec.priority-low{ border-left-color:var(--good) }
.rec-head{ display:flex; align-items:center; gap:8px; font-weight:680; font-size:14.5px }
.rec-dot{ width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.5 }
.rec-prio{ margin-left:auto; font-size:10.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted) }
.rec-desc{ margin:6px 0 0; font-size:13.5px; color:var(--ink-soft); line-height:1.5 }

/* ---------------- footer ---------------- */
.footer{ margin-top:34px; text-align:center; color:var(--muted); font-size:13px }
.footer a{ color:var(--ink-soft) }

/* ---------------- responsive ---------------- */
@media (max-width:860px){
  .grid-2{ grid-template-columns:1fr }
  .metrics-grid{ grid-template-columns:repeat(3,1fr) }
  .inputs-grid--4{ grid-template-columns:repeat(2,1fr) }
  .sim-body{ grid-template-columns:1fr }
}
@media (max-width:520px){
  .container{ padding:20px 14px 48px }
  .metrics-grid{ grid-template-columns:repeat(2,1fr) }
  .header-actions{ width:100% }
  .btn{ flex:1 }
  .reveal-arrow{ display:none }
  .sim-figures{ grid-template-columns:1fr; gap:6px }
  .sim-fig-block{ display:flex; align-items:baseline; justify-content:space-between; text-align:left }
  .sim-figure{ margin:0 }
}
@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; animation:none !important; scroll-behavior:auto !important }
}
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px }

/* =========================================================================
   v2.1 additions — Guided setup (onboarding) + category controls
   ========================================================================= */

/* ---------------- balance row + category chip ---------------- */
.balance-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap }
.industry-chip{ font-size:12px; font-weight:650; color:var(--brand-600); background:var(--brand-tint);
  border:1px solid #cfe2e3; border-radius:999px; padding:5px 12px; white-space:nowrap }

/* ---------------- category selector in profitability card ---------------- */
.card-head-right{ display:flex; align-items:center; gap:8px }
.industry-select-label{ font-size:12px; font-weight:650; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em }
.industry-select{ font:inherit; font-size:14px; font-weight:600; color:var(--ink); background:var(--panel);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:8px 10px; cursor:pointer }
.industry-select:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(47,111,237,.16) }
.card-note{ margin:-6px 0 16px; font-size:13.5px; color:var(--ink-soft); line-height:1.5; max-width:70ch }

/* ---------------- benchmark source line ---------------- */
.benchmark-source{ margin:14px 0 0; padding-top:12px; border-top:1px solid var(--line);
  font-size:11.5px; line-height:1.5; color:var(--muted) }

/* ---------------- guided setup overlay ---------------- */
body.wiz-open{ overflow:hidden }
.wiz{ position:fixed; inset:0; z-index:60; display:flex; align-items:flex-start; justify-content:center;
  background:rgba(10,28,34,.55); backdrop-filter:blur(3px); padding:24px 16px; overflow-y:auto }
.wiz[hidden]{ display:none }
.wiz-card{ background:var(--panel); width:100%; max-width:680px; border-radius:20px; margin:auto;
  box-shadow:0 24px 60px rgba(8,18,24,.32); padding:26px 28px 22px; animation:wizIn .22s ease }
@keyframes wizIn{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }

.wiz-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px }
.wiz-brand{ font-size:13px; font-weight:700; color:var(--brand); letter-spacing:.01em; display:flex; align-items:center; gap:7px }
.wiz-logo{ color:var(--brand); font-size:16px; line-height:1 }
.wiz-skip{ font:inherit; font-size:13px; font-weight:600; color:var(--ink-soft); background:none;
  border:none; cursor:pointer; padding:4px 2px; text-decoration:underline; text-underline-offset:2px }
.wiz-skip:hover{ color:var(--ink) }

.wiz-progress{ height:6px; background:var(--panel-2); border:1px solid var(--line); border-radius:999px; overflow:hidden }
.wiz-bar{ display:block; height:100%; width:25%; background:var(--brand); border-radius:999px; transition:width .25s ease }
.wiz-step-label{ font-size:11.5px; font-weight:650; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); margin:12px 0 4px }

.wiz-step h2{ margin:6px 0 6px; font-size:23px; letter-spacing:-.01em; font-weight:760 }
.wiz-sub{ margin:0 0 18px; font-size:14.5px; line-height:1.55; color:var(--ink-soft); max-width:62ch }
.wiz-q{ margin:22px 0 10px; font-size:15px; font-weight:700 }

.wiz-industries{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px }
.wiz-chip{ text-align:left; font:inherit; cursor:pointer; background:var(--panel-2);
  border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:12px 13px; transition:border-color .14s, background .14s, box-shadow .14s; display:flex; flex-direction:column; gap:3px }
.wiz-chip:hover{ border-color:#cfe2e3; background:#fff }
.wiz-chip.is-selected{ border-color:var(--brand); background:var(--brand-tint); box-shadow:0 0 0 3px rgba(14,90,102,.12) }
.wiz-chip-title{ font-size:14px; font-weight:700; color:var(--ink) }
.wiz-chip-sub{ font-size:12px; color:var(--ink-soft); line-height:1.35 }

.wiz-goals{ display:grid; grid-template-columns:repeat(2,1fr); gap:9px }
.wiz-goal{ text-align:left; font:inherit; font-size:14px; font-weight:600; color:var(--ink); cursor:pointer;
  background:var(--panel-2); border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:12px 14px; transition:border-color .14s, background .14s, box-shadow .14s }
.wiz-goal:hover{ border-color:#cfe2e3; background:#fff }
.wiz-goal.is-selected{ border-color:var(--accent); background:#eef3fe; box-shadow:0 0 0 3px rgba(47,111,237,.12) }

.wiz-fields{ display:grid; grid-template-columns:1fr 1fr; gap:16px }
.wiz-fields .ig input{ font-size:16px; padding:11px 13px }
.ig-hint{ font-size:12px; color:var(--muted); line-height:1.4 }
.ig-hint strong{ color:var(--ink-soft); font-weight:700 }

.wiz-warn{ margin:16px 0 0; font-size:13.5px; font-weight:600; color:#a52a3c;
  background:var(--bad-bg); border:1px solid #f3c9d1; border-radius:var(--radius-sm); padding:10px 14px }
.wiz-warn.is-soft{ color:#8a5b12; background:var(--warn-bg); border-color:#f0dcae }
.wiz-warn[hidden]{ display:none }

.wiz-nav{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:22px;
  padding-top:18px; border-top:1px solid var(--line) }
.wiz-nav-right{ display:flex; gap:8px }

@media (max-width:560px){
  .wiz-card{ padding:22px 18px 18px }
  .wiz-industries{ grid-template-columns:1fr 1fr }
  .wiz-goals{ grid-template-columns:1fr }
  .wiz-fields{ grid-template-columns:1fr }
  .wiz-step h2{ font-size:20px }
  .wiz-nav-right{ flex:1; justify-content:flex-end }
  .balance-row{ align-items:flex-start }
}
@media (max-width:380px){
  .wiz-industries{ grid-template-columns:1fr }
}

/* ---------------- v2.2: category readout + interactivity cues ---------------- */
.card-head-right{ flex-wrap:wrap; justify-content:flex-end }
.card-note em{ font-style:normal; font-weight:650; color:var(--ink-soft) }
.bench-readout{ margin:-2px 0 16px; display:flex; flex-direction:column; gap:7px }
.bench-readout-main{ font-size:12.5px; font-weight:600; color:var(--ink-soft) }
.bench-readout-change{ font-size:12.5px; font-weight:650; color:#274a9e; background:#eef3fe;
  border:1px solid #cdd9f5; border-radius:8px; padding:7px 11px; align-self:flex-start; max-width:100%;
  animation:benchIn .2s ease }
.bench-readout-change.is-soft{ color:var(--ink-soft); background:var(--panel-2); border-color:var(--line) }
.bench-readout-change[hidden]{ display:none }
@keyframes benchIn{ from{ opacity:0; transform:translateY(-3px) } to{ opacity:1; transform:none } }

/* brief pulse to draw the eye when costs are applied and the reveal recomputes */
.profit-panel.flash{ animation:flashPulse 1s ease }
@keyframes flashPulse{
  0%{ box-shadow:var(--shadow) }
  18%{ box-shadow:0 0 0 4px rgba(47,111,237,.26), var(--shadow) }
  100%{ box-shadow:var(--shadow) }
}
@media (prefers-reduced-motion:reduce){ .profit-panel.flash{ animation:none } }

/* ---------------- Phase 2: data source card + coverage badges ---------------- */
.source-card{ border-color:#cfe2e3; background:linear-gradient(180deg,#f2f8f8,#fff 70%) }
.source-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap }
.source-text{ min-width:240px; flex:1 }
.source-status{ font-size:15px; font-weight:700; color:var(--ink); display:inline-flex; align-items:center; gap:8px }
.source-status::before{ content:""; width:9px; height:9px; border-radius:50%; background:var(--muted) }
.source-status.ok{ color:var(--brand-600) } .source-status.ok::before{ background:var(--good) }
.source-status.warn{ color:#8a5b12 } .source-status.warn::before{ background:var(--warn) }
.source-sub{ margin:5px 0 0; font-size:13.5px; color:var(--ink-soft); line-height:1.5 }
.coverage{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:7px }
.coverage[hidden]{ display:none }
.cov{ font-size:12px; color:var(--ink-soft); background:var(--panel); border:1px solid var(--line);
  border-radius:999px; padding:5px 11px; white-space:nowrap }
.cov strong{ color:var(--ink); font-weight:700; margin-right:4px }
.cov-actual{ background:var(--good-bg); border-color:#bfe7d4; color:#0a7a55 }
.cov-actual strong{ color:#0a7a55 }
.cov-partial{ background:#eef3fe; border-color:#cdd9f5; color:#274a9e }
.cov-partial strong{ color:#274a9e }
.cov-est{ background:var(--warn-bg); border-color:#f0dcae; color:#8a5b12 }
.cov-est strong{ color:#8a5b12 }
.cov-manual{ background:var(--panel-2); border-color:var(--line); color:var(--ink-soft) }
.cov-notes{ flex-basis:100%; margin:6px 0 0; font-size:12px; color:var(--muted); line-height:1.5 }
