/* Cyberpunk theme overlay — overrides shadcn/ui CSS variables + adds neon FX.
   Pure CSS re-skin: no component/JS changes (frontend source is not available). */

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

:root {
  --background: 240 45% 3%;
  --foreground: 180 100% 90%;
  --muted: 250 40% 10%;
  --muted-foreground: 190 30% 60%;
  --popover: 250 45% 5%;
  --popover-foreground: 180 100% 92%;
  --card: 250 45% 6%;
  --card-foreground: 180 100% 92%;
  --border: 300 100% 50%;
  --input: 250 40% 10%;
  --primary: 189 100% 50%;
  --primary-foreground: 240 45% 3%;
  --secondary: 300 100% 50%;
  --secondary-foreground: 240 45% 3%;
  --accent: 315 100% 55%;
  --accent-foreground: 240 45% 3%;
  --destructive: 350 100% 55%;
  --destructive-foreground: 240 45% 3%;
  --ring: 189 100% 50%;
  --radius: .25rem;
  --chart-1: 189 100% 50%;
  --chart-2: 315 100% 55%;
  --chart-3: 60 100% 55%;
  --chart-4: 350 100% 55%;
  --chart-5: 271 100% 65%;
  --nscontrol-primary: 0 229 255;
  --nscontrol-success: 57 255 20;
  --nscontrol-warning: 255 214 0;
  --nscontrol-danger: 255 45 85;
}

* {
  scrollbar-color: hsl(var(--primary)) hsl(var(--background));
}

body {
  background:
    repeating-linear-gradient(0deg, rgba(0, 229, 255, 0.035) 0px, rgba(0, 229, 255, 0.035) 1px, transparent 1px, transparent 3px),
    radial-gradient(ellipse at top, rgba(255, 0, 200, 0.10), transparent 55%),
    radial-gradient(ellipse at bottom, rgba(0, 229, 255, 0.10), transparent 55%),
    hsl(var(--background));
  font-family: 'Share Tech Mono', ui-monospace, monospace;
  position: relative;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  background: repeating-linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0.02) 0px,
    rgba(255, 255, 255, 0.02) 1px,
    transparent 1px,
    transparent 2px
  );
  mix-blend-mode: overlay;
  animation: scanline-drift 9s linear infinite;
}

@keyframes scanline-drift {
  0% { background-position: 0 0; }
  100% { background-position: 0 100px; }
}

h1, h2, h3, h4, h5, h6,
[class*="font-bold"],
[class*="font-semibold"] {
  font-family: 'Orbitron', ui-sans-serif, sans-serif !important;
  letter-spacing: 0.03em;
}

/* Neon glow on cards / panels */
[class*="rounded-lg"], [class*="rounded-md"], .card,
[class*="border"] {
  transition: box-shadow .25s ease, border-color .25s ease;
}

div[class*="card"], [class*="Card"] > div, [role="dialog"] > div {
  box-shadow:
    0 0 0 1px hsla(var(--primary), .35),
    0 0 18px hsla(var(--primary), .18),
    inset 0 0 24px hsla(var(--accent), .05);
}

/* Buttons: neon glow + hover pulse */
button, [role="button"], a[class*="button"] {
  position: relative;
  overflow: hidden;
}

button:not([disabled]):hover, [role="button"]:not([disabled]):hover {
  box-shadow: 0 0 12px hsla(var(--primary), .8), 0 0 28px hsla(var(--accent), .5);
  filter: brightness(1.08);
}

/* Primary buttons: gradient neon fill */
button[class*="bg-primary"], .bg-primary {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--accent))) !important;
  color: #05010a !important;
  text-shadow: none;
}

/* Inputs: neon focus ring */
input, textarea, select {
  background-color: hsla(var(--card), .6) !important;
  border-color: hsla(var(--border), .4) !important;
}
input:focus, textarea:focus, select:focus {
  box-shadow: 0 0 0 2px hsla(var(--ring), .6), 0 0 14px hsla(var(--ring), .5) !important;
}

/* Sidebar / nav accents */
nav, aside, [class*="sidebar"] {
  border-color: hsla(var(--primary), .25) !important;
  background: linear-gradient(180deg, hsla(300, 100%, 10%, .35), hsla(240, 45%, 3%, .9));
}

/* Status colors keep semantics but glow */
[class*="text-green"], [class*="text-emerald"] {
  color: rgb(var(--nscontrol-success)) !important;
  text-shadow: 0 0 6px rgba(var(--nscontrol-success), .6);
}
[class*="text-red"] {
  color: rgb(var(--nscontrol-danger)) !important;
  text-shadow: 0 0 6px rgba(var(--nscontrol-danger), .6);
}
[class*="text-yellow"], [class*="text-amber"] {
  color: rgb(var(--nscontrol-warning)) !important;
  text-shadow: 0 0 6px rgba(var(--nscontrol-warning), .5);
}

/* Scrollbars */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: hsl(var(--background)); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, hsl(var(--primary)), hsl(var(--accent)));
  border-radius: 4px;
  box-shadow: 0 0 8px hsla(var(--primary), .6);
}

/* Logo/brand glow */
img[src*="logo"], img[alt*="logo" i], img[alt*="nscontrol" i] {
  filter: drop-shadow(0 0 10px hsla(var(--primary), .8)) drop-shadow(0 0 20px hsla(var(--accent), .4));
}
