/* =============================================================================
 * Material Footprint Lab — theme aligned to biomera.eu
 * Extracted from the live site (Astra/Elementor globals + logo):
 *   pink  #e4187a  (primary accent — buttons, links)
 *   plum  #7a3a55  (secondary brand)
 *   text  #222222 / #3a3a3a, near-black #140609
 *   tints #ffede6 / #ffd1bf (peach), white background
 *   logo  cyan #2bc6ef · blue #678cc9
 * Fonts: Montserrat 600/700 (headings) · Source Sans 3/Pro 400 (body)
 *        + Noto Sans TC for Traditional Chinese
 * =========================================================================== */

:root {
  --pink:#e4187a; --pink-dark:#c1136a; --pink-tint:#fdeaf3;
  --plum:#7a3a55; --plum-dark:#5d2a40; --plum-tint:#f6eef2;
  --cyan:#2bc6ef; --cyan-ink:#0c96bd; --cyan-tint:#e8f8fd;
  --bluel:#678cc9;                               /* logo blue, charts */
  --peach:#ffede6; --peach-2:#ffd1bf;
  --ink:#222222; --body:#3a3a3a; --muted:#6d6570; --faint:#726c77;
  --bg:#fbfafa; --surface:#ffffff; --line:#eee8eb; --line-2:#f4eff1;
  --good:#0c96bd; --good-tint:#e8f8fd;           /* cyan family (brand-matched) */
  --warn:#b45a2a; --warn-tint:#ffede6;           /* peach family */
  --bad:#cf2e2e;  --bad-tint:#fdecec;            /* red used on biomera.eu */
  --r-lg:22px; --r-md:16px; --r-sm:11px;
  --shadow-sm:0 1px 2px rgba(122,58,85,.06), 0 4px 14px rgba(122,58,85,.05);
  --shadow-md:0 6px 22px rgba(122,58,85,.09), 0 30px 60px rgba(122,58,85,.06);
  --font:'Source Sans 3','Source Sans Pro','Noto Sans TC',system-ui,-apple-system,'Segoe UI',sans-serif;
  --display:'Montserrat','Noto Sans TC',system-ui,sans-serif;
  /* aliases for any legacy references */
  --blue:var(--plum); --blue-dark:var(--plum-dark); --blue-tint:var(--plum-tint);
  --blue-2:var(--bluel); --magenta:var(--pink); --magenta-dark:var(--pink-dark); --magenta-tint:var(--pink-tint);
}

