* { margin:0; padding:0; box-sizing:border-box; }
html, body, #root { width:100%; height:100%; overflow:hidden; background:#050505; color:rgba(255,255,255,0.9); }
body { font-family:'Inter',system-ui,sans-serif; }

:root {
  --bg:#050505; --panel1:#090909; --panel2:#0d0d0d;
  --border:rgba(255,248,140,0.08); --accent:#fff88c; --accent2:#d9ff95;
  --danger:#ff5959; --warning:#ffb84d; --success:#57ff9a; --info:#63c9ff;
  --text1:rgba(255,255,255,0.9); --text2:rgba(255,255,255,0.5); --text3:rgba(255,255,255,0.25);
  --mono:'JetBrains Mono','Fira Code','SF Mono',monospace;
  --sans:'Inter',system-ui,sans-serif;
}

/* Scanlines */
.scanlines::after {
  content:''; position:fixed; top:0; left:0; width:100%; height:100%;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.03) 2px,rgba(0,0,0,0.03) 4px);
  pointer-events:none; z-index:9999;
}

/* Tactical corner brackets */
.tac-panel { position:relative; border:1px solid var(--border); background:var(--panel1); }
.tac-panel::before, .tac-panel::after { content:''; position:absolute; width:8px; height:8px; pointer-events:none; }
.tac-panel::before { top:-1px; left:-1px; border-top:2px solid var(--accent); border-left:2px solid var(--accent); }
.tac-panel::after { top:-1px; right:-1px; border-top:2px solid var(--accent); border-right:2px solid var(--accent); }
.tac-panel .corner-bl, .tac-panel .corner-br { position:absolute; width:8px; height:8px; pointer-events:none; }
.tac-panel .corner-bl { bottom:-1px; left:-1px; border-bottom:2px solid var(--accent); border-left:2px solid var(--accent); }
.tac-panel .corner-br { bottom:-1px; right:-1px; border-bottom:2px solid var(--accent); border-right:2px solid var(--accent); }

/* Scrollbar */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:#090909; }
::-webkit-scrollbar-thumb { background:rgba(255,248,140,0.15); }
::-webkit-scrollbar-thumb:hover { background:rgba(255,248,140,0.3); }

/* Pulse animation */
@keyframes pulse { 0%,100%{opacity:0.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.05)} }
@keyframes radarSweep { 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} }
@keyframes fadeSlideIn { 0%{opacity:0;transform:translateY(8px)} 100%{opacity:1;transform:translateY(0)} }
@keyframes typewriter { from{width:0} to{width:100%} }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes dashMove { to { stroke-dashoffset: -20; } }
@keyframes expandRing { 0%{transform:scale(0.5);opacity:0.6} 100%{transform:scale(2.5);opacity:0} }
@keyframes bootFade { 0%{opacity:1} 80%{opacity:1} 100%{opacity:0} }
@keyframes stagger { 0%{opacity:0;transform:translateY(10px)} 100%{opacity:1;transform:translateY(0)} }
@keyframes glowPulse { 0%,100%{box-shadow:0 0 5px rgba(255,248,140,0.1)} 50%{box-shadow:0 0 20px rgba(255,248,140,0.2)} }
@keyframes dataFlash { 0%{color:var(--accent)} 100%{color:var(--text1)} }
@keyframes threatPulse { 0%,100%{opacity:0.7;box-shadow:0 0 5px rgba(255,89,89,0.3)} 50%{opacity:1;box-shadow:0 0 15px rgba(255,89,89,0.6)} }

.pulse-dot { animation: pulse 2s ease-in-out infinite; }
.threat-pulse { animation: threatPulse 1.5s ease-in-out infinite; }
.glow-hover:hover { box-shadow:0 0 15px rgba(255,248,140,0.1); filter:brightness(1.1); }
.data-flash { animation: dataFlash 0.5s ease-out; }

/* Boot screen */
.boot-screen {
  position:fixed; top:0; left:0; width:100%; height:100%;
  background:#050505; display:flex; flex-direction:column;
  align-items:center; justify-content:center; z-index:10000;
  animation: bootFade 3s ease forwards;
}
.boot-screen.hidden { display:none; }

.tab-active { color:var(--accent)!important; border-bottom:2px solid var(--accent); }

input[type="text"], input[type="search"], textarea {
  background:var(--panel1); border:1px solid var(--border); color:var(--text1);
  font-family:var(--mono); font-size:11px; padding:4px 8px; outline:none;
}
input[type="text"]:focus, input[type="search"]:focus, textarea:focus {
  border-color:rgba(255,248,140,0.3); box-shadow:0 0 10px rgba(255,248,140,0.1);
}

button { cursor:pointer; border:none; background:none; color:var(--text1); font-family:var(--sans); }

.status-badge {
  display:inline-block; padding:1px 6px; font-size:9px; letter-spacing:0.1em;
  text-transform:uppercase; font-family:var(--mono); font-weight:600;
}