/* =====================================================================
   PARICHAYA - the company report (assets/js/parichaya.js), shared by company.html and EKLA.
   Report grammar: header band -> quarter in brief -> summary row -> live market -> 52-week range
   -> KPI cards -> numbered sections (01-06) -> sources & disclosures.
   Everything is scoped under .rp so it never touches the other ASTRA tools on astra.html.
   Theme tokens only (dark.css / light.css).
   ===================================================================== */
.rp { display:flex; flex-direction:column; gap:22px; }

/* ---- header band ---- */
.rp .rp-head { position:relative; padding:26px 28px 20px; border-top:3px solid var(--seg, var(--gold)); }
.rp .rp-head-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:30px; align-items:start; }
.rp .rp-kicker { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-family:var(--font-mono); font-size:11px; letter-spacing:.6px; color:var(--text-muted); text-transform:uppercase; }
.rp .rp-kicker .dot { width:4px; height:4px; border-radius:50%; background:var(--text-muted); opacity:.6; }
.rp .rp-name { font-family:var(--font-display); font-size:clamp(26px,3vw,36px); font-weight:700; line-height:1.08; color:var(--text); margin:12px 0 8px; letter-spacing:.2px; }
.rp .rp-sub { font-size:12.5px; line-height:1.6; color:var(--text-sub); max-width:640px; margin-top:4px; }
.rp .rp-chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:14px; }
.rp .rp-chip { display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-family:var(--font-mono); padding:3px 9px; border-radius:999px; border:1px solid var(--border); color:var(--text-sub); background:var(--bg-input); }
.rp .rp-chip b { color:var(--gold); }
.rp .rp-chip.warn { color:var(--coral); border-color:var(--coral); background:var(--coral-dim); }
.rp .rp-chip.out { color:var(--coral); border-color:color-mix(in srgb, var(--coral) 45%, transparent); background:var(--coral-dim); font-weight:700; }
.rp .rp-out-note { margin:8px 0 4px; padding:8px 12px; border-left:3px solid var(--coral); border-radius:0 8px 8px 0; background:var(--coral-dim); color:var(--text-sub); font-size:12.5px; line-height:1.55; max-width:72ch; }
.rp .rp-out-note a { color:var(--gold); font-weight:600; white-space:nowrap; }
.rp a.rp-open { color:var(--accent-contrast, var(--gold)); border-color:var(--border-gold, var(--gold)); text-decoration:none; }
.rp a.rp-open:hover { background:var(--gold-dim); }

/* header fact cards (Round 15): each a small tinted card with its own icon and accent */
.rp .rp-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.rp .rp-fact { --fc:var(--gold); position:relative; overflow:hidden; min-height:84px; padding:12px 14px; border-radius:var(--radius-md); border:1px solid color-mix(in srgb, var(--fc) 22%, var(--border));
  background:radial-gradient(110% 90% at 100% 0%, color-mix(in srgb, var(--fc) 14%, transparent), transparent 62%), var(--bg-card); transition:transform .16s var(--ease-out), border-color .16s var(--ease-out); }
.rp .rp-fact:hover { transform:translateY(-2px); border-color:color-mix(in srgb, var(--fc) 50%, var(--border)); }
.rp .rp-fact .l { display:flex; align-items:center; gap:7px; font-size:9.5px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:var(--text-muted); }
.rp .rp-fact .fi { width:20px; height:20px; border-radius:6px; display:grid; place-items:center; flex:none; color:var(--fc); background:color-mix(in srgb, var(--fc) 13%, transparent); }
.rp .rp-fact .fi svg { width:12px; height:12px; }
.rp .rp-fact .v { font-family:var(--font-mono); font-size:18px; font-weight:800; color:var(--text); margin-top:9px; line-height:1.1; }
.rp .rp-fact .s { font-size:10.5px; color:var(--text-muted); margin-top:5px; }
.rp .rp-meta { display:flex; gap:8px 18px; flex-wrap:wrap; margin-top:18px; padding-top:12px; border-top:1px dashed var(--border); font-size:11px; color:var(--text-muted); }
.rp .rp-meta b { color:var(--text-sub); font-weight:600; }
.rp .rp-meta a { color:var(--accent-contrast, var(--gold)); }

