/* Standalone security screen: operational dashboard spacing and theme tokens. */
/* User directory: primary work surface, optional detail and secondary bulk actions. */
body #sysSecurityApp [data-security-panel="users"] .sys-security-layout{grid-template-columns:minmax(0,1fr);gap:14px}
body #sysSecurityApp [data-security-panel="users"] .sys-security-layout.has-user-detail{grid-template-columns:minmax(0,1fr) 310px}
body #sysSecurityApp .sys-security-detail .sysdash-widget-head{display:flex;justify-content:space-between;gap:8px}
body #sysSecurityApp .sys-security-table .sys-security-account-code{display:none}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table td{font-size:13px;padding:10px 12px;vertical-align:middle}
body #sysSecurityApp [data-security-panel="users"] .sys-security-row-main span{font-size:12px;line-height:1.5;color:var(--sysdash-muted-strong)}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table th{font-size:12px;padding:10px 12px}
body #sysSecurityApp [data-security-panel="users"] td[data-label="Utilisateur"]{min-width:210px}
body #sysSecurityApp [data-security-panel="users"] td[data-label="Rôles"]{max-width:320px;line-height:1.6}
body #sysSecurityApp [data-security-panel="users"] td[data-label="Actions"]{width:180px}
body #sysSecurityApp .sys-security-table tr:hover td{background:var(--sysdash-surface-2)!important}
body #sysSecurityApp .sys-security-table tr.is-selected td{background:var(--sysdash-accent-soft)!important}
body #sysSecurityApp details.security-login-toolbar{display:block;padding:8px 14px;margin:0}
body #sysSecurityApp .security-login-toolbar summary{font-size:12px;color:var(--sysdash-muted-strong);min-height:24px;align-content:center}
body #sysSecurityApp .security-bulk-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:10px}
body #sysSecurityApp .sys-security-user-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;margin:0;border-bottom:1px solid var(--sysdash-line)}
body #sysSecurityApp .sys-security-user-tab em{border:0;background:var(--sysdash-surface-2);padding:2px 6px;font-style:normal;border-radius:3px}
body #sysSecurityApp .sys-security-user-tab.is-active{background:var(--sysdash-accent-soft);border-color:var(--sysdash-accent);box-shadow:inset 0 -2px var(--sysdash-accent)}
body #sysSecurityApp .sys-security-guide{padding:8px 14px;margin:0;border:0;font-size:12px;background:transparent}
body #sysSecurityApp .sys-security-guide p{margin:8px 0}
body #sysSecurityApp .sys-security-kpis{padding:0 14px}
body #sysSecurityApp .sys-security-toolbar [data-security-search="users"]{min-width:280px;font-size:13px}
@media(max-width:1100px){body #sysSecurityApp [data-security-panel="users"] .sys-security-layout.has-user-detail{grid-template-columns:minmax(0,1fr)}body #sysSecurityApp .sys-security-detail{grid-row:1}}
@media(max-width:600px){body #sysSecurityApp .sys-security-toolbar{display:flex;flex-wrap:wrap;width:100%}body #sysSecurityApp .sys-security-toolbar [data-security-search="users"]{min-width:0;width:100%;font-size:16px}body #sysSecurityApp .sys-security-table-wrap{overflow:auto}body #sysSecurityApp .sys-security-user-tabs{gap:4px}}
body #sysSecurityApp { font-family: Roboto, "Segoe UI", sans-serif; font-size: 13px; line-height: 1.45; }
body #sysSecurityApp .sysdash-commandbar { justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 12px 14px; box-shadow: none; }
body #sysSecurityApp .sysdash-commandbar .sysdash-brand { display: flex; }
body #sysSecurityApp .sysdash-brand h1 { font-size: 20px; }
body #sysSecurityApp .sysdash-actions { flex-wrap: wrap; }
body #sysSecurityApp .sysdash-segment { gap: 4px; border: 0; background: transparent; flex-wrap: wrap; }
body #sysSecurityApp button:not(.sys-security-row-main) { min-height: 34px; border-radius: 3px; font-family: inherit; font-weight: 600; transition: background-color .15s, border-color .15s; }
body #sysSecurityApp button:not(:disabled):hover { border-color: var(--sysdash-accent); }
body #sysSecurityApp button:focus-visible,
body #sysSecurityApp input:focus-visible,
body #sysSecurityApp select:focus-visible { outline: 2px solid var(--sysdash-accent); outline-offset: 2px; }
body #sysSecurityApp .sysdash-segment button.is-active,
body #sysSecurityApp .sys-security-permission-tabs button.is-active { background: var(--sysdash-accent-soft) !important; color: var(--sysdash-text) !important; border-color: var(--sysdash-accent) !important; box-shadow: inset 0 -3px var(--sysdash-accent); }
body #sysSecurityApp .sysdash-primary-btn { background: var(--sysdash-success-soft) !important; border-color: var(--sysdash-accent-2) !important; color: var(--sysdash-text) !important; }
body #sysSecurityApp .sys-security-kpi { box-shadow: none; border-top: 2px solid var(--sysdash-accent); }
body #sysSecurityApp .sys-security-kpi.is-warning { border-top-color: var(--sysdash-warning); }
body #sysSecurityApp .sys-security-kpi.is-danger { border-top-color: var(--sysdash-danger); }
body #sysSecurityApp .sys-security-toolbar { padding-block: 8px; }
body #sysSecurityApp .sys-security-toolbar input,
body #sysSecurityApp select { min-height: 34px; border: 1px solid var(--sysdash-line-strong); border-radius: 3px; background: var(--sysdash-surface); color: var(--sysdash-text); padding: 6px 10px; font: inherit; }
body #sysSecurityApp .sys-security-permission-tabs { padding: 12px 14px; margin: 0; gap: 6px; background: var(--sysdash-surface); }
body #sysSecurityApp .sys-security-permission-tabs em { border: 0; border-radius: 3px; padding: 2px 5px; background: var(--sysdash-accent-soft); color: var(--sysdash-text); font-weight: 600; }
body #sysSecurityApp [data-security-module-filter] { background: var(--sysdash-surface-2); }
body #sysSecurityApp [data-security-module-filter] label { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; font-size: 12px; font-weight: 600; }
body #sysSecurityApp [data-security-module-select] { min-width: 240px; max-width: 100%; }
body #sysSecurityApp .sys-security-table { font: inherit; }
body #sysSecurityApp .sys-security-table th { color: var(--sysdash-muted-strong); font-size: 12px; font-weight: 600; }
body #sysSecurityApp .sys-security-table td { padding: 12px; }
body #sysSecurityApp .sys-security-table td strong { font-weight: 600; overflow-wrap: anywhere; }
body #sysSecurityApp .sys-security-subtext { font-size: 12px; font-weight: 400; line-height: 1.45; margin-top: 4px; }
body #sysSecurityApp .sys-security-table tbody tr.is-selected td { background: var(--sysdash-success-soft); }
body #sysSecurityApp .sys-security-table tbody tr:hover td { box-shadow: inset 0 1px var(--sysdash-line); }
@media (max-width: 760px) {
    body #sysSecurityApp .sysdash-actions { width: 100%; }
    body #sysSecurityApp [data-security-module-select] { width: 100%; min-width: 0; }
    body #sysSecurityApp [data-security-module-filter] label { display: grid; }
}
/* Everyday account management: compact dashboard rhythm, shared theme colors. */
body #sysSecurityApp [hidden] { display: none !important; }
body #sysSecurityApp .sys-security-kpis { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
body #sysSecurityApp .sys-security-kpis button { display:inline-flex; align-items:center; gap:8px; min-height:34px; padding:6px 12px; border:1px solid var(--sysdash-line); background:var(--sysdash-surface); color:var(--sysdash-text); font:inherit; cursor:pointer; }
body #sysSecurityApp .sys-security-kpis strong { color:var(--sysdash-accent); }
body #sysSecurityApp .sysdash-commandbar { padding:10px 14px; }
body #sysSecurityApp .sysdash-canvas-head h2 { font-size:20px; margin:0 0 4px; }
body #sysSecurityApp .sysdash-canvas-head .sysdash-eyebrow { display:none; }
body #sysSecurityApp .sys-security-row-main { border:0; background:transparent; padding:4px 0; text-align:left; }
body #sysSecurityApp .sys-security-row-main strong { font-size:13px; }
body #sysSecurityApp .sys-security-action-cluster { flex-wrap:wrap; justify-content:flex-start; }
body #sysSecurityApp .security-choice { display:flex; align-items:center; gap:12px; padding:10px 12px; border-bottom:1px solid var(--sysdash-line); cursor:pointer; font-weight:400; }
body #sysSecurityApp .security-choice input { width:18px; height:18px; flex:0 0 auto; accent-color:var(--sysdash-accent); }
body #sysSecurityApp .security-choice small { display:block; color:var(--sysdash-muted-strong); margin-top:3px; }
body #sysSecurityApp .security-choice:has(input:checked) { background:var(--sysdash-accent-soft); }
body #sysSecurityApp .security-account-choice { align-items:flex-start; text-transform:none; font-size:12px; color:var(--sysdash-text); }
body #sysSecurityApp .security-account-choice input { margin-top:3px; }
body #sysSecurityApp .security-account-choice > span { min-width:0; overflow-wrap:anywhere; }
body #sysSecurityApp .security-account-choice strong { font-size:13px; font-weight:600; }
body #sysSecurityApp .sys-security-account-code { color:var(--sysdash-muted-strong); font-size:11px; }
body #sysSecurityApp .sys-security-account-badges { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
body #sysSecurityApp .sys-security-editor > .sysdash-widget { display:flex; flex-direction:column; max-height:inherit; min-height:0; }
body #sysSecurityApp .sys-security-editor .sysdash-widget-head { flex-shrink:0; }
body #sysSecurityApp .sys-security-editor .sysdash-widget-body { min-height:0; overflow-y:auto; }
body #sysSecurityApp .sys-security-badge { gap:5px; font-weight:600; line-height:1.3; }
body #sysSecurityApp .sys-security-badge i { font-size:11px; }
body[data-theme]:not([data-theme="light"]) #sysSecurityApp .sys-security-badge.is-info { color:var(--adm-accent, #6cb5e3); }
body[data-theme]:not([data-theme="light"]) #sysSecurityApp .sys-security-badge.is-success { color:var(--adm-success, #89ca78); }
body[data-theme]:not([data-theme="light"]) #sysSecurityApp .sys-security-badge.is-warning { color:var(--adm-warning, #d7ba7d); }
body[data-theme]:not([data-theme="light"]) #sysSecurityApp .sys-security-badge.is-danger { color:var(--adm-danger, #f48771); }
body #sysSecurityApp .security-code { font-size:11px; font-weight:400; color:var(--sysdash-muted-strong); margin-top:5px; overflow-wrap:anywhere; }
body #sysSecurityApp summary { cursor:pointer; min-height:24px; }
body #sysSecurityApp [data-security-choice-search] { width:100%; box-sizing:border-box; min-height:36px; margin-bottom:8px; padding:8px; background:var(--sysdash-surface); color:var(--sysdash-text); border:1px solid var(--sysdash-line-strong); }
body #sysSecurityApp .sys-security-editor-form:has([data-security-choice-search]) { display:block; }
body #sysSecurityApp .sys-security-editor-actions { position:sticky; bottom:0; background:var(--sysdash-surface); padding:12px 0; }
body #sysSecurityApp .sys-security-detail-actions { display:grid; gap:8px; margin:12px 0; }
body #sysSecurityApp .sys-security-user-tabs { margin:4px 0 10px; }
body #sysSecurityApp :focus-visible { outline:2px solid var(--sysdash-accent); outline-offset:2px; }
body #sysSecurityApp .sys-security-table { width:100%; border-collapse:collapse; table-layout:auto; }
body #sysSecurityApp .sys-security-table th { text-align:left; }
body #sysSecurityApp .sys-security-table td,
body #sysSecurityApp .sys-security-table tbody tr.is-selected td { background:var(--sysdash-surface) !important; box-shadow:none !important; border:0; border-bottom:1px solid var(--sysdash-line); border-radius:0; }
body #sysSecurityApp .sys-security-table td.sys-status-badge { display:table-cell; color:var(--sysdash-text); font:inherit; }
body #sysSecurityApp .sys-security-table tr.is-selected td:first-child { box-shadow:inset 3px 0 var(--sysdash-accent) !important; }
body #sysSecurityApp .sys-security-row-main { display:block !important; width:100%; text-align:left !important; justify-content:flex-start !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; padding:4px 0 !important; }
body #sysSecurityApp .sys-security-row-main strong,
body #sysSecurityApp .sys-security-row-main span { display:block; text-align:left; }
body #sysSecurityApp [data-security-panel="users"] td:first-child { min-width:210px; }
body #sysSecurityApp [data-security-panel="users"] td:nth-child(2) { min-width:125px; }
body #sysSecurityApp .security-login-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:10px 14px; background:var(--sysdash-surface-2); border-block:1px solid var(--sysdash-line); }
body #sysSecurityApp [data-security-panel="users"] td:first-child { min-width:36px; width:36px; }
body #sysSecurityApp [data-login-user] { width:17px; height:17px; accent-color:var(--sysdash-accent); }
body #sysSecurityApp [data-security-editor-form="login"] { display:block; }
body #sysSecurityApp [data-security-editor-form="login"] label { display:grid; gap:8px; }
body #sysSecurityApp [data-login-explanation] { padding:12px; margin:12px 0; border-left:3px solid var(--sysdash-accent); background:var(--sysdash-accent-soft); line-height:1.6; }
body #sysSecurityApp [data-login-result]:not(:empty) { color:var(--sysdash-danger); }
@media (max-width:1200px) {
 body #sysSecurityApp .sys-security-layout { grid-template-columns:minmax(0,1fr); }
 body #sysSecurityApp .sys-security-detail { position:static; }
 body #sysSecurityApp .sysdash-commandbar { flex-wrap:wrap; gap:8px; }
}
body #sysSecurityApp [data-security-panel="users"] .sys-security-layout > div.sysdash-widget > .sysdash-widget-head{display:none}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table{table-layout:fixed;min-width:1000px}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table th:nth-child(1){width:36px}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table th:nth-child(2){width:23%}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table th:nth-child(3){width:14%}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table th:nth-child(4){width:19%}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table th:nth-child(6){width:235px}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table td{overflow-wrap:anywhere}
body #sysSecurityApp [data-security-panel="users"] .sys-security-action-cluster{display:flex;gap:6px}
body #sysSecurityApp [data-security-panel="users"] .sys-security-table-wrap{overflow:auto}

.security-permission-module{display:flex;align-items:center;gap:10px;margin:0 0 7px;max-width:640px}.security-permission-module .sys-module-icon{width:32px;height:32px;flex:0 0 32px}.security-permission-module>div{min-width:0;display:grid;gap:3px}.security-permission-module strong{font-size:13px}.security-permission-module span{font-size:12px;color:var(--sysdash-muted,var(--adm-text-soft,#687781));line-height:1.4}.security-permission-module~.security-permission-label{font-size:12px;font-weight:normal}
