/* Earnings Prints — component styles (ux-engineer). Port of design/mockups/proto.css.
   Every colour, size and space comes from tokens.css (loaded first). No hard-coded colours below:
   the design delta re-skins the site by changing tokens only. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0; background: var(--c-page); color: var(--c-text);
  font-family: var(--f-serif); font-size: var(--fs-body); line-height: var(--lh-body);
  font-optical-sizing: auto; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--c-link); text-decoration-line: underline; text-decoration-color: var(--c-link-line);
    text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 3px; text-decoration-color: var(--c-text); }
:focus-visible { outline: 3px solid var(--c-focus-inner); outline-offset: 2px; box-shadow: 0 0 0 5px var(--c-focus); border-radius: var(--r-1); }
.num, table, .ledger, .chart, .stamp, .meta, .dek { font-variant-numeric: tabular-nums lining-nums; font-feature-settings: var(--f-num-features); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--qp-amber); color: var(--qp-navy); padding: 14px 16px; font: 700 var(--fs-ui)/1 var(--f-sans); z-index: 10; }
.skip:focus { left: 8px; top: 8px; }
.qp-nolink { color: inherit; text-decoration: none; cursor: auto; }
/* B-M4: a link the engine unwrapped (target not in this build) must not look like a link. Menu items and link cards
   are not rendered when h.live() says the target is missing; this hides any that slip through the link guard. */
.nav .qp-nolink, .next li:has(> .qp-nolink), .latest li:has(> .qp-nolink), .plain-list li:has(> .qp-nolink) { display: none; }

/* ---------- Masthead ---------- */
.masthead { background: var(--qp-navy); color: var(--qp-cream); border-bottom: 1px solid var(--c-plate-grid); }
.masthead__in { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--gutter); height: var(--masthead-h);
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); }
.brand { display: flex; align-items: center; gap: 10px; color: var(--qp-cream); text-decoration: none;
  font: 800 14px/1 var(--f-sans); letter-spacing: var(--track-brand); white-space: nowrap; min-height: 44px; }
.brand svg { width: 22px; height: 22px; flex: none; }
.brand .m-a { fill: var(--qp-cream); } .brand .m-b { fill: var(--qp-amber); }
.nav { display: flex; gap: var(--s-5); font: 600 var(--fs-ui)/1 var(--f-sans); }
.nav a { color: var(--qp-cream); text-decoration: none; padding: 15px 0 13px; border-bottom: 2px solid transparent; display: inline-block; }
.nav a:hover, .nav a[aria-current="page"], .nav a.is-section { border-bottom-color: var(--qp-amber); }
.nav .nav__wide { display: none; }
@media (min-width: 720px) { .nav .nav__wide { display: inline; } }
@media (max-width: 400px) { .brand { letter-spacing: .1em; font-size: 13px; gap: 8px; } .nav { gap: var(--s-4); } }
@media (max-width: 350px) { .brand span { display: none; } }

/* ---------- Preview banner (dist-preview only, never deployed) ---------- */
.preview { background: var(--c-sunk); border-bottom: 2px dashed var(--c-accent-ink); font: 500 var(--fs-small)/1.45 var(--f-sans); color: var(--c-text); }
.preview__in { max-width: var(--page-max); margin: 0 auto; padding: var(--s-2) var(--gutter); }
.preview b { color: var(--c-neg-ink); letter-spacing: .04em; }
.preview details { display: inline; } .preview summary { display: inline; cursor: pointer; text-decoration: underline; text-decoration-color: var(--c-link-line); }
.preview ul { margin: var(--s-2) 0 0; padding-left: 1.2em; }

/* ---------- Page frame ---------- */
.page { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--gutter); }
.main { min-width: 0; }
.col { max-width: var(--measure); margin-left: auto; margin-right: auto; }
.wide { max-width: var(--wide); margin-left: auto; margin-right: auto; }
@media (min-width: 1180px) {
  .page--rail { display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); gap: var(--s-7); }
  .page--rail .main .col, .page--rail .main .wide, .page--rail .main .ad { margin-left: 0; }
}
.rail { display: none; }
@media (min-width: 1180px) {
  .rail { display: block; padding-top: var(--s-7); font: 400 var(--fs-small)/var(--lh-ui) var(--f-sans); color: var(--c-muted); }
  .rail__sticky { position: sticky; top: var(--s-5); }
  .rail h2 { font: 700 var(--fs-label)/1 var(--f-sans); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--c-text); margin: 0 0 var(--s-3); }
  .rail ol { list-style: none; margin: 0 0 var(--s-6); padding: 0; border-left: 1px solid var(--c-rule); }
  .rail li a { display: block; padding: 5px 0 5px var(--s-3); text-decoration: none; color: var(--c-text-2); }
  .rail li a:hover { color: var(--c-text); box-shadow: inset 2px 0 0 var(--c-link-line); }
  .rail dl { margin: 0; display: grid; gap: var(--s-1); }
  .rail dt { font-weight: 700; color: var(--c-text); }
  .rail dd { margin: 0 0 var(--s-2); }
}

