/* market-research-report.css
   Single shared stylesheet for all 40 iFeed Market Research reports (MRA + QVR).
   Built from the union of the 3 layout-CSS variants found across the corpus
   (see build_report_theme_css.py docstring) -- source-of-record: QVR-002_equipment-validation-services.html.
   Every color now references the shared iFeed design tokens defined in
   ifeed-platform-shell.css (:root / :root[data-theme="dark"]) instead of a
   private per-report hex palette -- this is the actual theme-consistency fix.
*/

:root {
  /* font-stack tokens -- unchanged, not part of the color-theme fix */
  --f-serif: "Source Serif 4",Georgia,serif;
  --f-ui: "Inter",system-ui,sans-serif;
  --f-mono: "JetBrains Mono",Menlo,monospace;

  /* Back-compat aliases: extracted report section/chrome HTML is preserved
     verbatim and some of it references these old local token names directly
     via inline style="" attributes. This stylesheet's own rules below no
     longer use these names (they reference --if-* directly) -- these aliases
     exist only so untouched legacy inline content keeps resolving correctly. */
  --bone: var(--if-surface-2);
  --white: var(--if-surface);
  --ink: var(--if-ink);
  --ink-soft: var(--if-ink-2);
  --mute: var(--if-ink-4);
  --hair: var(--if-rule);
  --sage: var(--if-accent);
  --sage-deep: var(--if-accent);
  --sage-tint: var(--if-accent-bg);
  --gold: var(--if-signal);
  --gold-deep: var(--if-signal);
  --gold-tint: var(--if-signal-bg);
  --signal: var(--if-signal);
}

*{box-sizing:border-box}body{margin:0;background:var(--if-surface);color:var(--if-ink-2);font-family:var(--f-ui);font-size:14px;line-height:1.6}
a{color:var(--if-accent);text-decoration:none}a:hover{text-decoration:underline}
main.content a,.bc a,footer a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}

/* Utility bar */
.util{background:var(--if-ink);color:var(--if-surface-2);padding:7px 32px;font-size:11px;display:none;gap:20px;justify-content:flex-end}
.util a{color:var(--if-surface-2);font-family:var(--f-mono);letter-spacing:0.04em}

/* Header */
.hdr{background:var(--if-surface);border-bottom:1px solid var(--if-rule);border-radius:0 0 18px 18px;box-shadow:0 4px 16px rgba(0,0,0,.06);padding:11px 28px;display:grid;grid-template-columns:auto 1fr auto auto;gap:18px;align-items:center;position:sticky;top:0;z-index:20}
.hdr .brand{display:flex;align-items:baseline;gap:6px}
.hdr .wm{font-family:var(--f-serif);font-weight:400;font-size:26px;color:var(--if-ink);letter-spacing:-0.02em}
.hdr .wm em{font-style:italic}
.hdr .dot{width:5px;height:5px;border-radius:50%;background:var(--if-signal);transform:translateY(-3px)}
.hdr .tag{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--if-ink-4);padding-left:12px;border-left:1px solid var(--if-rule);margin-left:12px}
.hdr nav ul{list-style:none;padding:0;margin:0;display:flex;gap:20px;justify-content:center}
.hdr nav a{color:var(--if-ink-2);font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:6px 0;border-bottom:2px solid transparent}
.hdr nav a:hover,.hdr nav a.active{color:var(--if-ink);border-color:var(--if-accent);text-decoration:none}
.hdr .cta{padding:7px 15px;background:var(--if-accent);color:var(--if-on-accent);border:none;border-radius:999px;font-family:var(--f-mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.hdr .cta:hover{background:var(--if-ink)}

/* Breadcrumb */
.bc{padding:14px 32px;background:var(--if-surface-2);border-bottom:1px solid var(--if-rule);font-size:11.5px;color:var(--if-ink-4);font-family:var(--f-mono);letter-spacing:0.02em}
.bc a{color:var(--if-ink-2)}
.bc .sep{margin:0 8px}

/* Report hero */
.r-hero{padding:36px 32px 28px;background:var(--if-surface);border-bottom:1px solid var(--if-rule)}
.r-hero .inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start}
.r-hero .industry{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--if-signal);font-weight:600;margin-bottom:10px}
.r-hero h1{font-family:var(--f-serif);font-weight:300;font-size:clamp(28px,3.4vw,42px);color:var(--if-ink);letter-spacing:-0.025em;margin:0 0 14px;line-height:1.12}
.r-hero .rpt-meta{display:flex;gap:24px;font-family:var(--f-mono);font-size:11px;color:var(--if-ink-4);padding:14px 0;border-top:1px solid var(--if-rule);border-bottom:1px solid var(--if-rule);margin:18px 0;flex-wrap:wrap}
.r-hero .rpt-meta span b{color:var(--if-ink);font-family:var(--f-ui);font-weight:500}
.r-hero .summary{font-size:14.5px;color:var(--if-ink-2);line-height:1.6;max-width:720px}

