@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@400;600;700&family=Playfair+Display:wght@700;900&family=Libre+Franklin:wght@300;400;600&family=IM+Fell+English:ital@0;1&family=Trajan+Pro:wght@400;700&family=Alfa+Slab+One&family=Playfair+Display+SC:wght@400;700;900&family=Patua+One&family=Poiret+One&family=Raleway:wght@400;600;700&family=Space+Mono:wght@400;700&family=Rye&family=Bree+Serif&family=Cinzel:wght@400;700;900&family=Anton&family=Pinyon+Script&family=Libre+Caslon+Display&display=swap');

@font-face {
    font-family: 'Chomsky';
    font-style: normal;
    font-weight: 400;
    src: local('Chomsky'), url('https://fonts.cdnfonts.com/s/29135/Chomsky.woff') format('woff');
    font-display: swap;
}

:root {
    --patriot-red: #D22630;
    --patriot-blue: #002868;
    --patriot-cream: #F7F4E9;
    --gold-accent: #FFD700;
    --dark-navy: #001838;
    --light-gray: #E8E6DC;
    --text-dark: #1a1a1a;
    --dem-blue: #0015BC;
    --gop-red: #E81B23;
    --border-width: 3px;
}

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

body {
    font-family: 'Libre Franklin', sans-serif;
    background: linear-gradient(135deg, var(--dark-navy) 0%, #003366 100%);
    color: var(--text-dark);
    overflow-x: hidden;
    min-height: 100vh;
}

.bg-stars { position: fixed; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none; z-index: 0; }
.star { position: absolute; width: 2px; height: 2px; background: white; border-radius: 50%; animation: twinkle 3s infinite ease-in-out; }
@keyframes twinkle { 0%,100%{opacity:.3} 50%{opacity:1} }

.game-header { background: var(--patriot-red); padding: 6px 40px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); position: relative; z-index: 10; border-bottom: var(--border-width) solid var(--gold-accent); }
.game-title { font-family: 'Playfair Display', serif; font-size: 1.6rem; font-weight: 900; color: white; text-align: center; letter-spacing: 2px; text-shadow: 2px 2px 0 var(--dark-navy); margin-bottom: 2px; text-transform: uppercase; }
.game-subtitle { font-family: 'Oswald', sans-serif; font-size: 0.75rem; color: var(--patriot-cream); text-align: center; letter-spacing: 3px; text-transform: uppercase; }

.game-container { position: relative; z-index: 1; max-width: 1800px; margin: 0 auto; padding: 12px 20px; }
.screen { display: none; }
.screen.active { display: block; }

/* ── Newspaper Intro Screen ── */
#introScreen.screen.active {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 80px);
    overflow: hidden;
    position: relative;
}

/* ── Floating CTA buttons ── */
.intro-floating-buttons {
    position: fixed;
    bottom: 32px;
    left: 50%; transform: translateX(-50%);
    z-index: 100;
    display: flex; flex-direction: row; align-items: center; gap: 16px;
}
.intro-floating-buttons .btn {
    padding: 14px 44px; font-size: 1.05rem; border-radius: 50px;
    letter-spacing: 2px; font-weight: 700;
    box-shadow: 0 6px 28px rgba(0,0,0,0.5);
    transition: all .25s ease;
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.intro-floating-buttons .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 36px rgba(0,0,0,0.6);
}
.intro-floating-buttons .btn-primary {
    background: linear-gradient(135deg, #D22630 0%, #ff4757 100%);
    color: white; border: none;
}
.intro-floating-buttons .btn-primary:hover {
    background: linear-gradient(135deg, #ff4757 0%, #D22630 100%);
}
.intro-floating-buttons .btn-secondary {
    background: rgba(255,255,255,0.15);
    color: #ffffff; border: 1px solid rgba(255,255,255,0.3);
}
.intro-floating-buttons .btn-secondary:hover {
    background: rgba(255,255,255,0.25);
}

/* ── The newspaper page itself ── */
.newspaper-page {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    background: #fdf8f0;
    font-family: 'nyt-cheltenham', 'Georgia', 'Times New Roman', Times, serif;
    color: #121212;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 100px; /* space for floating buttons */
    position: relative;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3E%3Cpolygon points='0,4 4,0 8,4' fill='white'/%3E%3C/svg%3E"), linear-gradient(white, white);
    mask-size: 8px 4px, 100% calc(100% - 4px);
    mask-position: top center, bottom center;
    mask-repeat: repeat-x, no-repeat;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3E%3Cpolygon points='0,4 4,0 8,4' fill='white'/%3E%3C/svg%3E"), linear-gradient(white, white);
    -webkit-mask-size: 8px 4px, 100% calc(100% - 4px);
    -webkit-mask-position: top center, bottom center;
    -webkit-mask-repeat: repeat-x, no-repeat;
    padding-top: 6px;
}

/* ── Masthead ── */
.nyt-masthead-area {
    display: flex; align-items: center; justify-content: center;
    padding: 12px 24px 6px;
    position: relative;
}
.nyt-masthead-left, .nyt-masthead-right {
    flex: 1;
    font-family: 'Georgia', serif;
    font-size: .6rem;
    color: #333;
    line-height: 1.3;
}
.nyt-masthead-left { text-align: left; }
.nyt-masthead-right { text-align: right; }
.nyt-edition { font-style: italic; }
.nyt-masthead-center { flex: 2; text-align: center; }
.nyt-masthead-title {
    font-family: 'Chomsky', 'Old English Text MT', 'UnifrakturMaguntia', 'Playfair Display', 'Georgia', serif;
    font-size: 3.6rem;
    letter-spacing: 1px;
    line-height: 1;
    color: #121212;
}
.nyt-dateline-bar {
    display: flex; justify-content: space-between;
    padding: 4px 24px;
    font-size: .68rem;
    font-family: 'nyt-franklin', 'Arial', 'Helvetica', sans-serif;
    color: #666;
    border-top: 2px solid #121212;
    border-bottom: 1px solid #ccc;
}

/* ── Content area ── */
.nyt-content {
    padding: 0 24px 24px;
}

/* ── Lead section ── */
.nyt-lead-section {
    text-align: center;
    padding: 16px 0 10px;
    border-bottom: 1px solid #ccc;
    margin-bottom: 14px;
}
.nyt-lead-headline {
    font-family: 'nyt-cheltenham', 'Georgia', 'Times New Roman', serif;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.12;
    margin: 0 auto 8px;
    max-width: 900px;
    letter-spacing: -0.5px;
    color: #121212;
}
.nyt-lead-subhead {
    font-family: 'Georgia', serif;
    font-size: 1rem;
    font-weight: 400;
    font-style: italic;
    color: #333;
    line-height: 1.35;
    margin: 0 auto;
    max-width: 750px;
}

/* ── Lead layout: text + photo side by side ── */
.nyt-lead-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 16px;
}
.nyt-lead-text {
    font-size: .9rem;
    line-height: 1.55;
    color: #333;
}
.nyt-lead-text p {
    margin: 0 0 10px;
    text-indent: 0;
}
.nyt-byline {
    font-family: 'nyt-franklin', 'Arial', 'Helvetica', sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .4px;
    color: #121212;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e2e2e2;
}
.nyt-lede { text-indent: 0 !important; }
.nyt-dropcap {
    float: left;
    font-size: 4rem;
    line-height: .78;
    padding-right: 6px;
    padding-top: 4px;
    font-weight: 700;
    color: #121212;
    font-family: 'Georgia', serif;
}
.nyt-cont {
    text-align: right;
    font-size: .75rem;
    color: #999;
    margin-top: 8px;
    font-style: italic;
}

/* ── Photo ── */
.nyt-lead-photo {
    display: flex;
    flex-direction: column;
}
.nyt-lead-photo img {
    width: 100%;
    height: auto;
    display: block;
    border: none;
}
.nyt-photo-caption {
    font-family: 'nyt-franklin', 'Arial', 'Helvetica', sans-serif;
    font-size: .7rem;
    color: #666;
    line-height: 1.4;
    margin-top: 6px;
    padding-top: 4px;
    border-top: 1px solid #e2e2e2;
}
.nyt-photo-credit {
    color: #999;
    font-size: .62rem;
}

/* ── Rules ── */
.nyt-rule-heavy {
    border-top: 2px solid #121212;
    margin: 16px 0;
}
.nyt-rule-light {
    border-top: 1px solid #ccc;
    margin: 16px 0;
}

/* ── Secondary stories grid ── */
.nyt-secondary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
}
.nyt-secondary-story {
    border-left: 1px solid #ccc;
    padding-left: 16px;
}
.nyt-secondary-story:first-child {
    border-left: none;
    padding-left: 0;
}
.nyt-secondary-headline {
    font-family: 'nyt-cheltenham', 'Georgia', serif;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 6px;
    color: #121212;
}
.nyt-secondary-text {
    font-size: .8rem;
    line-height: 1.5;
    color: #333;
    margin: 0;
}

/* ── Lower columns ── */
.nyt-lower-columns {
    column-count: 3;
    column-gap: 24px;
    column-rule: 1px solid #ddd;
    font-size: .85rem;
    line-height: 1.55;
    color: #333;
}
.nyt-lower-columns p {
    margin: 0 0 10px;
    text-indent: 1.5em;
}
.nyt-lower-columns p:first-child {
    text-indent: 0;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .nyt-masthead-title { font-size: 2.4rem; }
    .nyt-lead-headline { font-size: 1.6rem; }
    .nyt-lead-layout { grid-template-columns: 1fr; }
    .nyt-secondary-grid { grid-template-columns: 1fr; }
    .nyt-secondary-story { border-left: none; padding-left: 0; border-top: 1px solid #ccc; padding-top: 12px; }
    .nyt-secondary-story:first-child { border-top: none; padding-top: 0; }
    .nyt-lower-columns { column-count: 1; }
    .nyt-masthead-left, .nyt-masthead-right { display: none; }
}

/* Setup — full-bleed background */
#setupScreen.screen.active {
    position: relative;
    background: url('../images/Selection%20screen%20background.png') center center / cover no-repeat;
    min-height: calc(100vh - 80px);
    padding: 0;
    border-radius: 12px;
    overflow: hidden;
}
#setupScreen.screen.active::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,10,30,0.55) 0%, rgba(0,10,30,0.35) 50%, rgba(0,10,30,0.65) 100%);
    z-index: 0;
}

/* Load Saved Game — same full-bleed background as setup */
#loadScreen.screen.active {
    position: relative;
    background: url('../images/Selection%20screen%20background.png') center center / cover no-repeat;
    min-height: calc(100vh - 80px);
    padding: 0;
    border-radius: 12px;
    overflow: hidden;
}
#loadScreen.screen.active::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,10,30,0.55) 0%, rgba(0,10,30,0.35) 50%, rgba(0,10,30,0.65) 100%);
    z-index: 0;
}

/* Load screen: single centered panel instead of the 3-column setup grid */
.load-grid { display: flex; justify-content: center; margin-bottom: 18px; }
.load-panel { width: 100%; max-width: 920px; }

