:root{--p:#6750a4;--bg:#f5f3f8;--card:#fff;--text:#28242d;--muted:#6d6674;--line:#ddd7e3;--red:#b42318;--green:#147d55}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.shell{max-width:1120px;margin:auto;padding:18px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.brand{font-size:20px;font-weight:800}.nav,.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid #aaa2b3;background:#fff;color:#443c4d;border-radius:7px;padding:9px 13px;font-weight:650;cursor:pointer}.btn.primary{background:var(--p);border-color:var(--p);color:#fff}.btn.danger{color:var(--red)}.btn:disabled{opacity:.5}.banner{margin:12px 0;padding:11px 14px;border-radius:8px;background:#eee8fa;color:#4f378b}.card{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:18px;margin-top:14px;box-shadow:0 2px 8px #3228460d}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{font-size:28px;font-weight:800}.muted{color:var(--muted)}.field{width:100%;border:1px solid #bbb3c3;border-radius:7px;padding:10px;background:#fff}.filters{display:grid;grid-template-columns:1fr 180px 170px auto;gap:8px;margin-bottom:12px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:11px;border-bottom:1px solid #eeeaf1}th{font-size:12px;color:var(--muted)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eeeaf4;margin:2px;font-size:12px;font-weight:700}.active{color:var(--green)}.inactive{color:var(--red)}.status{min-height:24px;margin:10px 0;color:#4f378b}.error{color:var(--red)}.hidden{display:none!important}.login{max-width:480px;margin:10vh auto}.menu{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tile{padding:22px;text-align:left}.modal{position:fixed;inset:0;background:#0005;display:grid;place-items:center;padding:16px}.dialog{background:#fff;border-radius:12px;padding:20px;width:min(520px,100%)}label{display:block;margin:10px 0}.roleline{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:8px}.audit{padding:10px 0;border-bottom:1px solid var(--line)}@media(max-width:760px){.grid,.menu{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}}