/**
 * desk.css - The Iron Desk Aesthetic
 *
 * v5.0 - "Visual Decay Update"
 *
 * Diegetic UI: Late 1940s Analog / Industrial Noir
 * Typewriter fonts, paper textures, bakelite buttons, teletype printouts
 * No CRT effects. No Scanlines. No Neon. Think "Ink on Paper" and "Light on Wall."
 *
 * v5.0 changes:
 * - Visual Decay System: desk accumulates coffee rings, scattered papers, ash
 * - Stress Tiers 0-3 with progressive lighting degradation
 * - Intel Glitch animation for action failures
 * - The Bunker: red emergency lighting at DEFCON 2
 */

/* ========================================
   v10.2: Browser Artifact Elimination
   ======================================== */
#desk, #desk * {
    -webkit-user-select: none;
    user-select: none;
}
/* Re-enable for actual text content that should be copyable */
.log-content, .telegram-body p, .intel-entry-text {
    -webkit-user-select: text;
    user-select: text;
}

/* ========================================
   CSS Variables
   ======================================== */
:root {
    /* Wood tones */
    --wood-dark: #4a3728;
    --wood-medium: #6b4423;
    --wood-light: #8b5a2b;
    --wood-highlight: #a0522d;

    /* Paper tones */
    --paper-cream: #f5f0e1;
    --paper-aged: #e8dcc4;
    --paper-manila: #e3c9a3;

    /* Ink colors */
    --ink-black: #1a1a1a;
    --ink-blue: #1a3a5c;
    --ink-red: #8b0000;

    /* Faction colors */
    --usa-blue: #002868;
    --usa-light: #3b5998;
    --ussr-red: #cc0000;
    --ussr-light: #ff4444;

    /* DEFCON colors */
    --defcon-5: #228b22;
    --defcon-4: #9acd32;
    --defcon-3: #ffd700;
    --defcon-2: #ff8c00;
    --defcon-1: #dc143c;

    /* Typography - Typewriter Era */
    --font-display: 'Georgia', 'Times New Roman', serif;
    --font-body: 'Courier Prime', 'Special Elite', 'American Typewriter', 'Courier New', monospace;
    --font-teletype: 'Courier Prime', 'Courier New', monospace;
    --font-typewriter: 'Courier Prime', 'Courier New', monospace;

    /* Analog textures */
    --bakelite-dark: #2a2018;
    --bakelite-light: #4a3828;
    --bakelite-highlight: #5a4838;
    --metal-dark: #3a3a3a;
    --metal-light: #5a5a5a;
    --metal-highlight: #7a7a7a;
    --brass: #b8860b;
    --brass-light: #d4a84b;
}

/* ========================================
   Reset & Base
   ======================================== */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
    overflow: hidden;
}

body {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--ink-black);
    background: var(--wood-dark);
}

/* ========================================
   v2.0 - HIGH CONTRAST TEXT RULES
   ======================================== */

/* Etched text effect for headers and important text */
.status-item .label,
.action-header h2,
.region-name,
.map-title,
.log-title {
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Ensure all form inputs have high-contrast backgrounds */
select,
input[type="text"],
input[type="number"] {
    background: #ffffff;
    color: #000000;
    border: 2px solid #3a3a3a;
    font-weight: bold;
}

select:focus,
input:focus {
    outline: 2px solid var(--usa-blue);
    outline-offset: 1px;
}

/* Force black ink on paper backgrounds */
.telegram-body,
.event-description,
.crisis-description {
    color: #1a1a1a;
}

/* ========================================
   The Desk (Main Container)
   ======================================== */
#desk {
    display: flex;
    flex-direction: column;
    height: 100vh;
    /* Wood grain texture via gradient */
    background:
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 2px,
            rgba(0, 0, 0, 0.03) 2px,
            rgba(0, 0, 0, 0.03) 4px
        ),
        linear-gradient(
            180deg,
            var(--wood-medium) 0%,
            var(--wood-dark) 20%,
            var(--wood-medium) 40%,
            var(--wood-dark) 60%,
            var(--wood-light) 80%,
            var(--wood-dark) 100%
        );
    padding: 10px;
}

/* ========================================
   Header
   ======================================== */
#header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    background: linear-gradient(180deg, var(--wood-light) 0%, var(--wood-medium) 100%);
    border: 2px solid var(--wood-dark);
    border-radius: 4px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        0 2px 4px rgba(0, 0, 0, 0.3);
}

.title-area h1 {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: bold;
    color: var(--paper-cream);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
    letter-spacing: 2px;
}

.title-area .subtitle {
    font-size: 11px;
    color: var(--paper-aged);
    letter-spacing: 1px;
}

/* Protocol buttons (Export/Import) - Bakelite Switch Style */
.protocol-buttons {
    display: flex;
    gap: 8px;
    align-items: center;
}

.protocol-menu {
    position: relative;
}

.protocol-menu-toggle {
    min-width: 78px;
}

.protocol-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8px 12px;
    /* Bakelite button appearance */
    border: 2px solid #1a1510;
    border-radius: 3px;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 0.5px;
    transition: transform 0.1s, box-shadow 0.1s;
    /* Bakelite material - slightly glossy, solid */
    background: linear-gradient(180deg, #4a3828 0%, #2a2018 100%);
    color: #e8dcc4;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        inset 0 -2px 0 rgba(0, 0, 0, 0.3),
        0 3px 6px rgba(0, 0, 0, 0.4);
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
}

.protocol-btn .btn-icon {
    font-size: 16px;
    margin-bottom: 2px;
}

.protocol-btn.export {
    background: linear-gradient(180deg, #5a4838 0%, #3a2818 100%);
}

.protocol-btn.import {
    background: linear-gradient(180deg, #4a3828 0%, #2a2018 100%);
}

.protocol-btn.file {
    background: linear-gradient(180deg, #3a3030 0%, #2a2020 100%);
}

.protocol-btn.new {
    /* Stamped metal button - brass/bronze */
    background: linear-gradient(180deg, #b8860b 0%, #8b6914 100%);
    color: #1a1a1a;
    border-color: #6b4a0a;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
}

.protocol-btn:hover {
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.15),
        inset 0 -2px 0 rgba(0, 0, 0, 0.3),
        0 5px 10px rgba(0, 0, 0, 0.5);
}

.protocol-btn:active {
    transform: translateY(1px);
    box-shadow:
        inset 0 2px 3px rgba(0, 0, 0, 0.4),
        0 1px 2px rgba(0, 0, 0, 0.3);
}

.protocol-menu-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    min-width: 170px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 6px;
    background: linear-gradient(180deg, #3f2e20 0%, #23180f 100%);
    border: 2px solid #1a1510;
    border-radius: 4px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.45);
    z-index: 5000;
}

/* v9.2: Fix hidden attribute override - explicit display:flex was preventing hidden from working */
.protocol-menu-panel[hidden] {
    display: none;
}

.protocol-menu-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    border: 1px solid #1a1510;
    border-radius: 3px;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 0.5px;
    color: #e8dcc4;
    background: linear-gradient(180deg, #5a4838 0%, #2f241a 100%);
    text-align: left;
}

.protocol-menu-item .btn-icon {
    font-size: 14px;
    width: 16px;
}

.protocol-menu-item:hover {
    background: linear-gradient(180deg, #685442 0%, #3a2c20 100%);
}

.protocol-menu-item:active {
    transform: translateY(1px);
}

/* ========================================
   Status Bar
   ======================================== */
#status-bar {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap; /* v9.2: Prevent clipping on narrow viewports */
    gap: 4px 0; /* v9.2: Vertical gap when items wrap */
    padding: 12px 20px;
    margin-top: 10px;
    background: var(--paper-aged);
    border: 1px solid #a09080;
    border-radius: 2px;
    box-shadow:
        inset 0 1px 3px rgba(0, 0, 0, 0.1),
        0 2px 4px rgba(0, 0, 0, 0.2);
}

.status-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 15px;
    border-right: 1px dashed #a09080;
}

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

.status-item .label {
    font-size: 10px;
    color: #2a2a2a;
    letter-spacing: 1px;
    margin-bottom: 4px;
    font-weight: 700;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.status-item .value {
    font-size: 18px;
    font-weight: bold;
    color: #1a1a1a;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
}

.status-item .value.usa {
    color: var(--usa-blue);
}

.status-item .value.ussr {
    color: var(--ussr-red);
}

.status-item .vs {
    font-size: 12px;
    color: #888;
    margin: 0 5px;
}

/* DEFCON indicator */
.status-item.defcon {
    padding: 5px 15px;
    border-radius: 4px;
}

.status-item.defcon-5 { background: var(--defcon-5); color: white; }
.status-item.defcon-4 { background: var(--defcon-4); color: black; }
.status-item.defcon-3 { background: var(--defcon-3); color: black; }
.status-item.defcon-2 { background: var(--defcon-2); color: #000; }
.status-item.defcon-1 { background: var(--defcon-1); color: white; font-weight: bold; }

.status-item.defcon .label,
.status-item.defcon .value {
    color: inherit;
}

/* Tension bar */
.status-item.tension {
    min-width: 150px;
}

.tension-bar {
    width: 100%;
    height: 8px;
    background: #ddd;
    border-radius: 4px;
    margin-top: 4px;
    overflow: hidden;
}

.tension-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--defcon-5) 0%, var(--defcon-3) 50%, var(--defcon-1) 100%);
    transition: width 0.3s ease;
}

/* v1.1: Tension Status (Fog of War) */
.tension-status {
    padding: 5px 15px;
    border-radius: 4px;
    min-width: 140px;
}

.tension-status .tension-label {
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.tension-calm {
    background: var(--defcon-5);
    color: white;
}

.tension-concerned {
    background: var(--defcon-4);
    color: black;
}

.tension-mobilizing {
    background: var(--defcon-3);
    color: black;
}

.tension-ready {
    background: var(--defcon-2);
    color: white;
}

.tension-imminent {
    background: var(--defcon-1);
    color: white;
    animation: pulse-warning 1s infinite;
}

@keyframes pulse-warning {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* v5.6: Tension Band UI - Fog of War Display */
.tension-band-indicator {
    font-family: var(--font-typewriter);
    padding: 8px 12px;
    border: 2px solid currentColor;
    background: rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tension-band-label {
    font-size: 14px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.tension-band-meter {
    display: flex;
    gap: 4px;
}

.tension-band-meter .segment {
    width: 16px;
    height: 8px;
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid currentColor;
    transition: background 0.3s ease;
}

.tension-band-meter .segment.filled {
    background: currentColor;
}

/* Tension Band Color States */
.tension-band-low {
    color: var(--defcon-5);
    border-color: var(--defcon-5);
}

.tension-band-elevated {
    color: var(--defcon-4);
    border-color: var(--defcon-4);
}

.tension-band-high {
    color: var(--defcon-3);
    border-color: var(--defcon-3);
}

.tension-band-critical {
    color: var(--defcon-2);
    border-color: var(--defcon-2);
}

.tension-band-flashpoint {
    color: var(--defcon-1);
    border-color: var(--defcon-1);
    animation: flashpoint-pulse 1s infinite;
}

@keyframes flashpoint-pulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 10px var(--defcon-1); }
    50% { opacity: 0.8; box-shadow: 0 0 20px var(--defcon-1); }
}

/* Border Probe Intel Display */
.border-probe-intel {
    font-family: var(--font-typewriter);
    padding: 8px 12px;
    border: 1px dashed var(--ink-blue);
    background: rgba(26, 58, 92, 0.1);
    margin-top: 8px;
}

.border-probe-intel .intel-header {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink-blue);
    margin-bottom: 4px;
}

.border-probe-intel .intel-value {
    font-size: 12px;
    font-weight: bold;
}

.border-probe-intel.intel-relaxed { color: var(--defcon-5); }
.border-probe-intel.intel-cautious { color: var(--defcon-4); }
.border-probe-intel.intel-mobilizing { color: var(--defcon-2); }
.border-probe-intel.intel-ready { color: var(--defcon-1); }

/* v1.1: Nuclear Era indicator */
.era-monopoly {
    background: var(--usa-blue);
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}

.era-nuclear {
    background: var(--ink-red);
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}

.era-badge {
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1px;
}

.era-monopoly .label,
.era-monopoly .value,
.era-nuclear .label,
.era-nuclear .value {
    color: inherit !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3) !important;
}

/* ========================================
   Main Content
   ======================================== */
#main-content {
    display: flex;
    flex: 1;
    gap: 15px;
    margin-top: 10px;
    overflow: hidden;
}

/* ========================================
   Map Area
   Refactored for Responsive Aspect Ratio (v6.1)
   ======================================== */
#map-area {
    flex: 2;
    display: flex;
    flex-direction: column;
    /* v6.1: Use flex-start to avoid top clipping if content overflows */
    justify-content: flex-start;
    align-items: stretch;
    gap: 10px;
    padding: 15px;
    background: var(--paper-cream);
    border: 2px solid #a09080;
    border-radius: 4px;
    box-shadow:
        inset 0 0 20px rgba(0, 0, 0, 0.05),
        0 2px 8px rgba(0, 0, 0, 0.3);
    /* v6.1: Prevent scrollbars, force containment */
    overflow: hidden;
    position: relative;
}

/* Region cards */
.region {
    background: var(--paper-aged);
    border: 1px solid #b0a090;
    border-radius: 4px;
    padding: 15px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.region-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px dashed #a09080;
}

.region-name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: bold;
    color: var(--ink-blue);
}

.region-stability {
    font-size: 12px;
    color: #666;
}

/* Control bar */
.control-bar {
    display: flex;
    height: 30px;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid #888;
}

.control-us {
    background: linear-gradient(180deg, var(--usa-light) 0%, var(--usa-blue) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: width 0.3s ease;
}

.control-ussr {
    background: linear-gradient(180deg, var(--ussr-light) 0%, var(--ussr-red) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: width 0.3s ease;
}

.control-label {
    font-size: 12px;
    font-weight: bold;
    color: white;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}

.control-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 5px;
    font-size: 11px;
    color: #666;
}

.label-us { color: var(--usa-blue); }
.label-ussr { color: var(--ussr-red); }

/* ========================================
   Action Panel
   ======================================== */
#action-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    background: var(--wood-light);
    border: 2px solid var(--wood-dark);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    min-height: 0; /* v9.2: Allow flex child to shrink below content size */
}

/* v9.2: Scrollable content area - keeps End Turn pinned at bottom */
.action-panel-scrollable {
    flex: 1;
    overflow-y: auto;
    padding: 0 15px 10px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 0;
}

.action-header {
    text-align: center;
    padding: 15px 15px 10px;
    border-bottom: 2px solid var(--wood-dark);
    flex-shrink: 0;
}

.action-header h2 {
    font-family: var(--font-display);
    font-size: 16px;
    color: var(--paper-cream);
    margin-bottom: 5px;
}

.ap-display {
    font-size: 14px;
    color: var(--paper-aged);
    font-weight: bold;
}

.action-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Telegram cards */
.telegram {
    background: var(--paper-cream);
    border: 1px solid #a09080;
    border-radius: 2px;
    padding: 12px;
    box-shadow:
        2px 2px 4px rgba(0, 0, 0, 0.2),
        inset 0 0 10px rgba(0, 0, 0, 0.03);
    position: relative;
}

.telegram::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 10px,
        var(--ink-blue) 10px,
        var(--ink-blue) 20px
    );
}

.telegram.disabled {
    opacity: 0.5;
    filter: grayscale(50%);
    pointer-events: none;
}

/* Disabled action buttons */
.action-card .execute-btn:disabled,
.action-card.disabled .execute-btn {
    background: #7a7a7a;
    color: #d0d0d0;
    cursor: not-allowed;
    pointer-events: none;
}

.action-card.disabled .country-selector {
    opacity: 0.6;
    pointer-events: none;
}

.action-card.disabled .country-select {
    background: #ddd;
    cursor: not-allowed;
}

.guided-action {
    border-color: rgba(160, 82, 45, 0.65);
    box-shadow:
        0 0 0 1px rgba(160, 82, 45, 0.22),
        2px 2px 4px rgba(0, 0, 0, 0.18),
        inset 0 0 10px rgba(160, 82, 45, 0.05);
}

.guided-action::before {
    background: linear-gradient(
        90deg,
        rgba(160, 82, 45, 0.92) 0%,
        rgba(182, 141, 76, 0.9) 55%,
        rgba(26, 48, 80, 0.85) 100%
    );
}

.guided-action-rank-1 {
    transform: translateY(-1px);
    box-shadow:
        0 0 0 1px rgba(182, 141, 76, 0.34),
        0 10px 18px rgba(90, 54, 20, 0.12),
        2px 2px 4px rgba(0, 0, 0, 0.18),
        inset 0 0 12px rgba(182, 141, 76, 0.08);
}

.action-guidance-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    margin-bottom: 8px;
}

.action-guidance-priority,
.action-guidance-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: bold;
}

.action-guidance-priority {
    background: rgba(26, 48, 80, 0.92);
    color: #fff;
}

.action-guidance-tag {
    border: 1px solid rgba(26, 48, 80, 0.16);
    color: #48382a;
    background: rgba(255, 248, 238, 0.92);
}

.action-guidance-tag.doctrine {
    background: rgba(182, 141, 76, 0.16);
    border-color: rgba(182, 141, 76, 0.36);
    color: #77501f;
}

.action-guidance-tag.focus {
    background: rgba(120, 32, 32, 0.1);
    border-color: rgba(120, 32, 32, 0.2);
    color: #6c2323;
}

.action-guidance-tag.context {
    background: rgba(26, 48, 80, 0.08);
    border-color: rgba(26, 48, 80, 0.15);
    color: #21405d;
}

.action-guidance-note {
    margin-top: -2px;
    margin-bottom: 10px;
    font-size: 11px;
    color: #5d4a39;
    font-style: italic;
}

.advisor-recommendation-card {
    border-color: rgba(182, 141, 76, 0.55);
    background:
        linear-gradient(180deg, rgba(255, 250, 239, 0.98) 0%, rgba(246, 234, 211, 0.96) 100%);
}

.advisor-recommendation-card::before {
    background: linear-gradient(
        90deg,
        rgba(120, 32, 32, 0.86) 0%,
        rgba(182, 141, 76, 0.9) 50%,
        rgba(26, 48, 80, 0.86) 100%
    );
}

.advisor-recommendation-meta {
    font-size: 10px;
    letter-spacing: 0.12em;
    font-weight: bold;
    color: var(--ink-blue);
}

.advisor-recommendation-alternates {
    margin-bottom: 0;
    font-size: 11px;
    color: #6a5848;
}

.telegram-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 8px;
    border-bottom: 1px dashed #a09080;
    margin-bottom: 8px;
}

.action-name {
    font-weight: bold;
    color: #1a3050;
    font-size: 13px;
}

.action-cost {
    background: #1a3050;
    color: #ffffff;
    padding: 3px 10px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: bold;
}

.telegram-body p {
    margin-bottom: 8px;
    line-height: 1.4;
    color: #1a1a1a;
}

.telegram-body .stats {
    font-size: 11px;
    color: #3a3a3a;
    font-style: italic;
    font-weight: bold;
}

.stamp {
    display: inline-block;
    padding: 3px 10px;
    border: 2px solid var(--ink-red);
    color: var(--ink-red);
    font-weight: bold;
    font-size: 11px;
    letter-spacing: 1px;
    transform: rotate(-3deg);
}

.stamp.urgent {
    background: var(--ink-red);
    color: white;
}

/* Region selector in action cards */
.region-selector {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #a09080;
}

.region-selector label {
    font-size: 11px;
    color: #3a3a3a;
    font-weight: bold;
}

.region-select {
    flex: 1;
    padding: 6px 8px;
    font-family: var(--font-body);
    font-size: 12px;
    border: 2px solid #3a3a3a;
    border-radius: 2px;
    background: #ffffff;
    color: #000000;
    font-weight: bold;
}

