.role-management-view{min-width:0}
.role-management-view .role-add{width:100%}
.role-groups{display:grid;gap:12px;margin-top:18px}
.role-group{min-width:0;border:1px solid #c9dfb426;border-radius:12px;background:#ffffff04}
.role-group>summary{display:flex;align-items:center;gap:10px;padding:14px 12px;min-height:52px;list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.role-group>summary::-webkit-details-marker{display:none}
.role-group-title{min-width:0;flex:1;font-size:16px;font-weight:600;line-height:1.35;overflow-wrap:normal;word-break:normal}
.role-group-count{min-width:26px;padding:3px 6px;text-align:center;border-radius:20px;background:#c9dfb416;font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}
.role-group>summary>svg{width:18px;height:18px;color:#b5c7ac;transition:transform .15s}
.role-group[open]>summary>svg{transform:rotate(180deg)}
.role-people{list-style:none;margin:0;padding:0 10px 8px}
.role-people>li{border-top:1px solid var(--line);min-width:0}
.role-person{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:12px 4px;text-align:left;background:transparent;border-radius:6px;font:inherit;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.role-person>span{min-width:0;flex:1}
.role-person-name{display:block;font-size:15px;font-weight:550;line-height:1.4;overflow-wrap:anywhere}
.role-person-room{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.role-person>svg{width:17px;height:17px;transform:rotate(-90deg);color:#b5c7ac}
button.role-person:hover{background:#ffffff07}
.role-person-static{color:#bccdb6}
.role-empty{font-size:13px;color:var(--muted);line-height:1.6;margin:0;padding:0 14px 16px}
dialog.role-grant-dialog{width:410px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px;overscroll-behavior:contain}
dialog.role-grant-dialog>header{align-items:flex-start;gap:12px}
dialog.role-grant-dialog h2,#role-management .role-grant-dialog h2{min-width:0;font-size:20px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
dialog.role-grant-dialog .round{width:42px;height:42px}
.role-grant-dialog .role-current-title{font-size:13px;color:var(--accent);line-height:1.5;margin:0}
.role-grant-dialog .role-grant-form{gap:18px}
.role-grant-dialog .role-grant-form label{font-size:14px;line-height:1.5}
.role-grant-dialog .role-grant-form select{font-size:16px;padding:12px 10px}
.role-grant-dialog .role-grant-form .check{align-items:flex-start;min-height:44px;gap:11px;padding:8px 0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.role-grant-dialog .check input{width:20px;height:20px;margin-top:1px;flex:none}
.role-grant-dialog .check span{min-width:0;overflow-wrap:normal;word-break:normal}
.role-grant-dialog .role-grant-form fieldset{gap:2px}
.role-grant-dialog .role-grant-form legend{font-size:13px;line-height:1.5;margin-bottom:9px}
.role-grant-dialog .role-error:empty,.role-management-view>.role-error:empty{display:none}
.role-grant-dialog .role-error{margin:0}
.role-grant-dialog .role-sensitive-permission{color:#ffb6a7}
.role-deletion-warning{border:1px solid #f2a29055;border-radius:10px;background:#b9413512;padding:10px 12px;color:#ffc5b8}
.role-deletion-warning[hidden]{display:none}
.role-deletion-warning p{margin:0;font-size:13px;line-height:1.6}
.role-form-actions{display:grid;gap:10px;padding-top:8px}
.role-form-actions>button{min-width:0;white-space:normal;line-height:1.5}
.role-picker{min-width:0}
.role-picker input[type="search"]{width:100%;min-width:0;font-size:16px;padding:12px 10px}
.role-search-hint,.role-search-status{font-size:12px;line-height:1.5;color:var(--muted);margin:8px 0}
.role-search-status:empty{display:none}
.role-search-results{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:10px}
.role-search-results:empty{display:none}
.role-search-results>li+li{border-top:1px solid var(--line)}
.role-search-person{display:block;width:100%;min-height:56px;padding:10px 12px;background:transparent;text-align:left;border-radius:0;white-space:normal;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.role-search-person:hover,.role-search-person:focus-visible{background:#c9dfb416}
.role-person-identity{display:block;margin-top:3px;font-size:12px;font-weight:400;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.role-selected{padding:12px;border:1px solid #c9dfb450;border-radius:10px;background:#c9dfb409}
.role-selected[hidden]{display:none}
.role-selected>button{width:100%;margin-top:12px;min-height:44px;white-space:normal}
@media(max-width:360px){dialog.role-grant-dialog{padding:16px}.role-group>summary{gap:8px;padding-inline:10px}.role-group-title{font-size:15px}.role-grant-dialog .role-grant-form label{font-size:13px}}
@media(prefers-reduced-motion:reduce){.role-group>summary>svg{transition:none}}
