@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;600;700&family=JetBrains+Mono:wght@300;400;500&display=swap'); /* Base Styles */ body { position: relative; background: linear-gradient(to bottom, #0f172a, #020617); } /* Tactical Grid Background */ body::before { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(rgba(51, 65, 85, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(51, 65, 85, 0.05) 1px, transparent 1px); background-size: 40px 40px; mask-image: radial-gradient(circle at center, transparent 40%, black 80%); pointer-events: none; z-index: 1; } /* Frosted Glass Vignette */ .noise-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.1) 0%, transparent 20%), radial-gradient(circle at 0% 50%, rgba(255, 255, 255, 0.05) 0%, transparent 40%), radial-gradient(circle at 100% 50%, rgba(255, 255, 255, 0.05) 0%, transparent 40%), radial-gradient(circle at 50% 100%, rgba(255, 255, 255, 0.1) 0%, transparent 20%); pointer-events: none; z-index: 50; } /* Scanlines */ .scanlines { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient( to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.006) 50%, rgba(255,255,255,0) 100% ); background-size: 100% 3px; pointer-events: none; z-index: 51; } /* Snow Effect */ .snow-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 40; } .snowflake { position: absolute; background-color: #4a5568; border-radius: 50%; opacity: 0.3; animation: fall linear infinite; } @keyframes fall { to { transform: translateY(100vh); } } /* Terminal Card Styles */ .terminal-card { background: rgba(10, 12, 16, 0.8); border: 1px solid #4a5568; border-image: linear-gradient(45deg, transparent, #4a5568, transparent) 1; position: relative; backdrop-filter: blur(10px); } .terminal-card::before { content: ''; position: absolute; top: 2px; left: 2px; right: 2px; bottom: 2px; border: 1px solid rgba(255, 159, 28, 0.1); pointer-events: none; } .card-header { border-bottom: 1px solid #4a5568; padding: 1rem; display: flex; align-items: center; gap: 0.5rem; background: linear-gradient(90deg, rgba(255,159,28,0.05) 0%, transparent 100%); } .card-header h3 { font-size: 0.875rem; letter-spacing: 0.1em; } .card-content { padding: 1rem; } .status-line { display: flex; justify-content: space-between; margin-bottom: 0.5rem; font-size: 0.75rem; } .label { color: #4a5568; } .value { font-weight: 500; } /* Technical Border Effects */ .tech-border { position: relative; border: 1px solid #4a5568; } .tech-border::before, .tech-border::after { content: ''; position: absolute; width: 8px; height: 8px; background: #0a0c10; } .tech-border::before { top: -1px; left: -1px; border-right: 1px solid #ff9f1c; border-bottom: 1px solid #ff9f1c; } .tech-border::after { bottom: -1px; right: -1px; border-left: 1px solid #ff9f1c; border-top: 1px solid #ff9f1c; } /* Pulse Animation for Online Status */ @keyframes pulse-amber { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .pulse-online { animation: pulse-amber 2s infinite; color: #ff9f1c; } /* Mobile Responsive */ @media (max-width: 768px) { .container { flex-direction: column; } .sidebar { width: 100%; height: auto; border-right: none; border-bottom: 2px solid #4a5568; } .terminal-card { margin-bottom: 1rem; } } /* Terminal Input Style */ .terminal-input { background: transparent; border: none; border-bottom: 1px solid #4a5568; color: #ff9f1c; font-family: 'JetBrains Mono', monospace; padding: 0.5rem 0; width: 100%; } .terminal-input:focus { outline: none; border-bottom-color: #ff9f1c; } /* Form Elements */ .form-checkbox { appearance: none; border: 1px solid #4a5568; background: transparent; width: 1rem; height: 1rem; border-radius: 2px; } .form-checkbox:checked { background: #ff9f1c; border-color: #ff9f1c; } .form-checkbox:checked::before { content: '✓'; color: #0a0c10; font-size: 0.75rem; display: flex; align-items: center; justify-content: center; } .input-group { margin-bottom: 1rem; } .input-group label { display: block; margin-bottom: 0.5rem; } /* Loading Animation */ @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } /* Fuel Gauge Style */ .fuel-gauge { display: flex; gap: 2px; margin: 0.5rem 0; } .gauge-segment { height: 4px; flex: 1; background: #4a5568; } .gauge-segment.active { background: #ff9f1c; } .gauge-segment.warning { background: #dc2626; }