/* ---- summary row ---- */
.rp .rp-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.rp .rp-card { padding:20px 22px; display:flex; flex-direction:column; min-width:0; }
.rp .rp-card-title { font-size:10.5px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold); margin-bottom:14px; display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.rp .rp-card-title span { color:var(--text-muted); font-weight:600; letter-spacing:.3px; text-transform:none; font-size:10.5px; }
.rp .rp-astra { display:flex; align-items:center; gap:16px; }
.rp .astra-gauge { width:118px; height:118px; flex-shrink:0; }
.rp .grade-chip { display:inline-flex; align-items:center; justify-content:center; padding:3px 11px; border-radius:6px; color:#fff; font-weight:700; font-size:14px; }
.rp .rp-why { margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rp .rp-why div { font-size:11px; color:var(--text-muted); line-height:1.5; }
.rp .rp-why b { display:block; font-size:12px; color:var(--text); font-weight:600; margin-top:2px; }
.rp .rp-why .up b { color:var(--teal); } .rp .rp-why .dn b { color:var(--coral); }
.rp .score-explain { font-size:11px; color:var(--text-muted); line-height:1.55; margin-top:10px; }

/* fair value band */
.rp .fv { margin:6px 0 4px; }
.rp .fv-track { position:relative; height:12px; border-radius:6px; background:var(--bg-input); margin:26px 0 22px; }
.rp .fv-band { position:absolute; top:0; bottom:0; border-radius:6px; background:linear-gradient(90deg, rgba(62,207,178,.22), rgba(62,207,178,.45), rgba(62,207,178,.22)); border:1px solid rgba(62,207,178,.55); }
.rp .fv-mark { position:absolute; top:-6px; width:3px; height:24px; border-radius:2px; transform:translateX(-1.5px); }
.rp .fv-mark.model { background:var(--teal); }
.rp .fv-mark.actual { background:var(--gold); box-shadow:0 0 0 3px var(--gold-dim); }
.rp .fv-lbl { position:absolute; font-family:var(--font-mono); font-size:10.5px; white-space:nowrap; transform:translateX(-50%); }
.rp .fv-lbl.top { top:-24px; color:var(--gold); font-weight:700; }
.rp .fv-lbl.bot { top:20px; color:var(--teal); font-weight:700; }
.rp .fv-axis { display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:10px; color:var(--text-muted); }
.rp .fv-read { font-size:12px; line-height:1.6; color:var(--text-sub); margin-top:10px; }
.rp .fv-read b { color:var(--text); font-family:var(--font-mono); }

/* ---- KPI cards (Round 15): accent = vs the segment median (teal better, coral weaker, gold in line) ---- */
.rp .rp-tiles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.rp .kt { --kc:var(--gold); position:relative; overflow:hidden; min-width:0; padding:15px 16px 13px; border-radius:var(--radius-lg);
  border:1px solid color-mix(in srgb, var(--kc) 30%, var(--border));
  background:radial-gradient(120% 95% at 100% 0%, color-mix(in srgb, var(--kc) 16%, transparent), transparent 58%), var(--bg-card);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035), 0 12px 28px -20px color-mix(in srgb, var(--kc) 75%, transparent);
  transition:transform .18s var(--ease-out), border-color .18s var(--ease-out), box-shadow .18s var(--ease-out); }
.rp .kt::before { content:''; position:absolute; left:0; top:14px; bottom:14px; width:3px; border-radius:0 3px 3px 0; background:var(--kc); opacity:.85; }
.rp .kt:hover { transform:translateY(-3px); border-color:color-mix(in srgb, var(--kc) 58%, var(--border)); box-shadow:0 16px 32px -18px color-mix(in srgb, var(--kc) 85%, transparent); }
.rp .kt.up { --kc:var(--teal); } .rp .kt.dn { --kc:var(--coral); } .rp .kt.mid { --kc:var(--gold); } .rp .kt.na { --kc:var(--text-muted); }
.rp .kt-top { display:flex; align-items:center; gap:9px; }
.rp .kt-ico { width:28px; height:28px; flex:none; display:grid; place-items:center; border-radius:9px; color:var(--kc); background:color-mix(in srgb, var(--kc) 13%, transparent); border:1px solid color-mix(in srgb, var(--kc) 28%, transparent); }
.rp .kt-ico svg { width:15px; height:15px; }
.rp .kt-l { font-size:10px; font-weight:700; letter-spacing:.85px; text-transform:uppercase; color:var(--text-sub); line-height:1.3; }
.rp .kt-body { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin-top:13px; min-height:34px; }
.rp .kt-v { font-family:var(--font-mono); font-size:27px; font-weight:800; letter-spacing:-.7px; line-height:1; color:var(--text); white-space:nowrap; }
.rp .kt-v.na { font-size:18px; font-weight:600; color:var(--text-muted); }
.rp .kt-spark { width:88px; height:32px; flex:none; color:var(--kc); }
.rp .kt-meter { position:relative; height:6px; margin:12px 0 10px; border-radius:3px; background:var(--bg-input); }
.rp .kt-meter i { position:absolute; left:0; top:0; bottom:0; width:0; border-radius:3px; background:linear-gradient(90deg, color-mix(in srgb, var(--kc) 30%, transparent), var(--kc)); transition:width .9s var(--ease-out); }
.rp .kt-meter b { position:absolute; top:-4px; bottom:-4px; width:2px; margin-left:-1px; border-radius:1px; background:var(--text); opacity:.6; }
.rp .kt-foot { display:flex; align-items:center; justify-content:space-between; gap:6px 8px; flex-wrap:wrap; font-size:10.5px; color:var(--text-muted); }
.rp .kt-chip { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:999px; font-family:var(--font-mono); font-size:10px; font-weight:700; white-space:nowrap; color:var(--kc); background:color-mix(in srgb, var(--kc) 12%, transparent); border:1px solid color-mix(in srgb, var(--kc) 32%, transparent); }
.rp .kt-none { font-style:italic; }
.rp .kt-sub { font-family:var(--font-mono); font-size:10px; }

/* ---- numbered report sections ---- */
.rp .rp-section { display:flex; flex-direction:column; gap:14px; scroll-margin-top:20px; }
.rp .rp-sec-head { display:flex; align-items:baseline; gap:12px; padding-bottom:9px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.rp .rp-sec-num { font-family:var(--font-mono); font-size:12px; font-weight:800; color:var(--gold); letter-spacing:1px; }
.rp .rp-sec-title { font-family:var(--font-display); font-size:19px; font-weight:700; color:var(--text); }
.rp .rp-sec-sub { font-size:11.5px; color:var(--text-muted); margin-left:auto; text-align:right; }
.rp .rp-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; }
.rp .rp-grid-2 > * { min-width:0; }
.rp .rp-grid-21 { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:18px; align-items:stretch; }
.rp .rp-grid-21 > * { min-width:0; }

.rp .kv { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--border); font-size:12.5px; }
.rp .kv:last-child { border-bottom:none; }
.rp .kv .k { color:var(--text-muted); } .rp .kv .v { font-family:var(--font-mono); color:var(--text); font-weight:600; text-align:right; }
.rp .kv .v.na { color:var(--text-muted); font-weight:400; }
.rp .note-line { font-size:11.5px; line-height:1.6; color:var(--text-muted); margin-top:10px; }

