/* ---------- shared page bits ---------- */
.pad { padding-block: 60px; }
.page-h { padding-block: 44px 22px; }
.page-h h1 { font-size: clamp(34px, 5vw, 56px); font-weight: 800; letter-spacing: -0.035em; }
.page-dek { font-size: 19px; color: var(--ink-2); max-width: 60ch; margin-top: 12px; }
.eyebrow { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--pink-ink); margin-bottom: 10px; }
.sec-t { font-size: 14px; font-family: var(--mono); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; display: flex; align-items: center; gap: 10px; }
.sec-t::before { content: ''; width: 22px; height: 10px; border-radius: 5px; background: linear-gradient(90deg, var(--cobalt) 50%, var(--pink) 50%); }
.sec { margin-top: 44px; }
.sec .sec-t { margin-bottom: 14px; }
.empty { color: var(--mute); padding: 30px 0; }
.dek { color: var(--ink-2); font-size: 16px; margin: 6px 0 0; }

/* ---------- front ---------- */
.front { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 36px; padding-top: 30px; }
.lead { position: relative; padding-bottom: 0; }
.lead-img .cover { aspect-ratio: 16 / 10; border-radius: var(--r-lg); }
/* The headline sits on a white label stuck over the bottom of the image, like a pharmacy label. */
.lead-label { position: relative; margin: -120px 28px 0 28px; background: var(--card); border-radius: var(--r); padding: 22px 26px 18px; box-shadow: var(--lift); border-top: 6px solid var(--cobalt); }
.lead-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.lead h1 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 800; letter-spacing: -0.035em; margin: 12px 0 10px; }
.lead .dek { font-size: 18px; }
.lead-hit { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; margin: 16px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--line-2); font-size: 15px; color: var(--ink-2); }
.lead-hit span:last-child { flex: 1 1 280px; }
.lead footer { display: flex; align-items: center; gap: 16px; margin-top: 14px; font-size: 13px; color: var(--mute); }
.lead footer .strip { margin-left: auto; }

.top { border-left: 1px solid var(--line-2); padding-left: 28px; display: flex; flex-direction: column; }
.top ol { list-style: none; padding: 0; margin: 14px 0 18px; }
.topi { display: grid; grid-template-columns: 34px 1fr 96px; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); align-items: start; }
.topi:first-child { padding-top: 6px; }
.topi-n { font: 600 14px var(--mono); color: var(--cobalt); padding-top: 3px; }
.topi h3 { font-size: 17px; font-weight: 700; line-height: 1.25; }
.topi a { text-decoration: none; }
.topi a:hover h3 { text-decoration: underline; text-decoration-color: var(--pink); text-decoration-thickness: 3px; }
.topi p { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--mute); }
.topi p .kick em { display: none; }
.topi-img .cover { aspect-ratio: 1; border-radius: var(--r-sm); }
.top .more { margin-top: auto; }

/* ---------- decks ---------- */
.deck { margin-top: 64px; }
.deck-h { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 18px; flex-wrap: wrap; }
.deck-h p { margin: 0; color: var(--ink-2); max-width: 54ch; font-size: 15px; }
.ltabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; border-bottom: 2px solid var(--ink); }
.ltabs::-webkit-scrollbar { display: none; }
.ltabs [role='tab'] { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border: 0; background: none; font-weight: 700; font-size: 15px; cursor: pointer;
  border-radius: var(--r) var(--r) 0 0; white-space: nowrap; color: var(--ink-2); }
.ltabs [role='tab']:hover { color: var(--ink); background: color-mix(in srgb, var(--card) 70%, transparent); }
.ltabs [role='tab'][aria-selected='true'] { background: var(--ink); color: var(--paper); }
.ltabs [role='tab'] em { font: 500 12px var(--mono); font-style: normal; opacity: .7; }
.ltabs [role='tab'][aria-selected='true'] .caps i { background: color-mix(in srgb, var(--paper) 30%, transparent); }
.ltabs [role='tab'][aria-selected='true'] .caps.l1 i:nth-child(-n+1), .ltabs [role='tab'][aria-selected='true'] .caps.l2 i:nth-child(-n+2),
.ltabs [role='tab'][aria-selected='true'] .caps.l3 i { background: var(--pink); }