/* Sidebar (purchase/engagement) */
.aside{background:var(--if-surface-2);border:1px solid var(--if-rule);border-radius:10px;padding:22px;position:sticky;top:90px}
.aside h4{margin:0 0 14px;font-family:var(--f-serif);font-weight:500;font-size:16px;color:var(--if-ink)}
.plan{padding:12px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:6px;margin-bottom:10px;cursor:pointer;transition:all 120ms}
.plan:hover{border-color:var(--if-accent)}
.plan.selected{border-color:var(--if-accent);background:var(--if-accent-bg)}
.plan .plan-name{font-weight:600;font-size:13px;color:var(--if-ink);margin-bottom:2px;display:flex;justify-content:space-between;align-items:baseline}
.plan .plan-name .price{font-family:var(--f-mono);font-size:12px;color:var(--if-accent)}
.plan .plan-desc{font-size:11.5px;color:var(--if-ink-2);line-height:1.4}
.aside .btn{width:100%;padding:10px;border:none;border-radius:6px;font-family:var(--f-ui);font-size:13px;font-weight:500;cursor:pointer;margin-bottom:8px;text-align:center;display:block;text-decoration:none;transition:all 120ms}
.aside .btn.p{background:var(--if-ink);color:var(--if-surface)}
.aside .btn.p:hover{background:var(--if-accent)}
.aside .btn.s{background:var(--if-surface);color:var(--if-ink);border:1px solid var(--if-rule)}
.aside .btn.s:hover{border-color:var(--if-ink)}
.aside .facts{margin-top:18px;padding-top:18px;border-top:1px solid var(--if-rule)}
.aside .facts h5{font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--if-ink-4);margin:0 0 10px;font-weight:600}
.aside .facts .fact{display:flex;justify-content:space-between;padding:5px 0;font-size:11.5px;border-bottom:1px dashed var(--if-rule)}
.aside .facts .fact:last-child{border-bottom:0}
.aside .facts .fact .k{color:var(--if-ink-4)}
.aside .facts .fact .v{color:var(--if-ink);font-weight:500}

/* Main body with TOC */
.body{max-width:1280px;margin:0 auto;padding:32px;display:grid;grid-template-columns:220px 1fr 320px;gap:32px}
.toc{position:sticky;top:90px;align-self:start;max-height:calc(100vh - 110px);overflow-y:auto;padding:16px 0;border-right:1px solid var(--if-rule)}
.toc h5{font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--if-ink-4);margin:0 0 10px;font-weight:600}
.toc ol{list-style:none;padding:0;margin:0;counter-reset:s}
.toc li{counter-increment:s;padding:5px 10px 5px 0;font-size:12.5px;border-left:2px solid transparent;padding-left:10px;margin-left:-10px}
.toc li:hover{border-left-color:var(--if-accent);background:var(--if-surface-2)}
.toc li a{color:var(--if-ink-2);text-decoration:none;display:block}
.toc li a::before{content:counter(s,decimal-leading-zero) " ";color:var(--if-ink-4);font-family:var(--f-mono);font-size:10px}
main.content{min-width:0}
main.content section{margin-bottom:48px;padding-bottom:32px;border-bottom:1px solid var(--if-rule)}
main.content section:last-child{border-bottom:0}
main.content h2{font-family:var(--f-serif);font-weight:400;font-size:28px;color:var(--if-ink);letter-spacing:-0.02em;margin:0 0 14px;line-height:1.2}
main.content h3{font-family:var(--f-serif);font-weight:500;font-size:19px;color:var(--if-ink);margin:24px 0 10px}
main.content h4{font-family:var(--f-ui);font-weight:600;font-size:13px;color:var(--if-ink);margin:16px 0 8px;text-transform:uppercase;letter-spacing:0.04em}
main.content p{margin:0 0 12px;color:var(--if-ink-2)}
main.content ul,main.content ol{padding-left:22px}main.content li{margin-bottom:6px}
.callout{padding:16px 20px;background:var(--if-accent-bg);border-left:3px solid var(--if-accent);border-radius:0 6px 6px 0;margin:14px 0;font-size:13px;color:var(--if-ink)}
.placeholder{padding:16px 20px;background:var(--if-signal-bg);border-left:3px solid var(--if-signal);border-radius:0 6px 6px 0;margin:14px 0}
.placeholder .pl-l{font-family:var(--f-mono);font-size:10px;color:var(--if-signal);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:4px;font-weight:600}
.placeholder p{margin:0;font-size:12.5px;color:var(--if-ink)}
.verify{background:var(--if-signal-bg);border-left-color:var(--if-signal)}
.verify .pl-l{color:var(--if-signal)}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:18px 0}
.metric{padding:14px;background:var(--if-surface-2);border:1px solid var(--if-rule);border-radius:6px}
.metric .l{font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--if-ink-4);margin-bottom:6px;font-weight:600}
.metric .v{font-family:var(--f-serif);font-weight:400;font-size:24px;color:var(--if-ink);line-height:1;letter-spacing:-0.02em}
.metric .d{font-size:11px;color:var(--if-ink-2);margin-top:4px;font-family:var(--f-mono)}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:12.5px}
table thead th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--if-rule);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:0.04em;color:var(--if-ink-4);background:var(--if-surface-2)}
table tbody td{padding:10px 12px;border-bottom:1px solid var(--if-rule);color:var(--if-ink)}
table tbody tr:nth-child(odd){background:var(--if-surface-2)}
.faq .q{padding:14px 18px;background:var(--if-surface-2);border:1px solid var(--if-rule);border-radius:6px;margin-bottom:10px}
.faq .q summary{font-family:var(--f-serif);font-weight:500;font-size:15px;color:var(--if-ink);cursor:pointer;outline:none}
.faq .q[open]{border-color:var(--if-accent)}
.faq .q p{margin:10px 0 0;font-size:13px;color:var(--if-ink-2)}