/* why-this-score contributions */
.rp .ctb-row { display:grid; grid-template-columns:132px 44px 1fr 84px; align-items:center; gap:10px; padding:6px 0; border-bottom:1px dashed var(--border); }
.rp .ctb-row:last-of-type { border-bottom:none; }
.rp .ctb-row .f { font-size:12px; color:var(--text-sub); }
.rp .ctb-row .w { font-family:var(--font-mono); font-size:10.5px; color:var(--text-muted); text-align:right; }
.rp .ctb-row .bar { height:9px; border-radius:5px; background:var(--bg-input); overflow:hidden; position:relative; }
.rp .ctb-row .bar > i { position:absolute; left:0; top:0; bottom:0; border-radius:5px; transition:width .8s var(--ease-out); }
.rp .ctb-row .pts { font-family:var(--font-mono); font-size:11.5px; color:var(--text); text-align:right; }
.rp .ctb-row .pts small { color:var(--text-muted); font-size:10px; }
.rp .ctb-row.na .f, .rp .ctb-row.na .pts { color:var(--text-muted); }
.rp .ctb-foot { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:12px; padding-top:10px; border-top:1px solid var(--border); font-size:11.5px; color:var(--text-muted); }
.rp .ctb-foot b { color:var(--text); font-family:var(--font-mono); }
.rp .ctb-legend { display:flex; gap:14px; flex-wrap:wrap; font-size:10.5px; color:var(--text-muted); margin-bottom:8px; }
.rp .ctb-legend i { display:inline-block; width:10px; height:6px; border-radius:3px; margin-right:5px; vertical-align:1px; }

