/* TN Data: approved design (Direction A, Tamil Nadu palette).
   Fonts: Source Serif 4 (headings), Source Sans 3 (body), Noto Tamil fallbacks.
   All rules are scoped under .tn-data so they do not touch the theme. */
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&family=Source+Serif+4:wght@600;700&display=swap');

.tn-data {
	--tn-green: #0b5d66;
	--tn-green-dark: #073b41;
	--tn-green-hover: #08454b;
	--tn-gold: #f0c000;
	--tn-gold-fill: #e3b100;
	--tn-blue: #4379b7;
	--tn-maroon: #963b3b;
	--tn-ink: #212529;
	--tn-body: #343a40;
	--tn-muted: #495057;
	--tn-faint: #6c757d;
	--tn-tint: #eef6f6;
	--tn-line: #d3e3e4;
	--tn-sans: 'Source Sans 3', 'Noto Sans Tamil', system-ui, sans-serif;
	--tn-serif: 'Source Serif 4', 'Noto Serif Tamil', Georgia, serif;
	font-family: var(--tn-sans);
	color: var(--tn-ink);
	line-height: 1.5;
	box-sizing: border-box;
}
.tn-data *, .tn-data *::before, .tn-data *::after { box-sizing: border-box; }
.tn-data a { color: var(--tn-green); }
.tn-data a:hover { color: var(--tn-green-hover); }
.tn-data code { font-size: 0.9em; }

.tn-notice { padding: 12px 16px; border: 2px solid var(--tn-maroon); background: #fff; }

/* Wide mode (default for [tn_page]): breaks out of a narrow theme content column and centres the page,
   up to 1200px. Use width="normal" to keep the theme's own column. If your theme clips overflow, set the
   page to the theme's Full width template instead. */
.tn-page.tn-wide {
	width: min(1200px, calc(100vw - 32px));
	max-width: none;
	margin-left: calc(50% - min(1200px, calc(100vw - 32px)) / 2);
	margin-right: 0;
}

/* Hero and tiles */
.tn-page .tn-hero { padding-bottom: 8px; }
.tn-title { font-family: var(--tn-serif); font-size: clamp(2rem, 4.5vw, 3rem); font-weight: 700; line-height: 1.1; color: var(--tn-green-dark); margin: 0 0 12px; }
.tn-intro { font-size: 1.2rem; line-height: 1.5; max-width: 52rem; margin: 0 0 24px; color: var(--tn-body); }
.tn-kpis { display: flex; flex-wrap: wrap; gap: 16px; }
.tn-kpi { flex: 1 1 220px; border-top: 4px solid var(--tn-green); background: var(--tn-tint); padding: 16px 18px 18px; }
.tn-kpi.tn-k1 { border-top-color: var(--tn-gold-fill); }
.tn-kpi.tn-k2 { border-top-color: var(--tn-blue); }
.tn-kpi.tn-kd { border-top-color: var(--tn-maroon); }
.tn-kl { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.03em; color: var(--tn-muted); }
.tn-kv { font-size: 2.2rem; font-weight: 700; line-height: 1.1; margin-top: 6px; color: var(--tn-green-dark); }
.tn-ks { font-size: 0.85rem; color: var(--tn-muted); margin-top: 4px; }

/* Sections and headings */
.tn-section { margin-top: 52px; }
.tn-h2 { font-family: var(--tn-serif); font-size: 1.6rem; font-weight: 700; line-height: 1.25; margin: 0; color: var(--tn-green-dark); }
.tn-h3 { font-family: var(--tn-serif); font-size: 1.25rem; font-weight: 700; margin: 0; color: var(--tn-green-dark); }
.tn-sub { font-size: 0.95rem; color: var(--tn-muted); margin: 8px 0 18px; }
.tn-foot { font-size: 0.8rem; color: var(--tn-faint); margin: 14px 0 0; }
.tn-muted { color: var(--tn-faint); font-size: 0.85rem; }
.tn-eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; color: var(--tn-maroon); }
.tn-eyebrow.tn-muted { color: var(--tn-muted); }
.tn-strong { font-weight: 700; }

/* Chart */
.tn-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 0; margin: 0 0 14px; font-size: 0.9rem; }
.tn-legend li { margin: 0; padding: 0; }
.tn-sw { display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: middle; }
.tn-c0 { background: var(--tn-green); }
.tn-c1 { background: var(--tn-gold-fill); }
.tn-c2 { background: var(--tn-blue); }
.tn-c3 { background: var(--tn-maroon); }
.tn-chart { display: flex; align-items: flex-end; gap: 10px; height: 290px; border-bottom: 2px solid var(--tn-ink); padding: 0 4px; }
.tn-axis { display: flex; gap: 10px; padding: 0 4px; }
.tn-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; flex: 1; min-width: 0; }
.tn-axis .tn-col { justify-content: flex-start; }
.tn-seg { width: 100%; max-width: 64px; }
.tn-tot { font-size: 0.75rem; font-weight: 700; margin-bottom: 4px; color: var(--tn-green-dark); }
.tn-yr { font-size: 0.75rem; font-weight: 700; color: var(--tn-muted); margin-top: 8px; }
/* Short year labels (19-20) on small screens */
.tn-ys { display: none; }
.tn-st { font-size: 0.7rem; color: var(--tn-faint); }
.tn-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Tables */
.tn-table-wrap { overflow-x: auto; }
.tn-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.tn-table th { text-align: left; font-size: 0.75rem; font-weight: 700; color: var(--tn-muted); border-bottom: 2px solid var(--tn-ink); padding: 8px 10px 8px 0; }
.tn-table td { border-bottom: 1px solid var(--tn-line); padding: 10px 10px 10px 0; vertical-align: top; }
.tn-table .tn-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-right: 0; padding-left: 12px; }

/* Two columns: table and scheme card */
.tn-two { display: flex; flex-wrap: wrap; gap: 40px; }
.tn-main { flex: 2 1 560px; min-width: 0; }
.tn-side { flex: 1 1 320px; min-width: 0; align-self: flex-start; }
.tn-scheme { background: var(--tn-tint); border-top: 4px solid var(--tn-maroon); padding: 24px; margin-bottom: 16px; }
.tn-sname { font-family: var(--tn-serif); font-size: 1.5rem; font-weight: 700; margin: 8px 0; color: var(--tn-green-dark); }
.tn-samt { font-size: 2.1rem; font-weight: 700; color: var(--tn-green-dark); }
.tn-scheme p { font-size: 0.95rem; color: var(--tn-body); margin: 8px 0 12px; }
.tn-ref { font-size: 0.8rem; color: var(--tn-muted); border-top: 1px solid var(--tn-line); padding-top: 10px; }