.lpanel { display: grid; grid-template-columns: 260px 1fr; gap: 32px; background: var(--card); border-radius: 0 0 var(--r-lg) var(--r-lg); padding: 26px; }
.lpanel-who { display: flex; flex-direction: column; gap: 14px; }
.lpanel-who p { margin: 0; color: var(--ink-2); font-size: 16px; }
.lpanel-ic { width: 64px; height: 64px; border-radius: 50%; background: var(--cobalt-tint); color: var(--cobalt-ink); display: grid; place-items: center; }
.lpanel-list { display: grid; gap: 4px; }
.lpanel-list.wide { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; }
.litem { display: grid; grid-template-columns: 132px 1fr; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.litem:last-child { border-bottom: 0; }
.litem-img .cover { border-radius: var(--r-sm); }
.litem-lv { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; }
.litem-lv time { margin-left: auto; color: var(--mute); }
.litem h3 { font-size: 18px; font-weight: 700; line-height: 1.25; }
.litem-note { margin: 6px 0 0; font-size: 15px; color: var(--ink-2); }

.bd-grid { display: grid; grid-template-columns: 230px 1fr; gap: 0; background: var(--card); border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.btabs { display: flex; flex-direction: column; background: var(--card-2); border-right: 1px solid var(--line); padding: 10px; gap: 4px; }
.btabs [role='tab'] { display: flex; align-items: center; gap: 10px; padding: 12px 12px; border: 0; background: none; border-radius: var(--r-sm); font-weight: 700; cursor: pointer; text-align: left; color: var(--ink-2); }
.btabs [role='tab'] em { order: 3; margin-left: auto; font: 500 12px var(--mono); font-style: normal; color: var(--mute); }
.btabs [role='tab']:hover { background: var(--card); color: var(--ink); }
.btabs [role='tab'][aria-selected='true'] { background: var(--cobalt); color: var(--on-cobalt); }
.btabs [role='tab'][aria-selected='true'] em { color: inherit; opacity: .8; }
.bpanel { padding: 22px 26px 24px; }
.bpanel-blurb { color: var(--ink-2); margin-bottom: 18px; }
.bpanel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 26px; margin-bottom: 18px; }
.mini { display: grid; grid-template-columns: 120px 1fr; gap: 14px; align-items: start; }
.mini-img .cover { border-radius: var(--r-sm); }
.mini-meta { font: 500 12px var(--mono); color: var(--mute); text-transform: uppercase; letter-spacing: .04em; }
.mini h3 { font-size: 17px; font-weight: 700; line-height: 1.25; margin-top: 4px; }

.homefoot { display: grid; grid-template-columns: 1fr 1.2fr; gap: 24px; margin-top: 64px; }
.ledger-card { display: flex; align-items: center; gap: 18px; padding: 26px; border-radius: var(--r-lg); background: var(--cobalt); color: var(--on-cobalt); text-decoration: none; }
.ledger-card:hover { color: var(--on-cobalt); background: var(--cobalt-ink); }
.ledger-card > span:nth-child(2) { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.ledger-card b { font-size: 24px; letter-spacing: -.02em; }
.ledger-card span span { opacity: .88; font-size: 15px; }
.ledger-ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--on-cobalt) 16%, transparent); flex: none; }
.subcard { padding: 26px; border-radius: var(--r-lg); background: var(--pink-tint); }
.subcard h2 { font-size: 26px; font-weight: 800; }
.subcard p { color: var(--ink-2); margin: 8px 0 14px; }
.sub { display: flex; gap: 8px; flex-wrap: wrap; }
.sub input { flex: 1 1 220px; font: inherit; font-size: 15px; padding: 11px 16px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--card); color: var(--ink); }
.sub-msg { flex-basis: 100%; margin: 4px 0 0; font-size: 14px; color: var(--ink-2); min-height: 1em; }

/* ---------- cards ---------- */
.tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.tile { display: flex; flex-direction: column; gap: 8px; }
.tile-img { position: relative; display: block; margin-bottom: 6px; }
.tile-img .tag { position: absolute; left: 12px; bottom: 12px; }
.tile h3 { font-size: 21px; font-weight: 750; }
.tile footer { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 10px; color: var(--mute); border-top: 1px solid var(--line); }

