@import url('https://fonts.googleapis.com/css2?family=VT323&display=swap');

:root {
    --term-green: #33cc33; 
    --term-dark: #000a00;
    --term-amber: #ffb000;
    --term-blue: #33aaff;
    --map-land: #2b552b; 
    --map-water: #000500;
    --ui-font: 'VT323', monospace;
    --ascii-font: 'Courier New', Courier, monospace;
}

* { box-sizing: border-box; }

body {
    background-color: var(--term-dark);
    color: var(--term-green);
    font-family: var(--ui-font);
    font-size: 18px; 
    display: flex;
    flex-direction: row;
    margin: 0; 
    padding: 0; 
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    align-items: flex-start;
    text-shadow: 0 0 2px rgba(51, 204, 51, 0.6);
}

#map-wrapper {
    flex: 2; 
    position: sticky; 
    top: 0;           
    height: 100dvh;   
    border-right: 2px solid var(--term-green); 
    background-color: var(--map-water);
    display: flex;
    flex-direction: column;
    z-index: 10;
    box-shadow: 2px 0 6px rgba(51, 204, 51, 0.2);
    overflow: hidden; 
}

/* CRT Scanline Effect */
.scanlines {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    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% 4px, 3px 100%;
    z-index: 999;
    pointer-events: none;
}

/* The Animated Sweeping Line */
.scanlines::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 8px;
    background: rgba(51, 204, 51, 0.3);
    box-shadow: 0 0 15px rgba(51, 204, 51, 0.5), 0 0 30px rgba(51, 204, 51, 0.2);
    opacity: 0.6;
    animation: crt-sweep 6s linear infinite;
}

@keyframes crt-sweep {
    0% { transform: translateY(-100px); }
    100% { transform: translateY(110vh); }
}

#map-container { flex: 1; position: relative; overflow: auto; z-index: 1; }

#ascii-map {
    font-family: var(--ascii-font); 
    font-size: 14px; 
    line-height: 16px; 
    color: var(--map-land); 
    white-space: pre; 
    padding: 40px;
    position: relative;
    display: inline-block;
    text-shadow: 0 0 1px rgba(43, 85, 43, 0.5); 
}

#setup-screen {
    position: absolute; 
    bottom: 20px; 
    left: 50%; 
    transform: translateX(-50%);
    background: rgba(0, 10, 0, 0.95); 
    border: 1px solid var(--term-green); 
    padding: 12px;
    z-index: 1000; 
    text-align: center; 
    width: 85%; 
    max-width: 400px; 
    box-shadow: 0 0 15px rgba(51, 204, 51, 0.3), inset 0 0 8px rgba(51, 204, 51, 0.1); 
}

#setup-title { 
    font-size: 24px; 
    margin: 0 0 8px 0; 
    color: var(--term-green);
    text-transform: uppercase;
}

#country-preview-info { 
    font-size: 16px; 
    color: var(--term-blue); 
    margin-bottom: 10px; 
    min-height: 30px; 
    line-height: 1.1;
    border-bottom: 1px solid rgba(51, 170, 255, 0.3);
    padding-bottom: 8px;
    text-shadow: 0 0 2px rgba(51, 170, 255, 0.6);
}

#country-preview-info br { display: none; }

#btn-confirm-country {
    width: 100%; 
    border: 1px solid var(--term-blue); 
    color: var(--term-blue);
    background: transparent; 
    padding: 10px; 
    cursor: pointer; 
    text-transform: uppercase;
    font-family: var(--ui-font);
    font-size: 18px;
    transition: background 0.2s;
    box-shadow: 0 0 4px rgba(51, 170, 255, 0.4), inset 0 0 4px rgba(51, 170, 255, 0.1);
    text-shadow: 0 0 2px rgba(51, 170, 255, 0.6);
}

#btn-confirm-country:hover {
    background: rgba(51, 170, 255, 0.1);
}

#ui-panel { 
    flex: 1; 
    display: flex; 
    flex-direction: column; 
    padding: 15px; 
    background: #000; 
    min-width: 320px; 
    position: relative; 
}