/* ---------- Breadcrumbs ---------- */
.crumbs { font: 500 var(--fs-small)/1.3 var(--f-sans); color: var(--c-muted); padding: var(--s-5) 0 var(--s-3); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--c-muted); }
.crumbs a { color: var(--c-text-2); text-decoration: none; padding: 6px 0; }
.crumbs a:hover { text-decoration: underline; text-decoration-color: var(--c-link-line); }
.crumbs [aria-current] { color: var(--c-text); font-weight: 600; }

/* ---------- Headline ---------- */
.h1 { font: 800 var(--fs-h1)/1.1 var(--f-head); letter-spacing: -0.025em; margin: 0 0 var(--s-3); text-wrap: balance; }
.dek { font: 500 var(--fs-small)/1.45 var(--f-sans); color: var(--c-muted); margin: 0 0 var(--s-5); }
.dek b { color: var(--c-text-2); font-weight: 600; }
.dek .sep { margin: 0 6px; color: var(--c-rule); }
.meta { font: 500 var(--fs-small)/1.5 var(--f-sans); color: var(--c-muted); margin: var(--s-2) 0 0; }
.meta a { color: var(--c-text-2); }

/* ---------- Plate (hook block and charts share the card look) ---------- */
.plate { background: var(--c-plate); color: var(--c-plate-text); border: 1px solid var(--c-plate-border);
  border-radius: var(--r-1); padding: clamp(20px, 4vw, 40px); position: relative; }
@media (max-width: 599px) { .plate--bleed { margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); border-radius: 0; border-left: 0; border-right: 0; } }
.plate__top { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); margin: 0 0 var(--s-4);
  font: 600 var(--fs-small)/1.3 var(--f-sans); color: var(--c-plate-muted); }
.pill { display: inline-flex; gap: 8px; align-items: baseline; background: var(--c-plate-raised); border-radius: var(--r-pill);
  padding: 6px 12px; font: 700 var(--fs-small)/1 var(--f-sans); color: var(--c-plate-text); white-space: nowrap; }
.pill b { color: var(--c-plate-hi); font-weight: 800; letter-spacing: .02em; }

/* Hook: the canonical hook string verbatim; the first number is set at display size on its own line */
.hook { font: 750 var(--fs-hook)/1.15 var(--f-sans); letter-spacing: -0.015em; margin: 0; color: var(--c-plate-text); max-width: 20ch; text-wrap: balance; }
.hook__num { display: block; font-size: var(--fs-display); font-weight: 800; line-height: .95; letter-spacing: -0.035em;
  color: var(--c-plate-hi); margin: 2px 0 6px -0.04em; font-variant-numeric: tabular-nums lining-nums; }
.hook--long .hook__num { font-size: calc(var(--fs-display) * .78); }
.hook__sub { font: 500 var(--fs-ui)/1.4 var(--f-sans); color: var(--c-plate-muted); margin: var(--s-3) 0 0; }

/* Ledger: the 3–4 key figures, ruled like a printed statement, not rounded tiles */
.ledger { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); margin: var(--s-6) 0 0; border-top: 1px solid var(--c-plate-grid); }
.ledger > div { padding: var(--s-4) var(--s-3) 0 0; min-width: 0; }
.ledger > div + div { padding-left: var(--s-3); border-left: 1px solid var(--c-plate-grid); }
.ledger dt { font: 600 var(--fs-label)/1.2 var(--f-sans); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--c-plate-muted); }
.ledger dd { margin: 6px 0 0; }
.ledger .fig { display: block; font: 700 var(--fs-figure)/1.05 var(--f-sans); letter-spacing: -0.02em; color: var(--c-plate-text); }
.ledger .chg { display: block; margin-top: 6px; font: 600 var(--fs-small)/1.25 var(--f-sans); color: var(--c-plate-muted); }
@media (max-width: 420px) { .ledger { --fs-figure: 1.375rem; } .ledger > div + div { padding-left: 10px; } .ledger > div { padding-right: 6px; } }
@media (max-width: 599px) { .ledger--4 { grid-template-columns: 1fr 1fr; } .ledger--4 > div:nth-child(3) { padding-left: 0; border-left: 0; } .ledger--4 > div:nth-child(n+3) { margin-top: var(--s-3); } }
.up, .down { white-space: nowrap; }
.up::before, .down::before { content: ""; display: inline-block; width: 0; height: 0; margin-right: .3em; vertical-align: .08em;
  border-left: .34em solid transparent; border-right: .34em solid transparent; }
.up::before { border-bottom: .55em solid currentColor; }
.down::before { border-top: .55em solid currentColor; }
.down { color: var(--c-neg-ink); }
.plate .up { color: var(--c-plate-text); } .plate .down { color: var(--c-plate-neg); }

/* Status row: data status + as-of. Never hidden, never only colour. */
.status { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: var(--s-5) 0 0; padding-top: var(--s-3); border-top: 1px solid var(--c-plate-grid);
  font: 500 var(--fs-small)/1.35 var(--f-sans); color: var(--c-plate-muted); }
