:root {
  --bg-cockpit: #040711;
  --panel-bg: #0b1120;
  --panel-sub: #111a30;
  --border-line: #1e293b;
  --border-glow: rgba(0, 240, 255, 0.4);
  
  --theme-accent: #00f0ff;
  --theme-accent-dim: rgba(0, 240, 255, 0.12);
  --theme-accent-glow: rgba(0, 240, 255, 0.3);
  
  --ecam-amber: #ffb703;
  --ecam-green: #00ff66;
  --ecam-red: #ff334b;
  --ecam-white: #f8fafc;
  --ecam-gray: #64748b;
  
  --font-head: 'Chakra Petch', sans-serif;
  --font-code: 'JetBrains Mono', monospace;
  --font-ui: 'Plus Jakarta Sans', sans-serif;
}

body[data-theme="cyan"] { --theme-accent: #00f0ff; --theme-accent-dim: rgba(0, 240, 255, 0.12); --theme-accent-glow: rgba(0, 240, 255, 0.3); }
body[data-theme="amber"] { --theme-accent: #ffb703; --theme-accent-dim: rgba(255, 183, 3, 0.12); --theme-accent-glow: rgba(255, 183, 3, 0.3); }
body[data-theme="emerald"] { --theme-accent: #00ff66; --theme-accent-dim: rgba(0, 255, 102, 0.12); --theme-accent-glow: rgba(0, 255, 102, 0.3); }
body[data-theme="ruby"] { --theme-accent: #ff2a4b; --theme-accent-dim: rgba(255, 42, 75, 0.15); --theme-accent-glow: rgba(255, 42, 75, 0.35); }
body[data-theme="lime"] { --theme-accent: #a6e22e; --theme-accent-dim: rgba(166, 226, 46, 0.12); --theme-accent-glow: rgba(166, 226, 46, 0.3); }
body[data-theme="violet"] { --theme-accent: #d946ef; --theme-accent-dim: rgba(217, 70, 239, 0.12); --theme-accent-glow: rgba(217, 70, 239, 0.3); }
body[data-theme="cobalt"] { --theme-accent: #3b82f6; --theme-accent-dim: rgba(59, 130, 246, 0.15); --theme-accent-glow: rgba(59, 130, 246, 0.35); }
body[data-theme="orange"] { --theme-accent: #ff6b00; --theme-accent-dim: rgba(255, 107, 0, 0.15); --theme-accent-glow: rgba(255, 107, 0, 0.35); }
body[data-theme="gold"] { --theme-accent: #eab308; --theme-accent-dim: rgba(234, 179, 8, 0.15); --theme-accent-glow: rgba(234, 179, 8, 0.35); }
body[data-theme="stealth"] { --theme-accent: #94a3b8; --theme-accent-dim: rgba(148, 163, 184, 0.12); --theme-accent-glow: rgba(148, 163, 184, 0.3); }
/* Tema oculto de la broma de JANMOH (no aparece en el selector): dorado cálido, el color de
   la flauta de la animación de bienvenida */
/* Tema oculto de la broma de JANMOH: perros tocando la flauta de fondo por toda la app (dos
   poses, una normal y otra en espejo, para que no se note tanto que es el mismo perro
   repetido, a varios tamaños superpuestos). Vía background-image, nunca ocupa espacio de
   verdad ni rompe el layout, solo se pinta detrás del contenido real */
body[data-theme="perroflauta"] {
  --theme-accent: #e8c14d; --theme-accent-dim: rgba(232, 193, 77, 0.14); --theme-accent-glow: rgba(232, 193, 77, 0.35);
  --ji-dog-r: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' opacity='0.12'%3E%3Cellipse cx='32' cy='44' rx='16' ry='13' fill='%23d99c5b'/%3E%3Ccircle cx='34' cy='24' r='13' fill='%23d99c5b'/%3E%3Cpath d='M22 14 Q14 12 16 26 Q24 26 27 18 Z' fill='%23a86a3a'/%3E%3Cpath d='M46 14 Q54 12 52 26 Q44 26 41 18 Z' fill='%23a86a3a'/%3E%3Cellipse cx='33' cy='30' rx='7' ry='5' fill='%23f3dcbb'/%3E%3Ccircle cx='33' cy='29' r='2' fill='%235b3a1f'/%3E%3Cpath d='M27 22 q3 -4 6 0' stroke='%235b3a1f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M39 22 q3 -4 6 0' stroke='%235b3a1f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cg transform='rotate(-16 40 32)'%3E%3Crect x='38' y='30' width='24' height='4.4' rx='2.2' fill='%23e8c14d' stroke='%23a97f22' stroke-width='0.8'/%3E%3Ccircle cx='44' cy='32.2' r='0.9' fill='%23a97f22'/%3E%3Ccircle cx='49' cy='32.2' r='0.9' fill='%23a97f22'/%3E%3Ccircle cx='54' cy='32.2' r='0.9' fill='%23a97f22'/%3E%3C/g%3E%3C/svg%3E");
  --ji-dog-l: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' opacity='0.12'%3E%3Cg transform='translate(64,0) scale(-1,1)'%3E%3Cellipse cx='32' cy='44' rx='16' ry='13' fill='%23d99c5b'/%3E%3Ccircle cx='34' cy='24' r='13' fill='%23d99c5b'/%3E%3Cpath d='M22 14 Q14 12 16 26 Q24 26 27 18 Z' fill='%23a86a3a'/%3E%3Cpath d='M46 14 Q54 12 52 26 Q44 26 41 18 Z' fill='%23a86a3a'/%3E%3Cellipse cx='33' cy='30' rx='7' ry='5' fill='%23f3dcbb'/%3E%3Ccircle cx='33' cy='29' r='2' fill='%235b3a1f'/%3E%3Cpath d='M27 22 q3 -4 6 0' stroke='%235b3a1f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M39 22 q3 -4 6 0' stroke='%235b3a1f' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cg transform='rotate(-16 40 32)'%3E%3Crect x='38' y='30' width='24' height='4.4' rx='2.2' fill='%23e8c14d' stroke='%23a97f22' stroke-width='0.8'/%3E%3Ccircle cx='44' cy='32.2' r='0.9' fill='%23a97f22'/%3E%3Ccircle cx='49' cy='32.2' r='0.9' fill='%23a97f22'/%3E%3Ccircle cx='54' cy='32.2' r='0.9' fill='%23a97f22'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-color: var(--bg-cockpit, #05070f);
  background-image: var(--ji-dog-r), var(--ji-dog-l), var(--ji-dog-r);
  background-repeat: repeat, repeat, repeat;
  background-size: 190px 190px, 240px 240px, 130px 130px;
  background-position: 0 0, 95px 140px, 60px 20px;
}

/* ANIMACIÓN DE BIENVENIDA DE JANMOH (perro tocando la flauta): variables con nombre propio,
   todas colgando de .janmoh-intro para no mezclarse con las variables de tema de la app */
.janmoh-intro {
  --ji-sky-top: #ff9d5c; --ji-sky-mid: #ffd9a0; --ji-sky-low: #cdeaff;
  --ji-hill-back: #9bd671; --ji-hill-front: #7cb955; --ji-sun: #fff3c4;
  --ji-fur: #d99c5b; --ji-fur-shade: #b97f45; --ji-fur-dark: #8f5f30;
  --ji-ear: #a86a3a; --ji-snout: #f3dcbb; --ji-flute: #e8c14d; --ji-flute-dark: #a97f22;
  --ji-scarf: #e0473f; --ji-scarf-dark: #b53129; --ji-ink: #5b3a1f; --ji-cream: #fff6ea;
  --ji-accent: #ff7a3d; --ji-accent2: #ff4d94;
  position: fixed; inset: 0; z-index: 500000; overflow: hidden;
  background: linear-gradient(180deg, var(--ji-sky-top) 0%, var(--ji-sky-mid) 45%, var(--ji-sky-low) 78%);
  font-family: 'Nunito', 'Baloo 2', var(--font-ui), sans-serif;
  opacity: 0; transition: opacity 0.5s ease;
}
.janmoh-intro.visible { opacity: 1; }
.janmoh-intro .ji-sun {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: min(34vw, 220px); height: min(34vw, 220px); border-radius: 50%;
  background: radial-gradient(circle, var(--ji-sun) 0%, rgba(255,243,196,0.5) 55%, transparent 75%);
  filter: blur(1px); animation: jiSunGlow 6s ease-in-out infinite;
}
@keyframes jiSunGlow {
  0%, 100% { opacity: 0.85; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.06); }
}
.janmoh-intro .ji-cloud { position: absolute; background: #fff; opacity: 0.75; border-radius: 50px; filter: blur(0.5px); }
.janmoh-intro .ji-cloud::before, .janmoh-intro .ji-cloud::after { content: ''; position: absolute; background: #fff; border-radius: 50%; }
.janmoh-intro .ji-c1 { top: 14%; left: -20%; width: 120px; height: 40px; animation: jiDrift 26s linear infinite; }
.janmoh-intro .ji-c1::before { width: 60px; height: 60px; top: -30px; left: 15px; }
.janmoh-intro .ji-c1::after { width: 44px; height: 44px; top: -20px; left: 60px; }
.janmoh-intro .ji-c2 { top: 26%; left: -25%; width: 90px; height: 32px; animation: jiDrift 34s linear infinite; animation-delay: -12s; }
.janmoh-intro .ji-c2::before { width: 46px; height: 46px; top: -22px; left: 10px; }
.janmoh-intro .ji-c2::after { width: 34px; height: 34px; top: -14px; left: 48px; }
@keyframes jiDrift { from { transform: translateX(0); } to { transform: translateX(140vw); } }
.janmoh-intro .ji-hill-back { position: absolute; bottom: 0; left: -5%; width: 110%; height: 26vh; background: var(--ji-hill-back); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.janmoh-intro .ji-hill-front { position: absolute; bottom: 0; left: -8%; width: 116%; height: 18vh; background: var(--ji-hill-front); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.janmoh-intro .ji-hill-front::before {
  content: ''; position: absolute; top: -9px; left: 0; right: 0; height: 12px;
  background: linear-gradient(-45deg, var(--ji-hill-front) 6px, transparent 0), linear-gradient(45deg, var(--ji-hill-front) 6px, transparent 0);
  background-size: 16px 16px; background-repeat: repeat-x;
}
.janmoh-intro .ji-flower { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #fff176;
  box-shadow: -9px 0 0 -1.5px #ffffff, 9px 0 0 -1.5px #ffffff, 0 -9px 0 -1.5px #ffffff, 0 9px 0 -1.5px #ffffff; }
.janmoh-intro .ji-flower.pink { box-shadow: -9px 0 0 -1.5px #ffc2dd, 9px 0 0 -1.5px #ffc2dd, 0 -9px 0 -1.5px #ffc2dd, 0 9px 0 -1.5px #ffc2dd; }
.janmoh-intro .ji-greeting { position: absolute; top: 8%; left: 50%; transform: translate(-50%, 0); text-align: center; width: min(92vw, 560px); z-index: 2; }
.janmoh-intro .ji-greeting h1 {
  margin: 0; font-family: 'Baloo 2', sans-serif; font-weight: 800; font-size: clamp(24px, 5.4vw, 40px);
  color: var(--ji-cream); text-shadow: 0 3px 0 var(--ji-ink), 0 6px 14px rgba(91,58,31,0.35); letter-spacing: 0.5px;
}
.janmoh-intro .ji-greeting p {
  margin: 8px 0 0; font-family: 'Nunito', sans-serif; font-weight: 700; font-size: clamp(12px, 2.6vw, 15px);
  color: var(--ji-ink); background: rgba(255,246,234,0.75); display: inline-block; padding: 5px 14px; border-radius: 20px; letter-spacing: 0.3px;
}
.janmoh-intro .ji-scene-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding-bottom: 6vh; }
.janmoh-intro .ji-burst {
  position: absolute; width: 240px; height: 240px; top: -30px; left: 50%; transform: translate(-50%, 0) scale(0.4);
  background: repeating-conic-gradient(from 0deg, rgba(255,255,255,0.95) 0deg 7deg, transparent 7deg 20deg);
  border-radius: 50%; opacity: 0; pointer-events: none; z-index: 0;
}
.janmoh-intro .ji-burst.show { animation: jiBurstPop 0.55s ease-out forwards; }
@keyframes jiBurstPop {
  0% { opacity: 0; transform: translate(-50%,0) scale(0.4); }
  35% { opacity: 0.85; transform: translate(-50%,0) scale(1.05); }
  100% { opacity: 0; transform: translate(-50%,0) scale(1.35); }
}
.janmoh-intro .ji-dog-wrap { position: relative; width: min(56vw, 300px); animation: jiBob 1.1s ease-in-out infinite; transform-origin: 50% 100%; z-index: 1; }
@keyframes jiBob {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-8px) rotate(1deg); }
}
.janmoh-intro .ji-note {
  position: fixed; font-family: 'Baloo 2', sans-serif; font-size: 22px; text-shadow: 0 2px 0 rgba(91,58,31,0.25);
  opacity: 0; pointer-events: none; animation: jiFloatNote 1.8s ease-out forwards; z-index: 500001;
}
@keyframes jiFloatNote {
  0% { opacity: 0; transform: translate(0,0) rotate(0deg) scale(0.55); }
  15% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--dx, 40px), -130px) rotate(24deg) scale(1.1); }
}
@media (prefers-reduced-motion: reduce) {
  .janmoh-intro .ji-dog-wrap, .janmoh-intro .ji-sun, .janmoh-intro .ji-c1, .janmoh-intro .ji-c2 { animation: none !important; }
  .janmoh-intro .ji-note, .janmoh-intro .ji-burst { display: none; }
}

/* VUELO NOCTURNO: pensado para turnos de noche, no es un tema "épico" como los especiales
   sino deliberadamente de bajo brillo. Blanco y negro puro para no perder visión nocturna
   en el hangar. Nota: NO se usa filter:grayscale en el body — eso convertiría a cualquier
   modal (position:fixed) en un hijo posicionado respecto al body en vez del viewport,
   rompiendo su posición/tamaño. Basta con dejar los tokens de color en neutro, igual que
   hacen el resto de temas básicos. */
body[data-theme="night"] {
  --theme-accent: #e5e5e5;
  --theme-accent-dim: rgba(229, 229, 229, 0.14);
  --theme-accent-glow: rgba(229, 229, 229, 0.4);
  --border-line: #262626;
  --border-glow: rgba(229, 229, 229, 0.3);
  --bg-cockpit: #000;
  --panel-bg: #0a0a0a;
  --panel-sub: #111;
}
body[data-theme="night"] .hud-header {
  background: linear-gradient(180deg, rgba(10,10,10,0.95) 0%, rgba(0,0,0,0.95) 100%);
}

/* OMEGA PROTOCOL: TEMA EXCLUSIVO PARA QUIEN LLEGUE A GOD EMPEROR (100 P/N) O SEA ANTVAL.
   No solo cambia el color de acento: también los fondos de paneles y bordes de toda la app
   (ya que casi todo el CSS ya usa estas variables). El fondo está basado en el camuflaje
   "Dark Matter" de Call of Duty Black Ops 3: morado y negro, con motas diminutas repartidas
   (no son estrellas, es polvo/textura, pero da ese aire de nebulosa) y remolinos morados
   de fondo que se desplazan muy despacio. */
body[data-theme="omega"] {
  --theme-accent: #b026ff;
  --theme-accent-dim: rgba(176, 38, 255, 0.16);
  --theme-accent-glow: rgba(176, 38, 255, 0.48);
  --border-line: #231430;
  --border-glow: rgba(176, 38, 255, 0.5);
  --bg-cockpit: #000000;
  --panel-bg: #08030d;
  --panel-sub: #0f0818;
  background-color: #000000;
  background-image:
    radial-gradient(1.6px 1.6px at 15px 25px, rgba(255,255,255,0.85) 0%, transparent 60%),
    radial-gradient(1.2px 1.2px at 60px 70px, rgba(216,180,254,0.75) 0%, transparent 60%),
    radial-gradient(1.6px 1.6px at 112px 18px, rgba(255,255,255,0.65) 0%, transparent 60%),
    radial-gradient(1.2px 1.2px at 38px 112px, rgba(192,132,252,0.7) 0%, transparent 60%),
    radial-gradient(1px 1px at 92px 92px, rgba(255,255,255,0.55) 0%, transparent 60%),
    radial-gradient(1.4px 1.4px at 142px 132px, rgba(216,180,254,0.65) 0%, transparent 60%),
    radial-gradient(1px 1px at 8px 140px, rgba(255,255,255,0.45) 0%, transparent 60%),
    radial-gradient(circle at 20% 25%, rgba(124, 58, 237, 0.34) 0%, transparent 32%),
    radial-gradient(circle at 82% 20%, rgba(147, 51, 234, 0.28) 0%, transparent 34%),
    radial-gradient(circle at 28% 82%, rgba(88, 28, 200, 0.3) 0%, transparent 36%),
    radial-gradient(circle at 78% 76%, rgba(76, 29, 149, 0.26) 0%, transparent 32%),
    linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size:
    160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px,
    140% 140%, 130% 130%, 145% 145%, 125% 125%,
    26px 26px, 26px 26px;
  background-position:
    0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0,
    0% 0%, 100% 0%, 0% 100%, 100% 100%,
    0 0, 0 0;
  animation: omegaDarkMatter 16s ease-in-out infinite;
}
@keyframes omegaDarkMatter {
  0%   { background-position: 0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px, 0% 0%,   100% 0%,  0% 100%,   100% 100%, 0 0, 0 0;
         background-size: 160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px, 140% 140%, 130% 130%, 145% 145%, 125% 125%, 26px 26px, 26px 26px; }
  20%  { background-position: 22px 16px,22px 16px,22px 16px,22px 16px,22px 16px,22px 16px,22px 16px, 15% 30%,  85% 15%,  20% 70%,   80% 85%,   0 0, 0 0;
         background-size: 160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px, 160% 160%, 115% 115%, 130% 130%, 140% 140%, 26px 26px, 26px 26px; }
  40%  { background-position: 42px -10px,42px -10px,42px -10px,42px -10px,42px -10px,42px -10px,42px -10px, 35% 10%,  65% 40%,  40% 55%,   60% 65%,   0 0, 0 0;
         background-size: 160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px, 120% 120%, 150% 150%, 110% 110%, 155% 155%, 26px 26px, 26px 26px; }
  60%  { background-position: 16px 32px,16px 32px,16px 32px,16px 32px,16px 32px,16px 32px,16px 32px, 10% 45%,  90% 5%,   10% 90%,   90% 55%,   0 0, 0 0;
         background-size: 160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px, 150% 150%, 125% 125%, 155% 155%, 115% 115%, 26px 26px, 26px 26px; }
  80%  { background-position: -12px 18px,-12px 18px,-12px 18px,-12px 18px,-12px 18px,-12px 18px,-12px 18px, 40% 20%,  60% 35%,   25% 65%,   70% 70%,   0 0, 0 0;
         background-size: 160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px, 130% 130%, 140% 140%, 120% 120%, 150% 150%, 26px 26px, 26px 26px; }
  100% { background-position: 0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px, 0% 0%,   100% 0%,  0% 100%,   100% 100%, 0 0, 0 0;
         background-size: 160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px,160px 160px, 140% 140%, 130% 130%, 145% 145%, 125% 125%, 26px 26px, 26px 26px; }
}

/* AURA ÉPICA EN LOS TEXTOS MÁS IMPORTANTES (P/N, ATA, FIN...) SOLO CON EL TEMA OMEGA ACTIVO */
body[data-theme="omega"] .data-pn,
body[data-theme="omega"] .detail-pn {
  color: var(--theme-accent);
  text-shadow: 0 0 6px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
/* Etiqueta de ATA/tipo (COMP/CONS, MATERIAL, KIT...): blanca con destello, en vez del color de acento */
body[data-theme="omega"] .tag-pill-ata {
  color: #fff;
  text-shadow: 0 0 6px #fff, 0 0 14px var(--theme-accent-glow);
}
body[data-theme="omega"] .data-fin-tag,
body[data-theme="omega"] .kit-col-pn {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
/* Nombre del P/N: blanco con halo morado (igual que el reloj UTC). La traducción se queda en blanco liso */
body[data-theme="omega"] .data-name-en,
body[data-theme="omega"] .detail-name-en {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="omega"] .data-name-loc,
body[data-theme="omega"] .detail-name-loc {
  color: #fff;
}
body[data-theme="omega"] .hud-texts h1 {
  font-family: 'Orbitron', sans-serif;
  text-shadow: 0 0 10px var(--theme-accent-glow), 0 0 24px var(--theme-accent-glow);
}
body[data-theme="omega"] .hud-texts h1 span {
  text-shadow: 0 0 14px var(--theme-accent), 0 0 30px var(--theme-accent);
}
/* Reloj UTC: blanco con un halo morado, en vez del color de acento sólido */
body[data-theme="omega"] .utc-instrument-digits {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
/* Pestañas de Catálogo/Favoritos/Registrar y filtros de categoría (Todos, Componentes & Consumibles...):
   un destello morado sutil, dejando aparte la pestaña Registrar que mantiene su color ámbar de acción */
body[data-theme="omega"] .mode-tab:not(.add-tab) {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="omega"] .mode-tab.active:not(.add-tab) {
  box-shadow: 0 0 18px var(--theme-accent-glow), inset 0 0 10px var(--theme-accent-dim);
}
body[data-theme="omega"] .filter-pill {
  text-shadow: 0 0 5px var(--theme-accent-glow);
}
/* El borde por defecto (var(--border-line)) queda casi invisible en negro; lo aclaramos cuando no está seleccionado */
body[data-theme="omega"] .filter-pill:not(.active) {
  border-color: #8b5cf6;
}
body[data-theme="omega"] .filter-pill.active {
  box-shadow: 0 0 14px var(--theme-accent-glow);
}

/* SIGMA OVERRIDE: TEMA EXCLUSIVO PARA ADMINISTRADORES (ANTVAL Y LOS ADMINS QUE AÑADA).
   No sale nunca en el desplegable si no eres admin (ni siquiera bloqueado, directamente no
   aparece). Estética de "anulación de sistema" / sala de vigilancia: rejilla técnica roja
   sobre negro casi puro, con un barrido de luz que recorre la pantalla de arriba a abajo
   muy despacio, como el escáner de un panel de control militar */
body[data-theme="sigma"] {
  --theme-accent: #ff1f3d;
  --theme-accent-dim: rgba(255, 31, 61, 0.14);
  --theme-accent-glow: rgba(255, 31, 61, 0.5);
  --border-line: #2a0a10;
  --border-glow: rgba(255, 31, 61, 0.5);
  --bg-cockpit: #050202;
  --panel-bg: #0c0304;
  --panel-sub: #160507;
  background-color: #050202;
  background-image:
    linear-gradient(rgba(255,31,61,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,31,61,0.045) 1px, transparent 1px),
    linear-gradient(180deg, transparent 0%, rgba(255,31,61,0.09) 48%, rgba(255,31,61,0.16) 50%, rgba(255,31,61,0.09) 52%, transparent 100%),
    radial-gradient(circle at 20% 15%, rgba(255,31,61,0.09) 0%, transparent 40%),
    radial-gradient(circle at 80% 85%, rgba(139,0,20,0.12) 0%, transparent 42%);
  background-size: 34px 34px, 34px 34px, 100% 340%, 150% 150%, 150% 150%;
  animation: sigmaOverrideScan 9s linear infinite;
}
@keyframes sigmaOverrideScan {
  0%   { background-position: 0 0, 0 0, 0 -240%, 20% 15%, 80% 85%; }
  50%  { background-position: 0 0, 0 0, 0 50%,   30% 25%, 70% 75%; }
  100% { background-position: 0 0, 0 0, 0 340%,  20% 15%, 80% 85%; }
}
/* La tarjeta del logo/título tenía un fondo azul marino fijo (igual en todos los temas);
   con Sigma Override desentonaba mucho, así que aquí se sustituye por un tono rojo oscuro
   a juego con el resto del tema */
body[data-theme="sigma"] .hud-header {
  background: linear-gradient(180deg, rgba(35,9,13,0.95) 0%, rgba(18,4,7,0.95) 100%);
}

/* MISMO TRATAMIENTO DE TEXTOS DESTACADOS QUE OMEGA, PERO EN ROJO Y CON OTRA FUENTE (AUDIOWIDE
   EN VEZ DE ORBITRON) PARA QUE NO SE PAREZCAN DEMASIADO */
body[data-theme="sigma"] .data-pn,
body[data-theme="sigma"] .detail-pn {
  color: var(--theme-accent);
  text-shadow: 0 0 6px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="sigma"] .tag-pill-ata {
  color: #fff;
  text-shadow: 0 0 6px #fff, 0 0 14px var(--theme-accent-glow);
}
body[data-theme="sigma"] .data-fin-tag,
body[data-theme="sigma"] .kit-col-pn {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="sigma"] .data-name-en,
body[data-theme="sigma"] .detail-name-en {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="sigma"] .data-name-loc,
body[data-theme="sigma"] .detail-name-loc {
  color: #fff;
}
body[data-theme="sigma"] .hud-texts h1 {
  font-family: 'Audiowide', sans-serif;
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="sigma"] .hud-texts h1 span {
  text-shadow: 0 0 8px var(--theme-accent-glow);
}
body[data-theme="sigma"] .utc-instrument-digits {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="sigma"] .mode-tab:not(.add-tab) {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="sigma"] .mode-tab.active:not(.add-tab) {
  box-shadow: 0 0 18px var(--theme-accent-glow), inset 0 0 10px var(--theme-accent-dim);
}
body[data-theme="sigma"] .filter-pill {
  text-shadow: 0 0 5px var(--theme-accent-glow);
}
body[data-theme="sigma"] .filter-pill:not(.active) {
  border-color: #7a1420;
}
body[data-theme="sigma"] .filter-pill.active {
  box-shadow: 0 0 14px var(--theme-accent-glow);
}
/* Etiqueta AMOS y botón admin: un aire "de mando" acorde con el tema, letras más espaciadas */
body[data-theme="sigma"] .amos-badge,
body[data-theme="sigma"] .admin-reset-btn {
  letter-spacing: 1.2px;
  text-shadow: 0 0 6px var(--theme-accent-glow);
}

/* AURUM MANDATE: TEMA EXCLUSIVO DEL OWNER (SOLO ANTVAL, NI SIQUIERA LOS DEMÁS ADMINS).
   Como Sigma, ni aparece en el desplegable si no eres el Owner. Fondo negro de verdad, con
   destellos dorados sueltos que titilan despacio, más el mismo barrido de luz que Sigma
   Override pero en amarillo y bastante más suave */
body[data-theme="aurum"] {
  --theme-accent: #ffd700;
  --theme-accent-dim: rgba(255, 215, 0, 0.16);
  --theme-accent-glow: rgba(255, 215, 0, 0.48);
  --border-line: #332a05;
  --border-glow: rgba(255, 215, 0, 0.5);
  --bg-cockpit: #000000;
  --panel-bg: #0a0700;
  --panel-sub: #120d02;
  background-color: #000000;
  background-image:
    radial-gradient(1.8px 1.8px at 15px 25px, rgba(255,215,0,0.95) 0%, transparent 65%),
    radial-gradient(1.3px 1.3px at 60px 70px, rgba(255,244,214,0.85) 0%, transparent 65%),
    radial-gradient(1.9px 1.9px at 112px 18px, rgba(255,215,0,0.8) 0%, transparent 65%),
    radial-gradient(1.3px 1.3px at 38px 112px, rgba(255,193,7,0.8) 0%, transparent 65%),
    radial-gradient(1.1px 1.1px at 92px 92px, rgba(255,244,214,0.6) 0%, transparent 65%),
    radial-gradient(1.6px 1.6px at 142px 132px, rgba(255,215,0,0.75) 0%, transparent 65%),
    radial-gradient(1.1px 1.1px at 8px 140px, rgba(255,193,7,0.55) 0%, transparent 65%),
    linear-gradient(180deg, transparent 0%, rgba(255,215,0,0.05) 48%, rgba(255,215,0,0.09) 50%, rgba(255,215,0,0.05) 52%, transparent 100%);
  background-size: 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 100% 340%;
  background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 -240%;
  animation: aurumSparkle 14s ease-in-out infinite;
}
/* Nota: se anima background-position (no opacity), porque opacity en el body afectaría a
   toda la app (texto incluido), no solo al fondo */
@keyframes aurumSparkle {
  0%   { background-position: 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0 -240%; }
  50%  { background-position: 24px 18px, 24px 18px, 24px 18px, 24px 18px, 24px 18px, 24px 18px, 24px 18px, 0 50%; }
  100% { background-position: 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0px 0px, 0 340%; }
}
body[data-theme="aurum"] .hud-header {
  background: linear-gradient(180deg, rgba(38,29,4,0.95) 0%, rgba(20,15,2,0.95) 100%);
}
body[data-theme="aurum"] .data-pn,
body[data-theme="aurum"] .detail-pn {
  color: #fff200;
  text-shadow: 0 0 6px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="aurum"] .tag-pill-ata {
  color: #fff;
  text-shadow: 0 0 6px #fff, 0 0 14px var(--theme-accent-glow);
}
body[data-theme="aurum"] .data-fin-tag,
body[data-theme="aurum"] .kit-col-pn {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="aurum"] .data-name-en,
body[data-theme="aurum"] .detail-name-en {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="aurum"] .data-name-loc,
body[data-theme="aurum"] .detail-name-loc {
  color: #fff;
}
body[data-theme="aurum"] .hud-texts h1 {
  font-family: 'Orbitron', sans-serif;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 18px var(--theme-accent-glow);
}
body[data-theme="aurum"] .hud-texts h1 span {
  text-shadow: 0 0 12px var(--theme-accent), 0 0 24px var(--theme-accent);
}
body[data-theme="aurum"] .utc-instrument-digits {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="aurum"] .mode-tab:not(.add-tab) {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="aurum"] .mode-tab.active:not(.add-tab) {
  box-shadow: 0 0 18px var(--theme-accent-glow), inset 0 0 10px var(--theme-accent-dim);
}
body[data-theme="aurum"] .filter-pill {
  text-shadow: 0 0 5px var(--theme-accent-glow);
}
body[data-theme="aurum"] .filter-pill:not(.active) {
  border-color: #6b5710;
}
body[data-theme="aurum"] .filter-pill.active {
  box-shadow: 0 0 14px var(--theme-accent-glow);
}
body[data-theme="aurum"] .amos-badge,
body[data-theme="aurum"] .admin-reset-btn {
  letter-spacing: 1.2px;
  text-shadow: 0 0 6px var(--theme-accent-glow);
}

/* NOVA VANGUARD: TEMA EXCLUSIVO QUE SE DESBLOQUEA AL LLEGAR AL ANTEPENÚLTIMO RANGO (o siendo
   el Owner). Fondo negro con chispas cian/hielo y dos franjas diagonales que cruzan muy
   despacio (en vez del barrido vertical de Sigma o el resplandor de Aurum, para que no se
   parezcan entre sí) */
body[data-theme="nova"] {
  --theme-accent: #2dd4ff;
  --theme-accent-dim: rgba(45, 212, 255, 0.16);
  --theme-accent-glow: rgba(45, 212, 255, 0.5);
  --border-line: #05242b;
  --border-glow: rgba(45, 212, 255, 0.5);
  --bg-cockpit: #000505;
  --panel-bg: #010e10;
  --panel-sub: #041a1d;
  background-color: #000505;
  background-image:
    radial-gradient(1.8px 1.8px at 20px 30px, rgba(224,255,255,0.95) 0%, transparent 65%),
    radial-gradient(1.3px 1.3px at 70px 80px, rgba(45,212,255,0.85) 0%, transparent 65%),
    radial-gradient(1.9px 1.9px at 118px 22px, rgba(224,255,255,0.8) 0%, transparent 65%),
    radial-gradient(1.3px 1.3px at 44px 118px, rgba(34,211,238,0.8) 0%, transparent 65%),
    radial-gradient(1.1px 1.1px at 96px 96px, rgba(224,255,255,0.6) 0%, transparent 65%),
    radial-gradient(1.6px 1.6px at 148px 138px, rgba(45,212,255,0.75) 0%, transparent 65%),
    radial-gradient(1.1px 1.1px at 12px 146px, rgba(34,211,238,0.55) 0%, transparent 65%),
    repeating-linear-gradient(45deg, transparent 0px, transparent 90px, rgba(45,212,255,0.07) 90px, rgba(45,212,255,0.11) 94px, rgba(45,212,255,0.07) 98px, transparent 98px, transparent 190px);
  background-size: 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 160px 160px, 380px 380px;
  background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0;
  animation: novaVanguardPulse 15s ease-in-out infinite;
}
@keyframes novaVanguardPulse {
  0%   { background-position: 0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px, 0 0; }
  50%  { background-position: 24px 18px,24px 18px,24px 18px,24px 18px,24px 18px,24px 18px,24px 18px, 190px 190px; }
  100% { background-position: 0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px, 380px 380px; }
}
body[data-theme="nova"] .hud-header {
  background: linear-gradient(180deg, rgba(4,26,30,0.95) 0%, rgba(1,12,14,0.95) 100%);
}
body[data-theme="nova"] .data-pn,
body[data-theme="nova"] .detail-pn {
  color: var(--theme-accent);
  text-shadow: 0 0 6px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="nova"] .tag-pill-ata {
  color: #fff;
  text-shadow: 0 0 6px #fff, 0 0 14px var(--theme-accent-glow);
}
body[data-theme="nova"] .data-fin-tag,
body[data-theme="nova"] .kit-col-pn {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="nova"] .data-name-en,
body[data-theme="nova"] .detail-name-en {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="nova"] .data-name-loc,
body[data-theme="nova"] .detail-name-loc {
  color: #fff;
}
body[data-theme="nova"] .hud-texts h1 {
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 18px var(--theme-accent-glow);
}
body[data-theme="nova"] .hud-texts h1 span {
  text-shadow: 0 0 12px var(--theme-accent), 0 0 24px var(--theme-accent);
}
body[data-theme="nova"] .utc-instrument-digits {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="nova"] .mode-tab:not(.add-tab) {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="nova"] .mode-tab.active:not(.add-tab) {
  box-shadow: 0 0 18px var(--theme-accent-glow), inset 0 0 10px var(--theme-accent-dim);
}
body[data-theme="nova"] .filter-pill {
  text-shadow: 0 0 5px var(--theme-accent-glow);
}
body[data-theme="nova"] .filter-pill:not(.active) {
  border-color: #0d4a54;
}
body[data-theme="nova"] .filter-pill.active {
  box-shadow: 0 0 14px var(--theme-accent-glow);
}
body[data-theme="nova"] .amos-badge,
body[data-theme="nova"] .admin-reset-btn {
  letter-spacing: 1.2px;
  text-shadow: 0 0 6px var(--theme-accent-glow);
}

@property --pulseAngle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}
body[data-theme="pulse"] {
  --theme-accent: #00e6b8;
  --theme-accent-dim: rgba(0, 230, 184, 0.16);
  --theme-accent-glow: rgba(0, 230, 184, 0.5);
  --border-line: #032922;
  --border-glow: rgba(0, 230, 184, 0.5);
  --bg-cockpit: #000605;
  --panel-bg: #00110d;
  --panel-sub: #001d17;
  --pulseAngle: 0deg;
  background-color: #000605;
  background-image:
    radial-gradient(1.8px 1.8px at 25px 35px, rgba(255,255,255,0.45) 0%, transparent 65%),
    radial-gradient(1.3px 1.3px at 80px 90px, rgba(0,230,184,0.45) 0%, transparent 65%),
    radial-gradient(1.6px 1.6px at 130px 20px, rgba(255,255,255,0.32) 0%, transparent 65%),
    radial-gradient(1.3px 1.3px at 40px 130px, rgba(0,200,160,0.4) 0%, transparent 65%),
    conic-gradient(from var(--pulseAngle) at 26% 74%, transparent 0deg, rgba(0,230,184,0.16) 20deg, rgba(0,230,184,0.05) 46deg, transparent 88deg, transparent 360deg);
  background-size: 160px 160px, 160px 160px, 160px 160px, 160px 160px, 100% 100%;
  background-position: 0 0, 0 0, 0 0, 0 0, 0 0;
  animation: pulseBeaconSpin 18s linear infinite;
}
@keyframes pulseBeaconSpin {
  from { --pulseAngle: 0deg; }
  to   { --pulseAngle: 360deg; }
}
body[data-theme="pulse"] .hud-header {
  background: linear-gradient(180deg, rgba(0,29,23,0.95) 0%, rgba(0,17,13,0.95) 100%);
}
body[data-theme="pulse"] .data-pn,
body[data-theme="pulse"] .detail-pn {
  color: var(--theme-accent);
  text-shadow: 0 0 6px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="pulse"] .tag-pill-ata {
  color: #fff;
  text-shadow: 0 0 6px #fff, 0 0 14px var(--theme-accent-glow);
}
body[data-theme="pulse"] .data-fin-tag,
body[data-theme="pulse"] .kit-col-pn {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="pulse"] .data-name-en,
body[data-theme="pulse"] .detail-name-en {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="pulse"] .data-name-loc,
body[data-theme="pulse"] .detail-name-loc {
  color: #fff;
}
body[data-theme="pulse"] .hud-texts h1 {
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 18px var(--theme-accent-glow);
}
body[data-theme="pulse"] .hud-texts h1 span {
  text-shadow: 0 0 12px var(--theme-accent), 0 0 24px var(--theme-accent);
}
body[data-theme="pulse"] .utc-instrument-digits {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="pulse"] .mode-tab:not(.add-tab) {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="pulse"] .mode-tab.active:not(.add-tab) {
  box-shadow: 0 0 18px var(--theme-accent-glow), inset 0 0 10px var(--theme-accent-dim);
}
body[data-theme="pulse"] .filter-pill {
  text-shadow: 0 0 5px var(--theme-accent-glow);
}
body[data-theme="pulse"] .filter-pill:not(.active) {
  border-color: #0d4a3c;
}
body[data-theme="pulse"] .filter-pill.active {
  box-shadow: 0 0 14px var(--theme-accent-glow);
}
body[data-theme="pulse"] .amos-badge,
body[data-theme="pulse"] .admin-reset-btn {
  letter-spacing: 1.2px;
  text-shadow: 0 0 6px var(--theme-accent-glow);
}

/* AURORA PRIME: el único tema "especial" que no hay que desbloquear — de tono suave a
   propósito, para distinguirse de lo neón de los demás especiales. Terracota cálida en vez
   de lavanda: para alguien daltónico, un azul-cian (Nova) y un lila (lavanda) pueden verse
   casi iguales, así que este tema se mueve al extremo opuesto de la rueda de color (cálido,
   no azulado) para que la diferencia se note aunque no se perciba el matiz exacto. El fondo
   tiene el mismo espíritu que Nova Vanguard (bloques de luz difusos + franja diagonal de
   líneas), pero sin ser igual: ángulo, espaciado y ritmo de repetición distintos */
body[data-theme="aurora"] {
  --theme-accent: #e3a587;
  --theme-accent-dim: rgba(227, 165, 135, 0.16);
  --theme-accent-glow: rgba(227, 165, 135, 0.45);
  --border-line: #241a14;
  --border-glow: rgba(227, 165, 135, 0.45);
  --bg-cockpit: #0d0705;
  --panel-bg: #120a08;
  --panel-sub: #1c120d;
  background-color: #0d0705;
  background-image:
    radial-gradient(46% 38% at 15% 20%, rgba(227,165,135,0.20) 0%, transparent 70%),
    radial-gradient(40% 34% at 85% 15%, rgba(240,200,150,0.14) 0%, transparent 70%),
    radial-gradient(50% 42% at 50% 95%, rgba(214,150,150,0.12) 0%, transparent 70%),
    repeating-linear-gradient(-60deg, transparent 0px, transparent 70px, rgba(227,165,135,0.06) 70px, rgba(227,165,135,0.10) 74px, rgba(227,165,135,0.06) 78px, transparent 78px, transparent 150px);
  background-size: 160% 160%, 160% 160%, 160% 160%, 300px 300px;
  background-position: 0% 0%, 100% 0%, 50% 100%, 0px 0px;
  animation: auroraPrimeDrift 24s ease-in-out infinite;
}
@keyframes auroraPrimeDrift {
  0%   { background-position: 0% 0%, 100% 0%, 50% 100%, 0px 0px; }
  50%  { background-position: 8% 6%, 92% 8%, 46% 92%, 150px 150px; }
  100% { background-position: 0% 0%, 100% 0%, 50% 100%, 300px 300px; }
}
body[data-theme="aurora"] .hud-header {
  background: linear-gradient(180deg, rgba(28,18,13,0.95) 0%, rgba(13,7,5,0.95) 100%);
}
body[data-theme="aurora"] .data-pn,
body[data-theme="aurora"] .detail-pn {
  color: var(--theme-accent);
  text-shadow: 0 0 6px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="aurora"] .tag-pill-ata {
  color: #fff;
  text-shadow: 0 0 6px #fff, 0 0 14px var(--theme-accent-glow);
}
body[data-theme="aurora"] .data-fin-tag,
body[data-theme="aurora"] .kit-col-pn {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="aurora"] .data-name-en,
body[data-theme="aurora"] .detail-name-en {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="aurora"] .data-name-loc,
body[data-theme="aurora"] .detail-name-loc {
  color: #fff;
}
body[data-theme="aurora"] .hud-texts h1 {
  font-family: 'Orbitron', sans-serif;
  font-weight: 700;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 18px var(--theme-accent-glow);
}
body[data-theme="aurora"] .hud-texts h1 span {
  text-shadow: 0 0 12px var(--theme-accent), 0 0 24px var(--theme-accent);
}
body[data-theme="aurora"] .utc-instrument-digits {
  color: #fff;
  text-shadow: 0 0 8px var(--theme-accent-glow), 0 0 16px var(--theme-accent-glow);
}
body[data-theme="aurora"] .mode-tab:not(.add-tab) {
  text-shadow: 0 0 6px var(--theme-accent-glow);
}
body[data-theme="aurora"] .mode-tab.active:not(.add-tab) {
  box-shadow: 0 0 18px var(--theme-accent-glow), inset 0 0 10px var(--theme-accent-dim);
}
body[data-theme="aurora"] .filter-pill {
  text-shadow: 0 0 5px var(--theme-accent-glow);
}
body[data-theme="aurora"] .filter-pill:not(.active) {
  border-color: #3a2820;
}
body[data-theme="aurora"] .filter-pill.active {
  box-shadow: 0 0 14px var(--theme-accent-glow);
}
body[data-theme="aurora"] .amos-badge,
body[data-theme="aurora"] .admin-reset-btn {
  letter-spacing: 1.2px;
  text-shadow: 0 0 6px var(--theme-accent-glow);
}

* { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