#protocol-header { position: relative; width: 100%; margin-bottom: 10px; }
#help-toggle { 
    color: var(--term-blue); 
    cursor: pointer; 
    text-decoration: underline; 
    font-size: 16px; 
    text-shadow: 0 0 2px rgba(51, 170, 255, 0.6);
}

#help-content { 
    display: none; 
    position: absolute;
    top: 25px;
    left: 0;
    width: 100%;
    background: #001100;
    border: 1px solid var(--term-blue); 
    padding: 10px; 
    z-index: 200; 
    font-size: 16px;
    box-shadow: 0px 5px 15px rgba(0,0,0,0.9), 0 0 6px rgba(51, 170, 255, 0.3);
}

#help-content.show { display: block !important; }

.stats-box { 
    width: 100%; 
    margin-bottom: 10px; 
    border: 1px solid var(--term-green); 
    padding: 8px; 
    font-size: 16px; 
    box-shadow: 0 0 4px rgba(51, 204, 51, 0.3), inset 0 0 4px rgba(51, 204, 51, 0.1);
}

.stats-box[style*="var(--term-amber)"] {
    box-shadow: 0 0 4px rgba(255, 176, 0, 0.4), inset 0 0 4px rgba(255, 176, 0, 0.1) !important;
}
.stats-box[style*="var(--term-amber)"] h3 {
    text-shadow: 0 0 2px rgba(255, 176, 0, 0.6);
}

.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }

#target-bonus-display { 
    font-size: 14px; 
    color: var(--term-blue); 
    margin-top: 5px; 
    border-top: 1px solid rgba(255, 176, 0, 0.3); 
    padding-top: 5px; 
    text-shadow: 0 0 2px rgba(51, 170, 255, 0.6);
}

#controls { width: 100%; display: flex; flex-direction: column; gap: 5px; }
.button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }

button { 
    background: #000; 
    color: var(--term-green); 
    border: 1px solid var(--term-green); 
    padding: 10px 5px; 
    cursor: pointer; 
    text-transform: uppercase; 
    font-family: var(--ui-font); 
    font-size: 16px; 
    transition: all 0.1s;
    box-shadow: 0 0 4px rgba(51, 204, 51, 0.3);
}
button:disabled { 
    border-color: #333; 
    color: #333; 
    cursor: not-allowed; 
    box-shadow: none;
    text-shadow: none;
}
button:active:not(:disabled) { transform: scale(0.98); }

#btn-attack, #btn-attack-high { 
    border-color: var(--term-amber); 
    color: var(--term-amber); 
    font-weight: bold; 
    box-shadow: 0 0 4px rgba(255, 176, 0, 0.4);
    text-shadow: 0 0 2px rgba(255, 176, 0, 0.6);
}
#btn-attack:hover:not(:disabled), #btn-attack-high:hover:not(:disabled) { 
    background-color: var(--term-amber); 
    color: #000; 
    text-shadow: none;
}

#log-container { 
    width: 100%; 
    min-height: 200px; 
    border: 1px solid var(--term-green); 
    margin-top: 10px; 
    padding: 8px; 
    overflow-y: auto; 
    font-size: 16px; 
    flex-grow: 1; 
    box-shadow: 0 0 4px rgba(51, 204, 51, 0.3), inset 0 0 4px rgba(51, 204, 51, 0.1);
}

.log-entry { margin-bottom: 4px; border-bottom: 1px solid rgba(51, 204, 51, 0.2); padding-bottom: 2px; } 
.log-warn { color: var(--term-amber) !important; font-weight: bold; text-shadow: 0 0 3px rgba(255, 176, 0, 0.6) !important; }
.log-info { color: var(--term-blue) !important; text-shadow: 0 0 2px rgba(51, 170, 255, 0.6); }