* { box-sizing:border-box; }
html,body { margin:0; padding:0; }
body {
  background:var(--bg); color:var(--body); font-family:var(--font);
  font-size:16.5px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
a { color:var(--pink); text-decoration:none; }
h1,h2,h3 { font-family:var(--display); letter-spacing:-.01em; margin:0; color:var(--ink); font-weight:700; }
.wrap { max-width:1200px; margin:0 auto; padding:0 24px; }
.hidden { display:none !important; }

/* ---------------------------------------------------------------- top nav */
.nav {
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(12px); border-bottom:1px solid var(--line);
}
.nav .wrap { display:flex; align-items:center; gap:22px; height:66px; }
.logo { display:flex; align-items:center; gap:12px; font-family:var(--display); font-weight:700; font-size:15px; color:var(--ink); }
.logo .brand-img { height:24px; width:auto; display:block; }
.logo .brand-sep { width:1px; height:22px; background:var(--line); display:block; }
.logo b { color:var(--pink); }
.foot-logo { height:20px; width:auto; display:block; opacity:.92; }
@media (max-width:720px){ .logo > span:last-child{ display:none; } }
.nav-links { display:flex; gap:4px; margin-left:4px; }
.nav-links a {
  color:var(--muted); font-weight:600; font-size:14px; padding:8px 13px; border-radius:9px; cursor:pointer;
}
.nav-links a:hover { color:var(--ink); background:var(--peach); }
.nav-links a.active { color:var(--pink); background:var(--pink-tint); }
.nav-cta { margin-left:auto; display:flex; align-items:center; gap:10px; }
.lang-select {
  font-family:var(--font); font-weight:600; font-size:13px; color:var(--muted);
  border:1px solid var(--line); border-radius:9px; padding:7px 8px; background:var(--surface); cursor:pointer;
}
.lang-select:focus { outline:none; border-color:var(--pink); }

/* ---------------------------------------------------------------- buttons */
.btn { font-family:var(--font); font-weight:700; border:none; cursor:pointer; border-radius:11px;
  padding:11px 18px; font-size:14px; transition:.15s; display:inline-flex; align-items:center; gap:8px; }
.btn-primary { background:var(--pink); color:#fff; box-shadow:0 6px 16px rgba(228,24,122,.25); }
.btn-primary:hover { background:var(--pink-dark); transform:translateY(-1px); }
.btn-blue { background:var(--plum); color:#fff; box-shadow:0 6px 16px rgba(122,58,85,.24); }
.btn-blue:hover { background:var(--plum-dark); transform:translateY(-1px); }
.btn-ghost { background:var(--surface); color:var(--plum); border:1px solid var(--line); }
.btn-ghost:hover { background:var(--plum-tint); border-color:var(--plum-tint); }
.btn-soft { background:var(--pink-tint); color:var(--pink); }
.btn-soft:hover { background:#fbd9ea; }
.btn-link { background:none; color:var(--muted); padding:11px 6px; }
.btn-link:hover { color:var(--pink); }
.btn.sm { padding:8px 13px; font-size:13px; border-radius:9px; }

/* ---------------------------------------------------------------- disclaimer strip */
.disclaimer-strip { background:var(--peach); border-bottom:1px solid var(--peach-2); color:#7a4a33; font-size:12.5px; }
.disclaimer-strip .wrap { padding:9px 24px; display:flex; gap:9px; align-items:center; }
.disclaimer-strip b { color:#5d3826; }

/* ---------------------------------------------------------------- hero / landing */
.hero { position:relative; overflow:hidden; background:var(--surface); }
.hero::before, .hero::after {
  content:''; position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; z-index:0;
}
.hero::before { width:520px; height:520px; top:-170px; right:-120px;
  background:radial-gradient(circle,rgba(43,198,239,.28),transparent 70%); }
.hero::after { width:480px; height:480px; bottom:-220px; left:-140px;
  background:radial-gradient(circle,rgba(228,24,122,.16),transparent 70%); }
.hero .wrap { position:relative; z-index:1; padding:72px 24px 60px; display:grid;
  grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--plum);
  background:var(--plum-tint); padding:6px 13px; border-radius:999px; }
.hero h1 { font-size:48px; line-height:1.08; margin:20px 0 16px; font-weight:700; }
.hero h1 .grad { background:linear-gradient(90deg,var(--pink),var(--cyan)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p.lead { font-size:18px; color:var(--muted); max-width:540px; margin:0 0 26px; }
.hero-cta { display:flex; gap:12px; flex-wrap:wrap; }
.hero-points { display:flex; flex-direction:column; gap:12px; margin-top:30px; }
.hero-points .pt { display:flex; gap:11px; align-items:flex-start; font-size:14.5px; color:var(--body); }
.hero-points .pt .tick { flex:0 0 auto; width:22px; height:22px; border-radius:7px; display:grid; place-items:center;
  background:var(--cyan-tint); color:var(--cyan-ink); font-weight:800; font-size:13px; }
.hero-points .pt b { color:var(--ink); }

.hero-visual { position:relative; }
.hero-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-md); padding:22px; position:relative; overflow:hidden;
}
.hero-card .ring { position:absolute; inset:0; background:
  radial-gradient(120px 120px at 85% 10%,rgba(43,198,239,.14),transparent 70%); }
.hero-card h4 { font-family:var(--display); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--faint); margin:0 0 4px; font-weight:600; }
.hero-card .big-num { font-family:var(--display); font-size:38px; font-weight:700; letter-spacing:-.02em; color:var(--pink); }
.hero-card .big-num small { font-size:15px; color:var(--muted); font-weight:600; }
.mini-bars { display:flex; flex-direction:column; gap:9px; margin-top:16px; position:relative; }
.mini-bar { display:grid; grid-template-columns:88px 1fr auto; gap:9px; align-items:center; font-size:12.5px; color:var(--muted); }
.mini-bar .track { display:block; height:16px; background:var(--bg); border-radius:6px; overflow:hidden; }
.mini-bar .fill { display:block; height:100%; border-radius:6px; }

.tier-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:8px; }
@media (max-width:840px){ .tier-row{ grid-template-columns:1fr; } .hero .wrap{ grid-template-columns:1fr; } .hero h1{ font-size:36px; } }

/* ---------------------------------------------------------------- generic cards / sections */
.section { padding:34px 0 60px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); padding:22px; }
.card + .card { margin-top:18px; }
.card h2 { font-size:17px; display:flex; align-items:center; gap:10px; margin-bottom:3px; }
.card h2 .n { width:24px; height:24px; border-radius:7px; background:var(--pink-tint); color:var(--pink); font-size:12px; font-weight:800; display:grid; place-items:center; font-family:var(--font); }
.card .sub { color:var(--muted); font-size:13.5px; margin:0 0 16px; }
.grid-2 { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:20px; align-items:start; }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr; } }