/* pillars */
.rp .pillar-row { display:grid; grid-template-columns:150px 1fr 42px; align-items:center; gap:12px; padding:7px 0; }
.rp .pillar-label { font-size:12px; color:var(--text-sub); }
.rp .bar-track { height:8px; background:var(--bg-input); border-radius:5px; overflow:hidden; }
.rp .bar-fill { height:100%; border-radius:5px; transition:width .7s var(--ease-out); }
.rp .pillar-score { font-family:var(--font-mono); font-size:13px; font-weight:700; color:var(--text); text-align:right; }

/* peer percentiles */
.rp .pct-row { display:grid; grid-template-columns:210px 90px minmax(160px,1fr) 190px; align-items:center; gap:12px; padding:7px 0; border-bottom:1px dashed var(--border); }
.rp .pct-row:last-child { border-bottom:none; }
.rp .pct-row .m { font-size:12px; color:var(--text-sub); }
.rp .pct-row .val { font-family:var(--font-mono); font-size:12px; color:var(--text); text-align:right; }
.rp .pct-scale { position:relative; height:10px; border-radius:5px; background:linear-gradient(90deg, var(--coral-dim), var(--bg-input) 50%, var(--teal-dim)); }
.rp .pct-scale .mid { position:absolute; left:50%; top:-3px; bottom:-3px; width:1px; background:var(--text-muted); opacity:.6; }
.rp .pct-scale .dot { position:absolute; top:50%; width:13px; height:13px; border-radius:50%; transform:translate(-50%,-50%); border:2px solid var(--bg-card); box-shadow:0 0 0 1px var(--border-strong, var(--border)); transition:left .8s var(--ease-out); }
.rp .pct-row .txt { font-size:11px; color:var(--text-muted); line-height:1.35; }
.rp .pct-row .txt b { color:var(--text); font-family:var(--font-mono); }
.rp .pct-row.na .val, .rp .pct-row.na .txt { color:var(--text-muted); }

