/* app.css source lines: 204-302 — report header, result hero, score cards, grade detail, print fab */
/* ── REPORT ──────────────────────────────────────── */
.rpt-hdr{background:var(--surf);border:1px solid var(--bord);border-top-color:color-mix(in srgb,var(--copper) 50%,transparent);border-radius:var(--r-card);padding:28px 30px;margin-bottom:20px;position:relative;overflow:hidden}
.rpt-hdr h2{font-size:22px;font-weight:700;color:var(--tx);letter-spacing:-.03em;margin-bottom:3px}
.rpt-hdr>p{font-size:12px;color:var(--mt)}
.rmeta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.rmi{background:var(--surf2);border:1px solid var(--bord2);border-radius:var(--r-xs);padding:11px 14px}
.rml{font-size:var(--fs-12);color:var(--mt);margin-bottom:4px;text-transform:uppercase;letter-spacing:.07em;font-family:var(--mono)}
.rmv{font-size:13px;font-weight:700;color:var(--tx)}
.rbadge{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--r-xs);font-size:14px;font-weight:700;margin-top:16px;letter-spacing:-.01em}
.r-ok{background:var(--ok-dim);color:var(--ok-strong);border:1px solid var(--ok-bord)}
.r-bad{background:var(--bad-dim);color:var(--bad-strong);border:1px solid var(--bad-bord)}
.r-warn{background:var(--warn-dim);color:var(--warn-strong);border:1px solid var(--warn-bord)}

