:root{--bg: #0b0f14;--panel: #131a22;--fg: #d8e3ee;--muted: #6b7c8e;--accent: #00d4ff;--ok: #22c55e;--warn: #f59e0b;--err: #ef4444}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,sans-serif}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.nav{background:var(--panel);padding:16px;display:flex;flex-direction:column;gap:12px;border-right:1px solid #1f2933}.brand{letter-spacing:.18em;color:var(--accent);margin:0 0 8px}.nav nav{display:flex;flex-direction:column;gap:6px}.nav nav a{color:var(--fg);text-decoration:none;padding:6px 8px;border-radius:4px}.nav nav a:hover{background:#1c2530}.footer{margin-top:auto;font-size:12px;color:var(--muted)}.main{padding:24px}table.tasks{width:100%;border-collapse:collapse}table.tasks th,table.tasks td{text-align:left;padding:8px 10px;border-bottom:1px solid #1f2933}.status{padding:2px 8px;border-radius:999px;font-size:12px}.status-pending,.status-needs_approval{background:#2a2410;color:var(--warn)}.status-approved,.status-running{background:#102a3a;color:var(--accent)}.status-succeeded{background:#0e2a18;color:var(--ok)}.status-failed,.status-cancelled{background:#2a1010;color:var(--err)}.page{max-width:1100px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-head h1{margin:0}.actions{display:flex;gap:8px}.hint{color:var(--muted)}.error{background:#2a1010;color:var(--err);padding:10px 14px;border-radius:6px;margin-bottom:16px}.error a{color:var(--err)}button{background:#1c2530;color:var(--fg);border:1px solid #2a3645;padding:6px 12px;border-radius:4px;cursor:pointer}button:hover:not(:disabled){background:#233040}button:disabled{opacity:.5;cursor:not-allowed}button.btn-primary{background:var(--accent);color:#001722;border-color:var(--accent);font-weight:600}button.btn-primary:hover:not(:disabled){background:#4ee0ff}button.btn-danger{background:#2a1010;color:var(--err);border-color:#5a2020}button.btn-danger:hover:not(:disabled){background:#3a1818}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:16px}.card{background:var(--panel);padding:18px;border-radius:8px;border:1px solid #1f2933;display:flex;flex-direction:column;gap:10px}.card h3{margin:0;color:var(--accent)}.card .btn,.card a.btn{display:inline-block;align-self:flex-start;background:#1c2530;color:var(--fg);padding:6px 12px;border-radius:4px;text-decoration:none;border:1px solid #2a3645}.card .btn:hover{background:#233040}table.data{width:100%;border-collapse:collapse}table.data th,table.data td{text-align:left;padding:8px 10px;border-bottom:1px solid #1f2933}.badge{padding:2px 8px;border-radius:999px;font-size:12px;background:#1c2530;color:var(--muted)}.badge.active,.badge.idle,.badge.online{background:#0e2a18;color:var(--ok)}.badge.draining{background:#2a2410;color:var(--warn)}.badge.error,.badge.revoked,.badge.offline{background:#2a1010;color:var(--err)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0}.stats-grid>div{background:var(--panel);padding:12px;border-radius:6px}.stats-grid strong{display:block;color:var(--muted);font-weight:500;font-size:12px}.stats-grid>div>div:last-child{font-size:22px;margin-top:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);padding:24px;border-radius:8px;max-width:640px;width:90%;max-height:90vh;overflow-y:auto;border:1px solid #2a3645}.modal h2{margin-top:0;color:var(--accent)}.modal h3{margin-top:18px;margin-bottom:8px;color:var(--fg)}.modal label.stacked{display:flex;flex-direction:column;gap:6px;margin:12px 0}.modal input[type=text],.modal input:not([type]){background:#0b0f14;color:var(--fg);border:1px solid #2a3645;padding:6px 10px;border-radius:4px;font:inherit}.modal .actions{justify-content:flex-end;margin-top:16px}.token-row{display:flex;gap:8px;align-items:center;background:#0b0f14;padding:8px;border-radius:6px}.token{font-family:ui-monospace,monospace;word-break:break-all;flex:1;font-size:13px}