.rp .rflag { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; font-size:11px; margin:3px 4px 3px 0; border:1px solid var(--border); }
.rp .rflag.HIGH { background:var(--coral-dim); color:var(--coral); border-color:var(--coral); }
.rp .rflag.MEDIUM { background:rgba(245,166,35,.12); color:var(--amber); }
.rp .rflag.GREEN { background:var(--teal-dim); color:var(--teal); }
.rp .note-card { font-size:13px; line-height:1.7; color:var(--text-sub); }
.rp .note-card strong { color:var(--text); }
.rp .peer-link { cursor:pointer; }
.rp .gauge-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px 10px; }
.rp .src-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 24px; font-size:12px; color:var(--text-sub); line-height:1.6; }
.rp .src-list b { display:block; font-size:10px; letter-spacing:.8px; text-transform:uppercase; color:var(--text-muted); font-weight:700; margin-bottom:3px; }
.rp .src-list a { color:var(--accent-contrast, var(--gold)); word-break:break-all; }
.rp .chart-msg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:0 24px; font-size:12px; color:var(--text-muted); }
.rp .pb-stats { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.rp .asof-tag { display:inline-flex; align-items:center; gap:5px; font-size:10px; letter-spacing:.5px; text-transform:uppercase; color:var(--text-muted); border:1px dashed var(--border); border-radius:999px; padding:3px 10px; }

/* ---- Live Market Snapshot (display-only live quote + price chart; assets/js/live-quote.js) ---- */
.rp .lq-card { padding:20px 22px 18px; }
.rp .lq-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.rp .lq-sub { font-size:11px; color:var(--text-muted); margin-top:5px; letter-spacing:.2px; }
.rp .lq-badge { display:inline-flex; align-items:center; gap:7px; padding:5px 12px; border-radius:999px; font-size:11px; font-weight:600; letter-spacing:.2px; border:1px solid var(--border); white-space:nowrap; }
.rp .lq-badge.lq-live { color:var(--teal); background:var(--teal-dim); border-color:var(--teal); }
.rp .lq-badge.lq-closed { color:var(--text-sub); background:var(--bg-input); }
.rp .lq-badge.lq-delayed { color:var(--amber); background:rgba(245,166,35,.12); border-color:rgba(245,166,35,.45); }
.rp .lq-badge.lq-off { color:var(--text-muted); background:var(--bg-input); }
.rp .lq-dot { width:7px; height:7px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 0 var(--teal); animation:lqPulse 1.8s infinite; }
@keyframes lqPulse { 0%{ box-shadow:0 0 0 0 rgba(62,207,178,.55);} 70%{ box-shadow:0 0 0 7px rgba(62,207,178,0);} 100%{ box-shadow:0 0 0 0 rgba(62,207,178,0);} }
.rp .lq-top { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; }
.rp .lq-price { font-family:var(--font-mono); font-size:34px; font-weight:800; color:var(--text); letter-spacing:-.8px; line-height:1; }
.rp .lq-chg, .rp .lq-range-chg { font-family:var(--font-mono); font-size:13px; font-weight:700; margin-top:8px; }
.rp .lq-chg.up, .rp .lq-range-chg.up { color:var(--teal); } .rp .lq-chg.down, .rp .lq-range-chg.down { color:var(--coral); }
.rp .lq-chg-lbl { font-family:var(--font-sans,inherit); font-weight:500; color:var(--text-muted); font-size:11px; margin-left:4px; }
.rp .lq-range-chg { font-size:12px; margin:14px 0 4px; min-height:16px; }
.rp .lq-tools { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; max-width:100%; }
.rp .lq-kind { display:inline-flex; padding:3px; gap:2px; border-radius:999px; border:1px solid var(--border); background:var(--bg-input); }
.rp .lq-kbtn { display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border:0; border-radius:999px; background:transparent; color:var(--text-sub); font:600 11.5px var(--font-sans, inherit); cursor:pointer; transition:background .12s var(--ease-out), color .12s var(--ease-out); }
.rp .lq-kbtn:hover:not(.active) { color:var(--text); }
.rp .lq-kbtn.active { background:var(--accent-contrast-dim, var(--gold-dim)); color:var(--accent-contrast, var(--gold)); box-shadow:inset 0 0 0 1px var(--accent-contrast, var(--border-gold)); }
.rp .lq-kbtn:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.rp .lq-ranges { display:flex; overflow-x:auto; scrollbar-width:none; max-width:100%; }
.rp .lq-ranges::-webkit-scrollbar { display:none; }
.rp .lq-range { flex:0 0 auto; padding:6px 12px; font-size:11.5px; font-weight:600; font-family:var(--font-mono); color:var(--text-sub); background:transparent; border:1px solid var(--border); border-left-width:0; cursor:pointer; transition:background .12s var(--ease-out), color .12s var(--ease-out); }
.rp .lq-range:first-child { border-left-width:1px; border-radius:999px 0 0 999px; padding-left:14px; }
.rp .lq-range:last-child { border-radius:0 999px 999px 0; padding-right:14px; }
.rp .lq-range:hover:not(.active) { color:var(--text); background:var(--bg-input); }
.rp .lq-range.active { background:var(--accent-contrast-dim, var(--gold-dim)); color:var(--accent-contrast, var(--text)); box-shadow:inset 0 0 0 1px var(--accent-contrast, var(--gold)); font-weight:700; }
.rp .lq-range:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.rp .lq-chart-wrap { position:relative; height:280px; margin-top:4px; }
.rp .lq-chart-msg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:0 20px; font-size:12px; color:var(--text-muted); }
.rp .lq-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:10px; margin-top:16px; padding-top:14px; border-top:1px solid var(--border); }
.rp .lq-stat .l { font-size:10px; text-transform:uppercase; letter-spacing:.7px; color:var(--text-muted); }
.rp .lq-stat .v { font-family:var(--font-mono); font-size:14px; font-weight:700; color:var(--text); margin-top:5px; }
.rp .lq-stat .v.na { color:var(--text-muted); font-weight:400; }
.rp .lq-note { font-size:11px; line-height:1.6; color:var(--text-muted); margin:9px 4px 0; }