/* ── Instructions / How-to-Play screen ── */
#instructionsScreen.screen.active { overflow-y: auto; }
.instructions-wrap { display: flex; justify-content: center; margin-bottom: 18px; }
.instructions-panel {
    width: 100%;
    max-width: 860px;
    text-align: left;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    padding: 28px 34px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
    max-height: calc(100vh - 230px);
    overflow-y: auto;
}
.instr-section { margin-bottom: 26px; }
.instr-section:last-child { margin-bottom: 0; }
.instr-heading {
    font-family: 'Oswald', sans-serif;
    font-size: 1.25rem;
    letter-spacing: 1px;
    color: var(--patriot-cream, #f4ecd8);
    border-bottom: 2px solid rgba(210, 38, 48, 0.7);
    padding-bottom: 6px;
    margin: 0 0 12px;
}
.instr-subheading {
    font-family: 'Oswald', sans-serif;
    font-size: 1.02rem;
    letter-spacing: 0.5px;
    color: #ffd9a0;
    margin: 16px 0 6px;
}
.instructions-panel p {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    margin: 0 0 10px;
    font-size: 0.97rem;
}
.instructions-panel ul {
    margin: 6px 0 10px;
    padding-left: 22px;
    color: rgba(255, 255, 255, 0.92);
}
.instructions-panel li { line-height: 1.55; margin-bottom: 6px; font-size: 0.96rem; }
.instructions-panel strong { color: #ffffff; }
.instructions-panel em { color: #ffe4b5; font-style: italic; }
.instr-tip {
    background: rgba(210, 38, 48, 0.14);
    border: 1px solid rgba(210, 38, 48, 0.4);
    border-radius: 10px;
    padding: 14px 18px;
}
.instr-tip p { margin: 0; }

/* Saved-game rows rendered as a glassy table */
.load-table { display: flex; flex-direction: column; gap: 10px; }
.load-row {
    display: grid;
    grid-template-columns: 56px 1.4fr 1.2fr 1fr 1.1fr auto;
    align-items: center; gap: 14px;
    padding: 12px 16px; border-radius: 12px;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.22);
    box-shadow: 0 4px 18px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.16);
    cursor: pointer;
    transition: transform .12s, background .15s, box-shadow .15s, border-color .15s;
}
.load-row:hover {
    transform: translateY(-2px);
    background: rgba(255,255,255,0.18);
    border-color: rgba(255,215,0,0.55);
    box-shadow: 0 8px 26px rgba(0,0,0,0.32), inset 0 1px 0 rgba(255,255,255,0.22);
}
.load-row-header {
    cursor: default; background: transparent; border: none; box-shadow: none;
    padding: 2px 16px 0; transform: none;
    text-transform: uppercase; letter-spacing: 1px;
    font-family: 'Oswald', sans-serif; font-size: 0.72rem;
    color: rgba(255,255,255,0.7);
}
.load-row-header:hover { transform: none; background: transparent; box-shadow: none; border: none; }
.load-cell-logo { display: flex; align-items: center; justify-content: center; }
.load-cell-logo img {
    width: 48px; height: 48px; border-radius: 50%; object-fit: cover;
    box-shadow: 0 2px 8px rgba(0,0,0,0.4); border: 2px solid rgba(255,255,255,0.5);
    background: rgba(255,255,255,0.15);
}
.load-cell-name { display: flex; flex-direction: column; gap: 2px; }
.load-cell-name .lc-name {
    font-family: 'Oswald', sans-serif; font-size: 1.02rem; font-weight: 600;
    color: #fff; line-height: 1.1; text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
.load-cell-name .lc-party { font-size: 0.74rem; color: rgba(255,255,255,0.7); }
.load-cell { font-size: 0.86rem; color: rgba(255,255,255,0.92); text-shadow: 0 1px 3px rgba(0,0,0,0.45); }
.load-cell .lc-strong { font-weight: 700; color: #fff; }
.load-cell .lc-sub { display: block; font-size: 0.72rem; color: rgba(255,255,255,0.62); margin-top: 1px; }
.load-cell-actions { display: flex; gap: 8px; align-items: center; justify-content: flex-end; }
.load-btn {
    font-family: 'Oswald', sans-serif; letter-spacing: 0.5px; text-transform: uppercase;
    font-size: 0.78rem; padding: 7px 16px; border-radius: 7px; cursor: pointer;
    border: 1px solid rgba(255,255,255,0.35); color: #0a1630; font-weight: 700;
    background: linear-gradient(180deg, #ffe98a 0%, #f5c542 100%);
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    transition: filter .12s, transform .12s;
}
.load-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.load-delete {
    width: 30px; height: 30px; border-radius: 7px; cursor: pointer;
    border: 1px solid rgba(255,255,255,0.28); color: #fff; font-size: 0.95rem; line-height: 1;
    background: rgba(180,40,40,0.55); transition: background .12s, transform .12s;
    display: flex; align-items: center; justify-content: center;
}
.load-delete:hover { background: rgba(210,50,50,0.85); transform: translateY(-1px); }
.load-empty {
    text-align: center; color: rgba(255,255,255,0.8); font-size: 0.95rem;
    padding: 40px 16px; font-style: italic;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
@media (max-width: 760px) {
    .load-row { grid-template-columns: 48px 1fr auto; }
    .load-row-header { display: none; }
}
.setup-screen {
    position: relative; z-index: 1;
    background: transparent; border: none; box-shadow: none;
    border-radius: 0; padding: 18px 28px 24px;
}
.setup-header {
    font-family: 'Bebas Neue', 'Oswald', sans-serif;
    font-size: 3.2rem; color: #ffffff; text-transform: uppercase;
    letter-spacing: 6px; margin-bottom: 2px; text-align: center;
    border-bottom: none; padding-bottom: 0;
    text-shadow: 0 2px 12px rgba(0,0,0,0.7), 0 0 40px rgba(100,160,255,0.25);
    line-height: 1.1;
}
.setup-subtitle {
    text-align: center; font-size: 0.85rem;
    color: rgba(255,255,255,0.8); margin-bottom: 18px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
    letter-spacing: 0.5px;
}

/* ---- Setup: 3-column grid (Major | Minor | Polls) ---- */
.setup-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; margin-bottom: 18px; }
@media (max-width:1400px){ .setup-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:900px){ .setup-grid{ grid-template-columns:1fr; } }

/* Glassmorphism panels */
.candidates-panel, .polls-panel {
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    padding: 16px 18px; border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.22);
}
.panel-title {
    font-family: 'Oswald', sans-serif; font-size: 1.15rem;
    color: #ffffff; margin-bottom: 10px;
    text-transform: uppercase; letter-spacing: 1.5px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

.party-group { margin-bottom: 12px; }
.party-group:last-child { margin-bottom: 0; }
.party-header {
    display: flex; align-items: center; gap: 9px;
    font-family: 'Oswald', sans-serif; font-size: 1rem; color: white;
    padding: 6px 14px; margin-bottom: 6px; border-radius: 6px;
    letter-spacing: 1px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
/* Children are passthrough so the whole bar stays one drag-drop target */
.party-header > * { pointer-events: none; }
/* Party emblem on a white badge so colored logos stay legible on the colored bar */
.party-header-logo {
    width: 26px; height: 26px; flex-shrink: 0;
    border-radius: 50%; background: #fff; padding: 4px;
    object-fit: contain;
    box-shadow: 0 1px 3px rgba(0,0,0,0.35);
}
/* Dem & Green emblems are tight circles: drop the inset so the colored ring
   meets the badge's outer edge. The Republican elephant is a COMPLETE image that
   filled its canvas edge-to-edge (zero margin), so the circular badge clipped its
   wide legs/trunk. It now uses a pre-fitted square asset
   (republican_elephant_badge.png) with transparent margin baked in, so it sits
   safely inside the circle at any inset — hence padding 0 here for max size. */
.party-header-logo.dem,
.party-header-logo.green { padding: 0; }
.party-header-logo.gop { padding: 0; }
.party-header.democratic { background: rgba(0,21,188,0.85); }
.party-header.republican { background: rgba(232,27,35,0.85); }
.party-header.libertarian { background: rgba(255,140,0,0.85); }
.party-header.green { background: rgba(46,125,50,0.85); }
.party-header.independent { background: rgba(107,107,107,0.85); }

/* Logo grid inside each party */
.party-logo-grid {
    display: flex; flex-wrap: wrap; gap: 10px; padding: 8px 4px;
    min-height: 80px; justify-content: center; align-items: center;
    border: 2px dashed transparent; border-radius: 4px;
    transition: border-color .15s, background .15s;
}
.party-logo-grid:empty::after { content: 'Drop here'; display: block; width: 100%; text-align: center; color: rgba(255,255,255,0.45); font-size: .75rem; padding: 18px 0; font-style: italic; }
.party-logo-grid.drag-over { border-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.08); }

/* Setup logo — bare image, no box */
.setup-logo-tile {
    position: relative; cursor: pointer; line-height: 0;
    border-radius: 50%; padding: 0;
    border: 3px solid transparent;
    transition: transform .12s, box-shadow .12s, border-color .2s;
    background: transparent;
    /* overflow visible so the candidate-name overlay can spill past the circle */
    overflow: visible;
    width: 86px; height: 86px;
}
.setup-logo-tile:hover { transform: scale(1.15); z-index: 2; box-shadow: 0 0 18px rgba(255,255,255,0.35); }
/* The image clipper keeps the logo perfectly circular even though the tile
   itself allows overflow for the name overlay. */
.setup-logo-tile .tile-image-clip {
    position: absolute; inset: 0; border-radius: 50%; overflow: hidden;
    pointer-events: none;
}
.setup-logo-tile .tile-image-clip img { width: 142%; height: 142%; object-fit: contain; pointer-events: none; display: block; margin: -21% 0 0 -21%; }

/* Candidate name — styled as a small campaign nameplate banner that sits
   about 7/8 of the way down the tile, matching the navy/patriotic atmosphere
   of the setup screen (translucent navy, thin gold-tinted border, gentle lift). */
.setup-logo-tile .tile-name-overlay {
    position: absolute;
    left: 50%; top: 87.5%;
    transform: translate(-50%, -50%);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7.5px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.2px;
    color: #f6f8ff;
    text-align: center;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    padding: 2.5px 6px;
    border-radius: 4px;
    background: linear-gradient(180deg, rgba(20,40,80,0.94) 0%, rgba(10,22,48,0.96) 100%);
    border: 1px solid rgba(255,215,0,0.45);
    box-shadow: 0 1px 3px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08);
    text-shadow: 0 1px 1px rgba(0,0,0,0.6);
    z-index: 3;
}

/* Gold outline for player-controlled candidates */
.setup-logo-tile.is-player { border-color: #FFD700; box-shadow: 0 0 14px rgba(255,215,0,0.6), 0 0 30px rgba(255,215,0,0.2); }
/* Player nameplate gets a brighter gold border to echo the gold tile ring. */
.setup-logo-tile.is-player .tile-name-overlay { border-color: rgba(255,215,0,0.85); }

/* Greyed-out for non-running candidates */
.setup-logo-tile.not-running .tile-image-clip img { filter: grayscale(100%) opacity(0.4); }
.setup-logo-tile.not-running .tile-name-overlay { opacity: 0.5; filter: grayscale(60%); }

/* Dragging state */
.setup-logo-tile.dragging { opacity: 0.35; }

/* ---- Candidate config popup (setup screen) ---- */
.setup-config-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 9999;
    display: flex; align-items: center; justify-content: center;
}
.setup-config-popup {
    background: white; border-radius: 12px; padding: 24px 32px; min-width: 260px; max-width: 720px;
    width: 90vw;
    box-shadow: 0 12px 40px rgba(0,0,0,0.3); border: 3px solid var(--patriot-blue);
    text-align: center; font-family: 'Libre Franklin', sans-serif;
    max-height: 92vh; overflow-y: auto;
}
.setup-config-popup img { width: 72px; height: 72px; object-fit: contain; margin-bottom: 6px; }
.setup-config-popup h3 { font-family: 'Oswald', sans-serif; font-size: 1.2rem; margin: 0 0 12px; color: var(--patriot-blue); }
.setup-bio-text {
    text-align: left; font-size: 0.82rem; line-height: 1.6; color: #333;
    margin: 0 0 14px; padding: 12px 16px; background: #f8f9fa;
    border-radius: 8px; border-left: 3px solid var(--patriot-blue);
}
.setup-bio-text p {
    margin: 0 0 10px;
}
.setup-bio-text p:last-child {
    margin-bottom: 0;
}
.setup-config-popup .config-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-top: 1px solid #eee; font-size: 0.88rem; }
.setup-config-popup .config-row label { font-weight: 600; color: #444; }
.setup-config-toggle {
    position: relative; width: 44px; height: 24px; border-radius: 12px;
    background: #ccc; cursor: pointer; transition: background .2s; border: none; padding: 0;
}
.setup-config-toggle.active { background: #27ae60; }
.setup-config-toggle::after {
    content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px;
    border-radius: 50%; background: white; transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.setup-config-toggle.active::after { transform: translateX(20px); }
.setup-config-close {
    margin-top: 14px; padding: 7px 28px; background: var(--patriot-blue); color: white;
    border: none; border-radius: 6px; font-family: 'Oswald', sans-serif; font-size: 0.9rem;
    cursor: pointer; text-transform: uppercase; letter-spacing: 1px;
}
.setup-config-close:hover { background: #1a3a6b; }

/* Legacy candidate-row (kept for non-setup usage) */
.candidate-row{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:8px; align-items:center; padding:5px 8px; margin-bottom:3px; background:#f9f9f9; border-radius:4px; border-left:3px solid var(--light-gray); font-size:.85rem }
.candidate-name{ font-weight:500; display:flex; align-items:center; gap:6px; }

/* ---- Candidate campaign logos (transparent PNGs) ---- */
.candidate-logo {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex-shrink: 0;
    vertical-align: middle;
}
.candidate-logo-sm {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
    vertical-align: middle;
}
.candidate-logo-xs {
    width: 16px;
    height: 16px;
    object-fit: contain;
    flex-shrink: 0;
    vertical-align: middle;
}
.candidate-logo-lg {
    width: 42px;
    height: 42px;
    object-fit: contain;
    flex-shrink: 0;
    vertical-align: middle;
}
.candidate-logo-xl {
    width: 96px;
    height: 96px;
    object-fit: contain;
    flex-shrink: 0;
    vertical-align: middle;
}

/* Legacy control/status groups (kept for compatibility) */
.control-group{ display:flex; gap:8px; align-items:center }
.control-group label{ font-size:.8rem; display:flex; align-items:center; gap:3px; cursor:pointer }
.status-group{ display:flex; gap:8px; align-items:center }
.status-group label{ font-size:.8rem }
.setup-poll-tabs { display: flex; gap: 0; margin-bottom: 10px; border-bottom: 2px solid rgba(255,255,255,0.2); flex-wrap: wrap; }
.setup-poll-tab { padding: 5px 10px; font-size: .78rem; font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: .5px; cursor: pointer; border: none; background: none; color: rgba(255,255,255,0.55); border-bottom: 2px solid transparent; margin-bottom: -2px; transition: color .15s, border-color .15s; white-space: nowrap; }
.setup-poll-tab:hover { color: rgba(255,255,255,0.85); }
.setup-poll-tab.active { color: #ffffff; border-bottom-color: #ffffff; font-weight: 600; }
.national-poll-item{ padding:3px 8px; margin-bottom:2px; background:#f0f0f0; border-radius:3px; border-left:3px solid var(--patriot-blue); font-size:.85rem; overflow:visible }
.national-poll-item.dem-primary { border-left-color: var(--dem-blue); }
.national-poll-item.gop-primary { border-left-color: var(--gop-red); }
.national-poll-item.lib-primary { border-left-color: #ff8c00; }
.national-poll-item.green-primary { border-left-color: #2e7d32; }
.poll-bar{ display:flex; align-items:center; margin-top:1px; gap:6px }
.poll-bar-fill{ height:12px; background: linear-gradient(90deg, var(--dem-blue), var(--gop-red)); border-radius:2px; min-width:6px; flex-shrink:0 }
.poll-bar-label{ font-size:.72rem; font-weight:600; color:#444; white-space:nowrap }

/* Setup-screen poll overrides for glass panels */
.setup-screen .national-poll-item {
    background: rgba(255,255,255,0.12); color: #ffffff;
    border-left-color: rgba(255,255,255,0.3);
}
.setup-screen .national-poll-item.dem-primary { border-left-color: rgba(0,21,188,0.7); }
.setup-screen .national-poll-item.gop-primary { border-left-color: rgba(232,27,35,0.7); }
.setup-screen .national-poll-item.lib-primary { border-left-color: rgba(255,140,0,0.7); }
.setup-screen .national-poll-item.green-primary { border-left-color: rgba(46,125,50,0.7); }
.setup-screen .poll-bar-label { color: rgba(255,255,255,0.9); }

/* Game-screen poll row: name+bar on left, logo on right */
.poll-row-layout{ display:flex; align-items:center; gap:4px; overflow:visible; }
.poll-row-content{ flex:1; min-width:0; }
.poll-row-logo{ flex-shrink:0; line-height:0; }
.poll-row-logo .candidate-logo{ width:45px; height:45px; margin:-8px 0; }

/* Game-screen poll size overrides (25% larger than setup poll) */
#nationalPollContainer .national-poll-item{ padding:3px 10px; margin-bottom:3px; font-size:1.06rem; }
#nationalPollContainer .poll-bar-fill{ height:15px; }

/* Poll trend chart */
#pollChartContainer{ margin-top:10px; background:white; border-radius:6px; padding:6px 4px 4px; border:1px solid #ddd }
#pollChartContainer h4{ text-align:center; font-family:'Oswald',sans-serif; font-size:.85rem; color:#333; margin-bottom:4px }
#pollChart text{ font-family:'Libre Franklin', sans-serif }
#pollChart .domain, #pollChart .tick line{ stroke:#ccc }

.setup-buttons{ display:flex; gap:18px; justify-content:center; margin-top:18px; position:relative; z-index:1 }
.btn{ padding:10px 32px; font-size:.95rem; font-weight:600; border:none; border-radius:6px; cursor:pointer; transition:all .3s ease; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px }
.btn-primary{ background:var(--patriot-red); color:white }
.btn-secondary{ background:var(--light-gray); color:var(--text-dark) }
.btn:disabled{ opacity:.5; cursor:not-allowed }

/* Modern buttons for setup screen */
.setup-screen .setup-buttons .btn {
    padding: 14px 44px; font-size: 1.05rem; border-radius: 50px;
    letter-spacing: 2px; font-weight: 700;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    transition: all .25s ease;
}
.setup-screen .setup-buttons .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px rgba(0,0,0,0.4);
}
.setup-screen .setup-buttons .btn:disabled:hover {
    transform: none;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.setup-screen .setup-buttons .btn-primary {
    background: linear-gradient(135deg, #D22630 0%, #ff4757 100%);
    color: white; border: none;
}
.setup-screen .setup-buttons .btn-primary:hover {
    background: linear-gradient(135deg, #ff4757 0%, #D22630 100%);
}
.setup-screen .setup-buttons .btn-primary:disabled:hover {
    background: linear-gradient(135deg, #D22630 0%, #ff4757 100%);
}
.setup-screen .setup-buttons .btn-secondary {
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    color: #ffffff; border: 1px solid rgba(255,255,255,0.3);
}
.setup-screen .setup-buttons .btn-secondary:hover {
    background: rgba(255,255,255,0.25);
}

/* Game screen */
.game-screen{ display:flex; flex-direction:column; height:calc(100vh - 100px); gap:10px }
.game-stats-bar{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:6px 15px; background:white; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.1); border:2px solid var(--patriot-blue); flex-wrap:nowrap; overflow:visible; position:relative; z-index:2 }
.stat-item-btn{ display:flex; align-items:center; justify-content:center }
.platform-bar-btn{ background:linear-gradient(135deg,var(--patriot-blue),#1565c0); color:#fff; border:none; border-radius:6px; padding:8px 14px; font-size:.8rem; font-weight:700; cursor:pointer; white-space:nowrap; transition:transform .1s,box-shadow .15s; letter-spacing:.3px }
.platform-bar-btn:hover{ transform:translateY(-1px); box-shadow:0 3px 10px rgba(26,58,107,.35) }
.platform-bar-btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none }
.spending-bar-btn{ background:linear-gradient(135deg,#2e7d32,#43a047); color:#fff; border:none; border-radius:6px; padding:8px 14px; font-size:.8rem; font-weight:700; cursor:pointer; white-space:nowrap; transition:transform .1s,box-shadow .15s; letter-spacing:.3px }
.spending-bar-btn:hover{ transform:translateY(-1px); box-shadow:0 3px 10px rgba(46,125,50,.35) }
.spending-bar-btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none }
.ec-projection-item{ min-width:0; flex-shrink:1; overflow:hidden }
.ec-projection-values{ display:flex; flex-wrap:wrap; gap:3px 8px; margin-top:3px; max-height:44px; overflow-y:auto }
.ec-entry{ display:inline-flex; align-items:center; gap:3px; font-size:.78rem; font-weight:600; white-space:nowrap; line-height:1.2 }
.ec-entry .ec-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0 }
.ec-entry .ec-name{ max-width:90px; overflow:hidden; text-overflow:ellipsis; color:#333 }
.ec-entry .ec-evs{ color:var(--patriot-red); font-weight:700; font-size:.85rem }
.ec-entry.ec-player .ec-name{ font-weight:800; color:var(--patriot-blue) }
.ec-entry.ec-player .ec-evs{ font-size:.95rem }
.stat-item{ display:flex; flex-direction:column; flex-shrink:0; white-space:nowrap }
.stat-label{ font-size:.75rem; color:#666; font-weight:600; text-transform:uppercase; letter-spacing:.5px }
.stat-value{ font-size:1.3rem; color:var(--patriot-red); font-weight:bold; margin-top:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100% }
.stat-value[title]:not([title='']){ cursor:help }
.candidate-name-header{ font-size:1.5rem; color:var(--patriot-blue); font-weight:bold; display:flex; align-items:center; gap:8px; position:relative; }
.candidate-name-header .candidate-logo-lg{ width:100px; height:100px; margin:-40px 0; position:relative; z-index:3; filter:drop-shadow(0 0 0 var(--patriot-blue)) drop-shadow(0 0 2px var(--patriot-blue)) drop-shadow(0 2px 4px rgba(0,0,0,.2)); border:none; }
.candidate-name-with-vp{ display:flex; flex-direction:column; line-height:1.05; gap:1px; }
.candidate-name-with-vp .candidate-name-main{ font-size:inherit; font-weight:inherit; font-family:inherit; color:inherit; }
.candidate-name-with-vp .candidate-vp-line{ font-size:0.62em; font-weight:500; opacity:0.78; letter-spacing:0.02em; cursor:pointer; }
.dropdown-menu{ position:relative; display:flex; align-items:center }
.dropdown-toggle{ padding:10px 15px; background:var(--patriot-blue); color:white; border:none; border-radius:4px; cursor:pointer; font-weight:600; font-size:.9rem }
.dropdown-content{ position:absolute; top:100%; right:0; background:white; border:2px solid var(--patriot-blue); border-radius:4px; min-width:200px; box-shadow:0 4px 12px rgba(0,0,0,.2); z-index:100; margin-top:5px; display:none }
.dropdown-content.show{ display:block }
.dropdown-item{ padding:12px 15px; border-bottom:1px solid #eee; cursor:pointer; transition:background .2s; color:var(--text-dark) }
.dropdown-item:hover{ background:#f0f0f0 }

.game-content{ display:grid; grid-template-columns:1fr 2.2fr 1fr; gap:15px; flex:1; min-height:0 }
@media (max-width:1400px){ .game-content{ grid-template-columns:1fr 1fr } }
@media (max-width:1000px){ .game-content{ grid-template-columns:1fr } .game-stats-bar{ flex-wrap:wrap } }
.game-panel{ background:white; border-radius:8px; padding:12px; box-shadow:0 4px 15px rgba(0,0,0,.1); border:2px solid var(--patriot-blue); overflow-y:auto; overflow-x:hidden; min-width:0 }
.game-footer{ display:flex; justify-content:space-between; align-items:center; padding:15px; background:white; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.1); border:2px solid var(--patriot-blue) }
.next-button{ padding:12px 30px; background:var(--patriot-red); color:white; border:none; border-radius:4px; cursor:pointer; font-weight:600; font-size:1rem }
.panel-header{ font-family:'Oswald',sans-serif; font-size:1.1rem; color:var(--patriot-red); margin-bottom:10px; text-transform:uppercase; letter-spacing:1px; border-bottom:2px solid var(--light-gray); padding-bottom:8px }

/* Map mode tabs (Primary / GE Match Up) */
.map-mode-tabs{ display:flex; gap:0; border-bottom:2px solid #ddd; margin-bottom:0; }
.map-mode-tab{ flex:1; padding:5px 8px; font-size:.78rem; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px; cursor:pointer; border:none; background:none; color:#888; border-bottom:2px solid transparent; margin-bottom:-2px; transition:color .15s, border-color .15s; text-align:center; }
.map-mode-tab:hover{ color:#333; }
.map-mode-tab.active{ color:var(--patriot-blue); border-bottom-color:var(--patriot-blue); font-weight:600; }

/* Toss-up state legend chip */
.tossup-legend{ display:inline-flex; align-items:center; gap:4px; font-size:.72rem; color:#555; margin-left:8px; }
.tossup-swatch{ width:14px; height:14px; border:1px solid #ccc; border-radius:2px; }

.round-info{ background:#f0f0f0; padding:10px; border-radius:4px; margin-bottom:10px; text-align:center; font-weight:600; font-size:.85rem }
.action-button{ width:100%; padding:8px 10px; margin-bottom:6px; border:1.5px solid var(--patriot-blue); background:white; color:var(--text-dark); border-radius:4px; cursor:pointer; font-weight:600; transition:all .2s ease; font-size:.82rem }
.action-button:hover:not(:disabled){ background:var(--patriot-blue); color:white; transform:translateX(3px) }
.action-button:disabled{ opacity:.5; cursor:not-allowed }
.action-cost{ font-size:.72rem; color:#666 }

/* Map and labels — fill is set dynamically via JS for poll-leader shading */
.state-path{ stroke:#8fb6df; stroke-width:0.8; cursor:pointer }
.state-label{ font-size:10px; font-weight:700; fill:#334455; pointer-events:auto; cursor:pointer }
.labels line{ stroke:#000; stroke-width:1 }
.state-label.clickable{ cursor:pointer; pointer-events:auto }

/* Utilities */
.loading{ text-align:center; padding:40px; font-size:1.2rem; color:var(--patriot-blue) }
.spinner{ border:4px solid var(--light-gray); border-top:4px solid var(--patriot-red); border-radius:50%; width:40px; height:40px; animation:spin 1s linear infinite; margin:20px auto }
@keyframes spin{ 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }
.error{ background:#ffebee; color:#c62828; padding:20px; border-radius:6px; margin:20px 0; border-left:4px solid #c62828 }
success{ background:#e8f5e9; color:#2e7d32; padding:20px; border-radius:6px; margin:20px 0; border-left:4px solid #2e7d32 }

/* ==================== DEBATE SCREEN ==================== */
.debate-view { display: none; }
.debate-view.active { display: block; }

/* Stage / Podium */
.debate-stage {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    min-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 30px;
    overflow: hidden;
}

/* Audience rows (silhouettes behind podium) */
.debate-audience {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 180px;
    pointer-events: none;
    z-index: 0;
}
.audience-row {
    height: 50px;
    border-radius: 50% 50% 0 0;
    margin: 0 auto;
}
.audience-row-back  { width: 98%; background: #0a0f1a; opacity: .35; }
.audience-row-mid   { width: 88%; background: #131d33; opacity: .28; margin-top:-12px; }
.audience-row-front { width: 75%; background: #1a2744; opacity: .22; margin-top:-12px; }

/* Spotlights */
.debate-spotlights {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 200px;
    pointer-events: none;
    z-index: 1;
}
.spotlight {
    position: absolute;
    top: -60px;
    width: 180px; height: 260px;
    border-radius: 0 0 50% 50%;
    opacity: .10;
}
.spotlight-left   { left: 10%; background: radial-gradient(ellipse at center, #ffe08a 0%, transparent 70%); }
.spotlight-center { left: 50%; transform: translateX(-50%); width: 240px; background: radial-gradient(ellipse at center, #fff4c4 0%, transparent 70%); opacity: .18; }
.spotlight-right  { right: 10%; background: radial-gradient(ellipse at center, #ffe08a 0%, transparent 70%); }

/* Podium */
.debate-podium {
    position: relative;
    z-index: 2;
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.podium-top {
    width: 140px;
    height: 12px;
    background: linear-gradient(180deg, #4a3728 0%, #3a2a1e 100%);
    border-radius: 4px 4px 0 0;
    display: flex;
    justify-content: center;
    position: relative;
}
.podium-mic {
    width: 4px; height: 24px;
    background: #222;
    border-radius: 2px;
    position: absolute;
    top: -22px;
}
.podium-mic::after {
    content: '';
    display: block;
    width: 10px; height: 10px;
    background: #333;
    border-radius: 50%;
    position: absolute;
    top: -8px; left: -3px;
}
.podium-front {
    width: 120px;
    height: 60px;
    background: linear-gradient(180deg, #5a4233 0%, #3e2d20 100%);
    border-radius: 0 0 6px 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0,0,0,.4);
}
.podium-seal {
    font-size: 1.8rem;
    color: var(--gold-accent);
    text-shadow: 0 1px 3px rgba(0,0,0,.5);
}

/* Strategy paper */
.debate-paper {
    position: relative;
    z-index: 3;
    background: #fffef5;
    border: 1px solid #d4c9a8;
    border-radius: 4px;
    padding: 28px 34px;
    margin-top: 18px;
    max-width: 760px;
    width: 100%;
    box-shadow: 2px 3px 12px rgba(0,0,0,.15), inset 0 0 40px rgba(200,190,160,.15);
    font-family: 'Libre Franklin', sans-serif;
}
.paper-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.4rem;
    color: var(--patriot-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 2px;
}
.paper-subtitle {
    font-size: 0.85rem;
    color: #888;
    margin-bottom: 18px;
}
.paper-section {
    margin-bottom: 16px;
}
.paper-section-title {
    font-weight: 700;
    font-size: 0.95rem;
    color: #333;
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #e0dcd0;
}
.paper-label {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: #555;
    margin-bottom: 4px;
}
.debate-choice-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 340px;
    overflow-y: auto;
    padding-right: 4px;
}
.debate-category-header {
    font-family: 'Oswald', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--patriot-blue);
    text-transform: uppercase;
    letter-spacing: .5px;
    padding: 4px 0 2px;
    border-bottom: 1px solid #d8d3c5;
    margin-top: 2px;
}
.debate-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 5px;
}
.debate-aspect-btn {
    padding: 8px 10px;
    border: 2px solid #c8c3b5;
    border-radius: 5px;
    background: #faf8f0;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    color: #333;
    transition: all .15s ease;
    text-align: left;
}
.debate-aspect-btn:hover {
    border-color: var(--patriot-blue);
    background: #eef3ff;
}
.debate-aspect-btn:disabled {
    opacity: .4;
    cursor: not-allowed;
}
.debate-aspect-btn.category-taken {
    opacity: .35;
    border-color: #ccc;
    background: #f0efe8;
}
.debate-aspect-btn.selected {
    border-color: var(--patriot-blue);
    background: var(--patriot-blue);
    color: white;
}
.debate-aspect-btn .aspect-detail {
    font-size: 0.72rem;
    font-weight: 400;
    opacity: .7;
    margin-top: 2px;
}
.attack-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.debate-select {
    width: 100%;
    padding: 8px 10px;
    border: 2px solid #c8c3b5;
    border-radius: 5px;
    background: #faf8f0;
    font-size: 0.88rem;
    font-family: 'Libre Franklin', sans-serif;
    color: #333;
    cursor: pointer;
}
.debate-select:focus {
    outline: none;
    border-color: var(--patriot-blue);
}
.debate-confirm-btn {
    padding: 14px 48px;
    font-size: 1.1rem;
}

/* Press clipping */
.press-clipping {
    max-width: 720px;
    margin: 30px auto;
    background: #fffef5;
    border: 1px solid #bbb;
    border-radius: 2px;
    padding: 40px 48px;
    box-shadow: 3px 4px 18px rgba(0,0,0,.2);
    font-family: 'Libre Franklin', serif;
}
.newspaper-header {
    text-align: center;
    margin-bottom: 18px;
}
.newspaper-name {
    font-family: 'Playfair Display', serif;
    font-size: 2.4rem;
    font-weight: 900;
    color: #111;
    letter-spacing: 3px;
    text-transform: uppercase;
}
.newspaper-date {
    font-size: 0.82rem;
    color: #777;
    margin-top: 2px;
    letter-spacing: 1px;
}
.newspaper-divider {
    height: 3px;
    background: #111;
    margin: 10px 0 16px;
    border-top: 1px solid #111;
    border-bottom: 1px solid #111;
}
.headline {
    font-family: 'Playfair Display', serif;
    font-size: 1.6rem;
    font-weight: 900;
    color: #111;
    text-align: center;
    margin-bottom: 20px;
    line-height: 1.25;
}
.press-body {
    font-size: 0.95rem;
    line-height: 1.7;
    color: #222;
}
.press-section {
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ddd;
}
.press-section:last-child {
    border-bottom: none;
}
.press-section h4 {
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    color: var(--patriot-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}
.press-winner { color: #2e7d32; font-weight: 700; }
.press-loser  { color: #c62828; font-weight: 700; }
.press-attacked { color: #e65100; font-weight: 700; }
.press-change { font-size: 0.85rem; color: #555; }

/* ── Debate Minigame ── */
.debate-minigame-container {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}
#debateHud {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 18px;
    background: #1e293b;
    border-radius: 10px 10px 0 0;
    font-weight: 600;
}
#debateHudTopic {
    font-size: 0.9rem;
    color: #94a3b8;
}
#debateHudCategory {
    font-size: 1.15rem;
    color: #f1f5f9;
    flex: 1;
    text-align: center;
}
#debateHudTimer {
    font-size: 1.4rem;
    color: #fbbf24;
    font-variant-numeric: tabular-nums;
    min-width: 60px;
    text-align: right;
}
#debateArena {
    display: block;
    width: 100%;
    background: #0f172a;
    border: 2px solid #334155;
    border-top: none;
    border-radius: 0 0 10px 10px;
    cursor: crosshair;
}
#debateLegend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 10px;
    font-size: 0.82rem;
    color: #94a3b8;
}
#debateLegend .legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
}
#debateLegend .legend-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.2);
}
.debate-controls-hint {
    margin-top: 10px;
    font-size: 0.82rem;
    color: #64748b;
    font-style: italic;
}

/* Topic results (between-topic interstitial) */
.debate-topic-results {
    max-width: 720px;
    margin: 40px auto;
    background: #1e293b;
    border-radius: 12px;
    padding: 28px 32px;
    color: #e2e8f0;
    text-align: left;
}
.debate-topic-results h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    color: #f1f5f9;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 14px;
    text-align: center;
}
.debate-topic-results .topic-candidate-result {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px solid #334155;
    font-size: 0.92rem;
}
.debate-topic-results .topic-candidate-result:last-child {
    border-bottom: none;
}
.debate-topic-results .candidate-position {
    color: #94a3b8;
    font-size: 0.84rem;
}
.debate-topic-results .btn-primary {
    display: block;
    margin: 18px auto 0;
}

/* States More Button */
.states-more-btn {
    background: none;
    border: none;
    color: var(--patriot-blue);
    font-family: 'Libre Franklin', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    padding: 0 4px;
    margin-left: 2px;
}
.states-more-btn:hover {
    color: var(--patriot-red);
}

/* States Modal Overlay */
.states-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.states-modal {
    background: var(--patriot-cream);
    border: var(--border-width) solid var(--patriot-blue);
    border-radius: 12px;
    padding: 30px;
    max-width: 500px;
    width: 90%;
    max-height: 70vh;
    overflow-y: auto;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}
.states-modal h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.3rem;
    color: var(--patriot-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 16px;
    text-align: center;
    border-bottom: 2px solid var(--patriot-red);
    padding-bottom: 10px;
}
.states-modal-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 20px;
    font-size: 0.95rem;
    color: var(--text-dark);
    margin-bottom: 20px;
}
.states-modal-list span {
    padding: 4px 0;
    border-bottom: 1px solid #e0ddd0;
}
.states-modal .btn {
    display: block;
    margin: 0 auto;
}

/* State action buttons in modal */
.state-action-btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 7px 12px;
    margin-bottom: 4px;
    border: 1.5px solid var(--patriot-blue);
    background: white;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.82rem;
    transition: all 0.15s ease;
}
.state-action-btn:hover:not(:disabled) {
    background: var(--patriot-blue);
    color: white;
}
.state-action-btn:hover:not(:disabled) span {
    color: white !important;
}
.state-action-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Ad configuration modal */
/* Policy release modal */
.pr-topic-group {
    margin-bottom: 10px;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
}
.pr-topic-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--patriot-blue);
    color: white;
    font-weight: 700;
    font-size: 0.82rem;
    padding: 5px 10px;
}
.pr-topic-badge {
    font-size: 0.72rem;
    font-weight: 400;
}
.pr-done { color: #a3e4a3; }
.pr-policy-btn {
    display: block;
    width: 100%;
    text-align: left;
    padding: 6px 10px;
    border: none;
    border-top: 1px solid #eee;
    background: white;
    cursor: pointer;
    font-family: 'Libre Franklin', sans-serif;
    transition: background 0.12s;
}
.pr-policy-btn:hover:not(:disabled) {
    background: #eef5ff;
}
.pr-policy-btn:disabled {
    cursor: not-allowed;
}
.pr-policy-wrapper {
    border-top: 1px solid #eee;
}
.pr-policy-wrapper .pr-policy-btn {
    border-top: none;
}
.pr-policy-expand {
    padding: 8px 12px 10px;
    background: #f8faff;
    border-top: 1px dashed #cdd8e6;
}
.pr-policy-desc {
    font-size: 0.78rem;
    line-height: 1.45;
    color: #444;
    margin-bottom: 8px;
}
.pr-policy-release-btn {
    display: block;
    width: 100%;
    padding: 7px 0;
    background: var(--patriot-blue);
    color: white;
    border: none;
    border-radius: 5px;
    font-family: 'Libre Franklin', sans-serif;
    font-weight: 700;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 0.15s;
}
.pr-policy-release-btn:hover {
    background: #1a3a6b;
}
.pr-policy-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.pr-policy-name {
    font-weight: 600;
    font-size: 0.82rem;
}
.pr-status-released {
    font-size: 0.72rem;
    color: #27ae60;
    font-weight: 600;
}
.pr-status-locked {
    font-size: 0.72rem;
    color: #999;
    font-weight: 500;
}
.pr-fav-row {
    display: flex;
    gap: 2px;
    margin-top: 2px;
}
.pr-fav-cell {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    width: 36px;
    cursor: help;
}
.pr-fav-abbr {
    font-size: 0.58rem;
    font-weight: 600;
    color: #777;
    line-height: 1.1;
    letter-spacing: -0.3px;
}
.pr-fav {
    display: inline-block;
    width: 24px;
    text-align: center;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 2px;
    line-height: 1.4;
}
.pr-fav2 { color: #1a7a2e; background: #d4f5dc; }
.pr-fav1 { color: #2e7d32; background: #e8f5e9; }
.pr-fav0 { color: #999; background: #f5f5f5; }
.pr-fav-1 { color: #c0392b; background: #fce4e4; }
.pr-fav-2 { color: #922; background: #f5d0d0; }

.ad-section-label {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--patriot-blue);
    margin-bottom: 6px;
}
.ad-ideo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin-bottom: 4px;
}
.ad-ideo-label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    transition: background 0.15s;
}
.ad-ideo-label:hover {
    background: #eef5ff;
}
.ad-ideo-label input:checked ~ span:first-of-type {
    color: var(--patriot-blue);
}
.ad-ideo-meta {
    font-size: 0.68rem;
    font-weight: 400;
    color: #888;
    margin-left: auto;
}
.ad-select {
    width: 100%;
    padding: 7px 10px;
    border: 1.5px solid var(--patriot-blue);
    border-radius: 4px;
    font-size: 0.85rem;
    font-family: 'Libre Franklin', sans-serif;
    background: white;
}
.ad-cost-bar {
    margin-top: 12px;
    padding: 8px 12px;
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    font-size: 0.82rem;
    text-align: center;
    color: #333;
}
.ad-multiplier-row {
    margin-top: 10px;
    padding: 10px 12px;
    background: #eef5ff;
    border: 1.5px solid var(--patriot-blue);
    border-radius: 6px;
}
.ad-multiplier-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--patriot-blue);
}
.ad-multiplier-header .ad-mult-value {
    font-size: 1rem;
    color: #c0392b;
}
.ad-multiplier-slider {
    width: 100%;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: #cdd8e6;
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}
.ad-multiplier-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--patriot-blue);
    border: 2px solid white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    cursor: pointer;
}
.ad-multiplier-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--patriot-blue);
    border: 2px solid white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    cursor: pointer;
}
.ad-multiplier-totals {
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    font-size: 0.75rem;
    color: #555;
}

/* Primary Results */
.primary-party-section {
    margin-bottom: 20px;
}
.primary-party-section h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    padding: 6px 12px;
    border-radius: 4px;
    color: white;
}
.primary-party-section h3.dem-header { background: var(--dem-blue); }
.primary-party-section h3.gop-header { background: var(--gop-red); }
.primary-state-result {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    border-bottom: 1px solid #e0ddd0;
    font-size: 0.9rem;
}
.primary-state-result .state-name {
    width: 100px;
    font-weight: 600;
    flex-shrink: 0;
}
.primary-state-result .vote-bar-container {
    flex: 1;
    height: 16px;
    background: #e8e6dc;
    border-radius: 3px;
    overflow: hidden;
    display: flex;
}
.primary-state-result .vote-bar {
    height: 100%;
    transition: width 0.3s ease;
}
.primary-state-result .winner-name {
    width: 120px;
    font-weight: 700;
    text-align: right;
    flex-shrink: 0;
}
.delegate-standings {
    margin-top: 16px;
    padding: 12px;
    background: #f0ede3;
    border-radius: 6px;
    border: 1px solid #d0cdc0;
}
.delegate-standings h4 {
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    color: var(--patriot-blue);
    margin-bottom: 8px;
    text-transform: uppercase;
}
.delegate-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 0.9rem;
}
.delegate-row .candidate-name { font-weight: 600; }
.delegate-row .delegate-count { font-weight: 700; color: var(--patriot-red); }
/* ============================================================
   GENERAL ELECTION RESULTS SCREEN
   ============================================================ */

/* Confetti container */
.confetti-container {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none;
    z-index: 100;
    overflow: hidden;
}
.confetti-piece {
    position: absolute;
    width: 10px;
    height: 14px;
    top: -20px;
    opacity: 0.85;
    animation: confettiFall linear forwards;
}
@keyframes confettiFall {
    0%   { transform: translateY(0) rotateZ(0deg) rotateX(0deg); opacity: 0.9; }
    100% { transform: translateY(110vh) rotateZ(720deg) rotateX(360deg); opacity: 0; }
}

/* Result screen layout */
.result-screen {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 20px auto;
    padding: 0 20px 40px;
}

/* Map section */
.result-map-section {
    background: var(--patriot-cream);
    border: var(--border-width) solid var(--patriot-blue);
    border-radius: 12px;
    padding: 24px 28px 16px;
    margin-bottom: 24px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}
.result-map-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.6rem;
    color: var(--patriot-blue);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 16px;
    border-bottom: 3px double var(--patriot-blue);
    padding-bottom: 10px;
}
.result-map-container {
    text-align: center;
    margin-bottom: 12px;
}
.result-map-container svg {
    max-width: 100%;
    height: auto;
}
.result-legend {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 8px;
}
.result-legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
}
.result-legend-dot {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(0,0,0,0.2);
}

/* Vote totals table */
.result-vote-totals {
    background: var(--patriot-cream);
    border: var(--border-width) solid var(--patriot-blue);
    border-radius: 12px;
    padding: 20px 28px;
    margin-bottom: 24px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}
.result-vote-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
}
.result-vote-table th {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 8px 12px;
    border-bottom: 2px solid var(--patriot-blue);
    text-align: left;
    color: var(--patriot-blue);
    font-size: 0.82rem;
}
.result-vote-table td {
    padding: 8px 12px;
    border-bottom: 1px solid #d0cdc0;
}
.result-vote-table tr.winner-row {
    background: rgba(46, 125, 50, 0.08);
    font-weight: 700;
}
.result-vote-table tr.winner-row td:first-child {
    position: relative;
    padding-left: 24px;
}
.result-vote-table tr.winner-row td:first-child::before {
    content: '✓';
    position: absolute;
    left: 6px;
    color: #2e7d32;
    font-weight: 900;
}
.result-ev-bar {
    display: inline-block;
    height: 16px;
    border-radius: 3px;
    min-width: 2px;
    vertical-align: middle;
    margin-right: 6px;
}

/* Newspaper clipping for results */
.result-newspaper {
    margin-bottom: 28px;
    max-width: 900px;
}
.result-newspaper .headline {
    font-size: 1.8rem;
    line-height: 1.2;
    margin-bottom: 16px;
}
.result-article-lede {
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.6;
    margin-bottom: 14px;
    color: #111;
}
.result-article-body {
    font-size: 0.92rem;
    line-height: 1.75;
    color: #222;
    column-count: 2;
    column-gap: 28px;
    column-rule: 1px solid #ccc;
}
@media (max-width: 700px) {
    .result-article-body { column-count: 1; }
}
.result-article-body p {
    margin-bottom: 10px;
    text-indent: 1.5em;
}
.result-article-body p:first-child {
    text-indent: 0;
}

/* Buttons */
.result-buttons {
    text-align: center;
    margin-top: 20px;
    display: flex;
    gap: 16px;
    justify-content: center;
}

/* ── Press Clippings Screen ── */
.press-clippings-container {
    max-width: 900px;
    margin: 0 auto;
    background: var(--patriot-cream);
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.5);
    border: var(--border-width) solid var(--patriot-blue);
    overflow: hidden;
}
.press-clippings-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 28px;
    background: var(--patriot-blue);
    color: white;
}
.press-clippings-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 1px;
}
.press-clippings-round {
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 0.85;
}
.press-tabs {
    display: flex;
    overflow-x: auto;
    background: #1a2e4a;
    border-bottom: 3px solid var(--gold-accent);
    padding: 0;
    scrollbar-width: thin;
}
.press-tab {
    flex: 1 0 auto;
    padding: 12px 18px;
    font-family: 'Oswald', sans-serif;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    border: none;
    background: transparent;
    color: rgba(255,255,255,0.6);
    transition: all 0.2s ease;
    white-space: nowrap;
    border-bottom: 3px solid transparent;
    margin-bottom: -3px;
    text-align: center;
}
.press-tab:hover {
    color: white;
    background: rgba(255,255,255,0.08);
}
.press-tab.active {
    color: white;
    font-weight: 700;
    border-bottom-color: var(--gold-accent);
    background: rgba(255,255,255,0.1);
}
/* Publication-specific tab accents */
.press-tab[data-pub="Mother Jones"].active { border-bottom-color: #c0392b; }
.press-tab[data-pub="The New York Times"].active { border-bottom-color: #1a1a1a; }
.press-tab[data-pub="CNN"].active { border-bottom-color: #cc0000; }
.press-tab[data-pub="The Wall Street Journal"].active { border-bottom-color: #c49b1a; }
.press-tab[data-pub="Fox News"].active { border-bottom-color: #003366; }
.press-tab[data-pub="Breitbart News"].active { border-bottom-color: #ff6600; }

.press-article-area {
    min-height: 400px;
    max-height: 60vh;
    overflow-y: auto;
    padding: 0;
}
.press-article {
    padding: 28px 36px;
    font-size: 0.92rem;
    line-height: 1.7;
}
/* Publication mastheads */
.press-article-masthead {
    text-align: center;
    padding-bottom: 14px;
    margin-bottom: 18px;
    border-bottom: 2px solid currentColor;
}
.press-article-masthead-name {
    font-size: 2rem;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 2px;
}
.press-article-masthead-tagline {
    font-size: 0.75rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: 0.7;
}
.press-article-headline {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 16px;
    text-align: center;
    letter-spacing: -0.3px;
}
.press-article-body {
    font-size: 0.9rem;
    line-height: 1.65;
}
.press-article-body p {
    margin-bottom: 12px;
    text-indent: 1.2em;
}
.press-article-body p:first-child {
    text-indent: 0;
}

/* Publication-specific article styling */
.press-article[data-pub="Mother Jones"] {
    background: #fdf2f0;
    font-family: Georgia, serif;
    color: #2a2a2a;
}
.press-article[data-pub="Mother Jones"] .press-article-masthead {
    color: #c0392b;
    border-bottom-color: #c0392b;
}
.press-article[data-pub="Mother Jones"] .press-article-masthead-name {
    font-family: 'Playfair Display', Georgia, serif;
}
.press-article[data-pub="Mother Jones"] .press-article-headline {
    color: #c0392b;
}

.press-article[data-pub="The New York Times"] {
    background: #f7f7f5;
    font-family: 'Times New Roman', Times, serif;
    color: #1a1a1a;
}
.press-article[data-pub="The New York Times"] .press-article-masthead {
    color: #1a1a1a;
    border-bottom: 3px double #1a1a1a;
}
.press-article[data-pub="The New York Times"] .press-article-masthead-name {
    font-family: 'Old English Text MT', 'UnifrakturMaguntia', Georgia, serif;
    font-size: 2.8rem;
    letter-spacing: 2px;
}

.press-article[data-pub="CNN"] {
    background: #f5f5f5;
    font-family: Arial, Helvetica, sans-serif;
    color: #222;
}
.press-article[data-pub="CNN"] .press-article-masthead {
    color: #cc0000;
    border-bottom-color: #cc0000;
}
.press-article[data-pub="CNN"] .press-article-masthead-name {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    color: #cc0000;
    font-size: 2.4rem;
    letter-spacing: 4px;
}

.press-article[data-pub="The Wall Street Journal"] {
    background: #fffef5;
    font-family: 'Palatino Linotype', Palatino, serif;
    color: #333;
}
.press-article[data-pub="The Wall Street Journal"] .press-article-masthead {
    color: #333;
    border-bottom-color: #333;
}
.press-article[data-pub="The Wall Street Journal"] .press-article-masthead-name {
    font-family: 'Old English Text MT', 'UnifrakturMaguntia', Georgia, serif;
    font-size: 2.2rem;
    letter-spacing: 1px;
}

.press-article[data-pub="Fox News"] {
    background: #f0f4f8;
    font-family: Arial, Helvetica, sans-serif;
    color: #1a1a1a;
}
.press-article[data-pub="Fox News"] .press-article-masthead {
    color: #003366;
    border-bottom-color: #003366;
}
.press-article[data-pub="Fox News"] .press-article-masthead-name {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    color: #003366;
    letter-spacing: 3px;
}
.press-article[data-pub="Fox News"] .press-article-headline {
    color: #003366;
}

.press-article[data-pub="Breitbart News"] {
    background: #1a1a1a;
    font-family: Arial Black, Arial, sans-serif;
    color: #e0e0e0;
}
.press-article[data-pub="Breitbart News"] .press-article-masthead {
    color: #ff6600;
    border-bottom-color: #ff6600;
}
.press-article[data-pub="Breitbart News"] .press-article-masthead-name {
    font-family: Arial Black, Arial, sans-serif;
    color: #ff6600;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.press-article[data-pub="Breitbart News"] .press-article-headline {
    color: #ff6600;
    text-transform: uppercase;
}
.press-article[data-pub="Breitbart News"] .press-article-body p {
    color: #ccc;
}

.press-clippings-footer {
    text-align: center;
    padding: 18px 28px;
    background: var(--patriot-cream);
    border-top: 2px solid var(--patriot-blue);
}

@media (max-width: 700px) {
    .press-clippings-container { margin: 0 8px; }
    .press-article { padding: 18px 20px; }
    .press-article-masthead-name { font-size: 1.6rem !important; }
    .press-article-headline { font-size: 1.2rem; }
    .press-tab { padding: 10px 12px; font-size: 0.75rem; }
}

/* ================================================================ */
/* SOCIAL-MEDIA FEED (redesigned press clippings)                   */
/* ================================================================ */
.feed-container {
    width: min(1180px, 96vw);
    max-width: 1180px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.5);
    border: var(--border-width) solid var(--patriot-blue);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: calc(100vh - 200px);
    min-height: 400px;
    max-height: 900px;
}
.feed-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 22px;
    background: var(--patriot-blue);
    color: #fff;
    flex: 0 0 auto;
}
.feed-header-left { display: flex; align-items: center; gap: 10px; }
.feed-logo { font-size: 1.5rem; }
.feed-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    font-weight: 900;
    letter-spacing: 0.5px;
    margin: 0;
}
.feed-round {
    font-family: 'Oswald', sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 0.85;
}
.feed-searchbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: #f3f5f8;
    border-bottom: 1px solid #e1e5ea;
    flex: 0 0 auto;
}
.feed-search-icon { opacity: 0.5; font-size: 0.95rem; }
.feed-search-input {
    flex: 1 1 auto;
    border: 1px solid #d4d9e0;
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 0.95rem;
    background: #fff;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.feed-search-input:focus {
    border-color: var(--patriot-blue);
    box-shadow: 0 0 0 3px rgba(26,46,74,0.12);
}
.feed-search-clear {
    border: none;
    background: #d4d9e0;
    color: #444;
    width: 24px; height: 24px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    display: none;
}
.feed-search-clear.visible { display: inline-block; }
.feed-search-clear:hover { background: #c0c6cf; }

.feed-list {
    overflow-y: auto;
    background: #fff;
    flex: 1 1 auto;
    min-height: 0;
}
.feed-empty {
    padding: 48px 24px;
    text-align: center;
    color: #8a93a0;
    font-size: 0.95rem;
}

/* Individual post (Twitter-style row) */
.feed-post {
    display: flex;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #eceff3;
    border-left: 3px solid transparent;
    transition: background 0.12s ease;
}
.feed-post:hover { background: #f7f9fb; }

.feed-avatar {
    flex: 0 0 auto;
    width: 46px; height: 46px;
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e7eaef;
    color: #fff;
    font-weight: 800;
    font-size: 0.95rem;
    user-select: none;
}
.feed-avatar.paper { border-radius: 10px; }
.feed-avatar-initials {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1;
    padding: 2px;
}
.feed-avatar-img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    background: #fff;
}
/* Party accounts show a logo (rounded square, full logo visible, not cropped). */
.feed-avatar.party { border-radius: 10px; background: #fff; }
.feed-avatar.party .feed-avatar-img { object-fit: contain; padding: 4px; background: #fff; }
.feed-post-main { flex: 1 1 auto; min-width: 0; }
.feed-post-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 6px;
    margin-bottom: 3px;
}
.feed-author {
    font-weight: 700;
    color: #15202b;
    font-size: 0.96rem;
}
.feed-verified { color: #1d9bf0; font-size: 0.85rem; }
.feed-handle { color: #67727e; font-size: 0.88rem; }
.feed-dot { color: #67727e; }
.feed-badge {
    margin-left: auto;
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 999px;
    background: #eef1f5;
    color: #5b6570;
}
.feed-badge[data-type="trump"] { background: #fde8e9; color: #c41e25; }
.feed-badge[data-type="candidate"] { background: #e8eef7; color: #1a2e4a; }
.feed-badge[data-type="vp"] { background: #eaf0f9; color: #3a5a8c; }
.feed-badge[data-type="advisor"] { background: #efeaf7; color: #6b4fa0; }
.feed-badge[data-type="news"] { background: #eef1f5; color: #5b6570; }
.feed-badge[data-type="sideline"] { background: #f0f2f4; color: #6b7280; }
.feed-post-text {
    color: #15202b;
    font-size: 0.96rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-wrap: break-word;
    margin-bottom: 8px;
}
.feed-post-engagement {
    display: flex;
    gap: 26px;
    color: #67727e;
    font-size: 0.82rem;
}
.feed-eng {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.12s ease;
    cursor: default;
}
.feed-eng .feed-eng-icon { font-size: 0.9rem; opacity: 0.8; }
.feed-eng.reply:hover { color: #1d9bf0; }
.feed-eng.share:hover { color: #00ba7c; }
.feed-eng.like:hover { color: #f91880; }

/* Freestanding Continue button (mirrors the intro "Enter the Campaign" CTA). */
.feed-continue-bar {
    position: fixed;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    z-index: 100;
}
.feed-continue-bar .btn.feed-continue-btn {
    padding: 14px 48px;
    font-size: 1.05rem;
    border-radius: 50px;
    letter-spacing: 2px;
    font-weight: 700;
    box-shadow: 0 6px 28px rgba(0,0,0,0.5);
    background: linear-gradient(135deg, #D22630 0%, #ff4757 100%);
    color: #fff;
    border: none;
    transition: all .25s ease;
}
.feed-continue-bar .btn.feed-continue-btn:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg, #ff4757 0%, #D22630 100%);
    box-shadow: 0 8px 36px rgba(0,0,0,0.6);
}

/* Two-column body: feed on the left, trending sidebar on the right. */
.feed-body {
    flex: 1 1 auto;
    display: flex;
    align-items: stretch;
    min-height: 0;
}
.feed-main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border-right: 1px solid #e1e6ec;
}
.feed-sidebar {
    flex: 0 0 320px;
    width: 320px;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #f1f4f8;
    padding: 14px;
}
/* One "What's happening" panel that fills the sidebar's full height. */
.feed-trend-panel {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e6eaef;
    border-radius: 16px;
}
.feed-sidebar-title {
    font-family: 'Oswald', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #15202b;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid #eceff3;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}
.feed-trend-group {
    padding: 8px 0 10px;
    border-bottom: 1px solid #eceff3;
}
.feed-trend-group:last-child { border-bottom: none; }
.feed-trend-title {
    font-family: 'Oswald', sans-serif;
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    color: #67727e;
    margin: 0;
    padding: 8px 18px 2px;
}
.feed-trend-item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 8px 18px;
    cursor: pointer;
    transition: background 0.12s ease;
}
.feed-trend-item:hover { background: #eef3f8; }
.feed-trend-item.active {
    background: #e8eef7;
    box-shadow: inset 3px 0 0 var(--patriot-blue);
}
.feed-trend-label { font-size: 1rem; font-weight: 700; color: #15202b; }

/* Active-filter bar (replaces the search bar when a trend is selected) */
.feed-filterbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: #f3f5f8;
    border-bottom: 1px solid #e1e5ea;
    flex: 0 0 auto;
}
.feed-back-btn {
    flex: 0 0 auto;
    width: 30px; height: 30px;
    border: 1px solid #d4d9e0;
    background: #fff;
    color: var(--patriot-blue);
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.05rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.12s ease, color 0.12s ease;
}
.feed-back-btn:hover { background: var(--patriot-blue); color: #fff; }
.feed-filter-pill {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 7px;
    background: #fff;
    border: 1px solid #d4d9e0;
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #15202b;
    min-width: 0;
}
.feed-filter-pill::before { content: '🔎'; opacity: 0.55; }

/* Narrow screens: stack the trending panel below the feed (no overlap). */
@media (max-width: 820px) {
    .feed-container { width: 96vw; height: auto; max-height: 92vh; }
    .feed-body { flex-direction: column; }
    .feed-main { border-right: none; min-height: 0; }
    .feed-list { max-height: 52vh; }
    .feed-sidebar {
        flex: 0 0 auto;
        width: auto;
        border-top: 2px solid var(--patriot-blue);
        max-height: 40vh;
    }
}

@media (max-width: 700px) {
    .feed-title { font-size: 1.2rem; }
    .feed-post { padding: 12px 12px; gap: 10px; }
    .feed-avatar { width: 40px; height: 40px; }
}

/* ================================================================ */
/* SPENDING SLIDERS                                                 */
/* ================================================================ */

.spending-slider-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 6px 8px;
    margin-bottom: 5px;
    border: 1.5px solid var(--patriot-blue);
    border-radius: 5px;
    background: #f8fafd;
}
.spending-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.spending-slider-label {
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--text-dark);
}
.spending-slider-value {
    font-weight: 700;
    font-size: 0.78rem;
    color: var(--patriot-blue);
    background: white;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 1px 6px;
    min-width: 24px;
    text-align: center;
}
.spending-slider-track {
    display: flex;
    align-items: center;
    gap: 6px;
}
.spending-slider-track input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: #d0dbe8;
    outline: none;
    cursor: pointer;
    min-width: 0;
}
.spending-slider-track input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--patriot-blue);
    border: 2px solid white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    cursor: pointer;
}
.spending-slider-track input[type="range"]::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--patriot-blue);
    border: 2px solid white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    cursor: pointer;
}
.spending-slider-confirm {
    padding: 3px 10px;
    font-weight: 700;
    font-size: 0.75rem;
    border: 1.5px solid var(--patriot-blue);
    background: var(--patriot-blue);
    color: white;
    border-radius: 3px;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s ease;
    flex-shrink: 0;
}
.spending-slider-confirm:hover:not(:disabled) {
    background: #0d2951;
    border-color: #0d2951;
}
.spending-slider-confirm:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.spending-slider-number {
    width: 52px;
    padding: 2px 4px;
    font-size: 0.78rem;
    font-weight: 700;
    text-align: center;
    border: 1.5px solid var(--patriot-blue);
    border-radius: 3px;
    color: var(--patriot-blue);
    background: white;
    flex-shrink: 0;
    -moz-appearance: textfield;
}
.spending-slider-number::-webkit-outer-spin-button,
.spending-slider-number::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.spending-slider-info {
    display: flex;
    justify-content: space-between;
    font-size: 0.68rem;
    color: #888;
    line-height: 1.2;
}

/* ===== Actions Panel: Step headers ===== */
.action-step-header {
    font-weight: 700;
    font-size: 0.85rem;
    color: white;
    background: var(--patriot-blue);
    padding: 5px 10px;
    margin: 0 -8px 6px -8px;
    border-radius: 4px;
    letter-spacing: 0.02em;
}
.action-step-collapsible {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
    transition: background 0.12s;
}
.action-step-collapsible:hover {
    background: #1a3a6bcc;
}
.action-step-body {
    /* wrapper for collapsible step content */
}
.action-step-count {
    font-weight: 400;
    font-size: 0.76rem;
    opacity: 0.85;
}

/* ===== Collapsible subsections ===== */
.action-collapsible-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    font-size: 0.82rem;
    color: #1a3a6b;
    background: #e8f0fa;
    border: 1.5px solid #b3c8e8;
    border-radius: 4px;
    padding: 5px 10px;
    margin-bottom: 4px;
    cursor: pointer;
    user-select: none;
    transition: background 0.12s;
}
.action-collapsible-header:hover {
    background: #d6e4f5;
}
.action-collapsible-arrow {
    font-size: 0.72rem;
    color: #6688aa;
}
.action-collapsible-body {
    padding: 0 0 4px 0;
}

/* ===== Subsection labels ===== */
.action-subsection-label {
    font-weight: 600;
    font-size: 0.76rem;
    color: #5a7a9e;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 4px 0 3px 2px;
    border-bottom: 1px solid #dde6ef;
    padding-bottom: 2px;
}

/* ===== State selector dropdowns ===== */
.action-state-selector {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    font-size: 0.78rem;
}
.action-state-selector label {
    font-weight: 600;
    color: #555;
    white-space: nowrap;
}
.action-state-selector select {
    flex: 1;
    padding: 3px 6px;
    border: 1.5px solid #aac;
    border-radius: 4px;
    font-size: 0.78rem;
    color: #333;
    background: white;
    max-width: 200px;
}

/* ===== Pending action cards ===== */
.pending-action-card {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #fffbe6;
    border: 1px solid #e6d07a;
    border-radius: 4px;
    padding: 5px 8px;
    margin-bottom: 4px;
    font-size: 0.78rem;
}
.pending-action-info {
    flex: 1;
    min-width: 0;
}
.pending-action-label {
    font-weight: 600;
    color: #6b5b00;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pending-action-cost {
    font-size: 0.7rem;
    color: #998c33;
}
.pending-action-cancel {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border: 1px solid #d4a017;
    border-radius: 50%;
    background: #fff3cd;
    color: #c0392b;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transition: background 0.12s;
}
.pending-action-cancel:hover {
    background: #f8d7da;
    border-color: #c0392b;
}

/* ============================================================================
   ADVISOR SELECTION SCREEN & ADVISOR BUTTON (Actions Panel)
   ============================================================================ */

/* ---- Circular advisor avatar (shared across selection, footer, tutorial, modals) ---- */
.advisor-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 15%;      /* keep head/face centred near top */
    border: 2px solid #bbb;
    flex-shrink: 0;
}

.advisor-avatar-sm {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 15%;
    border: 2px solid #bbb;
    flex-shrink: 0;
}

.advisor-avatar-lg {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 15%;
    border: 3px solid #1a3a6b;
    flex-shrink: 0;
}

.advisor-cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.advisor-card {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px;
    border: 2px solid #ccc;
    border-radius: 10px;
    background: #fafafa;
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
}

.advisor-card-content {
    flex: 1;
    min-width: 0;
}

.advisor-card:hover {
    border-color: #1a3a6b;
    background: #e8f0fc;
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.12);
}

.advisor-card.selected {
    border-color: #1a3a6b;
    background: #d0e4ff;
    box-shadow: 0 0 0 3px rgba(26,58,107,0.25);
}

.advisor-card-name {
    font-weight: 700;
    font-size: 0.95rem;
    color: #1a3a6b;
    line-height: 1.2;
    margin-bottom: 6px;
}

.advisor-card-bio {
    font-size: 0.82rem;
    color: #444;
    line-height: 1.45;
}

/* Advisor selection screen (between setup and game) */
#advisorScreen.screen.active {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 80px);
    overflow: hidden;
}

.advisor-selection-screen {
    max-width: 850px;
    margin: 0 auto;
    padding: 4px 20px 0;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.advisor-selection-screen .setup-header {
    margin-bottom: 4px;
}

.advisor-selection-screen > p {
    margin-bottom: 6px;
}

#advisorSelectionBody {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
    padding-right: 4px;
}

.advisor-selection-screen .setup-buttons {
    flex-shrink: 0;
    padding: 10px 0 6px;
    background: white;
    margin-top: 0;
}

.advisor-player-section {
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 8px 14px;
    margin-bottom: 10px;
    overflow: visible;
    position: relative;
}

.advisor-player-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    position: sticky;
    top: 0;
    background: #f8f9fa;
    z-index: 1;
    padding: 4px 0;
}
.advisor-player-header .candidate-logo-xl{
    width: 96px;
    height: 96px;
    margin: -30px 0;
    position: relative;
    z-index: 2;
    filter: drop-shadow(0 0 0 var(--patriot-blue)) drop-shadow(0 0 2px var(--patriot-blue)) drop-shadow(0 2px 4px rgba(0,0,0,.2));
}

.advisor-player-name {
    font-weight: 700;
    font-size: 1.3rem;
    color: #1a3a6b;
}

.advisor-player-party {
    font-size: 0.8rem;
    color: #666;
    background: #e8e8e8;
    padding: 2px 8px;
    border-radius: 10px;
}

.advisor-selected-note {
    margin-top: 8px;
    font-size: 0.82rem;
    color: #2e7d32;
    font-weight: 600;
    text-align: center;
}

/* Advisor button in the actions panel */
.advisor-suggest-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 14px;
    margin: 10px 0 6px;
    border: 2px solid #1a3a6b;
    border-radius: 8px;
    background: linear-gradient(135deg, #e8f0fc, #d0e4ff);
    color: #1a3a6b;
    font-weight: 700;
    font-size: 0.88rem;
    cursor: pointer;
    transition: all 0.15s;
}

.advisor-suggest-btn:hover {
    background: linear-gradient(135deg, #d0e4ff, #b8d4fa);
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(26,58,107,0.18);
}

.advisor-suggest-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Advisor confirmation modal styles */
.advisor-modal-section {
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 10px;
    margin: 8px 0;
    font-size: 0.82rem;
}

.advisor-modal-section h4 {
    margin: 0 0 6px 0;
    font-size: 0.85rem;
    color: #1a3a6b;
}

.advisor-action-item {
    padding: 3px 0;
    border-bottom: 1px solid #eee;
}

.advisor-action-item:last-child {
    border-bottom: none;
}

/* ============================================================
   Tutorial Overlay System
   ============================================================ */
.tutorial-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(0, 0, 0, 0.65);
    transition: opacity 0.25s;
}

.tutorial-spotlight {
    position: fixed;
    z-index: 10001;
    border-radius: 8px;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.6);
    pointer-events: none;
    transition: all 0.35s ease;
}

.tutorial-card {
    position: fixed;
    z-index: 10002;
    background: #fff;
    border-radius: 14px;
    padding: 22px 26px 18px;
    max-width: 420px;
    width: 90vw;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    animation: tutorialFadeIn 0.3s ease;
}

@keyframes tutorialFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.tutorial-card-advisor {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 0.82rem;
    color: #666;
    font-weight: 600;
}

.tutorial-card-advisor .advisor-emoji {
    font-size: 1.5rem;
}

.tutorial-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a3a6b;
    margin-bottom: 8px;
}

.tutorial-card-text {
    font-size: 0.92rem;
    color: #333;
    line-height: 1.55;
    margin-bottom: 16px;
}

.tutorial-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.tutorial-dots {
    display: flex;
    gap: 6px;
}

.tutorial-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ccc;
    transition: background 0.2s;
}

.tutorial-dot.active {
    background: #1a3a6b;
}

.tutorial-dot.completed {
    background: #4a90d9;
}

.tutorial-card-buttons {
    display: flex;
    gap: 8px;
}

.tutorial-btn-skip {
    padding: 7px 14px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff;
    color: #888;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 0.15s;
}

.tutorial-btn-skip:hover {
    background: #f5f5f5;
}

.tutorial-btn-next {
    padding: 7px 18px;
    border: none;
    border-radius: 6px;
    background: linear-gradient(135deg, #1a3a6b, #2d5aa0);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}

.tutorial-btn-next:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(26, 58, 107, 0.3);
}

/* ── Debate Tutorial (full-screen, inside debate screen) ── */
.debate-tutorial-screen {
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px;
    animation: tutorialFadeIn 0.3s ease;
}

.debate-tutorial-inner {
    background: #1e293b;
    border-radius: 12px;
    overflow: hidden;
}

.debate-tutorial-text-panel {
    padding: 24px 28px 20px;
}

.debate-tutorial-text-panel .tutorial-card-advisor {
    color: #94a3b8;
}

.debate-tutorial-text-panel .tutorial-card-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #f1f5f9;
    margin-bottom: 8px;
}

.debate-tutorial-text-panel .tutorial-card-text {
    font-size: 0.95rem;
    color: #cbd5e1;
    line-height: 1.6;
    margin-bottom: 16px;
}

.debate-tutorial-text-panel .tutorial-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.debate-tutorial-text-panel .tutorial-dot {
    background: #475569;
}
.debate-tutorial-text-panel .tutorial-dot.active {
    background: #60a5fa;
}
.debate-tutorial-text-panel .tutorial-dot.completed {
    background: #3b82f6;
}

.debate-tutorial-text-panel .tutorial-btn-skip {
    background: transparent;
    border: 1px solid #475569;
    color: #94a3b8;
}
.debate-tutorial-text-panel .tutorial-btn-skip:hover {
    background: #334155;
}

.debate-tutorial-text-panel .tutorial-btn-next {
    background: linear-gradient(135deg, #3b82f6, #8b5cf6);
}

.debate-practice-area {
    margin: 8px 0 16px;
    text-align: center;
}

.debate-practice-arena-wrap {
    background: #0f172a;
    border: 2px solid #334155;
    border-radius: 10px;
    overflow: hidden;
    display: inline-block;
    width: 100%;
    max-width: 1060px;
}

.debate-practice-arena-wrap canvas {
    display: block;
    width: 100%;
    cursor: crosshair;
}

.debate-practice-area.practice-active .debate-practice-arena-wrap {
    border-color: #fbbf24;
}

.debate-practice-hint {
    font-size: 0.82rem;
    color: #64748b;
    margin-top: 8px;
    font-style: italic;
}

/* ============================================================
   ELECTION NIGHT SCREEN
   ============================================================ */

.election-night-container {
    background: #0f172a;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 12px;
    color: #e2e8f0;
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

.election-night-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 820px;
    margin-bottom: 12px;
    gap: 12px;
}

.election-night-title {
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #f8fafc;
    text-shadow: 0 0 20px rgba(59,130,246,0.4);
}

.election-night-clock {
    font-size: 1.05rem;
    font-weight: 600;
    color: #fbbf24;
    font-variant-numeric: tabular-nums;
    min-width: 180px;
    text-align: center;
}

.election-night-skip {
    font-size: 0.8rem !important;
    padding: 6px 14px !important;
    white-space: nowrap;
}

/* EV Bar */
.election-night-ev-bar {
    display: flex;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
    width: 100%;
    max-width: 820px;
    margin-bottom: 10px;
    padding: 10px 16px;
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid #cbd5e1;
}

.en-ev-candidate {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
}

.en-ev-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(0,0,0,0.15);
}

.en-ev-name {
    font-weight: 600;
    color: #1e293b;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.en-ev-count {
    font-size: 1.25rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    min-width: 32px;
    text-align: right;
}

.en-ev-count.en-winner {
    color: #d97706;
    text-shadow: none;
}

/* 270 marker */
.en-ev-marker {
    align-self: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: #64748b;
    border-left: 2px solid #cbd5e1;
    padding-left: 12px;
    line-height: 1.2;
}

/* Map */
.election-night-map-container {
    width: 100%;
    max-width: 820px;
    background: #0f172a;
    border: 2px solid #334155;
    border-radius: 10px;
    padding: 4px;
    margin-bottom: 10px;
}

.election-night-map-container svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Ticker */
.election-night-ticker {
    width: 100%;
    max-width: 820px;
    max-height: 110px;
    overflow-y: auto;
    padding: 8px 12px;
    background: #1e293b;
    border-radius: 8px;
    border: 1px solid #334155;
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.5;
}

.en-ticker-item {
    padding: 2px 0;
    border-bottom: 1px solid rgba(51,65,85,0.5);
    animation: enTickerFade 0.3s ease-out;
}

.en-ticker-item:last-child {
    border-bottom: none;
}

@keyframes enTickerFade {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* State call popup */
.en-state-call-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    animation: enOverlayIn 0.2s ease-out;
}

@keyframes enOverlayIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.en-state-call-card {
    background: #1e293b;
    border: 2px solid;
    border-radius: 14px;
    padding: 28px 40px;
    text-align: center;
    max-width: 420px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
    animation: enCardPop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes enCardPop {
    from { transform: scale(0.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.en-call-label {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 4px;
    color: #94a3b8;
}

.en-call-state {
    font-size: 1.6rem;
    font-weight: 800;
    margin-bottom: 4px;
    color: #f8fafc;
}

.en-call-ev {
    font-size: 1rem;
    color: #94a3b8;
    margin-bottom: 10px;
}

.en-call-winner {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 14px;
}

.en-call-dismiss {
    font-size: 0.75rem;
    color: #64748b;
    cursor: pointer;
}

/* Winner announcement */
.en-winner-card {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    border: 3px solid #fbbf24;
    border-radius: 16px;
    padding: 36px 48px;
    text-align: center;
    max-width: 500px;
    box-shadow: 0 0 60px rgba(251,191,36,0.3), 0 20px 60px rgba(0,0,0,0.5);
    animation: enCardPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.en-winner-label {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: #fbbf24;
    margin-bottom: 8px;
}

.en-winner-name {
    font-size: 2rem;
    font-weight: 800;
    color: #f8fafc;
    margin-bottom: 6px;
}

.en-winner-ev {
    font-size: 1.1rem;
    color: #94a3b8;
    margin-bottom: 16px;
}

.en-winner-continue {
    background: linear-gradient(135deg, #3b82f6, #8b5cf6);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 28px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.1s;
}

.en-winner-continue:hover {
    transform: translateY(-1px);
}

/* ================================================================
   CANDIDATE PROFILE POPUP
   ================================================================ */
.candidate-profile-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.55); z-index: 1200;
    display: flex; align-items: center; justify-content: center;
    animation: cpop-fadeIn 0.15s ease-out;
}
@keyframes cpop-fadeIn { from { opacity: 0; } to { opacity: 1; } }
.cpop-modal {
    background: var(--patriot-cream, #fdf8ec);
    border: 3px solid var(--patriot-blue, #0a2240);
    border-radius: 14px;
    padding: 0;
    max-width: 440px; width: 92%;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: 0 12px 48px rgba(0,0,0,0.45);
    position: relative;
    animation: cpop-slideIn 0.2s ease-out;
}
@keyframes cpop-slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.cpop-close {
    position: absolute; top: 8px; right: 12px;
    background: none; border: none;
    font-size: 1.6rem; color: #666; cursor: pointer;
    line-height: 1; z-index: 2;
}
.cpop-close:hover { color: #c62828; }
.cpop-header {
    display: flex; align-items: center; gap: 14px;
    padding: 18px 24px 14px;
    border-bottom: 3px solid var(--patriot-blue, #0a2240);
    background: linear-gradient(135deg, rgba(10,34,64,0.06) 0%, transparent 60%);
}
.cpop-logo {
    width: 72px; height: 72px; object-fit: contain; flex-shrink: 0;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.2));
}
.cpop-header-text { flex: 1; min-width: 0; }
.cpop-name {
    font-family: 'Oswald', sans-serif; font-size: 1.35rem;
    font-weight: 700; color: var(--patriot-blue, #0a2240);
    letter-spacing: 0.5px; text-transform: uppercase;
    line-height: 1.15;
}
.cpop-party {
    font-size: 0.82rem; font-weight: 600; margin-top: 2px;
    letter-spacing: 0.3px;
}
.cpop-body { padding: 10px 22px 18px; }
.cpop-section {
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.cpop-section:last-child { border-bottom: none; }
.cpop-section-title {
    font-family: 'Oswald', sans-serif; font-size: 0.78rem;
    text-transform: uppercase; letter-spacing: 0.8px;
    color: var(--patriot-blue, #0a2240); font-weight: 600;
    margin-bottom: 6px; opacity: 0.8;
}
.cpop-stat-row {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 0.88rem;
}
.cpop-stat-label { color: #666; font-size: 0.82rem; }
.cpop-stat-value { font-weight: 600; color: #222; font-size: 0.88rem; }
.cpop-stat-big {
    font-size: 1.3rem; font-weight: 700;
    color: var(--patriot-blue, #0a2240);
    text-align: center;
}
/* Approval row */
.cpop-approval-row {
    display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
    font-size: 0.84rem; font-weight: 600;
}
.cpop-approve { color: #2e7d32; }
.cpop-disapprove { color: #c62828; }
.cpop-net { font-weight: 700; }
/* Issues */
.cpop-issue-row {
    display: flex; align-items: center; gap: 8px;
    padding: 3px 0; font-size: 0.84rem;
}
.cpop-issue-name { flex: 1; font-weight: 500; color: #333; }
.cpop-issue-net { font-weight: 700; font-size: 0.82rem; white-space: nowrap; }
.cpop-badge {
    font-size: 0.62rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.5px; padding: 1px 6px; border-radius: 3px;
    white-space: nowrap;
}
.cpop-badge-released { background: #e8f5e9; color: #2e7d32; }
.cpop-badge-strength { background: #e3f2fd; color: #1565c0; }
/* Champions */
.cpop-champ-list { display: flex; flex-wrap: wrap; gap: 6px; }
.cpop-champ-item {
    background: linear-gradient(135deg, #fff8e1, #fffde7);
    border: 1px solid #f9a825; border-radius: 4px;
    padding: 3px 10px; font-size: 0.8rem; font-weight: 600;
    color: #e65100; text-transform: capitalize;
}
/* Endorsement grid */
.cpop-endorse-grid {
    display: grid; grid-template-columns: 1fr auto;
    gap: 3px 12px; font-size: 0.84rem;
}
/* State spending */
.cpop-state-row {
    display: flex; justify-content: space-between;
    padding: 2px 0; font-size: 0.82rem;
}
.cpop-state-name { color: #444; }
.cpop-state-amount { font-weight: 600; color: #222; }
.cpop-state-more { font-size: 0.76rem; color: #999; text-align: center; margin-top: 3px; }
/* Clickable logo cursor */
.cpop-clickable { cursor: pointer; transition: transform 0.1s, filter 0.1s; display: inline-block; }
.cpop-clickable:hover { transform: scale(1.1); filter: brightness(1.1); }

/* ============================================================
   CANDIDATE THEMES — Advisor Selection Screen
   Applied via .theme-xxx class on #advisorScreen
   ============================================================ */

/* ── Shared theme scaffolding ── */
[class*="theme-"] .advisor-selection-screen {
    max-width: 900px;
    border-radius: 14px;
    padding: 14px 24px 4px;
}
[class*="theme-"] .advisor-player-section {
    border-radius: 12px;
}
[class*="theme-"] .advisor-card {
    border-radius: 10px;
}
[class*="theme-"] .setup-buttons .btn {
    border-radius: 50px;
    padding: 12px 38px;
    font-size: 1rem;
    letter-spacing: 1.5px;
    font-weight: 700;
    box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    transition: all .2s;
}
[class*="theme-"] .setup-buttons .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 22px rgba(0,0,0,0.3);
}
/* Theme header title — use theme font & hide subtitle */
body[class*="theme-"] .game-header {
    transition: background .3s, border-color .3s;
}
body[class*="theme-"] .game-header .game-title {
    font-size: 1.5rem;
}

/* ── Background image scaffolding ── */
#advisorScreen[class*="theme-"] {
    position: relative;
}
#advisorScreen[class*="theme-"]::before {
    content: '';
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}
#advisorScreen[class*="theme-"] > .advisor-selection-screen {
    position: relative;
    z-index: 1;
}

/* ──────────────────────────────────────
   🪶 George Washington — Colonial Parchment
   ────────────────────────────────────── */
body.theme-washington { background: #e8dfca; }
#advisorScreen.theme-washington::before {
    background-image: linear-gradient(rgba(245,237,212,0.55), rgba(245,237,212,0.55)), url('../images/candidate-background-images/George_Washington_background.jpg');
}
.theme-washington .advisor-selection-screen {
    background: #f5edd4;
    border: 3px solid #8b7355;
    box-shadow: 4px 6px 0 rgba(0,0,0,0.15), 0 8px 30px rgba(0,0,0,0.3);
}
.theme-washington .setup-header {
    font-family: 'IM Fell English', 'Georgia', serif;
    color: #3d2b1f;
    border-bottom-color: #8b7355;
    text-shadow: 1px 1px 0 rgba(139,115,85,0.2);
}
.theme-washington .advisor-player-section {
    background: rgba(245,237,212,0.7);
    border-color: #c4b08a;
}
.theme-washington .advisor-player-header { background: rgba(245,237,212,0.7); }
.theme-washington .advisor-player-name { color: #2c1810; font-family: 'IM Fell English', serif; }
.theme-washington .advisor-card {
    background: #faf3e0;
    border-color: #c4b08a;
}
.theme-washington .advisor-card:hover {
    border-color: #1b3a5c;
    background: #f0e6c8;
}
.theme-washington .advisor-card.selected {
    border-color: #1b3a5c;
    background: #e8dbb8;
    box-shadow: 0 0 0 3px rgba(27,58,92,0.2);
}
.theme-washington .advisor-card-name { color: #1b3a5c; font-family: 'IM Fell English', serif; }
.theme-washington .setup-buttons .btn-primary {
    background: #1b3a5c; color: #f5edd4; border: 2px solid #c9a84c;
}
.theme-washington .setup-buttons .btn-secondary {
    background: transparent; color: #3d2b1f; border: 2px solid #8b7355;
}

/* ──────────────────────────────────────
   📜 Thomas Jefferson — Neoclassical
   ────────────────────────────────────── */
body.theme-jefferson { background: linear-gradient(170deg, #f5ede0 0%, #e0d8c0 50%, #d5e0c8 100%); }
body.theme-jefferson .game-header {
    background: linear-gradient(135deg, #6b3320, #8b4513); border-bottom-color: #6b8e4e;
}
body.theme-jefferson .game-header .game-title {
    font-family: 'Pinyon Script', cursive; font-size: 2rem;
}
body.theme-jefferson .game-header .game-subtitle { color: #e8d5b8; font-family: 'Pinyon Script', cursive; letter-spacing: 1px; text-transform: capitalize; }
/* Pinyon Script is illegible in ALL CAPS — capitalize ONLY the cursive
   display elements (the ones the theme sets to Pinyon Script). Body text in
   normal fonts keeps standard casing. Keep this selector list in sync with
   the Pinyon Script font-family rules below. */
body.theme-jefferson .game-header .game-title,
.theme-jefferson .setup-header,
.theme-jefferson .advisor-player-name,
.theme-jefferson .advisor-card-name,
.theme-jefferson .panel-header,
.theme-jefferson .candidate-name-header,
.theme-jefferson .debate-tutorial-text-panel .tutorial-card-advisor,
.theme-jefferson .debate-tutorial-text-panel .tutorial-card-title,
.theme-jefferson .press-clippings-title,
#primaryResultsScreen.theme-jefferson .newspaper-name,
#primaryResultsScreen.theme-jefferson .headline { text-transform: capitalize !important; }
#advisorScreen.theme-jefferson::before {
    background-image: linear-gradient(rgba(250,245,239,0.5), rgba(240,232,208,0.5)), url('../images/candidate-background-images/Thomas_Jefferson_Background.jpg');
}
.theme-jefferson .advisor-selection-screen {
    background: linear-gradient(170deg, #fdf8ef 0%, #f0ead5 40%, #e8f0e0 100%);
    border: 3px solid #6b8e4e;
    box-shadow: 4px 6px 0 rgba(0,0,0,0.12), 0 8px 30px rgba(0,0,0,0.25), inset 0 0 40px rgba(107,142,78,0.06);
}
.theme-jefferson .setup-header {
    font-family: 'Pinyon Script', cursive;
    color: #4a2010;
    border-bottom: 2px solid #8b4513;
    font-size: 2.2rem;
}
.theme-jefferson .advisor-player-section {
    background: rgba(248,242,230,0.85);
    border-color: #b8a878;
    border-left: 4px solid #6b8e4e;
}
.theme-jefferson .advisor-player-header { background: rgba(248,242,230,0.85); }
.theme-jefferson .advisor-player-name { color: #4a2010; font-family: 'Pinyon Script', cursive; font-size: 1.5rem; }
.theme-jefferson .advisor-card {
    background: linear-gradient(175deg, #fdf8f0, #f5eed8);
    border-color: #c9a87c;
}
.theme-jefferson .advisor-card:hover {
    border-color: #6b8e4e;
    background: linear-gradient(175deg, #f5f0e0, #e8e0c8);
}
.theme-jefferson .advisor-card.selected {
    border-color: #6b8e4e;
    background: linear-gradient(175deg, #eae5d0, #ddd8c0);
    box-shadow: 0 0 0 3px rgba(107,142,78,0.25);
}
.theme-jefferson .advisor-card-name { color: #4a2010; font-family: 'Pinyon Script', cursive; font-size: 1.25rem; }
.theme-jefferson .advisor-card-bio { color: #5a4030; font-family: 'Libre Franklin', sans-serif; }
.theme-jefferson .setup-buttons .btn-primary {
    background: linear-gradient(135deg, #6b8e4e, #5a7a3e); color: #fdf8ef;
}
.theme-jefferson .setup-buttons .btn-secondary {
    background: transparent; color: #4a2010; border: 2px solid #8b4513;
}

/* ──────────────────────────────────────
   🪓 Andrew Jackson — Frontier Populist
   ────────────────────────────────────── */
body.theme-jackson { background: #2a1e12; }
body.theme-jackson .game-header {
    background: #3a2a1c; border-bottom-color: #8b6914;
}
body.theme-jackson .game-header .game-title {
    font-family: 'Rye', 'Alfa Slab One', serif; color: #d4a843;
}
body.theme-jackson .game-header .game-subtitle { color: #c4a87a; }
#advisorScreen.theme-jackson::before {
    background-image: linear-gradient(rgba(74,55,40,0.6), rgba(58,42,28,0.6)), url('../images/candidate-background-images/Andrew-Jackson-background.jpg');
}
.theme-jackson .advisor-selection-screen {
    background: linear-gradient(180deg, #4a3728 0%, #3a2a1c 100%);
    border: 3px solid #8b6914;
    box-shadow: 4px 6px 0 rgba(0,0,0,0.25), 0 8px 30px rgba(0,0,0,0.5);
}
.theme-jackson .setup-header {
    font-family: 'Rye', 'Alfa Slab One', serif;
    color: #d4a843;
    border-bottom-color: #8b6914;
}
.theme-jackson .advisor-selection-screen .setup-subtitle,
.theme-jackson .advisor-selection-screen > p { color: #c4a87a; }
.theme-jackson .advisor-player-section {
    background: rgba(90,70,50,0.6);
    border-color: #6b5540;
}
.theme-jackson .advisor-player-header { background: rgba(90,70,50,0.6); }
.theme-jackson .advisor-player-name { color: #d4a843; font-family: 'Alfa Slab One', serif; }
.theme-jackson .advisor-player-party { background: #5a4632; color: #c4a87a; }
.theme-jackson .advisor-card {
    background: #5a4632;
    border-color: #6b5540;
    color: #ddd;
}
.theme-jackson .advisor-card:hover {
    border-color: #d4a843;
    background: #6b5540;
}
.theme-jackson .advisor-card.selected {
    border-color: #d4a843;
    background: #6b5540;
    box-shadow: 0 0 0 3px rgba(212,168,67,0.3);
}
.theme-jackson .advisor-card-name { color: #d4a843; font-family: 'Alfa Slab One', serif; }
.theme-jackson .advisor-card-bio { color: #c4b08a; }
.theme-jackson .setup-buttons .btn-primary {
    background: #8b6914; color: #fff;
}
.theme-jackson .setup-buttons .btn-secondary {
    background: transparent; color: #d4a843; border: 2px solid #8b6914;
}
.theme-jackson .advisor-selection-screen .setup-buttons { background: transparent; }
.theme-jackson .advisor-selected-note { color: #d4a843; }

/* ──────────────────────────────────────
   🎩 Abraham Lincoln — Civil War Broadsheet
   ────────────────────────────────────── */
body.theme-lincoln { background: #d8d4c8; }
body.theme-lincoln .game-header {
    background: #2c3e50; border-bottom-color: #555;
}
body.theme-lincoln .game-header .game-title {
    font-family: 'Playfair Display SC', serif;
}
body.theme-lincoln .game-header .game-subtitle { color: #c8c4b8; }
#advisorScreen.theme-lincoln::before {
    background-image: linear-gradient(rgba(216,212,200,0.5), rgba(216,212,200,0.5)), url('../images/candidate-background-images/Abraham-Lincoln-background.jpg');
}
.theme-lincoln .advisor-selection-screen {
    background: #f0ece4;
    border: 3px solid #2c3e50;
    box-shadow: 4px 6px 0 rgba(0,0,0,0.15), 0 8px 30px rgba(0,0,0,0.35);
    background-image: repeating-linear-gradient(0deg, transparent, transparent 1.8em, rgba(0,0,0,.02) 1.8em, rgba(0,0,0,.02) 1.82em);
}
.theme-lincoln .setup-header {
    font-family: 'Playfair Display SC', 'Playfair Display', serif;
    color: #1a1a2e;
    border-bottom: 3px double #2c3e50;
}
.theme-lincoln .advisor-player-section {
    background: rgba(240,236,228,0.8);
    border-color: #555;
}
.theme-lincoln .advisor-player-header { background: rgba(240,236,228,0.8); }
.theme-lincoln .advisor-player-name { color: #1a1a2e; font-family: 'Playfair Display SC', serif; }
.theme-lincoln .advisor-card {
    background: #f8f5ee;
    border-color: #999;
}
.theme-lincoln .advisor-card:hover {
    border-color: #2c3e50;
    background: #e8e4d8;
}
.theme-lincoln .advisor-card.selected {
    border-color: #2c3e50;
    background: #ddd8c8;
    box-shadow: 0 0 0 3px rgba(44,62,80,0.2);
}
.theme-lincoln .advisor-card-name { color: #1a1a2e; font-family: 'Playfair Display SC', serif; }
.theme-lincoln .setup-buttons .btn-primary {
    background: #2c3e50; color: #f0ece4;
}
.theme-lincoln .setup-buttons .btn-secondary {
    background: transparent; color: #2c3e50; border: 2px solid #2c3e50;
}

/* ──────────────────────────────────────
   🦁 Theodore Roosevelt — Wilderness Adventure
   ────────────────────────────────────── */
body.theme-troosevelt { background: #d8d0b8; }
body.theme-troosevelt .game-header {
    background: #3d4f1e; border-bottom-color: #a08860;
}
body.theme-troosevelt .game-header .game-title {
    font-family: 'Patua One', 'Georgia', serif;
}
body.theme-troosevelt .game-header .game-subtitle { color: #c4c0a0; }
#advisorScreen.theme-troosevelt::before {
    background-image: linear-gradient(rgba(216,208,184,0.45), rgba(216,208,184,0.45)), url('../images/candidate-background-images/Theodore-Roosevelt-background.jpg');
}
.theme-troosevelt .advisor-selection-screen {
    background: linear-gradient(175deg, #f5f0e0 0%, #e8dfc8 100%);
    border: 3px solid #556b2f;
    box-shadow: 4px 6px 0 rgba(0,0,0,0.12), 0 8px 30px rgba(0,0,0,0.3);
}
.theme-troosevelt .setup-header {
    font-family: 'Patua One', 'Georgia', serif;
    color: #3d4f1e;
    border-bottom-color: #556b2f;
}
.theme-troosevelt .advisor-player-section {
    background: rgba(245,240,224,0.7);
    border-color: #a08860;
}
.theme-troosevelt .advisor-player-header { background: rgba(245,240,224,0.7); }
.theme-troosevelt .advisor-player-name { color: #3d4f1e; font-family: 'Patua One', serif; }
.theme-troosevelt .advisor-card {
    background: #faf5e8;
    border-color: #a08860;
}
.theme-troosevelt .advisor-card:hover {
    border-color: #556b2f;
    background: #efe8d0;
}
.theme-troosevelt .advisor-card.selected {
    border-color: #556b2f;
    background: #e0d8b8;
    box-shadow: 0 0 0 3px rgba(85,107,47,0.25);
}
.theme-troosevelt .advisor-card-name { color: #3d4f1e; font-family: 'Patua One', serif; }
.theme-troosevelt .setup-buttons .btn-primary {
    background: #556b2f; color: #faf5e8;
}
.theme-troosevelt .setup-buttons .btn-secondary {
    background: transparent; color: #3d4f1e; border: 2px solid #556b2f;
}

/* ──────────────────────────────────────
   🏛️ Franklin D. Roosevelt — New Deal Infrastructure / Art Deco
   ────────────────────────────────────── */
body.theme-fdroosevelt { background: #c8ccd0; }
body.theme-fdroosevelt .game-header {
    background: #2a3f55; border-bottom-color: #c5943a;
    border-top: 3px solid #c5943a;
}
body.theme-fdroosevelt .game-header .game-title {
    font-family: 'Bebas Neue', 'Anton', sans-serif; color: #c5943a; letter-spacing: 5px;
}
body.theme-fdroosevelt .game-header .game-subtitle { color: #d0d8e0; }
#advisorScreen.theme-fdroosevelt::before {
    background-image: linear-gradient(rgba(180,185,190,0.4), rgba(180,185,190,0.4)), url('../images/candidate-background-images/Franklin-Roosevelt-background.jpg');
}
.theme-fdroosevelt .advisor-selection-screen {
    background: #e8e4dc;
    border: 4px solid #2a3f55;
    border-top: 6px solid #c5943a;
    box-shadow: 0 8px 30px rgba(0,0,0,0.25);
    background-image:
        repeating-linear-gradient(90deg, transparent, transparent 98%, rgba(42,63,85,0.06) 98%, rgba(42,63,85,0.06) 100%),
        repeating-linear-gradient(0deg, transparent, transparent 98%, rgba(42,63,85,0.06) 98%, rgba(42,63,85,0.06) 100%);
    background-size: 60px 60px;
}
.theme-fdroosevelt .setup-header {
    font-family: 'Bebas Neue', 'Anton', sans-serif;
    color: #2a3f55;
    border-bottom: 3px double #2a3f55;
    letter-spacing: 5px;
    padding-bottom: 8px;
}
.theme-fdroosevelt .advisor-selection-screen .setup-subtitle,
.theme-fdroosevelt .advisor-selection-screen > p { color: #556070; }
.theme-fdroosevelt .advisor-player-section {
    background: rgba(232,228,220,0.9);
    border: 2px solid #8a9aaa;
    border-left: 5px solid #c5943a;
}
.theme-fdroosevelt .advisor-player-header { background: rgba(232,228,220,0.9); }
.theme-fdroosevelt .advisor-player-name { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; font-size: 1.5rem; letter-spacing: 3px; }
.theme-fdroosevelt .advisor-player-party { background: #d0ccc4; color: #2a3f55; }
.theme-fdroosevelt .advisor-card {
    background: #f0ece4;
    border: 2px solid #8a9aaa;
    color: #333;
}
.theme-fdroosevelt .advisor-card:hover {
    border-color: #2a3f55;
    background: #e4e0d8;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.theme-fdroosevelt .advisor-card.selected {
    border-color: #c5943a;
    background: #e4e0d8;
    box-shadow: 0 0 0 3px rgba(197,148,58,0.25);
}
.theme-fdroosevelt .advisor-card-name { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; font-size: 1.1rem; letter-spacing: 2px; }
.theme-fdroosevelt .advisor-card-bio { color: #556070; }
.theme-fdroosevelt .setup-buttons .btn-primary {
    background: #2a3f55; color: #e8e4dc; border: 2px solid #c5943a;
}
.theme-fdroosevelt .setup-buttons .btn-secondary {
    background: transparent; color: #2a3f55; border: 2px solid #2a3f55;
}
.theme-fdroosevelt .advisor-selection-screen .setup-buttons { background: transparent; }
.theme-fdroosevelt .advisor-selected-note { color: #c5943a; }

/* ──────────────────────────────────────
   ⭐ Dwight Eisenhower — 1950s Americana
   ────────────────────────────────────── */
body.theme-eisenhower { background: #d8e0e8; }
body.theme-eisenhower .game-header {
    background: #3a5528; border-bottom-color: #b8c8a8;
}
body.theme-eisenhower .game-header .game-title {
    font-family: 'Raleway', 'Helvetica Neue', sans-serif; letter-spacing: 3px;
}
body.theme-eisenhower .game-header .game-subtitle { color: #c8d8c0; }
#advisorScreen.theme-eisenhower::before {
    background-image: linear-gradient(rgba(224,232,240,0.45), rgba(224,232,240,0.45)), url('../images/candidate-background-images/Dwight-Eisenhower-background.jpg');
}
.theme-eisenhower .advisor-selection-screen {
    background: rgba(240,245,250,0.88);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 3px solid #5b7a3c;
    box-shadow: 0 8px 30px rgba(0,0,0,0.2);
}
.theme-eisenhower .setup-header {
    font-family: 'Raleway', 'Helvetica Neue', sans-serif;
    color: #3a5528;
    border-bottom-color: #5b7a3c;
    letter-spacing: 3px;
}
.theme-eisenhower .advisor-player-section {
    background: rgba(240,245,250,0.8);
    border-color: #b8c8a8;
}
.theme-eisenhower .advisor-player-header { background: rgba(240,245,250,0.8); }
.theme-eisenhower .advisor-player-name { color: #3a5528; font-family: 'Raleway', sans-serif; font-weight: 700; }
.theme-eisenhower .advisor-card {
    background: #f8fafc;
    border-color: #b8c8a8;
}
.theme-eisenhower .advisor-card:hover {
    border-color: #5b7a3c;
    background: #eef3e8;
}
.theme-eisenhower .advisor-card.selected {
    border-color: #5b7a3c;
    background: #e0ebd0;
    box-shadow: 0 0 0 3px rgba(91,122,60,0.2);
}
.theme-eisenhower .advisor-card-name { color: #3a5528; font-family: 'Raleway', sans-serif; }
.theme-eisenhower .setup-buttons .btn-primary {
    background: #5b7a3c; color: #fff;
}
.theme-eisenhower .setup-buttons .btn-secondary {
    background: transparent; color: #3a5528; border: 2px solid #5b7a3c;
}

/* ──────────────────────────────────────
   🚀 John F. Kennedy — Space Age Elegance
   ────────────────────────────────────── */
body.theme-kennedy { background: linear-gradient(180deg, #e8eef5 0%, #d0dce8 100%); }
body.theme-kennedy .game-header {
    background: #1c3a5e; border-bottom-color: #a8b8c8;
}
body.theme-kennedy .game-header .game-title {
    font-family: 'Libre Caslon Display', 'Georgia', serif; color: #ffffff; letter-spacing: 3px;
}
body.theme-kennedy .game-header .game-subtitle { color: #c0d0e0; }
#advisorScreen.theme-kennedy::before {
    background-image: linear-gradient(rgba(208,220,232,0.4), rgba(208,220,232,0.4)), url('../images/candidate-background-images/John-Kennedy-background.jpg');
}
.theme-kennedy .advisor-selection-screen {
    background: rgba(245,248,252,0.88);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 3px solid #1c3a5e;
    box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}
.theme-kennedy .setup-header {
    font-family: 'Libre Caslon Display', 'Georgia', serif;
    color: #1c3a5e;
    border-bottom: 2px solid #1c3a5e;
    letter-spacing: 3px;
}
.theme-kennedy .advisor-selection-screen .setup-subtitle,
.theme-kennedy .advisor-selection-screen > p { color: #4a6080; }
.theme-kennedy .advisor-player-section {
    background: rgba(240,244,250,0.9);
    border-color: #b0c0d0;
}
.theme-kennedy .advisor-player-header { background: rgba(240,244,250,0.9); }
.theme-kennedy .advisor-player-name { color: #1c3a5e; font-family: 'Libre Caslon Display', 'Georgia', serif; }
.theme-kennedy .advisor-player-party { background: #e0e8f0; color: #1c3a5e; }
.theme-kennedy .advisor-card {
    background: #f8fafc;
    border-color: #b0c0d0;
    color: #2a3a50;
}
.theme-kennedy .advisor-card:hover {
    border-color: #1c3a5e;
    background: #e8eef5;
}
.theme-kennedy .advisor-card.selected {
    border-color: #1c3a5e;
    background: #dce5ef;
    box-shadow: 0 0 0 3px rgba(28,58,94,0.2);
}
.theme-kennedy .advisor-card-name { color: #1c3a5e; font-family: 'Libre Caslon Display', 'Georgia', serif; }
.theme-kennedy .advisor-card-bio { color: #4a6080; }
.theme-kennedy .setup-buttons .btn-primary {
    background: #1c3a5e; color: #fff;
}
.theme-kennedy .setup-buttons .btn-secondary {
    background: transparent; color: #1c3a5e; border: 2px solid #1c3a5e;
}
.theme-kennedy .advisor-selection-screen .setup-buttons { background: transparent; }
.theme-kennedy .advisor-selected-note { color: #1c3a5e; }

/* ──────────────────────────────────────
   🤠 Lyndon B. Johnson — Texas Ranch
   ────────────────────────────────────── */
body.theme-lbj { background: #d8c8a8; }
body.theme-lbj .game-header {
    background: #6b3410; border-bottom-color: #c4a070;
}
body.theme-lbj .game-header .game-title {
    font-family: 'Alfa Slab One', 'Bree Serif', serif;
}
body.theme-lbj .game-header .game-subtitle { color: #e0c8a0; }
#advisorScreen.theme-lbj::before {
    background-image: linear-gradient(rgba(216,200,168,0.45), rgba(216,200,168,0.45)), url('../images/candidate-background-images/lyndon-johnson-background.jpg');
}
.theme-lbj .advisor-selection-screen {
    background: linear-gradient(175deg, #f5e8d0 0%, #e8d5b0 100%);
    border: 3px solid #a0522d;
    box-shadow: 4px 6px 0 rgba(0,0,0,0.12), 0 8px 30px rgba(0,0,0,0.3);
}
.theme-lbj .setup-header {
    font-family: 'Alfa Slab One', 'Bree Serif', serif;
    color: #6b3410;
    border-bottom-color: #a0522d;
}
.theme-lbj .advisor-player-section {
    background: rgba(245,232,208,0.7);
    border-color: #c4a070;
}
.theme-lbj .advisor-player-header { background: rgba(245,232,208,0.7); }
.theme-lbj .advisor-player-name { color: #6b3410; font-family: 'Alfa Slab One', serif; }
.theme-lbj .advisor-card {
    background: #faf0dc;
    border-color: #c4a070;
}
.theme-lbj .advisor-card:hover {
    border-color: #a0522d;
    background: #f0e0c0;
}
.theme-lbj .advisor-card.selected {
    border-color: #a0522d;
    background: #e5d0a8;
    box-shadow: 0 0 0 3px rgba(160,82,45,0.25);
}
.theme-lbj .advisor-card-name { color: #6b3410; font-family: 'Alfa Slab One', serif; }
.theme-lbj .setup-buttons .btn-primary {
    background: #a0522d; color: #faf0dc;
}
.theme-lbj .setup-buttons .btn-secondary {
    background: transparent; color: #6b3410; border: 2px solid #a0522d;
}

/* ──────────────────────────────────────
   🎬 Ronald Reagan — Morning in America
   ────────────────────────────────────── */
body.theme-reagan { background: #f0e0c0; }
body.theme-reagan .game-header {
    background: linear-gradient(135deg, #c41e3a, #d4384e); border-bottom-color: #c9a84c;
}
body.theme-reagan .game-header .game-title {
    font-family: 'Bree Serif', 'Georgia', serif;
}
body.theme-reagan .game-header .game-subtitle { color: #ffe0c0; }
#advisorScreen.theme-reagan::before {
    background-image: linear-gradient(rgba(255,248,232,0.4), rgba(255,232,200,0.4)), url('../images/candidate-background-images/Ronald-Reagan-background.png');
}
.theme-reagan .advisor-selection-screen {
    background: rgba(255,248,232,0.88);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 3px solid #c41e3a;
    box-shadow: 0 8px 30px rgba(0,0,0,0.25);
}
.theme-reagan .setup-header {
    font-family: 'Bree Serif', 'Georgia', serif;
    color: #c41e3a;
    border-bottom-color: #c41e3a;
    font-style: italic;
}
.theme-reagan .advisor-player-section {
    background: rgba(255,248,232,0.8);
    border-color: #e0c8a0;
}
.theme-reagan .advisor-player-header { background: rgba(255,248,232,0.8); }
.theme-reagan .advisor-player-name { color: #1a3a6b; font-family: 'Bree Serif', serif; }
.theme-reagan .advisor-card {
    background: #fffcf5;
    border-color: #e0c8a0;
}
.theme-reagan .advisor-card:hover {
    border-color: #c41e3a;
    background: #fff0d8;
}
.theme-reagan .advisor-card.selected {
    border-color: #c41e3a;
    background: #ffe8c0;
    box-shadow: 0 0 0 3px rgba(196,30,58,0.2);
}
.theme-reagan .advisor-card-name { color: #c41e3a; font-family: 'Bree Serif', serif; }
.theme-reagan .setup-buttons .btn-primary {
    background: linear-gradient(135deg, #c41e3a, #d4384e); color: #fff;
}
.theme-reagan .setup-buttons .btn-secondary {
    background: transparent; color: #c41e3a; border: 2px solid #c41e3a;
}

/* ──────────────────────────────────────
   🌅 Barack Obama — Hope / Sunrise
   ────────────────────────────────────── */
body.theme-obama { background: #d8e4f0; }
body.theme-obama .game-header {
    background: #004b87; border-bottom-color: #0077cc;
}
body.theme-obama .game-header .game-title {
    font-family: 'Raleway', 'Helvetica Neue', sans-serif; letter-spacing: 4px;
}
body.theme-obama .game-header .game-subtitle { color: #b0d0f0; }
#advisorScreen.theme-obama::before {
    background-image: linear-gradient(rgba(232,240,248,0.4), rgba(232,240,248,0.4)), url('../images/candidate-background-images/Barack-Obama-background.png');
}
.theme-obama .advisor-selection-screen {
    background: rgba(245,248,252,0.88);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 3px solid #004b87;
    box-shadow: 0 8px 30px rgba(0,0,0,0.2);
}
.theme-obama .setup-header {
    font-family: 'Raleway', 'Helvetica Neue', sans-serif;
    color: #004b87;
    border-bottom-color: #004b87;
    letter-spacing: 4px;
    font-weight: 700;
}
.theme-obama .advisor-player-section {
    background: rgba(245,248,252,0.8);
    border-color: #b0c8e0;
}
.theme-obama .advisor-player-header { background: rgba(245,248,252,0.8); }
.theme-obama .advisor-player-name { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; }
.theme-obama .advisor-card {
    background: #f8faff;
    border-color: #b0c8e0;
}
.theme-obama .advisor-card:hover {
    border-color: #004b87;
    background: #e0ecf8;
}
.theme-obama .advisor-card.selected {
    border-color: #004b87;
    background: #d0e0f0;
    box-shadow: 0 0 0 3px rgba(0,75,135,0.2);
}
.theme-obama .advisor-card-name { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; }
.theme-obama .setup-buttons .btn-primary {
    background: linear-gradient(135deg, #004b87, #0066b0); color: #fff;
}
.theme-obama .setup-buttons .btn-secondary {
    background: transparent; color: #004b87; border: 2px solid #004b87;
}

/* ──────────────────────────────────────
   🏆 Donald Trump — Gold & Power
   ────────────────────────────────────── */
body.theme-trump { background: linear-gradient(180deg, #1a0808 0%, #0a0a0a 100%); }
body.theme-trump .game-header {
    background: linear-gradient(135deg, #8b1a1a, #b22020, #8b1a1a); border-bottom: 3px solid; border-image: linear-gradient(90deg, #a07828, #e8d06c, #f5e888, #e8d06c, #a07828) 1;
}
body.theme-trump .game-header .game-title {
    font-family: 'Anton', 'Oswald', sans-serif;
    background: linear-gradient(180deg, #f5e888, #d4b44c, #a07828, #d4b44c, #f5e888);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: 5px;
    filter: drop-shadow(1px 1px 0 rgba(0,0,0,0.5));
}
body.theme-trump .game-header .game-subtitle { color: #e8c8a0; }
#advisorScreen.theme-trump::before {
    background-image: linear-gradient(rgba(18,8,8,0.55), rgba(18,8,8,0.55)), url('../images/candidate-background-images/Donald-Trump-background.jpg');
}
.theme-trump .advisor-selection-screen {
    background: rgba(28,16,16,0.9);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 3px solid; border-image: linear-gradient(180deg, #f5e888, #d4b44c, #a07828) 1;
    box-shadow: 0 8px 30px rgba(0,0,0,0.6), inset 0 1px 0 rgba(212,180,76,0.15);
}
.theme-trump .setup-header {
    font-family: 'Anton', 'Oswald', sans-serif;
    background: linear-gradient(180deg, #f5e888, #d4b44c, #a07828, #d4b44c, #f5e888);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    border-bottom: 2px solid #8b1a1a;
    letter-spacing: 5px;
}
.theme-trump .advisor-selection-screen .setup-subtitle,
.theme-trump .advisor-selection-screen > p { color: #c0a080; }
.theme-trump .advisor-player-section {
    background: rgba(50,20,20,0.8);
    border-color: #5a2020;
    border-left: 4px solid #b22020;
}
.theme-trump .advisor-player-header { background: rgba(50,20,20,0.8); }
.theme-trump .advisor-player-name {
    font-family: 'Anton', sans-serif; font-size: 1.5rem; letter-spacing: 3px;
    background: linear-gradient(180deg, #f5e888, #d4b44c, #a07828);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.theme-trump .advisor-player-party { background: #3a1515; color: #e8c8a0; }
.theme-trump .advisor-card {
    background: linear-gradient(180deg, #201010, #180a0a);
    border: 2px solid #4a2020;
    color: #d8d0c0;
}
.theme-trump .advisor-card:hover {
    border-color: #b22020;
    background: linear-gradient(180deg, #2a1515, #201010);
    box-shadow: 0 0 10px rgba(178,32,32,0.2);
}
.theme-trump .advisor-card.selected {
    border-color: #d4b44c;
    background: linear-gradient(180deg, #2a1515, #201010);
    box-shadow: 0 0 0 2px rgba(212,180,76,0.25), 0 0 12px rgba(178,32,32,0.2);
}
.theme-trump .advisor-card-name {
    font-family: 'Anton', sans-serif; letter-spacing: 2px;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.theme-trump .advisor-card-bio { color: #c0a080; }
.theme-trump .setup-buttons .btn-primary {
    background: linear-gradient(135deg, #b22020, #d42030); color: #fff;
    border: 2px solid; border-image: linear-gradient(135deg, #f5e888, #d4b44c) 1;
    text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
.theme-trump .setup-buttons .btn-secondary {
    background: transparent;
    border: 2px solid #b22020;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.theme-trump .advisor-selection-screen .setup-buttons { background: transparent; }
.theme-trump .advisor-selected-note {
    background: linear-gradient(90deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* ══════════════════════════════════════════════════════════════
   GAME SCREEN THEME OVERRIDES
   ══════════════════════════════════════════════════════════════ */

/* ── Shared game-screen scaffolding ── */
#gameScreen[class*="theme-"] {
    position: relative;
}
#gameScreen[class*="theme-"]::before {
    content: '';
    position: fixed;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    pointer-events: none;
}
#gameScreen[class*="theme-"] > .game-screen {
    position: relative;
    z-index: 1;
}

/* ── Washington — Game Screen ── */
#gameScreen.theme-washington::before {
    background-image: linear-gradient(rgba(245,237,212,0.6), rgba(245,237,212,0.6)), url('../images/candidate-background-images/George_Washington_background.jpg');
}
.theme-washington .game-stats-bar { background: #f5edd4; border-color: #8b7355; }
.theme-washington .game-panel { background: #faf3e0; border-color: #8b7355; }
.theme-washington .game-footer { background: #f5edd4; border-color: #8b7355; }
.theme-washington .panel-header { color: #1b3a5c; font-family: 'IM Fell English', serif; }
.theme-washington .candidate-name-header { color: #1b3a5c; font-family: 'IM Fell English', serif; }
.theme-washington .stat-label { color: #6b5540; }
.theme-washington .stat-value { color: #1b3a5c; }
.theme-washington .action-button { border-color: #8b7355; background: #faf3e0; }
.theme-washington .action-button:hover:not(:disabled) { background: #1b3a5c; color: #f5edd4; }
.theme-washington .next-button { background: #1b3a5c; }
.theme-washington .round-info { background: #ede5cc; }
.theme-washington .platform-bar-btn { background: linear-gradient(135deg, #1b3a5c, #2a4f7a); }
.theme-washington .spending-bar-btn { background: linear-gradient(135deg, #8b7355, #a08860); }
.theme-washington .dropdown-toggle { background: #1b3a5c; }
.theme-washington .dropdown-content { border-color: #8b7355; }

/* ── Jefferson — Game Screen ── */
#gameScreen.theme-jefferson::before {
    background-image: linear-gradient(rgba(250,245,239,0.55), rgba(240,232,208,0.55)), url('../images/candidate-background-images/Thomas_Jefferson_Background.jpg');
}
.theme-jefferson .game-stats-bar { background: linear-gradient(170deg, #fdf8ef, #f0ead5); border-color: #6b8e4e; }
.theme-jefferson .game-panel { background: linear-gradient(175deg, #fdf8f0, #f5eed8); border-color: #6b8e4e; }
.theme-jefferson .game-footer { background: linear-gradient(170deg, #fdf8ef, #f0ead5); border-color: #6b8e4e; }
.theme-jefferson .panel-header { color: #4a2010; font-family: 'Pinyon Script', cursive; font-size: 1.4rem; }
.theme-jefferson .candidate-name-header { color: #4a2010; font-family: 'Pinyon Script', cursive; }
.theme-jefferson .stat-label { color: #5a4030; }
.theme-jefferson .stat-value { color: #6b8e4e; }
.theme-jefferson .action-button { border-color: #c9a87c; background: linear-gradient(175deg, #fdf8f0, #f5eed8); }
.theme-jefferson .action-button:hover:not(:disabled) { background: #6b8e4e; color: #fdf8ef; }
.theme-jefferson .next-button { background: linear-gradient(135deg, #6b8e4e, #5a7a3e); }
.theme-jefferson .round-info { background: #e8e0c8; }
.theme-jefferson .platform-bar-btn { background: linear-gradient(135deg, #6b8e4e, #5a7a3e); }
.theme-jefferson .spending-bar-btn { background: linear-gradient(135deg, #8b4513, #6b3320); }
.theme-jefferson .dropdown-toggle { background: #6b8e4e; }
.theme-jefferson .dropdown-content { border-color: #6b8e4e; }

/* ── Jackson — Game Screen ── */
#gameScreen.theme-jackson::before {
    background-image: linear-gradient(rgba(74,55,40,0.65), rgba(58,42,28,0.65)), url('../images/candidate-background-images/Andrew-Jackson-background.jpg');
}
.theme-jackson .game-stats-bar { background: linear-gradient(180deg, #4a3728, #3a2a1c); border-color: #8b6914; }
.theme-jackson .game-panel { background: #5a4632; border-color: #6b5540; color: #ddd; }
.theme-jackson .game-footer { background: #4a3728; border-color: #8b6914; }
.theme-jackson .panel-header { color: #d4a843; font-family: 'Rye', 'Alfa Slab One', serif; border-bottom-color: #6b5540; }
.theme-jackson .candidate-name-header { color: #d4a843; font-family: 'Alfa Slab One', serif; }
.theme-jackson .stat-label { color: #c4a87a; }
.theme-jackson .stat-value { color: #d4a843; }
.theme-jackson .action-button { border-color: #6b5540; background: #5a4632; color: #ddd; }
.theme-jackson .action-button:hover:not(:disabled) { background: #8b6914; color: #fff; }
.theme-jackson .action-cost { color: #c4a87a; }
.theme-jackson .next-button { background: #8b6914; }
.theme-jackson .round-info { background: #3a2a1c; color: #c4a87a; }
.theme-jackson .platform-bar-btn { background: linear-gradient(135deg, #8b6914, #a07828); }
.theme-jackson .spending-bar-btn { background: linear-gradient(135deg, #5a4632, #6b5540); }
.theme-jackson .dropdown-toggle { background: #8b6914; }
.theme-jackson .dropdown-content { background: #4a3728; border-color: #8b6914; }
.theme-jackson .dropdown-item { color: #ddd; border-bottom-color: #6b5540; }
.theme-jackson .dropdown-item:hover { background: #5a4632; }
.theme-jackson .ec-entry .ec-name { color: #ddd; }
.theme-jackson .ec-entry .ec-evs { color: #d4a843; }

/* ── Lincoln — Game Screen ── */
#gameScreen.theme-lincoln::before {
    background-image: linear-gradient(rgba(216,212,200,0.55), rgba(216,212,200,0.55)), url('../images/candidate-background-images/Abraham-Lincoln-background.jpg');
}
.theme-lincoln .game-stats-bar { background: #f0ece4; border-color: #2c3e50; background-image: repeating-linear-gradient(0deg, transparent, transparent 1.8em, rgba(0,0,0,.02) 1.8em, rgba(0,0,0,.02) 1.82em); }
.theme-lincoln .game-panel { background: #f8f5ee; border-color: #2c3e50; }
.theme-lincoln .game-footer { background: #f0ece4; border-color: #2c3e50; }
.theme-lincoln .panel-header { color: #1a1a2e; font-family: 'Playfair Display SC', serif; border-bottom: 3px double #2c3e50; }
.theme-lincoln .candidate-name-header { color: #1a1a2e; font-family: 'Playfair Display SC', serif; }
.theme-lincoln .stat-label { color: #555; }
.theme-lincoln .stat-value { color: #2c3e50; }
.theme-lincoln .action-button { border-color: #999; background: #f8f5ee; }
.theme-lincoln .action-button:hover:not(:disabled) { background: #2c3e50; color: #f0ece4; }
.theme-lincoln .next-button { background: #2c3e50; }
.theme-lincoln .round-info { background: #e8e4d8; }
.theme-lincoln .platform-bar-btn { background: linear-gradient(135deg, #2c3e50, #3d5166); }
.theme-lincoln .spending-bar-btn { background: linear-gradient(135deg, #555, #6b6b6b); }
.theme-lincoln .dropdown-toggle { background: #2c3e50; }
.theme-lincoln .dropdown-content { border-color: #2c3e50; }

/* ── T. Roosevelt — Game Screen ── */
#gameScreen.theme-troosevelt::before {
    background-image: linear-gradient(rgba(216,208,184,0.5), rgba(216,208,184,0.5)), url('../images/candidate-background-images/Theodore-Roosevelt-background.jpg');
}
.theme-troosevelt .game-stats-bar { background: linear-gradient(175deg, #f5f0e0, #e8dfc8); border-color: #556b2f; }
.theme-troosevelt .game-panel { background: #faf5e8; border-color: #556b2f; }
.theme-troosevelt .game-footer { background: linear-gradient(175deg, #f5f0e0, #e8dfc8); border-color: #556b2f; }
.theme-troosevelt .panel-header { color: #3d4f1e; font-family: 'Patua One', serif; border-bottom-color: #556b2f; }
.theme-troosevelt .candidate-name-header { color: #3d4f1e; font-family: 'Patua One', serif; }
.theme-troosevelt .stat-label { color: #6b6040; }
.theme-troosevelt .stat-value { color: #556b2f; }
.theme-troosevelt .action-button { border-color: #a08860; background: #faf5e8; }
.theme-troosevelt .action-button:hover:not(:disabled) { background: #556b2f; color: #faf5e8; }
.theme-troosevelt .next-button { background: #556b2f; }
.theme-troosevelt .round-info { background: #efe8d0; }
.theme-troosevelt .platform-bar-btn { background: linear-gradient(135deg, #556b2f, #6b8040); }
.theme-troosevelt .spending-bar-btn { background: linear-gradient(135deg, #8b7355, #a08860); }
.theme-troosevelt .dropdown-toggle { background: #556b2f; }
.theme-troosevelt .dropdown-content { border-color: #556b2f; }

/* ── FDR — Game Screen ── */
#gameScreen.theme-fdroosevelt::before {
    background-image: linear-gradient(rgba(180,185,190,0.45), rgba(180,185,190,0.45)), url('../images/candidate-background-images/Franklin-Roosevelt-background.jpg');
}
.theme-fdroosevelt .game-stats-bar { background: #e8e4dc; border-color: #2a3f55; border-top: 3px solid #c5943a;
    background-image: repeating-linear-gradient(90deg, transparent, transparent 98%, rgba(42,63,85,0.06) 98%, rgba(42,63,85,0.06) 100%), repeating-linear-gradient(0deg, transparent, transparent 98%, rgba(42,63,85,0.06) 98%, rgba(42,63,85,0.06) 100%); background-size: 60px 60px; }
.theme-fdroosevelt .game-panel { background: #f0ece4; border: 2px solid #8a9aaa; }
.theme-fdroosevelt .game-footer { background: #e8e4dc; border-color: #2a3f55; border-top: 3px solid #c5943a; }
.theme-fdroosevelt .panel-header { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; letter-spacing: 3px; border-bottom: 3px double #2a3f55; }
.theme-fdroosevelt .candidate-name-header { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; letter-spacing: 2px; }
.theme-fdroosevelt .stat-label { color: #556070; }
.theme-fdroosevelt .stat-value { color: #c5943a; }
.theme-fdroosevelt .action-button { border-color: #8a9aaa; background: #f0ece4; }
.theme-fdroosevelt .action-button:hover:not(:disabled) { background: #2a3f55; color: #e8e4dc; }
.theme-fdroosevelt .next-button { background: #2a3f55; border: 2px solid #c5943a; }
.theme-fdroosevelt .round-info { background: #d0ccc4; color: #2a3f55; }
.theme-fdroosevelt .platform-bar-btn { background: linear-gradient(135deg, #2a3f55, #3a5570); }
.theme-fdroosevelt .spending-bar-btn { background: linear-gradient(135deg, #c5943a, #a07828); }
.theme-fdroosevelt .dropdown-toggle { background: #2a3f55; }
.theme-fdroosevelt .dropdown-content { border-color: #2a3f55; }

/* ── Eisenhower — Game Screen ── */
#gameScreen.theme-eisenhower::before {
    background-image: linear-gradient(rgba(224,232,240,0.5), rgba(224,232,240,0.5)), url('../images/candidate-background-images/Dwight-Eisenhower-background.jpg');
}
.theme-eisenhower .game-stats-bar { background: rgba(240,245,250,0.92); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-color: #5b7a3c; }
.theme-eisenhower .game-panel { background: rgba(248,250,252,0.9); backdrop-filter: blur(4px); border-color: #5b7a3c; }
.theme-eisenhower .game-footer { background: rgba(240,245,250,0.92); backdrop-filter: blur(6px); border-color: #5b7a3c; }
.theme-eisenhower .panel-header { color: #3a5528; font-family: 'Raleway', sans-serif; letter-spacing: 2px; border-bottom-color: #5b7a3c; }
.theme-eisenhower .candidate-name-header { color: #3a5528; font-family: 'Raleway', sans-serif; }
.theme-eisenhower .stat-label { color: #5a6850; }
.theme-eisenhower .stat-value { color: #5b7a3c; }
.theme-eisenhower .action-button { border-color: #b8c8a8; background: rgba(248,250,252,0.9); }
.theme-eisenhower .action-button:hover:not(:disabled) { background: #5b7a3c; color: #fff; }
.theme-eisenhower .next-button { background: #5b7a3c; }
.theme-eisenhower .round-info { background: #e0ebd0; }
.theme-eisenhower .platform-bar-btn { background: linear-gradient(135deg, #5b7a3c, #6b8a4c); }
.theme-eisenhower .spending-bar-btn { background: linear-gradient(135deg, #3a5528, #4a6838); }
.theme-eisenhower .dropdown-toggle { background: #5b7a3c; }
.theme-eisenhower .dropdown-content { border-color: #5b7a3c; }

/* ── Kennedy — Game Screen ── */
#gameScreen.theme-kennedy::before {
    background-image: linear-gradient(rgba(208,220,232,0.45), rgba(208,220,232,0.45)), url('../images/candidate-background-images/John-Kennedy-background.jpg');
}
.theme-kennedy .game-stats-bar { background: rgba(245,248,252,0.92); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-color: #1c3a5e; }
.theme-kennedy .game-panel { background: rgba(248,250,252,0.9); backdrop-filter: blur(4px); border-color: #1c3a5e; }
.theme-kennedy .game-footer { background: rgba(245,248,252,0.92); backdrop-filter: blur(6px); border-color: #1c3a5e; }
.theme-kennedy .panel-header { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; letter-spacing: 2px; border-bottom-color: #1c3a5e; }
.theme-kennedy .candidate-name-header { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; }
.theme-kennedy .stat-label { color: #4a6080; }
.theme-kennedy .stat-value { color: #1c3a5e; }
.theme-kennedy .action-button { border-color: #b0c0d0; background: rgba(248,250,252,0.9); }
.theme-kennedy .action-button:hover:not(:disabled) { background: #1c3a5e; color: #fff; }
.theme-kennedy .next-button { background: #1c3a5e; }
.theme-kennedy .round-info { background: #dce5ef; }
.theme-kennedy .platform-bar-btn { background: linear-gradient(135deg, #1c3a5e, #2a4f7a); }
.theme-kennedy .spending-bar-btn { background: linear-gradient(135deg, #2e7d32, #43a047); }
.theme-kennedy .dropdown-toggle { background: #1c3a5e; }
.theme-kennedy .dropdown-content { border-color: #1c3a5e; }

/* ── LBJ — Game Screen ── */
#gameScreen.theme-lbj::before {
    background-image: linear-gradient(rgba(216,200,168,0.5), rgba(216,200,168,0.5)), url('../images/candidate-background-images/lyndon-johnson-background.jpg');
}
.theme-lbj .game-stats-bar { background: linear-gradient(175deg, #f5e8d0, #e8d5b0); border-color: #a0522d; }
.theme-lbj .game-panel { background: #faf0dc; border-color: #a0522d; }
.theme-lbj .game-footer { background: linear-gradient(175deg, #f5e8d0, #e8d5b0); border-color: #a0522d; }
.theme-lbj .panel-header { color: #6b3410; font-family: 'Alfa Slab One', serif; border-bottom-color: #a0522d; }
.theme-lbj .candidate-name-header { color: #6b3410; font-family: 'Alfa Slab One', serif; }
.theme-lbj .stat-label { color: #8a6840; }
.theme-lbj .stat-value { color: #a0522d; }
.theme-lbj .action-button { border-color: #c4a070; background: #faf0dc; }
.theme-lbj .action-button:hover:not(:disabled) { background: #a0522d; color: #faf0dc; }
.theme-lbj .next-button { background: #a0522d; }
.theme-lbj .round-info { background: #f0e0c0; }
.theme-lbj .platform-bar-btn { background: linear-gradient(135deg, #a0522d, #b06838); }
.theme-lbj .spending-bar-btn { background: linear-gradient(135deg, #6b3410, #8a4820); }
.theme-lbj .dropdown-toggle { background: #a0522d; }
.theme-lbj .dropdown-content { border-color: #a0522d; }

/* ── Reagan — Game Screen ── */
#gameScreen.theme-reagan::before {
    background-image: linear-gradient(rgba(255,248,232,0.45), rgba(255,232,200,0.45)), url('../images/candidate-background-images/Ronald-Reagan-background.png');
}
.theme-reagan .game-stats-bar { background: rgba(255,248,232,0.92); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-color: #c41e3a; }
.theme-reagan .game-panel { background: rgba(255,252,245,0.9); backdrop-filter: blur(4px); border-color: #c41e3a; }
.theme-reagan .game-footer { background: rgba(255,248,232,0.92); backdrop-filter: blur(6px); border-color: #c41e3a; }
.theme-reagan .panel-header { color: #c41e3a; font-family: 'Bree Serif', serif; border-bottom-color: #c41e3a; }
.theme-reagan .candidate-name-header { color: #1a3a6b; font-family: 'Bree Serif', serif; }
.theme-reagan .stat-label { color: #7a5530; }
.theme-reagan .stat-value { color: #c41e3a; }
.theme-reagan .action-button { border-color: #e0c8a0; background: rgba(255,252,245,0.9); }
.theme-reagan .action-button:hover:not(:disabled) { background: #c41e3a; color: #fff; }
.theme-reagan .next-button { background: linear-gradient(135deg, #c41e3a, #d4384e); }
.theme-reagan .round-info { background: #ffe8c0; }
.theme-reagan .platform-bar-btn { background: linear-gradient(135deg, #1a3a6b, #2a4f8a); }
.theme-reagan .spending-bar-btn { background: linear-gradient(135deg, #c41e3a, #d4384e); }
.theme-reagan .dropdown-toggle { background: #c41e3a; }
.theme-reagan .dropdown-content { border-color: #c41e3a; }

/* ── Obama — Game Screen ── */
#gameScreen.theme-obama::before {
    background-image: linear-gradient(rgba(232,240,248,0.45), rgba(232,240,248,0.45)), url('../images/candidate-background-images/Barack-Obama-background.png');
}
.theme-obama .game-stats-bar { background: rgba(245,248,252,0.92); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-color: #004b87; }
.theme-obama .game-panel { background: rgba(248,250,255,0.9); backdrop-filter: blur(4px); border-color: #004b87; }
.theme-obama .game-footer { background: rgba(245,248,252,0.92); backdrop-filter: blur(6px); border-color: #004b87; }
.theme-obama .panel-header { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; letter-spacing: 3px; border-bottom-color: #004b87; }
.theme-obama .candidate-name-header { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; }
.theme-obama .stat-label { color: #5070a0; }
.theme-obama .stat-value { color: #004b87; }
.theme-obama .action-button { border-color: #b0c8e0; background: rgba(248,250,255,0.9); }
.theme-obama .action-button:hover:not(:disabled) { background: #004b87; color: #fff; }
.theme-obama .next-button { background: linear-gradient(135deg, #004b87, #0066b0); }
.theme-obama .round-info { background: #d0e0f0; }
.theme-obama .platform-bar-btn { background: linear-gradient(135deg, #004b87, #0066b0); }
.theme-obama .spending-bar-btn { background: linear-gradient(135deg, #2e7d32, #43a047); }
.theme-obama .dropdown-toggle { background: #004b87; }
.theme-obama .dropdown-content { border-color: #004b87; }

/* ── Trump — Game Screen ── */
#gameScreen.theme-trump::before {
    background-image: linear-gradient(rgba(18,8,8,0.55), rgba(18,8,8,0.55)), url('../images/candidate-background-images/Donald-Trump-background.jpg');
}
.theme-trump .game-stats-bar { background: rgba(28,16,16,0.92); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 2px solid; border-image: linear-gradient(90deg, #a07828, #f5e888, #a07828) 1; }
.theme-trump .game-panel { background: rgba(28,16,16,0.88); backdrop-filter: blur(4px); border: 2px solid #4a2020; color: #d8d0c0; }
.theme-trump .game-footer { background: rgba(28,16,16,0.92); backdrop-filter: blur(6px); border: 2px solid; border-image: linear-gradient(90deg, #a07828, #f5e888, #a07828) 1; }
.theme-trump .panel-header {
    font-family: 'Anton', sans-serif; letter-spacing: 3px; border-bottom-color: #4a2020;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.theme-trump .candidate-name-header {
    font-family: 'Anton', sans-serif; letter-spacing: 2px;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.theme-trump .stat-label { color: #c0a080; }
.theme-trump .stat-value { color: #d4a843; }
.theme-trump .action-button { border-color: #4a2020; background: rgba(50,20,20,0.8); color: #d8d0c0; }
.theme-trump .action-button:hover:not(:disabled) { background: #b22020; color: #fff; border-color: #b22020; }
.theme-trump .action-cost { color: #c0a080; }
.theme-trump .next-button { background: linear-gradient(135deg, #b22020, #d42030); border: 2px solid; border-image: linear-gradient(135deg, #f5e888, #d4b44c) 1; }
.theme-trump .round-info { background: #3a1515; color: #c0a080; }
.theme-trump .platform-bar-btn { background: linear-gradient(135deg, #b22020, #d42030); }
.theme-trump .spending-bar-btn { background: linear-gradient(135deg, #8b6914, #a07828); }
.theme-trump .dropdown-toggle { background: #b22020; }
.theme-trump .dropdown-content { background: #2a1010; border-color: #4a2020; }
.theme-trump .dropdown-item { color: #d8d0c0; border-bottom-color: #4a2020; }
.theme-trump .dropdown-item:hover { background: #3a1515; }
.theme-trump .ec-entry .ec-name { color: #d8d0c0; }
.theme-trump .ec-entry .ec-evs { color: #d4a843; }
/* Poll items sit on light blended backgrounds — force dark text so they're readable */
.theme-trump #nationalPollContainer .national-poll-item { color: #1a0808; }
.theme-trump #nationalPollContainer .national-poll-item div { color: #1a0808; }
.theme-trump #nationalPollContainer .poll-bar-fill { color: #fff; }

/* ═══════════════════════════════════════════════════════════════════════════
 * CANDIDATE THEMES — Debate Tutorial + Press Clippings screens
 *
 * Mirrors the #advisorScreen / #gameScreen theme pattern: a fixed ::before
 * paints the candidate's photographic backdrop, and the inner card / paper
 * picks up the candidate's palette and serif/display font so the advisor
 * briefing room and the morning papers feel like they belong to that
 * campaign instead of a generic UI.
 * ═══════════════════════════════════════════════════════════════════════════ */

/* Generic backdrop scaffolding for both themed screens */
#debateScreen[class*="theme-"]::before,
#pressClippingsScreen[class*="theme-"]::before {
    content: '';
    position: fixed;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    pointer-events: none;
}
#debateScreen[class*="theme-"] > .debate-tutorial-screen,
#pressClippingsScreen[class*="theme-"] > .press-clippings-container,
#pressClippingsScreen[class*="theme-"] > .feed-container {
    position: relative;
    z-index: 1;
}

/* ── Washington ── */
#debateScreen.theme-washington::before,
#pressClippingsScreen.theme-washington::before {
    background-image: linear-gradient(rgba(245,237,212,0.85), rgba(245,237,212,0.85)), url('../images/candidate-background-images/George_Washington_background.jpg');
}
.theme-washington .debate-tutorial-inner { background: #faf3e0; border: 3px solid #8b7355; box-shadow: 4px 6px 0 rgba(0,0,0,0.15); }
.theme-washington .debate-tutorial-text-panel .tutorial-card-advisor { color: #6b5540; font-family: 'IM Fell English', serif; }
.theme-washington .debate-tutorial-text-panel .tutorial-card-title { color: #1b3a5c; font-family: 'IM Fell English', serif; }
.theme-washington .debate-tutorial-text-panel .tutorial-card-text { color: #2c1810; font-family: 'IM Fell English', serif; }
.theme-washington .debate-tutorial-text-panel .tutorial-btn-next { background: #1b3a5c; color: #f5edd4; }
.theme-washington .press-clippings-container { background: #faf3e0; border-color: #8b7355; }
.theme-washington .press-clippings-header { background: #1b3a5c; }
.theme-washington .press-clippings-title { font-family: 'IM Fell English', serif; }

/* ── Jefferson ── */
#debateScreen.theme-jefferson::before,
#pressClippingsScreen.theme-jefferson::before {
    background-image: linear-gradient(rgba(250,245,239,0.8), rgba(240,232,208,0.8)), url('../images/candidate-background-images/Thomas_Jefferson_Background.jpg');
}
.theme-jefferson .debate-tutorial-inner { background: linear-gradient(175deg, #fdf8f0, #f5eed8); border: 3px solid #6b8e4e; }
.theme-jefferson .debate-tutorial-text-panel .tutorial-card-advisor { color: #5a4030; font-family: 'Pinyon Script', cursive; font-size: 1.1rem; }
.theme-jefferson .debate-tutorial-text-panel .tutorial-card-title { color: #4a2010; font-family: 'Pinyon Script', cursive; font-size: 1.6rem; }
.theme-jefferson .debate-tutorial-text-panel .tutorial-card-text { color: #4a2010; font-family: 'Libre Franklin', sans-serif; }
.theme-jefferson .debate-tutorial-text-panel .tutorial-btn-next { background: linear-gradient(135deg, #6b8e4e, #5a7a3e); }
.theme-jefferson .press-clippings-container { background: linear-gradient(175deg, #fdf8f0, #f5eed8); border-color: #6b8e4e; }
.theme-jefferson .press-clippings-header { background: linear-gradient(135deg, #6b3320, #8b4513); }
.theme-jefferson .press-clippings-title { font-family: 'Pinyon Script', cursive; font-size: 2rem; }

/* ── Jackson ── */
#debateScreen.theme-jackson::before,
#pressClippingsScreen.theme-jackson::before {
    background-image: linear-gradient(rgba(74,55,40,0.8), rgba(58,42,28,0.8)), url('../images/candidate-background-images/Andrew-Jackson-background.jpg');
}
.theme-jackson .debate-tutorial-inner { background: #5a4632; border: 3px solid #8b6914; color: #ddd; }
.theme-jackson .debate-tutorial-text-panel .tutorial-card-advisor { color: #c4a87a; font-family: 'Rye', serif; }
.theme-jackson .debate-tutorial-text-panel .tutorial-card-title { color: #d4a843; font-family: 'Rye', 'Alfa Slab One', serif; }
.theme-jackson .debate-tutorial-text-panel .tutorial-card-text { color: #e8dcc0; font-family: 'Alfa Slab One', serif; font-weight: 400; }
.theme-jackson .debate-tutorial-text-panel .tutorial-btn-next { background: #8b6914; color: #fff; }
.theme-jackson .press-clippings-container { background: #5a4632; border-color: #8b6914; }
.theme-jackson .press-clippings-header { background: #3a2a1c; color: #d4a843; }
.theme-jackson .press-clippings-title { font-family: 'Rye', serif; color: #d4a843; }

/* ── Lincoln ── */
#debateScreen.theme-lincoln::before,
#pressClippingsScreen.theme-lincoln::before {
    background-image: linear-gradient(rgba(216,212,200,0.85), rgba(216,212,200,0.85)), url('../images/candidate-background-images/Abraham-Lincoln-background.jpg');
}
.theme-lincoln .debate-tutorial-inner { background: #f8f5ee; border: 3px solid #2c3e50; }
.theme-lincoln .debate-tutorial-text-panel .tutorial-card-advisor { color: #555; font-family: 'Playfair Display SC', serif; }
.theme-lincoln .debate-tutorial-text-panel .tutorial-card-title { color: #1a1a2e; font-family: 'Playfair Display SC', serif; border-bottom: 2px double #2c3e50; padding-bottom: 6px; }
.theme-lincoln .debate-tutorial-text-panel .tutorial-card-text { color: #1a1a2e; font-family: 'Playfair Display', serif; }
.theme-lincoln .debate-tutorial-text-panel .tutorial-btn-next { background: #2c3e50; }
.theme-lincoln .press-clippings-container { background: #f8f5ee; border-color: #2c3e50; }
.theme-lincoln .press-clippings-header { background: #2c3e50; }
.theme-lincoln .press-clippings-title { font-family: 'Playfair Display SC', serif; }

/* ── T. Roosevelt ── */
#debateScreen.theme-troosevelt::before,
#pressClippingsScreen.theme-troosevelt::before {
    background-image: linear-gradient(rgba(216,208,184,0.8), rgba(216,208,184,0.8)), url('../images/candidate-background-images/Theodore-Roosevelt-background.jpg');
}
.theme-troosevelt .debate-tutorial-inner { background: #faf5e8; border: 3px solid #556b2f; }
.theme-troosevelt .debate-tutorial-text-panel .tutorial-card-advisor { color: #6b6040; font-family: 'Patua One', serif; }
.theme-troosevelt .debate-tutorial-text-panel .tutorial-card-title { color: #3d4f1e; font-family: 'Patua One', serif; }
.theme-troosevelt .debate-tutorial-text-panel .tutorial-card-text { color: #3d2b1f; font-family: 'Patua One', serif; }
.theme-troosevelt .debate-tutorial-text-panel .tutorial-btn-next { background: #556b2f; }
.theme-troosevelt .press-clippings-container { background: #faf5e8; border-color: #556b2f; }
.theme-troosevelt .press-clippings-header { background: #556b2f; }
.theme-troosevelt .press-clippings-title { font-family: 'Patua One', serif; }

/* ── FDR ── */
#debateScreen.theme-fdroosevelt::before,
#pressClippingsScreen.theme-fdroosevelt::before {
    background-image: linear-gradient(rgba(180,185,190,0.78), rgba(180,185,190,0.78)), url('../images/candidate-background-images/Franklin-Roosevelt-background.jpg');
}
.theme-fdroosevelt .debate-tutorial-inner { background: #f0ece4; border: 2px solid #2a3f55; border-top: 4px solid #c5943a; }
.theme-fdroosevelt .debate-tutorial-text-panel .tutorial-card-advisor { color: #556070; font-family: 'Bebas Neue', sans-serif; letter-spacing: 2px; }
.theme-fdroosevelt .debate-tutorial-text-panel .tutorial-card-title { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; letter-spacing: 3px; }
.theme-fdroosevelt .debate-tutorial-text-panel .tutorial-card-text { color: #2a3f55; }
.theme-fdroosevelt .debate-tutorial-text-panel .tutorial-btn-next { background: #2a3f55; border: 2px solid #c5943a; }
.theme-fdroosevelt .press-clippings-container { background: #f0ece4; border-color: #2a3f55; }
.theme-fdroosevelt .press-clippings-header { background: #2a3f55; border-bottom: 3px solid #c5943a; }
.theme-fdroosevelt .press-clippings-title { font-family: 'Bebas Neue', sans-serif; letter-spacing: 3px; }

/* ── Eisenhower ── */
#debateScreen.theme-eisenhower::before,
#pressClippingsScreen.theme-eisenhower::before {
    background-image: linear-gradient(rgba(224,232,240,0.8), rgba(224,232,240,0.8)), url('../images/candidate-background-images/Dwight-Eisenhower-background.jpg');
}
.theme-eisenhower .debate-tutorial-inner { background: rgba(248,250,252,0.95); border: 3px solid #5b7a3c; backdrop-filter: blur(4px); }
.theme-eisenhower .debate-tutorial-text-panel .tutorial-card-advisor { color: #5a6850; font-family: 'Raleway', sans-serif; letter-spacing: 1px; }
.theme-eisenhower .debate-tutorial-text-panel .tutorial-card-title { color: #3a5528; font-family: 'Raleway', sans-serif; letter-spacing: 2px; }
.theme-eisenhower .debate-tutorial-text-panel .tutorial-card-text { color: #3a5528; font-family: 'Raleway', sans-serif; }
.theme-eisenhower .debate-tutorial-text-panel .tutorial-btn-next { background: #5b7a3c; }
.theme-eisenhower .press-clippings-container { background: rgba(248,250,252,0.95); border-color: #5b7a3c; }
.theme-eisenhower .press-clippings-header { background: #5b7a3c; }
.theme-eisenhower .press-clippings-title { font-family: 'Raleway', sans-serif; letter-spacing: 2px; }

/* ── Kennedy ── */
#debateScreen.theme-kennedy::before,
#pressClippingsScreen.theme-kennedy::before {
    background-image: linear-gradient(rgba(208,220,232,0.78), rgba(208,220,232,0.78)), url('../images/candidate-background-images/John-Kennedy-background.jpg');
}
.theme-kennedy .debate-tutorial-inner { background: rgba(248,250,252,0.95); border: 3px solid #1c3a5e; backdrop-filter: blur(4px); }
.theme-kennedy .debate-tutorial-text-panel .tutorial-card-advisor { color: #4a6080; font-family: 'Libre Caslon Display', serif; }
.theme-kennedy .debate-tutorial-text-panel .tutorial-card-title { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; letter-spacing: 1px; }
.theme-kennedy .debate-tutorial-text-panel .tutorial-card-text { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; }
.theme-kennedy .debate-tutorial-text-panel .tutorial-btn-next { background: #1c3a5e; }
.theme-kennedy .press-clippings-container { background: rgba(248,250,252,0.95); border-color: #1c3a5e; }
.theme-kennedy .press-clippings-header { background: #1c3a5e; }
.theme-kennedy .press-clippings-title { font-family: 'Libre Caslon Display', serif; letter-spacing: 2px; }

/* ── LBJ ── */
#debateScreen.theme-lbj::before,
#pressClippingsScreen.theme-lbj::before {
    background-image: linear-gradient(rgba(216,200,168,0.8), rgba(216,200,168,0.8)), url('../images/candidate-background-images/lyndon-johnson-background.jpg');
}
.theme-lbj .debate-tutorial-inner { background: #faf0dc; border: 3px solid #a0522d; }
.theme-lbj .debate-tutorial-text-panel .tutorial-card-advisor { color: #8a6840; font-family: 'Alfa Slab One', serif; }
.theme-lbj .debate-tutorial-text-panel .tutorial-card-title { color: #6b3410; font-family: 'Alfa Slab One', serif; }
.theme-lbj .debate-tutorial-text-panel .tutorial-card-text { color: #6b3410; }
.theme-lbj .debate-tutorial-text-panel .tutorial-btn-next { background: #a0522d; color: #faf0dc; }
.theme-lbj .press-clippings-container { background: #faf0dc; border-color: #a0522d; }
.theme-lbj .press-clippings-header { background: #a0522d; }
.theme-lbj .press-clippings-title { font-family: 'Alfa Slab One', serif; }

/* ── Reagan ── */
#debateScreen.theme-reagan::before,
#pressClippingsScreen.theme-reagan::before {
    background-image: linear-gradient(rgba(255,248,232,0.78), rgba(255,232,200,0.78)), url('../images/candidate-background-images/Ronald-Reagan-background.png');
}
.theme-reagan .debate-tutorial-inner { background: rgba(255,252,245,0.95); border: 3px solid #c41e3a; backdrop-filter: blur(4px); }
.theme-reagan .debate-tutorial-text-panel .tutorial-card-advisor { color: #7a5530; font-family: 'Bree Serif', serif; }
.theme-reagan .debate-tutorial-text-panel .tutorial-card-title { color: #c41e3a; font-family: 'Bree Serif', serif; }
.theme-reagan .debate-tutorial-text-panel .tutorial-card-text { color: #1a3a6b; font-family: 'Bree Serif', serif; }
.theme-reagan .debate-tutorial-text-panel .tutorial-btn-next { background: linear-gradient(135deg, #c41e3a, #d4384e); }
.theme-reagan .press-clippings-container { background: rgba(255,252,245,0.95); border-color: #c41e3a; }
.theme-reagan .press-clippings-header { background: linear-gradient(135deg, #1a3a6b, #2a4f8a); }
.theme-reagan .press-clippings-title { font-family: 'Bree Serif', serif; }

/* ── Obama ── */
#debateScreen.theme-obama::before,
#pressClippingsScreen.theme-obama::before {
    background-image: linear-gradient(rgba(232,240,248,0.78), rgba(232,240,248,0.78)), url('../images/candidate-background-images/Barack-Obama-background.png');
}
.theme-obama .debate-tutorial-inner { background: rgba(248,250,255,0.95); border: 3px solid #004b87; backdrop-filter: blur(4px); }
.theme-obama .debate-tutorial-text-panel .tutorial-card-advisor { color: #5070a0; font-family: 'Raleway', sans-serif; letter-spacing: 1px; }
.theme-obama .debate-tutorial-text-panel .tutorial-card-title { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; letter-spacing: 2px; }
.theme-obama .debate-tutorial-text-panel .tutorial-card-text { color: #1a2e4a; font-family: 'Raleway', sans-serif; }
.theme-obama .debate-tutorial-text-panel .tutorial-btn-next { background: linear-gradient(135deg, #004b87, #0066b0); }
.theme-obama .press-clippings-container { background: rgba(248,250,255,0.95); border-color: #004b87; }
.theme-obama .press-clippings-header { background: linear-gradient(135deg, #004b87, #0066b0); }
.theme-obama .press-clippings-title { font-family: 'Raleway', sans-serif; font-weight: 700; letter-spacing: 2px; }

/* ── Trump ── */
#debateScreen.theme-trump::before,
#pressClippingsScreen.theme-trump::before {
    background-image: linear-gradient(rgba(18,8,8,0.85), rgba(18,8,8,0.85)), url('../images/candidate-background-images/Donald-Trump-background.jpg');
}
.theme-trump .debate-tutorial-inner { background: rgba(28,16,16,0.95); border: 2px solid; border-image: linear-gradient(90deg, #a07828, #f5e888, #a07828) 1; color: #d8d0c0; }
.theme-trump .debate-tutorial-text-panel .tutorial-card-advisor { color: #c0a080; font-family: 'Anton', sans-serif; letter-spacing: 2px; }
.theme-trump .debate-tutorial-text-panel .tutorial-card-title {
    font-family: 'Anton', sans-serif; letter-spacing: 3px;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.theme-trump .debate-tutorial-text-panel .tutorial-card-text { color: #d8d0c0; font-family: 'Anton', sans-serif; letter-spacing: 0.5px; font-weight: 400; }
.theme-trump .debate-tutorial-text-panel .tutorial-btn-next { background: linear-gradient(135deg, #b22020, #d42030); border: 2px solid; border-image: linear-gradient(135deg, #f5e888, #d4b44c) 1; }
.theme-trump .press-clippings-container { background: rgba(28,16,16,0.95); border: 2px solid; border-image: linear-gradient(90deg, #a07828, #f5e888, #a07828) 1; color: #d8d0c0; }
.theme-trump .press-clippings-header { background: #2a1010; border-bottom: 2px solid #d4b44c; }
.theme-trump .press-clippings-title { font-family: 'Anton', sans-serif; letter-spacing: 3px; background: linear-gradient(180deg, #f5e888, #d4b44c); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* ═══════════════════════════════════════════════════════════════════════════
 * CANDIDATE THEMES — Primary Results screen
 *
 * The primary results screen uses a single .press-clipping newspaper card.
 * Themes paint a fixed candidate backdrop behind the card and re-skin the
 * masthead (.newspaper-name + .newspaper-date), the .headline, and the body
 * borders so each campaign's primary night feels like its own paper of record.
 * ═══════════════════════════════════════════════════════════════════════════ */

#primaryResultsScreen[class*="theme-"]::before {
    content: '';
    position: fixed;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    pointer-events: none;
}
#primaryResultsScreen[class*="theme-"] > .press-clipping {
    position: relative;
    z-index: 1;
}

/* ── Washington ── */
#primaryResultsScreen.theme-washington::before {
    background-image: linear-gradient(rgba(245,237,212,0.85), rgba(245,237,212,0.85)), url('../images/candidate-background-images/George_Washington_background.jpg');
}
.theme-washington #primaryResultsScreen .press-clipping,
#primaryResultsScreen.theme-washington .press-clipping { background: #faf3e0; border: 3px solid #8b7355; box-shadow: 4px 6px 0 rgba(0,0,0,0.15); }
#primaryResultsScreen.theme-washington .newspaper-name { color: #1b3a5c; font-family: 'IM Fell English', serif; }
#primaryResultsScreen.theme-washington .newspaper-date,
#primaryResultsScreen.theme-washington .press-body { color: #2c1810; font-family: 'IM Fell English', serif; }
#primaryResultsScreen.theme-washington .headline { color: #1b3a5c; font-family: 'IM Fell English', serif; }
#primaryResultsScreen.theme-washington .newspaper-divider { border-color: #8b7355; }

/* ── Jefferson ── */
#primaryResultsScreen.theme-jefferson::before {
    background-image: linear-gradient(rgba(250,245,239,0.8), rgba(240,232,208,0.8)), url('../images/candidate-background-images/Thomas_Jefferson_Background.jpg');
}
#primaryResultsScreen.theme-jefferson .press-clipping { background: linear-gradient(175deg, #fdf8f0, #f5eed8); border: 3px solid #6b8e4e; }
#primaryResultsScreen.theme-jefferson .newspaper-name { color: #6b3320; font-family: 'Pinyon Script', cursive; font-size: 2.4rem; }
#primaryResultsScreen.theme-jefferson .newspaper-date,
#primaryResultsScreen.theme-jefferson .press-body { color: #4a2010; font-family: 'Libre Franklin', sans-serif; }
#primaryResultsScreen.theme-jefferson .headline { color: #4a2010; font-family: 'Pinyon Script', cursive; font-size: 2.6rem; }
#primaryResultsScreen.theme-jefferson .newspaper-divider { border-color: #6b8e4e; }

/* ── Jackson ── */
#primaryResultsScreen.theme-jackson::before {
    background-image: linear-gradient(rgba(74,55,40,0.8), rgba(58,42,28,0.8)), url('../images/candidate-background-images/Andrew-Jackson-background.jpg');
}
#primaryResultsScreen.theme-jackson .press-clipping { background: #5a4632; border: 3px solid #8b6914; color: #e8dcc0; }
#primaryResultsScreen.theme-jackson .newspaper-name { color: #d4a843; font-family: 'Rye', serif; }
#primaryResultsScreen.theme-jackson .newspaper-date { color: #c4a87a; font-family: 'Rye', serif; }
#primaryResultsScreen.theme-jackson .headline { color: #d4a843; font-family: 'Rye', 'Alfa Slab One', serif; }
#primaryResultsScreen.theme-jackson .press-body { color: #e8dcc0; font-family: 'Alfa Slab One', serif; font-weight: 400; }
#primaryResultsScreen.theme-jackson .newspaper-divider { border-color: #8b6914; }

/* ── Lincoln ── */
#primaryResultsScreen.theme-lincoln::before {
    background-image: linear-gradient(rgba(216,212,200,0.85), rgba(216,212,200,0.85)), url('../images/candidate-background-images/Abraham-Lincoln-background.jpg');
}
#primaryResultsScreen.theme-lincoln .press-clipping { background: #f8f5ee; border: 3px solid #2c3e50; }
#primaryResultsScreen.theme-lincoln .newspaper-name { color: #1a1a2e; font-family: 'Playfair Display SC', serif; }
#primaryResultsScreen.theme-lincoln .newspaper-date,
#primaryResultsScreen.theme-lincoln .press-body { color: #1a1a2e; font-family: 'Playfair Display', serif; }
#primaryResultsScreen.theme-lincoln .headline { color: #1a1a2e; font-family: 'Playfair Display SC', serif; border-bottom: 2px double #2c3e50; padding-bottom: 6px; }
#primaryResultsScreen.theme-lincoln .newspaper-divider { border-color: #2c3e50; border-style: double; }

/* ── T. Roosevelt ── */
#primaryResultsScreen.theme-troosevelt::before {
    background-image: linear-gradient(rgba(216,208,184,0.8), rgba(216,208,184,0.8)), url('../images/candidate-background-images/Theodore-Roosevelt-background.jpg');
}
#primaryResultsScreen.theme-troosevelt .press-clipping { background: #faf5e8; border: 3px solid #556b2f; }
#primaryResultsScreen.theme-troosevelt .newspaper-name { color: #3d4f1e; font-family: 'Patua One', serif; }
#primaryResultsScreen.theme-troosevelt .newspaper-date,
#primaryResultsScreen.theme-troosevelt .press-body { color: #3d2b1f; font-family: 'Patua One', serif; }
#primaryResultsScreen.theme-troosevelt .headline { color: #3d4f1e; font-family: 'Patua One', serif; }
#primaryResultsScreen.theme-troosevelt .newspaper-divider { border-color: #556b2f; }

/* ── FDR ── */
#primaryResultsScreen.theme-fdroosevelt::before {
    background-image: linear-gradient(rgba(180,185,190,0.78), rgba(180,185,190,0.78)), url('../images/candidate-background-images/Franklin-Roosevelt-background.jpg');
}
#primaryResultsScreen.theme-fdroosevelt .press-clipping { background: #f0ece4; border: 2px solid #2a3f55; border-top: 4px solid #c5943a; }
#primaryResultsScreen.theme-fdroosevelt .newspaper-name { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; letter-spacing: 3px; }
#primaryResultsScreen.theme-fdroosevelt .newspaper-date { color: #556070; font-family: 'Bebas Neue', sans-serif; letter-spacing: 2px; }
#primaryResultsScreen.theme-fdroosevelt .headline { color: #2a3f55; font-family: 'Bebas Neue', sans-serif; letter-spacing: 3px; }
#primaryResultsScreen.theme-fdroosevelt .press-body { color: #2a3f55; }
#primaryResultsScreen.theme-fdroosevelt .newspaper-divider { border-color: #c5943a; }

/* ── Eisenhower ── */
#primaryResultsScreen.theme-eisenhower::before {
    background-image: linear-gradient(rgba(224,232,240,0.8), rgba(224,232,240,0.8)), url('../images/candidate-background-images/Dwight-Eisenhower-background.jpg');
}
#primaryResultsScreen.theme-eisenhower .press-clipping { background: rgba(248,250,252,0.95); border: 3px solid #5b7a3c; backdrop-filter: blur(4px); }
#primaryResultsScreen.theme-eisenhower .newspaper-name { color: #3a5528; font-family: 'Raleway', sans-serif; letter-spacing: 2px; }
#primaryResultsScreen.theme-eisenhower .newspaper-date,
#primaryResultsScreen.theme-eisenhower .press-body { color: #3a5528; font-family: 'Raleway', sans-serif; }
#primaryResultsScreen.theme-eisenhower .headline { color: #3a5528; font-family: 'Raleway', sans-serif; letter-spacing: 2px; }
#primaryResultsScreen.theme-eisenhower .newspaper-divider { border-color: #5b7a3c; }

/* ── Kennedy ── */
#primaryResultsScreen.theme-kennedy::before {
    background-image: linear-gradient(rgba(208,220,232,0.78), rgba(208,220,232,0.78)), url('../images/candidate-background-images/John-Kennedy-background.jpg');
}
#primaryResultsScreen.theme-kennedy .press-clipping { background: rgba(248,250,252,0.95); border: 3px solid #1c3a5e; backdrop-filter: blur(4px); }
#primaryResultsScreen.theme-kennedy .newspaper-name { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; letter-spacing: 2px; }
#primaryResultsScreen.theme-kennedy .newspaper-date,
#primaryResultsScreen.theme-kennedy .press-body { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; }
#primaryResultsScreen.theme-kennedy .headline { color: #1c3a5e; font-family: 'Libre Caslon Display', serif; letter-spacing: 1px; }
#primaryResultsScreen.theme-kennedy .newspaper-divider { border-color: #1c3a5e; }

/* ── LBJ ── */
#primaryResultsScreen.theme-lbj::before {
    background-image: linear-gradient(rgba(216,200,168,0.8), rgba(216,200,168,0.8)), url('../images/candidate-background-images/lyndon-johnson-background.jpg');
}
#primaryResultsScreen.theme-lbj .press-clipping { background: #faf0dc; border: 3px solid #a0522d; }
#primaryResultsScreen.theme-lbj .newspaper-name { color: #6b3410; font-family: 'Alfa Slab One', serif; }
#primaryResultsScreen.theme-lbj .newspaper-date,
#primaryResultsScreen.theme-lbj .press-body { color: #6b3410; }
#primaryResultsScreen.theme-lbj .headline { color: #6b3410; font-family: 'Alfa Slab One', serif; }
#primaryResultsScreen.theme-lbj .newspaper-divider { border-color: #a0522d; }

/* ── Reagan ── */
#primaryResultsScreen.theme-reagan::before {
    background-image: linear-gradient(rgba(255,248,232,0.78), rgba(255,232,200,0.78)), url('../images/candidate-background-images/Ronald-Reagan-background.png');
}
#primaryResultsScreen.theme-reagan .press-clipping { background: rgba(255,252,245,0.95); border: 3px solid #c41e3a; backdrop-filter: blur(4px); }
#primaryResultsScreen.theme-reagan .newspaper-name { color: #c41e3a; font-family: 'Bree Serif', serif; }
#primaryResultsScreen.theme-reagan .newspaper-date,
#primaryResultsScreen.theme-reagan .press-body { color: #1a3a6b; font-family: 'Bree Serif', serif; }
#primaryResultsScreen.theme-reagan .headline { color: #1a3a6b; font-family: 'Bree Serif', serif; }
#primaryResultsScreen.theme-reagan .newspaper-divider { border-color: #c41e3a; }

/* ── Obama ── */
#primaryResultsScreen.theme-obama::before {
    background-image: linear-gradient(rgba(232,240,248,0.78), rgba(232,240,248,0.78)), url('../images/candidate-background-images/Barack-Obama-background.png');
}
#primaryResultsScreen.theme-obama .press-clipping { background: rgba(248,250,255,0.95); border: 3px solid #004b87; backdrop-filter: blur(4px); }
#primaryResultsScreen.theme-obama .newspaper-name { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; letter-spacing: 2px; }
#primaryResultsScreen.theme-obama .newspaper-date,
#primaryResultsScreen.theme-obama .press-body { color: #1a2e4a; font-family: 'Raleway', sans-serif; }
#primaryResultsScreen.theme-obama .headline { color: #004b87; font-family: 'Raleway', sans-serif; font-weight: 700; letter-spacing: 2px; }
#primaryResultsScreen.theme-obama .newspaper-divider { border-color: #004b87; }

/* ── Trump ── */
#primaryResultsScreen.theme-trump::before {
    background-image: linear-gradient(rgba(18,8,8,0.85), rgba(18,8,8,0.85)), url('../images/candidate-background-images/Donald-Trump-background.jpg');
}
#primaryResultsScreen.theme-trump .press-clipping { background: rgba(28,16,16,0.95); border: 2px solid; border-image: linear-gradient(90deg, #a07828, #f5e888, #a07828) 1; color: #d8d0c0; }
#primaryResultsScreen.theme-trump .newspaper-name {
    font-family: 'Anton', sans-serif; letter-spacing: 3px;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
#primaryResultsScreen.theme-trump .newspaper-date { color: #c0a080; font-family: 'Anton', sans-serif; letter-spacing: 2px; }
#primaryResultsScreen.theme-trump .headline {
    font-family: 'Anton', sans-serif; letter-spacing: 3px;
    background: linear-gradient(180deg, #f5e888, #d4b44c);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
#primaryResultsScreen.theme-trump .press-body { color: #d8d0c0; font-family: 'Anton', sans-serif; letter-spacing: 0.5px; font-weight: 400; }
#primaryResultsScreen.theme-trump .newspaper-divider { border-color: #d4b44c; }
