@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;600;700&family=Inter:wght@300;400;600&display=swap');

:root {
  --accent: #00ffcc;
  --accent-dim: rgba(0, 255, 204, 0.3);
  --alert: #ff3344;
  --alert-dim: rgba(255, 50, 60, 0.25);
  --plastic: #ffaa00;
  --bg-panel: rgba(0, 18, 32, 0.85);
  --border-glow: 0 0 8px rgba(0, 255, 204, 0.4);
  --font-mono: 'Share Tech Mono', monospace;
  --font-display: 'Orbitron', sans-serif;
}

* { margin:0; padding:0; box-sizing:border-box; }
body { width:100vw; height:100vh; overflow:hidden; background:#000; font-family:'Inter',sans-serif; }

/* ─── Canvas ─── */
#sim-canvas { position:absolute; inset:0; z-index:1; }

/* ─── Overlays ─── */
.overlay-scanlines {
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 2px,
    rgba(0,0,0,0.03) 2px,
    rgba(0,0,0,0.03) 4px
  );
}
.overlay-vignette {
  position:absolute; inset:0; z-index:3; pointer-events:none;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,0.6) 100%);
}

/* ─── Loading Screen ─── */
#loading-screen {
  position:absolute; inset:0; background: #001018;
  z-index:200; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  color: var(--accent); font-family: var(--font-display);
  transition: opacity 1s ease;
}
#loading-screen h1 { font-size: 1.8rem; letter-spacing: 6px; margin-bottom: 10px; }
.loader-sub { font-family: var(--font-mono); font-size: 0.9rem; color: #88bbcc; margin-bottom: 25px; }
.loader-ring {
  width:80px; height:80px;
  border:3px solid rgba(0,255,204,0.15);
  border-top-color: var(--accent);
  border-radius:50%;
  animation: spin 1s infinite linear;
  margin-bottom:20px;
}
.loader-bar { width:260px; height:3px; background:rgba(0,255,204,0.15); border-radius:3px; overflow:hidden; }
.loader-fill { width:0%; height:100%; background:var(--accent); animation: loadFill 2s ease forwards; }
@keyframes spin { 100% { transform:rotate(360deg); } }
@keyframes loadFill { 100% { width:100%; } }

/* ─── HUD ─── */
#hud { position:absolute; inset:0; z-index:10; pointer-events:none; }

/* ─── Center Crosshair ─── */
.crosshair.center {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:60px; height:60px;
}
.cross-ring {
  position:absolute; inset:0;
  border:2px solid rgba(0,255,204,0.25);
  border-radius:50%;
  animation: ringPulse 3s infinite ease-in-out;
}
.cross-h {
  position:absolute; top:50%; left:-15px;
  width:90px; height:1px;
  background: linear-gradient(90deg, transparent, var(--accent-dim), transparent);
}
.cross-v {
  position:absolute; left:50%; top:-15px;
  height:90px; width:1px;
  background: linear-gradient(180deg, transparent, var(--accent-dim), transparent);
}
@keyframes ringPulse { 0%,100%{opacity:0.3; transform:scale(1);} 50%{opacity:0.7; transform:scale(1.15);} }

/* ─── Corner Reticles ─── */
.reticle { position:absolute; width:40px; height:40px; border:2px solid var(--accent); opacity:0.5; }
.top-left { top:30px; left:30px; border-bottom:none; border-right:none; }
.top-right { top:30px; right:30px; border-bottom:none; border-left:none; }
.bottom-left { bottom:90px; left:30px; border-top:none; border-right:none; }
.bottom-right { bottom:90px; right:30px; border-top:none; border-left:none; }

/* ─── Top Telemetry Bar ─── */
#hud-top {
  position:absolute; top:0; left:0; right:0; height:46px;
  background: linear-gradient(180deg, var(--bg-panel), rgba(0,18,32,0.5));
  border-bottom: 1px solid var(--accent-dim);
  display:flex; padding:0 25px; align-items:center; gap:28px;
  font-family:var(--font-mono); font-size:1rem;
  box-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
.data-block { display:flex; align-items:center; gap:6px; }
.data-block .label { color:#6899aa; font-size:0.85rem; }
.data-block .val { color:#ddeeff; font-weight:400; }
.data-block .val.ok { color:var(--accent); }
.data-block .val.alert { color:var(--alert); animation: flash 0.7s infinite; }
.data-block.alert { background:rgba(255,50,60,0.08); padding:4px 10px; border-radius:4px; border:1px solid rgba(255,50,60,0.5); }
@keyframes flash { 50% { opacity:0.15; } }

/* ─── Target Tracking Box ─── */
#target-box {
  position:absolute; pointer-events:none;
  border:2px solid var(--accent);
  transition: left 0.08s linear, top 0.08s linear, width 0.08s, height 0.08s;
  box-shadow: 0 0 15px rgba(0,255,204,0.15);
}
.tb-corner { position:absolute; width:12px; height:12px; border:2px solid var(--accent); }
.tb-corner.tl { top:-4px; left:-4px; border-bottom:none; border-right:none; }
.tb-corner.tr { top:-4px; right:-4px; border-bottom:none; border-left:none; }
.tb-corner.bl { bottom:-4px; left:-4px; border-top:none; border-right:none; }
.tb-corner.br { bottom:-4px; right:-4px; border-top:none; border-left:none; }

#target-info {
  position:absolute; bottom:calc(100% + 6px); left:-2px;
  background: var(--bg-panel);
  border:1px solid var(--accent);
  color: var(--accent);
  padding:6px 14px;
  font-family:var(--font-mono); font-size:0.85rem;
  text-transform:uppercase; white-space:nowrap;
  border-radius:3px;
  box-shadow: var(--border-glow);
  backdrop-filter: blur(6px);
}
#target-info span { display:block; line-height:1.4; }
#tgt-data { color:#88bbcc; font-size:0.78rem; }

/* Illegal variant */
#target-box.illegal {
  border-color:var(--alert);
  box-shadow: 0 0 20px var(--alert-dim);
  background: rgba(255,0,0,0.06);
  animation: alertFlash 1s infinite;
}
#target-box.illegal .tb-corner { border-color:var(--alert); }
#target-box.illegal #target-info { border-color:var(--alert); color:var(--alert); background:rgba(60,0,0,0.9); }
#target-box.illegal #tgt-data { color:#ffaaaa; }

