.superadmin-module-admin {
    --sa-module-admin-gap: var(--sa-space-md);
    --sa-module-admin-gap-small: var(--sa-space-sm);
    --sa-module-admin-padding: var(--sa-space-md);
    --sa-module-admin-padding-small: var(--sa-space-sm);
    --sa-module-admin-radius: var(--sa-radius-md);
    --sa-module-admin-radius-small: var(--sa-radius-sm);
    --sa-module-admin-border: var(--sa-border);
    --sa-module-admin-row-columns: minmax(0, 1fr) auto minmax(10rem, 12rem) minmax(11rem, 13rem);
    --sa-module-admin-toolbar-columns: minmax(16rem, 1fr) auto auto auto;
    --sa-module-admin-icon-size: 2.25rem;
    --sa-module-admin-switch-width: 2.5rem;
    --sa-module-admin-switch-height: 1.375rem;
    --sa-module-admin-switch-knob: 1rem;
    --sa-module-admin-switch-inset: 0.1875rem;
    --sa-module-admin-sticky-offset: 0;
    --sa-module-admin-disabled-opacity: 0.62;
    --sa-module-admin-transition: 160ms ease;
    --sa-module-admin-space-2xs: 0.125rem;
    --sa-module-admin-z-sticky: 20;
    gap: var(--sa-module-admin-gap);
}

.superadmin-module-admin__setup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.7fr);
    gap: var(--sa-module-admin-gap);
    align-items: stretch;
}

.superadmin-module-admin__guidance {
    padding: var(--sa-module-admin-padding);
    background: var(--sa-color-panel-soft);
    border: var(--sa-module-admin-border);
    border-radius: var(--sa-module-admin-radius);
}

.superadmin-module-admin__guidance summary {
    display: flex;
    align-items: center;
    gap: var(--sa-module-admin-gap-small);
    color: var(--sa-color-label);
    cursor: pointer;
    list-style: none;
}

.superadmin-module-admin__guidance summary::-webkit-details-marker {
    display: none;
}

.superadmin-module-admin__guidance-icon {
    color: var(--sa-color-primary-strong);
    font-size: var(--sa-font-size-md);
}

.superadmin-module-admin__guidance-copy,
.superadmin-module-admin__identity-copy {
    display: grid;
    min-width: 0;
}

.superadmin-module-admin__muted-copy {
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-xs);
    line-height: var(--sa-line-height-compact);
}

.superadmin-module-admin__guidance p {
    margin: var(--sa-module-admin-gap-small) 0 0;
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-sm);
}

.superadmin-module-admin__toolbar {
    display: grid;
    grid-template-columns: var(--sa-module-admin-toolbar-columns);
    gap: var(--sa-module-admin-gap-small);
    align-items: center;
    padding: var(--sa-module-admin-padding-small);
    background: var(--sa-color-panel-soft);
    border: var(--sa-module-admin-border);
    border-radius: var(--sa-module-admin-radius);
}

.superadmin-module-admin__search {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--sa-module-admin-gap-small);
    min-width: 0;
    padding-inline: var(--sa-module-admin-padding-small);
    background: var(--sa-color-panel);
    border: var(--sa-module-admin-border);
    border-radius: var(--sa-module-admin-radius-small);
}

.superadmin-module-admin__search-icon {
    color: var(--sa-color-muted);
}

.superadmin-module-admin__search input {
    min-width: 0;
    height: var(--sa-size-field);
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--sa-color-text);
    outline: 0;
}

.superadmin-module-admin__filters {
    display: flex;
    overflow: hidden;
    border: var(--sa-module-admin-border);
    border-radius: var(--sa-module-admin-radius-small);
}

.superadmin-module-admin__filters button,
.superadmin-module-admin__group-tools button {
    min-height: var(--sa-size-field);
    padding-inline: var(--sa-module-admin-padding-small);
    background: var(--sa-color-panel);
    border: 0;
    color: var(--sa-color-muted);
    font: inherit;
    font-size: var(--sa-font-size-sm);
    font-weight: 600;
    cursor: pointer;
}

