:root{
  --bg: #06070b;
  --bg2: #0b0f19;
  --fg: #e8eefc;
  --muted: #a5b0c6;
  --accent: #67f3d2;
  --danger: #ff4b6b;
  --glass: rgba(255,255,255,0.06);
  --glass2: rgba(255,255,255,0.10);
  --shadow: rgba(0,0,0,0.55);
  --radius: 18px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  background: radial-gradient(1200px 600px at 50% 0%, #10162a 0%, var(--bg) 40%, #03040a 100%);
  color:var(--fg);
}

a{color:var(--accent); text-decoration:none}

.btn{
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: var(--fg);
  padding: 10px 14px;
  border-radius: 12px;
  cursor:pointer;
  transition: transform .08s ease, background .12s ease, border .12s ease;
  user-select:none;
}
.btn:hover{background:rgba(255,255,255,0.09)}
.btn:active{transform: translateY(1px)}
.btn[disabled]{opacity:.45; cursor:not-allowed}
.btn.primary{
  border-color: rgba(103,243,210,0.35);
  background: rgba(103,243,210,0.12);
}
.btn.danger{
  border-color: rgba(255,75,107,0.45);
  background: rgba(255,75,107,0.14);
}
.btn.ghost{
  border-color: rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
}

.topbar{
  position: sticky;
  top: 0;
  z-index: 10;
  display:flex;
  justify-content: space-between;
  align-items:center;
  padding: 14px 16px;
  background: linear-gradient(to bottom, rgba(6,7,11,0.92), rgba(6,7,11,0.55));
  border-bottom: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
}

.brand-mini, .brand{
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-mark{
  width: 18px; height: 18px;
  border-radius: 8px;
  background: radial-gradient(circle at 30% 30%, var(--accent), rgba(103,243,210,0.25) 60%, rgba(103,243,210,0.07) 100%);
  box-shadow: 0 0 18px rgba(103,243,210,0.35);
}
.brand-title{font-weight:700; letter-spacing: 0.3px}
.brand-sub{color:var(--muted); font-size:12px}

.status{display:flex; align-items:center; gap:10px; color:var(--muted); font-size:13px}
.dot{
  width:10px; height:10px; border-radius: 50%;
  background: rgba(255,255,255,0.18);
  box-shadow: 0 0 0 rgba(0,0,0,0);
}
.dot.on{background: var(--accent); box-shadow: 0 0 18px rgba(103,243,210,0.45)}
.dot.rec{background: var(--danger); box-shadow: 0 0 18px rgba(255,75,107,0.45)}
.dot.off{background: rgba(255,255,255,0.18)}

.layout{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 16px;
  padding: 16px;
  max-width: 1200px;
  margin: 0 auto;
}

@media (max-width: 960px){
  .layout{grid-template-columns: 1fr}
}

.scanner-frame{
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.03));
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 20px 60px var(--shadow);
  position: relative;
  overflow:hidden;
  min-height: 520px;
}

.radar{
  position:absolute;
  inset: 0;
  display:flex;
  justify-content:center;
  align-items:center;
  background:
    radial-gradient(600px 600px at 50% 45%, rgba(103,243,210,0.12), rgba(103,243,210,0.03) 50%, rgba(0,0,0,0) 65%),
    radial-gradient(900px 700px at 50% 0%, rgba(255,255,255,0.06), rgba(0,0,0,0) 55%);
}

.rings{
  position:absolute;
  width: 86vmin;
  max-width: 620px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(103,243,210,0.20) 2px, rgba(0,0,0,0) 3px),
    repeating-radial-gradient(circle,
      rgba(103,243,210,0.18) 0,
      rgba(103,243,210,0.10) 1px,
      rgba(0,0,0,0) 36px
    ),
    repeating-conic-gradient(from 0deg,
      rgba(103,243,210,0.10) 0 1deg,
      rgba(0,0,0,0) 1deg 10deg
    );
  filter: blur(0.2px);
  opacity: 0.9;
}

