/* Fallout: New Vegas Terminal Theme */
:root {
    --fnv-bg-color: #0a0a0a;
    --fnv-text-color: #ffb000;
    --fnv-prompt-color: #ffb000;
    --fnv-error-color: #ff4040;
    --fnv-dir-color: #ffd700;
    --fnv-exec-color: #ff8c00;
    --fnv-border-color: #664400;
    --fnv-header-bg: #1a1100;
    --fnv-glow: #ffb000;
}

/* Apply FNV theme when enabled */
body[data-theme="fnv"] {
    background-color: var(--fnv-bg-color);
    color: var(--fnv-text-color);
    text-shadow: 0 0 2px var(--fnv-glow);
}

body[data-theme="fnv"] .terminal {
    background-color: var(--fnv-bg-color);
    color: var(--fnv-text-color);
    border-radius: 8px;
    position: relative;
    overflow: hidden;
}

/* CRT Monitor effect */
body[data-theme="fnv"] .terminal::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        transparent 50%, 
        rgba(255, 176, 0, 0.03) 50%
    );
    background-size: 100% 4px;
    pointer-events: none;
    z-index: 1;
    animation: scanlines 0.1s linear infinite;
}

@keyframes scanlines {
    0% { background-position: 0 0; }
    100% { background-position: 0 4px; }
}

/* Subtle screen curvature */
body[data-theme="fnv"] .terminal-content {
    background: radial-gradient(
        ellipse at center,
        var(--fnv-bg-color) 0%,
        #080800 100%
    );
}

body[data-theme="fnv"] .terminal-header {
    background-color: var(--fnv-header-bg);
    color: var(--fnv-text-color);
    border-bottom-color: var(--fnv-border-color);
    text-shadow: 0 0 4px var(--fnv-glow);
}

body[data-theme="fnv"] .terminal-title {
    font-family: 'Courier New', monospace;
    font-weight: bold;
    letter-spacing: 1px;
}

body[data-theme="fnv"] .prompt {
    color: var(--fnv-prompt-color);
    text-shadow: 0 0 4px var(--fnv-glow);
    font-weight: bold;
}

body[data-theme="fnv"] .cursor {
    color: var(--fnv-text-color);
    background-color: var(--fnv-text-color);
    box-shadow: 0 0 8px var(--fnv-glow);
}

body[data-theme="fnv"] .terminal-input {
    color: var(--fnv-text-color);
    text-shadow: 0 0 2px var(--fnv-glow);
}

/* FNV-specific color overrides */
body[data-theme="fnv"] .text-green { 
    color: #90ee90; 
    text-shadow: 0 0 4px #90ee90;
}

body[data-theme="fnv"] .text-blue { 
    color: #87ceeb; 
    text-shadow: 0 0 4px #87ceeb;
}

body[data-theme="fnv"] .text-red { 
    color: var(--fnv-error-color); 
    text-shadow: 0 0 4px var(--fnv-error-color);
}

body[data-theme="fnv"] .text-yellow { 
    color: #ffd700; 
    text-shadow: 0 0 4px #ffd700;
}

body[data-theme="fnv"] .text-cyan { 
    color: #00ffff; 
    text-shadow: 0 0 4px #00ffff;
}

body[data-theme="fnv"] .text-magenta { 
    color: #ff69b4; 
    text-shadow: 0 0 4px #ff69b4;
}

body[data-theme="fnv"] .text-white { 
    color: var(--fnv-text-color); 
    text-shadow: 0 0 2px var(--fnv-glow);
}

body[data-theme="fnv"] .text-gray { 
    color: #a0a0a0; 
    text-shadow: 0 0 2px #a0a0a0;
}

body[data-theme="fnv"] .file-dir { 
    color: var(--fnv-dir-color); 
    font-weight: bold; 
    text-shadow: 0 0 4px var(--fnv-dir-color);
}

body[data-theme="fnv"] .file-exec { 
    color: var(--fnv-exec-color); 
    font-weight: bold; 
    text-shadow: 0 0 4px var(--fnv-exec-color);
}

