@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-tertiary:#1a2235;--bg-card:#111827cc;--bg-card-hover:#1a2235e6;--bg-glass:#11182799;--text-primary:#f0f4ff;--text-secondary:#94a3b8;--text-muted:#64748b;--text-accent:#60a5fa;--status-online:#22c55e;--status-online-glow:#22c55e4d;--status-offline:#ef4444;--status-offline-glow:#ef44444d;--status-warning:#f59e0b;--status-warning-glow:#f59e0b4d;--accent-blue:#3b82f6;--accent-blue-light:#60a5fa;--accent-purple:#8b5cf6;--accent-cyan:#06b6d4;--accent-emerald:#10b981;--accent-rose:#f43f5e;--gradient-primary:linear-gradient(135deg, #3b82f6, #8b5cf6);--gradient-success:linear-gradient(135deg, #10b981, #06b6d4);--gradient-danger:linear-gradient(135deg, #ef4444, #f43f5e);--gradient-card:linear-gradient(135deg, #3b82f60d, #8b5cf60d);--gradient-bg:radial-gradient(ellipse at top left, #3b82f614, transparent 50%), radial-gradient(ellipse at bottom right, #8b5cf60f, transparent 50%);--border-color:#94a3b81a;--border-color-hover:#94a3b833;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 32px #0006;--shadow-glow-blue:0 0 20px #3b82f633;--shadow-glow-purple:0 0 20px #8b5cf633;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:14px}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6;overflow-x:hidden}body:before{content:"";background:var(--gradient-bg);pointer-events:none;z-index:0;position:fixed;inset:0}#root{z-index:1;min-height:100vh;position:relative}a{color:var(--accent-blue-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-blue)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b866}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;width:260px;height:100vh;padding:20px 0;display:flex;position:fixed;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border-color);margin-bottom:16px;padding:0 20px 24px}.sidebar-logo{align-items:center;gap:12px;display:flex}.sidebar-logo-icon{background:var(--gradient-primary);border-radius:var(--radius-md);width:40px;height:40px;box-shadow:var(--shadow-glow-blue);justify-content:center;align-items:center;font-size:20px;display:flex}.sidebar-logo h1{background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700}.sidebar-logo span{color:var(--text-muted);font-size:.75rem;font-weight:400}.sidebar-nav{flex:1;padding:0 12px}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:12px;margin-bottom:2px;padding:10px 16px;font-size:.9rem;font-weight:500;display:flex}.nav-item:hover{color:var(--text-primary);background:#3b82f614}.nav-item.active{color:var(--accent-blue-light);background:#3b82f61f}.nav-item .nav-icon{text-align:center;width:24px;font-size:1.2rem}.sidebar-stats{border-top:1px solid var(--border-color);margin-top:auto;padding:16px 20px}.stat-row{justify-content:space-between;align-items:center;padding:4px 0;font-size:.8rem;display:flex}.stat-row .label{color:var(--text-muted)}.stat-row .value{color:var(--text-primary);font-weight:600}.main-content{flex:1;margin-left:260px;padding:24px 32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-header h2{letter-spacing:-.02em;font-size:1.7rem;font-weight:700}.page-header .subtitle{color:var(--text-muted);margin-top:4px;font-size:.85rem}.header-actions{gap:10px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--transition-base);padding:20px}.card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-md)}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{color:var(--text-primary);font-size:.95rem;font-weight:600}.card-subtitle{color:var(--text-muted);font-size:.75rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--transition-base);padding:20px;position:relative;overflow:hidden}.stat-card:before{content:"";border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.stat-card.blue:before{background:var(--gradient-primary)}.stat-card.green:before{background:var(--gradient-success)}.stat-card.purple:before{background:linear-gradient(135deg,#8b5cf6,#a855f7)}.stat-card.rose:before{background:var(--gradient-danger)}.stat-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-color-hover);transform:translateY(-2px)}.stat-card .stat-icon{margin-bottom:12px;font-size:1.5rem}.stat-card .stat-value{letter-spacing:-.03em;margin-bottom:4px;font-size:1.8rem;font-weight:800}.stat-card .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.agents-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.agent-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);padding:20px;position:relative;overflow:hidden}.agent-card:after{content:"";background:var(--gradient-card);opacity:0;transition:opacity var(--transition-base);position:absolute;inset:0}.agent-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-blue);transform:translateY(-3px)}.agent-card:hover:after{opacity:1}.agent-card>*{z-index:1;position:relative}.agent-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.agent-name{margin-bottom:2px;font-size:1.05rem;font-weight:700}.agent-ip{color:var(--text-muted);font-family:SF Mono,Consolas,monospace;font-size:.78rem}.agent-os{color:var(--text-secondary);margin-top:4px;font-size:.75rem}.status-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:100px;align-items:center;gap:6px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge.online{color:var(--status-online);background:#22c55e1f;box-shadow:inset 0 0 0 1px #22c55e33}.status-badge.offline{color:var(--status-offline);background:#ef44441f;box-shadow:inset 0 0 0 1px #ef444433}.status-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.status-dot.online{background:var(--status-online);box-shadow:0 0 8px var(--status-online-glow);animation:2s ease-in-out infinite pulse-dot}.status-dot.offline{background:var(--status-offline);box-shadow:0 0 8px var(--status-offline-glow)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.mini-metrics{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mini-metric{text-align:center}.mini-metric .metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:.7rem}.mini-metric .metric-value{font-size:1.1rem;font-weight:700}.mini-metric .metric-bar{background:#94a3b81a;border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.mini-metric .metric-bar-fill{height:100%;transition:width var(--transition-slow);border-radius:2px}.metric-bar-fill.blue{background:var(--accent-blue)}.metric-bar-fill.purple{background:var(--accent-purple)}.metric-bar-fill.cyan{background:var(--accent-cyan)}.metric-bar-fill.green{background:var(--accent-emerald)}.metric-bar-fill.danger{background:var(--accent-rose)}.btn{border-radius:var(--radius-md);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:8px;padding:8px 18px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-glow-blue);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-color-hover);background:#3b82f614}.btn-danger{background:var(--gradient-danger);color:#fff}.btn-danger:hover{box-shadow:0 0 20px #ef44444d}.btn-sm{padding:5px 12px;font-size:.78rem}.btn-icon{border-radius:var(--radius-sm);border:1px solid var(--border-color);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:0;font-size:1rem;display:flex}.btn-icon:hover{color:var(--text-primary);border-color:var(--accent-blue);background:#3b82f614}.table-container{overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-color);padding:10px 14px;font-size:.75rem;font-weight:600}td{border-bottom:1px solid #94a3b80d;padding:10px 14px;font-size:.85rem}tr:hover td{background:#3b82f608}.terminal{border:1px solid var(--border-color);border-radius:var(--radius-md);color:#c9d1d9;background:#0d1117;max-height:300px;padding:16px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.82rem;line-height:1.7;overflow-y:auto}.terminal-input{gap:8px;margin-top:12px;display:flex}.terminal-input input{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition-fast);background:#0d1117;outline:none;flex:1;padding:10px 14px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.82rem}.terminal-input input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #3b82f61a}.tabs{border-radius:var(--radius-md);background:#0003;gap:2px;margin-bottom:20px;padding:3px;display:flex}.tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.82rem;font-weight:500;font-family:var(--font-family);background:0 0;border:none;padding:8px 18px}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-blue-light);background:#3b82f626}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px;margin-bottom:24px;display:grid}.chart-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px}.chart-card .card-title{margin-bottom:16px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state .empty-icon{opacity:.4;margin-bottom:20px;font-size:4rem}.empty-state h3{margin-bottom:8px;font-size:1.3rem;font-weight:600}.empty-state p{color:var(--text-muted);max-width:400px;font-size:.9rem}.loading-spinner{justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:3px solid #3b82f61a;border-top-color:var(--accent-blue);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.connection-bar{border-radius:100px;align-items:center;gap:8px;padding:6px 14px;font-size:.75rem;font-weight:500;display:flex}.connection-bar.connected{color:var(--status-online);background:#22c55e1a}.connection-bar.disconnected{color:var(--status-offline);background:#ef44441a}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.4s forwards fadeIn}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.slide-in{animation:.3s forwards slideIn}@media (width<=768px){.sidebar{display:none}.main-content{margin-left:0;padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.agents-grid,.chart-grid{grid-template-columns:1fr}}
