/* Insights dashboards — page-specific styles. Loaded after styles.css; reuses its tokens.
   (CSP style-src 'self' forbids inline <style>/style="" — all chart geometry lives in the SVG markup.) */
.insights-main { padding-top: clamp(24px, 5vw, 56px); padding-bottom: 80px; }
.insights-main > h1 { font-size: clamp(1.8rem, 5vw, 2.8rem); margin: .2rem 0 1rem; letter-spacing: -.02em; }

.insight { margin: 2.6rem 0; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.insight:first-of-type { border-top: 0; }
.insight h2 { font-size: clamp(1.2rem, 3vw, 1.55rem); margin: .15rem 0 1rem; }

/* responsive inline-SVG charts (the SVG carries a viewBox; CSS only sizes the box) — fill the container */
.chart { width: 100%; height: auto; display: block; max-width: 100%; }

/* insights content fills the full page container (no narrow reading column — matches the rest of the site) */
.insights-main > .lede { max-width: none; }
.chart-cap { font-size: .92rem; line-height: 1.55; max-width: none; margin: 1rem 0 0; }
.chart-cap strong { color: var(--ink); }

/* Transparency-floor watchlist (companies with no published cancellation page) */
.nopolicy-list { list-style: none; margin: .4rem 0 0; padding: 0; font-family: var(--sans); }
.nopolicy-list li { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.nopolicy-list li:last-child { border-bottom: none; }

/* "State of cancellation" context block — cited external evidence framing the data below */
.context > .muted { max-width: none; line-height: 1.6; }
.ctx-list { list-style: none; counter-reset: ctx; margin: 1.4rem 0 0; padding: 0; }
.ctx-list > li { position: relative; padding: 1rem 0 1rem 2.4rem; border-top: 1px solid var(--line); }
.ctx-list > li:first-child { border-top: none; }
.ctx-list > li::before {
  counter-increment: ctx; content: counter(ctx);
  position: absolute; left: 0; top: 1rem;
  font-family: var(--sans); font-weight: 700; font-size: .85rem;
  width: 1.6rem; height: 1.6rem; line-height: 1.6rem; text-align: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--accent);
}
.ctx-claim { margin: 0 0 .35rem; font-weight: 600; color: var(--ink); line-height: 1.45; max-width: none; }
.ctx-detail { margin: 0; font-size: .92rem; line-height: 1.6; max-width: none; }
.ctx-detail strong { color: var(--ink); }
.ctx-srcs { display: inline; font-size: .82rem; opacity: .8; }

/* Enforcement-anchored leaderboard (regulator/court-documented companies) */
.enf-list { list-style: none; margin: .6rem 0 0; padding: 0; font-family: var(--sans); }
.enf-list li { padding: .7rem 0; border-bottom: 1px solid var(--line); line-height: 1.5; }
.enf-list li:last-child { border-bottom: none; }
.enf-alleg { font-size: .88rem; }
.enf-grade { display: inline-block; min-width: 1.3em; text-align: center; font-weight: 700; font-size: .8rem;
  padding: 0 .35em; margin-left: .4em; border-radius: 4px; border: 1px solid var(--line); }
.enf-A { color: var(--grade-A); } .enf-B { color: var(--grade-B); } .enf-C { color: var(--grade-C); }
.enf-D { color: var(--grade-D); } .enf-F { color: var(--grade-F); }