/* Right panel: related + downloads */
.r-panel{position:sticky;top:90px;align-self:start}
.r-card{padding:18px;background:var(--if-surface-2);border:1px solid var(--if-rule);border-radius:10px;margin-bottom:16px}
.r-card h5{margin:0 0 10px;font-family:var(--f-serif);font-weight:500;font-size:14px;color:var(--if-ink)}
.r-card .item{padding:10px 0;border-top:1px solid var(--if-rule);font-size:12.5px}
.r-card .item:first-of-type{border-top:0}
.r-card .item a{color:var(--if-ink);font-weight:500;line-height:1.35;display:block;text-decoration:none}
.r-card .item a:hover{color:var(--if-accent)}
.r-card .item .cat{font-size:10px;color:var(--if-ink-4);letter-spacing:0.06em;text-transform:uppercase;margin-top:3px}

footer{padding:32px;background:var(--if-ink);color:var(--if-surface-2);text-align:center;font-size:11.5px;font-family:var(--f-mono);letter-spacing:0.02em}
footer a{color:var(--if-surface-2);opacity:0.8}footer a:hover{opacity:1}
footer .foot-brand{font-family:var(--f-serif);font-weight:300;font-size:22px;letter-spacing:-0.02em;margin-bottom:8px;font-style:normal}
footer .foot-brand em{font-style:italic}

@media (max-width:980px){.body{grid-template-columns:1fr;gap:20px}.r-hero .inner{grid-template-columns:1fr;gap:20px}.toc{position:relative;max-height:none;border-right:0;border-bottom:1px solid var(--if-rule)}.r-panel{position:relative}.aside{position:relative}}