/* Notes, downloads, sources */
.tn-notes { border: 2px solid var(--tn-line); padding: 22px 26px; }
.tn-notes p { margin: 8px 0 0; font-size: 0.95rem; color: var(--tn-body); }
.tn-files { list-style: none; padding: 0; margin: 0; }
.tn-files li { margin: 0 0 10px; padding: 0; }
.tn-btn { display: inline-block; padding: 8px 14px; border: 2px solid var(--tn-green); color: var(--tn-green); font-weight: 700; font-size: 0.85rem; text-decoration: none; margin-right: 8px; }
.tn-btn:hover { background: var(--tn-green); color: #fff; }
.tn-downloads { border-top: 1px solid var(--tn-line); padding-top: 24px; }
.tn-details { margin-top: 12px; }
.tn-details summary { cursor: pointer; font-weight: 700; color: var(--tn-green); }
.tn-sources { margin-top: 40px; padding-top: 16px; border-top: 2px solid var(--tn-line); font-size: 0.85rem; color: var(--tn-muted); }
.tn-srclist { padding-left: 18px; margin: 8px 0; }

/* Explorer */
.tn-explorer .tn-controls { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; margin: 4px 0 14px; }
.tn-explorer label { font-size: 0.8rem; font-weight: 700; color: var(--tn-muted); display: flex; flex-direction: column; gap: 4px; }
.tn-explorer input[type=search], .tn-explorer select { font: inherit; padding: 8px 10px; border: 2px solid var(--tn-line); background: #fff; min-height: 44px; }
.tn-explorer input[type=search] { min-width: 260px; }
.tn-explorer .tn-scroll { max-height: 640px; overflow: auto; border: 1px solid var(--tn-line); }
.tn-explorer .tn-table th { position: sticky; top: 0; background: #fff; z-index: 1; padding-left: 10px; }
.tn-explorer .tn-table td { padding-left: 10px; }
.tn-explorer .tn-code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.8rem; white-space: nowrap; }
.tn-explorer .tn-lv-major td, .tn-explorer .tn-lv-section td { font-weight: 700; background: var(--tn-tint); }
.tn-explorer .tn-lv-l1 td { font-weight: 600; }
.tn-explorer .tn-stg { font-size: 0.65rem; color: var(--tn-faint); margin-left: 3px; vertical-align: super; }
.tn-explorer .tn-indent { display: flex; align-items: flex-start; }
.tn-explorer .tn-dbody { flex: 1 1 auto; min-width: 0; padding-top: 2px; }
.tn-explorer .tn-nkids { color: var(--tn-faint); font-size: 0.8rem; margin-left: 4px; }
.tn-explorer .tn-cat { font-size: 0.75rem; color: var(--tn-faint); }
.tn-explorer .tn-tog, .tn-explorer .tn-tog-pad { flex: none; width: 26px; height: 26px; margin: 0 2px 0 0; align-self: flex-start; }
.tn-explorer button.tn-tog { min-height: 26px; padding: 0; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.tn-explorer button.tn-tog:hover { background: var(--tn-line); }
.tn-explorer .tn-chev { width: 0; height: 0; border-left: 7px solid var(--tn-green); border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform .12s; }
.tn-explorer .tn-tog.tn-open .tn-chev { transform: rotate(90deg); }
.tn-explorer tbody tr:focus { outline: 2px solid var(--tn-green); outline-offset: -2px; }
.tn-explorer mark { background: var(--tn-gold); color: var(--tn-ink); padding: 0 1px; }
.tn-explorer .tn-th-code { min-width: 130px; }
.tn-explorer .tn-badge { margin-left: 8px; font-size: 0.7rem; font-weight: 700; padding: 2px 6px; border: 1px solid var(--tn-line); color: var(--tn-muted); white-space: nowrap; }
.tn-explorer .tn-count { font-size: 0.85rem; color: var(--tn-muted); margin: 8px 0; }
.tn-explorer button { font: inherit; font-weight: 700; padding: 8px 14px; border: 2px solid var(--tn-green); background: #fff; color: var(--tn-green); cursor: pointer; min-height: 44px; }
.tn-explorer button:hover { background: var(--tn-green); color: #fff; }

@media (max-width: 640px) {
	.tn-kv { font-size: 1.8rem; }
	.tn-chart { height: 270px; gap: 4px; }
	.tn-axis { gap: 4px; }
	.tn-yr { font-size: 0.65rem; }
	.tn-yl { display: none; }
	.tn-ys { display: inline; }
	.tn-explorer input[type=search] { min-width: 0; width: 100%; }
}
.tn-schemes { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.tn-schemes .tn-scheme { margin-bottom: 0; }
.tn-grand { margin-top: 16px; background: var(--tn-green-dark); color: #fff; padding: 20px 24px; border-radius: 2px; }
.tn-grand .tn-kl, .tn-grand .tn-ks { color: #d9e8d9; }
.tn-grand .tn-kv { color: #fff; font-size: 2.8rem; }
.tn-ctx { font-size: 0.9rem; color: var(--tn-muted); margin: 12px 0 0; }
.tn-alist { list-style: none; margin: 20px 0 0; padding: 0; }
.tn-alist li { border-top: 1px solid var(--tn-line); padding: 12px 0; }
.tn-alist .tn-ref { border-top: 0; padding-top: 4px; }
.tn-muted { color: var(--tn-muted); }

/* State finances page */
.tn-kpi.tn-k3 { border-top-color: var(--tn-maroon); }
.tn-kpi.tn-k4 { border-top-color: var(--tn-blue); }
.tn-kpi.tn-k5 { border-top-color: var(--tn-gold-fill); }
.tn-kpis-6 .tn-kv { font-size: 1.8rem; }
.tn-neg { color: var(--tn-maroon); }
.tn-share { display: inline-block; vertical-align: middle; height: 8px; background: var(--tn-green); margin-right: 6px; min-width: 1px; }
.tn-kpis-6 .tn-kpi { flex: 1 1 28%; min-width: 200px; }

/* ---- Home page components ([tn_home_stats], [tn_home_chart]) ---- */
.tn-stats { margin: 0; }
.tn-stats-head { font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--tn-muted); margin: 0 0 14px; font-weight: 600; }
.tn-stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tn-stat { background: #fff; border: 1px solid var(--tn-line); border-top: 4px solid var(--tn-green); border-radius: 6px; padding: 18px 18px 14px; }
.tn-stat-label { font-size: .95rem; color: var(--tn-muted); font-weight: 600; }
.tn-stat-num { font-family: var(--tn-serif); font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 700; color: var(--tn-green-dark); line-height: 1.15; margin: 6px 0 4px; }
.tn-stat-chg { font-size: .9rem; font-weight: 600; }
.tn-stat-chg.tn-up { color: var(--tn-green); }
.tn-stat-chg.tn-down { color: var(--tn-maroon); }
.tn-stat-src { font-size: .78rem; color: var(--tn-faint); margin-top: 8px; }
@media (max-width: 900px) { .tn-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .tn-stats-grid { grid-template-columns: 1fr; } }

.tn-trend { margin: 0; background: #fff; border: 1px solid var(--tn-line); border-radius: 6px; padding: 20px 20px 12px; }
.tn-trend-cap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-bottom: 8px; font-size: 1.05rem; color: var(--tn-ink); }
.tn-trend-key { font-size: .88rem; color: var(--tn-muted); display: inline-flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.tn-trend-key em { color: var(--tn-faint); }
.tn-k { display: inline-block; width: 22px; height: 4px; border-radius: 2px; margin-right: 6px; vertical-align: middle; }
.tn-k.tn-line-a { background: var(--tn-green); }
.tn-k.tn-line-b { background: #8a9499; }
.tn-trend-svg { width: 100%; height: auto; display: block; }
.tn-grid { stroke: var(--tn-line); stroke-width: 1; }
.tn-axis-t { fill: var(--tn-muted); font-size: 12px; font-family: var(--tn-sans); }
.tn-line { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.tn-line.tn-line-a, .tn-dot.tn-line-a { stroke: var(--tn-green); }
.tn-line.tn-line-b, .tn-dot.tn-line-b { stroke: #8a9499; }
.tn-dot { fill: #fff; stroke-width: 2.5; }
.tn-proj { stroke-dasharray: 7 6; }
.tn-trend-src { font-size: .8rem; color: var(--tn-faint); margin: 8px 0 0; }

/* Download bar under each visual */
.tn-viz-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--tn-line); font-size: .85rem; }
.tn-viz-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--tn-green); border-radius: 4px; background: #fff; color: var(--tn-green); font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.tn-viz-btn:hover { background: var(--tn-green); color: #fff; }
.tn-viz-btn svg { width: 15px; height: 15px; }
.tn-viz-src { color: var(--tn-faint); flex: 1 1 260px; }

/* Announcement (scheme) pages */
.tn-scheme-head { margin-bottom: 8px; }
.tn-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.tn-chip { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--tn-green); color: #fff; font-size: .8rem; font-weight: 600; letter-spacing: .03em; }
.tn-chip-line { background: transparent; color: var(--tn-green); border: 1px solid var(--tn-green); }
.tn-chip-warn { background: var(--tn-maroon); }
.tn-scheme-dept { margin: 0; color: var(--tn-muted); font-weight: 600; }
.tn-scheme-amount { background: var(--tn-tint); border-left: 5px solid var(--tn-green); border-radius: 4px; padding: 18px 22px; margin: 16px 0 8px; }
.tn-scheme-amount .tn-stat-num { font-family: var(--tn-serif); font-size: clamp(1.8rem, 3.4vw, 2.6rem); font-weight: 700; color: var(--tn-green-dark); line-height: 1.15; }
.tn-scheme-amount .tn-stat-label { font-size: .95rem; color: var(--tn-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.tn-quote { margin: 8px 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--tn-line); font-size: 1.1rem; color: var(--tn-ink); }
.tn-where { padding-left: 20px; margin: 6px 0 10px; }
.tn-same { padding-left: 18px; margin: 6px 0; }
.tn-same li { margin: 4px 0; }
.tn-muted { color: var(--tn-faint); }

/* ------------------------------------------------------------------ Elections */
.tn-el { max-width: 1200px; }
.tn-el-lede { font-size: 1.1rem; color: var(--tn-body); max-width: 60rem; margin: 0 0 20px; }
.tn-el-h { margin: 40px 0 8px; }
.tn-el-tiles { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 8px; }
.tn-el-tile { flex: 1 1 200px; border-top: 4px solid var(--tn-green); background: var(--tn-tint); padding: 14px 16px 16px; }
.tn-el-tile .tn-kv { font-size: 1.9rem; }
.tn-el-hemiwrap { max-width: 760px; margin: 8px 0 18px; }
.tn-el-hemi { width: 100%; height: auto; display: block; }
.tn-el-hemi circle { stroke-width: 1; cursor: pointer; }
.tn-el-hemi a:hover circle, .tn-el-hemi a:focus circle { stroke: var(--tn-ink); stroke-width: 2; }
.tn-el-hemi-n { font: 700 64px var(--tn-serif); fill: var(--tn-green-dark); }
.tn-el-hemi-l { font: 600 22px var(--tn-sans); fill: var(--tn-muted); }
.tn-el-chip { text-decoration: none; white-space: nowrap; }
.tn-el-chip i, .tn-el-sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.tn-el-lists { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; margin-top: 12px; }
.tn-el-list ol { margin: 10px 0 0; padding-left: 22px; font-size: .92rem; }
.tn-el-list li { margin: 0 0 6px; }
.tn-el-filters { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; margin: 0 0 14px; }
.tn-el-filters label { display: flex; flex-direction: column; font-size: .8rem; font-weight: 700; color: var(--tn-muted); gap: 4px; }
.tn-el-filters input, .tn-el-filters select { font: inherit; font-size: .95rem; padding: 8px 10px; border: 2px solid var(--tn-line); background: #fff; min-width: 190px; }
.tn-el-sort th[data-t] { user-select: none; }
.tn-el-won td { background: var(--tn-tint); font-weight: 600; }
.tn-el-win { border-left: 8px solid var(--tn-green); background: var(--tn-tint); padding: 14px 18px; margin: 0 0 16px; }
.tn-el-winname { font: 700 1.5rem var(--tn-serif); color: var(--tn-green-dark); }
.tn-el-flag { border: 2px solid var(--tn-maroon); padding: 10px 14px; background: #fff; }
.tn-el-barcell { width: 22%; min-width: 90px; }
.tn-el-bar { display: block; height: 10px; background: #e9eef0; }
.tn-el-bar b { display: block; height: 100%; }
.tn-el-dist { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 22px 28px; }
.tn-el-dist ul { list-style: none; margin: 8px 0 0; padding: 0; font-size: .92rem; }
.tn-el-dist li { margin: 0 0 4px; }
.tn-el-pager { display: flex; gap: 10px; align-items: center; margin-top: 14px; }
.tn-el-pager button.tn-btn { background: #fff; cursor: pointer; font-family: inherit; }
.tn-el-pager button.tn-btn:disabled { opacity: .4; cursor: default; }
@media (max-width: 640px) { .tn-el-tile .tn-kv { font-size: 1.5rem; } .tn-el-hemi-n { font-size: 56px; } }

.tn-el .tn-table td.tn-num + td.tn-num + td.tn-el-barcell, .tn-el .tn-el-barcell { padding-left: 14px; }

/* Members and ministers */
.tn-mem-photo { display: block; width: 100px; height: 130px; object-fit: cover; background: #e9eef0; flex: none; }
.tn-mem-photo-lg { width: 120px; height: 150px; }
.tn-mem-thumb { display: block; width: 48px; height: 62px; object-fit: cover; background: #e9eef0; }
.tn-mem-nophoto { display: block; }
.tn-mem-now, .tn-mem-card, .tn-el-win-ph { display: flex; gap: 16px; align-items: flex-start; }
.tn-el-win-ph .tn-mem-photo { width: 76px; height: 100px; }
.tn-mem-now { margin: 0 0 16px; }
.tn-mem-contact { font-size: .85rem; color: var(--tn-muted); }
.tn-mem-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 18px; }
.tn-mem-cm { margin: 0 0 8px; }
.tn-mem-cm .tn-mem-card { background: var(--tn-tint); border-left: 8px solid var(--tn-green); padding: 18px; }
.tn-mem-cm .tn-mem-name { font-size: 1.5rem; }
.tn-mem-card { min-width: 0; overflow-wrap: anywhere; border: 1px solid var(--tn-line); padding: 14px; background: #fff; }
.tn-mem-name { font-size: 1.15rem; }
.tn-mem-title { font-weight: 700; margin: 2px 0 6px; }
.tn-mem-port { font-size: .88rem; margin: 8px 0 0; }
.tn-mem-body { min-width: 0; flex: 1 1 auto; }
.tn-mem-card .tn-el-chip { white-space: normal; font: 600 .95rem var(--tn-sans); }
.tn-mem-party { margin: 0 0 4px; }
@media (max-width: 640px) { .tn-mem-grid { grid-template-columns: 1fr; } .tn-mem-photo-lg { width: 90px; height: 114px; } }

/* Metrics library */
.tn-mx[data-lang="en"] [data-l="ta"], .tn-mx[data-lang="ta"] [data-l="en"] { display: none; }
.tn-mx-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 16px; }
.tn-mx-lang { display: inline-flex; border: 1px solid var(--tn-line); border-radius: 6px; overflow: hidden; }
.tn-mx-lang button, .tn-mx-doms button { font: inherit; font-size: 0.85rem; padding: 6px 14px; border: 0; background: #fff; color: var(--tn-ink); cursor: pointer; }
.tn-mx-lang button[aria-pressed="true"], .tn-mx-doms button[aria-pressed="true"] { background: var(--tn-green); color: #fff; }
.tn-mx-doms { display: inline-flex; border: 1px solid var(--tn-line); border-radius: 6px; overflow: hidden; }
.tn-mx-note { margin: 0; font-size: 0.8rem; color: var(--tn-faint); }
.tn-mx-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin: 8px 0 4px; }
.tn-mx-filters input { display: block; font: inherit; padding: 8px 10px; border: 1px solid var(--tn-line); border-radius: 6px; min-width: 260px; }
.tn-mx-lab { display: block; font-size: 0.75rem; font-weight: 700; color: var(--tn-muted); margin-bottom: 4px; }
.tn-mx-table td:first-child { white-space: nowrap; padding-right: 18px; }
.tn-mx-formula { font-family: var(--tn-mono, ui-monospace, monospace); background: var(--tn-tint); padding: 10px 14px; border-left: 4px solid var(--tn-green); }
.tn-mx-checks { list-style: none; padding: 0; margin: 0; }
.tn-mx-checks li { padding: 8px 0; border-bottom: 1px solid var(--tn-line); }
.tn-mx-badge { display: inline-block; font-size: 0.7rem; font-weight: 700; padding: 1px 8px; border-radius: 10px; margin-right: 6px; background: var(--tn-tint); color: var(--tn-green-dark); }
.tn-mx-planned .tn-mx-badge { background: #fff4d6; color: #7a5a00; }
.tn-mx [hidden] { display: none !important; }
.tn-mx [lang="ta"] { line-height: 1.7; }
@media (max-width: 640px) { .tn-mx-filters input { min-width: 0; width: 100%; } .tn-mx-table td:first-child { white-space: normal; } }

/* Downloads and Known Gaps tables */
.tn-dl-bar { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin: 0 0 12px; }
.tn-dl-search { flex: 1 1 280px; }
.tn-dl-search input, .tn-dl-group select { display: block; width: 100%; font: inherit; padding: 8px 10px; border: 1px solid var(--tn-line); border-radius: 6px; background: #fff; color: var(--tn-ink); }
.tn-dl-group { flex: 0 1 220px; min-width: 150px; }
.tn-dl-clear { font: inherit; font-size: 0.9rem; padding: 8px 14px; border: 1px solid var(--tn-line); border-radius: 6px; background: #fff; color: var(--tn-green); cursor: pointer; }
.tn-dl-count { margin: 4px 0 8px; font-size: 0.9rem; color: var(--tn-muted); }
.tn-dl-sort { font: inherit; font-weight: 700; background: none; border: 0; padding: 0; color: inherit; cursor: pointer; text-align: left; white-space: nowrap; }
.tn-dl-sort:hover { text-decoration: underline; }
.tn-dl-table td { vertical-align: top; }
.tn-dl-det summary { cursor: pointer; }
.tn-dl-fn { display: block; font-size: 0.8rem; font-weight: 400; word-break: break-all; }
.tn-dl-det p { margin: 8px 0 0; font-size: 0.9rem; }
.tn-dl-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 14px 0 0; }
.tn-dl-pager button:disabled { opacity: .4; cursor: default; }
.tn-gap-st { display: inline-block; font-size: 0.75rem; font-weight: 700; padding: 1px 8px; border-radius: 10px; background: var(--tn-tint); color: var(--tn-green-dark); }
.tn-gap-open { background: #f7e1e1; color: var(--tn-maroon); }
.tn-gap-documented { background: #fff4d6; color: #7a5a00; }
@media (max-width: 640px) {
	.tn-dl-table thead { position: absolute; left: -9999px; }
	.tn-dl-table, .tn-dl-table tbody, .tn-dl-table tr, .tn-dl-table td { display: block; width: 100%; }
	.tn-dl-table tr { border: 1px solid var(--tn-line); margin: 0 0 12px; padding: 6px 10px; }
	.tn-dl-table td { border: 0; padding: 4px 0; text-align: left; }
	.tn-dl-table td.tn-num { text-align: left; }
	.tn-dl-table td[data-label]:not(:first-child)::before { content: attr(data-label) ': '; font-weight: 700; color: var(--tn-muted); font-size: 0.8rem; }
	.tn-dl-group { flex: 1 1 100%; }
}
.tn-dl-table td:first-child code { white-space: nowrap; }
@media (max-width: 640px) { .tn-dl-table td:first-child code { white-space: normal; } }

/* Contact form */
.tn-cf { max-width: 38rem; }
.tn-cf label { display: block; font-weight: 700; margin: 0 0 4px; }
.tn-cf input[type=text], .tn-cf input[type=email], .tn-cf select, .tn-cf textarea { display: block; width: 100%; font: inherit; padding: 8px 10px; border: 1px solid var(--tn-line); border-radius: 6px; background: #fff; color: var(--tn-ink); box-sizing: border-box; }
.tn-cf-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.tn-ok { padding: 12px 16px; border: 2px solid var(--tn-green); background: var(--tn-tint); }
.tn-dl-table th.tn-num, .tn-dl-table td.tn-num { padding-right: 18px; white-space: nowrap; }
.tn-dl-table th:last-child, .tn-dl-table td.tn-dl-last { padding-left: 12px; min-width: 6.5rem; }

/* [tn_map] constituency / district map (includes/maps.php, assets/tn-maps.js) */
.tn-map { display: flex; flex-direction: column; gap: 16px; }
.tn-map-controls { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
.tn-map-seg { display: inline-flex; border: 1px solid #d3e3e4; border-radius: 999px; overflow: hidden; background: #fff; }
.tn-map-seg button { font: inherit; font-weight: 600; font-size: .95rem; border: 0; background: transparent; color: #073b41; padding: 8px 16px; min-height: 40px; cursor: pointer; }
.tn-map-seg button[aria-pressed="true"] { background: #0b5d66; color: #fff; }
.tn-map-ctl { display: flex; gap: 8px; align-items: center; font-weight: 600; font-size: .95rem; }
.tn-map-ctl select { font: inherit; padding: 6px 10px; border: 1px solid #d3e3e4; border-radius: 8px; min-height: 40px; }
.tn-map-chk { font-weight: 400; }
.tn-map-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 820px) { .tn-map-grid { grid-template-columns: 1fr; } }
.tn-map-box { position: relative; background: #f1f7f8; border: 1px solid #d3e3e4; border-radius: 12px; padding: 10px; min-width: 0; }
.tn-map-svg { display: block; width: 100%; height: auto; max-height: 80vh; }
.tn-map-svg .tn-map-a { stroke: #fff; stroke-width: .8px; vector-effect: non-scaling-stroke; cursor: pointer; transition: opacity .15s; }
.tn-map-svg.has-focus .tn-map-a { opacity: .28; }
.tn-map-svg.has-focus .tn-map-a.is-focus, .tn-map-svg.has-focus .tn-map-a.is-sel { opacity: 1; }
.tn-map-svg .tn-map-zlabel { display: none; }
.tn-map-svg.is-zoomed .tn-map-zlabel { display: inline; font-size: 1.25px; stroke-width: .3px; }
.tn-map-zoom { font: inherit; font-weight: 600; font-size: .92rem; border: 1px solid #0b5d66; color: #0b5d66; background: #fff; border-radius: 999px; padding: 7px 14px; min-height: 40px; cursor: pointer; }
.tn-map-zoom[aria-pressed="true"] { background: #0b5d66; color: #fff; }
@media (prefers-reduced-motion: reduce) { .tn-map-svg .tn-map-a { transition: none; } }
.tn-map-svg .tn-map-a:focus { outline: none; }
.tn-map-svg .tn-map-ring { fill: none; stroke: #073b41; stroke-width: 2.2px; vector-effect: non-scaling-stroke; pointer-events: none; }
.tn-map-svg .tn-map-flag { fill: none; stroke: #b45309; stroke-width: 1.8px; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; pointer-events: none; }
.tn-map-svg text { font: 600 5px "Source Sans 3", sans-serif; fill: #073b41; pointer-events: none; paint-order: stroke; stroke: #f1f7f8; stroke-width: 1.2px; }
.tn-map-side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.tn-map-card { background: #fff; border: 1px solid #d3e3e4; border-radius: 12px; padding: 14px 16px; }
.tn-map-card h3 { margin: 2px 0 6px; font-size: 1.2rem; }
.tn-map-k, .tn-map-lgt { font-size: .78rem; letter-spacing: .07em; text-transform: uppercase; color: #36525a; font-weight: 700; margin-bottom: 8px; }
.tn-map-kv { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0; font-variant-numeric: tabular-nums; }
.tn-map-kv dt { color: #36525a; } .tn-map-kv dd { margin: 0; font-weight: 600; }
.tn-map-legend { display: flex; flex-direction: column; gap: 6px; font-size: .92rem; font-variant-numeric: tabular-nums; }
.tn-map-lrow { display: flex; gap: 10px; align-items: center; }
.tn-map-n { margin-left: auto; color: #36525a; }
.tn-map-sw { width: 16px; height: 16px; border-radius: 4px; flex: none; }
.tn-map-ramp { display: flex; gap: 2px; } .tn-map-ramp span { flex: 1; height: 12px; }
.tn-map-rampl { display: flex; justify-content: space-between; color: #36525a; font-size: .85rem; }
.tn-map-tip { position: absolute; pointer-events: none; background: #fff; border: 1px solid #d3e3e4; border-radius: 8px; padding: 5px 9px; font-size: .85rem; white-space: nowrap; box-shadow: 0 4px 14px rgba(0,0,0,.12); }

/* Prices: Consumer Price Index page ([tn_cpi]). Section colour --tn-pri (design system: Prices #9b2c4b). */
.tn-cpi { --tn-pri: #9b2c4b; --tn-pri-tint: #f8eef1; --tn-s-c: #9b2c4b; --tn-s-r: #c98a2b; --tn-s-u: #4379b7; }
.tn-cpi-explain { background: var(--tn-pri-tint); border-left: 5px solid var(--tn-pri); padding: 22px 26px; margin: 0 0 32px; }
.tn-cpi-explain .tn-h2 { margin-bottom: 14px; }
.tn-cpi-explain-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; }
.tn-cpi-explain h3 { font-family: var(--tn-serif); font-size: 1.1rem; margin: 0 0 4px; color: var(--tn-green-dark); }
.tn-cpi-explain p { margin: 0; font-size: 0.97rem; color: var(--tn-body); }
.tn-cpi-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px 32px; align-items: end; border-top: 4px solid var(--tn-pri); background: #fff; padding: 22px 0 8px; margin: 0 0 36px; }
.tn-cpi-eyebrow { margin: 0; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.03em; color: var(--tn-pri); }
.tn-cpi-big { margin: 4px 0 0; font-family: var(--tn-serif); font-size: clamp(3rem, 8vw, 4.6rem); font-weight: 700; line-height: 1; color: var(--tn-green-dark); font-variant-numeric: tabular-nums; }
.tn-cpi-bigsub { margin: 8px 0 0; font-size: 1.02rem; color: var(--tn-body); max-width: 34rem; }
.tn-cpi-head-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tn-cpi-tile { background: var(--tn-tint); padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.tn-cpi-tile-in { background: #f1f3f5; }
.tn-cpi-tv { font-size: 1.6rem; font-weight: 700; color: var(--tn-green-dark); font-variant-numeric: tabular-nums; }
.tn-cpi-head-note { grid-column: 1 / -1; margin: 0; font-size: 0.85rem; color: var(--tn-muted); }
.tn-cpi-prov { display: inline-block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--tn-pri); border: 1px solid var(--tn-pri); padding: 1px 6px; margin-left: 4px; vertical-align: middle; }
.tn-cpi-sec { margin: 0 0 44px; }
.tn-cpi-tabs { display: inline-flex; border: 2px solid var(--tn-green); margin: 0 0 10px; }
.tn-cpi-tab { font: inherit; font-size: 0.9rem; font-weight: 700; padding: 8px 14px; min-height: 44px; border: 0; background: #fff; color: var(--tn-green); cursor: pointer; }
.tn-cpi-tab[aria-pressed="true"] { background: var(--tn-green); color: #fff; }
.tn-cpi-key { font-size: 0.9rem; color: var(--tn-muted); margin: 0 0 6px; }
.tn-cpi-k { display: inline-block; width: 18px; height: 4px; margin: 0 6px 3px 12px; vertical-align: middle; background: currentColor; }
.tn-cpi-k:first-child { margin-left: 0; }
.tn-cpi-k.tn-s-c { color: var(--tn-s-c); } .tn-cpi-k.tn-s-r { color: var(--tn-s-r); } .tn-cpi-k.tn-s-u { color: var(--tn-s-u); }
.tn-cpi-fig { margin: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tn-cpi-svg { width: 100%; height: auto; display: block; }
.tn-cpi-zero { stroke: var(--tn-muted); }
.tn-axis-yr { font-weight: 700; }
.tn-cpi-line { fill: none; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.tn-cpi-line.tn-s-c { stroke: var(--tn-s-c); stroke-width: 3.5; } .tn-cpi-line.tn-s-r { stroke: var(--tn-s-r); } .tn-cpi-line.tn-s-u { stroke: var(--tn-s-u); }
.tn-cpi-dot { stroke: #fff; stroke-width: 1.5; }
.tn-cpi-dot.tn-s-c { fill: var(--tn-s-c); } .tn-cpi-dot.tn-s-r { fill: var(--tn-s-r); } .tn-cpi-dot.tn-s-u { fill: var(--tn-s-u); }
.tn-cpi-bars { margin: 0 0 18px; }
.tn-cpi-bar-row { display: grid; grid-template-columns: minmax(140px, 34%) 1fr 72px; gap: 12px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--tn-line); font-size: 0.92rem; }
.tn-cpi-bar-track { position: relative; height: 16px; }
.tn-cpi-bar-zero { position: absolute; top: -4px; bottom: -4px; width: 1px; background: var(--tn-muted); }
.tn-cpi-bar-fill { position: absolute; top: 0; bottom: 0; background: #b9c9cc; }
.tn-cpi-bar-fill.tn-neg { background: #c7d6e8; }
.tn-cpi-bar-val { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
.tn-cpi-hl .tn-cpi-bar-fill { background: var(--tn-pri); }
.tn-cpi-hl .tn-cpi-bar-lab { font-weight: 700; }
.tn-cpi-in .tn-cpi-bar-fill { background: var(--tn-muted); }
.tn-cpi-divtab .tn-cpi-link { font: inherit; font-weight: 700; color: var(--tn-green); background: none; border: 0; padding: 0; text-align: left; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.tn-cpi-divtab tr.tn-cpi-sel th, .tn-cpi-divtab tr.tn-cpi-sel td { background: var(--tn-pri-tint); }
.tn-cpi-divpanel { border: 2px solid var(--tn-pri); padding: 16px 20px; margin: 16px 0; }
.tn-cpi-panelhead { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.tn-cpi-close { font-size: 1.5rem; line-height: 1; border: 0; background: none; cursor: pointer; color: var(--tn-muted); min-width: 44px; min-height: 44px; }
.tn-cpi-divpanel .tn-cpi-sparksvg { width: 100%; max-width: 520px; height: 60px; }
.tn-cpi-caution { background: #fff8e6; border-left: 4px solid var(--tn-gold-fill); padding: 10px 14px; font-size: 0.92rem; margin: 0 0 14px; }
.tn-cpi-search { display: flex; flex-direction: column; gap: 4px; margin: 0 0 12px; max-width: 420px; }
.tn-cpi-search label { font-size: 0.8rem; font-weight: 700; color: var(--tn-muted); }
.tn-cpi-search input { font: inherit; padding: 8px 10px; border: 2px solid var(--tn-line); min-height: 44px; }
.tn-cpi-search input:focus { border-color: var(--tn-green); outline: none; }
.tn-cpi-muted { color: var(--tn-muted); font-size: 0.85rem; }
.tn-cpi-spark, .tn-cpi-spark-h { width: 132px; }
.tn-cpi-sparksvg { width: 120px; height: 28px; display: block; }
.tn-cpi-sparksvg polyline { fill: none; stroke: var(--tn-pri); stroke-width: 1.8; stroke-linejoin: round; }
.tn-cpi-imp { font-size: 0.68rem; font-weight: 700; color: var(--tn-muted); border: 1px solid var(--tn-line); padding: 0 5px; margin-left: 4px; }
.tn-cpi-list { padding-left: 18px; margin: 10px 0; }
.tn-cpi-list li { margin: 0 0 8px; font-size: 0.95rem; color: var(--tn-body); }
@media (max-width: 760px) {
	.tn-cpi-explain-grid, .tn-cpi-head { grid-template-columns: 1fr; }
	.tn-cpi-head-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tn-cpi-tv { font-size: 1.25rem; }
	.tn-cpi-bar-row { grid-template-columns: minmax(110px, 40%) 1fr 64px; font-size: 0.85rem; }
	.tn-cpi-spark, .tn-cpi-spark-h { display: none; }
	.tn-cpi-svg { min-width: 620px; }
}

/* polling-station table on the constituency page */
.tn-booth-key { list-style: none; margin: 8px 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 13px; }
.tn-booth-key li { display: inline-flex; align-items: center; gap: 6px; }
.tn-booth-key i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.tn-booth-wrap { max-height: 78vh; overflow: auto; }
.tn-booth-wrap table { font-size: 13px; border-collapse: separate; border-spacing: 0; width: max-content; min-width: 0; }
.tn-booth-wrap th, .tn-booth-wrap td { padding: 3px 8px; white-space: nowrap; line-height: 20px; }
.tn-booth-wrap td.tn-num, .tn-booth-wrap th.tn-num { min-width: 58px; }
.tn-booth-wrap thead th { position: sticky; top: 0; background: #fff; z-index: 3; vertical-align: bottom; }
.tn-booth-wrap thead th:nth-child(1), .tn-booth-wrap tbody td:nth-child(1) { position: sticky; left: 0; background: #fff; z-index: 2; min-width: 44px; }
.tn-booth-wrap thead th:nth-child(2), .tn-booth-wrap tbody td:nth-child(2) { position: sticky; left: 44px; background: #fff; z-index: 2; overflow: hidden; text-overflow: ellipsis; width: 320px; min-width: 320px; max-width: 320px; border-right: 2px solid #d7e3e4; }
.tn-booth-wrap thead th:nth-child(-n+2) { z-index: 4; }
.tn-booth-wrap tfoot th { position: sticky; background: #eef6f6; z-index: 3; }
.tn-booth-wrap tfoot .tn-booth-t3 th { bottom: 0; background: #dcecec; }
.tn-booth-wrap tfoot th { height: 26px; box-sizing: border-box; }
.tn-booth-wrap tfoot .tn-booth-t2 th { bottom: 26px; }
.tn-booth-wrap tfoot .tn-booth-t1 th { bottom: 52px; }
.tn-booth-wrap.tn-booth-diff tfoot .tn-booth-t5 th { bottom: 0; background: #dcecec; font-weight: 600; }
.tn-booth-wrap.tn-booth-diff tfoot .tn-booth-t4 th { bottom: 26px; background: #dcecec; }
.tn-booth-wrap.tn-booth-diff tfoot .tn-booth-t3 th { bottom: 52px; background: #eef6f6; }
.tn-booth-wrap.tn-booth-diff tfoot .tn-booth-t2 th { bottom: 78px; }
.tn-booth-wrap.tn-booth-diff tfoot .tn-booth-t1 th { bottom: 104px; }
.tn-booth-note { margin: 6px 0; }
.tn-booth-wrap tfoot th:first-child { left: 0; z-index: 4; text-align: left; }

/* Vehicles: registrations pages ([tn_veh_*]). Section colour --tn-veh (design system: Vehicles #1f4e8c). */
.tn-veh { --tn-veh: #1f4e8c; --tn-veh-tint: #eef3fa; --tn-veh-line: #c9d6ea; }
.tn-veh-explain { background: var(--tn-veh-tint); border-left: 4px solid var(--tn-veh); padding: 12px 16px; margin: 0 0 22px; }
.tn-veh-explain .tn-h2 { font-size: 0.95rem; margin: 0 0 4px; }
.tn-veh-explain-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 6px 28px; }
.tn-veh-explain h3 { margin: 4px 0 2px; font: 600 0.75rem/1.3 'Source Sans 3', system-ui, sans-serif; letter-spacing: 0.05em; text-transform: uppercase; color: var(--tn-veh); }
.tn-veh-explain p { margin: 0; font-size: 0.85rem; line-height: 1.45; }
.tn-veh-head { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px 32px; align-items: end; border-top: 4px solid var(--tn-veh); background: #fff; padding: 22px 0 8px; margin: 0 0 36px; }
.tn-veh-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.03em; color: var(--tn-veh); }
.tn-veh-eyebrow-i { width: 26px; height: 26px; }
.tn-veh-big { margin: 4px 0 0; font-size: clamp(2.6rem, 7vw, 4.2rem); line-height: 1; font-weight: 800; color: var(--tn-veh); font-variant-numeric: tabular-nums; }
.tn-veh-bigsub { margin: 8px 0 0; max-width: 34em; }
.tn-veh-head-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.tn-veh-tile { border: 1px solid var(--tn-veh-line); border-top: 3px solid var(--tn-veh); padding: 12px 14px; background: #fff; }
.tn-veh-tv { display: block; font-size: 1.7rem; font-weight: 800; color: var(--tn-veh); font-variant-numeric: tabular-nums; }
.tn-veh-tv-s { font-size: 1.15rem; line-height: 1.25; }
.tn-veh-head-note { grid-column: 1 / -1; margin: 0; font-size: 0.88rem; color: #495057; }
.tn-veh-sec { margin: 0 0 40px; }
.tn-veh-list { padding-left: 1.2em; }
.tn-veh-list li { margin: 0 0 8px; }
.tn-veh-part { display: inline-block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--tn-veh); border: 1px solid var(--tn-veh); padding: 1px 6px; margin-left: 4px; vertical-align: middle; }
.tn-veh-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 14px; }
.tn-veh-ctl-l { font-size: 0.82rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: #495057; min-width: 5.5em; }
.tn-veh-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.tn-veh-tab { font: inherit; font-size: 0.92rem; border: 1px solid var(--tn-veh); background: #fff; color: var(--tn-veh); padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.tn-veh-tab[aria-pressed="true"] { background: var(--tn-veh); color: #fff; }
.tn-veh-tab:focus-visible, .tn-veh-rowbtn:focus-visible, .tn-veh-more:focus-visible, .tn-veh-clear:focus-visible { outline: 3px solid #f2b705; outline-offset: 2px; }
.tn-veh-chartbox { margin: 0 0 28px; }
.tn-veh-listbox { margin: 0; }
.tn-veh-svg .tn-axis-t { font-size: 13px; }
@media (max-width: 900px) { .tn-veh-head { grid-template-columns: 1fr; } }
.tn-veh-rank { list-style: none; margin: 0; padding: 0; }
.tn-veh-row { border-bottom: 1px solid #e3e8ef; }
.tn-veh-rowbtn { display: grid; grid-template-columns: minmax(110px, 1.3fr) minmax(80px, 1fr) auto; align-items: center; gap: 10px; width: 100%; text-align: left; font: inherit; background: none; border: 0; padding: 8px 6px; cursor: pointer; color: inherit; }
.tn-veh-rowbtn:hover { background: var(--tn-veh-tint); }
.tn-veh-rowbtn:disabled { cursor: default; background: none; color: inherit; opacity: 1; }
.tn-veh-sel > .tn-veh-rowbtn { background: var(--tn-veh-tint); box-shadow: inset 4px 0 0 var(--tn-veh); }
.tn-veh-lead { display: flex; align-items: center; justify-content: center; }
.tn-veh-i { width: 26px; height: 26px; color: var(--tn-veh); }
.tn-veh-mono { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.02em; }
.tn-veh-lab { font-weight: 600; overflow-wrap: anywhere; }
@media (min-width: 561px) { .tn-veh-lab { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; } }
.tn-veh-sub { font-weight: 400; font-size: 0.8rem; color: #5f6b76; margin-left: 4px; }
.tn-veh-track { display: block; height: 10px; background: #e8edf4; border-radius: 2px; overflow: hidden; }
.tn-veh-fill { display: block; height: 100%; background: var(--tn-veh); }
.tn-veh-hl .tn-veh-fill { background: #c24d00; }
.tn-veh-hl .tn-veh-lab { color: #8f3a00; }
.tn-veh-val { font-variant-numeric: tabular-nums; font-weight: 700; min-width: 5.2em; text-align: right; }
@media (max-width: 560px) { .tn-veh-rowbtn { grid-template-columns: minmax(0, 1fr) auto; } .tn-veh-track { display: none; } }
.tn-veh-detail:empty { display: none; }
.tn-veh-detail { padding: 8px 6px 16px 6px; }
.tn-veh-panel { border-top: 3px solid var(--tn-veh); padding-top: 14px; }
.tn-veh-fig { margin: 0 0 8px; }
.tn-veh-svg { width: 100%; height: auto; display: block; }
.tn-veh-col { fill: var(--tn-veh); }
.tn-veh-cold { fill: #9fb4d3; }
.tn-veh-legend { font-size: 0.85rem; color: #495057; }
.tn-veh-k { display: inline-block; width: 12px; height: 12px; background: var(--tn-veh); margin: 0 4px 0 0; vertical-align: -1px; }
.tn-veh-kp { margin-left: 12px; background: repeating-linear-gradient(45deg, var(--tn-veh) 0 3px, #fff 3px 6px); border: 1px solid var(--tn-veh); }
.tn-veh-search { margin: 0 0 12px; }
.tn-veh-search label { display: block; font-size: 0.82rem; font-weight: 700; margin: 0 0 4px; }
.tn-veh-q, .tn-veh-sel { font: inherit; padding: 8px 10px; border: 1px solid #8a97a6; border-radius: 4px; max-width: 100%; min-width: min(360px, 100%); }
.tn-veh-more, .tn-veh-clear { font: inherit; border: 1px solid var(--tn-veh); background: #fff; color: var(--tn-veh); padding: 7px 14px; border-radius: 4px; cursor: pointer; }
.tn-veh-h4 { margin: 12px 0 6px; font-size: 0.95rem; }
.tn-veh-offs { list-style: none; margin: 0; padding: 0; }
.tn-veh-offs li { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border-bottom: 1px dotted #c8d0da; }
/* Vehicles: monthly pages (change cards, change badges, stacked bars, mini lists) */
.tn-veh-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; margin: 0 0 22px; }
.tn-veh-card { border: 1px solid var(--tn-veh-line); border-top: 3px solid var(--tn-veh); padding: 12px 14px; background: #fff; display: flex; flex-direction: column; gap: 2px; }
.tn-veh-cs { font-size: 0.85rem; color: #495057; }
.tn-veh-chg { font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.tn-veh-up { color: #1b6e3c; }
.tn-veh-dn { color: #a4262c; }
.tn-veh-chg-na { color: #5f6b76; font-weight: 400; }
.tn-veh-card .tn-veh-chg { font-size: 1.5rem; }
.tn-veh-rank.tn-veh-x1 .tn-veh-rowbtn, .tn-veh-rank.tn-veh-x1 .tn-veh-rowhead { grid-template-columns: minmax(0, 1.3fr) minmax(80px, 1fr) auto 8.5em; }
.tn-veh-rank.tn-veh-x2 .tn-veh-rowbtn, .tn-veh-rank.tn-veh-x2 .tn-veh-rowhead { grid-template-columns: minmax(0, 1.3fr) minmax(80px, 1fr) auto 8.5em 8.5em; }
.tn-veh-rowhead { display: grid; align-items: end; gap: 10px; padding: 0 6px 4px; border-bottom: 2px solid #c8d0da; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: #495057; }
.tn-veh-rowhead .tn-veh-val { font-weight: 700; }
.tn-veh-ex { text-align: right; }
.tn-veh-stack { display: flex; }
.tn-veh-seg1 { display: block; height: 100%; }
.tn-veh-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: 0; }
.tn-veh-glegend { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 0.82rem; color: #495057; margin: 0 0 10px; }
.tn-veh-kc { background: #9fb4d3; margin-left: 12px; }
.tn-veh-psel { min-width: min(300px, 100%); }
.tn-veh-detail:not(:empty) { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 6px 28px; }
.tn-veh-mini-l { flex: 1 1 40%; min-width: 0; overflow-wrap: anywhere; }
.tn-veh-mini-b { flex: 1 1 30%; height: 8px; background: #e8edf4; border-radius: 2px; overflow: hidden; align-self: center; }
.tn-veh-mini-b span { display: block; height: 100%; background: var(--tn-veh); }
.tn-veh-offs li strong { font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .tn-veh-rank.tn-veh-x1 .tn-veh-rowbtn, .tn-veh-rank.tn-veh-x2 .tn-veh-rowbtn { grid-template-columns: 30px minmax(0, 1fr) auto; } .tn-veh-ex { grid-column: 2 / -1; text-align: left; } .tn-veh-rowhead { display: none; } }

/* Dataset catalogue */
.tn-cat-filters{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end;margin:0 0 12px}
.tn-cat-filters label{display:flex;flex-direction:column;gap:4px;min-width:220px}
.tn-cat-lab{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#555}
.tn-cat-filters input{padding:8px 10px;border:1px solid #b9c2cf;border-radius:4px;font:inherit}
.tn-cat-topics{display:flex;flex-wrap:wrap;gap:6px}
.tn-cat-topics button{padding:6px 12px;border:1px solid #b9c2cf;border-radius:16px;background:#fff;font:inherit;cursor:pointer}
.tn-cat-topics button[aria-pressed="true"]{background:#1f4e8c;border-color:#1f4e8c;color:#fff}
.tn-cat-count{margin:0 0 8px;color:#555;font-size:.9rem}
.tn-cat-item{border:1px solid #d5dbe4;border-radius:6px;margin:0 0 10px;background:#fff}
.tn-cat-item[hidden]{display:none}
.tn-cat-item summary{cursor:pointer;padding:12px 14px;display:flex;flex-direction:column;gap:4px;list-style:none}
.tn-cat-item summary::-webkit-details-marker{display:none}
.tn-cat-name{font-weight:600;font-size:1.05rem}
.tn-cat-meta{font-size:.85rem;color:#555}
.tn-cat-tag{display:inline-block;padding:1px 8px;border-radius:10px;background:#e8eef7;color:#1f4e8c;font-size:.78rem;margin-right:6px}
.tn-cat-desc{color:#333}
.tn-cat-body{padding:0 14px 14px;border-top:1px solid #eef1f5}
.tn-cat-body dl{display:grid;grid-template-columns:minmax(120px,170px) minmax(0,1fr);gap:8px 16px;margin:12px 0 0}
.tn-cat-body dt{font-weight:600;color:#444}
.tn-cat-body dd{margin:0;overflow-wrap:anywhere}
.tn-cat-body ul{margin:0;padding-left:18px}
@media (max-width:600px){.tn-cat-body dl{grid-template-columns:1fr}.tn-cat-body dt{margin-top:6px}}

/* Primary metric tiles */
.tn-mt-grid{display:grid;align-items:start;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0 0 20px}
.tn-mt-tile{border:1px solid #d5dbe4;border-radius:6px;background:#fff;padding:12px 14px;min-width:0}
.tn-mt-name{margin:0 0 6px;font-size:.9rem;color:#444;font-weight:600}
.tn-mt-value{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.tn-mt-num{font-size:1.9rem;line-height:1.1;font-weight:700;color:#073b41;font-variant-numeric:tabular-nums}
.tn-mt-unit{color:#555;font-size:.9rem;overflow-wrap:anywhere}
.tn-mt-na{color:#777;font-style:italic}
.tn-mt-period{margin:6px 0 8px;font-size:.82rem;color:#555;min-height:2.4em;overflow-wrap:anywhere}
.tn-mt-more summary{cursor:pointer;color:#1f4e8c;font-size:.85rem}
.tn-mt-more dl{margin:8px 0 0;display:grid;grid-template-columns:1fr;gap:2px}
.tn-mt-more dt{font-weight:600;font-size:.8rem;color:#444;margin-top:6px}
.tn-mt-more dd{margin:0;font-size:.85rem;overflow-wrap:anywhere}

/* Vehicles pages: no extra white space above the title (block theme adds 24px + 30px padding) */
body:has(.tn-veh) main.wp-block-group { padding-top: 0 !important; margin-top: 0 !important; }
body:has(.tn-veh) main.wp-block-group > .wp-block-group { padding-top: 8px !important; margin-top: 0 !important; }
body:has(.tn-veh) .wp-block-post-title { margin-top: 8px !important; margin-bottom: 8px !important; }
body:has(.tn-veh) .wp-block-post-content > :first-child { margin-top: 0 !important; }
body:has(.tn-veh) .tn-lead { margin-top: 0; }

/* Vehicles explorers (Makers, then the other pages): controls, strip, monthly bars, ranked stacked bars, detail. Prefix tnx-. */
.tn-veh { --tnx-fg: #1b2a33; --tnx-muted: #566871; --tnx-line: #d8e1e6; --tnx-tint: #eef3f9; --tnx-head: #073b41; --tnx-accent: #1f4e8c; --tnx-soft: #a9c3e2; --tnx-hover: #e6eef8; --tnx-track: #f1f5f8; --tnx-up: #1b6b3a; --tnx-dn: #a8431c;
	--tnx-s1: #2a78d6; --tnx-s2: #eb6834; --tnx-s3: #1baf7a; --tnx-s4: #eda100; --tnx-s5: #e87ba4; --tnx-s6: #008300; --tnx-s7: #6250d6; }
.tn-veh .tnx-controls { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 0 0 16px; }
.tn-veh .tnx-ctl { min-width: 0; }
.tn-veh .tnx-lab { display: block; font: 600 12px/1 var(--tn-sans); letter-spacing: 0.06em; text-transform: uppercase; color: var(--tnx-muted); margin: 0 0 6px; }
.tn-veh .tnx-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.tn-veh .tnx-chip { font: inherit; font-size: 14px; line-height: 1; padding: 8px 12px; border: 1px solid var(--tnx-line); background: #fff; color: var(--tnx-fg); border-radius: 999px; cursor: pointer; }
.tn-veh .tnx-chip:hover:not(:disabled) { background: var(--tnx-hover); }
.tn-veh .tnx-chip[aria-pressed="true"] { background: var(--tnx-accent); border-color: var(--tnx-accent); color: #fff; }
.tn-veh .tnx-chip:disabled { opacity: 0.38; cursor: not-allowed; }
.tn-veh .tnx-chip:focus-visible, .tn-veh .tnx-hrow:focus-visible, .tn-veh .tnx-link:focus-visible, .tn-veh .tnx-search:focus-visible { outline: 2px solid var(--tnx-accent); outline-offset: 2px; }
.tn-veh .tnx-seg { display: inline-flex; border: 1px solid var(--tnx-line); border-radius: 6px; overflow: hidden; }
.tn-veh .tnx-seg .tnx-chip { border: 0; border-radius: 0; border-right: 1px solid var(--tnx-line); }
.tn-veh .tnx-seg .tnx-chip:last-child { border-right: 0; }
.tn-veh .tnx-strip { display: grid; grid-template-columns: 1.2fr 1fr 1fr; border-top: 1px solid var(--tnx-line); border-bottom: 1px solid var(--tnx-line); margin: 4px 0 22px; }
.tn-veh .tnx-stat { padding: 12px 18px 12px 0; min-width: 0; }
.tn-veh .tnx-stat + .tnx-stat { padding-left: 18px; border-left: 1px solid var(--tnx-line); }
.tn-veh .tnx-k { font: 600 12px/1.2 var(--tn-sans); letter-spacing: 0.06em; text-transform: uppercase; color: var(--tnx-muted); }
.tn-veh .tnx-n { font: 700 30px/1.15 var(--tn-serif); color: var(--tnx-head); margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.tn-veh .tnx-n .tnx-chg { font-size: inherit; font-family: inherit; }
.tn-veh .tnx-d { font-size: 13.5px; color: var(--tnx-muted); }
.tn-veh .tnx-chg { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.tn-veh .tnx-up { color: var(--tnx-up); } .tn-veh .tnx-dn { color: var(--tnx-dn); } .tn-veh .tnx-na { color: var(--tnx-muted); font-weight: 400; }
.tn-veh .tnx-charthead, .tn-veh .tnx-hhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; margin: 0 0 6px; }
.tn-veh .tnx-h2 { font: 700 20px/1.2 var(--tn-serif); color: var(--tnx-head); margin: 0; }
.tn-veh .tnx-h2s { font: 700 18px/1.2 var(--tn-serif); color: var(--tnx-head); margin: 0; }
.tn-veh .tnx-hhead { margin-bottom: 10px; } .tn-veh .tnx-hhead > span { font-size: 14px; color: var(--tnx-muted); }
.tn-veh .tnx-sub { font-size: 14px; color: var(--tnx-muted); display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.tn-veh .tnx-pill { display: inline-flex; gap: 6px; align-items: center; background: var(--tnx-hover); border: 1px solid var(--tnx-soft); color: var(--tnx-fg); border-radius: 999px; padding: 3px 6px 3px 10px; font-size: 13px; }
.tn-veh .tnx-pill button { all: unset; cursor: pointer; width: 20px; height: 20px; border-radius: 50%; text-align: center; line-height: 20px; color: var(--tnx-muted); }
.tn-veh .tnx-pill button:hover { background: var(--tnx-line); }
.tn-veh .tnx-plot { position: relative; width: 100%; }
.tn-veh .tnx-plot svg { display: block; width: 100%; height: auto; }
.tn-veh .tnx-tip { position: absolute; pointer-events: none; background: var(--tnx-fg); color: #fff; font-size: 13px; line-height: 1.35; padding: 6px 9px; border-radius: 5px; white-space: nowrap; transform: translate(-50%, -100%); z-index: 3; display: none; }
.tn-veh .tnx-key { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; color: var(--tnx-muted); margin-top: 4px; }
.tn-veh .tnx-sw { display: inline-block; vertical-align: middle; margin-right: 6px; width: 12px; height: 12px; border-radius: 2px; }
.tn-veh .tnx-sw.tnx-mark { width: 14px; height: 0; border-radius: 0; border-top: 2.5px solid var(--tnx-fg); }
.tn-veh .tnx-tools { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; font-size: 13px; color: var(--tnx-muted); padding: 8px 0 22px; border-bottom: 1px solid var(--tnx-line); margin-bottom: 24px; }
.tn-veh .tnx-link { font: inherit; font-size: 13px; color: var(--tnx-accent); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.tn-veh .tnx-tablewrap { overflow-x: auto; max-height: 340px; border: 1px solid var(--tnx-line); margin: 0 0 24px; }
.tn-veh .tnx-table { border-collapse: collapse; width: 100%; font-size: 14px; font-variant-numeric: tabular-nums; }
.tn-veh .tnx-table th, .tn-veh .tnx-table td { padding: 6px 12px; text-align: left; border-bottom: 1px solid var(--tnx-line); }
.tn-veh .tnx-table th { position: sticky; top: 0; background: var(--tnx-tint); font-weight: 600; }
.tn-veh .tnx-table td:not(:first-child), .tn-veh .tnx-table th:not(:first-child) { text-align: right; }
.tn-veh .tnx-listbar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 0 0 10px; }
.tn-veh .tnx-search { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--tnx-line); border-radius: 6px; background: #fff; color: var(--tnx-fg); width: min(100%, 260px); }
.tn-veh .tnx-stackctl { margin: 8px 0; }
.tn-veh .tnx-legend { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; margin: 0 0 10px; }
.tn-veh .tnx-legend span { display: inline-flex; align-items: center; gap: 6px; }
.tn-veh .tnx-legend i { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }
.tn-veh .tnx-cols { display: grid; grid-template-columns: minmax(110px, 230px) 1fr 76px 66px 66px; gap: 12px; padding: 0 8px 4px; font: 600 12px/1.2 var(--tn-sans); letter-spacing: 0.05em; text-transform: uppercase; color: var(--tnx-muted); }
.tn-veh .tnx-cols span:nth-child(n+3) { text-align: right; }
.tn-veh .tnx-hlist { display: flex; flex-direction: column; }
.tn-veh .tnx-hrow { all: unset; box-sizing: border-box; display: grid; grid-template-columns: minmax(110px, 230px) 1fr 76px 66px 66px; align-items: center; gap: 12px; padding: 5px 8px; border-radius: 4px; cursor: pointer; font-family: var(--tn-sans); color: var(--tnx-fg); }
.tn-veh .tnx-hrow:hover { background: var(--tnx-hover); }
.tn-veh .tnx-hrow[aria-pressed="true"] { background: var(--tnx-hover); box-shadow: inset 0 0 0 1.5px var(--tnx-accent); }
.tn-veh .tnx-hl { font-size: 14.5px; line-height: 1.25; min-width: 0; overflow-wrap: anywhere; }
.tn-veh .tnx-ht { display: flex; gap: 2px; height: 16px; min-width: 0; }
.tn-veh .tnx-seg1 { height: 100%; min-width: 2px; transition: width 0.25s; }
.tn-veh .tnx-seg1:last-child { border-radius: 0 4px 4px 0; }
.tn-veh .tnx-hv, .tn-veh .tnx-hc { font-size: 14px; text-align: right; font-variant-numeric: tabular-nums; }
.tn-veh .tnx-dim .tnx-hrow:not([aria-pressed="true"]) .tnx-ht { opacity: 0.4; }
.tn-veh .tnx-more { margin-top: 10px; }
.tn-veh .tnx-lnote { font-size: 13px; color: var(--tnx-muted); margin: 8px 0 0; max-width: 80ch; }
.tn-veh .tnx-detail { margin-top: 26px; border-top: 1px solid var(--tnx-line); padding-top: 16px; }
.tn-veh .tnx-dsub { font-size: 14px; color: var(--tnx-muted); margin: 2px 0 14px; }
.tn-veh .tnx-dgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 36px; }
.tn-veh .tnx-dgrid .tnx-full { grid-column: 1 / -1; }
.tn-veh .tnx-dgrid h4 { font: 600 12px/1.2 var(--tn-sans); letter-spacing: 0.06em; text-transform: uppercase; color: var(--tnx-muted); margin: 0 0 8px; }
.tn-veh .tnx-static .tnx-hrow { cursor: default; grid-template-columns: minmax(100px, 190px) 1fr 84px; }
.tn-veh .tnx-static .tnx-hrow:hover { background: none; }
.tn-veh .tnx-static .tnx-ht { background: var(--tnx-track); display: block; }
.tn-veh .tnx-hb { display: block; height: 100%; background: var(--tnx-accent); border-radius: 0 4px 4px 0; }
.tn-veh .tnx-mq { display: none; }
@media (min-width: 721px) { .tn-veh .tnx-cc { display: contents; } }
@media (max-width: 720px) {
	.tn-veh .tnx-strip { grid-template-columns: 1fr; }
	.tn-veh .tnx-stat { padding: 10px 0; }
	.tn-veh .tnx-stat + .tnx-stat { padding-left: 0; border-left: 0; border-top: 1px solid var(--tnx-line); }
	.tn-veh .tnx-cols { display: none; }
	.tn-veh .tnx-hrow { grid-template-columns: 1fr auto; grid-template-areas: "l v" "t t" "c c"; gap: 4px 8px; }
	.tn-veh .tnx-hl { grid-area: l; } .tn-veh .tnx-hv { grid-area: v; } .tn-veh .tnx-ht { grid-area: t; }
	.tn-veh .tnx-hrow .tnx-cc { grid-area: c; display: flex; gap: 16px; font-size: 13px; }
	.tn-veh .tnx-hc { text-align: left; }
	.tn-veh .tnx-mq { display: inline; color: var(--tnx-muted); }
	.tn-veh .tnx-dgrid { grid-template-columns: 1fr; }
	.tn-veh .tnx-static .tnx-hrow { grid-template-columns: 1fr 78px; grid-template-areas: none; }
	.tn-veh .tnx-static .tnx-hl, .tn-veh .tnx-static .tnx-hv, .tn-veh .tnx-static .tnx-ht { grid-area: auto; }
}
@media (prefers-reduced-motion: reduce) { .tn-veh .tnx-seg1 { transition: none; } }
.tn-veh .tnx-sw.tnx-line { width: 14px; height: 0; border-radius: 0; border-top: 3px solid var(--tnx-accent); }

/* Vehicles landing page */
.tn-veh .tnx-hero { display: grid; grid-template-columns: 1.2fr 1fr 1fr; border-top: 1px solid var(--tnx-line); border-bottom: 1px solid var(--tnx-line); margin: 4px 0 8px; }
.tn-veh .tnx-hero .tnx-n { margin: 4px 0 2px; }
.tn-veh .tn-veh-big.tnx-n { font: 700 30px/1.15 'Source Serif 4', Georgia, serif; color: var(--tnx-head); }
.tn-veh .tnx-spark { margin: 6px 0 22px; }
.tn-veh .tnx-spark svg { display: block; width: 100%; height: auto; }
.tn-veh .tnx-cap { font-size: 13px; color: var(--tnx-muted); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tnx-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 8px 0 28px; }
.tnx-card { display: block; border: 1px solid #d8e1e6; border-top: 3px solid #1f4e8c; border-radius: 4px; padding: 16px 18px; text-decoration: none; color: #1b2a33; min-width: 0; }
.tnx-card:hover { background: #e6eef8; }
.tnx-card h2 { font: 700 19px/1.2 'Source Serif 4', Georgia, serif; color: #073b41; margin: 0 0 4px; }
.tnx-card p { margin: 0 0 12px; font-size: 14.5px; color: #566871; }
.tnx-card .tnx-k { display: block; font: 600 12px/1.2 'Source Sans 3', system-ui, sans-serif; letter-spacing: 0.06em; text-transform: uppercase; color: #566871; }
.tnx-card .tnx-n { display: block; font: 700 26px/1.15 'Source Serif 4', Georgia, serif; color: #073b41; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.tnx-card .tnx-d { display: block; font-size: 13.5px; color: #566871; }
.tnx-card .tnx-go { display: inline-block; margin-top: 10px; font-size: 14px; color: #1f4e8c; font-weight: 600; }
.tnx-card .tnx-chg { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.tnx-card .tnx-up { color: #1b6b3a; } .tnx-card .tnx-dn { color: #a8431c; }
@media (max-width: 720px) { .tnx-cards { grid-template-columns: 1fr; } .tn-veh .tnx-hero { grid-template-columns: 1fr; } }
.tn-veh .tnx-plain .tnx-hrow { grid-template-columns: minmax(110px, 230px) 1fr 84px 66px 66px; }
.tn-veh .tnx-cols-reg { grid-template-columns: minmax(110px, 230px) 1fr 84px 66px 66px; }
.tn-veh .tnx-trk { background: var(--tnx-track); display: block; border-radius: 0 4px 4px 0; }
.tn-veh .tnx-plain .tnx-hb { transition: width 0.25s; }
.tn-veh .tnx-plain.tnx-dim .tnx-hb { background: var(--tnx-soft); }
.tn-veh .tnx-plain.tnx-dim .tnx-hrow[aria-pressed="true"] .tnx-hb { background: var(--tnx-accent); }
.tn-veh .tnx-plain.tnx-dim .tnx-hrow:not([aria-pressed="true"]) .tnx-ht { opacity: 1; }
@media (max-width: 720px) { .tn-veh .tnx-plain .tnx-hrow { grid-template-columns: 1fr auto; } }

/* Sitewide privacy line */
.tn-privacy-line{margin:0;padding:14px 16px;text-align:center;font:13px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#555;border-top:1px solid #e3e3e3}

/* Agriculture: Water Reservoirs ([tn_res]). Section colour --tn-agr (design system: Agriculture #3d6b21). */
.tn-res { --tn-agr: #3d6b21; --tn-agr-tint: #eef4ea; --tn-water: #2a8fbd; --tn-water-deep: #1b6a92; --tn-water-bg: #e6f3f9; --tn-last: #c4572b; }
.tn-res-explain { background: var(--tn-agr-tint); border-left: 5px solid var(--tn-agr); padding: 22px 26px; margin: 0 0 32px; }
.tn-res-explain .tn-h2 { margin-bottom: 14px; }
.tn-res-explain-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; }
.tn-res-explain h3 { font-family: var(--tn-serif); font-size: 1.1rem; margin: 0 0 4px; color: var(--tn-agr); }
.tn-res-explain p { margin: 0; font-size: 0.95rem; }
.tn-res-head { border-top: 4px solid var(--tn-agr); padding: 18px 0 4px; margin: 0 0 32px; }
.tn-res-eyebrow { margin: 0 0 12px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tn-muted); }
.tn-res-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tn-res-tile { display: flex; flex-direction: column; gap: 4px; background: var(--tn-agr-tint); padding: 16px 18px; min-width: 0; }
.tn-res-big { font-family: var(--tn-serif); font-size: 2.6rem; line-height: 1.1; color: var(--tn-agr); font-variant-numeric: tabular-nums; }
.tn-res-sub { font-size: 0.9rem; color: var(--tn-body); font-variant-numeric: tabular-nums; }
.tn-res-foot { font-size: 0.85rem; color: var(--tn-muted); margin: 14px 0 0; max-width: 70ch; }
.tn-res-sec { margin: 0 0 40px; }
.tn-res-bar { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; margin: 0 0 12px; }
.tn-res-bar label { display: flex; gap: 8px; align-items: center; font-size: 0.9rem; font-weight: 700; color: var(--tn-muted); }
.tn-res-bar input, .tn-res-bar select { font: inherit; font-weight: 400; color: var(--tn-body); padding: 8px 10px; min-height: 44px; border: 2px solid var(--tn-line); background: #fff; }
.tn-res-bar input:focus, .tn-res-bar select:focus { border-color: var(--tn-agr); outline: none; }
.tn-res-views { display: inline-flex; border: 2px solid var(--tn-agr); }
.tn-res-vbtn, .tn-res-ubtn { font: inherit; font-size: 0.9rem; font-weight: 700; padding: 8px 14px; min-height: 44px; border: 0; background: #fff; color: var(--tn-agr); cursor: pointer; }
.tn-res-vbtn[aria-pressed="true"], .tn-res-ubtn[aria-pressed="true"] { background: var(--tn-agr); color: #fff; }
.tn-res-msg { background: #fff8e8; border-left: 4px solid #9a5600; padding: 8px 12px; margin: 0 0 12px; font-size: 0.95rem; }
.tn-res-link { font: inherit; background: none; border: 0; padding: 0; color: var(--tn-agr); text-decoration: underline; cursor: pointer; }
.tn-res-key { font-size: 0.9rem; color: var(--tn-muted); margin: 0 0 12px; }
.tn-res-k { display: inline-block; width: 18px; height: 10px; margin: 0 6px 0 14px; vertical-align: middle; }
.tn-res-key .tn-res-k:first-child { margin-left: 0; }
.tn-res-kw { background: var(--tn-water); }
.tn-res-kl { height: 0; border-top: 3px dashed var(--tn-last); }
.tn-res-grp { font-family: var(--tn-serif); font-size: 1.3rem; margin: 24px 0 12px; }
.tn-res-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
.tn-res-tank { background: #fff; border: 1px solid var(--tn-line); padding: 12px; min-width: 0; }
.tn-res-tank h3 { font: 700 1.05rem/1.3 'Source Sans 3', system-ui, sans-serif; margin: 0; overflow-wrap: anywhere; }
.tn-res-tank svg { display: block; width: 100%; max-width: 150px; height: auto; margin: 8px auto; }
.tn-res-tbg { fill: var(--tn-water-bg); }
.tn-res-tw { fill: var(--tn-water); }
.tn-res-tline { fill: none; stroke: var(--tn-water-deep); stroke-width: 2; }
.tn-res-tly { stroke: var(--tn-last); stroke-width: 2.5; stroke-dasharray: 6 3; }
.tn-res-wave { animation: tn-res-slide 6s linear infinite; }
@keyframes tn-res-slide { to { transform: translateX(-40px); } }
@media (prefers-reduced-motion: reduce) { .tn-res-wave { animation: none; } }
.tn-res-pct { font-family: var(--tn-serif); font-size: 1.75rem; font-variant-numeric: tabular-nums; }
.tn-res-pct small { font-family: 'Source Sans 3', system-ui, sans-serif; font-size: 0.85rem; color: var(--tn-muted); margin-left: 6px; }
.tn-res-yoy { font-size: 0.9rem; color: var(--tn-muted); }
.tn-res-sus { font-size: 0.8rem; font-weight: 700; color: #9a5600; margin-top: 4px; }
.tn-res-tank dl { display: grid; grid-template-columns: auto auto; gap: 2px 12px; margin: 8px 0 0; font-size: 0.88rem; font-variant-numeric: tabular-nums; }
.tn-res-tank dt { color: var(--tn-muted); }
.tn-res-tank dd { margin: 0; text-align: right; }
.tn-res-fig { margin: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tn-res-fig svg { display: block; width: 100%; min-width: 560px; height: auto; }
.tn-res-grid-l { stroke: var(--tn-line); }
.tn-res-ax { font-size: 12px; fill: var(--tn-muted); }
.tn-res-line { fill: none; stroke-width: 2.6; stroke-linejoin: round; }
.tn-res-y0 { stroke: var(--tn-last); background: var(--tn-last); }
.tn-res-y1 { stroke: var(--tn-water-deep); background: var(--tn-water-deep); }
.tn-res-y2 { stroke: #6b4c9a; background: #6b4c9a; }
circle.tn-res-y0 { fill: var(--tn-last); } circle.tn-res-y1 { fill: var(--tn-water-deep); } circle.tn-res-y2 { fill: #6b4c9a; }
i.tn-res-y0, i.tn-res-y1, i.tn-res-y2 { height: 4px; }
.tn-res-list { padding-left: 18px; margin: 10px 0; }
.tn-res-list li { margin: 0 0 8px; font-size: 0.95rem; color: var(--tn-body); }
@media (max-width: 760px) { .tn-res-explain-grid, .tn-res-tiles { grid-template-columns: 1fr; } }

/* local body tables: a text column after a right-aligned number needs a gap */
.tn-lb .tn-table td.tn-num + td, .tn-lb .tn-table th.tn-num + th { padding-left: 16px; }
.tn-rl .tn-rl-ward td { background: var(--tn-tint); border-top: 2px solid var(--tn-line, #cfd8d0); }
