	body { background:#0b0f17 !important; }
	main#top { background:#0b0f17; }

	/* ── Page shell ─────────────────────────────────────────────────────── */
	.fin-page  { background:#0b0f17; color:#e8eaed; padding: .75rem 0 3rem; }
	.fin-page .blog-breadcrumb-nav { margin-bottom: 1rem; }
	.fin-page .breadcrumb { background:transparent; padding:0; font-size:.85rem; }
	.fin-page .breadcrumb-item a { color:#7d8694; text-decoration:none; }
	.fin-page .breadcrumb-item a:hover { color:#cbd5e1; }
	.fin-page .breadcrumb-item.active { color:#cbd5e1; }
	.fin-page .breadcrumb-item + .breadcrumb-item::before { color:#475569; }

	.fin-chg-up   { color:#22c55e; font-weight: 600; }
	.fin-chg-dn   { color:#ef4444; font-weight: 600; }
	.fin-chg-flat { color:#9ca3af; }

	/* ── Hero strip ─────────────────────────────────────────────────────── */
	/* 2-col on desktop: identity LEFT, price block RIGHT. Replaces the
	   stacked H1 → price → 5-stat-row that ate the top 200px on the live
	   page even on a 1920px monitor. */
	.fin-hero {
		background: linear-gradient(135deg, #11161f 0%, #0d1118 100%);
		border: 1px solid #1f2937;
		border-radius: .65rem;
		padding: 1.4rem 1.6rem;
		margin-bottom: 1.5rem;
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 2rem;
		align-items: center;
	}
	.fin-hero-id-name {
		font-size: 1.55rem;
		font-weight: 700;
		color: #fafafa;
		margin: 0 0 .25rem;
		line-height: 1.15;
	}
	.fin-hero-id-meta {
		display: inline-flex;
		gap: .55rem;
		align-items: center;
		font-size: .82rem;
	}
	.fin-hero-id-meta .tick {
		font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
		background: #0b0f17;
		border: 1px solid #1f2937;
		padding: .2rem .55rem;
		border-radius: .25rem;
		color: #fbbf24;
		font-weight: 600;
	}
	.fin-hero-id-meta .sector { color: #9ca3af; }

	.fin-hero-price { text-align: right; }
	.fin-hero-price .px {
		font-size: 2.6rem;
		font-weight: 700;
		color: #fafafa;
		line-height: 1;
		font-variant-numeric: tabular-nums;
	}
	.fin-hero-price .chg {
		font-size: 1.1rem;
		margin-left: .65rem;
		font-variant-numeric: tabular-nums;
	}
	.fin-hero-stats {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		gap: 1rem;
		padding-top: 1rem;
		margin-top: 1rem;
		border-top: 1px solid #1c2231;
	}
	.fin-hero-stats .stat { display:flex; flex-direction:column; gap:.1rem; }
	.fin-hero-stats .lbl  { font-size:.65rem; text-transform: uppercase; color:#7d8694; letter-spacing:.1em; }
	.fin-hero-stats .val  { font-size:.95rem; color:#e8eaed; font-weight: 500; font-variant-numeric: tabular-nums; }
	@media (max-width: 768px) {
		.fin-hero { grid-template-columns: 1fr; gap: 1rem; }
		.fin-hero-price { text-align: left; }
		.fin-hero-stats { grid-template-columns: repeat(3, 1fr); gap: .75rem; }
		.fin-hero-stats .stat:nth-child(n+4) { display: none; }
	}

	/* ── Main grid ──────────────────────────────────────────────────────── */
	/* 12-col on ≥1280, 6-col on tablet (so news/filings stay paired),
	   1-col on phones. */
	.fin-grid {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: 1.25rem;
	}
	.fin-grid > .span-12 { grid-column: span 12; }
	.fin-grid > .span-8  { grid-column: span 8; }
	.fin-grid > .span-6  { grid-column: span 6; }
	.fin-grid > .span-4  { grid-column: span 4; }
	@media (max-width: 1279px) {
		.fin-grid { grid-template-columns: repeat(6, 1fr); }
		.fin-grid > .span-8 { grid-column: span 6; }
		.fin-grid > .span-4 { grid-column: span 6; }
		.fin-grid > .span-6 { grid-column: span 6; }
	}
	@media (max-width: 768px) {
		.fin-grid { grid-template-columns: 1fr; gap: 1rem; }
		.fin-grid > [class^="span-"] { grid-column: span 1; }
	}

	/* ── Card frame ─────────────────────────────────────────────────────── */
	.fin-card {
		background:#11161f;
		border:1px solid #1f2937;
		border-radius:.55rem;
		overflow: hidden;
		display: flex;
		flex-direction: column;
	}
	.fin-card-h {
		display:flex;
		align-items:center;
		justify-content:space-between;
		gap: 1rem;
		padding: .7rem 1rem;
		border-bottom: 1px solid #1c2231;
		background:#0d1118;
	}
	.fin-card-h h2 {
		font-size: .82rem;
		font-weight: 600;
		color:#e8eaed;
		text-transform: uppercase;
		letter-spacing: .08em;
		margin: 0;
	}
	.fin-card-h .meta { font-size: .72rem; color:#7d8694; }
	.fin-card-body { padding: 0; flex: 1; min-height: 0; }
	.fin-card-pad  { padding: .85rem 1rem; }

	/* ── Chart card ─────────────────────────────────────────────────────── */
	.fin-chart-card .fin-card-body { padding: .75rem; }
	.fin-tf-bar { display:flex; align-items:center; gap:.35rem; margin: 0 0 .65rem; flex-wrap: wrap; }
	.fin-tf-bar .lbl { font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:#7d8694; margin-right:.4rem; }
	.fin-tf-btn { background:#0d1118; border:1px solid #1f2937; color:#9ca3af; font: 600 .78rem/1 ui-monospace,"SFMono-Regular",Menlo,monospace; padding:.4rem .65rem; border-radius:.3rem; cursor:pointer; transition: background .15s, color .15s, border-color .15s; }
	.fin-tf-btn:hover { color:#e8eaed; border-color:#374151; }
	.fin-tf-btn.active { background:#1e40af; color:#fff; border-color:#1e40af; }
	.fin-tf-btn:disabled { opacity:.5; cursor:wait; }
	.fin-tf-span { font-size:.72rem; color:#9ca3af; margin-left:.5rem; font-style: italic; }
	.fin-tf-status { font-size:.72rem; color:#7d8694; margin-left:.4rem; }
	.fin-chart { width:100%; height: 520px; }
	@media (max-width: 768px) { .fin-chart { height: 320px; } }

	/* ── Chart card footer (price stats + 52W range bar) ────────────────── */
	/* Tucks below the chart inside the same card to fill the vertical gap
	   that opens when the right-column stack (Profile + Latest Quarter +
	   next-earnings + doughnut) renders taller than the chart alone. The
	   stats are computed from $candles server-side — no extra fetch. */
	.fin-chart-foot {
		border-top: 1px solid #1c2231;
		background: #0d1118;
		padding: .95rem 1rem 1.05rem;
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
	.fin-chart-stats-grid {
		display: grid;
		/* Base shape; the two variant classes below pick a column count
		   matched to their content density (context = 3 wide, periods = 7
		   narrow). */
		gap: .7rem 1rem;
	}
	/* Context row: 52W High / 52W Low / Avg vol. 3 cells, breathe-y. */
	.fin-stats-context {
		grid-template-columns: repeat(3, 1fr);
	}
	/* Period returns row: 7 cells (1W → 5Y), tight tabular. */
	.fin-stats-periods {
		grid-template-columns: repeat(7, 1fr);
		gap: .5rem .75rem;
	}
	@media (max-width: 768px) {
		/* On phones the 7-col strip gets unreadable; collapse to 4 cols
		   so the period chips still line up neatly across two rows. */
		.fin-stats-context  { grid-template-columns: repeat(2, 1fr); }
		.fin-stats-periods  { grid-template-columns: repeat(4, 1fr); }
	}
	.fin-chart-stats-grid .stat { display: flex; flex-direction: column; gap: .15rem; }
	.fin-chart-stats-grid .lbl  {
		font-size: .6rem;
		text-transform: uppercase;
		letter-spacing: .12em;
		color: #7d8694;
	}
	.fin-chart-stats-grid .val  {
		font-size: .95rem;
		color: #e8eaed;
		font-weight: 600;
		font-variant-numeric: tabular-nums;
		line-height: 1.1;
	}
	.fin-chart-stats-grid .val.fin-chg-up   { color: #4ade80; }
	.fin-chart-stats-grid .val.fin-chg-dn   { color: #f87171; }
	.fin-chart-stats-grid .val.fin-chg-flat { color: #9ca3af; }

	/* 52-week range bar: dark track with a subtle red→neutral→green tint
	   so the user reads position-in-range at a glance, plus a white tick
	   stamped at the current price's position. Endpoints flank the bar
	   showing the actual low/high prices. */
	.fin-52w-range {
		display: grid;
		grid-template-columns: auto 1fr auto;
		gap: .65rem;
		align-items: center;
	}
	.fin-52w-range .endpt {
		font-size: .72rem;
		color: #9ca3af;
		font-variant-numeric: tabular-nums;
		font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
		white-space: nowrap;
	}
	.fin-52w-range .endpt.hi { color: #cbd5e1; }
	.fin-52w-range .bar {
		position: relative;
		height: 8px;
		border-radius: 4px;
		background: linear-gradient(90deg, rgba(239,68,68,.45) 0%, rgba(156,163,175,.18) 50%, rgba(34,197,94,.45) 100%);
		box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
	}
	.fin-52w-range .marker {
		position: absolute; top: -3px;
		width: 3px; height: 14px;
		background: #fafafa;
		transform: translateX(-1.5px);
		border-radius: 1.5px;
		box-shadow: 0 0 0 1.5px rgba(0,0,0,.55);
	}
	.fin-52w-range-cap {
		font-size: .68rem;
		color: #7d8694;
		text-align: center;
		grid-column: 1 / -1;
		font-variant-numeric: tabular-nums;
		margin-top: -.15rem;
	}
	.fin-52w-range-cap b { color: #cbd5e1; font-weight: 600; }

	/* ── Latest-quarter summary card (right of chart) ───────────────────── */
	/* 4 stacked metrics with big number + YoY chip, then a combined
	   analyst-consensus doughnut, then a "view all" anchor link. Card
	   acts as the TLDR for the wider Quarterly Financials table at the
	   bottom of the grid and the per-month Analyst Consensus card below.
	   Vertical rhythm tuned to roughly match the 420px chart height so
	   the two row-1 cards stay visually paired. */
	.fin-q-body {
		display: flex;
		flex-direction: column;
		/* All-around padding instead of 1rem 1rem 0; without bottom padding
		   the last metric butted up against the doughnut's separator line. */
		padding: 1rem;
		gap: 1rem;
	}
	.fin-q-metric {
		display: flex;
		flex-direction: column;
		gap: .15rem;
	}
	.fin-q-lbl {
		text-transform: uppercase;
		font-size: .62rem;
		letter-spacing: .12em;
		color: #7d8694;
	}
	.fin-q-row {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: .5rem;
	}
	.fin-q-val {
		font-size: 1.55rem;
		font-weight: 700;
		color: #fafafa;
		font-variant-numeric: tabular-nums;
		line-height: 1.1;
	}
	.fin-q-yoy {
		font-size: .72rem;
		padding: .15rem .5rem;
		border-radius: 999px;
		font-variant-numeric: tabular-nums;
		font-weight: 600;
		white-space: nowrap;
	}
	.fin-q-yoy-up   { background: rgba(34,197,94,.14);  color: #4ade80; }
	.fin-q-yoy-dn   { background: rgba(239,68,68,.14);  color: #f87171; }
	.fin-q-yoy-flat { background: rgba(156,163,175,.10); color: #9ca3af; }

	/* Combined-consensus doughnut. Pure CSS conic-gradient + an inset
	   circle for the donut hole. Sized to feel like a chip, not a hero
	   visualization — the per-month detail lives in the standalone
	   Analyst Consensus card below. */
	.fin-q-donut-wrap {
		display: flex;
		align-items: center;
		gap: 1rem;
		padding: 1rem;
		border-top: 1px solid #1c2231;
		background: #0d1118;
	}
	.fin-q-donut {
		flex-shrink: 0;
		width: 84px; height: 84px;
		border-radius: 50%;
		display: grid; place-items: center;
		position: relative;
		/* conic-gradient stops are filled inline via style="" by PHP so
		   each ticker renders its real proportions. The pseudo-element
		   below stamps the doughnut hole in the card's footer color. */
	}
	.fin-q-donut::before {
		content: '';
		position: absolute; inset: 11px;
		background: #0d1118;
		border-radius: 50%;
		z-index: 1;
	}
	.fin-q-donut-center {
		position: relative;
		z-index: 2;
		font-size: .92rem;
		font-weight: 700;
		color: #fafafa;
		font-variant-numeric: tabular-nums;
		line-height: 1;
	}
	.fin-q-donut-meta {
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: .15rem;
	}
	.fin-q-donut-meta .lbl { font-size: .62rem; text-transform: uppercase; letter-spacing: .12em; color:#7d8694; }
	.fin-q-donut-meta .tone { font-size: .9rem; font-weight: 600; color: #e8eaed; }
	.fin-q-donut-meta .when { font-size: .7rem; color:#7d8694; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }

	.fin-q-more {
		display: block;
		text-align: center;
		padding: .85rem 1rem;
		font-size: .78rem;
		color: #60a5fa;
		border-top: 1px solid #1c2231;
		margin-top: auto;
		text-decoration: none;
		background: #0d1118;
	}
	.fin-q-more:hover { color: #93c5fd; background: #0b0f17; }

	/* ── Right-column stack: Profile + Latest Quarter ───────────────────── */
	/* The span-4 grid cell holds TWO cards stacked vertically. Without
	   this flex wrapper the grid would auto-flow them into two rows and
	   leave the chart's span-8 with an empty hole below it. */
	.fin-right-stack {
		display: flex;
		flex-direction: column;
		gap: 1.25rem;
	}

	/* ── Company profile card (top of right stack) ──────────────────────── */
	.fin-profile-body {
		padding: 1rem;
		display: flex;
		flex-direction: column;
		gap: .9rem;
	}
	.fin-profile-id {
		display: flex;
		align-items: center;
		gap: .85rem;
	}
	.fin-profile-logo {
		flex-shrink: 0;
		width: 48px; height: 48px;
		border-radius: .35rem;
		background: #fff;
		display: grid; place-items: center;
		overflow: hidden;
	}
	.fin-profile-logo img { max-width: 80%; max-height: 80%; }
	.fin-profile-logo.is-blank {
		background: linear-gradient(135deg, #1f2937 0%, #0d1118 100%);
		color: #475569; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
		font-size: .65rem; letter-spacing: .12em;
	}
	.fin-profile-name {
		font-size: .95rem;
		font-weight: 600;
		color: #fafafa;
		line-height: 1.25;
		margin: 0 0 .15rem;
	}
	.fin-profile-web a {
		color: #60a5fa;
		font-size: .8rem;
		text-decoration: none;
		display: inline-flex; align-items: center; gap: .3rem;
	}
	.fin-profile-web a:hover { color: #93c5fd; text-decoration: underline; }
	.fin-profile-facts {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: .6rem .9rem;
		padding-top: .85rem;
		border-top: 1px solid #1c2231;
	}
	.fin-profile-fact { display: flex; flex-direction: column; gap: .1rem; }
	.fin-profile-fact .lbl {
		font-size: .58rem;
		text-transform: uppercase;
		letter-spacing: .12em;
		color: #7d8694;
	}
	.fin-profile-fact .val {
		font-size: .82rem;
		color: #e8eaed;
		font-weight: 500;
		font-variant-numeric: tabular-nums;
	}

	/* ── Next-earnings block inside Latest Quarter card ─────────────────── */
	/* Sits between the 4 metric rows and the consensus doughnut. Renders
	   EITHER "next: date · est EPS · est rev" if a future event has
	   estimates, OR "last: date · actual vs estimate · beat/missed" if the
	   only event in scope is past (the more common case outside earnings
	   season). */
	.fin-q-next-wrap {
		padding: .85rem 1rem;
		border-top: 1px solid #1c2231;
		background: #0d1118;
	}
	.fin-q-next-head {
		display: flex; justify-content: space-between; align-items: baseline;
		margin-bottom: .55rem;
	}
	.fin-q-next-lbl {
		font-size: .58rem;
		text-transform: uppercase;
		letter-spacing: .14em;
		color: #7d8694;
		font-weight: 700;
	}
	.fin-q-next-when {
		font-size: .8rem;
		color: #fafafa;
		font-weight: 600;
		font-variant-numeric: tabular-nums;
	}
	.fin-q-next-when .hour {
		color: #7d8694;
		font-weight: 500;
		font-size: .68rem;
		text-transform: uppercase;
		letter-spacing: .08em;
		margin-left: .35rem;
	}
	.fin-q-next-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: .35rem .85rem;
		font-size: .78rem;
	}
	.fin-q-next-row .lbl { color:#7d8694; font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; }
	.fin-q-next-row .val { color:#e8eaed; font-variant-numeric: tabular-nums; }
	.fin-q-next-row .beat { color:#4ade80; font-weight: 600; }
	.fin-q-next-row .miss { color:#f87171; font-weight: 600; }

	/* ── Compact list (news, filings) ───────────────────────────────────── */
	/* Cap height + scroll internally so the long lists don't push the
	   quarterly-financials table miles below the fold on tickers with
	   lots of filings (USX, KNX). 460px shows ~7 rows at a time which is
	   enough to scan recency without committing the whole viewport. */
	.fin-list {
		display:flex;
		flex-direction:column;
		max-height: 460px;
		overflow-y: auto;
		/* Dark-theme scrollbar so it doesn't render as a bright Windows
		   slab against the card's #11161f background. */
		scrollbar-width: thin;
		scrollbar-color: #1f2937 transparent;
	}
	.fin-list::-webkit-scrollbar { width: 8px; }
	.fin-list::-webkit-scrollbar-track { background: transparent; }
	.fin-list::-webkit-scrollbar-thumb { background: #1f2937; border-radius: 4px; }
	.fin-list::-webkit-scrollbar-thumb:hover { background: #374151; }
	.fin-list .row {
		/* 6.5rem meta column accommodates "May 22, 2026" + "10-Q" without
		   wrapping. The previous 5.5rem cut off the date on filings where
		   the full month-day-year format runs ~92px in this monospace at
		   .72rem (5.5rem = 88px → 4px short → wrap → squish). */
		display:grid;
		grid-template-columns: 6.5rem 1fr;
		gap: .75rem;
		padding: .6rem 1rem;
		border-bottom: 1px solid #1c2231;
		align-items: start;
	}
	.fin-list .row:last-child { border-bottom: 0; }
	.fin-list .meta-col {
		display:flex; flex-direction:column; gap: .15rem;
		font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
		font-size:.72rem;
		color:#9ca3af;
	}
	/* Prevent wrap on both date and form lines — both fit comfortably in
	   the 6.5rem column individually; without nowrap a long source name
	   in news ("BusinessWire") would push into a second line. */
	.fin-list .meta-col > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.fin-list .meta-col .form { color:#fbbf24; font-weight: 600; }
	.fin-list .body-col { min-width: 0; }
	.fin-list .title { color:#e8eaed; font-size: .88rem; line-height: 1.35; }
	.fin-list .title a { color:#e8eaed; text-decoration: none; }
	.fin-list .title a:hover { color:#60a5fa; text-decoration: underline; }
	.fin-list .src  { font-size:.7rem; color:#7d8694; margin-top:.2rem; }
	.fin-list .ext  { display:inline-block; color:#60a5fa; font-size:.78rem; text-decoration:none; margin-top:.2rem; }
	.fin-list .ext:hover { text-decoration: underline; }

	/* ── Analyst consensus card ─────────────────────────────────────────── */
	.fin-rec-legend { display:flex; gap:.7rem; flex-wrap:wrap; padding: .55rem 1rem; border-bottom:1px solid #1c2231; font-size:.62rem; color:#7d8694; text-transform:uppercase; letter-spacing:.08em; background: #0d1118; }
	.fin-rec-legend .swatch { display:inline-block; width:.55rem; height:.55rem; border-radius:.15rem; vertical-align:.05em; margin-right:.3rem; }
	.fin-rec-legend .swatch.sb { background:#22c55e; }
	.fin-rec-legend .swatch.b  { background:#4ade80; }
	.fin-rec-legend .swatch.h  { background:#fbbf24; }
	.fin-rec-legend .swatch.s  { background:#f87171; }
	.fin-rec-legend .swatch.ss { background:#dc2626; }
	.fin-rec-row {
		display:grid;
		grid-template-columns: 4.2rem 1fr 4rem;
		gap: .55rem;
		padding: .55rem 1rem;
		border-bottom: 1px solid #1c2231;
		align-items: center;
	}
	.fin-rec-row:last-child { border-bottom: 0; }
	.fin-rec-row .when { color:#9ca3af; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.78rem; }
	.fin-rec-row .bar { display:flex; height:.5rem; border-radius:.15rem; overflow:hidden; background:#1f2937; }
	.fin-rec-row .bar > span { display:block; height:100%; }
	.fin-rec-row .bar .sb { background:#22c55e; }
	.fin-rec-row .bar .b  { background:#4ade80; }
	.fin-rec-row .bar .h  { background:#fbbf24; }
	.fin-rec-row .bar .s  { background:#f87171; }
	.fin-rec-row .bar .ss { background:#dc2626; }
	.fin-rec-row .meta { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size:.76rem; color:#9ca3af; text-align:right; font-variant-numeric: tabular-nums; }
	.fin-rec-row .meta .pct { color:#4ade80; font-weight:700; }

	/* ── Quarterly metrics card ─────────────────────────────────────────── */
	/* Horizontal scroll for the wide table on viewports narrower than the
	   ~22-quarter content. Dark-theme scrollbar to match the news/filings
	   lists — without it the default OS bright-white slab shows up against
	   the card's #11161f panel and breaks the dark look. */
	.fin-metrics-wrap {
		overflow-x: auto;
		scrollbar-width: thin;
		scrollbar-color: #1f2937 transparent;
	}
	.fin-metrics-wrap::-webkit-scrollbar { height: 8px; }
	.fin-metrics-wrap::-webkit-scrollbar-track { background: transparent; }
	.fin-metrics-wrap::-webkit-scrollbar-thumb { background: #1f2937; border-radius: 4px; }
	.fin-metrics-wrap::-webkit-scrollbar-thumb:hover { background: #374151; }
	.fin-metrics { width: 100%; border-collapse: collapse; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: .85rem; }
	.fin-metrics thead th { background:#0d1118; color:#9ca3af; font-weight: 600; text-align: right; padding: .55rem .9rem; border-bottom: 1px solid #1c2231; white-space: nowrap; font-size: .78rem; }
	.fin-metrics thead th.lbl { text-align: left; color:#fbbf24; text-transform: uppercase; letter-spacing: .08em; font-size:.7rem; }
	.fin-metrics thead th.period { color:#e8eaed; }
	.fin-metrics tbody th.lbl { text-align: left; padding: .5rem .9rem; color:#cbd5e1; font-weight: 500; font-family: -apple-system, system-ui, sans-serif; font-size: .88rem; border-bottom: 1px solid #1c2231; white-space: nowrap; }
	.fin-metrics tbody td { text-align: right; padding: .5rem .9rem; color:#e8eaed; border-bottom: 1px solid #1c2231; white-space: nowrap; font-variant-numeric: tabular-nums; }
	.fin-metrics tbody tr:last-child th, .fin-metrics tbody tr:last-child td { border-bottom: 0; }
	.fin-metrics tbody td.neg { color:#ef4444; }
	.fin-metrics-note { color:#5a6470; font-size:.74rem; padding: .65rem 1rem; line-height: 1.5; border-top: 1px solid #1c2231; background:#0d1118; }

	/* ── Empties / disclaimer ───────────────────────────────────────────── */
	.fin-empty { color:#7d8694; font-size:.88rem; padding: 1.25rem 1rem; text-align: center; }
	.fin-disclaimer { color:#6b7280; font-size:.78rem; margin-top: 2rem; line-height: 1.5; max-width: 70ch; }
