:root{--bg:#0e1014;--panel:#161a22;--panel-2:#1e2532;--border:#2a3142;--text:#e8ecf2;--muted:#8a93a3;--accent:#4a90ff;--good:#36c177;--warn:#f0b454;--bad:#ef5b5b;--mono:"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:20px 16px}.sidebar h1{font-size:14px;margin:0 0 18px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{padding:6px 10px;border-radius:4px;color:var(--text)}.sidebar nav a.section{color:var(--muted);font-size:11px;text-transform:uppercase;padding-top:14px;padding-bottom:4px}.sidebar nav a:hover{background:var(--panel-2);text-decoration:none}.sidebar .nav-sub{padding-left:18px;font-size:13px}.main{padding:24px 32px}.main h2{margin:0 0 4px;font-size:22px}.main .subtitle{color:var(--muted);margin-bottom:20px}.banner{padding:10px 14px;border-radius:4px;margin-bottom:16px;font-size:13px}.banner.good{background:rgba(54,193,119,.12);border:1px solid var(--good)}.banner.warn{background:rgba(240,180,84,.12);border:1px solid var(--warn)}.banner.bad{background:rgba(239,91,91,.12);border:1px solid var(--bad)}.card{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px;margin-bottom:16px}.card h3{margin:0 0 8px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.card .big{font-size:24px;font-weight:600}.grid-2{grid-template-columns:repeat(2,1fr);grid-gap:12px}.grid-2,.grid-3{display:grid;gap:12px}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}table{width:100%;border-collapse:collapse;font-size:13px}table td,table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}table th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.mono{font-family:var(--mono);font-size:12px}.btn,button{background:var(--accent);color:#fff;border:0;padding:8px 14px;border-radius:4px;font-size:13px;cursor:pointer;font-weight:500}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed}.btn.secondary,button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.btn.danger,button.danger{background:var(--bad)}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:4px;font-size:13px;width:100%}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;margin-top:12px}.error-text{color:var(--bad);font-size:12px;margin-top:4px}pre{border:1px solid var(--border);border-radius:4px;padding:10px;overflow-x:auto;font-size:12px}.role-badge,pre{background:var(--panel-2)}.role-badge{display:inline-block;padding:1px 8px;border-radius:9999px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);margin-right:4px}.role-badge.admin{color:var(--accent);border-color:var(--accent)}.role-badge.super_admin{color:#c084fc;border-color:#c084fc}.role-badge.engineer{color:var(--good);border-color:var(--good)}.role-badge.compliance{color:var(--warn);border-color:var(--warn)}.role-badge.ops{color:#38bdf8;border-color:#38bdf8}.role-badge.viewer{color:var(--muted)}.status-badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px;text-transform:uppercase;background:var(--panel-2);border:1px solid var(--border)}.status-badge.active{color:var(--good);border-color:var(--good)}.status-badge.killed{color:var(--bad);border-color:var(--bad)}.status-badge.pending_approval{color:var(--warn);border-color:var(--warn)}.status-badge.executed{color:var(--good);border-color:var(--good)}.status-badge.denied{color:var(--bad);border-color:var(--bad)}.status-badge.expired{color:var(--muted)}.signin-shell{max-width:420px;margin:80px auto;padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:6px}