.rows { display: grid; }
.row { display: grid; grid-template-columns: 200px 1fr 120px; gap: 22px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.row:first-child { padding-top: 6px; }
.row h3 { font-size: 21px; font-weight: 750; margin-top: 6px; }
.row .dek { font-size: 15px; }
.row-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; color: var(--mute); }
.row-img .cover { border-radius: var(--r-sm); }

/* ---------- latest ---------- */
.filters { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; align-items: center; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.filters-r { display: flex; gap: 8px; }
.months { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 22px; padding: 16px 18px; background: var(--card); border-radius: var(--r); border: 1px solid var(--line); }
.months-y { display: flex; align-items: center; gap: 10px; }
.months-y > span { font: 600 13px var(--mono); color: var(--mute); }
.months-y > div { display: flex; gap: 4px; }
.mcell { width: 38px; height: 46px; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; text-decoration: none;
  font: 500 10px var(--mono); text-transform: uppercase; color: var(--mute); background: var(--card-2); border: 1px dashed var(--line-2); }
.mcell.on { background: var(--cobalt-tint); color: var(--cobalt-ink); border: 1px solid transparent; }
.mcell.on i { font-style: normal; font-weight: 600; font-size: 13px; }
.mcell.on:hover { border-color: var(--cobalt); }
.mcell.cur { background: var(--cobalt); color: var(--on-cobalt); }
.month { margin-top: 28px; }
.month-h { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.month-h h2 { font-size: 32px; font-weight: 800; letter-spacing: -.03em; }
.month-n { margin-left: auto; font: 500 13px var(--mono); color: var(--mute); }

/* ---------- beat / lens ---------- */
.beat-h, .lens-h { display: grid; grid-template-columns: auto 1fr minmax(260px, 340px); gap: 28px; align-items: start; padding-block: 44px 30px; }
.lens-h { grid-template-columns: auto 1fr; }
.beat-h h1, .lens-h h1 { font-size: clamp(36px, 5vw, 60px); font-weight: 800; letter-spacing: -.04em; }
.beat-ic, .lens-ic { width: 92px; height: 92px; border-radius: 28px; display: grid; place-items: center; background: var(--cobalt); color: var(--on-cobalt); transform: rotate(-6deg); }
.lens-ic { background: var(--pink); color: #2a0f1d; border-radius: 50%; transform: none; }
.beat-hits { background: var(--card); border-radius: var(--r); padding: 18px 20px; border: 1px solid var(--line); }
.beat-hits h2 { font-size: 17px; }
.beat-hits p { font-size: 13px; margin: 4px 0 12px; }
.beat-hits ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.beat-hits li { display: grid; grid-template-columns: 96px 1fr 30px; gap: 10px; align-items: center; font-size: 14px; }
.beat-hits li a { text-decoration: none; font-weight: 600; }
.beat-hits li b { font: 600 13px var(--mono); text-align: right; }
.bar { height: 8px; border-radius: 4px; background: var(--lv0); overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--cobalt); border-radius: 4px; }
:root[data-lens='patients'] .beat-hits li[data-l='patients'], :root[data-lens='prescribers'] .beat-hits li[data-l='prescribers'], :root[data-lens='pharmacies'] .beat-hits li[data-l='pharmacies'],
:root[data-lens='payers'] .beat-hits li[data-l='payers'], :root[data-lens='sellers'] .beat-hits li[data-l='sellers'] { color: var(--pink-ink); }
.beat-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 36px; align-items: start; }
.beat-first .tile h3 { font-size: 28px; }
.beat-body .row { grid-template-columns: 150px 1fr 100px; }
.other-beats { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 44px; }
.legend-note { font-size: 13px; margin-top: 16px; }
.lvpanel { background: var(--card); border-radius: 0 0 var(--r-lg) var(--r-lg); padding: 22px 26px; }
.lvpanel-hint { color: var(--ink-2); font-size: 15px; margin-bottom: 8px; }

/* ---------- story ---------- */
.story { padding-top: 26px; }
.crumbs { display: flex; gap: 8px; font: 500 13px var(--mono); color: var(--mute); }
.crumbs a { text-decoration: none; }
.story-h { max-width: 900px; padding: 22px 0 26px; }
.story-h h1 { font-size: clamp(32px, 4.6vw, 56px); font-weight: 800; letter-spacing: -.035em; margin: 14px 0; }
.story-dek { font-size: 21px; color: var(--ink-2); line-height: 1.45; }
.byline { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; font: 500 13px var(--mono); color: var(--mute); margin: 0; }
.byline span { display: inline-flex; align-items: center; gap: 6px; }
.story-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.story-cover { margin: 0 0 30px; max-width: 760px; }
.story-cover .cover { border-radius: var(--r-lg); }
.feels { background: var(--card); border-radius: var(--r-lg); padding: 22px 24px 10px; margin-bottom: 34px; max-width: 760px; border: 1px solid var(--line); }
.feels h2 { font-size: 22px; margin-bottom: 8px; }
.feels ul { list-style: none; margin: 0; padding: 0; }
.feels li { display: grid; grid-template-columns: 170px 190px 1fr; gap: 14px; align-items: baseline; padding: 12px 0; border-top: 1px solid var(--line); }
.feels li p { margin: 0; font-size: 15px; color: var(--ink-2); }
.feels-who { display: inline-flex; gap: 8px; align-items: center; font-weight: 700; }
.feels-who a { text-decoration: none; }
.feels-who em { font: 600 10px var(--mono); text-transform: uppercase; background: var(--pink); color: #2a0f1d; padding: 2px 6px; border-radius: 4px; font-style: normal; }
.feels li.me { background: var(--pink-tint); margin-inline: -12px; padding-inline: 12px; border-radius: var(--r-sm); border-top-color: transparent; }
.fine { max-width: 68ch; margin-top: 30px; padding: 18px 22px; border-radius: var(--r); border: 2px dashed var(--line-2); }
.fine h2 { font: 600 13px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--pink-ink); margin-bottom: 8px; }
.fine p { margin: 0; color: var(--ink-2); }
.source { max-width: 68ch; font-size: 14px; color: var(--ink-2); margin-top: 18px; }
.source b { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--mute); margin-right: 8px; }
.story-side { position: sticky; top: 72px; display: grid; gap: 18px; }
.side-tag .tag { width: 100%; }
.when { background: var(--card); border-radius: var(--r); padding: 18px 20px; border-left: 6px solid var(--cobalt); display: grid; gap: 4px; }
.when.soon { border-left-color: var(--pink); }
.when-l { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--mute); }
.when b { font-size: 26px; letter-spacing: -.02em; }
.when span:not(.when-l) { font-size: 14px; color: var(--ink-2); }
.when a, .side-box a { font-size: 14px; font-weight: 700; color: var(--cobalt-ink); text-decoration: none; display: inline-flex; gap: 4px; align-items: center; margin-top: 6px; }
.side-box { padding: 16px 20px; border-radius: var(--r); background: var(--cobalt-tint); }
.side-box h3 { font-size: 16px; }
.side-box p { font-size: 14px; margin: 6px 0 0; color: var(--ink-2); }
.related { margin-top: 64px; }
.related .sec-t { margin-bottom: 18px; }

