:root{--font-ui: "IBM Plex Sans", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", monospace;--radius-sm: 4px;--radius-md: 8px;--status-up: #3ecf8e;--status-down: #e5484d;--status-warn: #e6a23c}[data-theme=dark]{--bg-canvas: #0d1216;--bg-surface: #141b20;--bg-surface-raised: #1b242a;--bg-hover: #212b32;--border-subtle: #26313688;--border-strong: #37444c;--text-primary: #e8edf0;--text-secondary: #93a3ad;--text-muted: #5f7079;--accent: #e8a33d;--accent-hover: #f0b355;--accent-contrast: #16110a;--shadow-elevated: 0 8px 24px rgba(0, 0, 0, .35)}[data-theme=light]{--bg-canvas: #f5f6f4;--bg-surface: #ffffff;--bg-surface-raised: #ffffff;--bg-hover: #eef0ee;--border-subtle: #dde1de;--border-strong: #c7ccc8;--text-primary: #1a2226;--text-secondary: #566169;--text-muted: #8b969c;--accent: #b4700f;--accent-hover: #995f0c;--accent-contrast: #fffaf2;--shadow-elevated: 0 8px 24px rgba(20, 25, 25, .08)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);background:var(--bg-canvas);color:var(--text-primary);transition:background .15s ease,color .15s ease}code,.mono{font-family:var(--font-mono)}a{color:inherit}button{font-family:inherit}::selection{background:var(--accent);color:var(--accent-contrast)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:20px 0}.sidebar-brand{padding:0 20px 20px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.sidebar-brand .mono{font-size:11px;letter-spacing:.04em;color:var(--text-muted)}.sidebar-brand h1{font-size:16px;margin:4px 0 0;font-weight:600}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 20px;color:var(--text-secondary);text-decoration:none;font-size:14px;border-left:2px solid transparent}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{color:var(--text-primary);border-left-color:var(--accent);background:var(--bg-hover)}.main-column{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.topbar h2{font-size:15px;margin:0;font-weight:600}.topbar-actions{display:flex;align-items:center;gap:14px}.theme-toggle{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:6px 10px;color:var(--text-secondary);cursor:pointer;font-size:13px}.theme-toggle:hover{color:var(--text-primary);border-color:var(--border-strong)}.content{padding:24px;flex:1;overflow-y:auto}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-canvas)}.login-card{width:340px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:28px;box-shadow:var(--shadow-elevated)}.login-card .mono{font-size:11px;color:var(--text-muted);letter-spacing:.04em}.login-card h1{font-size:18px;margin:6px 0 22px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.field input,.field select{width:100%;padding:9px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-canvas);color:var(--text-primary);font-size:14px}.field input:focus,.field select:focus{border-color:var(--accent)}.btn{border:none;border-radius:var(--radius-sm);padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer}.btn-primary{background:var(--accent);color:var(--accent-contrast);width:100%}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary)}.btn-ghost:hover{border-color:var(--border-strong);color:var(--text-primary)}.btn-danger{background:transparent;border:1px solid var(--status-down);color:var(--status-down)}.btn-sm{padding:5px 10px;font-size:12px}.error-text{color:var(--status-down);font-size:13px;margin-bottom:12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.card-header h3{font-size:14px;margin:0;font-weight:600}.card-meta{font-size:12px;color:var(--text-muted);margin:2px 0 12px}.card-actions{display:flex;gap:8px;margin-top:12px}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-family:var(--font-mono);padding:3px 8px;border-radius:999px;border:1px solid var(--border-subtle);color:var(--text-secondary)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.status-dot.up{background:var(--status-up)}.status-dot.down{background:var(--status-down)}.status-dot.warn{background:var(--status-warn)}table{width:100%;border-collapse:collapse;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}th,td{text-align:left;padding:10px 14px;font-size:13px;border-bottom:1px solid var(--border-subtle)}th{color:var(--text-muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:none}.log-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:40}.log-panel{width:min(820px,92vw);height:min(520px,80vh);background:var(--bg-surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-elevated)}.log-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.log-panel-header h3{font-size:13px;margin:0;font-family:var(--font-mono)}.log-body{flex:1;overflow-y:auto;padding:12px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;background:var(--bg-canvas)}.section-title{font-size:13px;color:var(--text-muted);margin:0 0 12px;text-transform:uppercase;letter-spacing:.04em}.empty-state{color:var(--text-muted);font-size:13px;padding:20px;text-align:center;border:1px dashed var(--border-subtle);border-radius:var(--radius-md)}