.execute-btn {
    padding: 6px 14px;
    /* Stamped metal toggle switch */
    background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
    color: #f5f0e1;
    border: 2px solid #2a2a2a;
    border-radius: 2px;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.15s;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3),
        0 2px 4px rgba(0, 0, 0, 0.3);
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
    letter-spacing: 0.5px;
}

.execute-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.25),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3),
        0 3px 6px rgba(0, 0, 0, 0.4);
}

.execute-btn:disabled {
    background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
    color: #999;
    cursor: not-allowed;
    box-shadow: none;
}

/* End Turn button - Heavy Brass Lever Switch */
.turn-controls {
    flex-shrink: 0;
    padding: 10px 15px 15px;
    border-top: 2px solid var(--wood-dark);
    background: var(--wood-light);
}

.end-turn-btn {
    width: 100%;
    padding: 14px 12px;
    /* Heavy brass lever switch */
    background: linear-gradient(180deg, #d4a84b 0%, #b8860b 50%, #8b6914 100%);
    color: #1a1510;
    border: 3px solid #6b4a0a;
    border-radius: 3px;
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 3px;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.3),
        inset 0 -3px 0 rgba(0, 0, 0, 0.2),
        0 4px 8px rgba(0, 0, 0, 0.4),
        0 1px 0 #4a3a0a;
    transition: transform 0.1s, box-shadow 0.1s;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
}

.end-turn-btn:hover {
    transform: translateY(-2px);
    background: linear-gradient(180deg, #e4b85b 0%, #c8960b 50%, #9b7924 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.35),
        inset 0 -3px 0 rgba(0, 0, 0, 0.2),
        0 6px 12px rgba(0, 0, 0, 0.5),
        0 1px 0 #4a3a0a;
}

.end-turn-btn:active {
    transform: translateY(2px);
    box-shadow:
        inset 0 3px 5px rgba(0, 0, 0, 0.3),
        0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Awaiting opponent telegram */
.telegram.awaiting {
    background: var(--paper-manila);
    text-align: center;
}

.telegram.awaiting .instruction {
    font-style: italic;
    color: var(--ink-blue);
}

/* Game over telegram */
.telegram.game-over {
    text-align: center;
}

.telegram.game-over.nuclear {
    background: #2a0a0a;
    color: var(--ink-red);
    border-color: var(--ink-red);
}

.telegram.game-over.nuclear h2 {
    color: var(--ink-red);
    font-size: 20px;
    margin-bottom: 10px;
}

/* v1.1: Pyrrhic Victory (Conventional WWIII) */
.telegram.game-over.pyrrhic {
    background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
    color: #ccc;
    border-color: #666;
}

.telegram.game-over.pyrrhic h2 {
    color: #ff9900;
    font-size: 20px;
    margin-bottom: 10px;
}

.telegram.game-over.pyrrhic .pyrrhic-note {
    color: #999;
    font-style: italic;
    margin-top: 10px;
}

.telegram.game-over.pyrrhic .pyrrhic-cost {
    color: var(--ink-red);
    font-weight: bold;
    margin-top: 5px;
}

/* v1.2: Red Star Over Paris - Stalemate */
.telegram.game-over.stalemate {
    background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
    color: #ccc;
    border-color: var(--ussr-red);
    border-width: 2px;
}

.telegram.game-over.stalemate h2 {
    color: var(--ussr-red);
    font-size: 20px;
    margin-bottom: 10px;
    text-shadow: 0 0 10px rgba(180, 30, 30, 0.5);
}

.telegram.game-over.stalemate .stalemate-note {
    color: #999;
    font-style: italic;
    margin-top: 10px;
}

.telegram.game-over.stalemate .stalemate-cost {
    color: var(--ussr-red);
    font-weight: bold;
    margin-top: 5px;
}

.telegram.game-over.victory {
    background: var(--paper-cream);
}

.new-game-btn {
    margin-top: 15px;
    padding: 10px 20px;
    background: var(--usa-blue);
    color: white;
    border: none;
    border-radius: 4px;
    font-family: var(--font-body);
    font-size: 14px;
    cursor: pointer;
}

.new-game-btn:hover {
    background: var(--usa-light);
}

/* ========================================
   Footer
   ======================================== */
#footer {
    display: flex;
    justify-content: space-between;
    padding: 8px 20px;
    margin-top: 10px;
    background: var(--wood-dark);
    border-radius: 2px;
    font-size: 10px;
    color: var(--paper-aged);
    letter-spacing: 1px;
}

.classification {
    color: var(--ink-red);
    font-weight: bold;
}

/* ========================================
   Phase Overlay (Crisis, etc.)
   ======================================== */
#phase-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}

#phase-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

/* Crisis modal */
.crisis-modal {
    background: var(--paper-cream);
    border: 4px solid var(--ink-red);
    border-radius: 8px;
    padding: 30px 40px;
    max-width: 500px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.red-phone {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    background: var(--ink-red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.red-phone::before {
    content: '\\260E';
    font-size: 40px;
    color: white;
}

.phone-ring {
    position: absolute;
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    border: 3px solid var(--ink-red);
    border-radius: 50%;
    animation: ring 0.5s infinite;
}

@keyframes ring {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.5; }
}

.crisis-title {
    font-family: var(--font-display);
    font-size: 24px;
    color: var(--ink-red);
    margin-bottom: 15px;
}

.crisis-description {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 25px;
    color: var(--ink-black);
}

.crisis-choices {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.crisis-btn {
    padding: 15px 25px;
    border: 2px solid;
    border-radius: 4px;
    font-family: var(--font-body);
    cursor: pointer;
    transition: transform 0.1s;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 1 200px;
    max-width: 220px;
}

.crisis-btn:hover {
    transform: scale(1.05);
}

.crisis-btn .btn-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 5px;
}

.crisis-btn .btn-effect {
    font-size: 11px;
    opacity: 0.8;
}

.crisis-btn.back-down {
    background: var(--paper-aged);
    border-color: #888;
    color: var(--ink-black);
}

.crisis-btn.escalate {
    background: var(--ink-red);
    border-color: #600;
    color: white;
}

/* ========================================
   Notifications
   ======================================== */
.notification {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 12px 24px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-size: 14px;
    z-index: 2000;
    animation: slideUp 0.3s ease;
}

@keyframes slideUp {
    from {
        transform: translateX(-50%) translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
}

.notification.fade-out {
    animation: fadeOut 0.3s ease forwards;
}

@keyframes fadeOut {
    to {
        opacity: 0;
        transform: translateX(-50%) translateY(-10px);
    }
}

.notification.success {
    background: var(--defcon-5);
    color: white;
}

.notification.error {
    background: var(--ink-red);
    color: white;
}

.notification.info {
    background: var(--ink-blue);
    color: white;
}

/* ========================================
   Scrollbar styling
   ======================================== */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--wood-dark);
}

::-webkit-scrollbar-thumb {
    background: var(--wood-light);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--wood-highlight);
}

/* ========================================
   v2.0 - ANALOG ATMOSPHERIC EFFECTS
   ======================================== */

/* Paper grain texture - subtle fiber pattern instead of scanlines */
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 9999;
    /* Subtle paper fiber texture - NOT scanlines */
    background-image:
        url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    opacity: 0.03;
}

/* Disable texture on full-screen overlays */
body:has(.advisor-overlay)::after,
body:has(.title-overlay)::after {
    opacity: 0;
}

/* Vignette effect - Tungsten desk lamp lighting, warm shadows at edges */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 9998;
    /* Warm tungsten lighting falloff - like a desk lamp pool of light */
    background: radial-gradient(
        ellipse at 50% 30%,
        transparent 40%,
        rgba(30, 20, 10, 0.15) 70%,
        rgba(20, 15, 10, 0.35) 100%
    );
}

/* ========================================
   v2.0 - WORLD MAP STYLES (Plotting Table)
   Refactored for Responsive Aspect Ratio (v6.1)
   ======================================== */
.world-map-container {
    /* Dark plotting table surface */
    background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
    border: 3px solid #4a4a4a;
    border-radius: 2px;
    padding: 12px;
    box-shadow:
        inset 0 2px 8px rgba(0, 0, 0, 0.4),
        0 4px 12px rgba(0, 0, 0, 0.5);
    /* Metal frame edge highlight */
    border-top-color: #5a5a5a;
    border-left-color: #5a5a5a;

    /* v6.1: Flex behavior to manage the map inside */
    flex: 1;
    min-height: 0; /* Critical for nested flex sizing */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.map-title {
    text-align: center;
    font-family: var(--font-display);
    font-size: 12px;
    /* Etched brass nameplate */
    color: #d4a84b;
    letter-spacing: 4px;
    margin-bottom: 10px;
    font-weight: bold;
    text-transform: uppercase;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
}

.world-map {
    width: 100%;
    height: auto;
    display: block;
    border: 1px solid #1a3a1a;
}

.map-region {
    transition: fill-opacity 0.3s, stroke-width 0.3s;
}

.map-region.clickable {
    cursor: pointer;
}

.map-region.clickable:hover {
    fill-opacity: 1 !important;
    stroke-width: 2.5;
    filter: brightness(1.3);
}

.map-region.selected {
    stroke-width: 3 !important;
    stroke: #ffff00 !important;
    filter: drop-shadow(0 0 8px rgba(255, 255, 0, 0.5));
}

.region-label .label-name {
    font-family: var(--font-body);
    font-size: 10px;
    fill: #e8dcc4;
    font-weight: bold;
}

.region-label .label-control {
    font-family: var(--font-body);
    font-size: 8px;
    fill: #a09080;
}

.map-legend {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #3a3a3a;
    font-size: 10px;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #a09080;
    font-family: var(--font-body);
}

.legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
}

.legend-item.usa .legend-dot {
    background: linear-gradient(180deg, #3b5998, #002868);
}

.legend-item.ussr .legend-dot {
    background: linear-gradient(180deg, #ff4444, #cc0000);
}

.legend-item.contested .legend-dot {
    background: linear-gradient(90deg, #002868, #cc0000);
}

/* ========================================
   v5.1 - DUAL CHANNEL LOG STYLES
   ======================================== */
.action-log-container {
    position: relative;
    border-radius: 2px;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.dual-log {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 15px;
    margin-top: 10px;
}

/* --- LEFT PANEL: THE GLOBAL GAZETTE (Newspaper) --- */
.log-public {
    background-color: #f4f1ea;
    /* Newsprint texture: Subtle noise + faint horizontal lines */
    background-image:
        linear-gradient(rgba(0,0,0,0.03) 1px, transparent 1px),
        repeating-radial-gradient(#e8e4da 0, #e8e4da 1px, transparent 1px, transparent 100%);
    background-size: 100% 3px, 4px 4px;
    border: 1px solid #c0b8a0;
    font-family: 'Times New Roman', 'Georgia', serif;
    color: #1a1a1a;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Vertical Fold Effect on the right side */
.log-public::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    width: 1px;
    background: rgba(0,0,0,0.1);
    border-right: 1px solid rgba(255,255,255,0.5);
    pointer-events: none;
}

.log-public .log-header {
    background: transparent;
    border-bottom: 2px solid #1a1a1a;
    padding: 12px 10px 4px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.log-public .log-title {
    font-family: 'Playfair Display', 'Times New Roman', serif;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    color: #1a1a1a;
    margin-bottom: 2px;
    text-shadow: 0 1px 0 rgba(255,255,255,0.8);
    border: none; /* Reset potential inherited borders */
}

.log-public .log-status {
    font-family: 'Arial', sans-serif;
    font-size: 8px;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-top: 1px solid #1a1a1a;
    border-bottom: 1px solid #1a1a1a;
    padding: 1px 8px;
    margin-top: 2px;
    width: auto;
}

.log-public .log-content {
    font-family: 'Georgia', serif;
    font-size: 13px;
    line-height: 1.35;
    padding: 10px 30px 10px 15px; /* Extra right padding for fold */
    color: #2a2a2a;
    background: transparent;
    height: 140px; /* Fixed height for scroll */
}

.log-public .log-entry {
    margin-bottom: 8px;
    padding-left: 0;
    border-left: none;
    border-bottom: 1px dotted #bbb;
    padding-bottom: 4px;
    text-transform: none; /* Newspaper body isn't all caps */
    letter-spacing: 0;
}

.log-public .log-entry:last-child {
    border-bottom: none;
}

/* Ink colors for newspaper */
.log-public .log-entry.usa-entry {
    color: #002050; /* Deep Navy Ink */
    border-left: none;
}
.log-public .log-entry.ussr-entry {
    color: #600000; /* Deep Red Ink */
    border-left: none;
}
.log-public .log-entry.failed {
    color: #8b0000;
    font-style: italic;
}

.log-public .log-footer {
    background: rgba(0,0,0,0.02);
    border-top: 1px double #c0b8a0;
    padding: 4px;
    text-align: center;
    color: #888;
}

/* --- RIGHT PANEL: EYES ONLY (Classified Dossier/Terminal) --- */
.log-secret {
    background-color: #222; /* Dark Grey */
    border: 2px solid #333;
    font-family: 'Courier Prime', 'Courier New', monospace;
    color: #33ff33; /* Terminal Green fallback */
    box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}

/* CRT/Terminal Scanline Overlay */
.log-secret::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%),
        linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
    background-size: 100% 2px, 3px 100%;
    pointer-events: none;
    z-index: 2;
    opacity: 0.6;
}

.log-secret .log-header {
    background: #111;
    border-bottom: 2px solid #444;
    padding: 10px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 45px;
}

/* The Stamp Effect */
.log-secret .log-title {
    color: #ff3333;
    font-family: 'Special Elite', 'Courier New', monospace;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 2px;
    border: 3px solid #ff3333;
    padding: 4px 8px;
    transform: rotate(-3deg);
    border-radius: 4px;
    opacity: 0.85;
    text-shadow: 0 0 2px rgba(255, 51, 51, 0.4);
    background: rgba(255, 51, 51, 0.05);
}

/* Remove old decoration */
.log-secret .log-title::after {
    display: none;
}

.log-secret .log-status {
    color: #ffcc00; /* Amber */
    font-size: 10px;
    letter-spacing: 1px;
    text-shadow: 0 0 5px rgba(255, 204, 0, 0.5);
}

.log-secret .log-content {
    /* Phosphor Green Text */
    color: #aaccff; /* Ice Blue Terminal */
    padding: 10px 15px;
    font-size: 11px;
    line-height: 1.5;
    height: 140px;
    text-shadow: 0 0 2px rgba(170, 204, 255, 0.4);
}

.log-secret .log-entry {
    margin-bottom: 6px;
    padding-left: 10px;
    border-left: 2px solid transparent;
}

.log-secret .log-entry.usa-entry {
    border-left-color: #3b5998;
    color: #aaccff;
}

.log-secret .log-entry.ussr-entry {
    border-left-color: #cc0000;
    color: #ffaaaa; /* Pale red phosphor */
}

/* v5.4: Epistemic Fog - Misperceived action styling */
.log-entry.misperceived {
    font-style: italic;
    opacity: 0.9;
}

.log-public .log-entry.misperceived {
    background: linear-gradient(90deg, transparent 0%, rgba(255, 200, 0, 0.08) 50%, transparent 100%);
}

.log-secret .log-entry.misperceived {
    border-left-style: dashed;
    background: rgba(255, 100, 0, 0.1);
}

.log-secret .log-entry.misperceived::after {
    content: " [UNVERIFIED]";
    font-size: 0.75em;
    color: #ff9900;
    opacity: 0.8;
}

.log-secret .log-footer {
    background: #111;
    border-top: 1px solid #444;
    padding: 4px 15px;
}

.log-secret .cursor-blink {
    color: #00ff00;
    text-shadow: 0 0 5px #00ff00;
}

/* Scrollbar overrides for specific panels */
.log-public .log-content::-webkit-scrollbar { width: 6px; }
.log-public .log-content::-webkit-scrollbar-track { background: transparent; }
.log-public .log-content::-webkit-scrollbar-thumb { background: #c0b8a0; border-radius: 3px; }

.log-secret .log-content::-webkit-scrollbar { width: 6px; }
.log-secret .log-content::-webkit-scrollbar-track { background: #111; }
.log-secret .log-content::-webkit-scrollbar-thumb { background: #444; border: 1px solid #222; }

/* Action log container positioning */
#action-log {
    margin: 10px;
    margin-top: 0;
}

/* ========================================
   v1.4 - CIA INTEL PANEL STYLES
   ======================================== */
.intel-panel {
    background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
    border: 2px solid #3a3a5a;
    border-radius: 4px;
    padding: 12px;
    margin-bottom: 10px;
}

.intel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #3a3a5a;
}

.intel-title {
    color: #8888cc;
    font-size: 12px;
    letter-spacing: 2px;
    font-weight: bold;
    text-shadow: 0 0 10px rgba(100, 100, 200, 0.3);
}

.intel-status {
    color: #6a6a9a;
    font-size: 10px;
}

.intel-btn {
    width: 100%;
    padding: 10px 15px;
    background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 100%);
    border: 1px solid #4a4a7a;
    border-radius: 4px;
    color: #aaaadd;
    font-family: var(--font-body);
    font-size: 11px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: left;
}

.intel-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #3a3a6e 0%, #2a2a5a 100%);
    border-color: #6a6a9a;
    color: #ccccff;
}

.intel-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.intel-btn .btn-title {
    display: block;
    font-weight: bold;
    margin-bottom: 4px;
}

.intel-btn .btn-cost {
    color: #8888aa;
    font-size: 10px;
}

.intel-reveal {
    background: #1a2a1a;
    border: 1px solid #3a5a3a;
    border-radius: 4px;
    padding: 10px;
    margin-top: 10px;
}

.intel-reveal-title {
    color: #6a9a6a;
    font-size: 10px;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.intel-reveal-item {
    display: flex;
    justify-content: space-between;
    color: #88cc88;
    font-size: 11px;
    margin-bottom: 4px;
}

.intel-reveal-item .label {
    color: #6a9a6a;
}

.intel-reveal-item .value {
    font-weight: bold;
    color: #aaffaa;
}

.intel-reveal-item.warning .value {
    color: #ffaa44;
}

.intel-reveal-item.danger .value {
    color: #ff6666;
}

.intel-expires {
    color: #666;
    font-size: 9px;
    font-style: italic;
    margin-top: 8px;
    text-align: center;
}

.intel-forecast-grid {
    display: grid;
    gap: 6px;
    margin-top: 10px;
}

.intel-region-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    background: rgba(22, 28, 42, 0.65);
    border: 1px solid rgba(70, 86, 120, 0.4);
    border-radius: 4px;
}

.intel-region-row.focus {
    border-color: rgba(122, 168, 122, 0.75);
    box-shadow: 0 0 0 1px rgba(80, 128, 80, 0.35) inset;
}

.intel-region-main {
    display: flex;
    align-items: center;
    gap: 8px;
}

.intel-region-name {
    color: #a8b7dd;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 0.5px;
}

.intel-region-tags {
    display: inline-flex;
    gap: 4px;
}

.intel-tag {
    display: inline-flex;
    align-items: center;
    padding: 1px 5px;
    border-radius: 999px;
    font-size: 8px;
    letter-spacing: 0.8px;
    color: #d5defa;
    background: rgba(58, 74, 110, 0.7);
}

.intel-tag.focus {
    color: #dff5df;
    background: rgba(56, 108, 66, 0.7);
}

.intel-tag.hotspot {
    color: #ffe3bf;
    background: rgba(132, 82, 38, 0.7);
}

.intel-confidence {
    font-size: 12px;
    font-weight: bold;
}

.intel-confidence.high {
    color: #aaffaa;
}

.intel-confidence.medium {
    color: #ffd27a;
}

.intel-confidence.low {
    color: #ff8a8a;
}

.intel-summary-line {
    margin-top: 8px;
    color: #8694b8;
    font-size: 10px;
}

.intel-actions-grid {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

/* ========================================
   v1.4 - CRISIS INTERMEDIATE OPTIONS
   ======================================== */
.crisis-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.crisis-btn.covert {
    background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
    border-color: #4a4a6a;
    color: #aaaacc;
}

.crisis-btn.covert:hover {
    background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
}

.crisis-btn.diplomatic {
    background: linear-gradient(180deg, #1a3a4a 0%, #0a2a3a 100%);
    border-color: #3a5a6a;
    color: #aaccdd;
}

.crisis-btn.diplomatic:hover {
    background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 100%);
}

.crisis-btn .btn-risk {
    font-size: 9px;
    opacity: 0.7;
    margin-top: 2px;
}

.crisis-btn .btn-confidence {
    font-size: 9px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    opacity: 0.85;
    margin-top: 2px;
}

.crisis-btn .btn-tutorial-note {
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px dashed rgba(255, 255, 255, 0.2);
    font-size: 10px;
    line-height: 1.4;
    opacity: 0.9;
}

/* ========================================
   v1.5 - DOMESTIC STABILITY DISPLAY
   ======================================== */
.domestic-stat {
    padding: 5px 10px;
    border-radius: 4px;
}

.domestic-stat.domestic-ok {
    background: var(--defcon-5);
    color: white;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}

.domestic-stat.domestic-warning {
    background: var(--defcon-3);
    color: black;
    text-shadow: none;
}

.domestic-stat.domestic-low {
    background: var(--defcon-1);
    color: white;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
    animation: pulse-warning 1s infinite;
}

.domestic-stat .label,
.domestic-stat .value {
    color: inherit !important;
    text-shadow: inherit !important;
}

/* ========================================
   v1.5 - ADVISOR SELECTION SCREEN
   ======================================== */
.advisor-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, #1a1a2e 0%, #0a0a15 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    overflow-y: auto;
    padding: 20px;
}

.advisor-modal {
    max-width: 1200px;
    width: 100%;
}

.advisor-header {
    text-align: center;
    margin-bottom: 30px;
}

.advisor-header h1 {
    font-family: var(--font-display);
    font-size: 42px;
    color: #ffffff;
    letter-spacing: 4px;
    margin-bottom: 15px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
}

.advisor-subtitle {
    color: #ddddff;
    font-size: 18px;
    letter-spacing: 1px;
    font-weight: bold;
}

.advisor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 20px;
}

.advisor-card {
    background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 100%);
    border: 2px solid #4a4a7a;
    border-radius: 8px;
    padding: 20px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
}

.advisor-card:hover {
    border-color: #8888cc;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(100, 100, 200, 0.3);
}

.advisor-portrait {
    width: 100px;
    height: 100px;
    background-color: var(--paper-aged);  /* Solid backdrop for paper photo effect */
    background-image: url('../assets/advisor_portraits_2x.png');
    background-size: 400% 200%;
    background-repeat: no-repeat;
    border: 2px solid #4a4a7a;
    border-radius: 4px;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.4),
        inset 0 0 10px rgba(0, 0, 0, 0.3);
    margin: 0 auto 15px auto;
    /* v2.2: Retina-optimized sprites (2x) with vintage styling */
    filter: grayscale(100%) contrast(120%);
}

