.request-notifications-entry { margin: 0 12px 10px; padding: 10px 12px 12px; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-md); background: var(--ds-color-surface-muted); }
.request-notifications-entry > button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 40px; padding: 4px 0; border: 1px solid var(--ds-color-border); border-radius: 14px; background: var(--ds-color-surface); color: var(--ds-color-text); font: inherit; font-weight: 700; cursor: pointer; }
.request-notifications-entry > button > span:first-child { padding-left: 8px; }
.request-notifications-gear { display: grid; place-items: center; width: 28px; height: 28px; margin-right: 8px; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-md); font-size: 20px; font-weight: 400; }
.request-notifications-entry > button:hover .request-notifications-gear { background: var(--ds-color-primary-soft); color: var(--ds-color-primary); }
.request-notification-summary { padding: 10px 0; border-top: 1px solid var(--ds-color-border); }
.request-notification-summary button { padding: 7px 12px; font: inherit; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-md); background: var(--ds-color-surface); cursor: pointer; }
.request-notification-summary p { margin-top: 6px; font-size: 12px; color: var(--ds-color-text-sub); }
.request-notifications-dialog { position: fixed; inset: 0; margin: auto; box-sizing: border-box; width: min(960px, calc(100vw - 48px)); max-height: calc(100vh - 48px); padding: 24px; color: var(--ds-color-text); background: var(--ds-color-surface); border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-lg); overflow: hidden; }
.request-notifications-dialog::backdrop { background: var(--ds-color-overlay); }
.request-notifications-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.request-notifications-header h2 { margin: 0; font-size: var(--ds-font-xl); }
.request-notifications-close { width: 32px; height: 32px; padding: 0; font: inherit; font-size: 22px; border: 0; border-radius: var(--ds-radius-md); background: var(--ds-color-neutral-bg); color: var(--ds-color-text); cursor: pointer; }
.request-notification-presets { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.request-notification-presets > span { margin-right: 8px; font-weight: 700; }
.request-notification-presets button { min-height: 36px; padding: 7px 16px; font: inherit; color: var(--ds-color-text); background: var(--ds-color-surface); border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-md); cursor: pointer; }
.request-notification-presets button[aria-pressed="true"] { color: var(--ds-color-primary); background: var(--ds-color-primary-soft); border-color: var(--ds-color-primary); }
.request-notification-targets { max-height: min(540px, calc(100vh - 285px)); min-height: 110px; overflow: auto; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-md); }
.request-notification-matrix { width: 100%; min-width: 700px; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 14px; }
.request-notification-matrix th, .request-notification-matrix td { border-right: 1px solid var(--ds-color-border); border-bottom: 1px solid var(--ds-color-border); }
.request-notification-matrix tr > :last-child { border-right: 0; }
.request-notification-matrix tbody tr:last-child > * { border-bottom: 0; }
.request-notification-matrix thead th { position: sticky; top: 0; z-index: 2; height: 60px; padding: 10px 8px; background: var(--ds-color-surface-muted); text-align: center; white-space: pre-line; line-height: 1.5; }
.request-notification-matrix tr > :first-child { width: 34%; }
.request-notification-matrix tbody th { position: relative; padding: 12px 36px 12px 16px; text-align: left; overflow-wrap: anywhere; background: var(--ds-color-surface); }
.request-notification-role { display: block; margin-top: 4px; font-size: 12px; color: var(--ds-color-text-sub); font-weight: 400; }
.request-notification-cell { display: grid; place-items: center; min-height: 64px; width: 100%; padding: 16px; cursor: pointer; }
.request-notification-cell:hover { background: var(--ds-color-primary-soft-hover); }
.request-notification-cell.is-selected { background: var(--ds-color-primary-soft); }
.request-notification-cell input { width: 22px; height: 22px; accent-color: var(--ds-color-primary); cursor: pointer; }
.request-notification-na { text-align: center; color: var(--ds-color-text-sub); background: var(--ds-color-neutral-bg); }
.request-notification-reset { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; font: inherit; font-size: 20px; border: 0; border-radius: var(--ds-radius-sm); background: var(--ds-color-neutral-bg); color: var(--ds-color-text); cursor: pointer; }
.request-notification-reset:disabled { opacity: .35; cursor: default; }
.request-notifications-help, [data-notification-viewers-empty] { margin: 12px 0 0; color: var(--ds-color-text-sub); font-size: 12px; line-height: 1.6; }
.request-notifications-error { margin-top: 8px; color: var(--ds-color-error); font-size: 13px; }
.request-notifications-error:empty { display: none; }
.request-notifications-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 20px; }
.request-notifications-actions button { min-height: 42px; padding: 9px 22px; font: inherit; border-radius: var(--ds-radius-md); cursor: pointer; }
[data-notifications-open]:disabled { opacity: .55; cursor: default; }
.request-notification-matrix .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