.tier-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:20px; box-shadow:var(--shadow-sm); }
.tier-card .tag { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:4px 10px; border-radius:999px; display:inline-block; }
.tier-card.pub .tag { background:var(--cyan-tint); color:var(--cyan-ink); }
.tier-card.pro .tag { background:var(--plum-tint); color:var(--plum); }
.tier-card h3 { font-size:18px; margin:12px 0 6px; }
.tier-card p { color:var(--muted); font-size:14px; margin:0 0 14px; }
.tier-card ul { margin:0 0 16px; padding-left:18px; color:var(--muted); font-size:13.5px; }
.tier-card li { margin-bottom:5px; }

/* ---------------------------------------------------------------- form controls */
label.fld { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:var(--muted); }
input[type=text], input[type=number], input[type=password], select, textarea {
  font-family:var(--font); font-size:14px; color:var(--ink); background:var(--surface);
  border:1px solid var(--line); border-radius:10px; padding:10px 12px; width:100%; min-width:0;
}
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--pink); box-shadow:0 0 0 3px var(--pink-tint); }
.fld-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.unit { position:relative; }
.unit .u { position:absolute; right:11px; top:50%; transform:translateY(-50%); font-size:11px; color:var(--faint); pointer-events:none; }
.unit input { padding-right:84px; }
.unit.narrow input { padding-right:44px; }
.unit.mid input { padding-right:58px; }
.unit.mid .u { font-size:10px; }
/* hide number spinners — they crowd the compact unit fields */
input[type=number] { -moz-appearance:textfield; appearance:textfield; }
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.switch { display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--muted); }
.switch input { width:16px; height:16px; accent-color:var(--pink); }

/* mode toggle */
.mode-toggle { display:inline-flex; background:var(--plum-tint); border-radius:12px; padding:4px; gap:4px; }
.mode-toggle button { border:none; background:transparent; font-weight:700; font-size:13.5px; color:var(--muted); padding:8px 16px; border-radius:9px; cursor:pointer; font-family:var(--font); }
.mode-toggle button.on { background:var(--surface); color:var(--plum); box-shadow:var(--shadow-sm); }