.advisor-info {
    flex: 1;
}

.advisor-name {
    font-family: var(--font-display);
    font-size: 28px;
    color: #ffffff;
    margin-bottom: 8px;
    text-shadow: 1px 1px 2px black;
}

.advisor-title {
    color: #ccccff;
    font-size: 16px;
    margin-bottom: 12px;
    letter-spacing: 1px;
    font-weight: bold;
}

.advisor-badges {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.advisor-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.advisor-badge-challenge {
    background: rgba(138, 3, 3, 0.22);
    border: 1px solid rgba(214, 92, 92, 0.65);
    color: #ffd7d7;
}

.advisor-passive {
    color: #ffffff;
    font-size: 16px;
    margin-bottom: 12px;
    padding: 10px;
    background: rgba(60, 60, 100, 0.6);
    border-radius: 4px;
    border: 1px solid #6666aa;
}

.advisor-desc {
    color: #e0e0e0;
    font-size: 15px;
    line-height: 1.5;
    margin-bottom: 15px;
}

.advisor-challenge-note {
    color: #ffd3c6;
    font-size: 13px;
    line-height: 1.45;
    margin-bottom: 15px;
    padding: 10px 12px;
    background: rgba(90, 18, 18, 0.32);
    border: 1px solid rgba(214, 92, 92, 0.32);
    border-radius: 4px;
}

.advisor-flavor {
    color: #b0b0d0;
    font-size: 14px;
    font-style: italic;
    line-height: 1.4;
    border-left: 3px solid #6a6a9a;
    padding-left: 12px;
    margin-bottom: 20px;
}

.advisor-select-btn {
    width: 100%;
    padding: 16px;
    background: linear-gradient(180deg, var(--usa-light) 0%, var(--usa-blue) 100%);
    border: none;
    border-radius: 4px;
    color: white;
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 2px;
    cursor: pointer;
    transition: all 0.2s;
}

.advisor-select-btn:hover {
    background: linear-gradient(180deg, #5b79b8 0%, #1a4888 100%);
    transform: scale(1.02);
}

/* ========================================
   v1.5 - EVENT MODAL (MORNING HEADLINES)
   ======================================== */
.event-modal {
    background: var(--paper-cream);
    border: 4px solid var(--ink-black);
    border-radius: 8px;
    padding: 30px 40px;
    max-width: 600px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    position: relative;
}

.event-modal::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    bottom: 10px;
    border: 1px solid #ccc;
    pointer-events: none;
}

.event-header {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 3px double var(--ink-black);
}

.event-newspaper {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: bold;
    color: var(--ink-black);
    letter-spacing: 3px;
    text-transform: uppercase;
}

.event-date {
    font-size: 12px;
    color: #666;
    letter-spacing: 2px;
    margin-top: 5px;
}

.event-title {
    font-family: var(--font-display);
    font-size: 24px;
    color: var(--ink-black);
    margin-bottom: 15px;
    line-height: 1.3;
}

.event-description {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 25px;
    color: var(--ink-black);
    text-align: left;
}

.event-choices {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.event-btn {
    padding: 15px 20px;
    background: var(--paper-aged);
    border: 2px solid var(--ink-black);
    border-radius: 4px;
    font-family: var(--font-body);
    cursor: pointer;
    transition: all 0.2s;
    text-align: left;
}

.event-btn:hover {
    background: var(--paper-manila);
    border-color: var(--usa-blue);
    transform: translateX(5px);
}

.event-btn .btn-text {
    display: block;
    font-size: 14px;
    color: var(--ink-black);
    font-weight: bold;
}

.event-btn .btn-flavor {
    display: block;
    font-size: 11px;
    color: #666;
    font-style: italic;
    margin-top: 5px;
}

/* ========================================
   v1.5.1 - COLD WAR TITLE SCREEN
   ======================================== */
.title-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10001;
    overflow-y: auto;
    padding: 20px;
    transition: opacity 0.5s ease;
}

.title-overlay.fade-out {
    opacity: 0;
}

.title-screen {
    max-width: 1000px;
    width: 100%;
    text-align: center;
}

.title-header {
    margin-bottom: 50px;
}

.title-main {
    font-family: var(--font-display);
    font-size: 56px;
    color: var(--paper-cream);
    letter-spacing: 8px;
    margin-bottom: 15px;
    text-shadow:
        0 0 30px rgba(200, 180, 140, 0.3),
        0 4px 8px rgba(0, 0, 0, 0.5);
    animation: title-pulse 3s ease-in-out infinite;
}

@keyframes title-pulse {
    0%, 100% { text-shadow: 0 0 30px rgba(200, 180, 140, 0.3), 0 4px 8px rgba(0, 0, 0, 0.5); }
    50% { text-shadow: 0 0 50px rgba(200, 180, 140, 0.5), 0 4px 8px rgba(0, 0, 0, 0.5); }
}

.title-subtitle {
    font-family: var(--font-body);
    font-size: 24px;
    color: #888;
    letter-spacing: 10px;
    margin-bottom: 10px;
}

.title-tagline {
    font-family: var(--font-body);
    font-size: 14px;
    color: #666;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.faction-selection {
    margin-bottom: 40px;
}

.title-settings-stack {
    margin: 10px auto 30px;
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.async-config {
    margin: 0 auto;
    max-width: 640px;
    text-align: center;
}

.narrative-config {
    border-top: 1px dashed rgba(201, 191, 168, 0.25);
    padding-top: 10px;
}

.narrative-verbosity-row {
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.narrative-verbosity-label {
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 1px;
    color: #9c927e;
    text-transform: uppercase;
}

.narrative-verbosity-select {
    background: rgba(25, 20, 16, 0.85);
    border: 1px solid rgba(201, 191, 168, 0.45);
    color: #d8cfbd;
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 1px;
    padding: 4px 8px;
    border-radius: 3px;
}

.narrative-verbosity-select:disabled {
    opacity: 0.5;
}

.async-toggle {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-body);
    font-size: 13px;
    letter-spacing: 2px;
    color: #c9bfa8;
    text-transform: uppercase;
    cursor: pointer;
}

.async-toggle input {
    accent-color: #c9bfa8;
    width: 16px;
    height: 16px;
}

.async-note {
    margin-top: 8px;
    font-family: var(--font-body);
    font-size: 12px;
    color: #8f8676;
    letter-spacing: 1px;
}

.async-banner {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px dashed rgba(200, 180, 140, 0.4);
    color: #c9bfa8;
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    display: flex;
    gap: 12px;
    justify-content: center;
    background: rgba(15, 10, 8, 0.4);
}

.async-banner .async-title {
    font-weight: bold;
}

.status-item.async-indicator .value {
    color: #c9bfa8;
    font-weight: bold;
}

.status-item.narrative-indicator .value {
    font-size: 15px;
    letter-spacing: 1px;
}

.status-item.narrative-indicator .narrative-detail {
    margin-top: 2px;
    font-size: 9px;
    letter-spacing: 1px;
    color: #5a5144;
    font-weight: bold;
}

.status-item.narrative-indicator.llm .value {
    color: #2f6f2f;
}

.status-item.narrative-indicator.fallback .value {
    color: #8f5c1a;
}

.faction-prompt {
    font-family: var(--font-body);
    font-size: 20px;
    color: #cccccc;
    letter-spacing: 4px;
    margin-bottom: 30px;
    font-weight: bold;
}

.faction-cards {
    display: flex;
    gap: 40px;
    justify-content: center;
    flex-wrap: wrap;
}

.faction-card {
    width: 420px;
    padding: 30px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.faction-card.usa {
    background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
    border: 2px solid var(--usa-blue);
    box-shadow: 0 0 30px rgba(0, 40, 104, 0.3);
}

.faction-card.usa:hover {
    transform: translateY(-10px);
    border-color: var(--usa-light);
    box-shadow: 0 10px 40px rgba(0, 40, 104, 0.5);
}

.faction-card.ussr {
    background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
    border: 2px solid var(--ussr-red);
    box-shadow: 0 0 30px rgba(180, 0, 0, 0.2);
}

.faction-card.ussr.disabled {
    filter: grayscale(70%) brightness(0.7);
    cursor: not-allowed;
}

.faction-card.ussr.disabled:hover {
    transform: none;
}

.faction-card.ussr.denied {
    animation: denied-shake 0.3s ease;
}

@keyframes denied-shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-10px); }
    40% { transform: translateX(10px); }
    60% { transform: translateX(-10px); }
    80% { transform: translateX(10px); }
}

.faction-stamp {
    position: absolute;
    top: 20px;
    right: -30px;
    background: var(--ink-red);
    color: white;
    padding: 5px 40px;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 2px;
    transform: rotate(30deg);
    z-index: 10;
}

.faction-icon {
    font-size: 64px;
    margin-bottom: 15px;
    line-height: 1;
}

.faction-card.usa .faction-icon {
    color: var(--usa-light);
    text-shadow: 0 0 20px rgba(59, 89, 152, 0.5);
}

.faction-card.ussr .faction-icon {
    color: var(--ussr-red);
    text-shadow: 0 0 20px rgba(200, 0, 0, 0.5);
}

.faction-name {
    font-family: var(--font-display);
    font-size: 32px;
    color: #ffffff;
    margin-bottom: 15px;
    letter-spacing: 2px;
    text-shadow: 0 2px 4px rgba(0,0,0,0.8);
}

.faction-motto {
    font-size: 16px;
    color: #dddddd;
    letter-spacing: 2px;
    margin-bottom: 25px;
    text-transform: uppercase;
    font-weight: bold;
}

.faction-description {
    font-size: 16px;
    color: #eeeeee;
    line-height: 1.6;
    margin-bottom: 30px;
    min-height: 80px;
}

.faction-btn {
    width: 100%;
    padding: 20px 25px;
    border: none;
    border-radius: 4px;
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 2px;
    cursor: pointer;
    transition: all 0.2s;
}

.faction-btn.usa-btn {
    background: linear-gradient(180deg, var(--usa-light) 0%, var(--usa-blue) 100%);
    color: white;
}

.faction-btn.usa-btn:hover {
    background: linear-gradient(180deg, #5b89c8 0%, #1a4898 100%);
    transform: scale(1.02);
}

.faction-btn.ussr-btn {
    background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
    color: #666;
}

.faction-btn.ussr-btn:disabled {
    cursor: not-allowed;
}

.title-footer {
    margin-top: 30px;
}

.title-credit {
    font-family: var(--font-body);
    font-size: 12px;
    color: #444;
    font-style: italic;
    letter-spacing: 1px;
}

/* ========================================
   v2.0 - DEFCON-STYLE WORLD MAP
   ======================================== */

/* Override for DEFCON style container - transparent for vintage map */
.world-map-container.defcon-style {
    background: transparent;
    border: none;
    border-radius: 4px;
    padding: 0;
    box-shadow: none;
}

.world-map-container.defcon-style .map-title {
    color: #8b7355;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
    background: rgba(245, 235, 220, 0.9);
    padding: 4px 12px;
    border-radius: 2px;
    display: inline-block;
    margin-bottom: 8px;
}

/* ========================================
   BOARD GAME MAP LAYOUT (v3.0)
   Refactored to lock aspect ratio to viewport (v6.1)
   ======================================== */

/* Game Map Container - matches map.jpg aspect ratio (2328x1326 = ~1.76:1) */
/* v6.1: Replaced padding-hack with CSS aspect-ratio for viewport containment */
.game-map {
    position: relative;
    /* v6.1: CSS Aspect Ratio replaces padding-bottom hack */
    width: auto;
    height: auto;
    aspect-ratio: 2328 / 1326; /* Matches map.jpg dimensions */

    /* v6.1: Containment logic - shrink to fit available space */
    max-height: 100%;
    max-width: 100%;

    background: #0a0a0a url('../assets/map.jpg') center/contain no-repeat;
    border-radius: 4px;
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.5);
    margin: 0 auto;
}

/* SVG Background Layer - transparent, only shows adjacency lines */
.world-map-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    pointer-events: none;
}

/* Country Nodes Layer (absolute positioned HTML elements) */
.country-nodes-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none; /* Allow clicks to pass through to nodes */
}

/* HTML Country Nodes */
.country-node {
    position: absolute;
    transform: translate(-50%, -50%); /* Center on coordinates */
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    pointer-events: auto; /* Re-enable clicks on nodes */
    transition: transform 0.15s ease, filter 0.2s ease;
    z-index: 10;
}

.country-node:hover {
    transform: translate(-50%, -50%) scale(1.1);
    z-index: 20;
}

/* Node Circle (the actual game piece) - smaller for map clarity */
.country-node .node-circle {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 3px solid;
    transition: all 0.2s ease;
    box-shadow: 0 0 8px currentColor, 0 2px 4px rgba(0, 0, 0, 0.5);
}

.country-node.superpower .node-circle {
    width: 32px;
    height: 32px;
    border-width: 4px;
}

/* High-contrast alignment colors for parchment map */
.country-node.us-aligned .node-circle {
    background: radial-gradient(circle at 30% 30%, #4a7acc 0%, #1a3a6a 100%);
    border-color: #5090ff;
    color: #5090ff;
    box-shadow: 0 0 10px rgba(80, 144, 255, 0.8), 0 2px 4px rgba(0, 0, 0, 0.5);
}

.country-node.ussr-aligned .node-circle {
    background: radial-gradient(circle at 30% 30%, #cc4a4a 0%, #6a1a1a 100%);
    border-color: #ffd700;
    color: #ffd700;
    box-shadow: 0 0 10px rgba(255, 215, 0, 0.8), 0 2px 4px rgba(0, 0, 0, 0.5);
}

.country-node.contested .node-circle {
    background: radial-gradient(circle at 30% 30%, #8a5a9a 0%, #4a2a5a 100%);
    border-color: #cc99ff;
    color: #cc99ff;
    box-shadow: 0 0 10px rgba(204, 153, 255, 0.8), 0 2px 4px rgba(0, 0, 0, 0.5);
}

/* Hover glow effect */
.country-node:hover .node-circle {
    box-shadow: 0 0 20px currentColor;
    filter: brightness(1.3);
}

/* Selected state */
.country-node.selected .node-circle {
    border-color: #ffff00 !important;
    box-shadow: 0 0 20px rgba(255, 255, 0, 0.8), 0 0 40px rgba(255, 255, 0, 0.4);
    animation: selection-glow 1.5s ease-in-out infinite;
}

@keyframes selection-glow {
    0%, 100% { box-shadow: 0 0 20px rgba(255, 255, 0, 0.8), 0 0 40px rgba(255, 255, 0, 0.4); }
    50% { box-shadow: 0 0 30px rgba(255, 255, 0, 1), 0 0 60px rgba(255, 255, 0, 0.6); }
}

/* Node Label (country code) */
.country-node .node-label {
    font-family: var(--font-body);
    font-size: 9px;
    font-weight: bold;
    color: #6a8a9a;
    letter-spacing: 1px;
    margin-top: 4px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
}

.country-node.superpower .node-label {
    font-size: 11px;
    color: #aaccdd;
}

/* Alignment indicator (shows +/- value) */
.country-node .node-alignment {
    font-family: var(--font-body);
    font-size: 8px;
    margin-top: 2px;
}

.country-node.us-aligned .node-alignment {
    color: #6495ed;
}

.country-node.ussr-aligned .node-alignment {
    color: #dc143c;
}

.country-node.contested .node-alignment {
    color: #9966cc;
}

/* ========================================
   v4.0: CLIENT STATE ENGINE - MILITANCY RINGS
   Visual feedback for ally danger levels
   ======================================== */

/* Base militancy ring - positioned behind node-circle */
.country-node .militancy-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    pointer-events: none;
    transition: all 0.3s ease;
    z-index: -1;
}

/* Tier 2: Restless (25-50% militancy) - Thin orange ring */
.country-node .militancy-ring.militancy-restless {
    width: 32px;
    height: 32px;
    border: 2px solid rgba(255, 153, 51, 0.7);
    box-shadow: 0 0 8px rgba(255, 153, 51, 0.4);
}

/* Tier 3: Agitated (50-75% militancy) - Medium orange-red ring with pulse */
.country-node .militancy-ring.militancy-agitated {
    width: 36px;
    height: 36px;
    border: 2px solid rgba(255, 102, 51, 0.8);
    box-shadow: 0 0 12px rgba(255, 102, 51, 0.5);
    animation: militancy-pulse-medium 2s ease-in-out infinite;
}

/* Tier 4: Volatile (75-100% militancy) - Thick red ring with aggressive pulse */
.country-node .militancy-ring.militancy-volatile {
    width: 40px;
    height: 40px;
    border: 3px solid rgba(255, 51, 51, 0.9);
    box-shadow: 0 0 16px rgba(255, 51, 51, 0.7);
    animation: militancy-pulse-danger 1.2s ease-in-out infinite;
}

/* Superpower nodes have larger rings */
.country-node.superpower .militancy-ring.militancy-restless {
    width: 40px;
    height: 40px;
}
.country-node.superpower .militancy-ring.militancy-agitated {
    width: 44px;
    height: 44px;
}
.country-node.superpower .militancy-ring.militancy-volatile {
    width: 48px;
    height: 48px;
}

/* Pulse animations */
@keyframes militancy-pulse-medium {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 12px rgba(255, 102, 51, 0.5);
    }
    50% {
        opacity: 0.8;
        box-shadow: 0 0 18px rgba(255, 102, 51, 0.7);
    }
}

@keyframes militancy-pulse-danger {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 16px rgba(255, 51, 51, 0.7);
        transform: translate(-50%, -50%) scale(1);
    }
    50% {
        opacity: 0.7;
        box-shadow: 0 0 24px rgba(255, 51, 51, 0.9);
        transform: translate(-50%, -50%) scale(1.05);
    }
}