/* Plastic variant */
#target-box.plastic { border-color:var(--plastic); box-shadow:0 0 15px rgba(255,170,0,0.2); }
#target-box.plastic .tb-corner { border-color:var(--plastic); }
#target-box.plastic #target-info { border-color:var(--plastic); color:var(--plastic); }
#target-box.plastic #tgt-data { color:#ccaa66; }

@keyframes alertFlash { 0%,100%{border-color:var(--alert);} 50%{border-color:transparent;} }

/* ─── Side Panel ─── */
#side-panel {
  position:absolute; top:60px; right:16px; width:310px;
  background: var(--bg-panel);
  border:1px solid var(--accent-dim);
  padding:14px 16px; color:#fff;
  border-radius:10px;
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 30px rgba(0,0,0,0.5);
}
#side-panel h2 {
  font-family:var(--font-display); font-size:0.9rem;
  color:var(--accent); letter-spacing:2px;
  border-bottom:1px solid rgba(0,255,204,0.25);
  padding-bottom:10px; margin-bottom:12px;
}
#log-panel {
  font-family:var(--font-mono); font-size:0.82rem;
  display:flex; flex-direction:column; gap:6px;
  max-height:280px; overflow-y:auto;
}
#log-panel::-webkit-scrollbar { width:3px; }
#log-panel::-webkit-scrollbar-track { background:transparent; }
#log-panel::-webkit-scrollbar-thumb { background:var(--accent-dim); border-radius:3px; }

.log-line {
  color:#88bbaa; padding:4px 8px;
  border-left:2px solid var(--accent-dim);
  background: rgba(0,255,204,0.03);
  border-radius:0 4px 4px 0;
  transition: all 0.3s;
}
.log-line.alert {
  color:var(--alert); border-left-color:var(--alert);
  background:rgba(255,50,60,0.08);
  font-weight:600;
}
.log-line.plastic {
  color:var(--plastic); border-left-color:var(--plastic);
  background:rgba(255,170,0,0.05);
}
.log-line.bio {
  color:#00ff88; border-left-color:#00ff88;
  background:rgba(0,255,136,0.04);
}

/* ─── Minimap ─── */
#minimap {
  position:absolute; bottom:90px; left:16px;
  width:186px; height:186px;
  background:var(--bg-panel);
  border: 1px solid var(--accent-dim);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 4px 30px rgba(0,0,0,0.5);
  backdrop-filter: blur(12px);
}
#minimap-canvas { width:100%; height:100%; }

/* ─── Controls ─── */
#controls-panel {
  position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
  display:flex; gap:10px; pointer-events:auto;
}
.btn {
  background: var(--bg-panel);
  border:1px solid var(--accent-dim);
  color:var(--accent);
  padding:10px 20px;
  font-family:var(--font-mono);
  font-size:0.9rem; cursor:pointer;
  text-transform:uppercase;
  border-radius:6px;
  transition:all 0.25s cubic-bezier(0.4,0,0.2,1);
  backdrop-filter:blur(6px);
  letter-spacing:1px;
}
.btn:hover {
  background:rgba(0,255,204,0.12);
  border-color:var(--accent);
  box-shadow: var(--border-glow);
  transform:translateY(-1px);
}
.btn.active {
  background: var(--accent);
  color: #001122;
  box-shadow: 0 0 25px rgba(0,255,204,0.5);
  font-weight:600;
}

/* ─── Responsive ─── */
@media (max-width:900px) {
  #side-panel { width:220px; font-size:0.75rem; }
  .btn { padding:8px 12px; font-size:0.75rem; }
  #minimap { width:140px; height:140px; }
}
