:root{--bg-main:#090d16;--bg-card:#111726;--bg-card-hover:#172033;--bg-input:#0d1320;--border-color:#1e293b;--border-glow:#334155;--accent-cyan:#00f0ff;--accent-blue:#3b82f6;--accent-purple:#8b5cf6;--status-success:#10b981;--status-warning:#f59e0b;--status-danger:#ef4444;--status-info:#06b6d4;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-glow)}.app-container{min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.page-body{width:100%;max-width:1600px;margin:0 auto;padding:1.5rem}.banner-disconnected{color:#fbbf24;background:linear-gradient(90deg,#f59e0b26,#ef444426);border-bottom:1px solid #f59e0b4d;justify-content:space-between;align-items:center;padding:.6rem 1.5rem;font-size:.85rem;font-weight:500;display:flex}.banner-disconnected-badge{text-transform:uppercase;letter-spacing:.05em;background:#f59e0b33;border:1px solid #f59e0b66;border-radius:4px;padding:.15rem .6rem;font-size:.75rem;font-weight:700}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.25rem;transition:border-color .15s}.card:hover{border-color:var(--border-glow)}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card-title{color:var(--text-primary);align-items:center;gap:.5rem;font-size:1rem;font-weight:600;display:flex}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.badge-warning{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d}.badge-danger{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.badge-info{color:#22d3ee;background:#06b6d426;border:1px solid #06b6d44d}.badge-neutral{color:#cbd5e1;background:#94a3b826;border:1px solid #94a3b84d}.table-container{border:1px solid var(--border-color);border-radius:8px;width:100%;overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%}.table th{background:var(--bg-card);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);padding:.75rem 1rem;font-size:.75rem;font-weight:600}.table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:.85rem 1rem}.table tbody tr:hover{background:var(--bg-card-hover)}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{color:#fff;background:#2563eb;border-color:#3b82f6}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{border-color:var(--border-glow)}.btn-danger{color:#f87171;background:#ef444433;border-color:#ef444466}.btn-danger:hover{background:#ef44444d}.input{background:var(--bg-input);border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:6px;outline:none;padding:.6rem .85rem;transition:border-color .15s}.input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #3b82f633}.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.25rem;display:grid}
