/* ══════════════════════════════════════════════════════════
   SagarmathaIQ — Shared Dashboard Stylesheet
   Open quantitative analysis from the Himalayas
   sagarmathaiq.github.io
   ══════════════════════════════════════════════════════════ */

/* ── Google Fonts ──
   Add this to every dashboard page <head> before this stylesheet:

   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
    line-height: 1.6;
    color: #1F2937;
    background: #FAFAF9;
}

/* ── Header ── */
.header {
    position: relative;
    color: white;
    text-align: center;
    overflow: hidden;
}

.header-hero {
    position: absolute;
    inset: 0;
    background: url('../hero-banner.png') center center / cover no-repeat;
    z-index: 0;
}

.header-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(15, 30, 80, 0.62) 0%, rgba(10, 20, 60, 0.72) 100%);
    z-index: 1;
}

.header-content {
    position: relative;
    z-index: 2;
    padding: 3.5rem 2rem 2.5rem;
}

.logo {
    margin-bottom: 0.75rem;
}

.logo img {
    height: 80px;
    width: auto;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}

.header-sub {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 1.25rem;
    font-style: italic;
    opacity: 0.92;
    margin-bottom: 0.3rem;
    letter-spacing: 0.01em;
}

.header-meta {
    font-size: 0.75rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.12em;
    opacity: 0.7;
    text-transform: uppercase;
}

/* Hero redesign */
.header-eyebrow {
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    margin-bottom: 1rem;
}
.header-headline {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: clamp(2.6rem, 6.5vw, 4.8rem);
    font-weight: 700;
    line-height: 1.05;
    color: #ffffff;
    margin: 0 0 0.75rem;
    letter-spacing: -0.02em;
}
.hero-stats {
    display: flex;
    gap: 2rem;
    justify-content: center;
    margin: 1.75rem auto 1.5rem;
    flex-wrap: wrap;
}
.hero-stat { text-align: center; }
.hero-stat-num {
    display: block;
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
    margin-bottom: 0.25rem;
}
.hero-stat-label {
    display: block;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
}
.hero-arrow {
    display: inline-block;
    color: rgba(255,255,255,0.6);
    font-size: 1.4rem;
    text-decoration: none;
    margin-top: 0.25rem;
    animation: bounce-arrow 1.8s ease-in-out infinite;
}
.hero-arrow:hover { color: rgba(255,255,255,0.9); }
@keyframes bounce-arrow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(7px); }
}
@media (prefers-reduced-motion: reduce) { .hero-arrow { animation: none; } }

