@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-color:#0f172a;--card-bg:#1e293bb3;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--border:#ffffff1a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);background-image:radial-gradient(at 0 0,#100f15 0,#0000 50%),radial-gradient(at 50% 0,#2f3e6a33 0,#0000 50%),radial-gradient(at 100% 0,#72274133 0,#0000 50%);justify-content:center;align-items:center;min-height:100vh;font-family:Inter,sans-serif;display:flex}#root{justify-content:center;width:100%;padding:2rem;display:flex}.app-container{width:100%;max-width:1100px;margin:0 auto}.card{-webkit-backdrop-filter:blur(20px);background:#0f172a99;border:1px solid #ffffff1a;border-radius:16px;padding:2.5rem;animation:.4s cubic-bezier(.4,0,.2,1) fadeIn;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.login-card{max-width:420px;margin:4rem auto}.card-header{text-align:center;margin-bottom:2rem}.card-header h1{background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:1.8rem;font-weight:700}.card-header p{color:var(--text-secondary);font-size:.95rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.input-field{color:#fff;background:#0003;border:1px solid #ffffff1a;border-radius:8px;width:100%;padding:.8rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.input-field:focus{background:#0006;border-color:#60a5fa;outline:none;box-shadow:0 0 0 3px #60a5fa33}.btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#6366f1);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.8rem 1.5rem;font-size:1rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 15px -3px #3b82f64d,0 4px 6px -2px #3b82f626}.btn:disabled{opacity:.7;cursor:not-allowed}.btn-danger{color:#f87171;box-shadow:none;background:#ef444433;border:1px solid #ef444480;width:auto;padding:.4rem .8rem;font-size:.875rem}.btn-danger:hover:not(:disabled){color:#fff;background:#ef4444}.btn-outline{color:#fff;width:auto;box-shadow:none;background:0 0;border:1px solid #fff3}.btn-outline:hover{background:#ffffff1a;transform:translateY(-1px)}.error-message{color:#fca5a5;text-align:center;background:#ef444426;border:1px solid #ef44444d;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.8rem;font-size:.9rem;display:flex}.dashboard-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.user-info{align-items:center;gap:.8rem;display:flex}.tabs{border-bottom:1px solid #ffffff1a;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:1rem;font-weight:500;transition:all .2s;display:flex}.tab:hover{color:#fff;background:#ffffff0d}.tab.active{color:#fff;background:#3b82f633;border:1px solid #3b82f666}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{background:linear-gradient(#1e293b80 0%,#0f172a80 100%);border:1px solid #ffffff0d;border-radius:12px;padding:1.5rem;transition:transform .3s;position:relative;overflow:hidden}.stat-card:hover{border-color:#fff3;transform:translateY(-4px);box-shadow:0 10px 20px -5px #0000004d}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:flex}.stat-value{color:#fff;font-size:2.2rem;font-weight:700}.progress-bar-bg{background:#0000004d;border-radius:3px;width:100%;height:6px;margin-top:1rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:3px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.table-container{background:#0003;border:1px solid #ffffff0d;border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #ffffff0d;padding:1.2rem 1rem}th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;background:#0003;font-size:.85rem;font-weight:600}td{color:#e2e8f0;font-size:.95rem}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff05}.badge{text-transform:uppercase;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.badge.running{color:#4ade80;background:#22c55e33;border:1px solid #22c55e4d}.badge.stopped{color:#f87171;background:#ef444433;border:1px solid #ef44444d}.badge.restarting{color:#facc15;background:#eab30833;border:1px solid #eab3084d}.badge.admin{color:#c084fc;background:#a855f733;border:1px solid #a855f74d}.badge.user{color:#60a5fa;background:#3b82f633;border:1px solid #3b82f64d}.add-user-form{background:#00000026;border:1px solid #ffffff0d;border-radius:12px;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{text-align:center;background:#0f172af2;border:1px solid #ffffff1a;border-radius:16px;width:90%;max-width:400px;padding:2rem;animation:.3s cubic-bezier(.4,0,.2,1) modalSlideIn;box-shadow:0 25px 50px -12px #000000b3}.modal-icon{color:#f87171;background:#ef44441a;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1.5rem;display:flex}.modal-content h3{color:#fff;margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.modal-content p{color:var(--text-secondary);margin-bottom:2rem;font-size:.95rem}.modal-actions{gap:1rem;display:flex}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}
