:root{color-scheme:light dark;--bg: #f6f7f9;--surface: #ffffff;--surface-muted: #f0f2f5;--border: #dde1e7;--text: #1c2330;--text-muted: #5d6879;--accent: #2f5bd3;--accent-text: #ffffff;--accent-soft: #e6ecfb;--ok: #1e7b4f;--ok-soft: #e3f4ea;--danger: #b42a2a;--danger-soft: #fbe7e7;--warn-soft: #fff4d6;--warn-text: #6b4e00;--radius: 8px;--shadow: 0 1px 2px rgb(16 24 40 / 6%);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}@media(prefers-color-scheme:dark){:root{--bg: #111418;--surface: #1a1e24;--surface-muted: #222831;--border: #2f3640;--text: #e6e9ee;--text-muted: #9aa4b2;--accent: #7096f5;--accent-text: #0d1220;--accent-soft: #1e2a45;--ok: #5cc98f;--ok-soft: #173326;--danger: #f07a7a;--danger-soft: #3a1c1c;--warn-soft: #3a3115;--warn-text: #f1d27a;--shadow: none}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent)}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.1rem}code,.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85em}.muted{color:var(--text-muted)}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;text-decoration:none;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.btn.small{padding:3px 10px;font-size:.82rem}.actions{display:flex;flex-wrap:wrap;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:.85rem;font-weight:600}.field .hint{font-size:.8rem;color:var(--text-muted)}.field .invalid{font-size:.8rem;color:var(--danger)}input,select,textarea{font:inherit;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}input.ng-invalid.ng-touched,select.ng-invalid.ng-touched,textarea.ng-invalid.ng-touched{border-color:var(--danger)}.checkbox{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}table th,table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}table th{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}table tr:last-child td{border-bottom:none}table tr.clickable{cursor:pointer}table tr.clickable:hover td{background:var(--surface-muted)}table .num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.78rem;font-weight:600}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.failed{background:var(--danger-soft);color:var(--danger)}.alert{padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:.9rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.warn{background:var(--warn-soft);color:var(--warn-text)}.alert.success{background:var(--ok-soft);color:var(--ok)}.empty{padding:24px;text-align:center;color:var(--text-muted)}