.status b { color: var(--c-plate-text); font-weight: 650; }
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; background: var(--c-plate-text); }
.dot--prelim { background: transparent; box-shadow: inset 0 0 0 1.5px var(--c-plate-hi); }

/* Near-figure disclaimer (F8) */
.qp-disclaimer, .disclaimer { font: 400 var(--fs-small)/1.5 var(--f-sans); color: var(--c-muted); margin: var(--s-3) 0 0; }

/* ---------- Prose ---------- */
.prose p { margin: 0 0 1em; }
.prose a { overflow-wrap: anywhere; }
.lede > p:first-child { font-size: var(--fs-lede); line-height: 1.5; }
.section { margin-top: var(--section-gap); }
.section--first { margin-top: var(--s-6); }
/* v1.1 kicker: sentence case, muted, with the series mark (no amber caps, no gold rule) */
.kicker { display: flex; align-items: center; gap: 8px; font: 600 var(--fs-small)/1.2 var(--f-sans); color: var(--c-muted); margin: 0 0 var(--s-2); }
.kicker::before { content: ""; width: 14px; height: 11px; flex: none; background:
  linear-gradient(var(--c-text),var(--c-text)) 0 100%/3px 5px no-repeat, linear-gradient(var(--c-text),var(--c-text)) 5px 100%/3px 8px no-repeat,
  linear-gradient(var(--c-text),var(--c-text)) 10px 100%/3px 11px no-repeat; }
.h2 { font: 750 var(--fs-h2)/1.2 var(--f-head); letter-spacing: -0.015em; margin: 0 0 var(--s-4); text-wrap: balance; }
.h3 { font: 700 var(--fs-h3)/1.3 var(--f-sans); margin: var(--s-6) 0 var(--s-3); }
.qp-caption, .caption { font: 400 var(--fs-small)/1.5 var(--f-sans); color: var(--c-muted); margin: var(--s-3) 0 0; }
.qp-method, .method { font: 400 var(--fs-small)/1.5 var(--f-sans); color: var(--c-muted); margin: var(--s-3) 0 0; }

/* ---------- Chart plate ---------- */
.chart { margin: 0; }
.chart__title { font: 700 var(--fs-ui)/1.3 var(--f-sans); color: var(--c-plate-text); margin: 0; }
.chart__sub { font: 500 var(--fs-small)/1.35 var(--f-sans); color: var(--c-plate-muted); margin: 4px 0 var(--s-4); }
.chart svg { width: 100%; height: auto; overflow: visible; }
.chart svg text { font-family: var(--f-sans); font-variant-numeric: tabular-nums; }
.chart .svg-compact { display: block; } .chart .svg-wide { display: none; }
@media (min-width: 600px) { .chart .svg-compact { display: none; } .chart .svg-wide { display: block; } }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: var(--s-3) 0 0; padding: 0; list-style: none; font: 500 var(--fs-small)/1.3 var(--f-sans); color: var(--c-plate-muted); }
.sw { display: inline-block; width: 10px; height: 10px; margin-right: 6px; vertical-align: -1px; border-radius: 1px; background: var(--c-plate-bar); }
.sw--hi { background: var(--c-plate-hi); } .sw--neg { background: var(--c-plate-neg); } .sw--line { background: var(--c-plate-text); height: 3px; vertical-align: 2px; }
.sw--dash { width: 2px; height: 12px; vertical-align: -2px; background: repeating-linear-gradient(180deg, var(--c-plate-muted) 0 3px, transparent 3px 6px); }
/* SVG paint classes (theme-aware; presentation colours live here, not in markup) */
.g-bar { fill: var(--c-plate-bar); } .g-hi { fill: var(--c-plate-hi); } .g-neg { fill: var(--c-plate-neg); } .g-dim { fill: var(--c-plate-bar-dim); }
.g-area { fill: var(--c-plate-bar); opacity: .45; } .g-band { fill: var(--c-plate-text); opacity: .06; }
.g-line { fill: none; stroke: var(--c-plate-text); stroke-width: 1.75; stroke-linejoin: round; }
.g-grid { stroke: var(--c-plate-grid); stroke-width: 1; } .g-axis { stroke: var(--c-plate-muted); stroke-width: 1; }
.g-bracket { fill: none; stroke: var(--c-plate-text); stroke-width: 1.5; } .g-bracket--hi { stroke: var(--c-plate-hi); }
.g-dot { fill: var(--c-plate-hi); stroke: var(--c-plate); stroke-width: 2; }
.g-hatch-line { stroke: var(--c-plate-muted); stroke-width: 1; opacity: .5; }
.t-text { fill: var(--c-plate-text); } .t-muted { fill: var(--c-plate-muted); } .t-hi { fill: var(--c-plate-hi); } .t-neg { fill: var(--c-plate-neg); }
.t-on-hi { fill: var(--c-plate); }
.t-halo { paint-order: stroke; stroke: var(--c-plate); stroke-width: 5px; stroke-linejoin: round; }