.center-core{
  position:absolute;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 25px rgba(103,243,210,0.55);
}

.sweep{
  position:absolute;
  width: 86vmin;
  max-width: 620px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: conic-gradient(from 0deg, rgba(103,243,210,0.0), rgba(103,243,210,0.35), rgba(103,243,210,0.0) 55%);
  animation: sweep 2.8s linear infinite;
  mask: radial-gradient(circle at center, rgba(0,0,0,0) 0 24%, #000 25% 100%);
  opacity: 0.85;
}

@keyframes sweep{
  from{transform: rotate(0deg)}
  to{transform: rotate(360deg)}
}

.noise{
  position:absolute;
  inset:-60px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E");
  opacity: .22;
  mix-blend-mode: overlay;
  animation: drift 6s ease-in-out infinite alternate;
}

@keyframes drift{
  from{transform: translate3d(-10px,-6px,0) scale(1.03)}
  to{transform: translate3d(12px,10px,0) scale(1.06)}
}

.hud{
  position:absolute;
  inset:auto 0 0 0;
  padding: 14px;
  display:flex;
  flex-direction: column;
  gap: 10px;
  background: linear-gradient(to top, rgba(6,7,11,0.92), rgba(6,7,11,0.18));
  border-top: 1px solid rgba(255,255,255,0.08);
}

.hud-row{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items:center;
}

.chip{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.04);
  color: var(--muted);
  font-size: 12px;
}

.toggle{
  display:flex;
  gap:10px;
  align-items:center;
  color: var(--muted);
  font-size: 13px;
}

.feed{
  display:flex;
  flex-direction: column;
  gap: 14px;
}

.panel{
  border-radius: var(--radius);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 16px 44px rgba(0,0,0,0.45);
  overflow:hidden;
}
.panel.subtle{opacity:.92}
.panel-title{
  padding: 12px 14px;
  font-weight: 700;
  letter-spacing: .25px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.panel-body{
  padding: 14px;
  color: var(--fg);
  min-height: 110px;
  line-height: 1.45;
}
.panel-body.mono{
  font-family: var(--mono);
  color: rgba(232,238,252,0.92);
  font-size: 13px;
  white-space: pre-wrap;
}
.panel-actions{
  padding: 12px 14px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display:flex;
  gap:10px;
  justify-content:flex-end;
}

/* Dev modal */
.hidden{display:none !important}
.modal-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  z-index: 50;
}
/* In case other rules override display, keep the modal hidden when requested */
.modal-backdrop.hidden{display:none !important}
.modal{
  width: min(820px, 96vw);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.03));
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 30px 80px rgba(0,0,0,0.7);
  overflow: hidden;
}
.modal-head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.modal-title{font-weight: 800; letter-spacing: .25px}
.modal-body{padding: 14px}
.form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 720px){
  .form-grid{grid-template-columns: 1fr}
}
.field{
  display:flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.04);
}
.field span{color: var(--muted); font-size: 12px}
.field input[type="number"],
.field input[type="text"],
.field select{
  width: 100%;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.25);
  color: var(--fg);
}
.field input[type="checkbox"]{transform: scale(1.2);}
.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap: 10px;
  padding-top: 12px;
}
.small{font-size: 12px;}
.muted{color: var(--muted);}

.login-body{
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 18px;
}
.login-card{
  width: min(420px, 100%);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 20px 70px var(--shadow);
  padding: 18px;
}
.login-form{
  display:flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.login-form label{color: var(--muted); font-size: 13px}
.login-form input{
  padding: 11px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(0,0,0,0.25);
  color: var(--fg);
  outline: none;
}
.login-form input:focus{border-color: rgba(103,243,210,0.35)}
.msg{min-height: 18px; color: var(--muted); font-size: 13px}
.fineprint{margin-top: 12px; color: rgba(165,176,198,0.85); font-size: 12px}