/* Dossier militancy styling */
.dossier-field .militancy-calm {
    color: #6aaa6a;
}
.dossier-field .militancy-restless {
    color: #ff9933;
}
.dossier-field .militancy-agitated {
    color: #ff6633;
}
.dossier-field .militancy-volatile {
    color: #ff3333;
    animation: text-danger-flash 1.5s ease-in-out infinite;
}

/* Leash tension styling */
.dossier-field .leash-safe {
    color: #6aaa6a;
}
.dossier-field .leash-yellow {
    color: #ffcc00;
}
.dossier-field .leash-orange {
    color: #ff9933;
}
.dossier-field .leash-red {
    color: #ff3333;
    font-weight: bold;
}

/* Trend arrows */
.dossier-field .trend-up {
    color: #ff6633;
    font-weight: bold;
}
.dossier-field .trend-down {
    color: #6aaa6a;
}
.dossier-field .trend-stable {
    color: #888;
}

.dossier-field .militancy-status {
    font-size: 0.9em;
    opacity: 0.8;
}

@keyframes text-danger-flash {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* ========================================
   DEBUG MODE - Draggable Nodes
   ======================================== */
.game-map.debug-mode {
    cursor: crosshair;
}

.game-map.debug-mode .country-node {
    cursor: grab;
}

.game-map.debug-mode .country-node:active {
    cursor: grabbing;
}

.game-map.debug-mode .country-node.dragging {
    z-index: 100;
    opacity: 0.8;
}

.debug-coordinates {
    position: fixed;
    bottom: 10px;
    left: 10px;
    background: rgba(0, 0, 0, 0.9);
    color: #0f0;
    font-family: monospace;
    font-size: 12px;
    padding: 10px 15px;
    border-radius: 4px;
    border: 1px solid #0f0;
    z-index: 10000;
    max-height: 300px;
    overflow-y: auto;
}

.debug-coordinates h4 {
    margin: 0 0 8px 0;
    color: #ff0;
    font-size: 11px;
    text-transform: uppercase;
}

.debug-coordinates code {
    display: block;
    white-space: pre;
    font-size: 11px;
}

/* Adjacency lines */
.adjacency-line {
    opacity: 0.6;
    transition: opacity 0.2s;
}

.country-node:hover ~ .adjacency-lines .adjacency-line {
    opacity: 0.3;
}

/* Vintage map legend */
.map-legend.defcon {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 8px;
    padding: 6px 12px;
    background: rgba(245, 235, 220, 0.9);
    border-radius: 2px;
    border-top: none;
}

.map-legend.defcon .legend-item {
    font-size: 10px;
    color: #5a4a3a;
}

.map-legend.defcon .legend-item.us {
    color: #6495ed;
}

.map-legend.defcon .legend-item.ussr {
    color: #dc143c;
}

.map-legend.defcon .legend-item.contested {
    color: #9932cc;
}

.map-legend.defcon .legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 5px;
}

.map-legend.defcon .legend-item.us .legend-dot {
    background: #4169e1;
    box-shadow: 0 0 6px #4169e1;
}

.map-legend.defcon .legend-item.ussr .legend-dot {
    background: #dc143c;
    box-shadow: 0 0 6px #dc143c;
}

.map-legend.defcon .legend-item.contested .legend-dot {
    background: #9932cc;
    box-shadow: 0 0 6px #9932cc;
    animation: contested-pulse 2s ease-in-out infinite;
}

@keyframes contested-pulse {
    0%, 100% { box-shadow: 0 0 6px #9932cc; }
    50% { box-shadow: 0 0 12px #cc66ff; }
}

/* ========================================
   v2.0 - COUNTRY DOSSIER TOOLTIP
   ======================================== */
.country-dossier {
    background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
    border: 2px solid #3a5a7a;
    border-radius: 6px;
    padding: 12px 16px;
    min-width: 200px;
    max-width: 250px;
    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.5),
        0 0 15px rgba(65, 105, 225, 0.2);
    z-index: 10001;  /* v2.2: Above scanlines */
    font-family: var(--font-body);
    animation: dossier-fade-in 0.15s ease;
    isolation: isolate;  /* v2.2: Prevent scanline interference */
}

@keyframes dossier-fade-in {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dossier-header {
    font-family: var(--font-display);
    font-size: 16px;
    color: var(--paper-cream);
    padding-bottom: 8px;
    margin-bottom: 10px;
    border-bottom: 1px solid #3a5a7a;
    letter-spacing: 1px;
}

.dossier-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dossier-field {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
}

.dossier-field .label {
    color: #6a8a9a;
}

.dossier-field .value {
    color: #aaccdd;
    font-weight: bold;
}

.dossier-field .value.pro-us {
    color: #6495ed;
}

.dossier-field .value.pro-ussr {
    color: #ff6666;
}

.dossier-field .value.neutral {
    color: #cc99ff;
}

/* v5.5: Influence fatigue + traits */
.fatigue-meter {
    height: 4px;
    background: rgba(20, 40, 60, 0.8);
    border: 1px solid #2a4a5a;
    border-radius: 4px;
    overflow: hidden;
    margin: 2px 0 4px 0;
}

.fatigue-fill {
    display: block;
    height: 100%;
    background: #6aa0b8;
}

.fatigue-fill.fatigue-mid {
    background: #c9a24a;
}

.fatigue-fill.fatigue-high {
    background: #d46a5b;
}

.dossier-field .value.fatigue-low {
    color: #8dbbd0;
}

.dossier-field .value.fatigue-mid {
    color: #d1b068;
}

.dossier-field .value.fatigue-high {
    color: #e07a6a;
}

.trait-field .trait-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: flex-end;
}

.trait-badge {
    background: rgba(34, 58, 82, 0.9);
    border: 1px solid #3a5a7a;
    border-radius: 4px;
    padding: 1px 4px;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ========================================
   v2.0 - REGION SUMMARIES & COUNTRY CHIPS
   ======================================== */
.region-summaries {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 15px;
}

.region-summary {
    flex: 1;
    min-width: 180px;
    background: linear-gradient(180deg, #1a2a3a 0%, #0f1a25 100%);
    border: 1px solid #2a4a5a;
    border-radius: 6px;
    padding: 12px;
}

.region-summary .region-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px dashed #2a4a5a;
}

.region-summary .region-name {
    font-family: var(--font-display);
    font-size: 14px;
    color: #8aaabb;
    letter-spacing: 1px;
}

.region-summary .region-alignment {
    font-size: 12px;
    font-weight: bold;
    padding: 2px 8px;
    border-radius: 10px;
}

.region-summary .region-alignment.pro-us {
    background: rgba(65, 105, 225, 0.3);
    color: #6495ed;
}

.region-summary .region-alignment.pro-ussr {
    background: rgba(220, 20, 60, 0.3);
    color: #ff6666;
}

.region-summary .region-alignment.neutral {
    background: rgba(153, 50, 204, 0.3);
    color: #cc99ff;
}

.country-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.country-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.country-chip.us {
    background: rgba(65, 105, 225, 0.2);
    border: 1px solid #4169e1;
    color: #6495ed;
}

.country-chip.us:hover {
    background: rgba(65, 105, 225, 0.4);
}

.country-chip.ussr {
    background: rgba(220, 20, 60, 0.2);
    border: 1px solid #dc143c;
    color: #ff6666;
}

.country-chip.ussr:hover {
    background: rgba(220, 20, 60, 0.4);
}

.country-chip.contested {
    background: rgba(153, 50, 204, 0.2);
    border: 1px solid #9932cc;
    color: #cc99ff;
}

.country-chip.contested:hover {
    background: rgba(153, 50, 204, 0.4);
}

.chip-code {
    font-weight: bold;
}

.chip-value {
    opacity: 0.8;
}

/* ========================================
   v2.0 - GLOBAL CONTROL INDICATOR
   ======================================== */
.global-control-indicator {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    padding: 10px 20px;
    margin-top: 12px;
    border-radius: 6px;
    font-family: var(--font-body);
}

.global-control-indicator .label {
    font-size: 11px;
    letter-spacing: 2px;
    opacity: 0.8;
}

.global-control-indicator .value {
    font-size: 24px;
    font-weight: bold;
    letter-spacing: 2px;
}

.global-control-indicator.control-us {
    background: linear-gradient(180deg, rgba(0, 40, 104, 0.4) 0%, rgba(0, 20, 60, 0.6) 100%);
    border: 2px solid #4169e1;
    color: #6495ed;
    box-shadow: 0 0 20px rgba(65, 105, 225, 0.3);
}

.global-control-indicator.control-ussr {
    background: linear-gradient(180deg, rgba(104, 0, 0, 0.4) 0%, rgba(60, 0, 0, 0.6) 100%);
    border: 2px solid #dc143c;
    color: #ff6666;
    box-shadow: 0 0 20px rgba(220, 20, 60, 0.3);
}

.global-control-indicator.control-contested {
    background: linear-gradient(180deg, rgba(60, 0, 60, 0.4) 0%, rgba(30, 0, 30, 0.6) 100%);
    border: 2px solid #9932cc;
    color: #cc99ff;
    box-shadow: 0 0 20px rgba(153, 50, 204, 0.3);
}

/* ========================================
   v2.0 - COUNTRY SELECTOR (Action Panel)
   ======================================== */
.country-selector {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #a09080;
}

.country-selector label {
    font-size: 11px;
    color: #3a3a3a;
    font-weight: bold;
}

.country-select {
    flex: 1;
    padding: 6px 8px;
    font-family: var(--font-body);
    font-size: 12px;
    border: 2px solid #3a3a3a;
    border-radius: 2px;
    background: #ffffff;
    color: #000000;
    font-weight: bold;
}

/* ========================================
   v1.6 - SHADOW CRISIS STYLES
   ======================================== */
.crisis-modal.shadow {
    background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
    border-color: #4a4a8a;
}

.crisis-modal.shadow .crisis-title {
    color: #8888cc;
}

.crisis-modal.shadow .crisis-description {
    color: #aaaacc;
}

.crisis-modal.shadow .red-phone {
    background: #3a3a6a;
}

.crisis-modal.shadow .red-phone::before {
    content: '\\1F441';  /* Eye emoji */
}

.crisis-modal.shadow .phone-ring {
    border-color: #6a6a9a;
}

.crisis-btn.deny {
    background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
    border-color: #5a5a6a;
    color: #aaaacc;
}

.crisis-btn.swap {
    background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
    border-color: #4a5a6a;
    color: #aaccdd;
}

.crisis-btn.expel {
    background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
    border-color: #6a5a4a;
    color: #ddccaa;
}

.crisis-btn.silence {
    background: linear-gradient(180deg, #3a1a1a 0%, #2a0a0a 100%);
    border-color: #6a3a3a;
    color: #ffaaaa;
}

.crisis-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    filter: grayscale(50%);
}

/* ========================================
   v2.1 - LEADER DOSSIER PORTRAIT
   ======================================== */
.leader-portrait {
    width: 80px;
    height: 80px;
    background-color: var(--paper-aged);  /* Solid backdrop for paper photo effect */
    background-image: url('../assets/leaders_sheet_2x.png');
    background-size: 400% 200%;
    background-repeat: no-repeat;
    border: 2px solid #3a5a7a;
    border-radius: 4px;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.4),
        inset 0 0 10px rgba(0, 0, 0, 0.3);
    margin: 0 auto 10px auto;
    /* v2.2: Retina-optimized sprites (2x) with vintage styling */
    filter: grayscale(100%) contrast(120%);
}

.leader-name {
    font-family: 'Courier New', 'Courier', monospace;
    font-size: 12px;
    color: #aaccdd;
    text-align: center;
    letter-spacing: 1px;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #3a5a7a;
}

/* When no portrait is available, give the name more presence */
.leader-name.no-portrait {
    font-size: 14px;
    padding: 12px 8px;
    margin-bottom: 12px;
    background: rgba(58, 90, 122, 0.15);
    border-radius: 4px;
    border: 1px dashed #3a5a7a;
    border-bottom: 1px dashed #3a5a7a;
}

/* ========================================
   v2.1 - USSR THEME (The Red Side)
   ======================================== */

/* USSR theme - Soviet Red/Grey aesthetic */
.theme-ussr {
    /* Override wood tones with Soviet industrial grey/red */
    --wood-dark: #1a1a1a;
    --wood-medium: #2a2020;
    --wood-light: #3a2828;
    --wood-highlight: #4a3030;

    /* Soviet paper tones - more utilitarian */
    --paper-cream: #e8e0d8;
    --paper-aged: #d8d0c4;
    --paper-manila: #c8baa8;

    /* Soviet ink colors */
    --ink-black: #1a1a1a;
    --ink-blue: #8b0000;
    --ink-red: #cc0000;
}

/* USSR desk background */
.theme-ussr #desk {
    background:
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 2px,
            rgba(100, 0, 0, 0.03) 2px,
            rgba(100, 0, 0, 0.03) 4px
        ),
        linear-gradient(
            180deg,
            #2a1a1a 0%,
            #1a0a0a 20%,
            #2a1515 40%,
            #1a0a0a 60%,
            #2a1a1a 80%,
            #1a0a0a 100%
        );
}

/* USSR header - deep red */
.theme-ussr #header {
    background: linear-gradient(180deg, #6a1a1a 0%, #4a0a0a 100%);
    border-color: #8b0000;
}

.theme-ussr .title-area h1 {
    color: #ffcccc;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
}

.theme-ussr .title-area .subtitle {
    color: #cc9999;
}

/* USSR status bar */
.theme-ussr #status-bar {
    background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
    border-color: #4a2020;
}

.theme-ussr .status-item {
    border-right-color: #4a2020;
}

.theme-ussr .status-item .label {
    color: #aa8888;
}

.theme-ussr .status-item .value {
    color: #ffcccc;
}

/* USSR action panel */
.theme-ussr #action-panel {
    background: linear-gradient(180deg, #3a2020 0%, #2a1515 100%);
    border-color: #6a2020;
}

.theme-ussr .action-header {
    border-bottom-color: #6a2020;
}

.theme-ussr .action-header h2 {
    color: #ffcccc;
}

.theme-ussr .ap-display {
    color: #cc9999;
}

/* USSR telegram cards */
.theme-ussr .telegram::before {
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 10px,
        #8b0000 10px,
        #8b0000 20px
    );
}

.theme-ussr .action-name {
    color: #8b0000;
}

.theme-ussr .action-cost {
    background: #8b0000;
}

/* USSR end turn button */
.theme-ussr .end-turn-btn {
    background: linear-gradient(180deg, #8b0000 0%, #5a0000 100%);
    border-color: #4a0000;
}

.theme-ussr .end-turn-btn:hover {
    background: linear-gradient(180deg, #aa2020 0%, #6a0000 100%);
}

/* USSR execute button */
.theme-ussr .execute-btn {
    background: #8b0000;
}

.theme-ussr .execute-btn:hover:not(:disabled) {
    background: #aa2020;
}

/* USSR protocol buttons */
.theme-ussr .protocol-btn.new {
    background: linear-gradient(180deg, #aa3030 0%, #8b0000 100%);
}

/* USSR map area */
.theme-ussr #map-area {
    background: linear-gradient(180deg, #1a1515 0%, #0a0505 100%);
    border-color: #4a2020;
}

/* USSR footer */
.theme-ussr #footer {
    background: #1a0a0a;
}

.theme-ussr .classification {
    color: #ff4444;
}

/* USSR vignette effect - red tint */
.theme-ussr::before {
    background: radial-gradient(
        ellipse at center,
        transparent 50%,
        rgba(100, 0, 0, 0.15) 85%,
        rgba(100, 0, 0, 0.3) 100%
    );
}

/* USSR faction card hover state (for title screen) */
.theme-ussr .faction-card.ussr:hover {
    transform: translateY(-10px);
    border-color: var(--ussr-light);
    box-shadow: 0 10px 40px rgba(180, 0, 0, 0.5);
}

/* ========================================
   v2.1 - USSR ADVISOR MODAL (Politburo)
   ======================================== */

.advisor-modal.ussr-modal {
    background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
}

.advisor-modal.ussr-modal .advisor-header h1 {
    color: #ff6666;
    text-shadow: 0 0 20px rgba(200, 0, 0, 0.5);
}

.advisor-modal.ussr-modal .advisor-subtitle {
    color: #aa6666;
}

.advisor-modal.ussr-modal .advisor-card {
    background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
    border-color: #6a2020;
}

.advisor-modal.ussr-modal .advisor-card:hover {
    border-color: #aa3030;
    box-shadow: 0 10px 30px rgba(180, 0, 0, 0.4);
}

.advisor-modal.ussr-modal .advisor-name {
    color: #ffcccc;
}

.advisor-modal.ussr-modal .advisor-title {
    color: #cc8888;
}

.advisor-modal.ussr-modal .advisor-passive {
    background: rgba(180, 50, 50, 0.2);
    color: #ff9999;
}

.advisor-modal.ussr-modal .advisor-desc {
    color: #ccaaaa;
}

.advisor-modal.ussr-modal .advisor-flavor {
    color: #886666;
    border-left-color: #6a3030;
}

.advisor-modal.ussr-modal .advisor-select-btn {
    background: linear-gradient(180deg, #aa3030 0%, #8b0000 100%);
}

.advisor-modal.ussr-modal .advisor-select-btn:hover {
    background: linear-gradient(180deg, #cc4040 0%, #aa1010 100%);
}

/* ========================================
   v3.0 - View Toggle Navigation
   ======================================== */

.view-toggle {
    display: flex;
    justify-content: center;
    gap: 4px;
    padding: 8px 0;
    background: linear-gradient(180deg, var(--bakelite-dark) 0%, #1a1008 100%);
    border-top: 2px solid var(--brass);
    border-bottom: 2px solid var(--brass);
    margin: 0 0 8px 0;
}

.view-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    background: linear-gradient(180deg, var(--bakelite-light) 0%, var(--bakelite-dark) 100%);
    border: 2px solid var(--metal-dark);
    border-radius: 4px;
    color: var(--paper-aged);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.15s ease;
    text-transform: uppercase;
}

.view-btn:hover {
    background: linear-gradient(180deg, var(--bakelite-highlight) 0%, var(--bakelite-light) 100%);
    border-color: var(--brass);
}

.view-btn.locked,
.view-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    border-color: rgba(179, 145, 97, 0.35);
    box-shadow: none;
}

.view-btn.locked:hover,
.view-btn:disabled:hover {
    background: linear-gradient(180deg, var(--bakelite-light) 0%, var(--bakelite-dark) 100%);
    border-color: rgba(179, 145, 97, 0.35);
}

.view-btn.active {
    background: linear-gradient(180deg, var(--brass) 0%, var(--brass-light) 50%, var(--brass) 100%);
    border-color: var(--brass-light);
    color: var(--ink-black);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.3),
        0 2px 4px rgba(0, 0, 0, 0.4);
}

.view-icon {
    font-size: 18px;
}

.view-label {
    font-size: 13px;
}

/* Accessibility: Focus styles for keyboard navigation */
.view-btn:focus-visible,
.end-turn-btn:focus-visible,
.log-toggle-btn:focus-visible,
.protocol-btn:focus-visible,
.lamp-toggle-btn:focus-visible,
.log-modal-close:focus-visible,
.action-card .execute-btn:focus-visible {
    outline: 2px solid #4a90d9;
    outline-offset: 2px;
}

/* ========================================
   v3.0 - Policy View Containers
   ======================================== */

.policy-view {
    display: none;
    flex: 1;
    gap: 15px;
}

.policy-view.active {
    display: flex;
}

/* Foreign policy view inherits existing #main-content flex layout */
#foreign-policy-view {
    /* Matches original #main-content layout */
}

#domestic-policy-view {
    /* Matches foreign layout for consistency */
}