/* ---------- Data table (F10) ---------- */
.tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; position: relative; } /* relative: sr-only spans inside cells must not escape the scroller (page overflow on mobile) */
table.data { width: 100%; border-collapse: collapse; font: 500 var(--fs-ui)/1.35 var(--f-sans); }
table.data caption { text-align: left; font: 500 var(--fs-small)/1.4 var(--f-sans); color: var(--c-muted); caption-side: bottom; padding-top: var(--s-3); }
table.data thead th { font: 650 var(--fs-small)/1.25 var(--f-sans); color: var(--c-text-2); text-align: right; vertical-align: bottom;
  padding: 10px 10px 8px; border-top: var(--rule-heavy) solid var(--c-rule-strong); border-bottom: 1px solid var(--c-rule-strong); }
table.data thead th small { display: block; font-weight: 500; color: var(--c-muted); }
table.data td, table.data tbody th { padding: 12px 10px; border-bottom: 1px solid var(--c-rule); text-align: right; white-space: nowrap; }
table.data tbody th { font-weight: 650; text-align: left; }
table.data thead th:first-child { text-align: left; }
table.data tbody tr:last-child > * { border-bottom: var(--rule-heavy) solid var(--c-rule-strong); }
table.data .cur { font-weight: 750; background: var(--c-hi-col); }
table.data sup { font-size: 10px; margin-left: 2px; }
table.data sup a { text-decoration: none; color: var(--c-muted); padding: 2px; }
table.data sup a:hover { color: var(--c-text); }
@media (max-width: 599px) {
  table.data--reflow thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.data--reflow, table.data--reflow tbody { display: block; }
  table.data--reflow tbody tr { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--s-4); padding: var(--s-4) 0; border-bottom: 1px solid var(--c-rule); }
  table.data--reflow tbody tr:first-child { border-top: var(--rule-heavy) solid var(--c-rule-strong); }
  table.data--reflow tbody tr:last-child { border-bottom: var(--rule-heavy) solid var(--c-rule-strong); }
  table.data--reflow tbody tr > * { border: 0 !important; padding: 3px 0; text-align: left; display: flex; justify-content: space-between; gap: 8px; background: none; white-space: normal; }
  table.data--reflow tbody th { grid-column: 1 / -1; font: 700 var(--fs-h3)/1.3 var(--f-sans); padding-bottom: 6px; }
  table.data--reflow td::before { content: attr(data-label); color: var(--c-muted); font-weight: 500; }
  table.data--reflow td.cur { grid-column: 1 / -1; font-size: 1.25rem; padding: 4px 0 8px; }
  table.data--reflow td.cur::before { font-size: var(--fs-ui); align-self: center; }
  table.data--reflow caption { display: block; }
}
/* long ledgers (hub): sticky first column + horizontal scroll inside the wrapper only */
table.data--long tbody th, table.data--long thead th:first-child { position: sticky; left: 0; background: var(--c-page); z-index: 1; }
table.data--long td, table.data--long tbody th { padding-top: 8px; padding-bottom: 8px; }
table.data--long tbody th a { display: inline-block; padding: 4px 0; }
table.data--long tr.is-latest > * { font-weight: 750; background: var(--c-hi-col); }
.mark { font: 600 10px/1 var(--f-sans); color: var(--c-muted); margin-left: 3px; vertical-align: 2px; }
.inbar { display: inline-block; height: 8px; background: var(--c-text-2); vertical-align: 0; margin-right: 8px; border-radius: 1px; opacity: .55; }
.inbar--hi { background: var(--c-text); opacity: 1; }
details.more { margin-top: var(--s-3); }
details.more > summary { cursor: pointer; font: 650 var(--fs-ui)/1.3 var(--f-sans); padding: 12px 0; min-height: 44px; list-style: none; color: var(--c-text); }
details.more > summary::-webkit-details-marker { display: none; }
details.more > summary::before { content: "+"; display: inline-block; width: 1.2em; font-weight: 800; color: var(--c-accent-ink); }
details.more[open] > summary::before { content: "\2212"; }

/* ---------- What stands out / highlights: ruled list (key column lights up when page-editor adds data-key) ---------- */
.facts ul, ul.facts { list-style: none; margin: 0; padding: 0; border-top: var(--rule-heavy) solid var(--c-rule-strong); }
.facts li { padding: var(--s-4) 0; border-bottom: 1px solid var(--c-rule); font: 400 var(--fs-body)/1.5 var(--f-serif); }
.facts li[data-key] { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--s-4); align-items: baseline; }
.facts li[data-key]::before { content: attr(data-key); font: 750 1.375rem/1.1 var(--f-sans); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
@media (max-width: 420px) { .facts li[data-key] { grid-template-columns: 5.25rem 1fr; gap: var(--s-3); } }

/* ---------- Bottom line ---------- */
.bottomline { border-top: var(--rule-heavy) solid var(--c-rule-strong); padding-top: var(--s-4); }
.bottomline p:not(.kicker) { font: 600 var(--fs-lede)/1.45 var(--f-serif); margin: 0 0 .6em; }

/* ---------- Editor's note: the human voice ---------- */
.note { background: var(--c-sunk); padding: var(--s-5) clamp(20px, 4vw, 32px); border-radius: var(--r-1); }
.note__label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-2) var(--s-3); align-items: baseline; font: 700 var(--fs-label)/1.2 var(--f-sans);
  letter-spacing: var(--track-label); text-transform: uppercase; color: var(--c-text); margin: 0 0 var(--s-3); }
