:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f0f2f5;--border: #dfe3e8;--text: #1b1f24;--muted: #5f6b7a;--accent: #2f6fde;--accent-text: #ffffff;--ok: #1d8a4e;--ok-bg: #e3f5ea;--warn: #9a6400;--warn-bg: #fdf1d8;--danger: #c4312b;--danger-bg: #fbe5e4;--log-bg: #11151a;--log-text: #d7dde4;--radius: 10px;--shadow: 0 1px 2px rgb(0 0 0 / 6%), 0 2px 8px rgb(0 0 0 / 4%);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0f1216;--surface: #171b21;--surface-2: #1e232a;--border: #2b323b;--text: #e6e9ed;--muted: #97a1ad;--accent: #5b92f0;--accent-text: #0b0e12;--ok: #4cc283;--ok-bg: #133523;--warn: #e0a53a;--warn-bg: #3a2c10;--danger: #f0706a;--danger-bg: #3d1716;--log-bg: #0a0c0f;--shadow: none;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.45rem;margin:0 0 1rem;font-weight:650}h2{font-size:1.1rem;margin:0 0 .5rem;font-weight:600}p{margin:0 0 .75rem}code,pre,.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.88em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.muted{color:var(--muted)}.small{font-size:.85rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack>*+*{margin-top:1rem}label{display:block;font-weight:550;font-size:.9rem;margin-bottom:.3rem}.field{margin-bottom:1rem}input,select{width:100%;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:560;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;padding:.5rem .95rem;cursor:pointer;text-decoration:none;white-space:nowrap}button:hover:not(:disabled),.btn:hover{filter:brightness(.97);text-decoration:none}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{background:transparent;border-color:transparent}button.small{padding:.3rem .65rem;font-size:.85rem}button.block{width:100%}.alert{border-radius:8px;padding:.65rem .85rem;margin-bottom:1rem;font-size:.92rem}.alert.error{background:var(--danger-bg);color:var(--danger)}.alert.ok{background:var(--ok-bg);color:var(--ok)}.alert.warn{background:var(--warn-bg);color:var(--warn)}.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.12rem .5rem;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.badge.ok,.badge.succeeded,.badge.approved{background:var(--ok-bg);color:var(--ok)}.badge.warn,.badge.running,.badge.pending{background:var(--warn-bg);color:var(--warn)}.badge.danger,.badge.failed,.badge.denied,.badge.disabled{background:var(--danger-bg);color:var(--danger)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid var(--border);vertical-align:top}th{font-weight:600;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2)}tr:last-child td{border-bottom:0}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem 1rem}.auth-page .card{width:100%;max-width:400px;padding:1.75rem}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.15rem;margin-bottom:1.25rem}.brand svg{color:var(--accent)}