/* ========================================
   v3.0 - Domestic Dashboard (Report Card)
   ======================================== */

#domestic-dashboard {
    flex: 2;
    background: var(--paper-cream);
    border: 3px solid var(--wood-dark);
    border-radius: 3px;
    padding: 20px;
    box-shadow:
        inset 0 0 20px rgba(0, 0, 0, 0.1),
        3px 3px 10px rgba(0, 0, 0, 0.3);
    overflow-y: auto;
}

.domestic-report {
    font-family: var(--font-body);
}

.report-header {
    text-align: center;
    border-bottom: 2px solid var(--ink-black);
    padding-bottom: 15px;
    margin-bottom: 20px;
}

.report-header h2 {
    font-family: var(--font-display);
    font-size: 24px;
    color: var(--ink-black);
    letter-spacing: 2px;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.report-header .report-subtitle {
    font-size: 12px;
    color: var(--ink-blue);
    letter-spacing: 1px;
}

.report-header .classification-stamp {
    display: inline-block;
    margin-top: 10px;
    padding: 4px 12px;
    background: var(--ink-red);
    color: white;
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 2px;
    transform: rotate(-2deg);
}

/* Metrics Grid */
.metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.metric-card {
    background: var(--paper-aged);
    border: 2px solid var(--wood-medium);
    padding: 15px;
    text-align: center;
    position: relative;
}

.metric-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--brass);
}

.metric-label {
    font-size: 10px;
    color: var(--ink-blue);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.metric-value {
    font-size: 28px;
    font-weight: bold;
    color: var(--ink-black);
    font-family: var(--font-display);
}

.metric-unit {
    font-size: 12px;
    color: #666;
    margin-left: 2px;
}

.metric-change {
    font-size: 11px;
    margin-top: 4px;
}

.metric-change.positive {
    color: var(--defcon-5);
}

.metric-change.negative {
    color: var(--defcon-1);
}

.metric-change.neutral {
    color: #666;
}

/* Resources Section */
.resources-section {
    margin-bottom: 25px;
}

.section-title {
    font-family: var(--font-display);
    font-size: 16px;
    color: var(--ink-black);
    border-bottom: 1px solid var(--ink-black);
    padding-bottom: 5px;
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.resources-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.resources-table th {
    text-align: left;
    padding: 8px;
    background: var(--wood-medium);
    color: var(--paper-cream);
    font-weight: bold;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 10px;
}

.resources-table td {
    padding: 8px;
    border-bottom: 1px solid var(--wood-light);
    color: var(--ink-black);
}

.resources-table tr:hover {
    background: rgba(184, 134, 11, 0.1);
}

.resource-name {
    font-weight: bold;
    text-transform: capitalize;
}

.resource-balance {
    font-weight: bold;
}

.resource-balance.surplus {
    color: var(--defcon-5);
}

.resource-balance.deficit {
    color: var(--defcon-1);
}

.resource-balance.balanced {
    color: var(--brass);
}

.resource-bar {
    width: 100%;
    height: 8px;
    background: var(--paper-manila);
    border: 1px solid var(--wood-light);
    border-radius: 2px;
    overflow: hidden;
}

.resource-bar-fill {
    height: 100%;
    transition: width 0.3s ease;
}

.resource-bar-fill.surplus {
    background: linear-gradient(90deg, var(--defcon-5), var(--defcon-4));
}

.resource-bar-fill.deficit {
    background: linear-gradient(90deg, var(--defcon-1), var(--defcon-2));
}

/* Internal Security */
.internal-security-section {
    margin-bottom: 25px;
}

.security-meter {
    background: var(--paper-aged);
    border: 2px solid var(--wood-medium);
    padding: 12px;
}

.security-meter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink-blue);
    margin-bottom: 8px;
}

.security-status {
    font-weight: bold;
    color: var(--ink-black);
}

.security-status.low {
    color: var(--defcon-5);
}

.security-status.elevated {
    color: var(--brass);
}

.security-status.high {
    color: var(--defcon-2);
}

.security-status.critical {
    color: var(--defcon-1);
}

.security-bar {
    position: relative;
    height: 10px;
    background: var(--paper-manila);
    border: 1px solid var(--wood-light);
    border-radius: 2px;
    overflow: hidden;
}

.security-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--defcon-5), var(--defcon-2));
    transition: width 0.3s ease;
}

.security-bar.high .security-fill,
.security-bar.critical .security-fill {
    background: linear-gradient(90deg, var(--defcon-2), var(--defcon-1));
}

.security-note {
    margin-top: 8px;
    font-size: 11px;
    color: #555;
}

/* Priorities Section */
.priorities-section {
    margin-bottom: 20px;
}

.priority-item {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.priority-label {
    width: 100px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink-blue);
}

.priority-bar {
    flex: 1;
    height: 16px;
    background: var(--paper-manila);
    border: 1px solid var(--wood-light);
    border-radius: 2px;
    overflow: hidden;
}

.priority-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--brass), var(--brass-light));
    transition: width 0.3s ease;
}

.priority-value {
    width: 40px;
    text-align: right;
    font-weight: bold;
    font-size: 12px;
}

/* ========================================
   v3.3 - Budget Allocation System (Guns vs. Butter)
   ======================================== */

.budget-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--brass);
}

.budget-title {
    font-family: var(--font-typewriter);
    font-weight: bold;
    letter-spacing: 2px;
    color: var(--ink-blue);
    font-size: 12px;
}

.budget-points {
    font-size: 10px;
    padding: 4px 8px;
    border-radius: 3px;
    font-weight: bold;
    letter-spacing: 1px;
}

.budget-points.balanced {
    background: rgba(0, 100, 0, 0.2);
    color: #006400;
}

.budget-points.unbalanced {
    background: rgba(184, 134, 11, 0.2);
    color: var(--brass);
}

.budget-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 8px;
    background: var(--paper-manila);
    border-radius: 4px;
    transition: background 0.2s;
    position: relative;
}

.budget-row:hover {
    background: rgba(184, 134, 11, 0.1);
}

.budget-label {
    width: 100px;
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1px;
    color: var(--ink-blue);
}

.budget-btn {
    width: 26px;
    height: 26px;
    border: 2px solid var(--brass);
    background: var(--paper-cream);
    color: var(--ink-blue);
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    border-radius: 4px;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.budget-btn:hover:not(.disabled):not(:disabled) {
    background: var(--brass);
    color: white;
    transform: scale(1.1);
}

.budget-btn.disabled,
.budget-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.budget-pips {
    display: flex;
    gap: 2px;
    flex: 1;
}

.budget-pip {
    width: 10px;
    height: 14px;
    background: var(--paper-aged);
    border: 1px solid var(--brass);
    border-radius: 2px;
    transition: background 0.2s, transform 0.15s;
}

.budget-pip.filled {
    background: linear-gradient(180deg, var(--brass-light), var(--brass));
    box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.3);
}

.budget-value {
    width: 20px;
    text-align: center;
    font-weight: bold;
    font-size: 13px;
    color: var(--ink-blue);
}

/* Trinity Stats Projection Panel */
.trinity-projection {
    margin-top: 20px;
    padding: 15px;
    background: rgba(0, 0, 0, 0.03);
    border: 1px dashed var(--brass);
    border-radius: 4px;
}

.trinity-projection h4 {
    margin: 0 0 12px 0;
    font-size: 10px;
    letter-spacing: 2px;
    color: var(--ink-faded);
    font-family: var(--font-typewriter);
}

.trinity-stat {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.trinity-label {
    width: 70px;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink-faded);
}

.trinity-bar {
    flex: 1;
    height: 10px;
    background: var(--paper-manila);
    border: 1px solid var(--brass);
    border-radius: 2px;
    overflow: hidden;
}

.trinity-fill {
    height: 100%;
    transition: width 0.3s ease;
}

.trinity-fill.readiness {
    background: linear-gradient(90deg, #8B0000, #CD5C5C);
}

.trinity-fill.prosperity {
    background: linear-gradient(90deg, #006400, #228B22);
}

.trinity-fill.stability {
    background: linear-gradient(90deg, #00008B, #4169E1);
}

.trinity-value {
    width: 30px;
    text-align: right;
    font-weight: bold;
    font-size: 11px;
    color: var(--ink-blue);
}

.trinity-stat.science {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dotted var(--brass);
}

.trinity-stat.science .trinity-label {
    width: 80px;
}

.science-value {
    color: #6B238E;
    font-size: 13px;
}

.science-total {
    font-size: 9px;
    color: var(--ink-faded);
    margin-left: 5px;
}

.science-tier {
    margin-left: 8px;
    padding: 2px 6px;
    font-size: 9px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--ink-blue);
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid var(--brass);
    border-radius: 10px;
}

/* Budget floating feedback animation */
.budget-row .floating-text {
    position: absolute;
    right: 50px;
    top: -5px;
    animation: budgetFloat 1.5s ease-out forwards;
    font-weight: bold;
    font-size: 11px;
    pointer-events: none;
    z-index: 100;
}

.floating-text.positive {
    color: #006400;
}

.floating-text.negative {
    color: #8B0000;
}

@keyframes budgetFloat {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-25px);
    }
}

/* USSR Theme Overrides for Budget */
.theme-ussr .budget-btn {
    border-color: var(--ussr-red);
}

.theme-ussr .budget-btn:hover:not(.disabled):not(:disabled) {
    background: var(--ussr-red);
}

.theme-ussr .budget-pip.filled {
    background: linear-gradient(180deg, #d44444, var(--ussr-red));
}

.theme-ussr .budget-points.balanced {
    background: rgba(139, 0, 0, 0.2);
    color: var(--ussr-red);
}

.theme-ussr .budget-header {
    border-bottom-color: var(--ussr-red);
}

.theme-ussr .trinity-projection {
    border-color: var(--ussr-red);
}

/* ========================================
   v4.1 - Bureaucracy Engine (Agency Relations)
   ======================================== */

.agency-relations-section {
    margin-top: 25px;
    padding: 20px;
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid var(--wood-medium);
    border-radius: 4px;
}

.agency-relations-section .section-title {
    margin-bottom: 15px;
    font-family: var(--font-typewriter);
    letter-spacing: 2px;
}

.agency-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.agency-card {
    background: var(--paper-aged);
    border: 2px solid var(--brass);
    padding: 12px;
    border-radius: 4px;
    transition: border-color 0.3s, box-shadow 0.3s;
}

.agency-card.agency-hostile {
    border-color: var(--defcon-1);
    box-shadow: inset 0 0 10px rgba(139, 0, 0, 0.15);
}

.agency-card.agency-opposed {
    border-color: var(--defcon-2);
}

.agency-card.agency-neutral {
    border-color: var(--brass);
}

.agency-card.agency-supportive {
    border-color: var(--defcon-4);
}

.agency-card.agency-allied {
    border-color: var(--defcon-5);
    box-shadow: inset 0 0 10px rgba(0, 100, 0, 0.1);
}

.agency-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.agency-name {
    font-family: var(--font-typewriter);
    font-size: 11px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink-blue);
}

.agency-leak-warning {
    font-size: 9px;
    padding: 2px 6px;
    background: var(--defcon-1);
    color: white;
    border-radius: 2px;
    animation: pulse-warning 1.5s infinite;
}

