/* Shared foundations for the studio's administrative workspaces. */
.admin-page {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 24px 0 48px;
    color: var(--gym-text-primary);
    font-family: var(--gym-font-body);
    --admin-panel-radius: var(--gym-radius-card);
    --admin-action: var(--mud-palette-primary-darken);
    --admin-on-action: #fff;
    --admin-action-text: color-mix(in srgb, var(--mud-palette-primary) 60%, var(--gym-text-primary));
}
:root[data-theme="dark"] .admin-page {
    --admin-action: var(--mud-palette-primary);
    --admin-on-action: var(--gym-bg-main);
}
.admin-page-header, .admin-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}
.admin-page-title, .admin-section-title {
    margin: 0;
    font-family: var(--gym-font-heading);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: normal;
}
.admin-section-title { font-size: 1.5rem; }
.admin-page-description {
    margin: 6px 0 0;
    max-width: 70ch;
    color: var(--gym-text-secondary);
    font-size: .9375rem;
    line-height: 1.5;
}
.admin-page .admin-panel {
    background: var(--gym-bg-surface);
    border: 1px solid var(--gym-border);
    border-radius: var(--admin-panel-radius);
    box-shadow: none;
}
.admin-page .gym-card:hover, .admin-page .admin-panel:hover {
    transform: none;
    box-shadow: none;
}
.admin-muted, .admin-page .admin-muted { color: var(--gym-text-secondary); }
.admin-page .admin-metric-value {
    font-family: var(--gym-font-body);
    font-size: 1.75rem;
    line-height: 1.3;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--gym-text-primary);
}
.admin-page .admin-kpi-label {
    font-size: .875rem;
    line-height: 1.4;
    letter-spacing: normal;
    text-transform: none;
    color: var(--gym-text-secondary);
}
.admin-toolbar {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}
.admin-page :is(table, .admin-metric-value) { font-variant-numeric: tabular-nums; }
.admin-page :is(input, textarea) { caret-color: var(--gym-primary); }
.admin-page ::selection {
    background: var(--admin-action);
    color: var(--admin-on-action);
}
.admin-page details > summary {
    cursor: pointer;
    color: var(--gym-text-primary);
    font-weight: 600;
    padding-block: 8px;
}
.admin-page summary:focus-visible {
    outline: 3px solid var(--mud-palette-primary);
    outline-offset: 3px;
    border-radius: 4px;
}
.admin-page .mud-link { text-underline-offset: 3px; }
.admin-page :is(.mud-button-outlined-primary, .mud-button-text-primary):not(:disabled),
.admin-page .mud-link-primary { color: var(--admin-action-text); }
.admin-page .mud-button-filled-primary:not(:disabled) {
    background-color: var(--admin-action);
    color: var(--admin-on-action);
}
.admin-page .mud-button-filled { box-shadow: none; }
.admin-page .mud-button-filled-primary:not(:disabled):hover { filter: brightness(.94); }
.admin-page .mud-button-filled-success:not(:disabled) {
    background-color: color-mix(in srgb, var(--mud-palette-success) 70%, #000);
    color: #fff;
}

.members-dashboard .members-stats { margin-top: 4px; }
.members-dashboard .admin-page-header { margin-bottom: 0; }
.members-dashboard .members-stat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: var(--gym-radius-control);
    background: var(--mud-palette-background-grey);
    color: var(--gym-text-secondary);
}
.members-dashboard .members-table-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    padding: var(--gym-space-card);
    border-bottom: 1px solid var(--gym-border);
}
.members-dashboard .members-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    flex: 1 1 520px;
    max-width: 850px;
    min-width: 0;
}
.members-dashboard .members-search { flex: 1 1 240px; min-width: 0; }
.members-dashboard .members-location { flex: 1 1 180px; min-width: 0; }
.members-dashboard .members-filters .mud-switch { margin: 0; }
.members-dashboard .members-state { flex-wrap: wrap; }
.members-dashboard .members-status-positive {
    color: color-mix(in srgb, var(--mud-palette-success) 50%, var(--gym-text-primary));
    border-color: currentColor;
}
.members-dashboard .members-status-warning {
    color: color-mix(in srgb, var(--mud-palette-warning) 50%, var(--gym-text-primary));
    border-color: currentColor;
}
.members-dashboard .members-scope { margin-bottom: -8px; }

@media (max-width: 600px) {
    .admin-page { padding-block: 16px 32px; }
    .admin-page-header { align-items: flex-start; gap: 12px; margin-bottom: 18px; }
    .admin-page-title { font-size: 1.75rem; }
    .admin-toolbar > :is(.mud-input-control, .mud-button-root) { width: 100%; }
    .members-dashboard .members-filters { flex-basis: 100%; max-width: none; }
    .members-dashboard :is(.members-search, .members-location) { flex-basis: 100%; }
    .members-dashboard .members-table-heading { padding: 16px; }
    .members-dashboard .mud-table-cell { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-page *, .admin-page *::before, .admin-page *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