.hero-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0 8px}
.hero-kpi{padding:16px 14px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:8px;border-left:3px solid var(--if-accent)}
.hero-kpi:nth-child(2){border-left-color:var(--if-signal)}
.hero-kpi:nth-child(3){border-left-color:var(--if-ink)}
.hero-kpi:nth-child(4){border-left-color:var(--if-accent)}
.hero-kpi .l{font-size:9.5px;text-transform:uppercase;letter-spacing:0.08em;color:var(--if-ink-4);margin-bottom:6px;font-weight:600;font-family:var(--f-mono)}
.hero-kpi .v{font-family:var(--f-serif);font-weight:400;font-size:20px;color:var(--if-ink);line-height:1.1;letter-spacing:-0.01em}
.hero-cta{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.hero-cta a{display:inline-block;padding:9px 16px;border-radius:6px;font-size:12.5px;font-weight:500;text-decoration:none;font-family:var(--f-ui)}
.hero-cta a.p{background:var(--if-ink);color:var(--if-surface)}
.hero-cta a.p:hover{background:var(--if-accent)}
.hero-cta a.s{background:transparent;color:var(--if-ink);border:1px solid var(--if-rule)}
.hero-cta a.s:hover{border-color:var(--if-ink)}
@media (max-width:980px){.hero-kpis{grid-template-columns:repeat(2,1fr)}}


.hero-visual{margin:18px 0 0;padding:0}
.hero-visual-cap{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:0.08em;color:var(--if-ink-4);margin:0 0 8px;font-weight:600}
.hero-visual svg{width:100%;height:auto;display:block;border:1px solid var(--if-rule);border-radius:8px;background:var(--if-surface-2)}


/* ────── HERO VISUAL DESIGN SYSTEM · 10 archetypes ────── */
.hv{margin:18px 0 0;font-family:var(--f-ui)}
.hv-cap{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:var(--if-ink-4);font-weight:600;margin-bottom:10px}

/* D1 · Signal Orbit */
.hv-orbit{position:relative;width:100%;height:300px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-orbit .core{position:absolute;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--if-accent),var(--if-accent));display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--if-on-accent);text-align:center;box-shadow:0 8px 24px rgba(74,107,86,0.3);z-index:5;padding:0 10px}
.hv-orbit .core .t{font-family:var(--f-serif);font-size:16px;font-weight:400;line-height:1.05}
.hv-orbit .core .s{font-size:9px;font-family:var(--f-mono);opacity:0.85;letter-spacing:0.08em;text-transform:uppercase;margin-top:4px}
.hv-orbit .ring{position:absolute;width:280px;height:280px;border-radius:50%;border:1px dashed var(--if-rule);animation:hvrot 60s linear infinite}
@keyframes hvrot{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.hv-orbit .b{position:absolute;width:88px;text-align:center;font-size:10px;color:var(--if-ink);font-family:var(--f-mono);letter-spacing:0.04em;text-transform:uppercase}
.hv-orbit .b .d{width:10px;height:10px;border-radius:50%;background:var(--if-signal);margin:0 auto 4px;box-shadow:0 2px 6px rgba(184,152,104,0.4)}
.hv-orbit .b.b1{top:14%;left:50%;transform:translateX(-50%)}
.hv-orbit .b.b2{top:28%;left:78%}
.hv-orbit .b.b3{top:55%;left:84%}
.hv-orbit .b.b4{top:80%;left:50%;transform:translateX(-50%)}
.hv-orbit .b.b5{top:55%;left:16%;transform:translateX(-100%)}
.hv-orbit .b.b6{top:28%;left:22%;transform:translateX(-100%)}
.hv-orbit .b.b7{top:4%;left:62%}

/* D2 · Readiness Meter */
.hv-meter{display:grid;grid-template-columns:1fr 190px;gap:20px;align-items:center;padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-meter .stages h4{font-family:var(--f-mono);font-weight:600;font-size:10px;color:var(--if-ink-4);margin:0 0 10px;text-transform:uppercase;letter-spacing:0.05em}
.hv-meter .row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:7px 11px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:6px;font-size:12px;margin-bottom:5px}
.hv-meter .row.done{background:var(--if-accent-bg);border-color:var(--if-accent)}
.hv-meter .row.progress{background:var(--if-signal-bg);border-color:var(--if-signal)}
.hv-meter .row .num{font-family:var(--f-mono);font-size:10px;color:var(--if-ink-4);background:var(--bone-deep);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600}
.hv-meter .row.done .num{background:var(--if-accent);color:var(--if-on-accent)}
.hv-meter .row.progress .num{background:var(--if-signal);color:var(--if-surface)}
.hv-meter .row .lbl{font-weight:500;color:var(--if-ink)}
.hv-meter .row .st{font-family:var(--f-mono);font-size:9px;color:var(--if-ink-4);text-transform:uppercase;letter-spacing:0.06em}
.hv-meter .row.done .st{color:var(--if-accent)}
.hv-meter .row.progress .st{color:var(--if-signal)}
.hv-meter .gauge{display:flex;flex-direction:column;align-items:center;padding:18px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:10px}
.hv-meter .gauge .sc{font-family:var(--f-serif);font-weight:300;font-size:42px;color:var(--if-ink);line-height:1;letter-spacing:-0.02em;margin-top:4px}
.hv-meter .gauge .tt{font-family:var(--f-mono);font-size:10px;color:var(--if-ink-4);margin-top:2px}
.hv-meter .gauge .bd{margin-top:12px;padding:5px 12px;background:var(--if-signal-bg);color:var(--if-signal);font-size:10px;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:0.08em;border-radius:99px;font-weight:600}
.bone-deep{background-color:var(--if-surface-2)}

/* D3 · Network Map */
.hv-net{display:grid;grid-template-columns:1fr 200px;gap:18px;align-items:center;padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-net .cv{background:var(--if-surface);border:1px solid var(--if-rule);border-radius:8px;overflow:hidden}
.hv-net .cv svg{width:100%;height:280px;display:block}
.hv-net .nd circle{transition:all 200ms cubic-bezier(.2,.7,.3,1);fill:var(--if-accent)}
.hv-net .nd:hover circle{r:14;fill:var(--if-accent)}
.hv-net .nd text{font-family:var(--f-mono);font-size:9px;fill:var(--if-ink);text-anchor:middle;letter-spacing:0.04em;pointer-events:none}
.hv-net .nd.t1 circle{fill:var(--if-signal)}
.hv-net .nd.t2 circle{fill:var(--if-signal)}
.hv-net .nd.hub circle{fill:var(--if-accent);r:14}
.hv-net .pn{background:var(--if-surface);border:1px solid var(--if-rule);border-radius:8px;padding:16px;font-size:12px}
.hv-net .pn h4{font-family:var(--f-serif);font-weight:500;font-size:13px;color:var(--if-ink);margin:0 0 10px}
.hv-net .pn .tr{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--if-rule);font-size:11px}
.hv-net .pn .tr:last-child{border-bottom:0}
.hv-net .pn .dt{width:8px;height:8px;border-radius:50%}
.hv-net .pn .dt.x1{background:var(--if-signal)}
.hv-net .pn .dt.x2{background:var(--if-signal)}
.hv-net .pn .dt.x3{background:var(--if-accent)}

/* D4 · Governance Filter */
.hv-filter{padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-filter .g{display:grid;grid-template-columns:1fr 2px 1.3fr 2px 1.3fr 2px 1fr;gap:10px;align-items:stretch}
.hv-filter .c{display:flex;flex-direction:column;gap:8px;justify-content:center}
.hv-filter .c .h{font-family:var(--f-mono);font-size:9px;color:var(--if-signal);text-transform:uppercase;letter-spacing:0.1em;font-weight:600;margin-bottom:6px}
.hv-filter .c.raw .i{padding:9px;background:var(--if-surface-2);border-left:3px solid var(--if-signal);font-size:11px;color:var(--if-ink)}
.hv-filter .c.lens .l{padding:8px 12px;background:var(--if-accent-bg);border-left:3px solid var(--if-accent);font-size:11px;color:var(--if-ink);display:flex;justify-content:space-between;align-items:center}
.hv-filter .c.lens .l .ct{font-family:var(--f-mono);font-size:9px;color:var(--if-accent);font-weight:600}
.hv-filter .c.lens .l.on{background:var(--if-accent);color:var(--if-on-accent)}
.hv-filter .c.lens .l.on .ct{color:var(--if-on-accent)}
.hv-filter .c.out .o{padding:9px;background:var(--if-ink);color:var(--if-surface);font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:0.08em;display:flex;justify-content:space-between;align-items:center;border-radius:5px}
.hv-filter .c.out .o b{font-family:var(--f-serif);font-size:13px;font-weight:300}
.hv-filter .dv{width:2px;background:linear-gradient(180deg,transparent,var(--if-rule),transparent)}

/* D5 · Evidence Flow */
.hv-flow{display:flex;align-items:stretch;gap:6px;padding:24px 14px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px;overflow-x:auto}
.hv-flow .sp{flex:1;min-width:130px;padding:14px 12px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:8px;text-align:center}
.hv-flow .sp .n{font-family:var(--f-mono);font-size:9px;color:var(--if-signal);font-weight:600;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:6px}
.hv-flow .sp .lb{font-family:var(--f-serif);font-size:14px;color:var(--if-ink);font-weight:400;line-height:1.2;margin-bottom:4px}
.hv-flow .sp .ds{font-size:10px;color:var(--if-ink-2);line-height:1.4}
.hv-flow .ar{font-family:var(--f-mono);font-size:16px;color:var(--if-accent);flex-shrink:0;display:flex;align-items:center;padding:0 2px}
.hv-flow .sp.on{background:var(--if-accent-bg);border-color:var(--if-accent)}
.hv-flow .sp.dn{background:var(--if-surface-2)}
.hv-flow .sp.dn .lb{color:var(--if-accent)}

/* D6 · Signal Cards 3×3 */
.hv-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-cards .cd{padding:13px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:7px;transition:all 180ms cubic-bezier(.2,.7,.3,1);cursor:pointer}
.hv-cards .cd:hover{border-color:var(--if-accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(74,107,86,0.08)}
.hv-cards .cd .mt{font-family:var(--f-mono);font-size:9px;color:var(--if-signal);text-transform:uppercase;letter-spacing:0.08em;font-weight:600;margin-bottom:5px;display:flex;justify-content:space-between}
.hv-cards .cd .mt .ct{color:var(--if-ink-4)}
.hv-cards .cd .tt{font-family:var(--f-serif);font-size:13px;color:var(--if-ink);font-weight:500;line-height:1.2;margin-bottom:5px}
.hv-cards .cd .bd{font-size:10.5px;color:var(--if-ink-2);line-height:1.4}
.hv-cards .cd.ft{background:var(--if-accent-bg);border-color:var(--if-accent)}
.hv-cards .cd.al{background:var(--if-signal-bg);border-color:var(--if-signal)}

/* D7 · Regulatory Timeline */
.hv-time{position:relative;padding:30px 16px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-time .ax{position:absolute;top:50%;left:24px;right:24px;height:2px;background:linear-gradient(90deg,var(--if-accent-bg),var(--if-accent),var(--if-signal),var(--if-signal))}
.hv-time .ev{position:relative;display:flex;justify-content:space-between;align-items:center}
.hv-time .ev .e{position:relative;width:14%;text-align:center}
.hv-time .ev .dt{width:16px;height:16px;border-radius:50%;background:var(--if-surface);border:3px solid var(--if-accent);margin:0 auto;position:relative;z-index:2}
.hv-time .ev .dat{font-family:var(--f-mono);font-size:9px;color:var(--if-ink-4);letter-spacing:0.04em;margin-top:6px}
.hv-time .ev .lb{font-family:var(--f-ui);font-size:10px;color:var(--if-ink);font-weight:500;margin-top:3px;line-height:1.2;padding:0 4px}
.hv-time .ev .im{font-family:var(--f-mono);font-size:8px;text-transform:uppercase;letter-spacing:0.07em;padding:1px 5px;background:var(--if-surface-2);color:var(--if-signal);border-radius:99px;display:inline-block;margin-top:4px}
.hv-time .ev .e.hi .dt{border-color:var(--if-signal)}
.hv-time .ev .e.hi .im{background:rgba(196,67,43,0.1);color:var(--if-signal)}

/* D8 · Capability Radar */
.hv-radar{display:grid;grid-template-columns:1fr 200px;gap:18px;align-items:center;padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-radar .ch{background:var(--if-surface);border:1px solid var(--if-rule);border-radius:8px;padding:14px;display:flex;align-items:center;justify-content:center}
.hv-radar .ch svg{width:100%;max-width:320px;height:auto}
.hv-radar .lg{font-size:12px}
.hv-radar .lg h4{font-family:var(--f-serif);font-weight:500;font-size:13px;color:var(--if-ink);margin:0 0 10px}
.hv-radar .lg .rw{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--if-rule);font-size:11px}
.hv-radar .lg .rw:last-child{border-bottom:0}
.hv-radar .lg .sw{width:14px;height:3px;border-radius:2px}
.hv-radar .lg .rw.if .sw{background:var(--if-accent)}
.hv-radar .lg .rw.sy .sw{background:var(--if-signal)}
.hv-radar .lg .rw.gn .sw{background:var(--if-rule-2)}
.hv-radar .lg .nm{flex:1;color:var(--if-ink);font-weight:500}
.hv-radar .lg .sc{font-family:var(--f-mono);font-size:10px;color:var(--if-ink-4);font-weight:600}

/* D9 · Competitive Heatmap */
.hv-heat{padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-heat table{width:100%;border-collapse:collapse;font-size:11px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:8px;overflow:hidden}
.hv-heat th{padding:9px 11px;background:var(--bone-deep);color:var(--if-ink);font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:0.07em;text-align:center;border-bottom:1px solid var(--if-rule);font-weight:600}
.hv-heat th:first-child{text-align:left}
.hv-heat td{padding:9px 11px;border-bottom:1px solid var(--if-rule);text-align:center;font-family:var(--f-mono);font-size:9.5px}
.hv-heat td:first-child{text-align:left;font-family:var(--f-serif);font-size:12px;color:var(--if-ink);font-weight:400;background:var(--if-surface-2)}
.hv-heat .c100{background:var(--if-accent);color:var(--if-on-accent);font-weight:600}
.hv-heat .c75{background:var(--if-accent);color:var(--if-on-accent)}
.hv-heat .c50{background:var(--if-accent-bg);color:var(--if-ink)}
.hv-heat .c25{background:var(--if-signal-bg);color:var(--if-ink)}
.hv-heat .c10{background:var(--if-surface-2);color:var(--if-ink-4)}

/* D10 · Regional Compass */
.hv-comp{display:grid;grid-template-columns:repeat(4,1fr) repeat(3,1fr);gap:8px;padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-comp .rg{padding:14px 12px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:7px;text-align:center}
.hv-comp .rg.ft{background:var(--if-accent-bg);border-color:var(--if-accent)}
.hv-comp .rg.gr{background:var(--if-signal-bg);border-color:var(--if-signal)}
.hv-comp .rg .cd{font-family:var(--f-mono);font-size:9px;color:var(--if-signal);letter-spacing:0.1em;font-weight:600;text-transform:uppercase;margin-bottom:4px}
.hv-comp .rg .nm{font-family:var(--f-serif);font-size:12px;color:var(--if-ink);font-weight:500;margin-bottom:6px;line-height:1.1}
.hv-comp .rg .sh{font-family:var(--f-serif);font-weight:300;font-size:22px;color:var(--if-ink);line-height:1;letter-spacing:-0.02em;margin-bottom:3px}
.hv-comp .rg .cg{font-family:var(--f-mono);font-size:9px;color:var(--if-accent);font-weight:600;letter-spacing:0.05em;margin-bottom:6px}
.hv-comp .rg .an{font-size:9px;color:var(--if-ink-2);line-height:1.3}


/* ────── V2: TALLER VARIANTS ────── */

/* Flow v2 · 2-row stacked (label/desc + deliverable/owner) */
.hv-flow{align-items:stretch !important;padding:18px 14px !important;flex-wrap:nowrap}
.hv-flow .sp{display:flex !important;flex-direction:column;justify-content:space-between;min-height:280px;text-align:left;padding:14px 12px}
.hv-flow .sp .top{margin-bottom:10px}
.hv-flow .sp .bottom{margin-top:auto;padding-top:10px;border-top:1px dashed var(--if-rule);font-size:9.5px;color:var(--if-ink-2);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:0.06em;line-height:1.5}
.hv-flow .sp .bottom b{font-family:var(--f-ui);font-weight:600;color:var(--if-ink);display:block;margin-bottom:2px;text-transform:none;letter-spacing:0}

/* Timeline v2 · vertical (events stacked, more breathing room) */
.hv-time-v2{padding:18px;background:linear-gradient(180deg,var(--if-surface-2),var(--if-surface));border:1px solid var(--if-rule);border-radius:10px}
.hv-time-v2 .h{font-family:var(--f-mono);font-size:9.5px;color:var(--if-signal);text-transform:uppercase;letter-spacing:0.1em;font-weight:600;margin-bottom:12px}
.hv-time-v2 .ev{position:relative;padding-left:32px;border-left:2px dashed var(--if-rule);display:flex;flex-direction:column;gap:18px;margin-top:8px}
.hv-time-v2 .ev .e{position:relative;padding:10px 14px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:7px;display:grid;grid-template-columns:80px 1fr auto;gap:10px;align-items:center}
.hv-time-v2 .ev .e::before{content:"";position:absolute;left:-39px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:var(--if-surface);border:3px solid var(--if-accent)}
.hv-time-v2 .ev .e.hi::before{border-color:var(--if-signal)}
.hv-time-v2 .ev .e .dt{font-family:var(--f-mono);font-size:10px;color:var(--if-ink-4);letter-spacing:0.06em}
.hv-time-v2 .ev .e .lb{font-family:var(--f-serif);font-size:14px;color:var(--if-ink);font-weight:500;line-height:1.2}
.hv-time-v2 .ev .e .im{font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:0.08em;padding:3px 9px;background:var(--if-surface-2);color:var(--if-signal);border-radius:99px;font-weight:600}
.hv-time-v2 .ev .e.hi .im{background:rgba(196,67,43,0.1);color:var(--if-signal)}

/* Compass v2 · enhanced cards with operator note */
.hv-comp{grid-template-columns:repeat(4,1fr) !important;gap:8px !important;padding:14px !important}
.hv-comp .rg{padding:12px 10px !important}
.hv-comp .rg .sh{font-size:18px !important;margin-bottom:2px !important}
.hv-comp .rg .cg{margin-bottom:5px !important}
.hv-comp .rg .nm{font-size:11px !important;margin-bottom:5px !important}
.hv-comp .rg .an{font-size:8.5px !important;line-height:1.25 !important}

/* Filter v2 · slightly taller with operator note */
.hv-filter{min-height:330px;padding:20px}
.hv-filter .note{margin-top:14px;padding:10px 14px;background:var(--if-accent-bg);border-left:3px solid var(--if-accent);border-radius:0 6px 6px 0;font-size:11px;color:var(--if-ink);font-family:var(--f-ui);line-height:1.4}
.hv-filter .note b{color:var(--if-accent);font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:0.08em;display:block;margin-bottom:3px}

/* Insight strip (universal · adds context below any visual) */
.hv-insight{margin-top:10px;padding:14px 18px;background:var(--bone-deep);border-left:3px solid var(--if-signal);border-radius:0 6px 6px 0;font-size:12px;color:var(--if-ink);line-height:1.5}
.hv-insight b{color:var(--if-signal);font-family:var(--f-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:0.1em;display:block;margin-bottom:4px;font-weight:600}


/* ═══════════════════════════════════════════════
   iFeed RESPONSIVE LAYER · 2026-05-22 · v1
   Mobile-first responsive across all surfaces.
   Breakpoints: tablet 1024 · small-tablet 768 · phone 480
   ═══════════════════════════════════════════════ */

/* ─── 1024px · tablet landscape ─── */
@media (max-width:1024px){
 .body{grid-template-columns:200px 1fr !important;gap:24px !important;padding:24px !important}
 .r-panel{display:none}
 .r-hero .inner{grid-template-columns:1fr 280px !important;gap:24px}
 .hero-kpis{grid-template-columns:repeat(4,1fr)}
 .hv-net{grid-template-columns:1fr 180px}
 .hv-meter{grid-template-columns:1fr 170px}
 .hv-radar{grid-template-columns:1fr 180px}
 .hv-comp{grid-template-columns:repeat(4,1fr)}
 .d-h-h1, .home-hero h1{font-size:clamp(28px,5vw,42px) !important}
}

/* ─── 980px · small tablet · stack to single col ─── */
@media (max-width:980px){
 .hdr{padding:10px 16px;grid-template-columns:1fr auto auto;gap:12px}
 .hdr nav{display:none}
 .hdr .brand .tag{display:none}
 .hdr .cta{padding:6px 12px;font-size:11px}
 .util{padding:6px 16px;font-size:10px;gap:12px;flex-wrap:wrap}
 .util a{font-size:10px}
 
 .r-hero{padding:24px 20px}
 .r-hero .inner{grid-template-columns:1fr !important;gap:20px}
 .r-hero h1{font-size:clamp(24px,5vw,32px) !important}
 .r-hero .summary{font-size:14px}
 .r-hero .rpt-meta{font-size:10px;gap:14px}
 .aside{position:relative !important;top:auto !important}
 .hero-kpis{grid-template-columns:repeat(2,1fr) !important;gap:10px}
 .hero-kpi{padding:14px 12px}
 .hero-kpi .v{font-size:18px !important}
 .hero-cta{flex-direction:row;gap:10px}
 .hero-cta a{padding:10px 14px;font-size:12px;flex:1;text-align:center}
 
 .body{grid-template-columns:1fr !important;padding:20px !important;gap:16px}
 .toc{position:relative !important;max-height:none !important;border-right:0 !important;border-bottom:1px solid var(--if-rule);padding-bottom:14px}
 .toc ol{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
 main.content section{margin-bottom:32px;padding-bottom:20px}
 main.content h2{font-size:22px !important}
 main.content h3{font-size:17px !important}
 .r-panel{display:none}
 
 /* Hero visual responsive */
 .hv-orbit{height:280px}
 .hv-orbit .ring{width:240px;height:240px}
 .hv-orbit .core{width:104px;height:104px}
 .hv-orbit .core .t{font-size:14px}
 .hv-orbit .b{width:70px;font-size:9px}
 .hv-net{grid-template-columns:1fr;gap:12px}
 .hv-net .cv svg{height:240px}
 .hv-meter{grid-template-columns:1fr;gap:14px}
 .hv-meter .gauge{flex-direction:row;justify-content:flex-start;gap:14px;padding:14px}
 .hv-meter .gauge svg{width:80px;height:80px}
 .hv-meter .gauge .sc{font-size:28px}
 .hv-radar{grid-template-columns:1fr;gap:14px}
 .hv-radar .ch svg{max-width:280px}
 .hv-heat{overflow-x:auto}
 .hv-heat table{min-width:560px;font-size:10px}
 .hv-heat th, .hv-heat td{padding:7px 8px}
 .hv-filter .g{grid-template-columns:1fr 2px 1fr 2px 1fr;gap:8px}
 .hv-filter .c.lens+.dv+.c.lens{display:none}
 .hv-cards{grid-template-columns:repeat(2,1fr) !important}
 .hv-flow{flex-direction:column;align-items:stretch}
 .hv-flow .sp{min-height:auto;width:100%}
 .hv-flow .ar{transform:rotate(90deg);align-self:center;padding:6px 0}
 .hv-comp{grid-template-columns:repeat(3,1fr) !important}
 .hv-time-v2 .ev .e{grid-template-columns:60px 1fr auto;gap:8px;padding:8px 10px}
 .hv-time-v2 .ev .e .lb{font-size:12px}
 .hv-time .events{flex-direction:column;align-items:stretch;gap:8px}
 .hv-time .ax{display:none}
 .hv-time .e{width:100% !important;text-align:left !important;display:flex !important;align-items:center;gap:12px;padding:8px;background:var(--if-surface);border:1px solid var(--if-rule);border-radius:6px;transform:none !important}
 .hv-time .e .dt{flex-shrink:0}
 
 /* Tables · scroll horizontally */
 table{display:block;overflow-x:auto;white-space:nowrap;font-size:11px}
 table thead th, table tbody td{padding:8px 10px}
 
 /* Footer · stack */
 .foot-grid{grid-template-columns:1fr 1fr !important;gap:20px}
 footer{padding:20px}
 
 /* Home page sections */
 .home-hero{padding:40px 20px}
 .home-hero h1{font-size:clamp(28px,6vw,40px) !important}
 .stats{flex-wrap:wrap;justify-content:center}
 .reports{grid-template-columns:1fr !important;gap:14px}
 .grid-2, .grid-3, .grid-4{grid-template-columns:1fr !important}
 .cards{grid-template-columns:1fr !important}
 .kpis{grid-template-columns:repeat(2,1fr) !important;padding:20px !important;gap:14px}
 .cta-band{padding:30px 20px;margin-top:32px}
 .section{padding:40px 20px}
 .section h2{font-size:24px !important}
 .hero{padding:36px 20px}
 .hero h1{font-size:clamp(26px,5vw,36px) !important}
 .ctaset{flex-direction:column;width:100%}
 .ctaset a{width:100%;text-align:center}
 
 /* Methodology / Moat / About prose pages */
 .prose{padding:24px 20px !important}
 .prose h1{font-size:32px !important}
 .prose h2{font-size:22px !important}
 .prose p{font-size:14px !important}
 
 /* Breadcrumb · scroll horizontally if long */
 .bc{overflow-x:auto;white-space:nowrap;padding:10px 20px}
}

/* ─── 640px · phone landscape ─── */
@media (max-width:640px){
 .util{font-size:9.5px}
 .util a{padding:0 4px}
 .hdr{grid-template-columns:1fr auto auto;padding:9px 12px}
 .hdr .wm{font-size:22px}
 .hdr .cta{padding:6px 10px;font-size:10.5px}
 .r-hero{padding:18px 14px}
 .body{padding:16px 14px !important}
 .toc ol{grid-template-columns:1fr}
 .hero-kpis{grid-template-columns:repeat(2,1fr) !important}
 .hero-cta{flex-direction:column;gap:8px}
 .hero-cta a{width:100%}
}

/* ─── 480px · phone portrait ─── */
@media (max-width:480px){
 .hero-kpis{grid-template-columns:1fr !important}
 .hv-cards{grid-template-columns:1fr !important}
 .hv-comp{grid-template-columns:repeat(2,1fr) !important}
 .r-hero h1{font-size:24px !important}
 .home-hero h1, .hero h1{font-size:26px !important}
 main.content h2{font-size:20px !important}
 .stats .m, .kpi{padding:14px}
 .kpis{grid-template-columns:1fr !important}
 .hv-filter .g{grid-template-columns:1fr;gap:10px}
 .hv-filter .dv{display:none}
 .foot-grid{grid-template-columns:1fr !important}
 footer{padding:18px;font-size:10px}
 .aside{padding:16px}
 .plan{padding:10px}
 .aside .btn{padding:9px;font-size:12px}
}

/* ─── print stylesheet ─── */
@media print{
 .hdr, .util, .aside, .r-panel, .hero-cta, .toc, footer{display:none !important}
 body{font-size:11pt;color:#000;background:#fff}
 .r-hero{border:0;padding:0}
 main.content section{break-inside:avoid;page-break-inside:avoid}
 a{color:#000;text-decoration:underline}
}