/* ---------- ledger ---------- */
.vtabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.vtabs [role='tab'] { display: flex; gap: 14px; align-items: center; text-align: left; padding: 16px 18px; border-radius: var(--r); border: 1px solid var(--line-2); background: var(--card); cursor: pointer; }
.vtabs [role='tab'] em { font: 600 22px var(--mono); font-style: normal; color: var(--cobalt); }
.vtabs [role='tab'] span { display: flex; flex-direction: column; }
.vtabs [role='tab'] b { font-size: 17px; }
.vtabs [role='tab'] small { font-size: 13px; color: var(--mute); }
.vtabs [role='tab'][aria-selected='true'] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.vtabs [role='tab'][aria-selected='true'] em { color: var(--pink); }
.vtabs [role='tab'][aria-selected='true'] small { color: inherit; opacity: .7; }
.vpanel { background: var(--card); border-radius: var(--r-lg); padding: 24px; border: 1px solid var(--line); }
.ltabs.sub { border-bottom-width: 1px; margin-bottom: 20px; }
.ltabs.sub [role='tab'] em { font: 600 11px var(--mono); font-style: normal; background: var(--cobalt-tint); color: var(--cobalt-ink); padding: 2px 6px; border-radius: 4px; opacity: 1; }
.line-h { display: flex; justify-content: space-between; gap: 20px; align-items: start; flex-wrap: wrap; }
.line-h h3 { font-size: 24px; }
.line-h p { margin: 6px 0 0; font-size: 14px; max-width: 54ch; }
.line-now { text-align: right; display: grid; }
.line-now span { font: 600 12px var(--mono); text-transform: uppercase; color: var(--mute); }
.line-now b { font-size: 38px; letter-spacing: -.03em; line-height: 1.1; }
.line-now em { font: 500 13px var(--mono); font-style: normal; color: var(--mute); }
.line-now em.up { color: var(--up); }
.line-now em.down { color: var(--down); }
.chart-wrap { position: relative; margin: 18px 0 10px; }
.chart { width: 100%; height: auto; overflow: visible; }
.chart .grid { stroke: var(--line); stroke-width: 1; }
.chart .yr { stroke: var(--line-2); stroke-dasharray: 2 4; }
.chart .now { stroke: var(--pink); stroke-width: 2; stroke-dasharray: 3 4; }
.chart .ax { font: 500 11px var(--mono); fill: var(--mute); }
.chart .line { fill: none; stroke: var(--cobalt); stroke-width: 2.5; stroke-linejoin: round; }
.chart .area { fill: color-mix(in srgb, var(--cobalt) 10%, transparent); }
.chart .dot { fill: var(--cobalt); stroke: var(--card); stroke-width: 2; }
.chart .hit { fill: transparent; cursor: pointer; }
.chart .pt:hover .dot, .chart .pt:focus .dot { fill: var(--pink); r: 7; }
.chart .pt:focus { outline: none; }
.chart .val { font: 600 13px var(--mono); fill: var(--ink); }
.tip { position: absolute; width: 200px; background: var(--ink); color: var(--paper); border-radius: var(--r-sm); padding: 10px 12px; font-size: 13px; display: grid; gap: 2px; pointer-events: none; box-shadow: var(--lift); z-index: 3; }
.tip b { font-size: 16px; }
.ptable { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 8px; }
.ptable th, .ptable td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--line); }
.ptable th { font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--mute); }
.next-up { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 12px 16px; border-radius: var(--r); background: var(--pink-tint); font-size: 15px; }
.dyear { display: grid; grid-template-columns: 90px 1fr; gap: 20px; margin-top: 26px; }
.dyear h3 { font: 600 26px var(--mono); color: var(--cobalt); }
.dlist { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line-2); }
.dlist li { display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center; padding: 12px 0 12px 18px; position: relative; }
.dlist li::before { content: ''; position: absolute; left: -7px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--cobalt); border: 2px solid var(--card); }
.dlist li.soon::before { background: var(--pink); }
.dday { display: grid; text-align: center; background: var(--paper); border-radius: var(--r-sm); padding: 6px 0; font: 500 11px var(--mono); text-transform: uppercase; color: var(--mute); }
.dday b { font: 700 22px var(--font); color: var(--ink); line-height: 1.1; }
.dlabel { margin: 0 0 2px; display: flex; gap: 6px; align-items: center; font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .03em; color: var(--cobalt-ink); }
.dlabel em { font-style: normal; color: var(--mute); }
.dlist a { font-weight: 650; text-decoration: none; }
.dlist a:hover { text-decoration: underline; }
.dstate { font: 600 11px var(--mono); text-transform: uppercase; padding: 4px 8px; border-radius: 4px; background: var(--cobalt-tint); color: var(--cobalt-ink); }
.soon .dstate { background: var(--pink); color: #2a0f1d; }
.heat-legend { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; font-size: 13px; color: var(--ink-2); }
.heat-legend span { display: inline-flex; gap: 6px; align-items: center; }
.heat-legend .hc { width: 18px; height: 18px; }
.heat { width: 100%; border-collapse: separate; border-spacing: 2px; font-size: 14px; min-width: 720px; }
.heat thead th { font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .04em; color: var(--mute); padding: 6px 4px; text-align: center; }
.heat thead th:first-child { text-align: left; }
.heat thead a { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; }
.heat tbody th { text-align: left; font-weight: 600; padding: 6px 12px 6px 0; max-width: 480px; }
.heat tbody th a { text-decoration: none; display: block; line-height: 1.3; }
.heat tbody th span { font: 500 11px var(--mono); color: var(--mute); }
.heat td { text-align: center; width: 88px; }
.hc { display: grid; place-items: center; height: 38px; border-radius: 6px; font: 600 13px var(--mono); }
.hc.l0 { background: var(--lv0); color: var(--mute); }
.hc.l1 { background: var(--lv1); color: var(--ink); }
.hc.l2 { background: var(--lv2); color: #fff; }
.hc.l3 { background: var(--lv3); color: #fff; }
:root[data-theme='dark'] .hc.l3, :root[data-theme='dark'] .hc.l2 { color: #10102a; }
:root[data-theme='dark'] .hc.l1 { color: var(--ink); }
.heat tfoot th { text-align: left; font: 600 12px var(--mono); text-transform: uppercase; color: var(--mute); padding-top: 10px; }
.heat tfoot td { font: 600 14px var(--mono); padding-top: 10px; }
:root[data-lens='patients'] .heat [data-l='patients'], :root[data-lens='prescribers'] .heat [data-l='prescribers'], :root[data-lens='pharmacies'] .heat [data-l='pharmacies'],
:root[data-lens='payers'] .heat [data-l='payers'], :root[data-lens='sellers'] .heat [data-l='sellers'] { box-shadow: inset 0 0 0 2px var(--pink); border-radius: 6px; }

/* ---------- method / search / misc ---------- */
.method { display: grid; gap: 40px; max-width: 900px; }
.method.narrow { max-width: 720px; display: block; }
.method h2 { font-size: 28px; font-weight: 800; margin-bottom: 10px; }
.method > section > p { color: var(--ink-2); max-width: 64ch; }
.m-lenses, .m-levels, .m-beats { list-style: none; padding: 0; margin: 16px 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.m-lenses li, .m-levels li, .m-beats li { display: flex; gap: 14px; background: var(--card); padding: 16px; border-radius: var(--r); border: 1px solid var(--line); }
.m-levels li .caps { margin-top: 6px; }
.m-lenses h3, .m-levels h3, .m-beats h3 { font-size: 17px; }
.m-lenses p, .m-levels p, .m-beats p { margin: 4px 0 0; font-size: 14px; color: var(--ink-2); }
.m-ic { width: 44px; height: 44px; border-radius: 50%; background: var(--cobalt-tint); color: var(--cobalt-ink); display: grid; place-items: center; flex: none; }
.m-list { padding-left: 1.2em; }
.m-list li { margin: 8px 0; }
.m-list li::marker { color: var(--pink-ink); }
.empty-box { padding: 20px 0; }
.empty-box > p { color: var(--ink-2); }
.cmps { list-style: none; padding: 0; margin: 12px 0 0; }
.cmp a { display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-weight: 600; }
.cmp time { color: var(--mute); }
.nf { text-align: center; padding-block: 90px; }
.nf .caps { transform: scale(2.4); margin-bottom: 30px; }

/* ---------- staff ---------- */
.auth { display: grid; place-items: center; padding: 70px var(--gut); }
.auth-card { width: min(400px, 100%); background: var(--card); padding: 30px; border-radius: var(--r-lg); box-shadow: var(--lift); }
.auth-card h1 { font-size: 26px; margin-bottom: 8px; }
.auth-card .btn { margin-top: 20px; }
.editor { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; align-items: start; }
.ed-side { background: var(--card); padding: 6px 20px 20px; border-radius: var(--r); position: sticky; top: 20px; }
.ed-lenses { border: 1px solid var(--line-2); border-radius: var(--r); padding: 4px 14px 14px; margin: 16px 0 0; }
.ed-lens { display: grid; grid-template-columns: 100px 150px 1fr; gap: 8px; align-items: center; margin-top: 8px; font-weight: 600; font-size: 14px; }
.preview { background: var(--card); padding: 20px; border-radius: var(--r); max-width: none; }
.add-price { display: grid; grid-template-columns: 1.4fr 1fr .7fr 1.4fr 1.4fr auto; gap: 8px; margin-top: 14px; }
.subs { list-style: none; padding: 0; margin: 0; }
.subs li { display: flex; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.subs li .mute { margin-left: auto; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .front { grid-template-columns: 1fr; }
  .top { border-left: 0; padding-left: 0; }
  .topi { grid-template-columns: 34px 1fr 120px; }
  .beat-h { grid-template-columns: auto 1fr; }
  .beat-hits { grid-column: 1 / -1; }
  .story-grid { grid-template-columns: 1fr; }
  .story-side { position: static; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .beat-body { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .lpanel { grid-template-columns: 1fr; gap: 16px; padding: 20px; }
  .lpanel-who { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .lpanel-who p { flex: 1 1 200px; }
  .lpanel-list.wide { grid-template-columns: 1fr; }
  .bd-grid { grid-template-columns: 1fr; }
  .btabs { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); scrollbar-width: none; }
  .btabs [role='tab'] { white-space: nowrap; }
  .btabs [role='tab'] em { margin-left: 4px; }
  .bpanel-grid { grid-template-columns: 1fr; }
  .homefoot { grid-template-columns: 1fr; }
  .tiles { grid-template-columns: 1fr 1fr; }
  .row { grid-template-columns: 140px 1fr; }
  .row-side { grid-column: 2; flex-direction: row; align-items: center; justify-content: flex-start; }
  .vtabs { grid-template-columns: 1fr; }
  .feels li { grid-template-columns: 1fr auto; }
  .feels li p { grid-column: 1 / -1; }
  .m-lenses, .m-levels, .m-beats { grid-template-columns: 1fr; }
  .editor { grid-template-columns: 1fr; }
  .ed-side { position: static; }
  .add-price { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .lead-label { margin: -40px 10px 0; padding: 18px 16px 14px; }
  .lead h1 { font-size: 28px; }
  .lead .dek { font-size: 16px; }
  .lead footer { flex-wrap: wrap; }
  .topi { grid-template-columns: 28px 1fr 76px; }
  .litem { grid-template-columns: 96px 1fr; gap: 12px; }
  .litem h3 { font-size: 16px; }
  .mini { grid-template-columns: 96px 1fr; }
  .tiles { grid-template-columns: 1fr; }
  .row { grid-template-columns: 96px 1fr; gap: 14px; }
  .row h3 { font-size: 17px; }
  .row .dek { display: none; }
  .beat-body .row { grid-template-columns: 96px 1fr; }
  .beat-ic, .lens-ic { width: 64px; height: 64px; border-radius: 20px; }
  .beat-ic .ic, .lens-ic .ic { width: 30px; height: 30px; }
  .beat-h, .lens-h { gap: 16px; padding-top: 30px; }
  .filters-r { width: 100%; }
  .filters-r .field { flex: 1; }
  .months { padding: 12px; gap: 14px; }
  .mcell { width: 32px; }
  .month-h h2 { font-size: 24px; }
  .vpanel { padding: 16px; }
  .dyear { grid-template-columns: 1fr; gap: 8px; }
  .dlist li { grid-template-columns: 54px 1fr; }
  .dstate { grid-column: 2; justify-self: start; }
  .line-now { text-align: left; }
  .story-dek { font-size: 18px; }
  .ed-lens { grid-template-columns: 1fr 1fr; }
  .ed-lens input { grid-column: 1 / -1; }
}
.deck.ledger { margin-top: 8px; }
.months-y > div { flex-wrap: wrap; }

/* Long reads (lib/reading.js): cover kept to a reading width, lede, "In this story" list, numbered section heads. */
.story-cover { max-width: 640px; }
.prose { counter-reset: sec; }
.prose .lede { font-size: 20px; line-height: 1.6; font-weight: 500; color: var(--ink); }
.prose h2 { display: flex; align-items: baseline; gap: 12px; scroll-margin-top: 150px; }
.prose h2:not(#conclusion) { counter-increment: sec; }
.prose h2:not(#conclusion)::before { content: counter(sec); flex: none; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 99px; background: var(--cobalt); color: var(--on-cobalt); font: 700 14px/1 var(--mono); transform: translateY(-2px); }
.in-story { margin: 1.4em 0 1.9em; padding: 16px 20px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 4px 4px 0 var(--pink-tint); }
.in-story-h { margin: 0 0 10px; font: 600 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); }
.in-story ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; display: grid; gap: 8px; }
.in-story li { counter-increment: toc; display: flex; align-items: center; gap: 12px; margin: 0; font-size: 16px; line-height: 1.35; font-weight: 600; }
.in-story li::before { content: counter(toc); flex: none; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 99px; background: var(--cobalt-tint); color: var(--cobalt-ink); font: 700 11px/1 var(--mono); }
.in-story li.end::before { content: '·'; }
.in-story a { color: var(--ink); text-decoration: none; }
.in-story a:hover, .in-story a:focus-visible { color: var(--cobalt); text-decoration: underline; }