@keyframes pulse-warning {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

.agency-favor-bar {
    position: relative;
    height: 12px;
    background: linear-gradient(90deg,
        var(--defcon-1) 0%,
        var(--defcon-2) 25%,
        var(--brass) 50%,
        var(--defcon-4) 75%,
        var(--defcon-5) 100%
    );
    border: 1px solid var(--wood-medium);
    border-radius: 2px;
    margin-bottom: 5px;
}

.agency-favor-marker {
    position: absolute;
    top: -3px;
    width: 4px;
    height: 18px;
    background: var(--ink-blue);
    border: 1px solid white;
    border-radius: 2px;
    transform: translateX(-50%);
    transition: left 0.5s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.agency-favor-labels {
    display: flex;
    justify-content: space-between;
    font-size: 7px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ink-faded);
    margin-bottom: 5px;
}

.favor-label-center {
    font-weight: bold;
    color: var(--ink-blue);
}

.agency-favor-value {
    text-align: center;
    font-family: var(--font-typewriter);
    font-size: 14px;
    font-weight: bold;
}

.agency-favor-value.positive {
    color: var(--defcon-5);
}

.agency-favor-value.negative {
    color: var(--defcon-1);
}

.agency-hint {
    margin-top: 15px;
    padding: 10px;
    background: rgba(0, 0, 0, 0.03);
    border: 1px dashed var(--ink-faded);
    border-radius: 4px;
    font-size: 10px;
    color: var(--ink-faded);
    font-style: italic;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hint-icon {
    font-size: 14px;
    opacity: 0.7;
}

/* USSR Theme Overrides for Agency Relations */
.theme-ussr .agency-name {
    color: var(--ussr-red);
}

.theme-ussr .agency-favor-marker {
    background: var(--ussr-red);
}

.theme-ussr .favor-label-center {
    color: var(--ussr-red);
}

/* Responsive: Stack on smaller screens */
@media (max-width: 900px) {
    .agency-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   v3.0 - Domestic Action Panel
   ======================================== */

#domestic-action-panel {
    flex: 1;
    background: var(--wood-medium);
    border: 3px solid var(--wood-dark);
    border-radius: 3px;
    padding: 15px;
    box-shadow:
        inset 0 0 15px rgba(0, 0, 0, 0.3),
        3px 3px 10px rgba(0, 0, 0, 0.3);
    overflow-y: auto;
}

.domestic-actions-header {
    font-family: var(--font-display);
    font-size: 16px;
    color: var(--paper-cream);
    text-align: center;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--brass);
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.domestic-action-card {
    background: var(--paper-cream);
    border: 2px solid var(--wood-dark);
    margin-bottom: 12px;
    padding: 12px;
}

.domestic-action-title {
    font-size: 13px;
    font-weight: bold;
    color: var(--ink-black);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.domestic-action-desc {
    font-size: 11px;
    color: #555;
    margin-bottom: 8px;
    line-height: 1.4;
}

.domestic-action-btn {
    width: 100%;
    padding: 8px;
    background: linear-gradient(180deg, var(--brass) 0%, var(--brass-light) 50%, var(--brass) 100%);
    border: 2px solid var(--wood-dark);
    color: var(--ink-black);
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: bold;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.15s ease;
}

.domestic-action-btn:hover {
    background: linear-gradient(180deg, var(--brass-light) 0%, var(--brass) 100%);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.domestic-action-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Coming Soon placeholder */
.coming-soon {
    text-align: center;
    padding: 40px 20px;
    color: var(--paper-aged);
    font-style: italic;
}

.coming-soon-icon {
    font-size: 48px;
    margin-bottom: 15px;
    opacity: 0.5;
}

.coming-soon-text {
    font-size: 14px;
    letter-spacing: 1px;
}

/* ========================================
   v3.0 - USSR Theme Overrides for Domestic
   ======================================== */

.theme-ussr .view-btn.active {
    background: linear-gradient(180deg, var(--ussr-red) 0%, #8b0000 100%);
    border-color: var(--ussr-light);
    color: white;
}

.theme-ussr .metric-card::before {
    background: var(--ussr-red);
}

.theme-ussr .priority-fill {
    background: linear-gradient(90deg, var(--ussr-red), var(--ussr-light));
}

.theme-ussr .domestic-action-btn {
    background: linear-gradient(180deg, var(--ussr-red) 0%, #8b0000 100%);
    color: white;
}

.theme-ussr .domestic-action-btn:hover {
    background: linear-gradient(180deg, var(--ussr-light) 0%, var(--ussr-red) 100%);
}

/* ========================================
   v3.1 - Policy Lever Cards
   ======================================== */

.domestic-actions-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 15px;
    background: var(--wood-dark);
    border-bottom: 2px solid var(--brass);
}

.domestic-actions-header h3 {
    margin: 0;
    font-size: 14px;
    letter-spacing: 2px;
    color: var(--paper-cream);
}

.domestic-actions-header .header-icon {
    font-size: 18px;
}

.domestic-actions-header .header-subtitle {
    font-size: 11px;
    color: var(--brass);
    margin-left: auto;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.policy-levers {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 15px;
}

.lever-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    background: var(--paper-aged);
    border: 2px solid var(--brass);
    border-radius: 4px;
    transition: all 0.2s ease;
    cursor: pointer;
}

.lever-card:hover:not(.disabled) {
    background: rgba(184, 134, 11, 0.15);
    border-color: var(--brass-light);
    transform: translateX(3px);
}

.lever-card.disabled {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
}

.lever-icon {
    font-size: 28px;
    width: 40px;
    text-align: center;
    flex-shrink: 0;
}

.lever-info {
    flex: 1;
    min-width: 0;
}

.lever-name {
    font-family: 'Courier Prime', monospace;
    font-size: 13px;
    font-weight: bold;
    margin: 0 0 4px 0;
    color: var(--ink-black);
}

.lever-benefit {
    font-size: 12px;
    color: var(--defcon-5);
    margin: 0;
    font-weight: bold;
}

.lever-cost {
    font-size: 11px;
    color: var(--ink-red);
    margin: 4px 0 0 0;
}

.lever-btn {
    padding: 8px 16px;
    font-family: 'Courier Prime', monospace;
    font-size: 11px;
    font-weight: bold;
    background: linear-gradient(180deg, var(--brass) 0%, #8b6914 100%);
    color: white;
    border: 1px solid var(--wood-dark);
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.lever-btn:hover {
    background: linear-gradient(180deg, var(--brass-light) 0%, var(--brass) 100%);
}

.lever-btn:disabled,
.lever-btn[disabled] {
    background: #666;
    cursor: not-allowed;
}

.lever-used-notice {
    text-align: center;
    padding: 10px;
    background: rgba(0,0,0,0.1);
    color: #666;
    font-style: italic;
    font-size: 12px;
    border-bottom: 1px solid var(--wood-dark);
}

/* USSR Theme Overrides for Policy Levers */
.theme-ussr .lever-card {
    border-color: var(--ussr-red);
}

.theme-ussr .lever-card:hover:not(.disabled) {
    background: rgba(204, 0, 0, 0.1);
    border-color: var(--ussr-light);
}

.theme-ussr .lever-btn {
    background: linear-gradient(180deg, var(--ussr-red) 0%, #8b0000 100%);
}

.theme-ussr .lever-btn:hover {
    background: linear-gradient(180deg, var(--ussr-light) 0%, var(--ussr-red) 100%);
}

.theme-ussr .domestic-actions-header {
    background: #1a0000;
    border-bottom-color: var(--ussr-red);
}

.theme-ussr .domestic-actions-header .header-subtitle {
    color: var(--ussr-light);
}

/* Floating Text Animation */
.floating-text {
    position: absolute;
    font-family: 'Courier Prime', monospace;
    font-size: 14px;
    font-weight: bold;
    pointer-events: none;
    animation: floatUp 1.5s ease-out forwards;
    z-index: 1000;
    text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}

.floating-text.positive {
    color: var(--defcon-5);
}

.floating-text.negative {
    color: var(--ink-red);
}

@keyframes floatUp {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-40px);
    }
}

/* ═══════════════════════════════════════════════════════════════
   v3.2: Turn Start Briefing Styles
   Morning briefing modal with asymmetric USA/USSR visuals
   ═══════════════════════════════════════════════════════════════ */

/* Base briefing modal */
.briefing-modal {
    max-width: 550px;
    width: 90%;
    animation: briefingFadeIn 0.4s ease-out;
}

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

/* ═══════════════════════════════════════════════════════════════
   USA: Manila Folder with Typewritten Memo
   ═══════════════════════════════════════════════════════════════ */

.briefing-folder.manila {
    background: #e3c9a3;
    border: 2px solid #8b7355;
    border-radius: 3px;
    box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
    position: relative;
    padding: 30px 20px 20px;
}

.folder-tab {
    position: absolute;
    top: -18px;
    left: 25px;
    background: linear-gradient(180deg, #d4b896 0%, #c4a886 100%);
    padding: 4px 14px;
    font-family: 'Courier Prime', 'Courier New', monospace;
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 2px;
    color: #8b0000;
    border: 1px solid #8b7355;
    border-bottom: none;
    border-radius: 3px 3px 0 0;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.folder-content {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 2px;
}

.memo-paper {
    background: linear-gradient(180deg, #f8f5ef 0%, #f0ebe0 100%);
    padding: 24px 28px;
    font-family: 'Courier Prime', 'Courier New', monospace;
    line-height: 1.6;
    box-shadow:
        inset 0 0 15px rgba(0, 0, 0, 0.05),
        0 2px 4px rgba(0, 0, 0, 0.1);
    border: 1px solid #d4c8b0;
}

.memo-header {
    border-bottom: 2px solid #1a1a1a;
    padding-bottom: 12px;
    margin-bottom: 16px;
}

.memo-classification {
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 3px;
    color: #8b0000;
    margin-bottom: 8px;
}

.memo-date {
    font-size: 11px;
    color: #555;
    margin-bottom: 12px;
}

.memo-to,
.memo-from {
    font-size: 12px;
    color: #1a1a1a;
    margin-bottom: 2px;
}

.memo-body {
    padding: 16px 0;
}

.intel-item {
    margin-bottom: 16px;
    padding-left: 0;
}

.intel-item.narrative-addendum {
    background: rgba(45, 95, 135, 0.1);
    border-left: 3px solid #3f6d92;
    padding: 8px 12px;
    margin-top: 12px;
    border-radius: 0 4px 4px 0;
}

.intel-item.narrative-addendum .intel-label {
    color: #2e5575;
    text-decoration: none;
}

.intel-item.opening-guidance {
    background: rgba(40, 72, 98, 0.1);
    border-left: 3px solid #315a78;
    padding: 8px 12px;
    margin-top: 12px;
    border-radius: 0 4px 4px 0;
}

.intel-item.opening-guidance .intel-label {
    color: #25475f;
    text-decoration: none;
}

.intel-item.opening-guidance .intel-text {
    color: #1f2830;
    font-weight: 500;
}

.intel-item.clearance-update {
    background: rgba(93, 71, 36, 0.09);
    border-left: 3px solid #7a5a2d;
    padding: 8px 12px;
    margin-top: 12px;
    border-radius: 0 4px 4px 0;
}

.intel-item.clearance-update .intel-label {
    color: #674a22;
    text-decoration: none;
}

.intel-item.clearance-update .intel-text {
    color: #2a2418;
}

.briefing-modal.ussr .intel-item.narrative-addendum {
    background: rgba(150, 40, 40, 0.12);
    border-left-color: #8f2626;
}

.briefing-modal.ussr .intel-item.narrative-addendum .intel-label {
    color: #7a1d1d;
}

.briefing-modal.ussr .intel-item.opening-guidance {
    background: rgba(145, 35, 35, 0.16);
    border-left-color: #8d2020;
}

.briefing-modal.ussr .intel-item.opening-guidance .intel-label {
    color: #7b1c1c;
}

.briefing-modal.ussr .intel-item.opening-guidance .intel-text {
    color: #401010;
}

.briefing-modal.ussr .intel-item.clearance-update {
    background: rgba(116, 68, 30, 0.18);
    border-left-color: #8d5a21;
}

.briefing-modal.ussr .intel-item.clearance-update .intel-label {
    color: #8f672f;
}

.briefing-modal.ussr .intel-item.clearance-update .intel-text {
    color: #f2dfbf;
}

.intel-label {
    display: block;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 1px;
    color: #333;
    margin-bottom: 4px;
    text-decoration: underline;
}

.intel-text {
    display: block;
    font-size: 13px;
    color: #1a1a1a;
    line-height: 1.5;
}

/* v4.0: Allied instability warning styling */
.intel-item.allied-warning {
    background: rgba(255, 150, 50, 0.15);
    border-left: 3px solid #ff6633;
    padding: 8px 12px;
    margin-top: 12px;
    border-radius: 0 4px 4px 0;
}

.intel-item.allied-warning .intel-label {
    color: #cc4400;
    text-decoration: none;
}

.intel-item.allied-warning .intel-text {
    color: #663300;
    font-weight: 500;
}

/* USSR red folder styling for allied warning */
.briefing-modal.ussr .intel-item.allied-warning {
    background: rgba(255, 100, 100, 0.15);
    border-left-color: #cc3333;
}

.briefing-modal.ussr .intel-item.allied-warning .intel-label {
    color: #cc3333;
}

.briefing-modal.ussr .intel-item.allied-warning .intel-text {
    color: #661111;
}

/* ========================================
   v5.4: EPISTEMIC FOG - CONFIDENCE METER
   ======================================== */

.intel-item.confidence-meter {
    background: rgba(50, 50, 100, 0.1);
    border-left: 3px solid #446688;
    padding: 8px 12px;
    margin-top: 12px;
    border-radius: 0 4px 4px 0;
}

.intel-item.confidence-meter .intel-label {
    color: #446688;
    font-weight: 700;
    display: block;
    margin-bottom: 4px;
}

.confidence-bar {
    font-family: monospace;
    letter-spacing: 1px;
    font-size: 1em;
    color: #666;
    display: inline-block;
    margin-right: 8px;
}

.confidence-percent {
    font-family: 'Courier Prime', monospace;
    font-weight: 700;
    color: #446688;
}

.confidence-warning {
    display: block;
    font-size: 0.85em;
    margin-top: 4px;
    font-style: italic;
}

/* Confidence level colors */
.intel-item.confidence-meter.high {
    border-left-color: #44aa44;
    background: rgba(68, 170, 68, 0.08);
}

.intel-item.confidence-meter.high .confidence-percent {
    color: #44aa44;
}

.intel-item.confidence-meter.high .confidence-warning {
    color: #336633;
}

.intel-item.confidence-meter.medium {
    border-left-color: #cc9900;
    background: rgba(204, 153, 0, 0.08);
}

.intel-item.confidence-meter.medium .confidence-percent {
    color: #cc9900;
}

.intel-item.confidence-meter.medium .confidence-warning {
    color: #886600;
}

.intel-item.confidence-meter.low {
    border-left-color: #cc3300;
    background: rgba(204, 51, 0, 0.1);
}

.intel-item.confidence-meter.low .confidence-percent {
    color: #cc3300;
}

.intel-item.confidence-meter.low .confidence-warning {
    color: #993300;
    font-weight: 500;
}

/* USSR styling for confidence meter */
.briefing-modal.ussr .intel-item.confidence-meter {
    background: rgba(100, 50, 50, 0.1);
    border-left-color: #884444;
}

.briefing-modal.ussr .intel-item.confidence-meter .intel-label {
    color: #aa6666;
}

.briefing-modal.ussr .intel-item.confidence-meter.high {
    border-left-color: #55aa55;
    background: rgba(85, 170, 85, 0.1);
}

.briefing-modal.ussr .intel-item.confidence-meter.medium {
    border-left-color: #ddaa33;
    background: rgba(221, 170, 51, 0.1);
}

.briefing-modal.ussr .intel-item.confidence-meter.low {
    border-left-color: #dd4433;
    background: rgba(221, 68, 51, 0.15);
}

.memo-footer {
    border-top: 1px dashed #999;
    padding-top: 16px;
    margin-top: 16px;
    text-align: right;
}

.acknowledge-btn.usa {
    background: linear-gradient(180deg, #f5f0e1 0%, #e8dcc4 100%);
    border: 2px solid #4a3728;
    border-radius: 2px;
    padding: 10px 24px;
    font-family: 'Courier Prime', monospace;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    transition: all 0.15s ease;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.acknowledge-btn.usa:hover {
    background: linear-gradient(180deg, #fff 0%, #f5f0e1 100%);
    box-shadow:
        0 3px 6px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.acknowledge-btn.usa:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.acknowledge-btn .initials {
    font-size: 16px;
    font-weight: bold;
    color: #002868;
    font-style: italic;
    font-family: Georgia, serif;
}

.acknowledge-btn .ack-text {
    font-size: 11px;
    letter-spacing: 1px;
    color: #555;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════════════
   USSR: Red Leather Folder with Stamped Report
   ═══════════════════════════════════════════════════════════════ */

.briefing-folder.leather-red {
    background: linear-gradient(180deg, #8b1a1a 0%, #5c1111 100%);
    border: 3px solid #3a0a0a;
    border-radius: 3px;
    padding: 24px;
    box-shadow:
        inset 0 2px 4px rgba(255, 255, 255, 0.1),
        inset 0 -2px 4px rgba(0, 0, 0, 0.2),
        0 6px 20px rgba(0, 0, 0, 0.4);
    position: relative;
}

/* Leather texture overlay */
.briefing-folder.leather-red::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 2px,
        rgba(0, 0, 0, 0.03) 2px,
        rgba(0, 0, 0, 0.03) 4px
    );
    pointer-events: none;
    border-radius: 2px;
}

.folder-emblem {
    text-align: center;
    font-size: 32px;
    color: #ffd700;
    margin-bottom: 12px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

.folder-emblem::before {
    content: '\2606';  /* Star symbol */
}

.report-paper.cheap {
    background: linear-gradient(180deg, #e8e4d8 0%, #ddd8c8 100%);
    font-family: 'Courier Prime', 'Courier New', monospace;
    padding: 20px 24px;
    border: 1px solid #999;
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.08);
    position: relative;
}

/* Cheap paper texture */
.report-paper.cheap::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 28px,
        rgba(0, 0, 0, 0.02) 28px,
        rgba(0, 0, 0, 0.02) 29px
    );
    pointer-events: none;
}

.report-stamp {
    display: inline-block;
    color: #cc0000;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 2px;
    transform: rotate(-5deg);
    border: 2px solid #cc0000;
    padding: 4px 10px;
    margin-bottom: 16px;
    background: rgba(255, 255, 255, 0.3);
}

.report-header {
    border-bottom: 1px solid #666;
    padding-bottom: 12px;
    margin-bottom: 16px;
}

.report-date {
    font-size: 11px;
    color: #555;
    margin-bottom: 8px;
}

.report-to,
.report-from {
    font-size: 12px;
    color: #1a1a1a;
    margin-bottom: 2px;
}

.report-body {
    padding: 12px 0;
}

.briefing-modal.ussr .intel-label {
    color: #4a0000;
}

.briefing-modal.ussr .intel-text {
    color: #1a1a1a;
}

.report-footer {
    border-top: 1px solid #999;
    padding-top: 16px;
    margin-top: 16px;
    text-align: right;
}

.acknowledge-btn.ussr {
    background: linear-gradient(180deg, #cc0000 0%, #8b0000 100%);
    border: 2px solid #3a0a0a;
    border-radius: 2px;
    padding: 10px 24px;
    font-family: 'Courier Prime', monospace;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    transition: all 0.15s ease;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.acknowledge-btn.ussr:hover {
    background: linear-gradient(180deg, #dd2222 0%, #aa0000 100%);
    box-shadow:
        0 3px 6px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.acknowledge-btn.ussr:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.acknowledge-btn.ussr .signature {
    font-size: 14px;
    font-weight: bold;
    color: #ffd700;
    font-style: italic;
    font-family: Georgia, serif;
}

.acknowledge-btn.ussr .ack-text {
    font-size: 11px;
    letter-spacing: 1px;
    color: #ffcccc;
    text-transform: uppercase;
}

/* ========================================
   v5.0 - VISUAL DECAY SYSTEM
   "The Weight of Command"

   As the game progresses, the desk accumulates
   the visible toll of Cold War stress. The player
   shouldn't notice it happening - until they look
   up at Turn 20 and realize the lights have dimmed.
   ======================================== */

/* Base desk state - enable pseudo-element layering */
#desk {
    position: relative;
}

/* Decay overlay layer - sits above desk content but below body overlays */
#desk::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 100;
    opacity: 0;
    transition: opacity 2s ease-in-out, background 2s ease-in-out;
}

/* Clutter overlay layer - coffee rings, scattered papers, ash */
#desk::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 99;
    opacity: 0;
    transition: opacity 2s ease-in-out;
}

/* ----------------------------------------
   STRESS TIER 1: Mid-Game (Turns 8-15, Tension 30-50)
   "The coffee's getting cold"
   - Subtle vignette deepens
   - Faint paper scatter texture
   ---------------------------------------- */
#desk.desk-stress-1::before {
    opacity: 1;
    background: radial-gradient(
        ellipse at 50% 30%,
        transparent 35%,
        rgba(25, 18, 10, 0.12) 60%,
        rgba(18, 12, 8, 0.25) 100%
    );
}

#desk.desk-stress-1::after {
    opacity: 0.03;
    /* Faint paper scatter - barely visible noise */
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='15' y='20' width='8' height='10' fill='%23e8dcc4' transform='rotate(12 19 25)'/%3E%3Crect x='70' y='60' width='6' height='8' fill='%23e8dcc4' transform='rotate(-8 73 64)'/%3E%3Crect x='45' y='80' width='5' height='7' fill='%23e8dcc4' transform='rotate(5 47 83)'/%3E%3C/svg%3E");
    background-size: 200px 200px;
}

/* ----------------------------------------
   STRESS TIER 2: Late-Game/High Tension (Turns 16-24, Tension 50-75)
   "Long nights at the desk"
   - Deeper vignette with warm edge
   - Visible coffee rings
   - Ash tray residue (gray corners)
   - Harsher, more focused lighting
   ---------------------------------------- */
#desk.desk-stress-2::before {
    opacity: 1;
    background:
        /* Focused harsh desk lamp effect */
        radial-gradient(
            ellipse 60% 40% at 50% 25%,
            rgba(255, 248, 220, 0.04) 0%,
            transparent 50%
        ),
        /* Deepening shadows at edges */
        radial-gradient(
            ellipse at 50% 30%,
            transparent 30%,
            rgba(20, 15, 8, 0.2) 55%,
            rgba(15, 10, 5, 0.4) 100%
        );
}

#desk.desk-stress-2::after {
    opacity: 1;
    background-image:
        /* Coffee ring stains */
        radial-gradient(circle at 85% 15%, rgba(101, 67, 33, 0.08) 0%, rgba(101, 67, 33, 0.04) 15px, transparent 18px),
        radial-gradient(circle at 12% 75%, rgba(101, 67, 33, 0.06) 0%, rgba(101, 67, 33, 0.03) 12px, transparent 15px),
        radial-gradient(circle at 78% 82%, rgba(101, 67, 33, 0.05) 0%, rgba(101, 67, 33, 0.02) 10px, transparent 13px),
        /* Ash residue in corners */
        radial-gradient(ellipse at 5% 95%, rgba(80, 80, 80, 0.06) 0%, transparent 60px),
        radial-gradient(ellipse at 95% 90%, rgba(80, 80, 80, 0.05) 0%, transparent 50px),
        /* More scattered papers */
        url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='10' y='15' width='12' height='15' fill='%23e8dcc4' fill-opacity='0.15' transform='rotate(8 16 22)'/%3E%3Crect x='120' y='100' width='10' height='13' fill='%23e8dcc4' fill-opacity='0.12' transform='rotate(-15 125 106)'/%3E%3Crect x='80' y='130' width='8' height='11' fill='%23e8dcc4' fill-opacity='0.1' transform='rotate(3 84 135)'/%3E%3Crect x='5' y='70' width='9' height='12' fill='%23d4c4a4' fill-opacity='0.1' transform='rotate(-5 9 76)'/%3E%3C/svg%3E");
    background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 180px 180px;
}

/* ----------------------------------------
   STRESS TIER 3: DEFCON 2 / Critical (Turns 25+, Tension 75+, or DEFCON 2)
   "The Bunker"
   - Red emergency tint
   - Dim, oppressive lighting
   - Maximum clutter
   - Everything feels urgent and dire
   ---------------------------------------- */
#desk.desk-stress-3::before {
    opacity: 1;
    background:
        /* Emergency red wash */
        linear-gradient(
            180deg,
            rgba(60, 0, 0, 0.08) 0%,
            rgba(40, 0, 0, 0.12) 50%,
            rgba(30, 0, 0, 0.15) 100%
        ),
        /* Dim bunker lighting - light source from above, harsh falloff */
        radial-gradient(
            ellipse 50% 35% at 50% 20%,
            rgba(180, 120, 80, 0.06) 0%,
            transparent 60%
        ),
        /* Heavy shadow vignette */
        radial-gradient(
            ellipse at 50% 40%,
            transparent 20%,
            rgba(15, 8, 5, 0.25) 50%,
            rgba(10, 5, 3, 0.5) 100%
        );
}

#desk.desk-stress-3::after {
    opacity: 1;
    background-image:
        /* Multiple coffee rings - long nights */
        radial-gradient(circle at 88% 12%, rgba(80, 50, 20, 0.1) 0%, rgba(80, 50, 20, 0.05) 18px, transparent 22px),
        radial-gradient(circle at 82% 18%, rgba(80, 50, 20, 0.08) 0%, rgba(80, 50, 20, 0.04) 14px, transparent 17px),
        radial-gradient(circle at 10% 78%, rgba(80, 50, 20, 0.09) 0%, rgba(80, 50, 20, 0.05) 16px, transparent 19px),
        radial-gradient(circle at 75% 85%, rgba(80, 50, 20, 0.07) 0%, rgba(80, 50, 20, 0.03) 12px, transparent 15px),
        radial-gradient(circle at 25% 88%, rgba(80, 50, 20, 0.06) 0%, rgba(80, 50, 20, 0.03) 10px, transparent 13px),
        /* Heavy ash accumulation */
        radial-gradient(ellipse at 3% 97%, rgba(60, 60, 60, 0.1) 0%, rgba(50, 50, 50, 0.05) 40px, transparent 80px),
        radial-gradient(ellipse at 97% 93%, rgba(60, 60, 60, 0.08) 0%, rgba(50, 50, 50, 0.04) 35px, transparent 70px),
        /* Scattered papers and files */
        url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='8' y='12' width='14' height='18' fill='%23e8dcc4' fill-opacity='0.18' transform='rotate(12 15 21)'/%3E%3Crect x='160' y='140' width='12' height='16' fill='%23e8dcc4' fill-opacity='0.15' transform='rotate(-18 166 148)'/%3E%3Crect x='120' y='170' width='10' height='14' fill='%23e8dcc4' fill-opacity='0.12' transform='rotate(7 125 177)'/%3E%3Crect x='3' y='90' width='11' height='15' fill='%23d4c4a4' fill-opacity='0.14' transform='rotate(-8 8 97)'/%3E%3Crect x='180' y='30' width='9' height='12' fill='%23d4c4a4' fill-opacity='0.1' transform='rotate(20 184 36)'/%3E%3Crect x='50' y='175' width='13' height='17' fill='%23e8dcc4' fill-opacity='0.16' transform='rotate(-12 56 183)'/%3E%3C/svg%3E");
    background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 220px 220px;
}

/* ----------------------------------------
   INTEL GLITCH EFFECT
   Triggered on intel failure or jamming
   Momentary visual distortion on the map
   ---------------------------------------- */
@keyframes intel-glitch {
    0% {
        transform: translate(0);
        filter: none;
    }
    10% {
        transform: translate(-2px, 1px);
        filter: hue-rotate(90deg) saturate(1.5);
    }
    20% {
        transform: translate(2px, -1px);
        filter: hue-rotate(-90deg) saturate(0.5);
    }
    30% {
        transform: translate(-1px, 2px);
        filter: brightness(1.3) contrast(1.2);
    }
    40% {
        transform: translate(1px, -1px);
        filter: invert(0.1);
    }
    50% {
        transform: translate(-2px, 0);
        filter: hue-rotate(45deg);
    }
    60% {
        transform: translate(0, 1px);
        filter: brightness(0.8);
    }
    70% {
        transform: translate(1px, 0);
        filter: saturate(2);
    }
    80% {
        transform: translate(-1px, -1px);
        filter: hue-rotate(-45deg) brightness(1.1);
    }
    90% {
        transform: translate(0, 1px);
        filter: contrast(1.1);
    }
    100% {
        transform: translate(0);
        filter: none;
    }
}

/* Static/snow overlay during glitch */
@keyframes static-flicker {
    0%, 100% { opacity: 0; }
    5% { opacity: 0.03; }
    10% { opacity: 0.08; }
    15% { opacity: 0.02; }
    20% { opacity: 0.06; }
    25% { opacity: 0.01; }
    30% { opacity: 0.05; }
    50% { opacity: 0.04; }
    70% { opacity: 0.07; }
    85% { opacity: 0.02; }
}

.world-map-container.intel-glitch {
    animation: intel-glitch 0.4s ease-in-out;
}

.world-map-container.intel-glitch::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    animation: static-flicker 0.4s ease-in-out;
    mix-blend-mode: overlay;
}

/* Ensure world-map-container has position for pseudo-element */
.world-map-container {
    position: relative;
    overflow: hidden;
}

/* ----------------------------------------
   Smooth transitions between stress tiers
   The change should be imperceptible moment-to-moment
   ---------------------------------------- */
#desk.desk-stress-transition::before,
#desk.desk-stress-transition::after {
    transition: opacity 4s ease-in-out, background 4s ease-in-out;
}

/* ═══════════════════════════════════════════════════════════════
   v5.1: Agency Autonomy - Unauthorized Action Modal & Ambition Bar
   ═══════════════════════════════════════════════════════════════ */

/* Unauthorized Action Modal */
.ua-modal {
    background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
    border: 4px solid #cc6600;
    border-radius: 8px;
    padding: 30px 40px;
    max-width: 520px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6),
                inset 0 0 30px rgba(204, 102, 0, 0.1);
}

.ua-warning {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    background: linear-gradient(180deg, #cc6600 0%, #993300 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 20px rgba(204, 102, 0, 0.5);
    animation: ua-pulse 1.5s ease-in-out infinite;
}

.warning-icon {
    font-size: 40px;
    color: #fff;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

@keyframes ua-pulse {
    0%, 100% {
        box-shadow: 0 0 20px rgba(204, 102, 0, 0.5);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 35px rgba(204, 102, 0, 0.8);
        transform: scale(1.05);
    }
}

.ua-title {
    font-family: var(--font-headline);
    font-size: 24px;
    color: #ff9933;
    margin-bottom: 5px;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-shadow: 0 0 10px rgba(255, 153, 51, 0.5);
}

.ua-agency {
    font-family: var(--font-typewriter);
    font-size: 18px;
    color: #ffcc99;
    margin-bottom: 15px;
}

.ua-action-name {
    font-family: var(--font-headline);
    font-size: 16px;
    color: #fff;
    margin-bottom: 10px;
}

.ua-description {
    font-family: var(--font-body);
    font-size: 13px;
    color: #ccaa88;
    margin-bottom: 15px;
    line-height: 1.5;
    font-style: italic;
}

.ua-effects {
    font-family: var(--font-typewriter);
    font-size: 12px;
    color: #ff6633;
    margin-bottom: 20px;
    padding: 10px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid #663300;
    border-radius: 4px;
}

.ua-choices {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ua-btn {
    display: flex;
    flex-direction: column;
    padding: 12px 20px;
    border: 2px solid;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
}

.ua-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.ua-btn .btn-title {
    font-family: var(--font-headline);
    font-size: 14px;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.ua-btn .btn-effect {
    font-family: var(--font-body);
    font-size: 11px;
    opacity: 0.8;
}

.ua-btn .btn-cost {
    font-family: var(--font-typewriter);
    font-size: 11px;
    margin-top: 4px;
}

.ua-btn.accept {
    background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%);
    border-color: #886644;
    color: #ffddbb;
}

.ua-btn.accept:hover:not(:disabled) {
    background: linear-gradient(180deg, #5a4030 0%, #4a3020 100%);
    border-color: #aa8866;
}

.ua-btn.mitigate {
    background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
    border-color: #4a6a8a;
    color: #aaccff;
}

.ua-btn.mitigate:hover:not(:disabled) {
    background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
    border-color: #6a8aaa;
}

.ua-btn.scapegoat {
    background: linear-gradient(180deg, #4a2a2a 0%, #3a1a1a 100%);
    border-color: #8a4a4a;
    color: #ffaaaa;
}

.ua-btn.scapegoat:hover:not(:disabled) {
    background: linear-gradient(180deg, #5a3a3a 0%, #4a2a2a 100%);
    border-color: #aa6a6a;
}

/* Agency Ambition Bar Styling */
.agency-ambition-section {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed var(--ink-faded);
}

.agency-ambition-bar {
    position: relative;
    height: 8px;
    background: rgba(0, 0, 0, 0.15);
    border: 1px solid var(--wood-medium);
    border-radius: 2px;
    overflow: hidden;
}

.agency-ambition-fill {
    height: 100%;
    background: linear-gradient(90deg, #66aa66 0%, #aaaa44 50%, #cc6633 100%);
    transition: width 0.5s ease;
}

.agency-ambition-bar.elevated .agency-ambition-fill {
    background: linear-gradient(90deg, #aaaa44 0%, #cc6633 100%);
}

.agency-ambition-bar.critical .agency-ambition-fill {
    background: linear-gradient(90deg, #cc6633 0%, #cc3333 100%);
    animation: ambition-pulse 1s ease-in-out infinite;
}

@keyframes ambition-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.agency-ambition-label {
    margin-top: 4px;
    font-size: 9px;
    color: var(--ink-faded);
    text-align: center;
}

/* Agency Ambition Warning in Header */
.agency-ambition-warning {
    font-size: 9px;
    color: #cc6633;
    padding: 2px 6px;
    background: rgba(204, 102, 51, 0.1);
    border: 1px solid rgba(204, 102, 51, 0.3);
    border-radius: 3px;
    animation: pulse-warning 1.5s ease-in-out infinite;
}

/* Agency Warning in Briefing */
.intel-item.agency-warning {
    background: rgba(204, 102, 51, 0.1);
    border-left: 3px solid #cc6633;
    padding-left: 10px;
}

.intel-item.agency-warning .intel-label {
    color: #cc6633;
}

/* ═══════════════════════════════════════════════════════════════
   v5.3: Client State Engine - Provocation Modal ("The Tail Wags the Dog")
   ═══════════════════════════════════════════════════════════════ */

/* Provocation Modal Container */
.provocation-modal {
    background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
    border: 4px solid #447744;
    border-radius: 8px;
    padding: 30px 40px;
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
    box-shadow: 0 0 40px rgba(68, 119, 68, 0.4),
                inset 0 0 20px rgba(68, 119, 68, 0.1);
}

/* Warning Icon */
.provocation-warning {
    margin-bottom: 20px;
}

.provocation-warning .warning-icon {
    font-size: 48px;
    color: #88cc88;
    text-shadow: 0 0 20px rgba(136, 204, 136, 0.6);
    animation: provocation-pulse 1.5s ease-in-out infinite;
}

@keyframes provocation-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.05); }
}

/* Title */
.provocation-title {
    font-family: var(--font-headline);
    font-size: 24px;
    color: #ccffcc;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 10px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

/* Country Name */
.provocation-country {
    font-family: var(--font-headline);
    font-size: 18px;
    color: #88cc88;
    margin-bottom: 15px;
}

/* Description */
.provocation-description {
    font-family: var(--font-body);
    font-size: 14px;
    color: #aaddaa;
    line-height: 1.6;
    margin-bottom: 15px;
    padding: 10px;
    background: rgba(68, 119, 68, 0.15);
    border-radius: 4px;
    border-left: 3px solid #447744;
    text-align: left;
}

/* Context badges */
.provocation-context {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 20px;
}

.militancy-badge {
    font-family: var(--font-typewriter);
    font-size: 11px;
    padding: 4px 10px;
    background: rgba(204, 102, 51, 0.2);
    border: 1px solid #cc6633;
    border-radius: 3px;
    color: #ffcc99;
}

.alignment-badge {
    font-family: var(--font-typewriter);
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 3px;
}

.alignment-badge.us-aligned {
    background: rgba(51, 102, 153, 0.2);
    border: 1px solid #336699;
    color: #99ccff;
}

.alignment-badge.ussr-aligned {
    background: rgba(153, 51, 51, 0.2);
    border: 1px solid #993333;
    color: #ffaaaa;
}

/* Choice buttons container */
.provocation-choices {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Base button styles */
.provocation-btn {
    display: flex;
    flex-direction: column;
    padding: 12px 20px;
    border: 2px solid;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
}

.provocation-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.provocation-btn .btn-title {
    font-family: var(--font-headline);
    font-size: 14px;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.provocation-btn .btn-desc {
    font-family: var(--font-body);
    font-size: 11px;
    opacity: 0.7;
    margin-bottom: 4px;
}

.provocation-btn .btn-effect {
    font-family: var(--font-body);
    font-size: 11px;
    opacity: 0.8;
}

.provocation-btn .btn-cost {
    font-family: var(--font-typewriter);
    font-size: 11px;
    margin-top: 4px;
}

/* Back Them - Aggressive green/yellow */
.provocation-btn.back-them {
    background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
    border-color: #6a8a4a;
    color: #ccffaa;
}

.provocation-btn.back-them:hover:not(:disabled) {
    background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
    border-color: #8aaa6a;
}

/* Disavow - Blue/diplomatic */
.provocation-btn.disavow {
    background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
    border-color: #4a6a8a;
    color: #aaccff;
}

.provocation-btn.disavow:hover:not(:disabled) {
    background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
    border-color: #6a8aaa;
}

/* Covert Restraint - Dark/shadowy purple */
.provocation-btn.covert-restraint {
    background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%);
    border-color: #6a4a8a;
    color: #ccaaff;
}

.provocation-btn.covert-restraint:hover:not(:disabled) {
    background: linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 100%);
    border-color: #8a6aaa;
}

/* Provocation Warning in Briefing */
.intel-item.provocation-warning {
    background: rgba(68, 119, 68, 0.1);
    border-left: 3px solid #447744;
    padding-left: 10px;
}

.intel-item.provocation-warning .intel-label {
    color: #88cc88;
}

/* ========================================
   v10.2: Panel Transitions & Button Tactility
   ======================================== */
#foreign-policy-view, #domestic-policy-view, #intel-policy-view {
    transition: opacity 0.15s ease;
}

.action-card:active:not(.disabled), button:active:not(:disabled) {
    transform: scale(0.97);
    transition: transform 0.05s ease;
}

/* ========================================
   v10.2: Historian's Debrief Styles
   ======================================== */
.game-over.debrief {
    max-height: 80vh;
    overflow-y: auto;
}

.game-over.debrief .telegram-body h2 {
    font-family: var(--font-display);
    font-size: 20px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--ink-black);
    margin-bottom: 8px;
    border-bottom: 2px solid var(--ink-red);
    padding-bottom: 6px;
}

.debrief-section {
    margin: 16px 0;
    padding: 10px;
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid rgba(160, 144, 128, 0.4);
    border-radius: 2px;
}

.debrief-section h3 {
    font-family: var(--font-teletype);
    font-size: 11px;
    letter-spacing: 2px;
    color: var(--ink-red);
    margin: 0 0 8px 0;
    text-transform: uppercase;
    border-bottom: 1px dashed #a09080;
    padding-bottom: 4px;
}

/* Score row */
.debrief-score-row {
    display: flex;
    justify-content: center;
    gap: 16px;
    font-family: var(--font-teletype);
    font-size: 16px;
    font-weight: bold;
    margin: 8px 0;
}

.score-usa { color: var(--ink-blue); }
.score-divider { color: #a09080; }
.score-ussr { color: var(--ink-red); }

.debrief-meta {
    font-family: var(--font-teletype);
    font-size: 10px;
    color: #807060;
    text-align: center;
    margin: 4px 0 0 0;
}

/* Timeline cables */
.debrief-timeline {
    padding: 10px;
}

.debrief-cable {
    display: flex;
    gap: 8px;
    align-items: baseline;
    padding: 6px 0;
    border-bottom: 1px dotted rgba(160, 144, 128, 0.3);
    font-family: var(--font-teletype);
    font-size: 11px;
    line-height: 1.4;
}

.debrief-cable:last-child {
    border-bottom: none;
}

.cable-date {
    flex-shrink: 0;
    width: 80px;
    font-weight: bold;
    color: var(--ink-blue);
}

.cable-icon {
    flex-shrink: 0;
    width: 16px;
    text-align: center;
    color: var(--ink-red);
    font-weight: bold;
}

.cable-text {
    color: var(--ink-black);
}

.debrief-empty {
    font-family: var(--font-teletype);
    font-size: 11px;
    color: #807060;
    font-style: italic;
}

/* Fog Reveals */
.debrief-fog-item {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    padding: 4px 0;
    border-bottom: 1px dotted rgba(160, 144, 128, 0.3);
    font-family: var(--font-teletype);
    font-size: 11px;
}

.debrief-fog-item:last-child {
    border-bottom: none;
}

.fog-label {
    font-weight: bold;
    color: var(--ink-black);
    min-width: 120px;
}

.fog-believed {
    color: #8b6914;
}

.fog-actual {
    color: var(--ink-red);
    font-weight: bold;
}

/* Player Archetype */
.debrief-archetype {
    text-align: center;
}

.archetype-name {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: bold;
    color: var(--ink-blue);
    margin: 8px 0 4px 0;
    letter-spacing: 1px;
}

.archetype-desc {
    font-family: var(--font-body);
    font-size: 12px;
    color: var(--ink-black);
    font-style: italic;
    margin: 4px 0 10px 0;
}

.archetype-stats {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    font-family: var(--font-teletype);
    font-size: 10px;
    color: #807060;
}

/* ========================================
   v10.3: Phase 4 - Domestic Desk (Corkboard + Advisor File)
   ======================================== */

#domestic-dashboard {
    background:
        radial-gradient(circle at 14% 20%, rgba(188, 142, 88, 0.2) 0%, transparent 34%),
        radial-gradient(circle at 84% 78%, rgba(112, 72, 36, 0.24) 0%, transparent 36%),
        repeating-linear-gradient(
            135deg,
            rgba(82, 56, 28, 0.26) 0,
            rgba(82, 56, 28, 0.26) 2px,
            rgba(0, 0, 0, 0) 2px,
            rgba(0, 0, 0, 0) 8px
        ),
        linear-gradient(135deg, #8b6134 0%, #6f4927 45%, #5f3d20 100%);
    border-color: #4a2f19;
    box-shadow:
        inset 0 0 24px rgba(0, 0, 0, 0.26),
        0 4px 10px rgba(0, 0, 0, 0.28);
}

.corkboard-report {
    position: relative;
}

.corkboard-report .report-header {
    margin-bottom: 18px;
    padding: 14px 12px 16px;
    background: linear-gradient(180deg, rgba(248, 240, 222, 0.95) 0%, rgba(234, 220, 195, 0.95) 100%);
    border: 1px solid #8a6a41;
    box-shadow:
        0 3px 6px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.corkboard-report .report-header::before {
    content: '';
    position: absolute;
    left: 50%;
    top: -8px;
    width: 16px;
    height: 16px;
    transform: translateX(-50%);
    border-radius: 50%;
    border: 1px solid #6f512f;
    background: radial-gradient(circle at 35% 35%, #f8d594 0%, #c58a35 68%, #8a5b25 100%);
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.35);
}

/* Advisor file component */
.advisor-dissent-file {
    position: relative;
    margin: 4px 8px 24px;
    --advisor-file-thickness: 4px;
}

.advisor-dissent-file::after {
    content: '';
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: calc(-1 * var(--advisor-file-thickness));
    height: var(--advisor-file-thickness);
    border: 1px solid #9a7a4f;
    border-top: none;
    border-radius: 0 0 4px 4px;
    background: linear-gradient(180deg, #d9c099 0%, #c1a174 100%);
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.25);
    pointer-events: none;
}

.advisor-file-toggle {
    width: 100%;
    border: 1px solid #8f7047;
    border-radius: 4px;
    background: linear-gradient(180deg, #ddc39d 0%, #c9a97b 100%);
    text-align: left;
    padding: 0;
    cursor: pointer;
    box-shadow:
        0 4px 8px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
    position: relative;
}

.advisor-dissent-file.expanded .advisor-file-toggle {
    box-shadow:
        0 5px 10px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.advisor-dissent-file.resignation-pending .advisor-file-toggle {
    border-color: #8b1e26;
}

.advisor-file-tab {
    position: absolute;
    top: -16px;
    left: 18px;
    padding: 3px 10px;
    border-radius: 3px 3px 0 0;
    border: 1px solid #8f7047;
    border-bottom: none;
    background: linear-gradient(180deg, #e0c79f 0%, #c9a97b 100%);
    color: #6d4a1e;
    font-family: var(--font-teletype);
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.advisor-file-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 14px 12px;
}

.advisor-file-portrait {
    width: 54px;
    height: 54px;
    border-radius: 4px;
    border: 2px solid #6f5434;
    background-color: #f2e6d1;
    background-image: url('../assets/advisor_portraits_2x.png');
    background-size: 400% 200%;
    background-repeat: no-repeat;
    filter: grayscale(100%) contrast(115%);
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.25),
        inset 0 0 8px rgba(0, 0, 0, 0.18);
    flex-shrink: 0;
}

.advisor-file-portrait.no-portrait {
    background-image: none;
    background: linear-gradient(180deg, #d4c2a7 0%, #b59872 100%);
    position: relative;
}

.advisor-file-portrait.no-portrait::after {
    content: '?';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 28px;
    color: #6d4a1e;
}

.advisor-file-ident {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 2px;
    flex: 1;
}

.advisor-file-name {
    font-family: var(--font-display);
    font-size: 19px;
    letter-spacing: 0.5px;
    color: #302112;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.advisor-file-title,
.advisor-file-status,
.advisor-file-suspension {
    font-family: var(--font-teletype);
    color: #4a3724;
    line-height: 1.25;
}

.advisor-file-title {
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.advisor-file-status {
    font-size: 10px;
    letter-spacing: 0.5px;
}

.advisor-file-suspension {
    font-size: 10px;
    color: #7e2a2a;
    font-weight: bold;
}

.advisor-file-chevron {
    flex-shrink: 0;
    font-family: var(--font-teletype);
    font-size: 18px;
    color: #5a3e24;
    margin-right: 4px;
}

.advisor-file-stamp {
    position: absolute;
    right: 12px;
    top: 10px;
    padding: 2px 8px;
    border: 2px solid #8b1e26;
    border-radius: 2px;
    color: #8b1e26;
    font-family: var(--font-teletype);
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1px;
    transform: rotate(-10deg);
    background: rgba(255, 255, 255, 0.2);
}

.advisor-file-history {
    border-top: 1px dashed rgba(74, 55, 36, 0.45);
    padding: 10px 12px 12px;
    background: rgba(247, 238, 219, 0.72);
}

.advisor-file-history-title {
    font-family: var(--font-teletype);
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1px;
    color: #563b22;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.advisor-file-memo-list {
    margin: 0;
    padding: 0 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.advisor-file-memo-entry {
    color: #2e2419;
    line-height: 1.35;
}

.advisor-file-memo-cycle {
    display: block;
    font-family: var(--font-teletype);
    font-size: 9px;
    font-weight: bold;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #6f5233;
    margin-bottom: 1px;
}

.advisor-file-memo-text {
    display: block;
    font-family: var(--font-body);
    font-size: 12px;
}

.advisor-file-memo-empty {
    list-style: none;
    margin-left: -16px;
    font-family: var(--font-teletype);
    font-size: 11px;
    color: #6f5233;
}

/* Corkboard metrics + red string network */
.metrics-corkboard {
    position: relative;
    gap: 18px;
    margin-bottom: 24px;
}

.metric-string-board {
    position: absolute;
    inset: 8px 10px;
    z-index: 0;
    pointer-events: none;
}

.metric-string {
    position: absolute;
    height: 2px;
    background: rgba(130, 20, 20, 0.85);
    box-shadow: 0 0 2px rgba(80, 8, 8, 0.6);
    transform-origin: left center;
}

.metric-string.string-economic {
    left: 18%;
    top: 26%;
    width: 62%;
    transform: rotate(3deg);
}

.metric-string.string-labor {
    left: 20%;
    top: 73%;
    width: 58%;
    transform: rotate(-4deg);
}

.metric-string.string-stability {
    left: 48%;
    top: 26%;
    width: 3px;
    height: 46%;
    transform: rotate(9deg);
}

.metric-string.string-inflation {
    left: 76%;
    top: 30%;
    width: 4px;
    height: 44%;
    transform: rotate(-8deg);
}

.ussr-corkboard .metric-string {
    background: rgba(146, 34, 34, 0.9);
}

.metrics-corkboard .metric-card {
    z-index: 1;
    background: linear-gradient(180deg, #f8f1df 0%, #eee0c2 100%);
    border: 1px solid #94734d;
    box-shadow:
        0 4px 8px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.metrics-corkboard .metric-card::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    width: 14px;
    height: 14px;
    transform: translateX(-50%);
    border-radius: 50%;
    border: 1px solid rgba(85, 55, 24, 0.75);
    background: radial-gradient(circle at 35% 35%, #ffe0af 0%, #d7a052 62%, #915f25 100%);
    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.35);
}

.metrics-corkboard .metric-card.metric-gdp { transform: rotate(-1.5deg); }
.metrics-corkboard .metric-card.metric-population { transform: rotate(1.1deg); }
.metrics-corkboard .metric-card.metric-stability { transform: rotate(-0.9deg); }
.metrics-corkboard .metric-card.metric-labor { transform: rotate(1.7deg); }
.metrics-corkboard .metric-card.metric-unemployment { transform: rotate(-1.2deg); }
.metrics-corkboard .metric-card.metric-inflation { transform: rotate(0.9deg); }

.metrics-corkboard .metric-card:hover {
    transform: rotate(0deg) scale(1.02);
}

/* Pin notes on board sections */
.corkboard-report .resources-section,
.corkboard-report .internal-security-section,
.corkboard-report .priorities-section,
.corkboard-report .agency-relations-section {
    position: relative;
    background: linear-gradient(180deg, rgba(247, 239, 224, 0.96) 0%, rgba(233, 219, 195, 0.95) 100%);
    border: 1px solid #9a7b54;
    padding: 12px 14px 14px;
    margin: 0 6px 20px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.24);
}

.corkboard-report .resources-section { transform: rotate(-0.6deg); }
.corkboard-report .internal-security-section { transform: rotate(0.8deg); }
.corkboard-report .priorities-section { transform: rotate(-0.4deg); }
.corkboard-report .agency-relations-section { transform: rotate(0.5deg); }

.corkboard-report .resources-section::before,
.corkboard-report .internal-security-section::before,
.corkboard-report .priorities-section::before,
.corkboard-report .agency-relations-section::before {
    content: '';
    position: absolute;
    top: -7px;
    left: 18px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(85, 55, 24, 0.75);
    background: radial-gradient(circle at 35% 35%, #ffe3af 0%, #cc8f35 70%, #8f581d 100%);
}

/* Domestic action panel: switchboard/telephone styling */
#domestic-action-panel.domestic-switchboard {
    position: relative;
    background:
        linear-gradient(180deg, #2a2016 0%, #1b140e 100%);
    border-color: #5b452f;
    box-shadow:
        inset 0 0 16px rgba(0, 0, 0, 0.45),
        0 4px 10px rgba(0, 0, 0, 0.32);
}

.switchboard-faceplate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 2px 0 12px;
}

.switchboard-dial {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid #8e6a3d;
    background:
        radial-gradient(circle at 32% 28%, #f4d49e 0%, #bd8b45 56%, #6a4722 100%);
    box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.35);
    flex-shrink: 0;
}

.switchboard-jack-row {
    flex: 1;
    height: 8px;
    border-radius: 999px;
    border: 1px solid #6f5333;
    background:
        radial-gradient(circle at 6px 4px, #b9d2ce 0, #6f8f8a 2px, transparent 2px) repeat-x;
    background-size: 18px 8px;
    opacity: 0.75;
}

#domestic-action-panel.domestic-switchboard .domestic-actions-header {
    background: linear-gradient(180deg, #3b2d1f 0%, #2d2218 100%);
    border-bottom-color: #a98049;
}

#domestic-action-panel.domestic-switchboard .policy-levers {
    padding: 12px 8px 14px;
}

#domestic-action-panel.domestic-switchboard .lever-card {
    background: linear-gradient(180deg, #332619 0%, #271d13 100%);
    border-color: #8b6a40;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

#domestic-action-panel.domestic-switchboard .lever-card:hover:not(.disabled) {
    transform: translateX(0);
    background: linear-gradient(180deg, #3d2f20 0%, #2f2419 100%);
    border-color: #c89c5e;
}

#domestic-action-panel.domestic-switchboard .lever-name {
    color: #f0ddbe;
}

#domestic-action-panel.domestic-switchboard .lever-benefit {
    color: #a7d68f;
}

#domestic-action-panel.domestic-switchboard .lever-cost {
    color: #deb08c;
}

#domestic-action-panel.domestic-switchboard .lever-icon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid #8b6a40;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    background: linear-gradient(180deg, #7f6039 0%, #614729 100%);
}

#domestic-action-panel.domestic-switchboard .lever-btn {
    position: relative;
    min-width: 74px;
    padding: 9px 12px 9px 24px;
    border: 1px solid #9d7641;
    background: linear-gradient(180deg, #b2894f 0%, #7a5b32 100%);
    color: #fff8e8;
}

#domestic-action-panel.domestic-switchboard .lever-btn::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #2f2010;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.7);
}

#domestic-action-panel.domestic-switchboard .lever-btn:hover:not(:disabled)::before {
    background: #e6ba62;
    box-shadow: 0 0 6px rgba(230, 186, 98, 0.6);
}

#domestic-action-panel.domestic-switchboard .domestic-turn-controls {
    border-top-color: #6a5032;
}

#domestic-action-panel.domestic-switchboard .domestic-turn-controls .end-turn-btn {
    background: linear-gradient(180deg, #4b6a39 0%, #2e4a1e 100%);
    border-color: #7c9d58;
}

.theme-ussr #domestic-action-panel.domestic-switchboard .lever-card {
    border-color: #8b4a4a;
}

.theme-ussr #domestic-action-panel.domestic-switchboard .lever-btn {
    background: linear-gradient(180deg, #944444 0%, #612828 100%);
    border-color: #b66666;
}

.theme-ussr #domestic-action-panel.domestic-switchboard .domestic-actions-header {
    border-bottom-color: #b85b5b;
}

@media (max-width: 768px) {
    .metric-string-board {
        display: none;
    }

    .metrics-corkboard .metric-card {
        transform: none !important;
    }

    .corkboard-report .resources-section,
    .corkboard-report .internal-security-section,
    .corkboard-report .priorities-section,
    .corkboard-report .agency-relations-section {
        margin: 0 0 16px;
        transform: none;
    }

    .advisor-file-header {
        gap: 8px;
        padding: 14px 10px 10px;
    }

    .advisor-file-portrait {
        width: 44px;
        height: 44px;
    }

    .advisor-file-name {
        font-size: 16px;
    }

    .advisor-file-status {
        font-size: 9px;
    }

    .switchboard-faceplate {
        margin-bottom: 8px;
    }
}

/* ========================================
   Phase 2.1 - Cause and Consequence Layer
   ======================================== */

.active-consequences {
    margin: 10px 0 0;
    padding: 10px 12px;
    border: 1px solid rgba(26, 26, 26, 0.25);
    border-radius: 4px;
    background: linear-gradient(180deg, rgba(248, 241, 223, 0.94) 0%, rgba(231, 217, 189, 0.96) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        0 1px 3px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.active-consequences-label {
    font-size: 10px;
    letter-spacing: 1.2px;
    font-weight: bold;
    color: var(--ink-blue);
}

.active-consequences-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.active-consequence-item {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(26, 58, 92, 0.08);
    border: 1px solid rgba(26, 58, 92, 0.18);
    color: #1a1a1a;
    font-size: 11px;
    line-height: 1.35;
}

.action-receipt {
    margin-bottom: 8px;
    padding: 10px 12px;
    border-radius: 4px;
    border: 1px solid rgba(26, 26, 26, 0.2);
    background: linear-gradient(180deg, rgba(245, 240, 225, 0.98) 0%, rgba(232, 220, 196, 0.98) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        0 1px 3px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.action-receipt.success {
    border-left: 4px solid #2f6b3c;
}

.action-receipt.failure {
    border-left: 4px solid #8b0000;
}

.action-receipt-label {
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1.3px;
    color: #4a3728;
}

.action-receipt-title {
    font-size: 13px;
    font-weight: bold;
    color: var(--ink-blue);
}

.action-receipt-line {
    font-size: 11px;
    line-height: 1.4;
    color: #1a1a1a;
}

.crisis-why-now {
    margin: 12px 0;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 4px;
    background: rgba(10, 10, 10, 0.18);
}

.crisis-why-now p {
    margin-top: 6px;
    line-height: 1.45;
    color: #f3e8d2;
}

.crisis-tutorial-note {
    margin: 12px 0;
    padding: 10px 12px;
    border: 1px solid rgba(139, 94, 52, 0.28);
    border-radius: 4px;
    background: rgba(139, 94, 52, 0.08);
}

.crisis-tutorial-note .trigger-label {
    color: #5b3b1d;
}

.crisis-tutorial-note p {
    margin-top: 6px;
    line-height: 1.45;
    color: #2b2117;
}

.intel-item.tutorial-dossier {
    border-left: 3px solid #8b5e34;
    background: rgba(139, 94, 52, 0.08);
}

.tutorial-map-callout {
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid rgba(60, 45, 28, 0.24);
    background: linear-gradient(180deg, rgba(244, 236, 219, 0.96) 0%, rgba(231, 218, 191, 0.96) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.tutorial-map-label {
    display: block;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 1.4px;
    color: #5b3b1d;
}

.tutorial-map-line {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.45;
    color: #1f1a16;
}

.tutorial-action-brief {
    margin: 0 0 12px;
    padding: 12px 14px;
    border: 1px solid rgba(38, 53, 74, 0.18);
    background: linear-gradient(180deg, rgba(245, 241, 231, 0.98) 0%, rgba(232, 225, 209, 0.98) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.tutorial-action-brief-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.tutorial-action-brief-label,
.tutorial-action-brief-turn {
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: #2e4560;
}

.tutorial-action-brief-copy {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: #1f1a16;
}

.tutorial-action-brief-key {
    font-weight: bold;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #5b3b1d;
}

.tutorial-action-advisory {
    margin: 8px 0 10px;
    padding: 8px 10px;
    border: 1px dashed rgba(120, 86, 39, 0.28);
    background: rgba(120, 86, 39, 0.08);
}

.tutorial-action-advisory.reserve {
    border-color: rgba(120, 86, 39, 0.34);
    background: rgba(120, 86, 39, 0.1);
}

.tutorial-action-advisory-label,
.tutorial-action-advisory-copy {
    display: block;
    font-size: 11px;
    line-height: 1.45;
}

.tutorial-action-advisory-label {
    margin-bottom: 2px;
    font-weight: bold;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: #6a4621;
}

.tutorial-action-advisory-copy {
    color: #33261c;
}

.tutorial-action-lesson {
    margin-top: 10px;
    padding: 10px 12px;
    border-left: 3px solid rgba(46, 69, 96, 0.5);
    background: rgba(46, 69, 96, 0.06);
}

.tutorial-action-lesson.positive {
    border-left-color: rgba(52, 99, 63, 0.7);
    background: rgba(52, 99, 63, 0.08);
}

.tutorial-action-lesson.warning {
    border-left-color: rgba(135, 70, 52, 0.72);
    background: rgba(135, 70, 52, 0.08);
}

.tutorial-action-lesson-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

.tutorial-action-lesson-label,
.tutorial-action-lesson-tag {
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #2e4560;
}

.tutorial-action-lesson-tag {
    color: #5b3b1d;
}

.tutorial-action-lesson-copy {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: #1f1a16;
}

.tutorial-desk-note {
    margin: 8px 0 0;
    padding: 10px 12px;
    border: 1px dashed rgba(26, 58, 92, 0.28);
    background: rgba(26, 58, 92, 0.06);
    font-size: 12px;
    line-height: 1.5;
    color: #1f1a16;
}

.telegram.game-over.tutorial-dossier .debrief-section {
    margin-top: 18px;
}

/* ═══════════════════════════════════════════════════════════════
   Phase 3: Experience Layer Styles
   ═══════════════════════════════════════════════════════════════ */

/* 3.1: Advisor Rapport — crisis perspectives */
.crisis-advisor-perspectives {
    margin: 12px 0;
    padding: 10px 12px;
    border: 1px solid rgba(107, 68, 35, 0.35);
    background: rgba(245, 240, 225, 0.6);
}

.crisis-advisor-perspectives .trigger-label {
    display: block;
    font-weight: bold;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-blue, #1a3a5c);
    margin-bottom: 6px;
}

.advisor-perspective {
    margin: 6px 0;
    padding: 6px 8px;
    border-left: 3px solid rgba(107, 68, 35, 0.4);
    background: rgba(232, 220, 196, 0.4);
}

.advisor-perspective.active-advisor {
    border-left-color: var(--ink-blue, #1a3a5c);
    background: rgba(26, 58, 92, 0.08);
}

.advisor-perspective.dissenting {
    border-left-color: rgba(139, 0, 0, 0.4);
}

.perspective-name {
    font-weight: bold;
    font-size: 11px;
    color: var(--ink-black, #1a1a1a);
}

.perspective-stance {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-blue, #1a3a5c);
    margin-left: 6px;
}

.perspective-memo {
    margin: 3px 0 0;
    font-size: 12px;
    font-style: italic;
    line-height: 1.4;
    color: #1f1a16;
}

/* 3.2: Opponent crisis read */
.crisis-opponent-read {
    margin: 8px 0;
    padding: 8px 10px;
    border: 1px dashed rgba(139, 0, 0, 0.3);
    background: rgba(139, 0, 0, 0.05);
}

.crisis-opponent-read .trigger-label {
    font-weight: bold;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-red, #8b0000);
}

.crisis-opponent-read p {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: #1f1a16;
}

/* 3.1: Advisor memory in briefing */
.advisor-memory {
    border-left: 3px solid rgba(107, 68, 35, 0.4);
    padding-left: 10px;
}

.advisor-memory-positive {
    border-left-color: var(--ink-blue, #1a3a5c);
}

.advisor-memory-negative {
    border-left-color: rgba(139, 0, 0, 0.5);
}

/* 3.1.4: Intel Hub analyst desk */
.intel-analyst-desk {
    margin: 6px 0 10px;
    padding: 8px 10px;
    border: 1px solid rgba(107, 68, 35, 0.25);
    background: rgba(232, 220, 196, 0.35);
}

.intel-analyst-label {
    display: block;
    font-weight: bold;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-blue, #1a3a5c);
    margin-bottom: 4px;
}

.intel-analyst {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 2px 0;
    font-size: 11px;
}

.analyst-name {
    font-weight: bold;
    color: var(--ink-black, #1a1a1a);
    min-width: 80px;
}

.analyst-bias {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-blue, #1a3a5c);
    min-width: 55px;
}

.analyst-note {
    font-style: italic;
    color: #4a3728;
    font-size: 10px;
    line-height: 1.3;
}

/* 3.3: Tension-responsive environment */
#desk.tension-elevated {
    transition: filter 2s ease-in-out, background 2s ease-in-out;
}

#desk.tension-mobilizing {
    filter: contrast(1.03) saturate(0.95);
}

#desk.tension-ready {
    filter: contrast(1.06) saturate(0.88) brightness(0.97);
}

#desk.tension-imminent {
    filter: contrast(1.1) saturate(0.8) brightness(0.94);
    animation: tension-pulse 4s ease-in-out infinite;
}

@keyframes tension-pulse {
    0%, 100% { filter: contrast(1.1) saturate(0.8) brightness(0.94); }
    50% { filter: contrast(1.12) saturate(0.75) brightness(0.91); }
}

/* 3.3.2: Room-specific emotional registers */
#foreign-policy-view.active {
    /* War Room: commanding, heavy — darker ink, bolder weight, slight warm shadow */
    color: #111;
    font-weight: 500;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
    border-left: 3px solid var(--ink-black);
    background: linear-gradient(180deg, rgba(26, 26, 26, 0.03) 0%, transparent 40%);
}

#foreign-policy-view.active .action-card {
    border-color: var(--ink-black);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

#domestic-policy-view.active {
    /* Domestic: pressured, adversarial — warm amber cast, tighter spacing feel */
    color: #2a1a08;
    border-left: 3px solid var(--ink-red);
    background: linear-gradient(180deg, rgba(139, 0, 0, 0.03) 0%, transparent 40%);
}

#domestic-policy-view.active .action-card,
#domestic-policy-view.active .stat-bar,
#domestic-policy-view.active .report-section {
    border-color: rgba(139, 0, 0, 0.2);
}

#intel-policy-view.active {
    /* Intel: uncertain, interpretive — cooler blue-grey, lighter weight */
    color: #1a2a3a;
    font-weight: 400;
    letter-spacing: 0.01em;
    border-left: 3px solid var(--ink-blue);
    background: linear-gradient(180deg, rgba(26, 58, 92, 0.04) 0%, transparent 40%);
}

#intel-policy-view.active .action-card {
    border-color: rgba(26, 58, 92, 0.25);
    box-shadow: 0 1px 4px rgba(26, 58, 92, 0.12);
}

/* 3.3.4: Ceremonial weight — extended hold-to-confirm */
.action-card.high-impact .execute-btn {
    position: relative;
    overflow: hidden;
}

.action-card.high-impact .execute-btn::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 0;
    background: var(--ink-red, #8b0000);
    transition: width 0.8s ease-out;
}

.action-card.high-impact .execute-btn:active::after {
    width: 100%;
}

/* 3.3.1: Entry ritual styling */
.entry-ritual-overlay {
    position: fixed;
    inset: 0;
    background: #0a0a0a;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    opacity: 1;
    transition: opacity 1.5s ease-out;
}

.entry-ritual-overlay.fading {
    opacity: 0;
    pointer-events: none;
}

.ritual-text {
    font-family: 'Courier New', monospace;
    color: #8b7355;
    font-size: 14px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    animation: ritual-type 0.8s steps(20) forwards;
    opacity: 0;
}

.ritual-text.visible {
    opacity: 1;
}

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

.ritual-classification {
    color: var(--ink-red, #8b0000);
    font-size: 12px;
    letter-spacing: 0.15em;
    margin-top: 12px;
}

/* 3.4: Strategic dossier in game-over */
.debrief-strategic-dossier {
    border-top: 2px solid rgba(107, 68, 35, 0.4);
    padding-top: 14px;
}

.dossier-profile {
    font-weight: bold;
    font-size: 14px;
    color: var(--ink-blue, #1a3a5c);
    margin: 6px 0;
}

.dossier-signature-moves,
.dossier-region-focus,
.dossier-stats,
.dossier-rapport {
    font-size: 12px;
    color: #1f1a16;
    margin: 4px 0;
    line-height: 1.5;
}

.dossier-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0;
    font-size: 11px;
}

.dossier-categories span {
    padding: 2px 6px;
    background: rgba(232, 220, 196, 0.5);
    border: 1px solid rgba(107, 68, 35, 0.25);
}

/* 3.4.3: Advisor identity reaction */
.advisor-identity-reaction {
    margin: 8px 0;
    padding: 8px 10px;
    border-left: 3px solid var(--ink-blue, #1a3a5c);
    background: rgba(26, 58, 92, 0.06);
}

.advisor-reaction-label {
    display: block;
    font-weight: bold;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ink-blue, #1a3a5c);
    margin-bottom: 3px;
}

.advisor-reaction-text {
    margin: 0;
    font-size: 12px;
    font-style: italic;
    line-height: 1.4;
    color: #1f1a16;
}
