.security-workspace{display:grid;gap:18px;min-width:0}.security-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--nova-border);padding-bottom:12px}.security-tabs [role=tab][aria-selected=true]{background:var(--nova-primary-soft);color:var(--nova-primary-text);border-color:var(--nova-primary);box-shadow:inset 0 -2px var(--nova-primary)}.security-search{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:16px 0}.security-search label{display:grid;gap:6px;flex:1;min-width:180px;font-size:13px;font-weight:600}.security-search .button{flex:none}.security-dialog{width:min(1200px,calc(100vw - 24px));max-width:1200px}.security-dialog>.erp-form{max-width:none}.security-permission-summary{padding:12px;background:var(--nova-primary-soft);border-radius:8px;color:var(--nova-primary-text)}.security-matrix-wrap{overflow:auto;max-height:52vh;border:1px solid var(--nova-border);border-radius:9px;min-width:0}.security-matrix{border-collapse:collapse;width:100%;min-width:940px;font-size:12px}.security-matrix caption{text-align:left;padding:12px;font-weight:600}.security-matrix th,.security-matrix td{padding:12px;border-top:1px solid var(--nova-border);vertical-align:top;text-align:left}.security-matrix thead th{position:sticky;top:0;background:var(--nova-surface-muted);z-index:1}.security-matrix th[scope=row]{min-width:165px;width:18%;background:var(--nova-surface-muted)}.security-permission{display:flex;align-items:start;gap:6px;line-height:1.5;margin-bottom:10px;min-width:74px;cursor:pointer}.security-permission input[type=checkbox]{width:auto;flex:none;margin-top:2px}.security-permission small{display:block;font-size:10px;color:var(--nova-warning)}.security-module-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.security-module-actions .button{font-size:10px;padding:6px}.security-effective{padding:14px;background:var(--nova-surface-muted);border:1px solid var(--nova-border);border-radius:9px}.security-effective ul{columns:2;padding-left:20px;line-height:1.8;font-size:12px}.security-effective li{break-inside:avoid}.security-role-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:1px solid var(--nova-border);border-radius:9px;padding:16px;min-width:0}.security-role-choices legend{padding:0 7px;font-weight:600}.security-role-choices label{display:flex;gap:9px;align-items:start;font-size:13px;overflow-wrap:anywhere}.security-role-choices input[type=checkbox]{width:auto;margin-top:3px;flex:none}.security-workspace [aria-busy=true]{opacity:.7}.security-workspace [role=tabpanel]{min-width:0}.security-dialog .erp-form{margin-top:12px}.security-dialog .erp-form>[type=submit]{box-shadow:var(--nova-shadow)}@media(max-width:800px){.security-role-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.security-effective ul{columns:1}}@media(max-width:500px){.security-tabs>.button{flex:1;padding:10px 7px}.security-search{align-items:stretch}.security-search label{flex-basis:100%}.security-dialog{padding:14px}.security-matrix-wrap{max-height:48vh}.security-role-choices{grid-template-columns:minmax(0,1fr)}}@media print{.security-tabs,.security-search,.security-module-actions{display:none!important}}

/* Give the permission matrix room on desktop; keep only its table scrollable on phones. */
.admin-layout dialog.security-dialog {
    width: min(1120px, calc(100vw - 32px));
    max-width: 1120px;
}
.security-workspace .erp-master-table {
    min-width: 720px;
}
.security-workspace .erp-master-table th:first-child,
.security-workspace .erp-master-table td:first-child {
    min-width: 130px;
}