.nav-buttons {
    margin-top: 1.5rem;
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.nav-button {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 500;
    transition: background 0.3s;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.nav-button:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* ── Layout ── */
.container {
    max-width: 1100px;
    margin: 2.5rem auto;
    padding: 0 1rem;
}

/* ── Section heading ── */
.section-heading {
    font-size: 0.75rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #6B7280;
    margin-bottom: 1rem;
}

/* ── Mission card ── */
.mission {
    background: white;
    padding: 2rem;
    border-radius: 8px;
    margin-bottom: 2.5rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.mission h2 {
    font-size: 1.2rem;
    color: #9B1C1C;
    margin-bottom: 0.6rem;
}

.mission p {
    color: #4B5563;
    font-size: 0.97rem;
    margin-bottom: 0.6rem;
}

.mission p:last-child {
    margin-bottom: 0;
}

/* ── Provenance strip ── */
.provenance {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid #E5E7EB;
    border-radius: 6px;
    overflow: hidden;
    margin-top: 1.25rem;
}

.prov-item {
    flex: 1;
    min-width: 160px;
    padding: 0.75rem 1rem;
    background: #F9FAFB;
    border-right: 1px solid #E5E7EB;
}

.prov-item:last-child {
    border-right: none;
}

.prov-label {
    font-size: 0.62rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #6B7280;
    margin-bottom: 3px;
    font-weight: 700;
}

.prov-value {
    font-size: 0.78rem;
    color: #6B7280;
}

/* ── Project card ── */
@keyframes card-enter {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.card-will-enter { opacity: 0; }
.card-entered { animation: card-enter 0.4s ease both; }

/* Latest badge */
.project-card[data-latest] .project-card-header { position: relative; }
.project-card[data-latest] .project-card-header::after {
    content: 'Latest';
    position: absolute;
    top: 12px;
    right: 14px;
    background: rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.9);
    font-family: -apple-system, 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,0.25);
}

/* Category-specific left accent */
.card--budget     { border-left: 3px solid #9B1C1C; }
.card--election   { border-left: 3px solid #0e7490; }
.card--fiscal     { border-left: 3px solid #b45309; }
.card--impact     { border-left: 3px solid #1E3A8A; }
.card--economy    { border-left: 3px solid #15803d; }
.card--opinion    { border-left: 3px solid #475569; }
.card--factcheck  { border-left: 3px solid #7C3AED; }

.project-card {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    margin-bottom: 2.5rem;
    overflow: hidden;
}

.project-card-header {
    background: linear-gradient(135deg, #7F1D1D 0%, #1E3A8A 100%);
    padding: 1.5rem 2rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.project-card-left {
    flex: 1;
    min-width: 200px;
}

.project-label {
    font-size: 0.7rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.15em;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 4px;
    font-weight: 700;
}

.project-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: white;
    margin-bottom: 6px;
    letter-spacing: -0.02em;
}

.project-desc {
    font-size: 0.87rem;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.55;
}

.status-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.25rem 0.6rem;
    border-radius: 20px;
    margin-top: 0.6rem;
}

.status-complete {
    background: rgba(34, 197, 94, 0.25);
    color: #86EFAC;
}

.status-published {
    background: rgba(56, 189, 248, 0.25);
    color: #BAE6FD;
}

/* ── Project links ── */
.project-links {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: flex-start;
}

.proj-btn {
    padding: 0.6rem 1.2rem;
    border-radius: 5px;
    font-size: 0.83rem;
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.2s;
    white-space: nowrap;
}

.proj-btn:hover {
    opacity: 0.85;
}

.proj-btn-primary {
    background: white;
    color: #9B1C1C;
}

.proj-btn-secondary {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* ── Stats bar ── */
.project-stats {
    display: flex;
    gap: 0;
    border-bottom: 1px solid #F3F4F6;
    flex-wrap: wrap;
}

.stat-item {
    flex: 1;
    min-width: 120px;
    padding: 1rem 1.5rem;
    border-right: 1px solid #F3F4F6;
}

.stat-item:last-child {
    border-right: none;
}

.stat-item {
    transition: background 0.15s;
}
.stat-item:hover {
    background: rgba(159, 28, 28, 0.04);
    cursor: default;
}

.stat-label {
    font-size: 0.7rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6B7280;
    margin-bottom: 2px;
}

.stat-value {
    font-size: 1.1rem;
    font-weight: 700;
    color: #9B1C1C;
}

/* ── Forecast banners ── */
.forecast-cards {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.forecast-banner {
    background: linear-gradient(135deg, #7F1D1D 0%, #1E3A8A 100%);
    border-radius: 6px;
    padding: 1.1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.forecast-banner-alt {
    background: linear-gradient(135deg, #1E293B 0%, #1E3A8A 100%);
}

.forecast-banner-left {
    flex: 1;
    min-width: 180px;
}

.forecast-banner-label {
    font-size: 0.65rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 2px;
    font-weight: 700;
}

.forecast-banner-title {
    font-size: 1rem;
    font-weight: 700;
    color: white;
    margin-bottom: 3px;
}

.forecast-banner-desc {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.45;
}

.forecast-banner-btn {
    background: white;
    color: #9B1C1C;
    padding: 0.5rem 1.1rem;
    border-radius: 5px;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: opacity 0.2s;
}

.forecast-banner-btn:hover {
    opacity: 0.85;
}

.forecast-banner-btn-alt {
    background: rgba(255, 255, 255, 0.12);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.25);
}

.project-dashboards {
    padding: 1.5rem 2rem;
}

.project-dashboards h3 {
    font-size: 0.75rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #6B7280;
    margin-bottom: 1rem;
}

/* ── Analysis sections ── */
.analysis-section {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    margin-bottom: 2rem;
    overflow: hidden;
}

.analysis-section-header {
    background: linear-gradient(135deg, #7F1D1D 0%, #1E3A8A 100%);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
}

.finding-tag {
    font-size: 0.65rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    font-weight: 700;
    flex-shrink: 0;
}

.finding-title {
    font-size: 1rem;
    font-weight: 700;
    color: white;
}

.analysis-body {
    padding: 1.5rem 2rem;
}

.analysis-desc {
    font-size: 0.87rem;
    color: #4B5563;
    line-height: 1.75;
    margin-bottom: 1.25rem;
    max-width: 700px;
}

.analysis-desc strong {
    color: #9B1C1C;
}

.chart-label {
    font-size: 0.7rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #374151;
    margin-bottom: 0.75rem;
}

/* ── Insight boxes ── */
.insight-box {
    background: #EFF6FF;
    border: 1px solid #BFDBFE;
    border-left: 3px solid #1D4ED8;
    border-radius: 0 5px 5px 0;
    padding: 0.85rem 1rem;
    font-size: 0.83rem;
    color: #1E40AF;
    line-height: 1.65;
    margin-top: 1rem;
}

.insight-box strong {
    color: #1D4ED8;
}

.insight-box-green {
    background: #F0FDF4;
    border-color: #BBF7D0;
    border-left-color: #16A34A;
    color: #166534;
}

.insight-box-green strong {
    color: #15803D;
}

/* ── Source line ── */
.source-line {
    font-size: 0.67rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #6B7280;
    border-left: 2px solid #E5E7EB;
    padding-left: 8px;
    margin-top: 1rem;
}

/* ── Chart wrapper ── */
.chart-wrap {
    width: 100%;
    overflow-x: auto;
    margin-bottom: 0.5rem;
}

.chart-wrap svg {
    display: block;
    width: 100%;
}

/* ── GDP proportional bar ── */
.gdp-bar {
    display: flex;
    border-radius: 4px;
    overflow: hidden;
    height: 44px;
    margin-bottom: 0.6rem;
}

.gdp-seg {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.gdp-legend {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.gdp-legend-item {
    display: flex;
    gap: 6px;
    align-items: center;
    font-size: 0.78rem;
    color: #6B7280;
}

.gdp-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}

/* ── Concerns list ── */
.concerns-list {
    list-style: none;
}

.concerns-list li {
    display: grid;
    grid-template-columns: 2rem 1fr;
    gap: 0.75rem;
    padding: 1rem 0;
    border-bottom: 1px solid #F3F4F6;
    align-items: start;
}

.concerns-list li:last-child {
    border-bottom: none;
}

.concern-icon {
    font-size: 1.1rem;
    padding-top: 2px;
}

.concern-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #1F2937;
    margin-bottom: 3px;
}

.concern-desc {
    font-size: 0.8rem;
    color: #6B7280;
    line-height: 1.65;
}

/* ── Verdict table ── */
.verdict-wrap {
    overflow-x: auto;
}

.verdict-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    min-width: 560px;
}

.verdict-table thead tr {
    background: #F3F4F6;
    border-bottom: 2px solid #E5E7EB;
}

.verdict-table th {
    padding: 0.65rem 1rem;
    text-align: left;
    font-size: 0.62rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #374151;
    font-weight: 700;
}

.verdict-table td {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #F3F4F6;
    vertical-align: top;
}

.verdict-table tr:last-child td {
    border-bottom: none;
}

.verdict-table .claim-col {
    color: #1F2937;
    font-weight: 600;
}

.verdict-table .evidence-col {
    color: #4B5563;
    line-height: 1.6;
}

.verdict-badge {
    display: inline-block;
    font-size: 0.6rem;
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 3px;
    white-space: nowrap;
}

.badge-red {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #DC2626;
}

.badge-amber {
    background: #FFFBEB;
    border: 1px solid #FDE68A;
    color: #D97706;
}

.badge-green {
    background: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #16A34A;
}

/* ── Conclusion card ── */
.conclusion {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin-bottom: 2.5rem;
}

.conclusion-header {
    background: linear-gradient(135deg, #7F1D1D 0%, #1E3A8A 100%);
    padding: 1rem 1.5rem;
}

.conclusion-header h2 {
    font-size: 1.1rem;
    font-weight: 800;
    color: white;
    letter-spacing: -0.02em;
}

.conclusion-body {
    padding: 1.5rem 2rem;
}

.conclusion-body p {
    font-size: 0.9rem;
    color: #4B5563;
    line-height: 1.8;
    margin-bottom: 0.85rem;
}

.conclusion-body p:last-child {
    margin-bottom: 0;
}

.mono-red {
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    color: #DC2626;
}

.mono-blue {
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    color: #1D4ED8;
}

/* ── Section divider ── */
.divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 2.5rem 0;
}

.divider::before,
.divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #E5E7EB;
}

/* ── Footer ── */
.footer {
    background: #111827;
    color: #6B7280;
    text-align: center;
    padding: 2.5rem 1rem;
    margin-top: 3rem;
    border-top: 3px solid #DC143C;
}

.footer-tagline-ne {
    font-size: 0.72rem;
    color: #475569;
    font-style: italic;
    margin: 0.15rem 0 1.25rem;
}

.footer-cols {
    display: flex;
    justify-content: center;
    gap: 3rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.footer-col {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    align-items: center;
}

.footer-col-label {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #374151;
    margin-bottom: 0.2rem;
}

.footer-col-link {
    font-size: 0.82rem;
    color: #6B7280;
    text-decoration: none;
}

.footer-col-link:hover { color: #F9FAFB; }

.footer-brand {
    font-size: 1rem;
    font-weight: 700;
    color: #F9FAFB;
    margin-bottom: 0.4rem;
}

.footer-tagline {
    font-size: 0.85rem;
    margin-bottom: 1rem;
    color: #6B7280;
}

.footer-links {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
    font-size: 0.85rem;
}

.footer-links a {
    color: #6B7280;
    text-decoration: none;
}

.footer-links a:hover {
    color: #F9FAFB;
}

.footer-divider {
    border: none;
    border-top: 1px solid #374151;
    margin: 1.25rem auto;
    max-width: 400px;
}

.footer-disclaimer {
    font-size: 0.78rem;
    color: #6B7280;
    max-width: 620px;
    margin: 0 auto 1rem;
    line-height: 1.6;
}

.footer-visitor {
    margin-top: 0.75rem;
}

/* ── Stat value colors ── */
.stat-value-sky {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0284C7;
}

.stat-value-neg {
    font-size: 1.1rem;
    font-weight: 700;
    color: #DC2626;
}

.stat-value-pos {
    font-size: 1.1rem;
    font-weight: 700;
    color: #059669;
}

/* ── Category headings ── */
.category-heading {
    font-family: 'Crimson Pro', Georgia, serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #9B1C1C;
    letter-spacing: -0.01em;
    margin: 2.5rem 0 1rem;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid #9B1C1C;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.category-heading:first-of-type {
    margin-top: 1.5rem;
}

/* Category abbreviation circle */
.category-heading[data-abbr]::before {
    content: attr(data-abbr);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    background: #9B1C1C;
    color: white;
    font-family: -apple-system, 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.5rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    border-radius: 50%;
    margin-right: 0.45rem;
    flex-shrink: 0;
}
.cat--election[data-abbr]::before  { background: #0e7490; }
.cat--fiscal[data-abbr]::before    { background: #b45309; }
.cat--impact[data-abbr]::before    { background: #1E3A8A; }
.cat--economy[data-abbr]::before   { background: #15803d; }
.cat--opinion[data-abbr]::before   { background: #475569; }
.cat--factcheck[data-abbr]::before { background: #7C3AED; }

.category-heading-count {
    font-family: -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #6B7280;
    text-transform: uppercase;
}

/* ── Dashboard grid ── */
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.75rem;
}

.dashboard-card {
    background: #F9FAFB;
    border: 1px solid #E5E7EB;
    padding: 1rem 1.25rem;
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    display: block;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.dashboard-card:hover {
    border-color: #3B82F6;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.12);
}

.dashboard-title {
    font-size: 0.97rem;
    font-weight: 700;
    color: #9B1C1C;
    margin-bottom: 3px;
}

.dashboard-meta {
    color: #6B7280;
    font-size: 0.85rem;
}

/* ── Compact site header (all inner pages) ── */
.site-header {
    background: #FFFFFF;
    border-bottom: 2px solid #E5E7EB;
    padding: 0.85rem 0;
    position: sticky;
    top: 0;
    z-index: 500;
    transition: transform 0.25s ease;
}
.site-header.header-hidden {
    transform: translateY(-100%);
}

.site-header-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.brand-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
    color: inherit;
}

.site-logo {
    height: 34px;
    width: auto;
    flex-shrink: 0;
}

.site-name {
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #1F2937;
    line-height: 1.2;
}

.site-tagline {
    font-size: 0.68rem;
    color: #6B7280;
    line-height: 1.3;
}

.site-nav {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    flex-wrap: wrap;
}

.site-nav-link {
    font-size: 0.82rem;
    font-weight: 500;
    color: #1D4ED8;
    text-decoration: none;
    white-space: nowrap;
}

.site-nav-link:hover {
    text-decoration: underline;
}

.site-nav-link.active {
    font-weight: 700;
}

/* Theme toggle button */
.theme-toggle {
    background: none;
    border: 1px solid #E5E7EB;
    cursor: pointer;
    font-size: 0.9rem;
    color: #6B7280;
    padding: 3px 8px;
    border-radius: 4px;
    line-height: 1.5;
    transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.theme-toggle:hover {
    color: #9B1C1C;
    border-color: #9B1C1C;
    background: rgba(155,28,28,0.04);
}

/* ══════════════════════════════════════════════════════════
   Article pages (long-form editorial, bilingual)
   body + html overrides stay per-page; everything else lives here.
   ══════════════════════════════════════════════════════════ */

/* Reading progress bar (injected by site.js on article pages) */
.reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 0%;
  background: #DC143C;
  z-index: 9999;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* Design tokens */
:root {
  --serif: Georgia, 'Times New Roman', serif;
  --sans:  'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono:  var(--sans);
  --bg:        #ffffff;
  --bg-tint:   #f9fafb;
  --bg-chip:   #f3f4f6;
  --ink:       #111827;
  --ink-mid:   #374151;
  --ink-light: #6b7280;
  --ink-faint: #9ca3af;
  --rule:      #e5e7eb;
  --rule-dark: #d1d5db;
  --rule-strong: #111827;
  --grid:      #e5e7eb;
  --c-blue:    #1d4ed8;
  --c-red:     #b91c1c;
  --c-green:   #15803d;
  --c-amber:   #b45309;
  --c-teal:    #0e7490;
  --c-hist:    #94a3b8;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#0b1220; --bg-tint:#131c2e; --bg-chip:#1e293b;
    --ink:#f1f5f9; --ink-mid:#cbd5e1; --ink-light:#94a3b8; --ink-faint:#64748b;
    --rule:#1f2937; --rule-dark:#334155; --rule-strong:#f1f5f9; --grid:#1e293b;
    --c-blue:#60a5fa; --c-red:#f87171; --c-green:#4ade80;
    --c-amber:#fbbf24; --c-teal:#22d3ee; --c-hist:#64748b;
  }
}

/* Layout */
.article{max-width:800px;margin:0 auto;padding:48px 24px 80px;}

/* Typography */
.kicker{font-family:var(--sans);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c-teal);margin-bottom:18px;}
.headline{font-family:var(--serif);font-size:clamp(1.9rem,4.2vw,2.8rem);line-height:1.15;color:var(--ink);font-weight:700;margin:0 0 18px;letter-spacing:-.01em;}
.dek{font-family:var(--sans);font-size:1.08rem;line-height:1.5;color:var(--ink-light);margin:0 0 28px;}
.dek strong{color:var(--ink);font-weight:600;}
.meta{font-family:var(--mono);font-size:.7rem;color:var(--ink-faint);letter-spacing:.04em;padding:10px 0;margin-bottom:44px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:18px;}
.meta span strong{color:var(--ink);font-weight:600;}
.section-num{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;color:var(--c-blue);font-weight:600;margin-bottom:4px;display:block;}
.section-title{font-family:var(--serif);font-size:1.65rem;line-height:1.25;color:var(--ink);font-weight:700;margin:36px 0 14px;letter-spacing:-.005em;}
.prose{max-width:720px;font-family:var(--serif);font-size:1rem;line-height:1.7;color:var(--ink-mid);margin:0 0 24px;}
.prose p{margin:0 0 1em;}
.prose strong{color:var(--ink);}

/* Hero stat strip */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));border:1px solid var(--rule-dark);margin:0 0 36px;background:var(--bg);}
.stat-cell{padding:16px 18px;border-right:1px solid var(--rule);font-family:var(--sans);}
.stat-cell:last-child{border-right:none;}
/* Scoped to avoid conflict with .stat-label on index project cards */
.stat-row .stat-label{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);margin-bottom:6px;}
.stat-val{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--ink);line-height:1.1;margin-bottom:4px;}
.stat-val.blue{color:var(--c-blue);}
.stat-val.red{color:var(--c-red);}
.stat-val.green{color:var(--c-green);}
.stat-val.amber{color:var(--c-amber);}
.stat-note{font-size:.74rem;color:var(--ink-mid);line-height:1.4;}

/* Charts */
.chart{margin:0 0 44px;}
.chart-eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-light);margin-bottom:6px;}
.chart-title{font-family:var(--serif);font-size:1.2rem;line-height:1.3;color:var(--ink);font-weight:700;margin:0 0 6px;}
.chart-subtitle{font-family:var(--sans);font-size:.85rem;color:var(--ink-light);margin-bottom:16px;line-height:1.5;}
.chart-svg-wrap{width:100%;}
.chart-svg-wrap svg{width:100%;height:auto;font-family:var(--sans);}
.chart-source{font-family:var(--sans);font-size:.68rem;color:#6B7280;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);line-height:1.5;}
/* SVG annotation helpers */
.grid-line{stroke:var(--grid);stroke-width:1;stroke-dasharray:2,3;}
.tick-text{fill:var(--ink-mid);font-size:12px;}
.axis-title{fill:var(--ink-mid);font-size:12px;font-weight:600;}
.data-label{font-size:12px;font-weight:600;}
.end-label-bold{font-size:12px;font-weight:700;}
.end-label-light{font-size:11px;font-weight:400;fill:var(--ink-light);}
.annot{font-size:11px;font-style:italic;fill:var(--ink-mid);}

/* Callout block */
.callout{border-left:3px solid var(--c-red);background:var(--bg-tint);padding:14px 18px;margin:20px 0 28px;max-width:720px;font-family:var(--sans);font-size:.92rem;line-height:1.6;color:var(--ink-mid);}
.callout strong{color:var(--ink);}

/* Pull-quote: full-width block on mobile, floats right within article on desktop */
.pullquote{border-left:3px solid var(--c-red);background:var(--bg-tint);padding:14px 18px;margin:20px 0 28px;font-family:var(--sans);font-size:.88rem;line-height:1.6;color:var(--ink-mid);}
.pullquote strong{color:var(--ink);}
@media(min-width:900px){
  .pullquote{float:right;width:42%;margin:4px 0 20px 24px;clear:right;}
}

/* Pro/con cards grid */
.pros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:18px 0 32px;}
.pro-card{border:1px solid var(--rule-dark);padding:14px 16px;background:var(--bg);border-left:3px solid var(--c-green);}
.pro-card.amber{border-left-color:var(--c-amber);}
.pro-card.red{border-left-color:var(--c-red);}
.pro-card.blue{border-left-color:var(--c-blue);}
.card-label{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);margin-bottom:4px;}
.card-title{font-family:var(--sans);font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:6px;line-height:1.3;}
.card-body{font-family:var(--serif);font-size:.88rem;color:var(--ink-mid);line-height:1.55;}

/* Comparison table */
.compare-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.86rem;margin:18px 0 28px;background:var(--bg);}
.compare-table thead th{text-align:left;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);padding:10px 12px;border-bottom:1px solid var(--rule-dark);background:var(--bg-tint);}
.compare-table td{padding:11px 12px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink-mid);line-height:1.5;}
.compare-table td:first-child{font-weight:600;color:var(--ink);}
.compare-table .good{color:var(--c-green);font-weight:600;}
.compare-table .bad{color:var(--c-red);font-weight:600;}
.compare-table .warn{color:var(--c-amber);font-weight:600;}

/* Article footer */
.article-footer{margin-top:60px;padding-top:24px;border-top:2px solid var(--rule-strong);font-family:var(--sans);font-size:.78rem;color:var(--ink-light);line-height:1.6;}
.article-footer p{margin:0 0 8px;}
.article-footer strong{color:var(--ink);font-weight:700;}

/* Language switcher */
.lang-switcher{display:flex;align-items:center;gap:8px;margin-bottom:24px;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.04em;}
.lang-switcher-label{color:var(--ink-faint);}
.lang-active{color:var(--ink);font-weight:700;border-bottom:2px solid var(--c-red);padding-bottom:1px;}
.lang-link{color:var(--c-blue);text-decoration:none;}
.lang-link:hover{text-decoration:underline;}
.lang-sep{color:var(--ink-faint);}

/* Share strip */
.share-strip{display:flex;align-items:center;gap:10px;margin:40px 0 24px;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--sans);flex-wrap:wrap;}
.share-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.share-btn{font-family:var(--sans);font-size:.76rem;font-weight:600;color:var(--ink-mid);background:var(--bg-chip);border:1px solid var(--rule-dark);padding:4px 12px;border-radius:4px;text-decoration:none;cursor:pointer;transition:background 0.15s,color 0.15s,border-color 0.15s;}
.share-btn:hover{background:var(--c-red);color:#fff;border-color:var(--c-red);}

@media(max-width:640px){
  .article{padding:32px 16px 60px;}
  .stat-cell{border-right:none;border-bottom:1px solid var(--rule);}
  .stat-cell:last-child{border-bottom:none;}
}

/* ── Dark mode ── */
@media (prefers-color-scheme: dark) {
    body {
        background: #141c2e;
        color: #e2e8f0;
    }

    .mission,
    .project-card,
    .analysis-section,
    .conclusion {
        background: #1d2a42;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    }

    .mission h2 {
        color: #FCA5A5;
    }

    .mission p,
    .analysis-desc,
    .conclusion-body p {
        color: #cbd5e1;
    }

    .project-stats {
        border-bottom-color: #2e3f58;
    }

    .stat-item {
        border-right-color: #2e3f58;
    }

    .insight-box {
        background: #1a2f52;
        border-color: #1d4ed8;
        border-left-color: #60a5fa;
        color: #a5c8fd;
    }

    .insight-box strong {
        color: #bfdbfe;
    }

    .insight-box-green {
        background: #042712;
        border-color: #166534;
        border-left-color: #4ade80;
        color: #86efac;
    }

    .prov-item {
        background: #141c2e;
        border-color: #2e3f58;
    }

    .prov-label {
        color: #475569;
    }

    .prov-value {
        color: #94a3b8;
    }

    .concerns-list li {
        border-bottom-color: #2e3f58;
    }

    .concern-title {
        color: #f8fafc;
    }

    .concern-desc {
        color: #94a3b8;
    }

    .verdict-table thead tr {
        background: #141c2e;
    }

    .verdict-table th {
        color: #475569;
    }

    .verdict-table td {
        border-bottom-color: #2e3f58;
    }

    .verdict-table .claim-col {
        color: #f8fafc;
    }

    .verdict-table .evidence-col {
        color: #94a3b8;
    }

    .badge-red {
        background: #3d0a0a;
        border-color: #7f1d1d;
    }

    .badge-amber {
        background: #3a1c02;
        border-color: #78350f;
    }

    .gdp-legend-item {
        color: #94a3b8;
    }

    .source-line {
        color: #475569;
        border-left-color: #2e3f58;
    }

    .divider::before,
    .divider::after {
        background: #2e3f58;
    }

    .footer {
        background: #0f172a;
        color: #94a3b8;
        border-top-color: #1e293b;
    }

    .footer-brand { color: #f1f5f9; }
    .footer-links a { color: #94a3b8; }
    .footer-links a:hover { color: #f1f5f9; }
    .footer-divider { border-top-color: #334155; }
    .footer-disclaimer { color: #64748b; }

    .site-header {
        background: #1e293b;
        border-bottom-color: #334155;
    }

    .site-name { color: #f8fafc; }
    .site-tagline { color: #64748b; }
    .site-nav-link { color: #93c5fd; }

    .category-heading {
        color: #FCA5A5;
        border-bottom-color: #9B1C1C;
    }

    .category-heading-count { color: #94A3B8; }

    .dashboard-card {
        background: #141c2e;
        border-color: #2e3f58;
    }

    .dashboard-card:hover { border-color: #3B82F6; }
    .dashboard-title { color: #FCA5A5; }
    .dashboard-meta { color: #94A3B8; }

    .chart-label { color: #CBD5E1; }
    .chart-source { color: #94A3B8; }
    .prov-label { color: #94A3B8; }
    .stat-label { color: #94A3B8; }
    .source-line { color: #94A3B8; }
    .verdict-table th { color: #CBD5E1; }
}

/* ── Manual dark mode (mirrors @media above; wins via specificity) ── */
html[data-theme="dark"] { --bg:#0b1220;--bg-tint:#131c2e;--bg-chip:#1e293b;--ink:#f1f5f9;--ink-mid:#cbd5e1;--ink-light:#94a3b8;--ink-faint:#64748b;--rule:#1f2937;--rule-dark:#334155;--rule-strong:#f1f5f9;--grid:#1e293b;--c-blue:#60a5fa;--c-red:#f87171;--c-green:#4ade80;--c-amber:#fbbf24;--c-teal:#22d3ee;--c-hist:#64748b; }
html[data-theme="dark"] body { background: #141c2e; color: #e2e8f0; }
html[data-theme="dark"] .mission,
html[data-theme="dark"] .project-card,
html[data-theme="dark"] .analysis-section,
html[data-theme="dark"] .conclusion { background: #1d2a42; box-shadow: 0 1px 3px rgba(0,0,0,0.4); }
html[data-theme="dark"] .mission h2 { color: #FCA5A5; }
html[data-theme="dark"] .mission p,
html[data-theme="dark"] .analysis-desc,
html[data-theme="dark"] .conclusion-body p { color: #cbd5e1; }
html[data-theme="dark"] .project-stats { border-bottom-color: #2e3f58; }
html[data-theme="dark"] .stat-item { border-right-color: #2e3f58; }
html[data-theme="dark"] .insight-box { background: #1a2f52; border-color: #1d4ed8; border-left-color: #60a5fa; color: #a5c8fd; }
html[data-theme="dark"] .insight-box strong { color: #bfdbfe; }
html[data-theme="dark"] .insight-box-green { background: #042712; border-color: #166534; border-left-color: #4ade80; color: #86efac; }
html[data-theme="dark"] .prov-item { background: #141c2e; border-color: #2e3f58; }
html[data-theme="dark"] .prov-label,
html[data-theme="dark"] .prov-value { color: #94a3b8; }
html[data-theme="dark"] .concerns-list li { border-bottom-color: #2e3f58; }
html[data-theme="dark"] .concern-title { color: #f8fafc; }
html[data-theme="dark"] .concern-desc { color: #94a3b8; }
html[data-theme="dark"] .verdict-table thead tr { background: #141c2e; }
html[data-theme="dark"] .verdict-table th,
html[data-theme="dark"] .verdict-table .evidence-col { color: #94a3b8; }
html[data-theme="dark"] .verdict-table td { border-bottom-color: #2e3f58; }
html[data-theme="dark"] .verdict-table .claim-col { color: #f8fafc; }
html[data-theme="dark"] .badge-red { background: #3d0a0a; border-color: #7f1d1d; }
html[data-theme="dark"] .badge-amber { background: #3a1c02; border-color: #78350f; }
html[data-theme="dark"] .gdp-legend-item,
html[data-theme="dark"] .source-line { color: #94a3b8; }
html[data-theme="dark"] .source-line { border-left-color: #2e3f58; }
html[data-theme="dark"] .divider::before,
html[data-theme="dark"] .divider::after { background: #2e3f58; }
html[data-theme="dark"] .footer { background: #0f172a; color: #94a3b8; border-top-color: #1e293b; }
html[data-theme="dark"] .footer-brand { color: #f1f5f9; }
html[data-theme="dark"] .footer-links a { color: #94a3b8; }
html[data-theme="dark"] .footer-links a:hover { color: #f1f5f9; }
html[data-theme="dark"] .footer-divider { border-top-color: #334155; }
html[data-theme="dark"] .footer-disclaimer { color: #64748b; }
html[data-theme="dark"] .footer-tagline-ne { color: #334155; }
html[data-theme="dark"] .footer-col-label { color: #475569; }
html[data-theme="dark"] .footer-col-link { color: #94a3b8; }
html[data-theme="dark"] .footer-col-link:hover { color: #f1f5f9; }
html[data-theme="dark"] .site-header { background: #1e293b; border-bottom-color: #334155; }
html[data-theme="dark"] .site-name { color: #f8fafc; }
html[data-theme="dark"] .site-tagline { color: #64748b; }
html[data-theme="dark"] .site-nav-link { color: #93c5fd; }
html[data-theme="dark"] .theme-toggle { color: #94a3b8; border-color: #334155; }
html[data-theme="dark"] .category-heading { color: #FCA5A5; border-bottom-color: #9B1C1C; }
html[data-theme="dark"] .category-heading-count { color: #94A3B8; }
html[data-theme="dark"] .dashboard-card { background: #141c2e; border-color: #2e3f58; }
html[data-theme="dark"] .dashboard-card:hover { border-color: #3B82F6; }
html[data-theme="dark"] .dashboard-title { color: #FCA5A5; }
html[data-theme="dark"] .dashboard-meta,
html[data-theme="dark"] .chart-label,
html[data-theme="dark"] .chart-source,
html[data-theme="dark"] .stat-label { color: #94A3B8; }

/* ── Responsive ── */
@media (max-width: 768px) {
    .header h1 {
        font-size: 1.5rem;
    }

    .project-card-header,
    .analysis-section-header {
        flex-direction: column;
    }

    .project-links {
        width: 100%;
    }

    .proj-btn {
        flex: 1;
        text-align: center;
    }

    .nav-buttons {
        flex-direction: column;
        align-items: center;
    }

    .nav-button {
        width: 100%;
        max-width: 300px;
    }

    .analysis-body {
        padding: 1.25rem;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 0.75rem;
    }

    .mission,
    .analysis-body {
        padding: 1.25rem;
    }

    .project-card-header {
        padding: 1.25rem;
    }

    .project-title {
        font-size: 1.1rem;
    }

    .project-stats {
        flex-direction: column;
    }

    .stat-item {
        border-right: none;
        border-bottom: 1px solid #F3F4F6;
    }
}