*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#03050d;--bg2:#080e1a;--bg3:#0d1525;--bg4:#111827;--c1:#3b82f6;--c2:#6366f1;--c3:#06b6d4;--c4:#8b5cf6;--green:#22c55e;--text:#f1f5f9;--muted:#64748b;--muted2:#94a3b8;--border:#6366f12e;--border2:#6366f114;--font-display:"Syne", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--sidebar-w:220px;--radius:12px}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body)}input,textarea,select{font-family:var(--font-body);border:1px solid var(--border);color:var(--text);background:#ffffff0a;border-radius:8px;outline:none;transition:border-color .2s}input:focus,textarea:focus,select:focus{border-color:#6366f180}input::placeholder,textarea::placeholder{color:var(--muted)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#6366f180}.gradient-text{background:linear-gradient(90deg, var(--c1), var(--c4), var(--c3));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius);background:#0d1525b3;padding:1.25rem}.btn{border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:transform .15s,box-shadow .2s,opacity .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--c1), var(--c2));color:#fff;box-shadow:0 0 20px #6366f140}.btn-primary:hover{box-shadow:0 0 32px #6366f173}.btn-ghost{color:var(--muted2);border:1px solid var(--border);background:#ffffff0a}.btn-ghost:hover{color:var(--text);background:#ffffff14}.btn-danger{color:#f87171;background:#ef44441f;border:1px solid #ef444440}.btn-danger:hover{background:#ef444433}.badge{letter-spacing:.05em;text-transform:uppercase;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:600;display:inline-flex}.badge-blue{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d}.badge-purple{color:#a5b4fc;background:#6366f126;border:1px solid #6366f14d}.badge-green{color:#4ade80;background:#22c55e26;border:1px solid #22c55e4d}.badge-gray{color:var(--muted2);background:#64748b1f;border:1px solid #64748b33}.badge-amber{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40}.badge-red{color:#f87171;background:#ef44441f;border:1px solid #ef444440}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--muted2);font-size:12px;font-weight:500}.form-input{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffff0a;border-radius:8px;padding:10px 12px;font-size:13px}.form-input:focus{border-color:#6366f180}.form-error{color:#f87171;font-size:11px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border2);padding:12px;font-size:13px}tr:hover td{background:#ffffff05}tr:last-child td{border-bottom:none}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#03050dcc;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg3);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;max-height:90vh;padding:1.75rem;overflow-y:auto}.spinner{border:2px solid #6366f14d;border-top-color:var(--c2);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{background:var(--bg3);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:12px 16px;font-size:13px;animation:.3s toast-in;display:flex;box-shadow:0 8px 32px #0006}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.4s forwards fadeIn}