.superadmin-module-admin__filters button + button {
    border-left: var(--sa-module-admin-border);
}

.superadmin-module-admin__filters button.is-active {
    background: var(--sa-color-primary-soft);
    color: var(--sa-color-primary-strong);
}

.superadmin-module-admin__counts {
    display: flex;
    gap: var(--sa-module-admin-gap);
    margin: 0;
}

.superadmin-module-admin__counts div {
    display: grid;
    gap: var(--sa-module-admin-space-2xs);
}

.superadmin-module-admin__counts dt {
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-xs);
}

.superadmin-module-admin__counts dd {
    margin: 0;
    color: var(--sa-color-label);
    font-weight: 700;
    text-align: center;
}

.superadmin-module-admin__groups {
    display: grid;
    gap: var(--sa-module-admin-gap-small);
}

.superadmin-module-admin__group {
    overflow: clip;
    border: var(--sa-module-admin-border);
    border-radius: var(--sa-module-admin-radius);
}

.superadmin-module-admin__group > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sa-module-admin-gap);
    padding: var(--sa-module-admin-padding);
    background: var(--sa-color-panel-soft);
    color: var(--sa-color-label);
    cursor: pointer;
    list-style: none;
}

.superadmin-module-admin__group > summary::-webkit-details-marker {
    display: none;
}

.superadmin-module-admin__group > summary span {
    font-weight: 700;
}

.superadmin-module-admin__group > summary em {
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-xs);
    font-style: normal;
}

.superadmin-module-admin__group-tools {
    display: flex;
    justify-content: flex-end;
    gap: var(--sa-module-admin-gap-small);
    padding: var(--sa-module-admin-padding-small) var(--sa-module-admin-padding);
    border-top: var(--sa-module-admin-border);
}

.superadmin-module-admin__group-tools button {
    min-height: auto;
    color: var(--sa-color-primary-strong);
}

.superadmin-module-admin__list {
    display: grid;
}

.superadmin-module-admin__row {
    display: grid;
    grid-template-columns: var(--sa-module-admin-row-columns);
    gap: var(--sa-module-admin-gap);
    align-items: center;
    padding: var(--sa-module-admin-padding);
    background: var(--sa-color-panel);
    border-top: var(--sa-module-admin-border);
    transition: opacity var(--sa-module-admin-transition), background var(--sa-module-admin-transition);
}

.superadmin-module-admin__row.is-disabled {
    background: var(--sa-color-panel-soft);
}

.superadmin-module-admin__identity {
    display: grid;
    grid-template-columns: var(--sa-module-admin-icon-size) minmax(0, 1fr);
    gap: var(--sa-module-admin-gap-small);
    align-items: center;
    min-width: 0;
}

.superadmin-module-admin__module-icon {
    display: grid;
    place-items: center;
    width: var(--sa-module-admin-icon-size);
    height: var(--sa-module-admin-icon-size);
    background: var(--sa-color-primary-soft);
    border-radius: var(--sa-module-admin-radius-small);
    color: var(--sa-color-primary-strong);
}

.superadmin-module-admin__identity-copy {
    overflow-wrap: anywhere;
}

.superadmin-module-admin__switch {
    display: grid;
    grid-template-columns: auto auto;
    gap: var(--sa-module-admin-gap-small);
    align-items: center;
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-xs);
    font-weight: 700;
    cursor: pointer;
}

.superadmin-module-admin__switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.superadmin-module-admin__switch-track {
    position: relative;
    width: var(--sa-module-admin-switch-width);
    height: var(--sa-module-admin-switch-height);
    background: var(--sa-color-border-strong);
    border-radius: var(--sa-module-admin-switch-height);
    transition: background var(--sa-module-admin-transition);
}