.note__draft { font: 700 10px/1.2 var(--f-sans); letter-spacing: .06em; color: var(--c-neg-ink); }
.note__hint { font: 400 var(--fs-small)/1.45 var(--f-sans); color: var(--c-muted); margin: 0 0 var(--s-3); }
.note blockquote { margin: 0; font: italic 450 var(--fs-lede)/1.55 var(--f-serif); color: var(--c-text); }
.note blockquote p { margin: 0 0 .6em; }
.note__sig { margin: var(--s-4) 0 0; font: 500 var(--fs-small)/1.4 var(--f-sans); color: var(--c-text-2); }

/* ---------- FAQ ---------- */
.faq details { border-bottom: 1px solid var(--c-rule); }
.faq details:first-child { border-top: var(--rule-heavy) solid var(--c-rule-strong); }
.faq summary { cursor: pointer; list-style: none; padding: 14px 32px 14px 0; position: relative; font: 650 var(--fs-ui)/1.4 var(--f-sans); min-height: 48px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 13px; font: 700 20px/1 var(--f-sans); color: var(--c-accent-ink); }
.faq details[open] summary::after { content: "\2212"; }
.faq details p { margin: 0 0 var(--s-4); }

/* ---------- Keep reading (internal links) ---------- */
.next { list-style: none; margin: 0; padding: 0; display: grid; border-top: var(--rule-heavy) solid var(--c-rule-strong); }
@media (min-width: 720px) { .next { grid-template-columns: 1fr 1fr; column-gap: var(--s-6); } }
.next li > a { display: grid; grid-template-columns: 1fr auto; gap: var(--s-3); align-items: center; padding: var(--s-4) 0; border-bottom: 1px solid var(--c-rule); text-decoration: none; min-height: 64px; }
.next a:hover .next__t { text-decoration: underline; text-decoration-color: var(--c-link-line); text-decoration-thickness: 2px; }
.next__k { display: block; font: 700 var(--fs-label)/1.2 var(--f-sans); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--c-muted); margin-bottom: 4px; }
.next__t { font: 650 var(--fs-ui)/1.35 var(--f-sans); }
.next svg { width: 88px; height: 32px; color: var(--c-text); }
.spark-line { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; opacity: .55; }
.spark-dot { fill: currentColor; }

/* ---------- Sources ---------- */
.sources { font: 400 var(--fs-small)/1.5 var(--f-sans); color: var(--c-text-2); border-top: 1px solid var(--c-rule-strong); padding-top: var(--s-4); }
.sources .h3 { margin-top: 0; }
.sources ol, .sources ul { margin: var(--s-3) 0; padding-left: 1.6em; }
.sources li { margin: 4px 0; padding: 2px 0 2px 2px; }
.sources li::marker { font-weight: 700; color: var(--c-text); }
.sources li a { display: inline; padding: 6px 0; line-height: 1.9; overflow-wrap: normal; } /* B-m13: inline keeps the number on the first line */
.sources p { margin: var(--s-2) 0; }
.sources .qp-source p:last-child a, .btn-ghost { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--c-rule-strong);
  border-radius: var(--r-1); font: 650 var(--fs-small)/1 var(--f-sans); text-decoration: none; color: var(--c-text); margin-top: var(--s-2); }
.sources .qp-source p:last-child a:hover, .btn-ghost:hover { background: var(--c-sunk); }
.acc { font-variant-numeric: tabular-nums; letter-spacing: .01em; color: var(--c-muted); }

/* ---------- Ad slot (R4): engine markup <aside class="ad"><div class="ad-label">; reserved height = CLS < 0.1 ---------- */
/* B-m6: the reserve is for the creative itself (the <ins>), the "Advertisement" label row and paddings come on top,
   so a 280 px responsive unit lands in the reserved box (CLS 0). Desktop reserves 280 too: data-ad-format="auto" on an
   ~830 px column most often returns 250/280, not 90. */
.ad { --ad-ins-h: var(--ad-h-mobile); margin: var(--section-gap) auto; max-width: var(--wide); background: var(--c-ad-bg);
  border-top: 1px solid var(--c-rule); border-bottom: 1px solid var(--c-rule); padding: 6px 0 12px; overflow: hidden; }
.ad ins.adsbygoogle { min-height: var(--ad-ins-h); }
@media (max-width: 599px) { .ad { margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); } }
@media (min-width: 760px) { .ad { --ad-ins-h: max(var(--ad-h-desktop), 280px); } }
.ad-label { height: 16px; font: 600 10px/1 var(--f-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); padding: 0 8px 6px; }
.ad ins { display: block; width: 100%; }

