:root{--color-bg-base: #050d22;--color-bg-navy: #0a1f44;--color-bg-surface: #0f2a5c;--color-accent: #2563eb;--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .14);--color-danger: #ef4444;--color-danger-bg: rgba(239, 68, 68, .14);--color-info: #60a5fa;--color-info-bg: rgba(96, 165, 250, .14);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .14);--color-muted: #94a3b8;--color-muted-bg: rgba(148, 163, 184, .12);--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-tertiary: #64748b;--color-border: #1e3a6b;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace;--radius-sm: 6px;--radius-md: 10px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:linear-gradient(160deg,#050d22,#0a1f44);background-attachment:fixed;color:var(--color-text-primary);font-family:var(--font-ui)}button{font-family:inherit;cursor:pointer}input{font-family:inherit}@keyframes destelloEntrada{0%{box-shadow:0 0 0 2px var(--destello-color, transparent);opacity:0;transform:translateY(-8px)}55%{opacity:1;transform:translateY(0)}to{box-shadow:0 0 0 0 transparent;opacity:1;transform:translateY(0)}}.evento-nuevo{animation:destelloEntrada .9s ease-out}@keyframes pulsoVivo{0%{box-shadow:0 0 #10b9818c}70%{box-shadow:0 0 0 7px #10b98100}to{box-shadow:0 0 #10b98100}}.punto-vivo-activo{animation:pulsoVivo 1.8s infinite}@keyframes torniqueteAbrir{0%{transform:rotate(0)}to{transform:rotate(120deg)}}.torniquete-abrir{animation:torniqueteAbrir .6s cubic-bezier(.34,1.56,.64,1) forwards,torniqueteCerrar .45s ease-in 1.1s forwards}@keyframes torniqueteCerrar{0%{transform:rotate(120deg)}to{transform:rotate(0)}}@keyframes torniqueteSacudida{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.torniquete-sacudida{animation:torniqueteSacudida .4s ease-in-out}@keyframes torniqueteValidando{0%,to{opacity:1}50%{opacity:.55}}.torniquete-validando{animation:torniqueteValidando .9s ease-in-out infinite}@keyframes semaforoParpadeo{0%{opacity:.35}15%{opacity:1}30%{opacity:.3}45%{opacity:1}60%{opacity:.3}75%{opacity:1}to{opacity:1}}.semaforo-parpadeo{animation:semaforoParpadeo .7s ease-in-out}@keyframes semaforoFlash{0%{filter:brightness(2.2)}to{filter:brightness(1)}}.semaforo-flash{animation:semaforoFlash .35s ease-out}@keyframes semaforoPulso{0%,to{opacity:1}50%{opacity:.4}}.semaforo-pulso{animation:semaforoPulso .55s ease-in-out infinite}