/* ---------------------------------------------------------------- ingredient rows */
.ing-head, .ing-row { display:grid; gap:8px; align-items:center; }
.ing-head { grid-template-columns:1fr 84px 92px 96px 32px; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--faint); font-weight:700; padding:0 2px 6px; }
.ing-row { grid-template-columns:1fr 84px 92px 96px 32px; margin-bottom:8px; }
.ing-row.simple, .ing-head.simple { grid-template-columns:1fr 96px 32px; }
.remove { border:none; background:transparent; color:var(--faint); font-size:19px; cursor:pointer; border-radius:8px; height:34px; }
.remove:hover { color:var(--pink); background:var(--pink-tint); }
.total-pill { margin-left:auto; font-size:13px; font-weight:700; padding:7px 13px; border-radius:999px; background:var(--bg); border:1px solid var(--line); color:var(--muted); }
.total-pill.ok { color:var(--cyan-ink); background:var(--cyan-tint); border-color:#bfe7f3; }
.total-pill.warn { color:var(--warn); background:var(--warn-tint); border-color:var(--peach-2); }
.row-actions { display:flex; align-items:center; gap:10px; margin-top:8px; flex-wrap:wrap; }

/* ---------------------------------------------------------------- results */
.kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.kpi { border:1px solid var(--line); border-radius:14px; padding:16px; background:linear-gradient(180deg,var(--surface),var(--bg)); }
.kpi .label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--faint); }
.kpi .value { font-family:var(--display); font-size:29px; font-weight:700; letter-spacing:-.02em; margin-top:3px; line-height:1.05; color:var(--ink); }
.kpi .value small { font-size:13px; color:var(--muted); font-weight:600; font-family:var(--font); }
.kpi .value.hl { color:var(--pink); }
.kpi .value.up { color:var(--bad); } .kpi .value.down { color:var(--cyan-ink); }
.kpi .note { font-size:12px; color:var(--muted); margin-top:4px; }

.block { margin-top:22px; }
.block h3 { font-size:13px; font-family:var(--font); font-weight:700; margin:0 0 12px; color:var(--ink); }

/* donut + legend */
.donut-wrap { display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
.legend { display:flex; flex-direction:column; gap:7px; min-width:180px; flex:1; }
.legend .item { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); }
.legend .sw { width:11px; height:11px; border-radius:3px; flex:0 0 auto; }
.legend .item b { color:var(--ink); font-weight:700; margin-left:auto; font-variant-numeric:tabular-nums; }

