@import"https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg: #0a0d12;--surface: #111520;--surface2: #161c28;--border: #1e2535;--accent: #00c896;--accent2: #0077ff;--text: #e8edf5;--muted: #6b7a99;--dim: #3a4460;--font-body: "DM Sans", sans-serif;--font-display: "Syne", sans-serif;--font-mono: "JetBrains Mono", monospace;--sidebar-w: 220px;--topbar-h: 54px;--radius: 8px;--radius-sm: 4px;--radius-lg: 12px;--t: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent2);text-decoration:none}a:hover{color:var(--accent)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--dim)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:12px;font-weight:500;border:none;cursor:pointer;transition:all var(--t);white-space:nowrap;line-height:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#000}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-secondary{background:var(--accent2);color:#fff}.btn-secondary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--dim);background:var(--border)}.btn-danger{background:transparent;color:#ff4d6d;border:1px solid rgba(255,77,109,.3)}.btn-danger:hover:not(:disabled){background:#ff4d6d1a}.btn-sm{padding:5px 10px;font-size:11px}.btn-xs{padding:3px 8px;font-size:10px}.btn-icon{padding:6px;border-radius:var(--radius-sm)}.input,.select,.textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:13px;padding:8px 12px;transition:border-color var(--t);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.input::placeholder{color:var(--muted)}.input-mono{font-family:var(--font-mono);font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}.card-title{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--text)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600;letter-spacing:.04em}.badge-green{background:#00c8961f;color:var(--accent);border:1px solid rgba(0,200,150,.2)}.badge-blue{background:#0077ff1f;color:var(--accent2);border:1px solid rgba(0,119,255,.2)}.badge-muted{background:#6b7a991a;color:var(--muted);border:1px solid var(--border)}.badge-warn{background:#f5a6231f;color:#f5a623;border:1px solid rgba(245,166,35,.2)}.badge-danger{background:#ff4d6d1f;color:#ff4d6d;border:1px solid rgba(255,77,109,.2)}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;padding:8px 12px;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--border)}.table td{padding:9px 12px;border-bottom:1px solid rgba(30,37,53,.4);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#ffffff04}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto}.modal-title{font-family:var(--font-display);font-size:16px;font-weight:700;margin-bottom:20px}.section-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:fadeInUp .2s ease forwards}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.active{background:var(--accent);box-shadow:0 0 0 2px #00c89626}.status-dot.inactive{background:var(--dim)}.status-dot.warn{background:#f5a623}.status-dot.danger{background:#ff4d6d}.form-group{display:flex;flex-direction:column;gap:5px}.form-label{font-size:11px;font-weight:500;color:var(--muted)}.form-error{font-size:11px;color:#ff4d6d;margin-top:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 600px){.form-grid{grid-template-columns:1fr}}.toggle-wrap{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle{position:relative;width:36px;height:20px;background:var(--dim);border-radius:10px;transition:background var(--t);flex-shrink:0}.toggle.on{background:var(--accent)}.toggle:after{content:"";position:absolute;width:14px;height:14px;background:#fff;border-radius:50%;top:3px;left:3px;transition:left var(--t)}.toggle.on:after{left:19px}.toggle-label{font-size:12px;color:var(--muted);-webkit-user-select:none;user-select:none}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center;color:var(--muted)}.empty-state .icon{font-size:36px;margin-bottom:12px;opacity:.4}.empty-state .title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px}.empty-state .desc{font-size:12px;max-width:280px}
