:root{--bg-primary: #0a0e17;--bg-secondary: #111827;--bg-card: #1a2235;--bg-card-hover: #1f2a40;--accent-green: #22c55e;--accent-green-dim: #166534;--accent-gold: #eab308;--accent-red: #ef4444;--accent-blue: #3b82f6;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--border-color: #1e293b;--border-glow: rgba(34, 197, 94, .15)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Outfit,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100dvh;overflow-x:hidden}#root{min-height:100dvh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@layer components{.glass-panel{background:#1a2235d9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:1rem}.glass-panel-glow{background:#1a2235d9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(34,197,94,.12);border-radius:1rem;box-shadow:0 0 30px #22c55e0a}.btn-primary{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;font-weight:600;border:none;border-radius:.75rem;padding:.75rem 2rem;cursor:pointer;transition:all .2s ease;font-family:Outfit,sans-serif;font-size:.95rem;letter-spacing:.01em}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 25px #22c55e4d}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);font-weight:500;border:1px solid var(--border-color);border-radius:.75rem;padding:.75rem 2rem;cursor:pointer;transition:all .2s ease;font-family:Outfit,sans-serif;font-size:.95rem}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--accent-green-dim)}.btn-secondary:active{transform:scale(.98)}.btn-danger{background:transparent;color:var(--accent-red);font-weight:500;border:1px solid rgba(239,68,68,.3);border-radius:.75rem;padding:.6rem 1.25rem;cursor:pointer;transition:all .2s ease;font-family:Outfit,sans-serif;font-size:.875rem}.btn-danger:hover{background:#ef44441a}.stat-badge{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.5rem;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.tag{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.tag-green{background:#22c55e26;color:var(--accent-green)}.tag-gold{background:#eab30826;color:var(--accent-gold)}.tag-blue{background:#3b82f626;color:var(--accent-blue)}.tag-red{background:#ef444426;color:var(--accent-red)}}@keyframes pulse-green{0%,to{box-shadow:0 0 #22c55e4d}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-card-hover) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes pulse-armed{0%,to{box-shadow:0 0 14px #22c55e66,0 0 0 4px #22c55e1a}50%{box-shadow:0 0 22px #22c55e99,0 0 0 8px #22c55e33}}.slot-armed{animation:pulse-armed 1.2s ease-in-out infinite}.slot-armed:hover{transform:scale(1.15)!important}.prow{transition:background .12s}.prow:hover{background:#ffffff08}.prow-selected{transition:background .12s}.prow-selected:hover{background:#22c55e26}@keyframes pgrow-pulse{0%,to{border-color:#22c55e99;box-shadow:0 0 10px #22c55e33}50%{border-color:#22c55e;box-shadow:0 0 18px #22c55e59}}.pgrid-slot-current{animation:pgrow-pulse 1.5s ease-in-out infinite}.pgrid-slot-filled:hover{transform:translateY(-2px);box-shadow:0 4px 14px #22c55e66!important}.slot-filled{cursor:pointer}.slot-filled:hover{transform:translateY(-3px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
