/**
 * Phase 6 dashboard widgets — financial, sports, weather, politics pulse.
 */

:root {
	/* Inherit from theme tokens (live's --brand-navy #002868 / --brand-red #A6192E). */
	--feed-navy: var(--tdn-navy, #002868);
	--feed-red:  var(--tdn-red,  #A6192E);
	--feed-line: var(--tdn-line, #E0E0E0);
	--feed-bg:   var(--tdn-paper, #F9F9F9);
}

.tdn-dash {
	max-width: 1180px;
	margin: 24px auto;
	padding: 0 20px;
}
.tdn-dash__head { text-align: center; margin-bottom: 24px; }
.tdn-dash__title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: clamp(1.8rem, 3.6vw, 2.6rem);
	font-weight: 900;
	color: var(--feed-navy);
	margin: 0 0 6px;
}
.tdn-dash__sub { margin: 0; color: #4b5563; font-size: .98rem; }
.tdn-dash__sub-title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.3rem; font-weight: 800; color: var(--feed-navy);
	margin: 0 0 12px;
}
.tdn-dash__col-title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.1rem; font-weight: 800; color: var(--feed-navy);
	margin: 0 0 10px;
	border-bottom: 2px solid var(--feed-navy);
	padding-bottom: 4px;
}

/* ---------- FRED indicator cards ---------- */
.tdn-dash__strip {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin-bottom: 26px;
}
.tdn-fred-card {
	background: #fff;
	border: 1px solid var(--feed-line);
	padding: 14px 16px;
	border-radius: 4px;
}
.tdn-fred-card--empty { background: #f9fafb; }
.tdn-fred-card__label { margin: 0; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: #6b7280; }
.tdn-fred-card__value {
	margin: 6px 0 2px;
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.7rem;
	color: var(--feed-navy);
	font-weight: 900;
	line-height: 1.1;
}
.tdn-fred-card__meta { margin: 0; font-size: .75rem; color: #6b7280; }

/* ---------- Chart container ---------- */
.tdn-dash__chart {
	background: #fff;
	border: 1px solid var(--feed-line);
	padding: 18px 20px;
	margin-bottom: 26px;
}
.tdn-dash__chart-title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.1rem; font-weight: 800; color: var(--feed-navy);
	margin: 0 0 10px;
}
.tdn-chart { width: 100%; min-height: 180px; max-height: 280px; }

/* ---------- Polygon watchlist ---------- */
.tdn-dash__watchlist { margin-top: 26px; }
.tdn-poly-table { width: 100%; background: #fff; border: 1px solid var(--feed-line); }
.tdn-poly-table th, .tdn-poly-table td { padding: 8px 12px; text-align: left; }
.tdn-poly-table th { background: var(--feed-bg); font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .4px; color: var(--feed-navy); }
.tdn-poly-table__is-up { color: #047857; font-weight: 700; }
.tdn-poly-table__is-down { color: #b91c1c; font-weight: 700; }
.tdn-poly-table__muted { color: #6b7280; }
.tdn-poly-table__credit { margin: 8px 0 0; color: #6b7280; font-size: .82rem; }
.tdn-poly-empty { background: #fffbeb; border-left: 4px solid #f59e0b; padding: 10px 14px; font-size: .92rem; }

/* ---------- Polymarket markets ---------- */
.tdn-poly-markets { display: grid; gap: 14px; }
.tdn-poly-market { background: #fff; border: 1px solid var(--feed-line); padding: 14px 16px; }
.tdn-poly-market__q { font-weight: 700; color: var(--feed-navy); margin: 0 0 8px; font-size: .95rem; }
.tdn-poly-market__outcomes { list-style: none; padding: 0; margin: 0; }
.tdn-poly-market__outcomes li {
	display: flex; justify-content: space-between;
	padding: 4px 0; border-bottom: 1px dashed #e5e7eb;
	font-size: .92rem;
}
.tdn-poly-market__outcomes li:last-child { border-bottom: 0; }
.tdn-poly-market__prob { font-weight: 800; color: var(--feed-red); }
.tdn-poly-market__meta { margin: 8px 0 0; font-size: .75rem; color: #6b7280; }

/* ---------- NYT RSS strip ---------- */
.tdn-nyt-heading { font-family: var(--tdn-serif, Georgia, serif); font-size: 1.1rem; font-weight: 800; color: var(--feed-navy); margin: 0 0 8px; }
.tdn-nyt-list { list-style: none; padding: 0; margin: 0; }
.tdn-nyt-list__item { padding: 6px 0; border-bottom: 1px solid #f1f5f9; font-size: .95rem; }
.tdn-nyt-list__item a { color: var(--feed-navy); text-decoration: none; font-weight: 600; }
.tdn-nyt-list__item a:hover { text-decoration: underline; }
.tdn-nyt-list__date { color: #6b7280; font-size: .82rem; font-weight: 500; }
.tdn-nyt-credit { color: #6b7280; font-size: .75rem; margin: 8px 0 0; }
.tdn-nyt-empty { color: #6b7280; }

/* ---------- 2-column layout used by politics pulse ---------- */
.tdn-dash__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px;
}

/* ---------- Sports league lists ---------- */
.tdn-dash__league { margin-bottom: 28px; }
.tdn-dash__league-title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.2rem; font-weight: 800; color: var(--feed-navy);
	margin: 0 0 12px;
	border-bottom: 2px solid var(--feed-navy);
	padding-bottom: 4px;
}

.tdn-scores {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 10px;
}
.tdn-score { background: #fff; border: 1px solid var(--feed-line); padding: 10px 12px; }
.tdn-score__row { display: flex; align-items: center; gap: 8px; padding: 2px 0; }
.tdn-score__logo { width: 24px; height: 24px; object-fit: contain; }
.tdn-score__team { flex: 1; font-size: .92rem; }
.tdn-score__team.is-winner { font-weight: 700; color: var(--feed-navy); }
.tdn-score__pts { font-weight: 800; font-size: 1.1rem; color: var(--feed-navy); }
.tdn-score__status { margin: 6px 0 0; font-size: .8rem; color: #6b7280; }

/* ---------- Weather (live-style row table + radar embed) ---------- */
.tdn-section--weather { max-width: 1180px; margin: 28px auto; padding: 0 24px; }
.tdn-section__head--weather { display: block; border-bottom: 4px double var(--feed-navy); padding-bottom: 8px; margin-bottom: 22px; text-align: left; }
.tdn-section__title--weather { font-size: clamp(1.8rem, 3.5vw, 2.4rem); color: var(--feed-navy); text-align: left; letter-spacing: -.5px; }
.tdn-section__subtitle--weather { text-align: left; text-transform: none; color: var(--feed-navy); font-size: 1rem; font-weight: 500; letter-spacing: 0; margin-top: 2px; }

.tdn-weather-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 28px; }
@media ( max-width: 900px ) { .tdn-weather-grid { grid-template-columns: 1fr; } }

.tdn-weather-current {
	background: var(--feed-bg);
	border: 1px solid var(--feed-line);
	padding: 16px 20px;
	margin-bottom: 22px;
	border-radius: 4px;
}
.tdn-weather-current__label { margin: 0 0 8px; font-size: .75rem; color: #6b7280; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; }
.tdn-weather-current__row { margin: 0; display: flex; align-items: baseline; gap: 16px; }
.tdn-weather-current__temp { font-family: var(--tdn-serif, Georgia, serif); font-size: 3.5rem; font-weight: 900; color: var(--feed-navy); line-height: 1; }
.tdn-weather-current__cond { font-size: 1.05rem; color: #1f2937; }

.tdn-weather-outlook__head { font-size: .9rem; font-weight: 700; color: #000; letter-spacing: 1px; margin: 0 0 12px; }
.tdn-weather-outlook { width: 100%; border-collapse: collapse; }
.tdn-weather-outlook__row { border-bottom: 1px solid #e5e7eb; }
.tdn-weather-outlook__row.is-night { background: #f8fafc; }
.tdn-weather-outlook__day { padding: 10px 8px 10px 0; font-weight: 600; color: var(--feed-navy); width: 130px; vertical-align: top; }
.tdn-weather-outlook__temp { padding: 10px 8px; color: var(--feed-red); font-weight: 800; width: 60px; vertical-align: top; }
.tdn-weather-outlook__desc { padding: 10px 0; color: #4b5563; font-size: .9rem; vertical-align: top; }

.tdn-weather-grid__radar {
	background: var(--feed-bg);
	padding: 16px;
	border: 1px solid var(--feed-line);
	border-radius: 4px;
}
.tdn-weather-radar__head { font-size: .9rem; font-weight: 700; color: var(--feed-navy); letter-spacing: 1px; margin: 0 0 10px; }
.tdn-weather-radar__embed { width: 100%; height: 320px; border: 0; border-radius: 4px; display: block; }
.tdn-weather-radar__credit { font-size: .75rem; color: #6b7280; margin: 8px 0 0; }

/* ---------- Old card-grid Weather (deprecated, kept for back-compat) ---------- */
.tdn-weather-now-block--big {
	background: var(--feed-bg);
	border: 1px solid var(--feed-line);
	padding: 22px 28px;
	text-align: center;
	margin-bottom: 22px;
}
.tdn-weather-now-block--big .tdn-weather-now-block__temp {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 4rem; color: var(--feed-navy); margin: 0; font-weight: 900;
}
.tdn-weather-now-block--big .tdn-weather-now-block__cond { font-size: 1.1rem; margin: 4px 0; }
.tdn-weather-now-block--big .tdn-weather-now-block__obs { color: #6b7280; font-size: .8rem; margin: 0; }

.tdn-weather-forecast {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 10px;
}
.tdn-weather-forecast__day {
	background: #fff; border: 1px solid var(--feed-line); padding: 12px 10px;
	text-align: center;
}
.tdn-weather-forecast__day.is-night { background: #f5f5f6; }
.tdn-weather-forecast__name { font-weight: 700; margin: 0 0 4px; color: var(--feed-navy); font-size: .9rem; }
.tdn-weather-forecast__icon { width: 64px; height: 64px; }
.tdn-weather-forecast__temp { font-family: var(--tdn-serif, Georgia, serif); font-size: 1.5rem; margin: 4px 0; color: var(--feed-navy); font-weight: 800; }
.tdn-weather-forecast__short { margin: 0; font-size: .8rem; color: #4b5563; }

/* ---------- Crime list ---------- */
.tdn-crime-list { list-style: none; padding: 0; margin: 0; }
.tdn-crime-list__item {
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--feed-line);
	margin-bottom: 8px;
	border-left: 3px solid var(--feed-red);
}
.tdn-crime-list__title {
	display: block;
	font-family: var(--tdn-serif, Georgia, serif);
	font-weight: 700;
	color: var(--feed-navy);
	font-size: 1.05rem;
	text-decoration: none;
	margin-bottom: 4px;
}
.tdn-crime-list__title:hover { text-decoration: underline; }
.tdn-crime-list__meta { margin: 0; font-size: .85rem; color: #4b5563; }
.tdn-crime-list__chip {
	display: inline-block;
	background: #fee2e2;
	color: #991b1b;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .4px;
	margin-right: 6px;
}

/* ---------- Featured row used by Culture ---------- */
.tdn-dash__featured {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-bottom: 22px;
}
@media ( max-width: 768px ) {
	.tdn-dash__featured { grid-template-columns: 1fr; }
}

/* ===================================================================
   Section landing pages — live-style restructure (Wave 2)
   =================================================================== */

/* Section default: standalone (not nested inside .tdn-container .tdn-page wrapper). */
.tdn-section { max-width: 1180px; margin: 18px auto 28px; padding: 0 24px; }

/* When the section IS the entire page body (via .tdn-page--section), don't
   double-constrain. The parent .tdn-container already centers at 1180px with
   16px padding — strip the inner .tdn-section's max-width + padding so its
   content edge aligns EXACTLY with the masthead nav above it. */
.tdn-page--section { padding-top: 0 !important; padding-bottom: 0 !important; }
.tdn-page--section .tdn-section {
	max-width: none;
	margin: 12px 0 28px;
	padding-left: 0;
	padding-right: 0;
}
.tdn-section__head {
	display: grid;
	grid-template-columns: 1fr 2fr 1fr;
	align-items: center;
	margin-bottom: 24px;
	gap: 12px;
}
.tdn-section__head--centered { display: block; text-align: center; }
.tdn-section__head--sports { display: block; border-bottom: 2px solid #000; padding-bottom: 8px; margin-bottom: 28px; }
.tdn-section__title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: clamp(2rem, 4vw, 2.6rem);
	font-weight: 900;
	color: var(--feed-navy);
	text-align: center;
	margin: 0;
}
.tdn-section__title--giant {
	font-size: clamp(2.8rem, 6vw, 4.5rem);
	letter-spacing: -1px;
	color: #000;
}
.tdn-section__subtitle { margin: 6px 0 0; color: #4b5563; font-size: .95rem; letter-spacing: 1px; font-weight: 600; text-transform: uppercase; text-align: center; }
.tdn-section__subtitle--italic { font-style: italic; text-transform: none; letter-spacing: 0; font-weight: 400; text-align: right; }
.tdn-section__subtitle--mixed { text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--feed-navy); font-size: 1rem; }
.tdn-section__pills-left, .tdn-section__pills-right { display: flex; }
.tdn-section__pills-right { justify-content: flex-end; }

/* .tdn-view-pill + .tdn-view-pills rules removed — they used 2px border,
 * .82rem font, 999px radius, uppercase text — totally different from
 * React CategoryLayout.tsx pills (5px border, 18px font, 15px radius,
 * textTransform:none, 125x40). layout.css owns these now. */

/* .tdn-juris-dropdown rules removed — they competed with layout.css's
 * strict port of Header.tsx's Autocomplete styling (3px white border,
 * white text, transparent bg, 15px radius). The strict port lives in
 * layout.css at .tdn-subnav .tdn-juris-dropdown > summary. */

/* 2-col layouts. */
.tdn-section__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.tdn-section__cols--2to1 { grid-template-columns: 2fr 1fr; }
@media ( max-width: 900px ) { .tdn-section__cols, .tdn-section__cols--2to1 { grid-template-columns: 1fr; } }

.tdn-section__block { margin-bottom: 24px; }
.tdn-section__block-head {
	display: flex; justify-content: space-between; align-items: center;
	padding-bottom: 6px;
	border-bottom: 1px solid #d9dde3;
	margin-bottom: 12px;
}
.tdn-section__block-head h2 {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.3rem; font-weight: 800;
	color: var(--feed-navy);
	margin: 0;
}
.tdn-section__viewall {
	background: var(--feed-red); color: #fff;
	padding: 4px 14px;
	border-radius: 4px;
	font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5px;
	text-decoration: none;
}
.tdn-section__viewall:hover { background: #861f2c; color: #fff; }

.tdn-section__list { list-style: none; padding: 0; margin: 0; }
.tdn-section__list li { padding: 8px 0; border-bottom: 1px solid #f1f5f9; }
.tdn-section__list li a { color: var(--feed-navy); text-decoration: none; font-weight: 600; }
.tdn-section__list li a:hover { color: var(--feed-red); }
.tdn-section__list li small { display: block; color: #6b7280; font-size: .82rem; margin-top: 2px; }
.tdn-section__empty { color: #6b7280; font-size: .9rem; font-style: italic; padding: 8px 0; }
.tdn-section__cards { display: grid; gap: 16px; }
.tdn-section__col-title {
	font-family: var(--tdn-sans, system-ui);
	font-weight: 700;
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #000;
	border-bottom: 1px solid #000;
	padding-bottom: 6px;
	margin-bottom: 14px;
}
.tdn-section__col--ledger { background: #f8fafc; padding: 18px; border-radius: 4px; }

.tdn-ledger-list { list-style: none; padding: 0; margin: 0; }
.tdn-ledger-list li { padding: 8px 0; border-bottom: 1px solid #e5e7eb; font-size: .92rem; }
.tdn-ledger-list li:last-child { border-bottom: 0; }
.tdn-ledger-list li a { color: var(--feed-navy); text-decoration: none; font-weight: 600; }

/* ---------- Civic cards (Meetings + Governments) — matches live's Local Politics layout ---------- */
.tdn-civic-cards { display: grid; gap: 14px; }

.tdn-civic-card {
	background: var(--feed-bg);
	border: 1px solid var(--feed-line);
	border-left: 4px solid var(--feed-navy);
	border-radius: 4px;
	padding: 16px 18px;
}
.tdn-civic-card--meeting { border-left-color: var(--feed-navy); }
.tdn-civic-card--gov     { border-left-color: var(--feed-red); padding: 0; overflow: hidden; }

/* Active government card (filter strip) — red full border + slight glow. */
.tdn-civic-card--gov.is-active {
	border: 2px solid var(--feed-red);
	box-shadow: 0 2px 12px rgba( 166, 25, 46, .15 );
}

/* Filter-strip variant — tighter gap between consecutive cards. */
.tdn-civic-cards--filters { gap: 10px; margin-bottom: 18px; }

.tdn-civic-card__chips { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; }
.tdn-civic-card__chip {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .3px;
}
.tdn-civic-card__chip--type  { background: #e5e7eb; color: #1f2937; }
.tdn-civic-card__chip--juris { background: #fff; border: 1px solid var(--feed-navy); color: var(--feed-navy); }

.tdn-civic-card__title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--feed-navy);
	margin: 0 0 6px;
}
.tdn-civic-card__title a { color: var(--feed-navy); text-decoration: none; }
.tdn-civic-card__meta { font-size: .85rem; color: #4b5563; margin: 0 0 12px; }
.tdn-civic-card__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.tdn-civic-card__btn {
	display: inline-block;
	padding: 6px 14px;
	font-size: .8rem;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
	border: 1px solid transparent;
}
.tdn-civic-card__btn--primary { background: var(--feed-navy); color: #fff; }
.tdn-civic-card__btn--primary:hover { background: #001838; color: #fff; }
.tdn-civic-card__btn--ghost { background: #fff; border-color: var(--feed-line); color: var(--feed-navy); }
.tdn-civic-card__btn--ghost:hover { background: var(--feed-bg); }
.tdn-civic-card__btn--video { background: #fff; border-color: #c084fc; color: #7e22ce; }
.tdn-civic-card__btn--video:hover { background: #faf5ff; }

/* Government cards: image left + facts right. */
.tdn-civic-card--gov .tdn-civic-card__row { display: grid; grid-template-columns: 140px 1fr; gap: 16px; align-items: stretch; }
.tdn-civic-card--gov .tdn-civic-card__media {
	/* Navy → red gradient as a brand-aligned fallback when no photo is set. */
	background:
		linear-gradient( 135deg, var(--feed-navy) 0%, #1d3a6e 60%, var(--feed-red) 100% );
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 130px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-family: var(--tdn-serif, Georgia, serif);
	font-weight: 800;
	font-size: 2.2rem;
	letter-spacing: 1px;
}
/* The initial only shows when no background-image is set inline. */
.tdn-civic-card--gov .tdn-civic-card__media[style*="background-image"]::after { display: none; }
.tdn-civic-card--gov .tdn-civic-card__media::after {
	content: attr(data-initial);
	display: inline-block;
	text-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.tdn-civic-card--gov .tdn-civic-card__body { padding: 14px 18px 14px 0; }
.tdn-civic-card__sub { font-size: .82rem; color: #6b7280; margin: 0 0 8px; }
.tdn-civic-card__facts {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 12px;
	margin: 0;
	font-size: .85rem;
}
.tdn-civic-card__facts dt { color: #6b7280; font-weight: 500; }
.tdn-civic-card__facts dd { margin: 0; color: var(--feed-navy); font-weight: 700; }

/* State/National FILTERS bar. */
.tdn-section__filters {
	display: flex; align-items: center; gap: 12px;
	background: var(--feed-bg);
	border: 1px solid var(--feed-line);
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 20px;
}
.tdn-section__filters-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: var(--feed-navy); }
.tdn-section__filter-select {
	padding: 6px 12px;
	border: 1px solid var(--feed-line);
	border-radius: 4px;
	background: #fff;
	font-size: .88rem;
}

/* Bigger "The Record" / "Analysis" pill toggle (matches live size). */
/* .tdn-view-pill + .tdn-juris-dropdown overrides removed — they used
 * !important to force 2px border + .85rem font + red-text-on-white,
 * which contradicts React CategoryLayout.tsx (5px border, 18px font)
 * and Header.tsx (3px white border, white text). layout.css owns these. */

/* "Local Politics" giant title centered. */
.tdn-section--politics .tdn-section__title,
.tdn-section--crime    .tdn-section__title {
	font-size: clamp(2.2rem, 5vw, 3.2rem);
	font-weight: 900;
	color: #000;
	letter-spacing: -.5px;
}

/* Page-section wrapper — remove default page padding so shortcode controls it. */
.tdn-page--section { padding: 0 !important; }
.tdn-page--section .tdn-page__content { margin: 0; }

/* Crime record cards. */
.tdn-crime-records { display: grid; gap: 16px; }
.tdn-crime-record { display: grid; grid-template-columns: 140px 1fr; gap: 16px; background: var(--feed-bg); border: 1px solid var(--feed-line); border-radius: 4px; overflow: hidden; }
.tdn-crime-record__media { background: #e5e7eb; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; color: #6b7280; min-height: 120px; padding: 12px; text-align: center; }
.tdn-crime-record__body { padding: 14px 16px; }
.tdn-crime-record__title { font-family: var(--tdn-serif, Georgia, serif); font-size: 1.05rem; margin: 0 0 6px; }
.tdn-crime-record__title a { color: var(--feed-navy); text-decoration: none; }
.tdn-crime-record__meta { font-size: .82rem; color: #6b7280; margin: 0 0 8px; }
.tdn-crime-record__chips { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; }
.tdn-crime-record__chip { background: #fee2e2; color: #991b1b; padding: 2px 10px; border-radius: 999px; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.tdn-crime-record__chip--status { background: #dbeafe; color: #1e40af; }
.tdn-crime-record__excerpt { font-size: .88rem; color: #1f2937; margin: 0; line-height: 1.5; }

/* Sports leagues grid. */
.tdn-leagues-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
}
.tdn-league-card {
	display: grid;
	grid-template-columns: 36px 1fr 24px;
	align-items: center;
	gap: 12px;
	background: var(--feed-bg);
	border: 1px solid var(--feed-line);
	padding: 14px 16px;
	border-radius: 4px;
	text-decoration: none;
	color: var(--feed-navy);
}
.tdn-league-card:hover { background: #fff; box-shadow: 0 2px 8px rgba(0,40,85,.08); }
.tdn-league-card__logo {
	width: 36px; height: 36px;
	background: var(--feed-navy); color: #fff;
	border-radius: 6px;
	display: grid; place-items: center;
	font-weight: 800;
}
.tdn-league-card__name { font-weight: 800; font-size: 1rem; letter-spacing: .3px; }
.tdn-league-card__arrow { font-size: 1.2rem; color: #6b7280; }

.tdn-section__block-subhead { font-size: .9rem; font-weight: 700; text-transform: uppercase; color: var(--feed-navy); margin: 0 0 6px; }
.tdn-section__block--bordered { background: var(--feed-bg); border: 1px solid var(--feed-line); padding: 14px; border-radius: 4px; margin-bottom: 12px; text-align: center; }
.tdn-show-myteams { display: flex; align-items: center; gap: 10px; padding: 8px 14px; background: #fff; border: 1px solid var(--feed-line); border-radius: 999px; font-size: .85rem; margin-bottom: 14px; }
.tdn-show-myteams__settings { color: #6b7280; cursor: pointer; }

/* Polling archive. */
.tdn-polling__search { margin: 18px auto; max-width: 720px; }
.tdn-polling__search input {
	width: 100%; box-sizing: border-box;
	padding: 12px 14px;
	border: 2px solid var(--feed-line);
	border-radius: 4px;
	font-size: 1rem;
}
.tdn-polling__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 720px; margin: 0 auto; }
@media ( max-width: 640px ) { .tdn-polling__cards { grid-template-columns: 1fr; } }
/* .tdn-poll-card* rules removed — they used #fefce8 (mustard yellow) + 4px radius
 * + 16px padding which contradicts React PollCard.tsx (#fffdf0 newsprint cream
 * + box-shadow 2px 3px 5px rgba(0,0,0,0.1) + 1px solid #e0ddd0 + 24px padding +
 * Courier New monospace). Strict port lives in layout.css:1704+. */

.tdn-polling__share { max-width: 720px; margin: 28px auto; text-align: center; padding: 20px; background: var(--feed-bg); border-radius: 4px; }
.tdn-polling__share p { margin: 0 0 12px; font-weight: 600; }
.tdn-polling__share-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.tdn-btn--share { background: var(--feed-navy); color: #fff; padding: 10px 20px; border: 0; border-radius: 4px; font-size: .82rem; font-weight: 700; letter-spacing: .5px; text-decoration: none; cursor: pointer; font-family: inherit; }
.tdn-btn--share:hover { background: #001838; color: #fff; }

/* Financial paywall card — matches live's "Premium Access Required" gate. */
.tdn-financial-paywall {
	max-width: 640px;
	margin: 48px auto;
	padding: 48px 36px;
	background: #fff;
	border: 1px solid var(--feed-red);
	border-radius: 6px;
	box-shadow: 0 4px 16px rgba(0,0,0,.08);
	text-align: center;
}
.tdn-financial-paywall__title {
	font-family: var(--tdn-serif, "Times New Roman", Georgia, serif);
	font-size: 2rem;
	font-weight: 900;
	color: var(--feed-navy);
	margin: 0 0 16px;
}
.tdn-financial-paywall__copy {
	color: #4b5563;
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 28px;
}
.tdn-financial-paywall__cta {
	display: inline-block;
	background: var(--feed-navy);
	color: #fff;
	padding: 12px 28px;
	border-radius: 4px;
	font-weight: 700;
	font-size: .92rem;
	letter-spacing: .5px;
	text-transform: uppercase;
	text-decoration: none;
}
.tdn-financial-paywall__cta:hover { background: #001838; color: #fff; }

/* ---------- AI summary on article pages ---------- */
.tdn-ai-summary {
	background: #fffbeb;
	border-left: 4px solid #f59e0b;
	padding: 14px 18px;
	margin: 22px 0;
}
.tdn-ai-summary__label {
	margin: 0 0 6px; font-size: .76rem; text-transform: uppercase;
	letter-spacing: .4px; color: #92400e; font-weight: 700;
}
.tdn-ai-summary__text { margin: 0 0 8px; font-style: italic; color: #1f2937; line-height: 1.5; }
.tdn-ai-summary__bullets { margin: 0; padding-left: 20px; font-size: .92rem; color: #1f2937; }
.tdn-ai-summary__bullets li { margin-bottom: 4px; }

/* ---------- Mobile ---------- */
@media ( max-width: 768px ) {
	.tdn-dash__cols { grid-template-columns: 1fr; }
	.tdn-weather-now-block--big .tdn-weather-now-block__temp { font-size: 3rem; }
}

/* =====================================================================
 * Section Stories cards — LIGHT theme matching live: photo on LEFT,
 * body on RIGHT (serif title, red byline, gray excerpt). 1px border,
 * subtle shadow on hover.
 * ===================================================================== */
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 0;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	overflow: hidden;
	padding: 0;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__media,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__media,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__media,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__media {
	display: block;
	min-height: 180px;
	background: #f1f5f9;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__img,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__img,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__img,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__body,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__body,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__body,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__body {
	padding: 18px 20px;
	display: flex; flex-direction: column; gap: 6px;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__title,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__title,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__title,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.2rem;
	line-height: 1.2;
	font-weight: 800;
	margin: 0;
	color: #000;
	text-transform: uppercase;
	letter-spacing: -.2px;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__title a,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__title a,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__title a,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__title a {
	color: #000; text-decoration: none;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__kicker,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__kicker,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__kicker,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__kicker {
	display: none;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__byline,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__byline,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__byline,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__byline {
	color: var(--feed-red);
	font-size: .82rem;
	margin: 4px 0 0;
	font-weight: 700;
}
.tdn-section--politics .tdn-section__col--right .tdn-section__cards .tdn-card__excerpt,
.tdn-section--crime    .tdn-section__col--right .tdn-section__cards .tdn-card__excerpt,
.tdn-section--sports   .tdn-section__col--right .tdn-section__cards .tdn-card__excerpt,
.tdn-section--culture  .tdn-section__col--right .tdn-section__cards .tdn-card__excerpt {
	color: #6b7280;
	font-size: .88rem;
	margin: 6px 0 0;
	line-height: 1.45;
}

/* Editorial hero card — single full-width card with image above, text below. */
.tdn-editorial-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	overflow: hidden;
}
.tdn-editorial-card__media { display: block; }
.tdn-editorial-card__media img { width: 100%; height: 260px; object-fit: cover; display: block; }
.tdn-editorial-card__body { padding: 22px 24px; }
.tdn-editorial-card__title {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: 1.5rem;
	font-weight: 800;
	color: #000;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: -.3px;
	line-height: 1.15;
}
.tdn-editorial-card__title a { color: #000; text-decoration: none; }
.tdn-editorial-card__byline { color: var(--feed-red); font-weight: 700; font-size: .9rem; margin: 0 0 8px; }
.tdn-editorial-card__excerpt { color: #4b5563; font-size: .92rem; line-height: 1.5; margin: 0; }

/* Inline YouTube embed inside a meeting card. */
.tdn-civic-card__embed {
	margin: 12px 0;
	position: relative;
	padding-bottom: 56.25%;
	background: #000;
	border-radius: 4px;
	overflow: hidden;
}
.tdn-civic-card__embed iframe {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}

/* Meetings header — title + dropdown + view-all on a single row. */
.tdn-section__block-head--meetings { gap: 12px; }
.tdn-section__block-head--meetings select { margin-left: auto; }
.tdn-section__block-head--meetings .tdn-section__viewall { margin-left: 12px; }

/* Section headers use serif uppercase to match live. */
.tdn-section__block-head h2 {
	font-family: var(--tdn-serif, Georgia, serif);
	font-weight: 800;
	font-size: 1.5rem;
	color: #000;
	text-transform: none;
	letter-spacing: -.2px;
}
.tdn-section__block-head { border-bottom: 1px solid #d9dde3; padding-bottom: 8px; margin-bottom: 14px; }

/* Refresh-style pill (right side of head). */
.tdn-section__refresh {
	display: inline-block;
	background: var(--feed-red); color: #fff;
	border: 0;
	padding: 6px 16px;
	border-radius: 6px;
	font-size: .78rem;
	font-weight: 700;
	text-transform: capitalize;
	cursor: pointer;
}

/* Bottom trailing sections (Governments / People) that live shows full-width
 * with just a heading + red View All pill aligned right. */
.tdn-section__bottom {
	margin-top: 28px;
	display: grid;
	gap: 16px;
}
.tdn-section__bottom .tdn-section__block-head { border-bottom: 1px solid #d9dde3; }


/* =====================================================================
 * Sports scoreboard — matches live's /sports view.
 * Header row: tier emblem (left) + ALL/PRO/SEMI/COLLEGE/HS pills (center) + date picker (right).
 * Left col: "9 GAMES • PRO" caption + game rows (FINAL chip + teams + SHOW).
 * Right col: THE PRESS BOX (red underline header).
 * ===================================================================== */
.tdn-section--scoreboard { padding-top: 0; }
.tdn-scoreboard__head {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	border-bottom: 1px solid #d9dde3;
	padding: 8px 0 14px;
	margin-bottom: 18px;
}
.tdn-scoreboard__tier-logo {
	display: flex; align-items: center; gap: 10px;
}
.tdn-scoreboard__tier-emblem {
	display: inline-flex; width: 40px; height: 40px; border-radius: 50%;
	background: var(--feed-navy); color: #fff;
	align-items: center; justify-content: center; font-size: 1.2rem;
}
.tdn-scoreboard__tier-label {
	font-family: var(--tdn-sans, system-ui);
	font-size: .82rem; font-weight: 700; color: #1f2937;
	text-transform: uppercase; letter-spacing: 1px;
}
.tdn-scoreboard__pills {
	display: flex; gap: 8px; justify-content: center; flex-wrap: wrap;
}
.tdn-scoreboard__pill {
	display: inline-flex; align-items: center;
	background: #f1f5f9; color: #1f2937;
	border-radius: 999px;
	padding: 6px 18px;
	font-size: .8rem; font-weight: 700; letter-spacing: .5px;
	text-decoration: none;
}
.tdn-scoreboard__pill.is-active { background: #1f2937; color: #fff; }
.tdn-scoreboard__pill:hover { background: #e2e8f0; color: #000; }
.tdn-scoreboard__pill.is-active:hover { background: #111827; color: #fff; }
.tdn-scoreboard__date {
	display: flex; align-items: center; gap: 10px;
}
.tdn-scoreboard__date-nav {
	background: transparent; border: 0; cursor: pointer;
	font-size: 1.2rem; color: #6b7280; padding: 4px 8px;
}
.tdn-scoreboard__date-label {
	text-align: right; line-height: 1.1;
}
.tdn-scoreboard__date-day {
	display: block;
	font-family: var(--tdn-serif, Georgia, serif);
	font-weight: 800; color: var(--feed-red);
	font-size: 1.05rem; letter-spacing: 1px;
}
.tdn-scoreboard__date-sub {
	display: block;
	font-size: .68rem; color: #6b7280; font-weight: 700; letter-spacing: 1px;
}

.tdn-scoreboard__meta {
	display: flex; justify-content: space-between; align-items: center;
	margin-bottom: 12px;
}
.tdn-scoreboard__count {
	font-size: .78rem; font-weight: 700; color: #6b7280; letter-spacing: 1px;
}
.tdn-scoreboard__view-all {
	font-size: .78rem; font-weight: 700; color: var(--feed-red); text-transform: uppercase;
	letter-spacing: .5px; text-decoration: none;
}
.tdn-scoreboard__view-all:hover { color: #861f2c; }

.tdn-scoreboard__games {
	list-style: none; padding: 0; margin: 0;
	display: grid; gap: 0;
}
.tdn-game {
	display: grid;
	grid-template-columns: 80px 1fr 90px;
	align-items: center;
	gap: 16px;
	padding: 14px 16px;
	background: #fff;
	border-top: 1px solid #e5e7eb;
}
.tdn-game:last-child { border-bottom: 1px solid #e5e7eb; }
.tdn-game__state {
	background: #f1f5f9;
	color: #1f2937;
	font-size: .72rem; font-weight: 800; letter-spacing: 1px;
	padding: 4px 12px;
	border-radius: 4px;
	text-align: center;
}
.tdn-game__teams {
	display: grid; gap: 4px;
}
.tdn-game__team {
	display: flex; align-items: center; gap: 12px;
	font-family: var(--tdn-sans, system-ui);
	color: #1f2937;
	font-size: .92rem; font-weight: 600;
}
.tdn-game__logo {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px;
	background: var(--feed-navy); color: #fff;
	border-radius: 50%;
	font-size: .65rem; font-weight: 800;
	letter-spacing: .3px;
}
.tdn-game__show {
	background: #f1f5f9; color: #1f2937;
	border: 0;
	padding: 6px 18px;
	border-radius: 4px;
	font-size: .72rem; font-weight: 800; letter-spacing: 1px;
	cursor: pointer;
}
.tdn-game__show:hover { background: #e2e8f0; }

.tdn-section__col-title--press {
	color: var(--feed-red);
	border-bottom-color: var(--feed-red);
}


/* Culture page — live uses BLACK column-titles + gray uppercase subtitle. */
.tdn-section--culture .tdn-section__subtitle--mixed {
	color: #6b7280;
	font-style: normal;
	letter-spacing: 1px;
	font-size: .85rem;
	text-transform: uppercase;
}
.tdn-section--culture .tdn-section__col-title { color: #000; border-bottom-color: #000; }


/* =====================================================================
 * Jurisdiction dropdown rendered INSIDE the sub-nav bar (white pill
 * on the section-color shelf, right-aligned).
 * ===================================================================== */
/* .tdn-subnav .tdn-juris-dropdown rules removed — they used
 * background:#fff + color:var(--tab-color) which rendered the dropdown
 * as a white pill with section-color text. React Header.tsx:526-560
 * styles the Autocomplete with TRANSPARENT bg + WHITE 3px border +
 * WHITE text (the hover state inverts to white bg + section color text).
 * layout.css owns this now. */

/* Tighten Record/Analysis pill group on the left + small gap between the two pills. */
.tdn-view-pills { display: inline-flex; gap: 8px; }

/* =====================================================================
 * Shop — brand-styled WooCommerce archive matching live's /shop.
 * Hero banner is injected via a CSS::before on .woocommerce.archive header,
 * but cleaner: hook a small banner into the_archive_title via PHP.
 * Card style: thin border, bold black title, red price, navy "View Details".
 * ===================================================================== */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	padding: 0;
}
.woocommerce ul.products li.product {
	margin: 0;
	width: auto;
	float: none;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	padding: 18px;
	transition: box-shadow .2s;
}
.woocommerce ul.products li.product:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tdn-serif, Georgia, serif) !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	color: var(--tdn-navy, #002868) !important;
	padding: 12px 0 4px !important;
	line-height: 1.3 !important;
}
.woocommerce ul.products li.product .price {
	color: var(--tdn-red, #A6192E) !important;
	font-weight: 800 !important;
	font-size: 1.05rem !important;
	margin-bottom: 10px !important;
}
.woocommerce ul.products li.product img {
	border-radius: 4px;
	background: #f8fafc;
}
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button {
	background: #fff !important;
	color: var(--tdn-red, #A6192E) !important;
	border: 2px solid var(--tdn-red, #A6192E) !important;
	border-radius: 999px !important;
	padding: 8px 22px !important;
	font-weight: 800 !important;
	letter-spacing: .5px !important;
	text-transform: uppercase !important;
	font-size: .78rem !important;
}
.woocommerce ul.products li.product a.button:hover {
	background: var(--tdn-red, #A6192E) !important;
	color: #fff !important;
}

/* Hero banner above the shop grid. */
.tdn-shop-hero {
	background: var(--tdn-navy, #002868);
	color: #fff;
	padding: 48px 24px;
	text-align: center;
	margin: 0 0 32px;
	border-radius: 6px;
}
.tdn-shop-hero h1 {
	font-family: var(--tdn-serif, Georgia, serif);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	margin: 0 0 12px;
	color: #fff;
}
.tdn-shop-hero p { margin: 0; color: rgba(255,255,255,.85); font-size: .95rem; max-width: 640px; margin: 0 auto; }

/* Hide WC's default page title — our hero replaces it. */
.woocommerce-products-header { display: none; }

/* ============================================================
   /weather/forecast — strict port from app/weather/forecast/page.tsx
   Read .tsx end-to-end. Every value below traces to an sx={{}} prop.
   ============================================================ */

/* React: outer <Box sx={{ width:'100%', minHeight:'100vh', bgcolor:'white' }}> */
.tdn-weather {
	width: 100%;
	min-height: 100vh;
	background: #fff;
}
/* React: <Container maxWidth="lg" sx={{ mt:'25px', mb:8 }}> */
.tdn-weather__shell {
	max-width: 1200px;
	margin: 25px auto 0;
	padding: 0 16px 64px;          /* mb:8 = 64px translates to bottom padding here */
}

/* React: <Box sx={{borderBottom:'4px solid #0284c7', mb:4, pb:2}}>
            <Typography h3 var(--font-serif) bold #0284c7 uppercase>Local Weather
            <Typography h6 text.secondary>{county} */
.tdn-weather__head {
	border-bottom: 4px solid #0284c7;
	margin-bottom: 32px;
	padding-bottom: 16px;
}
.tdn-page__content .tdn-weather__title,
.tdn-weather .tdn-weather__title {
	margin: 0 !important;
	font-family: var(--font-serif) !important;  /* React sx fontFamily literal */
	font-weight: 700 !important;
	font-size: 3rem !important;                   /* MUI h3 */
	line-height: 1.167 !important;
	color: #0284c7 !important;
	text-transform: uppercase !important;
}
.tdn-page__content .tdn-weather__county,
.tdn-weather .tdn-weather__county {
	margin: 0 !important;
	font-family: var(--font-serif) !important;  /* theme.h6 */
	font-weight: 600 !important;
	font-size: 1.25rem !important;
	line-height: 1.6 !important;
	color: #6c757d !important;                    /* text.secondary */
}

/* React: <Grid container spacing={4}> with md=8 + md=4 columns */
.tdn-weather__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
@media (min-width: 900px) {
	.tdn-weather__grid { grid-template-columns: 8fr 4fr; }
}

/* Current Conditions — React: <Paper variant="outlined" sx={{p:4, mb:4, bgcolor:'#f8fafc', borderRadius:2}}>
   variant=outlined = 1px solid rgba(0,0,0,0.12). p:4 = 32px. mb:4 = 32px. borderRadius 2 = 8px. */
.tdn-weather-current {
	padding: 32px;
	margin-bottom: 32px;
	background: #f8fafc;
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: 8px;
}
/* <Typography variant="overline" color="text.secondary" fontWeight="bold">Current Conditions
   variant overline = 0.75rem, line-height 2.66, uppercase, letter-spacing 0.08333em */
.tdn-weather-current__label {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 2.66;
	letter-spacing: 0.08333em;
	text-transform: uppercase;
	color: #6c757d;
}
/* <Box sx={{display:'flex', alignItems:'center', mt:2}}> */
.tdn-weather-current__row {
	display: flex;
	align-items: center;
	margin-top: 16px;
}
/* <Typography h1 fontWeight:900 var(--font-sans) #0f172a mr:4 = 32px>
   h1 = 6rem (96px), line-height 1.167. */
.tdn-weather-current__temp {
	font-family: var(--font-sans);   /* React sx fontFamily override */
	font-size: 6rem;
	font-weight: 900;
	line-height: 1.167;
	color: #0f172a;
	margin-right: 32px;
}
/* <Typography h5 bold #334155>
   h5 = 1.5rem, line-height 1.334. theme.h5 family = var(--font-serif). */
.tdn-page__content .tdn-weather-current__cond,
.tdn-weather-current__cond {
	font-family: var(--font-serif);
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.334;
	color: #334155;
}

/* React: <Box sx={{borderTop:'2px solid black', pt:2, mb:4}}>
            <Typography h5 bold var(--font-sans)>EXTENDED OUTLOOK */
.tdn-weather-outlook__head {
	border-top: 2px solid #000;
	padding-top: 16px;
	margin-bottom: 32px;
}
.tdn-page__content .tdn-weather-outlook__title,
.tdn-weather-outlook__title {
	margin: 0 !important;
	font-family: var(--font-sans) !important;   /* React sx fontFamily override */
	font-weight: 700 !important;
	font-size: 1.5rem !important;
	line-height: 1.334 !important;
	color: #000 !important;
}

/* <Stack spacing={2} divider={<Divider/>}> = gap 16px between rows with 1px divider. */
.tdn-weather-outlook {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.tdn-weather-outlook__divider {
	margin: 0;
	border: 0;
	border-top: 1px solid rgba(0,0,0,0.12);
}
/* <Box sx={{display:'flex', gap:3, alignItems:'center', py:1}}>
   gap:3 = 24px. py:1 = 8px top/bottom. */
.tdn-weather-outlook__row {
	display: flex;
	gap: 24px;
	align-items: center;
	padding: 8px 0;
}
/* <Box sx={{flexShrink:0, width:120}}><Typography subtitle1 bold>{name} */
.tdn-weather-outlook__name {
	flex-shrink: 0;
	width: 120px;
	font-family: var(--font-sans);
	font-size: 1rem;                /* subtitle1 */
	font-weight: 700;
	line-height: 1.75;
	color: #000;
}
/* <Box sx={{flexShrink:0, width:80, textAlign:'center'}}>
   <Typography h5 bold color={isDaytime ? '#ef4444' : '#3b82f6'}>{temp}°
   h5 = 1.5rem. red day / blue night. */
.tdn-weather-outlook__temp {
	flex-shrink: 0;
	width: 80px;
	text-align: center;
	font-family: var(--font-serif);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.334;
}
.tdn-weather-outlook__temp.is-day   { color: #ef4444; }
.tdn-weather-outlook__temp.is-night { color: #3b82f6; }
/* <Box sx={{flex:1}}><Typography body1 text.secondary>{forecast} */
.tdn-weather-outlook__desc {
	flex: 1 1 0;
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.5;
	color: #6c757d;
}

/* Sidebar Radar — React: <Box sx={{bgcolor:'#FFFDF0', p:3, border:'1px solid #e0e0e0', height:'100%'}}>
   p:3 = 24px. */
.tdn-weather-radar {
	height: 100%;
	padding: 24px;
	background: #FFFDF0;
	border: 1px solid #e0e0e0;
}
/* <Box sx={{borderBottom:'2px solid black', pb:1, mb:3}}>
            <Typography h6 bold var(--font-sans)>REGIONAL RADAR */
.tdn-weather-radar__head {
	border-bottom: 2px solid #000;
	padding-bottom: 8px;             /* pb:1 */
	margin-bottom: 24px;             /* mb:3 */
}
.tdn-page__content .tdn-weather-radar__title,
.tdn-weather-radar__title {
	margin: 0 !important;
	font-family: var(--font-sans) !important;
	font-weight: 700 !important;
	font-size: 1.25rem !important;
	line-height: 1.6 !important;
	color: #000 !important;
}
/* <Box sx={{width:'100%', height:350, bgcolor:'#e2e8f0', mb:3, borderRadius:2, overflow:'hidden'}}><iframe> */
.tdn-weather-radar__frame {
	width: 100%;
	height: 350px;
	margin-bottom: 24px;
	background: #e2e8f0;
	border-radius: 8px;
	overflow: hidden;
}
.tdn-weather-radar__frame iframe {
	width: 100%; height: 100%; border: 0; display: block;
}
/* <Typography body2 text.secondary italic> */
.tdn-weather-radar__credit {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	line-height: 1.43;
	color: #6c757d;
	font-style: italic;
}

/* Lift WP wrappers for full-bleed on /weather */
.tdn-container:has(.tdn-weather),
.tdn-page__content:has(.tdn-weather) {
	max-width: 100% !important;
	padding: 0 !important;
}
.tdn-page:has(.tdn-weather) { padding-block: 0; }

/* ============================================================
   /financial — strict port from app/financial/page.tsx +
                MarketsTab.tsx + EconomyTab.tsx + TaxTab.tsx
   React uses an inline globalTheme const (NOT theme.ts):
     bg:           #f8fafc
     surface:      #ffffff
     textPrimary:  #002855
     textSecondary:#64748b      (NOT the theme's #6c757d)
     accent:       #166534      (green for positive)
     danger:       #a42a38      (red for negative)
   Header: <Typography h3 var(--font-serif) bold #002855 mb:4>Financial Dashboard
   2-col grid: <Grid container spacing={4}> with md=8 left + md=4 right.
   ============================================================ */

/* Outer Box bgcolor #f8fafc minHeight 100vh pb:8 */
.tdn-dash--financial {
	background: #f8fafc;
	min-height: 100vh;
	color: #002855;
	padding-bottom: 64px;
}
/* React: <Container maxWidth="xl" sx={{mt:4}}> */
.tdn-dash--financial .tdn-dash__head {
	max-width: 1536px;                 /* maxWidth=xl */
	margin: 0 auto;
	padding: 32px 16px 0;
}

/* <Typography h3 var(--font-serif) bold #002855 mb:4 = 32px>Financial Dashboard */
.tdn-page__content .tdn-dash__title--xl,
.tdn-dash__title--xl {
	margin: 0 0 32px !important;
	font-family: var(--font-serif) !important;
	font-weight: 700 !important;
	font-size: 3rem !important;          /* MUI h3 */
	line-height: 1.167 !important;
	color: #002855 !important;
}

/* React 2-col grid container spacing 4 → 32px gap */
.tdn-dash--financial .tdn-grid--8-4 {
	max-width: 1536px;
	margin: 0 auto;
	padding: 0 16px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
@media (min-width: 900px) {
	.tdn-dash--financial .tdn-grid--8-4 { grid-template-columns: 8fr 4fr; }
}

/* Each <Box id="markets/economy/tax"> wraps content in a panel.
   We use the same .tdn-dash__panel as before with React-faithful styling:
   background white + 1px solid #e2e8f0 + shadow1 + borderRadius 8px (=2*4). */
.tdn-dash--financial .tdn-dash__panel {
	background: #ffffff;                /* surface */
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 24px;
	margin-bottom: 24px;
	box-shadow:
		0 2px 1px -1px rgba(0,0,0,0.2),
		0 1px 1px 0   rgba(0,0,0,0.14),
		0 1px 3px 0   rgba(0,0,0,0.12);
}
/* Panel titles — h6 weight bold Georgia color textPrimary. */
.tdn-page__content .tdn-dash--financial .tdn-dash__panel-title,
.tdn-dash--financial .tdn-dash__panel-title {
	margin: 0 0 16px !important;
	font-family: Georgia, serif !important;
	font-weight: 700 !important;
	font-size: 1.25rem !important;        /* MUI h6 */
	line-height: 1.6 !important;
	color: #002855 !important;
}
.tdn-dash--financial .tdn-dash__panel-sub {
	margin: 0 0 16px;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	line-height: 1.43;
	color: #64748b;                       /* textSecondary */
}

/* "Economic Editorials" placeholder — height 150px bg #f1f5f9 center "COMING SOON". */
.tdn-dash--financial .tdn-dash__coming-soon {
	height: 150px;
	background: #f1f5f9;
	border-radius: 4px;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 700;
	color: #94a3b8;
	letter-spacing: 0.1em;
}

/* Premium Access Required paywall (when tier < 3).
   React: <Card sx={{p:6, textAlign:'center', bgcolor:surface, color:textPrimary,
                       border:1px solid danger, borderRadius:2, boxShadow:3}}>
            <Typography h4 bold Georgia textPrimary>Premium Access Required
            <Typography body1 sans textSecondary>...
            <Button contained sx={{bgcolor:danger, fontWeight:bold}}>UPGRADE SUBSCRIPTION */
.tdn-financial-paywall {
	background: #f8fafc;
	min-height: 100vh;
	display: flex; align-items: center; justify-content: center;
	padding: 64px 16px;
}
.tdn-financial-paywall__card {
	max-width: 600px;
	width: 100%;
	padding: 48px;                        /* p:6 */
	text-align: center;
	background: #ffffff;
	color: #002855;
	border: 1px solid #a42a38;
	border-radius: 8px;
	box-shadow:
		0 3px 3px -2px rgba(0,0,0,0.2),
		0 3px 4px 0   rgba(0,0,0,0.14),
		0 1px 8px 0   rgba(0,0,0,0.12);    /* elevation 3 */
}
.tdn-page__content .tdn-financial-paywall__title,
.tdn-financial-paywall__title {
	margin: 0 0 0.74375rem !important;
	font-family: Georgia, serif !important;
	font-weight: 700 !important;
	font-size: 2.125rem !important;       /* MUI h4 */
	line-height: 1.235 !important;
	color: #002855 !important;
}
.tdn-financial-paywall__body {
	margin: 0 0 32px;
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.5;
	color: #64748b;
}
.tdn-financial-paywall__cta {
	display: inline-block;
	padding: 6px 16px;
	min-height: 36.5px;
	background: #a42a38;
	color: #fff;
	border: 0;
	border-radius: 4px;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02857em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow:
		0 3px 1px -2px rgba(0,0,0,0.2),
		0 2px 2px 0   rgba(0,0,0,0.14),
		0 1px 5px 0   rgba(0,0,0,0.12);
}
.tdn-financial-paywall__cta:hover { background: #8b0000; }

/* Lift WP wrappers for full-bleed on /financial */
.tdn-container:has(.tdn-dash--financial),
.tdn-container:has(.tdn-financial-paywall),
.tdn-page__content:has(.tdn-dash--financial),
.tdn-page__content:has(.tdn-financial-paywall) {
	max-width: 100% !important;
	padding: 0 !important;
}
.tdn-page:has(.tdn-dash--financial),
.tdn-page:has(.tdn-financial-paywall) { padding-block: 0; }
