:root,[data-theme=dark]{--bg: #0d1117;--bg-elevated: #161b22;--bg-hover: #1f242c;--border: #30363d;--border-strong: #484f58;--text: #e6edf3;--text-muted: #8b949e;--text-dim: #6e7681;--accent: #2f81f7;--accent-hover: #58a6ff;--health-ok: #3fb950;--health-warn: #d29922;--health-high: #f0883e;--health-error: #f85149;--health-offline: #6e7681;--health-pending: #8957e5;--role-db: #bb80ff;--radius: 6px;--radius-sm: 4px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 500px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--font-size-2xs: .625rem;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-md: .8125rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--spacing-xxs: 4px;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .14), 0 2px 8px rgba(0, 0, 0, .08);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .18), 0 4px 16px rgba(0, 0, 0, .1);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .25s ease}[data-theme=light]{--bg: #f6f8fa;--bg-elevated: #ffffff;--bg-hover: #eaeef2;--border: #d0d7de;--border-strong: #afb8c1;--text: #1f2328;--text-muted: #57606a;--text-dim: #8c959f;--accent: #0969da;--accent-hover: #0550ae;--health-ok: #1a7f37;--health-warn: #9a6700;--health-high: #c2510a;--health-error: #cf222e;--health-offline: #8c959f;--health-pending: #8250df;--role-db: #7c3aed}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{font-family:inherit;font-size:13px;padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:background .1s,border-color .1s}button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}input,select,textarea{font-family:inherit;font-size:13px;padding:6px 10px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}tbody tr:hover{background:var(--bg-elevated);cursor:pointer}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}.dot.ok{background:var(--health-ok)}.dot.warn{background:var(--health-warn)}.dot.error{background:var(--health-error)}.dot.offline{background:var(--health-offline)}.dot.pending{background:var(--health-pending)}.badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:600;border-radius:12px;background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.badge.ok{color:var(--health-ok);border-color:var(--health-ok)}.badge.warn{color:var(--health-warn);border-color:var(--health-warn)}.badge.error{color:var(--health-error);border-color:var(--health-error)}.mono{font-family:var(--font-mono);font-size:12px}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}html,body{margin:0;padding:0;font-family:var(--font-sans, system-ui, sans-serif);background:var(--bg, #fff);color:var(--text, #111)}