/* comparison bars */
.bar-row { display:grid; grid-template-columns:120px 1fr 70px; gap:10px; align-items:center; margin-bottom:9px; }
.bar-row .nm { font-size:12.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bar-row .nm.me { color:var(--pink); font-weight:700; }
.bar-row .nm.bio { color:var(--plum); font-weight:700; }
.bar-track { display:block; background:var(--bg); border-radius:7px; height:22px; overflow:hidden; }
.bar-fill { display:block; height:100%; border-radius:7px; transition:width .5s; }
.bar-fill.me { background:linear-gradient(90deg,var(--pink),var(--plum)); }
.bar-fill.bio { background:linear-gradient(90deg,var(--cyan-ink),var(--cyan)); }
.bar-fill.other { background:#d9cfd4; }
.bar-row .v { font-size:12.5px; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; color:var(--ink); }

/* chips / badges */
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip { font-size:12px; font-weight:700; padding:6px 11px; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--muted); display:inline-flex; gap:6px; align-items:center; }
.chip.good { color:var(--cyan-ink); background:var(--cyan-tint); border-color:#bfe7f3; }
.chip.warn { color:var(--warn); background:var(--warn-tint); border-color:var(--peach-2); }
.chip.bad  { color:var(--bad); background:var(--bad-tint); border-color:#f3c9c9; }
.chip.blue { color:var(--plum); background:var(--plum-tint); border-color:#e6d5dd; }

.status-card { border:1px solid var(--line); border-radius:13px; padding:14px 16px; }
.status-card .st { font-weight:700; font-size:14.5px; display:flex; align-items:center; gap:9px; color:var(--ink); }
.status-card.good { background:var(--cyan-tint); border-color:#bfe7f3; }
.status-card.warn { background:var(--warn-tint); border-color:var(--peach-2); }
.status-card.bad  { background:var(--bad-tint); border-color:#f3c9c9; }
.status-card.muted{ background:var(--bg); }
.status-card .dot { width:9px; height:9px; border-radius:50%; }
.status-card.good .dot{ background:var(--cyan-ink);} .status-card.warn .dot{ background:var(--warn);} .status-card.bad .dot{ background:var(--bad);} .status-card.muted .dot{ background:var(--faint);}
.status-card ul { margin:8px 0 0; padding-left:18px; font-size:12.5px; color:var(--muted); }
.readiness-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:640px){ .readiness-grid{ grid-template-columns:1fr; } .fld-row{ grid-template-columns:1fr; } .kpi-grid{ grid-template-columns:1fr; } }

.conf { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; color:var(--ink); }
.conf .lvl { padding:3px 10px; border-radius:999px; font-size:11px; font-weight:800; }
.conf .lvl.High{ background:var(--cyan-tint); color:var(--cyan-ink);} .conf .lvl.Medium{ background:var(--warn-tint); color:var(--warn);} .conf .lvl.Low{ background:var(--bad-tint); color:var(--bad);}

.suggestions { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.suggestions li { display:flex; gap:10px; font-size:13.5px; color:var(--body); background:var(--bg); border:1px solid var(--line-2); border-radius:11px; padding:11px 13px; }
.suggestions li .i { color:var(--pink); font-weight:800; flex:0 0 auto; }

.qbadge { font-size:11px; font-weight:700; padding:3px 8px; border-radius:6px; white-space:nowrap; }
.q-supplier{ background:var(--cyan-tint); color:var(--cyan-ink);} .q-public{ background:var(--plum-tint); color:var(--plum);} .q-literature{ background:var(--warn-tint); color:var(--warn);} .q-estimate{ background:var(--bad-tint); color:var(--bad);}

/* ---------------------------------------------------------------- table (materials library) */
.tablebar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:14px; }
.tablebar input, .tablebar select { width:auto; }
.tablebar .search { flex:1; min-width:180px; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-md); }
table.data { width:100%; border-collapse:collapse; font-size:13px; }
table.data th, table.data td { text-align:left; padding:11px 12px; border-bottom:1px solid var(--line-2); white-space:nowrap; }
table.data th { font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--faint); font-weight:700; background:var(--bg); position:sticky; top:0; }
table.data td.num, table.data th.num { text-align:right; font-variant-numeric:tabular-nums; }
table.data tr:hover td { background:var(--pink-tint); }
.cat-pill { font-size:11px; font-weight:650; padding:3px 9px; border-radius:999px; background:var(--bg); border:1px solid var(--line); color:var(--muted); }

/* gate */
.gate { max-width:440px; margin:40px auto; text-align:center; }
.gate .lock { width:56px; height:56px; border-radius:16px; background:var(--plum-tint); color:var(--plum); display:grid; place-items:center; margin:0 auto 16px; font-size:26px; }

/* methodology */
details.acc { border:1px solid var(--line); border-radius:12px; padding:2px 16px; margin-bottom:10px; background:var(--surface); }
details.acc summary { cursor:pointer; font-weight:700; font-size:14.5px; padding:13px 0; list-style:none; display:flex; justify-content:space-between; color:var(--ink); }
details.acc summary::-webkit-details-marker{ display:none; }
details.acc summary::after{ content:'+'; color:var(--pink); font-weight:800; }
details.acc[open] summary::after{ content:'\2013'; }
details.acc .body { font-size:14px; color:var(--muted); padding:0 0 14px; }
details.acc .body ul{ padding-left:18px; }
details.acc .body p{ margin:0 0 10px; }

/* footer */
.foot { border-top:1px solid var(--line); padding:26px 0 46px; color:var(--muted); font-size:13px; margin-top:20px; background:var(--surface); }
.foot .wrap{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }

.empty { text-align:center; color:var(--muted); padding:44px 12px; }
.empty .big{ font-size:34px; margin-bottom:8px; }

/* ---------------------------------------------------------------- sticky results (desktop) */
/* the results column follows the reader while they edit the long left column */
@media (min-width:901px){
  .grid-2 > section:last-child { position:sticky; top:82px; align-self:start; }
}

/* ---------------------------------------------------------------- mobile: stack ingredient / process / transport rows */
@media (max-width:560px){
  .ing-head { display:none; }
  .ing-row { display:flex !important; flex-wrap:wrap; gap:6px; grid-template-columns:none !important; margin-bottom:12px; }
  .ing-row > select.ing-m, .ing-row > input.pr-l, .ing-row > input[type=text] { flex:1 1 100%; }
  .ing-row > .unit { flex:1 1 30%; min-width:78px; }
  .ing-row > select.ing-q, .ing-row > select.tr-m { flex:1 1 45%; }
  .ing-row > .remove { flex:0 0 auto; margin-left:auto; }
}

/* ---------------------------------------------------------------- PDF report (print-only) */
#report-root { display:none; }
#report-root .rp-head { display:flex; align-items:center; gap:16px; border-bottom:2px solid var(--pink); padding-bottom:12px; margin-bottom:14px; }
#report-root .rp-logo { height:30px; width:auto; }
#report-root .rp-title h1 { font-family:var(--display); font-size:19px; margin:0; color:var(--ink); }
#report-root .rp-meta { font-size:11.5px; color:var(--muted); margin-top:3px; }
#report-root .rp-disc { font-size:10px; color:#7a4a33; background:var(--peach); border:1px solid var(--peach-2); border-radius:8px; padding:8px 10px; margin-bottom:14px; }
#report-root .rp-sec { margin-bottom:14px; break-inside:avoid; }
#report-root .rp-sec h3 { font-family:var(--display); font-size:12.5px; color:var(--plum); margin:0 0 7px; text-transform:uppercase; letter-spacing:.03em; }
#report-root .rp-tbl { width:100%; border-collapse:collapse; font-size:11px; }
#report-root .rp-tbl th, #report-root .rp-tbl td { text-align:left; padding:5px 7px; border-bottom:1px solid var(--line); }
#report-root .rp-tbl th { color:var(--faint); font-size:9.5px; text-transform:uppercase; background:var(--bg); }
#report-root .rp-tbl .num, #report-root .rp-kpi .rp-v .num { text-align:right; }
#report-root .rp-tbl td.num { text-align:right; }
#report-root .rp-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
#report-root .rp-kpi { border:1px solid var(--line); border-radius:8px; padding:8px 10px; }
#report-root .rp-kpi .rp-k { font-size:9px; text-transform:uppercase; letter-spacing:.04em; color:var(--faint); }
#report-root .rp-kpi .rp-v { font-family:var(--display); font-size:16px; font-weight:700; color:var(--ink); margin-top:2px; }
#report-root .rp-kpi .rp-v small { font-size:10px; color:var(--muted); font-weight:600; }
#report-root .rp-kpi .rp-s { font-size:9.5px; color:var(--muted); margin-top:1px; }
#report-root .rp-charts { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#report-root .rp-charts .legend .item { font-size:10px; }
#report-root .rp-status { font-size:11px; padding:6px 9px; border-radius:7px; margin-bottom:5px; border:1px solid var(--line); }
#report-root .rp-status.good { background:var(--cyan-tint); } #report-root .rp-status.warn { background:var(--warn-tint); } #report-root .rp-status.bad { background:var(--bad-tint); } #report-root .rp-status.muted { background:var(--bg); }
#report-root .rp-fr { color:var(--faint); }
#report-root .rp-eol { font-size:10.5px; color:var(--muted); margin-top:5px; }
#report-root .rp-sugg { margin:0; padding-left:16px; font-size:10.5px; color:var(--body); }
#report-root .rp-sugg li { margin-bottom:3px; }
#report-root .rp-foot { margin-top:16px; padding-top:10px; border-top:1px solid var(--line); font-size:8.5px; color:var(--muted); line-height:1.4; }

@media print {
  @page { size:A4 portrait; margin:12mm; }
  body.printing > *:not(#report-root) { display:none !important; }
  body.printing #report-root { display:block !important; }
  #report-root svg { max-width:100%; }
  body { background:#fff; }
  /* fallback when not using the report (plain print) */
  .nav,.disclaimer-strip,.row-actions,.mode-toggle,.foot,.btn,.hero-cta,#lead-card{ display:none !important; }
  .card{ box-shadow:none; border-color:#ccc; }
}
