  /* --- Admin stub --- */
  .adm{max-width:1400px;margin:0 auto;padding:44px 48px 60px}
  .adm-hd{display:flex;align-items:center;gap:14px;margin-bottom:8px}
  .adm-hd .adm-ic{width:52px;height:52px;border-radius:14px;background:var(--bg-purp);color:var(--t-purp);display:flex;align-items:center;justify-content:center;font-size:26px}
  .adm-hd .adm-title{font-size:23px;font-weight:600}
  .adm-lead{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:6px 0 26px;max-width:820px}
  .adm-card{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:16px;padding:22px 24px;margin-bottom:16px}
  .adm-card h3{font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px;margin-bottom:8px}
  .adm-card h3 i{font-size:18px;color:var(--ep)}
  .adm-card p{font-size:13px;color:var(--text-secondary);line-height:1.6}
  .adm-soon{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--bg-warn);color:var(--t-warn);padding:4px 11px;border-radius:20px;margin-left:auto}
  .adm-card-hd{display:flex;align-items:center;gap:9px;margin-bottom:8px}
  .adm-card-hd h3{margin-bottom:0}
  .adm-note{display:flex;gap:11px;align-items:flex-start;background:var(--bg-info);border:.5px solid var(--border-t);border-radius:12px;padding:13px 16px;font-size:12.5px;color:var(--text-secondary);line-height:1.55}
  .adm-note i{color:var(--t-info);font-size:17px;flex-shrink:0;margin-top:1px}
  .adm-note.err{background:var(--bg-warn)}.adm-note.err i{color:var(--t-warn)}
  /* --- Admin: access policy editor --- */
  .adm-savebar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;background:var(--bg-card);border:.5px solid var(--border-t);border-radius:12px;padding:11px 16px;margin-bottom:18px}
  .adm-savebar .adm-sb-meta{font-size:12px;color:var(--text-tertiary)}
  .adm-savebar .adm-sb-sp{margin-left:auto}
  .adm-cat{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);display:flex;align-items:center;gap:10px;margin:22px 0 10px}
  .adm-cat .adm-cat-add{margin-left:auto}
  .adm-rrow{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:12px;padding:14px 16px;margin-bottom:10px}
  .adm-rrow-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px}
  .adm-rrow-ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
  .adm-rrow-nm{font-size:14px;font-weight:600}
  .adm-rrow-ct{font-size:11px;color:var(--text-tertiary);margin-left:auto}
  .adm-chips{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
  .adm-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:var(--bg-purp);color:var(--t-purp);border:.5px solid var(--border-t);border-radius:20px;padding:4px 6px 4px 11px;font-weight:500}
  .adm-chip button{border:none;background:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;display:flex;opacity:.6;padding:0}
  .adm-chip button:hover{opacity:1}
  .adm-chip.lock{background:var(--bg-ok);color:var(--t-ok)}
  .adm-chip-empty{font-size:12px;color:var(--text-tertiary);font-style:italic}
  .adm-mgr{background:var(--bg-card);border:.5px solid var(--border-t);border-radius:16px;padding:20px 22px;margin:26px 0 16px}
  .adm-lookup{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:.5px solid var(--border-t);border-radius:12px;padding:10px 14px;margin-bottom:14px}
  .adm-lookup i{color:var(--ep);font-size:17px}
  .adm-lookup input{flex:1;min-width:0;max-width:none}
  .adm-lk-res{background:var(--bg-purp);border:.5px solid var(--border-t);border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:13px}
  .adm-lk-res.err{background:var(--bg-warn);color:var(--t-warn)}
  .adm-lk-hd{margin-bottom:10px}
  .adm-lk-btns{display:flex;flex-wrap:wrap;gap:8px}
  .adm-grantbtn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;border:.5px solid var(--border-t);background:var(--bg-card);color:var(--text-tertiary);border-radius:20px;padding:5px 12px;cursor:pointer}
  .adm-grantbtn:hover{border-color:var(--ep);color:var(--ep)}
  .adm-grantbtn.on{background:var(--bg-ok);color:var(--t-ok);cursor:default;border-color:transparent}
  .adm-prow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:.5px solid var(--border-t)}
  .adm-prow:first-of-type{border-top:none}
  .adm-prow-main{flex:1;min-width:0}
  .adm-prow-nm{font-size:13px;font-weight:600}
  .adm-prow-sub{font-size:12px;color:var(--text-tertiary);margin-top:2px}
  .adm-unres{color:var(--t-warn);font-style:italic}
  .btn-sm{font-size:12px;padding:6px 12px}



/* Admin access-matrix table, formerly injected at runtime by paintAdmin() */
.adm-mx-wrap{overflow-x:auto;border-radius:12px;margin-bottom:6px}
table.adm-mx{border-collapse:collapse;width:100%;font-size:13px}
table.adm-mx th,table.adm-mx td{border-bottom:1px solid var(--border);border-right:1px solid var(--border)}
table.adm-mx th:last-child,table.adm-mx td:last-child{border-right:none}
.adm-mx-corner{position:sticky;left:0;background:var(--bg-secondary);text-align:left;padding:10px 12px;font-weight:600;z-index:2;min-width:220px}
.adm-mx-dom{background:var(--color-dark,#110038);color:#fff;text-align:center;padding:7px 10px;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.adm-mx-rep{background:var(--bg-secondary);text-align:center;padding:8px 10px;font-weight:500;vertical-align:bottom;min-width:96px}
.adm-mx-ag{position:sticky;left:0;background:#fff;text-align:left;padding:9px 12px;font-weight:500}
table.adm-mx tr.lock .adm-mx-ag,table.adm-mx tr.lock td{background:var(--bg-secondary)}
.adm-mx-cell{text-align:center;padding:7px}
.adm-mx-cell input{width:16px;height:16px;cursor:pointer}
.adm-mx-perm{font-size:10px;color:var(--text-secondary);font-weight:400}
.adm-mx-rm{border:none;background:none;color:var(--text-tertiary);cursor:pointer;font-size:14px;margin-left:6px}
.adm-mx-rm:hover{color:#DC2626}
