/* v16.45 Roles & permissions */
.pm-t th.pm-c, .pm-t td.pm-c { text-align: center; inline-size: 92px; padding-inline: 4px; }
.pm-t td.pm-c.na { color: var(--color-text-muted); }
.pm-t td.pm-f b, .pm-u td b { display: block; font-weight: 600; }
.pm-t code, .pm-u code { font-size: 11.5px; color: var(--color-text-muted); direction: ltr; unicode-bidi: isolate; }
.pm-mod th { background: var(--color-surface-sunken); font-size: 13px; text-align: start; padding: 8px 12px; }
.pm-ck { inline-size: 30px; block-size: 30px; display: inline-grid; place-items: center; border-radius: 8px; border: 1.5px solid var(--color-border-control); background: var(--color-surface); color: #fff; cursor: pointer; }
.pm-ck.on { background: var(--color-brand); border-color: var(--color-brand); }
.pm-ck.ov { box-shadow: 0 0 0 2px var(--color-warn-fg, #d97706); }
.pm-ck.ch { box-shadow: 0 0 0 2px var(--color-brand-text, #1d4ed8); outline: 2px dashed var(--color-brand); outline-offset: 2px; }
.pm-ck[disabled] { cursor: not-allowed; opacity: .55; }
.pm-ck:focus-visible { outline: 2px solid var(--color-focus, #2563eb); outline-offset: 2px; }
.pm-chain { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; }
.pm-chain > div { flex: 1 1 150px; display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--color-border); border-radius: 10px; }
.pm-chain > div.eff { border-color: var(--color-brand); background: var(--color-brand-soft, var(--color-blue-50)); }
.pm-chain > span { align-self: center; font-weight: 700; color: var(--color-text-muted); }
.pm-side { inline-size: min(340px, 100%); display: flex; flex-direction: column; gap: 12px; }
.pm-mods { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; align-content: start; }
.pm-row { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 14px; flex-wrap: wrap; }
.pm-u select { min-inline-size: 110px; inline-size: auto !important; }
#rp .pm-u select { inline-size: auto; }
@media (max-width: 760px) { .pm-side { inline-size: 100%; } }
.pm-tg { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; font: inherit; font-weight: 700; color: var(--color-text); cursor: pointer; padding: 4px 0; }
.pm-ms { min-inline-size: 52px; block-size: 28px; border-radius: 999px; border: 1.5px solid var(--color-border-control); background: var(--color-surface); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; color: var(--color-text-secondary); }
.pm-ms.some { border-color: var(--color-brand); color: var(--color-brand-text); }
.pm-ms.all { background: var(--color-brand); border-color: var(--color-brand); color: #fff; }
.pm-ms[disabled] { opacity: .55; cursor: not-allowed; }
