@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--bg-dark:#090d16;--bg-card:#0f172abf;--bg-card-hover:#1e293bd9;--border-color:#ffffff14;--border-glow:#3b82f64d;--primary:#3b82f6;--primary-glow:#3b82f666;--accent-cyan:#06b6d4;--accent-purple:#8b5cf6;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-sans);background-image:radial-gradient(at 0 0,#3b82f61f 0,#0000 50%),radial-gradient(at 100% 0,#8b5cf61f 0,#0000 50%),radial-gradient(at 50% 100%,#06b6d414 0,#0000 50%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0f172a99}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff6}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:16px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px #0000005e}.glass-panel:hover{border-color:#ffffff26;box-shadow:0 12px 40px #00000073}.glass-input{color:var(--text-main);font-family:var(--font-sans);background:#0f172a99;border:1px solid #ffffff1f;border-radius:10px;outline:none;width:100%;padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.glass-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f640}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:all .25s;display:inline-flex;box-shadow:0 4px 14px #3b82f666}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #3b82f699}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--text-main);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary:hover{background:#ffffff1f;border-color:#fff3}.btn-icon{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.btn-icon:hover{color:var(--text-main);background:#ffffff26}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge-running{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.badge-exited{color:#fb7185;background:#f43f5e26;border:1px solid #f43f5e4d}.badge-paused{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.pulse-dot{background-color:#10b981;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 10px #10b981}@keyframes pulse{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.spin-icon{animation:1.2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-bar-bg{background:#ffffff14;border-radius:10px;width:100%;height:8px;overflow:hidden}.progress-bar-fill{border-radius:10px;height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.log-viewer{color:#e2e8f0;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;background:#04070d;border:1px solid #ffffff1a;border-radius:10px;max-height:450px;padding:1rem;font-size:.82rem;line-height:1.5;overflow:auto}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:1.5rem;display:grid}.grid-cols-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
