:root { --bg:#0f172a; --card:#fff; --ink:#1e293b; --muted:#64748b; --line:#e2e8f0;
        --brand:#2563eb; --ok:#16a34a; --warn:#d97706; --err:#dc2626; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif; color:var(--ink); background:#f1f5f9; }
nav { display:flex; align-items:center; gap:16px; padding:12px 20px; background:var(--bg); color:#fff; }
nav a { color:#cbd5e1; text-decoration:none; }
nav a:hover { color:#fff; }
nav .spacer { flex:1; }
nav .user { color:#94a3b8; font-size:13px; }
main { max-width:1100px; margin:24px auto; padding:0 20px; }
h1 { font-size:22px; }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
th, td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--line); }
thead th { background:#f8fafc; font-size:13px; color:var(--muted); }
.kv th { width:180px; color:var(--muted); }
.counts { display:flex; gap:10px; margin:12px 0; }
.chip { padding:4px 10px; border-radius:999px; background:#e2e8f0; font-size:13px; }
.chip.provisioned { background:#dcfce7; } .chip.pending { background:#fef9c3; }
.chip.failed { background:#fee2e2; } .chip.rolled_back { background:#e5e7eb; }
.st.provisioned { color:var(--ok); } .st.failed { color:var(--err); } .st.pending { color:var(--warn); }
.filters, .prov { display:flex; gap:10px; margin:14px 0; flex-wrap:wrap; align-items:flex-start; }
.prov { flex-direction:column; }
fieldset { border:1px solid var(--line); border-radius:8px; }
input, select, textarea, button { font:inherit; padding:8px 10px; border:1px solid #cbd5e1; border-radius:6px; }
button { background:var(--brand); color:#fff; border:none; cursor:pointer; }
button.danger { background:var(--err); } button.hint, .hint { color:var(--muted); }
.btn { display:inline-block; margin-top:12px; padding:9px 14px; background:var(--brand); color:#fff; border-radius:6px; text-decoration:none; }
.empty { color:var(--muted); text-align:center; }
.flash { padding:10px 14px; margin:10px 0; border-radius:6px; }
.flash.error { background:#fee2e2; color:#991b1b; } .flash.ok { background:#dcfce7; color:#166534; }
.login-page { display:flex; min-height:100vh; align-items:center; justify-content:center; }
.login-box { background:#fff; padding:28px; border-radius:12px; width:340px; display:flex; flex-direction:column; gap:12px; box-shadow:0 10px 30px rgba(0,0,0,.12); }
.login-box label { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--muted); }
