.permissions-dialog { width: min(1040px, calc(100% - 28px)); max-height: min(94dvh, 940px); padding: 0; overflow: hidden; background: var(--color-surface, #fff); isolation: isolate; }
.permissions-dialog > form { display: grid; grid-template-rows: auto auto auto minmax(220px, 1fr) auto auto; max-height: min(94dvh, 940px); background: var(--color-surface, #fff); }
.permissions-dialog .dialog-head,
.permissions-dialog .dialog-actions { position: relative; z-index: 2; margin: 0; padding: var(--space-4) var(--space-5); background: var(--color-surface, #fff); }
.permissions-dialog .dialog-head { border-bottom: 1px solid var(--color-line); }
.permissions-dialog .dialog-actions { border-top: 1px solid var(--color-line); }
.permissions-dialog .dialog-head small { display: block; margin-top: 3px; color: var(--color-muted); font-size: .6875rem; }
.permissions-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) auto; align-items: end; gap: var(--space-4); padding: var(--space-3) var(--space-5); border-bottom: 1px solid var(--color-line); background: var(--color-surface-subtle); }
.permissions-toolbar > div { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-3); padding-bottom: 1px; }
.permissions-toolbar p { max-width: 270px; margin: 0; color: var(--color-muted); font-size: .625rem; line-height: 1.45; }
.permissions-table-head,
.permission-module-main { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(3, 92px); align-items: center; gap: var(--space-2); }
.permissions-table-head { padding: 9px var(--space-5); border-bottom: 1px solid var(--color-line); color: var(--color-muted); background: var(--color-surface); font-size: .5625rem; font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.permissions-table-head span:first-child { text-align: left; }
.permissions-module-list { min-height: 0; padding: 0 var(--space-5) var(--space-3); overflow-y: auto; overscroll-behavior: contain; background: var(--color-surface, #fff); }
.permission-category { margin-top: var(--space-3); border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface); overflow: clip; }
.permission-category-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: 50px; padding: var(--space-2) var(--space-3); background: var(--color-surface-subtle); border-bottom: 1px solid var(--color-line); }
.permission-category-head h3 { margin: 0; font-size: .75rem; }
.permission-category-head small { display: block; margin-top: 2px; color: var(--color-muted); font-size: .5625rem; }
.permission-category-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.permission-category-actions button { min-height: 34px; padding: 6px 10px; font-size: .625rem; }
.permission-module-row { border-bottom: 1px solid var(--color-line); }
.permission-module-row:last-child { border-bottom: 0; }
.permission-module-main { min-height: 58px; padding: 0 var(--space-3); }
.permission-module-main:hover { background: color-mix(in srgb, var(--color-surface-subtle) 70%, transparent); }
.permission-module-title { min-width: 0; }
.permission-module-title strong,
.permission-module-title small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.permission-module-title strong { font-size: .75rem; }
.permission-module-title small { margin-top: 2px; color: var(--color-muted); font-size: .5625rem; }
.permission-module-main label { display: grid; place-items: center; min-height: 44px; cursor: pointer; }
.permission-module-main input,
.permission-functions input,
.permissions-capabilities input { width: 20px; height: 20px; accent-color: var(--color-seccol); }
.permission-functions { margin: 0 var(--space-3) var(--space-3); border: 1px solid var(--color-line); border-radius: var(--radius-sm); background: var(--color-surface-subtle); }
.permission-functions summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); min-height: 42px; padding: 0 var(--space-3); cursor: pointer; color: var(--color-text); font-size: .6875rem; font-weight: 750; list-style: none; }
.permission-functions summary::-webkit-details-marker { display: none; }
.permission-functions summary::after { content: "⌄"; margin-left: auto; color: var(--color-muted); transition: transform var(--motion-fast) var(--ease-standard); }
.permission-functions[open] summary::after { transform: rotate(180deg); }
.permission-function-count { margin-right: var(--space-2); padding: 3px 7px; border-radius: 999px; color: var(--color-muted); background: var(--color-surface); font-size: .5625rem; font-weight: 700; }
.permission-function-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; padding: 1px; border-top: 1px solid var(--color-line); background: var(--color-line); }
.permission-function-grid label { display: flex; align-items: center; gap: var(--space-2); min-height: 46px; padding: var(--space-2) var(--space-3); background: var(--color-surface); cursor: pointer; font-size: .6875rem; line-height: 1.35; }
.permission-function-grid label:hover { background: var(--color-surface-subtle); }
.permission-function-grid input { flex: 0 0 auto; }
.permissions-capabilities { display: flex; align-items: center; gap: var(--space-5); margin: var(--space-3) var(--space-5) 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-surface, #fff); }
.permissions-capabilities legend { padding: 0 5px; color: var(--color-muted); font-size: .625rem; font-weight: 800; }
.permissions-capabilities label { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; font-size: .6875rem; }

@media (max-width: 700px) {
  .permissions-dialog { position: fixed; inset: 0; box-sizing: border-box; width: 100vw; max-width: none; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; overscroll-behavior: contain; }
  .permissions-dialog > form { max-height: 100dvh; height: 100dvh; }
  .permissions-dialog .dialog-head { padding: var(--space-3); }
  .permissions-toolbar { grid-template-columns: 1fr; gap: var(--space-2); padding: var(--space-3); }
  .permissions-toolbar > div { justify-content: space-between; }
  .permissions-toolbar p { max-width: 180px; }
  .permissions-table-head,
  .permission-module-main { grid-template-columns: minmax(112px, 1fr) repeat(3, 55px); }
  .permissions-table-head { padding-inline: var(--space-3); font-size: .5rem; }
  .permissions-module-list { padding-inline: var(--space-3); }
  .permission-category-head { align-items: flex-start; flex-direction: column; }
  .permission-category-actions { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }
  .permission-category-actions button { min-height: 42px; padding-inline: 6px; }
  .permission-module-main { padding-inline: var(--space-2); }
  .permission-module-main input { width: 22px; height: 22px; }
  .permission-functions { margin-inline: var(--space-2); }
  .permission-function-grid { grid-template-columns: 1fr; }
  .permission-function-grid label { min-height: 48px; }
  .permissions-capabilities { display: grid; grid-template-columns: 1fr; gap: 0; margin-inline: var(--space-3); }
  .permissions-capabilities label { min-height: 44px; }
  .permissions-dialog .dialog-actions { padding: var(--space-3); padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom)); }
  .permissions-dialog .dialog-actions button { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .permissions-dialog,
  .permissions-module-list { scroll-behavior: auto; }
  .permission-functions summary::after { transition: none; }
}