body[data-theme="fnv"] .file-link { 
    color: #ff8c69; 
    text-shadow: 0 0 4px #ff8c69;
}

/* FZF styling for FNV theme */
body[data-theme="fnv"] .fzf-interface {
    background-color: var(--fnv-bg-color);
    border-color: var(--fnv-border-color);
    color: var(--fnv-text-color);
    box-shadow: 0 0 20px rgba(255, 176, 0, 0.3);
    border-radius: 4px;
}

body[data-theme="fnv"] .fzf-header {
    background-color: var(--fnv-header-bg);
    border-bottom-color: var(--fnv-border-color);
    text-shadow: 0 0 2px var(--fnv-glow);
}

body[data-theme="fnv"] .fzf-input {
    color: var(--fnv-text-color);
    text-shadow: 0 0 2px var(--fnv-glow);
}

body[data-theme="fnv"] .fzf-item:hover {
    background-color: var(--fnv-header-bg);
    text-shadow: 0 0 4px var(--fnv-glow);
}

body[data-theme="fnv"] .fzf-item.selected {
    background-color: #332200;
    color: var(--fnv-text-color);
    text-shadow: 0 0 6px var(--fnv-glow);
    box-shadow: inset 0 0 10px rgba(255, 176, 0, 0.2);
}

body[data-theme="fnv"] .fzf-info {
    background-color: var(--fnv-header-bg);
    border-top-color: var(--fnv-border-color);
    color: var(--fnv-text-color);
    text-shadow: 0 0 2px var(--fnv-glow);
}

/* Error styling for FNV */
body[data-theme="fnv"] .error {
    color: var(--fnv-error-color);
    text-shadow: 0 0 6px var(--fnv-error-color);
}

/* Selection styling for FNV */
body[data-theme="fnv"] ::selection {
    background-color: rgba(255, 176, 0, 0.3);
    color: var(--fnv-text-color);
}

body[data-theme="fnv"] ::-moz-selection {
    background-color: rgba(255, 176, 0, 0.3);
    color: var(--fnv-text-color);
}

/* Scrollbar styling for FNV theme */
body[data-theme="fnv"] .terminal-content::-webkit-scrollbar,
body[data-theme="fnv"] .fzf-results::-webkit-scrollbar {
    width: 8px;
}

body[data-theme="fnv"] .terminal-content::-webkit-scrollbar-track,
body[data-theme="fnv"] .fzf-results::-webkit-scrollbar-track {
    background: var(--fnv-bg-color);
}

body[data-theme="fnv"] .terminal-content::-webkit-scrollbar-thumb,
body[data-theme="fnv"] .fzf-results::-webkit-scrollbar-thumb {
    background: var(--fnv-border-color);
    border-radius: 4px;
    box-shadow: 0 0 4px var(--fnv-glow);
}

body[data-theme="fnv"] .terminal-content::-webkit-scrollbar-thumb:hover,
body[data-theme="fnv"] .fzf-results::-webkit-scrollbar-thumb:hover {
    background: #996600;
    box-shadow: 0 0 8px var(--fnv-glow);
}

/* Boot sequence styling for FNV */
body[data-theme="fnv"] .boot-sequence {
    font-family: 'Courier New', monospace;
    font-weight: bold;
    text-shadow: 0 0 4px var(--fnv-glow);
}

/* Typewriter effect for special outputs */
body[data-theme="fnv"] .typewriter {
    animation: typewriter 2s steps(40, end);
    text-shadow: 0 0 6px var(--fnv-glow);
}

@keyframes typewriter {
    from { width: 0; }
    to { width: 100%; }
}

/* Disable effects for reduced motion */
@media (prefers-reduced-motion: reduce) {
    body[data-theme="fnv"] .terminal::before {
        animation: none;
        background: none;
    }
    
    body[data-theme="fnv"] .typewriter {
        animation: none;
    }
    
    body[data-theme="fnv"] * {
        text-shadow: none !important;
        box-shadow: none !important;
    }
}
