/* Compact, accessible Staff & Users editor. It affects only forms marked by
   navigation-guard.js and leaves every other application modal unchanged. */
#dialog:has(.staff-editor){width:min(920px,calc(100vw - 28px));max-height:min(88vh,820px);padding:0;overflow:hidden;background:#fffdfa}
#dialog:has(.staff-editor) form{display:flex;max-height:min(88vh,820px);flex-direction:column}
#dialog:has(.staff-editor) .modal-head{padding:18px 22px 14px;flex:none}
#dialog:has(.staff-editor) #form-fields{display:block;padding:2px 22px 18px;overflow:auto;min-height:0}
#dialog:has(.staff-editor) .staff-editor{display:block}
#dialog:has(.staff-editor) .staff-editor>.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
#dialog:has(.staff-editor) .field{min-width:0;margin:0;gap:6px}
#dialog:has(.staff-editor) .field.full{grid-column:1/-1}
#dialog:has(.staff-editor) .field>span{font-size:13px!important;line-height:1.25;color:#213c5b!important}
#dialog:has(.staff-editor) input,#dialog:has(.staff-editor) select{width:100%;box-sizing:border-box;min-height:42px}
.staff-editor .staff-intro{margin:0;padding:11px 13px;border:1px solid #dce7f1;border-radius:10px;background:#f6faff;color:#45617c;font-size:12px;line-height:1.45}
.staff-editor .staff-businesses{display:flex;flex-wrap:wrap;gap:10px 16px;padding:11px 12px;border:1px solid #e3e9ef;border-radius:10px;background:#fff}
.staff-editor .staff-businesses label{display:inline-flex;align-items:center;gap:7px;color:#263d56;font-size:13px;font-weight:650}
.staff-editor .staff-businesses img{width:28px;height:22px;object-fit:contain;flex:none}
.staff-editor .password-input{display:flex;gap:8px}.staff-editor .password-input input{min-width:0;flex:1}.staff-editor .password-toggle{min-width:66px}.staff-editor .password-strength{display:block;min-height:18px;color:#68798b;font-size:12px;line-height:1.45}.staff-editor .password-strength.valid{color:#16755f;font-weight:650}
.staff-editor input[type="checkbox"]{width:16px!important;min-width:16px;min-height:16px!important;accent-color:#173a63;cursor:pointer}
.staff-editor input:focus-visible,.staff-editor select:focus-visible,.staff-editor button:focus-visible{outline:3px solid rgba(233,120,59,.28);outline-offset:2px}
.staff-editor .staff-businesses label:has(input:checked){color:#173a63}
.staff-editor .staff-preset-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid #dce7f1;border-radius:10px;background:#f8fbfe}
.staff-editor .staff-permission-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 12px}.staff-editor .staff-permission-summary>div{min-width:0;padding:10px 11px;border:1px solid #dce7f1;border-radius:9px;background:#f8fbfe}.staff-editor .staff-permission-summary span{display:block;margin-bottom:4px;color:#61748a;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.staff-editor .staff-permission-summary b{display:block;color:#173a63;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.staff-editor .staff-status-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 12px}.staff-editor .staff-status-summary>div{min-width:0;padding:10px 11px;border:1px solid #dce7f1;border-radius:9px;background:#f8fbfe}.staff-editor .staff-status-summary span,.staff-editor .staff-effective-permissions>span{display:block;margin-bottom:4px;color:#61748a;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.staff-editor .staff-status-summary b{display:block;color:#173a63;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.staff-editor .staff-status-pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-style:normal;font-weight:750}.staff-editor .staff-status-pill.active{color:#126551;background:#e8f7f1;border:1px solid #b9e2d4}.staff-editor .staff-status-pill.inactive{color:#5f6f7e;background:#f1f4f6;border:1px solid #d9e0e5}.staff-editor .staff-effective-permissions{margin:0 0 12px;padding:11px 13px;border:1px solid #dce7f1;border-radius:10px;background:#fff}.staff-editor .staff-effective-permissions ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:7px 0 0;padding-left:17px;color:#4b6278;font-size:12px;line-height:1.4}.staff-editor .staff-effective-permissions li{min-width:0;overflow-wrap:anywhere}
.staff-editor .staff-preset-row p{margin:0;color:#526b84;font-size:12px;line-height:1.4}
.staff-editor .staff-preset-row .secondary{white-space:nowrap}
.staff-editor .staff-permission-groups{display:grid;gap:9px}
.staff-editor .staff-permission-section{border:1px solid #dde6ee;border-radius:10px;background:#fff;overflow:hidden}
.staff-editor .staff-permission-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:11px 13px;color:#173a63;font-size:13px;font-weight:750;list-style:none}
.staff-editor .staff-permission-section>summary::-webkit-details-marker{display:none}
.staff-editor .staff-permission-section>summary:after{content:'+';font-size:18px;font-weight:400;line-height:1}
.staff-editor .staff-permission-section[open]>summary{border-bottom:1px solid #e5edf3;background:#f8fbfe}
.staff-editor .staff-permission-section[open]>summary:after{content:'–'}
.staff-editor .permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:11px 13px}
.staff-editor .permission-item{min-width:0;border:1px solid #edf0f3;border-radius:8px;padding:9px 10px;background:#fff}
.staff-editor .permission-item>b{display:block;color:#263e58;font-size:12px;text-transform:capitalize;margin-bottom:7px}
.staff-editor .permission-actions{display:flex;flex-wrap:wrap;gap:6px 9px}
.staff-editor .permission-actions label{display:inline-flex;align-items:center;gap:4px;color:#586d80;font-size:11px;text-transform:capitalize}
#dialog:has(.staff-editor) #form-error{margin:0;padding:0 22px;color:#a83939;flex:none}
#dialog:has(.staff-editor) .modal-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:9px;padding:14px 22px 16px;margin-top:0;border-top:1px solid #e4e9ed;background:rgba(255,253,250,.98);box-shadow:0 -8px 16px rgba(17,43,70,.04)}
#dialog:has(.staff-editor) .modal-actions button[disabled]{cursor:wait;opacity:.72}
.staff-feedback{position:fixed;right:20px;bottom:20px;z-index:10000;max-width:min(360px,calc(100vw - 32px));padding:12px 15px;border:1px solid #bbded6;border-radius:10px;background:#f3fbf8;color:#125b4d;box-shadow:0 12px 28px rgba(17,43,70,.16);font-size:13px;font-weight:650;opacity:0;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease}.staff-feedback.visible{opacity:1;transform:translateY(0)}
@media(max-width:760px){#dialog:has(.staff-editor){width:calc(100vw - 18px);max-height:90vh}#dialog:has(.staff-editor) .modal-head{padding:15px 16px 12px}#dialog:has(.staff-editor) #form-fields{padding:2px 16px 15px}.staff-editor>.form-grid{grid-template-columns:1fr 1fr!important;gap:11px!important}.staff-editor .staff-permission-summary,.staff-editor .staff-status-summary{grid-template-columns:1fr}.staff-editor .staff-effective-permissions ul{grid-template-columns:1fr}.staff-editor .permission-grid{grid-template-columns:1fr}.staff-editor .staff-preset-row{align-items:flex-start;flex-direction:column}.staff-editor .staff-preset-row .secondary{width:100%}#dialog:has(.staff-editor) #form-error{padding:0 16px}#dialog:has(.staff-editor) .modal-actions{padding:12px 16px 14px}}
@media(max-width:520px){.staff-editor>.form-grid{grid-template-columns:1fr!important}.staff-editor .staff-businesses{display:grid;grid-template-columns:1fr}.staff-editor .staff-permission-section>summary{padding:10px 11px}#dialog:has(.staff-editor) .modal-actions{justify-content:stretch}#dialog:has(.staff-editor) .modal-actions button{flex:1;min-height:42px}}