.nation-marker { 
    position: absolute; 
    font-family: var(--ui-font); 
    font-size: 16px; 
    font-weight: normal; 
    color: var(--term-green); 
    background: rgba(0, 5, 0, 0.9); 
    border: 1px solid var(--term-green); 
    padding: 2px 4px; 
    cursor: pointer; 
    white-space: nowrap; 
    z-index: 20; 
    box-shadow: 0 0 4px rgba(51, 204, 51, 0.4);
}
.nation-marker.player { 
    border-color: var(--term-blue); 
    color: var(--term-blue); 
    z-index: 25; 
    box-shadow: 0 0 5px rgba(51, 170, 255, 0.5);
    text-shadow: 0 0 2px rgba(51, 170, 255, 0.6);
}
.nation-marker.target { 
    border-color: var(--term-amber); 
    color: var(--term-amber); 
    z-index: 24; 
    box-shadow: 0 0 5px rgba(255, 176, 0, 0.5);
    text-shadow: 0 0 2px rgba(255, 176, 0, 0.6);
}
.nation-marker.dead { 
    border-color: #888; 
    color: #999; 
    text-decoration: line-through; 
    opacity: 0.8; 
    pointer-events: none;
    box-shadow: none;
    text-shadow: none;
}

.missile { position: absolute; width: 6px; height: 6px; background-color: var(--term-amber); border-radius: 50%; z-index: 100; transition: all 0.6s cubic-bezier(0.25, 0.1, 0.25, 1.0); transform: translate(-50%, -50%); pointer-events: none; box-shadow: 0 0 10px var(--term-amber); }

@keyframes blink-amber { 0% { background-color: var(--term-amber); box-shadow: 0 0 15px var(--term-amber); } 50% { background-color: #fff; box-shadow: 0 0 25px #fff; } 100% { background-color: var(--term-amber); box-shadow: 0 0 15px var(--term-amber); } }
@keyframes blink-blue { 0% { background-color: var(--term-blue); box-shadow: 0 0 15px var(--term-blue); } 50% { background-color: #fff; box-shadow: 0 0 25px #fff; } 100% { background-color: var(--term-blue); box-shadow: 0 0 15px var(--term-blue); } }

.impact-flash { animation: blink-amber 0.2s ease-in-out 2; color: #fff !important; text-shadow: none; }
.intercept-flash { animation: blink-blue 0.2s ease-in-out 2; border-color: var(--term-blue) !important; color: #fff !important; text-shadow: none; }

/* Game Over Overlay Styles */
#game-over-overlay {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(0, 10, 0, 0.92);
    z-index: 10000; 
    display: none; 
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.overlay-content {
    background: #000;
    border: 2px solid var(--term-green);
    padding: 40px;
    text-align: center;
    box-shadow: 0 0 20px rgba(51, 204, 51, 0.3), inset 0 0 10px rgba(51, 204, 51, 0.1);
    max-width: 90%;
}

#game-over-title {
    font-size: 32px;
    margin: 0 0 20px 0;
    text-transform: uppercase;
}

#game-over-title.win {
    color: var(--term-blue);
    text-shadow: 0 0 5px rgba(51, 170, 255, 0.6);
}

#game-over-title.lose {
    color: var(--term-amber);
    text-shadow: 0 0 5px rgba(255, 176, 0, 0.6);
}

#btn-play-again {
    font-size: 20px;
    padding: 15px 30px;
    margin-top: 15px;
    border-color: var(--term-green);
    color: var(--term-green);
    box-shadow: 0 0 8px rgba(51, 204, 51, 0.4);
}
#btn-play-again:hover {
    background: rgba(51, 204, 51, 0.2);
}

@media (max-width: 800px) { 
    body { flex-direction: column; overflow-y: auto; align-items: stretch; } 
    #map-wrapper { 
        position: sticky; 
        top: 0; 
        height: 50vh; 
        min-height: 50vh; 
        width: 100%; 
        border-right: none; 
        border-bottom: 2px solid var(--term-green); 
        z-index: 50; 
        box-shadow: 0 2px 6px rgba(51, 204, 51, 0.2);
    } 
    #ui-panel { width: 100%; min-width: 0; padding: 10px; padding-bottom: 40px; }
    #setup-screen { bottom: 5px; width: 95%; padding: 8px; }
}