:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #14171f;--text-muted: #6b7280;--accent: #2f5df5;--accent-hover: #2447c9;--danger: #dc2626;--danger-hover: #b91c1c;--success: #16a34a;--warning: #d97706;--radius: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f1115;--surface: #171a21;--border: #2a2e37;--text: #e7e9ee;--text-muted: #9aa1ac;--accent: #5b82ff;--accent-hover: #7b9aff}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px}a{color:var(--accent)}h1,h2,h3{margin:0 0 12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .brand{font-weight:700;font-size:16px;padding:4px 8px 16px}.sidebar a{display:block;padding:8px 10px;border-radius:var(--radius);color:var(--text);text-decoration:none;font-size:13px}.sidebar a:hover,.sidebar a.active{background:var(--bg)}.sidebar .section-label{font-size:11px;text-transform:uppercase;color:var(--text-muted);padding:12px 10px 4px}.main{flex:1;padding:24px 32px;max-width:1100px}.topbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:16px;font-size:13px;color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase}tr:last-child td{border-bottom:none}button,.btn{font-family:inherit;font-size:13px;padding:6px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}button:hover{background:var(--bg)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.danger:hover{background:var(--danger-hover)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:13px;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text)}label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px}.field{margin-bottom:12px}.row{display:flex;gap:8px;align-items:center}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--bg);border:1px solid var(--border)}.badge.online{color:var(--success);border-color:var(--success)}.badge.offline{color:var(--text-muted)}.badge.needs_repair,.badge.ambiguous_auth{color:var(--warning);border-color:var(--warning)}.badge.error{color:var(--danger);border-color:var(--danger)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:8px 4px}.tabs button.active{border-bottom-color:var(--accent);color:var(--accent)}.error-text{color:var(--danger);font-size:13px}.muted{color:var(--text-muted)}