/* ---------- Banners: Correction / Update (procedure from reviews/001) ---------- */
.banner { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; padding: var(--s-4) 0; border-top: var(--rule-heavy) solid currentColor;
  border-bottom: 1px solid var(--c-rule); margin: 0 0 var(--s-5); font: 400 var(--fs-ui)/1.5 var(--f-sans); color: var(--c-text); }
.banner .stamp { grid-row: span 2; align-self: start; font: 800 11px/1 var(--f-sans); letter-spacing: .1em; text-transform: uppercase;
  padding: 6px 8px; border: 1.5px solid currentColor; border-radius: var(--r-1); white-space: nowrap; }
.banner--correction { border-top-color: var(--c-flag-correction); } .banner--correction .stamp { color: var(--c-flag-correction); }
.banner--update { border-top-color: var(--c-flag-update); } .banner--update .stamp { color: var(--c-flag-update); }
.banner--later { border-top-color: var(--c-rule-strong); } .banner--later .stamp { color: var(--c-muted); }
.banner p { margin: 0; } .banner small { color: var(--c-muted); font-size: var(--fs-small); }
@media (max-width: 420px) { .banner { grid-template-columns: 1fr; } .banner .stamp { justify-self: start; } }

/* ---------- Week: report rows ---------- */
.reports { list-style: none; margin: 0; padding: 0; border-top: var(--rule-heavy) solid var(--c-rule-strong); font-family: var(--f-sans); }
.reports li { border-bottom: 1px solid var(--c-rule); }
.reports .row { display: grid; grid-template-columns: 4.5rem 1fr repeat(3, 6.5rem) 1.5rem; gap: var(--s-3); align-items: center; padding: var(--s-4) 0; color: inherit; text-decoration: none; }
.reports a.row:hover .co b { text-decoration: underline; text-decoration-color: var(--c-link-line); text-decoration-thickness: 2px; }
.reports .tk { font: 800 var(--fs-ui)/1 var(--f-sans); letter-spacing: .03em; }
.reports .co b { display: block; font: 600 var(--fs-ui)/1.3 var(--f-sans); }
.reports .co small { display: block; font-weight: 500; color: var(--c-muted); font-size: var(--fs-small); }
.reports .v { text-align: right; font: 650 var(--fs-ui)/1.2 var(--f-sans); font-variant-numeric: tabular-nums; }
.reports .v small { display: block; font: 500 11px/1.3 var(--f-sans); color: var(--c-muted); letter-spacing: .04em; text-transform: uppercase; }
.reports .go { text-align: right; font-weight: 700; }
@media (max-width: 599px) {
  .reports .row { grid-template-columns: 1fr 1fr 1fr; row-gap: 10px; }
  .reports .tk { grid-column: 1; } .reports .co { grid-column: 2 / -1; }
  .reports .v { text-align: left; } .reports .go { display: none; }
}