.superadmin-module-admin__switch-track::after {
    content: "";
    position: absolute;
    top: var(--sa-module-admin-switch-inset);
    left: var(--sa-module-admin-switch-inset);
    width: var(--sa-module-admin-switch-knob);
    height: var(--sa-module-admin-switch-knob);
    background: var(--sa-color-panel);
    border-radius: 50%;
    transition: transform var(--sa-module-admin-transition);
}

.superadmin-module-admin__switch input:checked + .superadmin-module-admin__switch-track {
    background: var(--sa-color-primary);
}

.superadmin-module-admin__switch input:checked + .superadmin-module-admin__switch-track::after {
    transform: translateX(calc(var(--sa-module-admin-switch-width) - var(--sa-module-admin-switch-knob) - (var(--sa-module-admin-switch-inset) * 2)));
}

.superadmin-module-admin__row > .superadmin-field {
    display: grid;
    gap: var(--sa-space-xs);
    min-width: 0;
}

.superadmin-module-admin__row > .superadmin-field span {
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-xs);
}

.superadmin-module-admin__row > .superadmin-field select {
    width: 100%;
    min-width: 0;
}

.superadmin-module-admin__advanced {
    min-width: 0;
}

.superadmin-module-admin__advanced[open] {
    grid-column: 1 / -1;
}

.superadmin-module-admin__advanced summary {
    display: grid;
    gap: var(--sa-module-admin-space-2xs);
    color: var(--sa-color-label);
    cursor: pointer;
}

.superadmin-module-admin__advanced-body {
    display: grid;
    gap: var(--sa-module-admin-gap);
    margin-top: var(--sa-module-admin-gap);
    padding: var(--sa-module-admin-padding);
    background: var(--sa-color-panel-soft);
    border-radius: var(--sa-module-admin-radius-small);
}

.superadmin-module-admin__roles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
    gap: var(--sa-module-admin-gap-small);
    margin: 0;
    padding: 0;
    border: 0;
}

.superadmin-module-admin__roles legend {
    grid-column: 1 / -1;
    margin-bottom: var(--sa-space-xs);
    color: var(--sa-color-label);
    font-size: var(--sa-font-size-sm);
    font-weight: 700;
}

.superadmin-module-admin__roles label {
    display: flex;
    align-items: center;
    gap: var(--sa-space-xs);
    color: var(--sa-color-label);
    font-size: var(--sa-font-size-sm);
}

.superadmin-module-admin__roles input {
    width: var(--sa-size-control);
    height: var(--sa-size-control);
    accent-color: var(--sa-color-primary);
}

.superadmin-module-admin__capabilities {
    display: grid;
    gap: var(--sa-module-admin-gap-small);
    padding-top: var(--sa-module-admin-padding);
    border-top: var(--sa-module-admin-border);
}

.superadmin-module-admin__capabilities h4,
.superadmin-module-admin__capabilities p {
    margin: 0;
}

.superadmin-module-admin__capabilities > div {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--sa-module-admin-gap-small);
    align-items: start;
}

.superadmin-module-admin__capability-icon {
    color: var(--sa-color-primary-strong);
}

.superadmin-module-admin__capability-copy {
    display: grid;
}

.superadmin-module-admin__empty {
    padding: calc(var(--sa-module-admin-padding) * 2);
    color: var(--sa-color-muted);
    text-align: center;
}

.superadmin-module-admin__savebar {
    position: sticky;
    bottom: var(--sa-module-admin-sticky-offset);
    z-index: var(--sa-module-admin-z-sticky);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sa-module-admin-gap);
    padding: var(--sa-module-admin-padding);
    background: var(--sa-color-panel);
    border: var(--sa-module-admin-border);
    border-radius: var(--sa-module-admin-radius);
    box-shadow: var(--sa-shadow);
}

.superadmin-module-admin__save-state {
    display: inline-flex;
    align-items: center;
    gap: var(--sa-space-xs);
    color: var(--sa-color-muted);
    font-size: var(--sa-font-size-sm);
}

.superadmin-module-admin[data-sa-dirty="true"] .superadmin-module-admin__save-state {
    color: var(--sa-color-warning);
}