/* ── RESULT HERO BLOCK ── */
.rpt-result-hero{display:flex;align-items:center;gap:24px;padding:24px 28px;border-radius:var(--r-card);margin:20px 0;border:1px solid}
.rpt-result-hero.rh-ok{background:var(--ok-dim);border-color:var(--ok)}
.rpt-result-hero.rh-bad{background:var(--bad-dim);border-color:var(--bad)}
.rpt-result-hero.rh-warn{background:var(--warn-dim);border-color:var(--warn)}
.rpt-result-icon{font-size:48px;flex-shrink:0;line-height:1}
.rpt-result-body{flex:1}
.rpt-result-label{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:6px}
.rpt-result-hero.rh-ok .rpt-result-label{color:var(--ok-strong)}
.rpt-result-hero.rh-bad .rpt-result-label{color:var(--bad-strong)}
.rpt-result-hero.rh-warn .rpt-result-label{color:var(--warn-strong)}
.rpt-result-sub{font-size:13px;color:var(--mt);font-weight:500}
.rpt-result-pct{flex-shrink:0;text-align:center}
.rpt-result-pct-num{font-size:42px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.rpt-result-hero.rh-ok .rpt-result-pct-num{color:var(--ok-strong)}
.rpt-result-hero.rh-bad .rpt-result-pct-num{color:var(--bad-strong)}
.rpt-result-hero.rh-warn .rpt-result-pct-num{color:var(--warn-strong)}
.rpt-result-pct-label{font-size:var(--fs-12);color:var(--mt);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:620px){.rpt-result-hero{flex-direction:column;gap:16px;text-align:center}.rpt-result-pct{order:-1}}
.scards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px}
.scard{background:var(--surf);border:1px solid var(--bord);border-radius:var(--r-card);padding:18px 20px;position:relative;overflow:hidden}
.scard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r-sm) var(--r-sm) 0 0}
.scard.c-ok::before{background:var(--ok)}
.scard.c-bad::before{background:var(--bad)}
.scard.c-info::before{background:var(--info)}
.scard.c-warn::before{background:var(--warn)}
.scard h4{font-size:var(--fs-12);font-weight:700;font-family:var(--mono);color:var(--mt);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;margin-top:4px}
.sv{font-size:32px;font-weight:700;color:var(--tx);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.scard.c-ok .sv{color:var(--ok-strong)}
.scard.c-bad .sv{color:var(--bad-strong)}
.scard.c-warn .sv{color:var(--warn-strong)}
.sl{font-size:var(--fs-12);color:var(--mt);margin-top:4px}
.sbar{height:4px;background:var(--bord2);border-radius:3px;margin-top:10px;overflow:hidden}
.sbf{height:100%;border-radius:3px;transition:width 1.2s var(--ease-out)}
.gsec{background:var(--surf);border:1px solid var(--bord);border-radius:var(--r-card);padding:18px 20px;margin-bottom:14px}
.gsec h3{font-size:13px;font-weight:700;color:var(--tx2);margin-bottom:12px;display:flex;align-items:center;gap:8px;letter-spacing:-.01em}
.gitem{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--warn-dim);border:1px solid var(--bord2);border-left:1px solid var(--warn-bord);border-radius:0 var(--r-xs) var(--r-xs) 0;margin-bottom:7px;font-size:12px;line-height:1.55}
.gitem.crit{border-left-color:var(--bad-bord);background:var(--bad-dim)}
.gitem-label{font-weight:700;font-family:var(--mono);font-size:var(--fs-12);color:var(--mt);flex-shrink:0;min-width:80px;padding-top:1px}
.detail-sec{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.rpt-gpanel{display:flex;align-items:center;gap:0;padding:20px 24px 16px;background:var(--surf);border:1px solid var(--bord);border-radius:var(--r-card);margin-bottom:16px}
.rpt-gwrap{display:flex;flex-direction:column;align-items:center;gap:6px;padding-right:24px;border-right:1px solid var(--bord2);flex-shrink:0}
.rpt-g-lbl{font-size:var(--fs-12);font-weight:700;color:var(--mt);text-transform:uppercase;letter-spacing:.07em}
.rpt-g-pct{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1;margin-top:-6px;font-variant-numeric:tabular-nums}
.rpt-kpi-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;flex:1;padding-left:20px}
.rpt-kpi{background:var(--surf2);border:1px solid var(--bord2);border-radius:var(--r-card);padding:14px 16px}
.rpt-kpi-lbl{font-size:var(--fs-12);font-weight:700;color:var(--mt);text-transform:uppercase;letter-spacing:.07em;font-family:var(--mono)}
.rpt-kpi-val{font-size:20px;font-weight:700;letter-spacing:-.03em;margin-top:5px;line-height:1;font-variant-numeric:tabular-nums}
.rpt-kpi-val.c-ok{color:var(--ok-strong)}.rpt-kpi-val.c-bad{color:var(--bad-strong)}.rpt-kpi-val.c-warn{color:var(--warn-strong)}
.rpt-kpi-max{font-size:12px;font-weight:500;color:var(--mt)}
.rpt-kpi-sub{font-size:var(--fs-12);color:var(--mt);margin-top:3px}
.rpt-kpi-bar{height:4px;border-radius:2px;background:var(--bord);margin-top:8px;overflow:hidden}
.rpt-kpi-bar-f{height:100%;border-radius:2px}
.rdt-grid{display:grid;gap:0;border:1px solid var(--bord);border-radius:var(--r-card);overflow:hidden;margin-bottom:16px}
.rdt-col{display:flex;flex-direction:column;border-right:1px solid var(--bord);overflow:hidden}
.rdt-col:last-child{border-right:none}
.rdt-col-head{padding:10px 14px;border-bottom:1px solid var(--bord);background:var(--surf2)}
.rdt-col-title{font-size:var(--fs-12);font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.07em;font-family:var(--mono);display:flex;align-items:center;gap:6px}
.rdt-col-score{font-size:13px;font-weight:700;color:var(--tx);margin-top:3px;font-variant-numeric:tabular-nums}
.rdt-col-body{flex:1;overflow-y:auto;max-height:360px}
.rdt-sec-lbl{padding:5px 12px 3px;font-size:var(--fs-12);font-weight:700;color:var(--mt);text-transform:uppercase;letter-spacing:.06em;background:var(--surf2);border-bottom:1px solid var(--bord)}
.rdt-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--bord2);font-size:var(--fs-12)}
.rdt-item:last-child{border-bottom:none}
.rdt-num{font-size:var(--fs-12);font-weight:700;color:var(--mt);font-family:var(--mono);min-width:16px;flex-shrink:0}
.rdt-text{flex:1;color:var(--tx2);line-height:1.35}
.rdt-score-cell{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.rdt-val{font-size:var(--fs-12);font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums}
.rdt-mbar{width:44px;height:4px;border-radius:2px;background:var(--bord);overflow:hidden}
.rdt-mbar-f{height:100%;border-radius:2px}
@media(max-width:620px){.rpt-gpanel{flex-direction:column;gap:16px}.rpt-gwrap{padding-right:0;border-right:none;padding-bottom:16px;border-bottom:1px solid var(--bord2)}.rpt-kpi-trio{padding-left:0;width:100%}.rdt-grid{grid-template-columns:1fr!important}}
.detail-tbl{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.detail-tbl th{background:var(--surf2);color:var(--mt);padding:9px 14px;text-align:left;font-size:var(--fs-12);font-family:var(--mono);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--bord);position:sticky;top:0}
.detail-tbl td{padding:9px 14px;border-bottom:1px solid var(--bord2);color:var(--tx2)}
.detail-tbl tr:last-child td{border-bottom:none}
.detail-tbl tr:hover td{background:var(--surf2)}
.chip{display:inline-block;padding:2px 9px;border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:700;font-family:var(--mono)}
.chip-ok{background:var(--ok-dim);color:var(--ok-strong);border:1px solid var(--ok-bord)}
.chip-warn{background:var(--warn-dim);color:var(--warn-strong);border:1px solid var(--warn-bord)}
.chip-bad{background:var(--bad-dim);color:var(--bad-strong);border:1px solid var(--bad-bord)}
.chip-na{background:var(--surf-hi);color:var(--mt);border:1px solid var(--bord2)}

/* ── PRINT FAB ───────────────────────────────────── */
.print-fab{position:fixed;bottom:24px;right:24px;z-index:99;display:none}
.print-fab.btn{background:var(--copper);color:var(--on-accent);box-shadow:0 4px 16px var(--accent-glow);border-radius:var(--r-ctl);padding:12px 20px}