/* ---------- Home ---------- */
.home-intro { font: 400 var(--fs-lede)/1.5 var(--f-serif); color: var(--c-text-2); margin: 0 0 var(--s-5); max-width: var(--measure); }
.latest { list-style: none; margin: 0; padding: 0; border-top: var(--rule-heavy) solid var(--c-rule-strong); }
.latest a { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); padding: var(--s-4) 0; border-bottom: 1px solid var(--c-rule); text-decoration: none; min-height: 52px; }
.latest .t { font: 650 var(--fs-ui)/1.35 var(--f-sans); }
.latest a:hover .t { text-decoration: underline; text-decoration-color: var(--c-link-line); text-decoration-thickness: 2px; }
.latest .s { font: 600 var(--fs-ui)/1.2 var(--f-sans); color: var(--c-text-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.tickers { list-style: none; margin: 0; padding: 0; display: grid; border-top: var(--rule-heavy) solid var(--c-rule-strong); font-family: var(--f-sans); }
@media (min-width: 640px) { .tickers { grid-template-columns: 1fr 1fr; column-gap: var(--s-6); } }
@media (min-width: 1000px) { .tickers { grid-template-columns: 1fr 1fr 1fr; } }
.tickers a, .tickers .qp-nolink { display: grid; grid-template-columns: 4.25rem 1fr auto; gap: 2px var(--s-3); align-items: baseline; padding: var(--s-3) 0; border-bottom: 1px solid var(--c-rule); text-decoration: none; min-height: 56px; }
.tickers .tk { font: 800 var(--fs-ui)/1.2 var(--f-sans); letter-spacing: .03em; }
.tickers .co { font: 600 var(--fs-ui)/1.3 var(--f-sans); min-width: 0; }
.tickers a:hover .co { text-decoration: underline; text-decoration-color: var(--c-link-line); text-decoration-thickness: 2px; }
.tickers .q { grid-column: 2; font: 500 var(--fs-small)/1.3 var(--f-sans); color: var(--c-muted); }
.tickers .rv { grid-column: 3; grid-row: 1 / span 2; align-self: center; font: 700 var(--fs-ui)/1 var(--f-sans); font-variant-numeric: tabular-nums; }

/* ---------- Static pages, lists, 404 ---------- */
.static-body h2 { font: 750 var(--fs-h2)/1.2 var(--f-head); margin: var(--s-7) 0 var(--s-3); text-wrap: balance; }
.static-body h3 { font: 700 var(--fs-h3)/1.3 var(--f-sans); margin: var(--s-6) 0 var(--s-2); }
.static-body p, .static-body ul, .static-body ol { margin: 0 0 1em; }
.static-body li { margin: 0 0 .4em; }
.static-body pre { font: 400 var(--fs-small)/1.5 ui-monospace, Menlo, monospace; background: var(--c-sunk); padding: var(--s-4); border-radius: var(--r-1);
  white-space: pre-wrap; overflow-wrap: anywhere; } /* B-M5: formulas wrap instead of becoming a keyboard-unreachable scroller */
.static-body table { border-collapse: collapse; font: 500 var(--fs-ui)/1.35 var(--f-sans); width: 100%; }
.static-body th, .static-body td { text-align: left; padding: 8px; border-bottom: 1px solid var(--c-rule); }
.plain-list { list-style: none; margin: 0; padding: 0; border-top: var(--rule-heavy) solid var(--c-rule-strong); font-family: var(--f-sans); }
.plain-list a { display: block; padding: var(--s-4) 0; border-bottom: 1px solid var(--c-rule); font: 650 var(--fs-ui)/1.35 var(--f-sans); min-height: 52px; text-decoration-color: var(--c-link-line); }

/* ---------- Footer ---------- */
.footer { background: var(--qp-navy); color: var(--qp-slate); margin-top: var(--s-9); font: 400 var(--fs-small)/1.55 var(--f-sans); }
.footer__in { max-width: var(--page-max); margin: 0 auto; padding: var(--s-7) var(--gutter) var(--s-6); display: grid; gap: var(--s-5); }
.footer a { color: var(--qp-cream); text-decoration-color: var(--qp-amber); }
.footer nav { display: flex; flex-wrap: wrap; gap: 0 20px; font-weight: 600; }
.footer nav a { padding: 12px 0; display: inline-block; }
.footer p { margin: 0; max-width: 64ch; }
.footer .qp-footer-disclaimer { color: var(--qp-slate); }
.theme-btn { justify-self: start; background: none; border: 1px solid var(--qp-slate); color: var(--qp-cream); border-radius: var(--r-1); padding: 8px 14px; font: 600 var(--fs-small)/1 var(--f-sans); cursor: pointer; min-height: 44px; }
.theme-btn[hidden] { display: none; }

/* ================= v1.1 (design/DELTA-2026-10-29.md) ================= */
/* Hook plate = the card: hook left, mini chart right (>= 760px); on mobile hook -> ledger -> mini chart. */
.plate__grid { display: grid; grid-template-areas: "hook" "ledger" "bars"; column-gap: var(--s-6); }
.pg-hook { grid-area: hook; min-width: 0; } .pg-ledger { grid-area: ledger; } .minibars.pg-bars { grid-area: bars; margin-top: var(--s-6); }
@media (min-width: 760px) { .plate__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-areas: "hook bars" "ledger ledger"; align-items: end; }
  .minibars.pg-bars { margin-top: 0; } }
@media (max-width: 759px) { .pg-hook .hook__sub { font-size: var(--fs-small); } .pg-ledger { margin-top: var(--s-5); } }
.minibars { margin: 0; }
.minibars svg { width: 100%; height: auto; }
.plate svg text { font-family: var(--f-sans); font-variant-numeric: tabular-nums; }
.minibars figcaption { font: 600 var(--fs-small)/1.3 var(--f-sans); color: var(--c-plate-text); margin-top: 8px; }
.minibars figcaption span { display: block; font-weight: 500; color: var(--c-plate-muted); }
@media (max-width: 759px) { .minibars svg { height: 120px; } }
/* Data-status stamp: rectangular, caps, outlined (same family as Correction/Update stamps) */
.dstamp { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font: 800 11px/1.2 var(--f-sans); letter-spacing: .1em; text-transform: uppercase;
  color: var(--c-plate-text); border: 1.5px solid var(--c-plate-text); border-radius: var(--r-1); padding: 6px 8px; }
.dstamp small { font-weight: 600; letter-spacing: .04em; color: var(--c-plate-muted); font-size: 11px; }
.dstamp--prelim { color: var(--c-plate-hi); border-style: dashed; border-color: var(--c-plate-hi); }
/* quarter label disambiguation: "Q1 FY27" + "ended Sep 30, 2026" */
.qend { display: block; font: 500 11px/1.25 var(--f-sans); color: var(--c-muted); letter-spacing: 0; text-transform: none; }
table.data--reflow td .qend { display: none; }
/* lede right after the plate */
.lede-first { font: 400 var(--fs-lede)/1.5 var(--f-serif); margin: var(--s-5) 0 0; }
.lede-first + div .qp-disclaimer { margin-top: var(--s-3); }

@media (prefers-reduced-motion: no-preference) { a, summary { transition: text-decoration-thickness var(--t-fast) var(--ease); } }
@media print { .masthead nav, .ad, .theme-btn, .rail, .skip, .preview { display: none !important; } .plate { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* ---------- In-page table of contents (hub; the rail repeats it at >= 1180px) ---------- */
.toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 var(--s-4); border-top: 1px solid var(--c-rule); border-bottom: 1px solid var(--c-rule); font: 600 var(--fs-ui)/1.2 var(--f-sans); }
.toc a { display: inline-block; padding: 12px 0; min-height: 44px; }
@media (min-width: 1180px) { .toc { display: none; } }
.lede-first p { margin: 0 0 .6em; }
:target { scroll-margin-top: var(--s-5); }
.hook__sub p { margin: 0; }
.chart + .tbl-wrap, .chart + h3, .chart + div + .h3 { margin-top: var(--s-5); }
figure.chart + .tbl-wrap { margin-top: var(--s-5); }

/* ================= QA round 2026-10-29 (B, C, A-M3) ================= */
/* footer "Privacy settings": a button that looks like the footer links (rendered only when the CMP is on the page) */
.linkish { background: none; border: 0; padding: 12px 0; margin: 0; font: inherit; color: var(--qp-cream); cursor: pointer;
  text-decoration: underline; text-decoration-color: var(--qp-amber); text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
.linkish:hover { text-decoration-thickness: 3px; }
/* n/a, derived and table notes (AP13, DESIGN §7) */
.sw--na { background: repeating-linear-gradient(45deg, var(--c-plate-bar-dim) 0 3px, var(--c-plate-muted) 3px 4px); }
.na { color: var(--c-muted); }
.dmark { font-weight: 700; margin-left: 1px; }
table.data sup.fn { margin-left: 2px; } table.data sup.fn a { color: var(--c-text-2); font-weight: 700; }
.tnotes { list-style: none; margin: var(--s-2) 0 0; padding: 0; font: 400 var(--fs-small)/1.5 var(--f-sans); color: var(--c-muted); }
.tnotes li { margin: 2px 0; } .tnotes b { color: var(--c-text-2); margin-right: 4px; }
/* B-M5: long tables on phones. Focusable scroll region (tabindex + role=region + label in markup), a visible
   right-edge rule while there is more to scroll (background-attachment trick, no JS), and a hint line. */
.tbl-wrap[tabindex]:focus-visible { outline-offset: 0; }
.tbl-wrap { background:
  linear-gradient(var(--c-page), var(--c-page)) right center / 6px 100% no-repeat local,
  linear-gradient(var(--c-rule-strong), var(--c-rule-strong)) right center / 2px 100% no-repeat scroll; }
.scroll-hint { display: none; }
@media (max-width: 599px) {
  .scroll-hint { display: block; margin: var(--s-3) 0 var(--s-2); font: 600 var(--fs-small)/1.3 var(--f-sans); color: var(--c-muted); }
  .scroll-hint::after { content: " \2192"; }
  .js .scroll-hint { display: none; } .js .scroll-hint.is-on { display: block; }
  /* the end date moves under the quarter label, so revenue + YoY (or net income + margin) fit at 360 px */
  table.data--long .c-ended { display: none; }
}
.qend--m { display: none; }
@media (max-width: 599px) { table.data--long .qend--m { display: block; font-weight: 500; } }
/* B-m12: 600-1179 px (no rail): prose columns start on the same left edge as the wide blocks above them */
@media (max-width: 1179px) { .page--rail .main > .col { margin-left: max(0px, calc((100% - var(--wide)) / 2)); } }
/* B-m14: 360 px header — the last menu item keeps the full gutter */
@media (max-width: 400px) { .masthead__in { gap: var(--s-3); } .nav { gap: 14px; } .brand { gap: 6px; } }
.g-na { fill: var(--c-plate-muted); opacity: .55; }
.g-nop { fill: var(--c-plate-text); } .nop-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; } .sw--nop { width: 6px; height: 6px; margin: 0 8px 0 2px; vertical-align: 1px; border-radius: 50%; background: var(--c-plate-text); }
.nw { white-space: nowrap; }
.latest .row-plain { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); padding: var(--s-4) 0; border-bottom: 1px solid var(--c-rule); min-height: 52px; color: var(--c-text-2); }
/* D1b (review 003): annual table, the share basis changes below this fiscal year (EPS not comparable across it) */
table.data--long tr.is-basis-break > * { border-bottom: 2px dashed var(--c-rule-strong); }
table.data--long sup.fn { font-size: 12px; } .tnotes li[id]:target { background: var(--c-hi-col); }
/* the EPS column reserves a gutter for the dagger, so the digits stay aligned with the rows above and below */
table.data--long .c-dg { padding-right: 18px; position: relative; }
table.data--long td.c-dg > sup.fn { position: absolute; right: 2px; top: 6px; margin: 0; line-height: 1; }