/* ---- responsive ---- */
@media (max-width:1180px){ .rp .rp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .rp .rp-summary > :last-child { grid-column:1 / -1; } .rp .rp-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:1023.98px){ .rp .rp-grid-21 { grid-template-columns:1fr; } }
@media (max-width:1279.98px){ .rp .rp-head-grid { grid-template-columns:1fr; } }   /* beside the sidebar the fact tiles need the full width */   /* growth scorecard needs the full width below desktop */
.rp .rp-cq { container-type:inline-size; }   /* the history section only (no fixed or escaping children) */
@container (max-width:900px) { .rp .rp-grid-21 { grid-template-columns:1fr; } }
@media (max-width:900px){
  .rp .rp-head-grid, .rp .rp-grid-2, .rp .rp-grid-21, .rp .rp-summary { grid-template-columns:1fr; }
  .rp .rp-summary > :last-child { grid-column:auto; }
  .rp .src-list { grid-template-columns:1fr; }
  .rp .rp-head { padding:20px 18px 16px; }
  .rp .pct-row { grid-template-columns:minmax(0,1fr) 84px; row-gap:6px; }
  .rp .pct-row .pct-scale, .rp .pct-row .txt { grid-column:1 / -1; }
}
@media (max-width:560px){
  .rp { gap:16px; }
  .rp .rp-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .rp .rp-fact { min-height:76px; padding:10px 11px; }
  .rp .rp-fact .v { font-size:16px; }
  .rp .rp-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .rp .kt { padding:12px 11px 11px; }
  .rp .kt::before { top:10px; bottom:10px; }
  .rp .kt-top { gap:7px; align-items:flex-start; }
  .rp .kt-ico { width:24px; height:24px; border-radius:7px; }
  .rp .kt-ico svg { width:13px; height:13px; }
  .rp .kt-l { font-size:9px; letter-spacing:.45px; }
  .rp .kt-body { margin-top:10px; min-height:0; }
  .rp .kt-v { font-size:21px; }
  .rp .kt-v.na { font-size:15px; }
  .rp .kt-spark { display:none; }
  .rp .kt-meter { margin:10px 0 8px; }
  .rp .kt-foot { flex-direction:column; align-items:flex-start; gap:5px; }
  .rp .kt-chip { font-size:9.5px; padding:2px 7px; }
  .rp .kt-w { display:none; }
  .rp .ctb-row { grid-template-columns:96px 34px minmax(0,1fr) 62px; gap:8px; }
  .rp .pillar-row { grid-template-columns:118px minmax(0,1fr) 36px; gap:8px; }
  .rp .gauge-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rp .lq-price { font-size:28px; }
  .rp .lq-chart-wrap { height:230px; }
  .rp .lq-top { align-items:flex-start; }
  .rp .lq-tools { justify-content:flex-start; }
  .rp .rp-card { padding:16px 15px; }
  .rp .rp-astra { gap:12px; }
  .rp .astra-gauge { width:96px; height:96px; }
  .rp .rp-sec-sub { margin-left:0; text-align:left; width:100%; }
  .rp .rp-sec-title { font-size:17px; }
}
/* ---- R23: ROE, taken apart (DuPont) ---- */
.rp .dp-eq { display:grid; grid-template-columns:minmax(0,1.1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:6px; margin-top:4px; }
.rp .dp-f { display:flex; flex-direction:column; gap:3px; min-width:0; padding:11px 10px; border-radius:12px; background:var(--bg-input); border:1px solid var(--border); }
.rp .dp-f.dp-roe { background:linear-gradient(160deg, rgba(201,168,76,.16), rgba(201,168,76,.04)); border-color:var(--border-gold); }
.rp .dp-k { font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); }
.rp .dp-f b { font-family:var(--font-mono); font-size:19px; font-weight:800; color:var(--text); line-height:1.15; }
.rp .dp-f.dp-roe b { color:var(--gold); }
.rp .dp-s { font-size:11px; line-height:1.35; color:var(--text-sub); }
.rp .dp-cmp { margin-top:auto; padding-top:4px; font-size:10.5px; line-height:1.35; color:var(--text-muted); }
.rp .dp-cmp.up { color:var(--teal); } .rp .dp-cmp.dn { color:var(--coral); } .rp .dp-cmp.nt { color:var(--text-muted); }
.rp .dp-op { align-self:center; font-family:var(--font-mono); font-size:18px; font-weight:700; color:var(--gold); }
.rp .dp-read { margin:14px 0 0; font-size:13px; line-height:1.65; color:var(--text-sub); }
.rp .dp-read b { color:var(--text); font-weight:600; }
.rp .dp-read.dp-q { margin-top:8px; padding:10px 12px; border-radius:10px; border-left:3px solid var(--gold); background:var(--bg-input); color:var(--text); }
.rp .dp-table { width:100%; border-collapse:collapse; font-size:12.5px; }
.rp .dp-table th { padding:7px 6px; text-align:right; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted); border-bottom:1px solid var(--border); white-space:nowrap; }
.rp .dp-table td { padding:8px 6px; text-align:right; font-family:var(--font-mono); color:var(--text-sub); border-bottom:1px solid var(--border); white-space:nowrap; }
.rp .dp-table th:first-child, .rp .dp-table td:first-child { text-align:left; }
.rp .dp-table td:first-child { color:var(--text-muted); }
.rp .dp-table .dp-roe-c { color:var(--text); font-weight:700; }
.rp .dp-table tr.dp-now td { background:rgba(201,168,76,.07); }
.rp .dp-table tr.dp-now td:first-child { color:var(--gold); font-weight:700; }
.rp .dp-table:not(.open) tr.dp-old { display:none; }
.rp .dp-more { display:block; margin:10px auto 0; min-height:36px; padding:0 16px; border-radius:999px; border:1px solid var(--border-gold); background:transparent; color:var(--gold); font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.rp .dp-more:hover { background:rgba(201,168,76,.1); }
@media (max-width:1279.98px){ .rp .dp-grid { grid-template-columns:1fr; } }   /* beside the sidebar the year table needs the full width */
@media (max-width:1180px){ .rp .dp-eq { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .rp .dp-op { display:none; } }
@media (max-width:1023.98px){ .rp .dp-more { min-height:44px; } }
@media (max-width:560px){ .rp .dp-f b { font-size:17px; } .rp .dp-table { font-size:11.5px; } .rp .dp-table th, .rp .dp-table td { padding:7px 4px; } .rp .dp-table th { white-space:normal; font-size:9.5px; line-height:1.25; vertical-align:bottom; } .rp .dp-table th:nth-child(4), .rp .dp-table td:nth-child(4) { display:none; } }   /* phones: ROA (= margin x yield) steps aside so ROE fits */
@media print { .rp .dp-table tr.dp-old { display:table-row !important; } .rp .dp-more { display:none; } }

@media (prefers-reduced-motion: reduce){ .rp .lq-dot { animation:none; } .rp .kt, .rp .bar-fill, .rp .ctb-row .bar > i, .rp .pct-scale .dot, .rp .kt-meter i { transition:none; } }

/* ============================================================
   R21: the business quality and valuation cards
   ============================================================ */
.rp .astra-gauge .ag-ticks line { stroke:var(--border); stroke-width:1.4; stroke-linecap:round; }
.rp .astra-gauge .ag-arc { filter:drop-shadow(0 0 5px color-mix(in srgb, var(--gc) 55%, transparent)); }
.rp .astra-gauge .ag-med { fill:var(--bg-card); stroke:var(--text-sub); stroke-width:1.6; }
.rp .rp-segpos { display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; margin-top:8px; font-size:11.5px; color:var(--text-sub); }
.rp .rp-segpos b { font-family:var(--font-mono); color:var(--text); }
.rp .rp-segpos span { display:inline-flex; align-items:center; gap:5px; color:var(--text-muted); font-size:11px; }
.rp .rp-segpos .ag-med-k { width:8px; height:8px; border-radius:50%; background:var(--bg-card); box-shadow:0 0 0 1.6px var(--text-sub); }
.rp .rp-why > div { padding:10px 11px; border-radius:12px; background:var(--bg-input); border:1px solid var(--border); }
.rp .rp-why .up { border-color:color-mix(in srgb, var(--teal) 32%, var(--border)); }
.rp .rp-why .dn { border-color:color-mix(in srgb, var(--coral) 32%, var(--border)); }
.rp .rpw-bar { position:relative; display:block; height:6px; margin:7px 0 5px; border-radius:999px; background:color-mix(in srgb, var(--text-muted) 16%, transparent); }
.rp .rpw-bar i { position:absolute; left:0; top:0; bottom:0; border-radius:999px; }
.rp .rp-why .up .rpw-bar i { background:linear-gradient(90deg, color-mix(in srgb, var(--teal) 45%, transparent), var(--teal)); }
.rp .rp-why .dn .rpw-bar i { background:linear-gradient(90deg, color-mix(in srgb, var(--coral) 45%, transparent), var(--coral)); }
.rp .rpw-bar s { position:absolute; top:-4px; bottom:-4px; width:2px; margin-left:-1px; border-radius:1px; background:var(--text); opacity:.75; }

/* the valuation scale: three zones, the gap between the market and the model drawn on the track */
.rp .fv2 .fv-track { height:14px; border-radius:999px; overflow:visible; background:none; margin:30px 0 24px; }
.rp .fv-z { position:absolute; top:0; bottom:0; transition:opacity .3s; }
.rp .fv-z.below { border-radius:999px 0 0 999px; background:linear-gradient(90deg, color-mix(in srgb, var(--teal) 10%, transparent), color-mix(in srgb, var(--teal) 30%, transparent)); }
.rp .fv-z.fair { background:color-mix(in srgb, var(--gold) 34%, transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 60%, transparent); }
.rp .fv-z.above { border-radius:0 999px 999px 0; background:linear-gradient(90deg, color-mix(in srgb, var(--coral) 30%, transparent), color-mix(in srgb, var(--coral) 10%, transparent)); }
.rp .fv-gap { position:absolute; top:4px; bottom:4px; border-radius:999px; opacity:.95; }
.rp .fv-gap.cheap { background:repeating-linear-gradient(135deg, var(--teal) 0 5px, color-mix(in srgb, var(--teal) 45%, transparent) 5px 10px); }
.rp .fv-gap.rich { background:repeating-linear-gradient(135deg, var(--coral) 0 5px, color-mix(in srgb, var(--coral) 45%, transparent) 5px 10px); }
.rp .fv2 .fv-mark { top:-7px; height:28px; width:4px; transform:translateX(-2px); border-radius:2px; }
.rp .fv2 .fv-mark.model { background:var(--gold); box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 22%, transparent); }
.rp .fv2 .fv-mark.actual { background:var(--text); box-shadow:0 0 0 3px color-mix(in srgb, var(--text) 18%, transparent), 0 0 12px color-mix(in srgb, var(--text) 35%, transparent); }
.rp .fv2 .fv-lbl { padding:2px 7px; border-radius:999px; font-size:10.5px; }
.rp .fv2 .fv-lbl.top { top:-30px; color:var(--bg-card); background:var(--text); }
.rp .fv2 .fv-lbl.bot { top:25px; color:var(--gold); background:color-mix(in srgb, var(--gold) 14%, transparent); }
.rp .fv-leg { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; font-size:10.5px; color:var(--text-muted); }
.rp .fv-leg span { display:inline-flex; align-items:center; gap:6px; }
.rp .fv-leg span::before { content:""; width:12px; height:8px; border-radius:3px; }
.rp .fv-leg .below::before { background:color-mix(in srgb, var(--teal) 45%, transparent); }
.rp .fv-leg .fair::before { background:color-mix(in srgb, var(--gold) 50%, transparent); }
.rp .fv-leg .above::before { background:color-mix(in srgb, var(--coral) 45%, transparent); }
.rp .fv2.at-below .fv-leg .below, .rp .fv2.at-fair .fv-leg .fair, .rp .fv2.at-above .fv-leg .above { color:var(--text); font-weight:700; }
