﻿.admin-add-user__title {
    margin: 0 0 20px 0;
    color: var(--text);
    font-size: 1.1rem;
    font-weight: 600;
}

.admin-add-user__form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 340px;
}

.admin-add-user__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-add-user__label {
    font-size: 0.875rem;
    color: var(--text);
    font-weight: 500;
}

.admin-add-user__required {
    color: var(--error);
}

.admin-add-user__input {
    padding: 9px 12px;
    border-radius: 6px;
    border: 1px solid var(--background-adornment);
    background-color: var(--surface);
    color: var(--text);
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.15s;
}

    .admin-add-user__input:focus {
        border-color: var(--primary);
    }

.admin-add-user__field-error {
    font-size: 0.78rem;
    color: var(--error);
}

.admin-add-user__general-error {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background-color: var(--error-hover);
    border: 1px solid var(--error);
    border-radius: 6px;
    font-size: 0.875rem;
    color: var(--error);
}

.admin-add-user__success {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background-color: var(--success-hover);
    border: 1px solid var(--success);
    border-radius: 6px;
    font-size: 0.875rem;
    color: var(--success);
}
.admin-dashboard {
    padding: 0 8px;
}

.admin-dashboard__header {
    margin-bottom: 24px;
}

.admin-dashboard__title {
    margin: 0 0 0 10px;
    color: var(--text);
    align-self: center;
}

.admin-dashboard__subtitle {
    color: var(--secondary-text);
    margin: 4px 0 0 0;
    font-size: 0.9rem;
}

.admin-dashboard__loading,
.admin-dashboard__error {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 0;
}

.admin-dashboard__stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.admin-stat-card {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    padding: 20px !important;
    min-height: 90px;
}

.admin-stat-card__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    flex-shrink: 0;
}

.admin-stat-card__icon-wrap--primary {
    background-color: var(--primary-hover);
}

.admin-stat-card__icon-wrap--success {
    background-color: var(--success-hover);
}

.admin-stat-card__icon-wrap--warning {
    background-color: var(--warning-hover);
}

.admin-stat-card__icon-wrap--error {
    background-color: var(--error-hover);
}

.admin-stat-card__icon-wrap--accent {
    background-color: var(--accent-hover);
}

.admin-stat-card__content {
    display: flex;
    flex-direction: column;
}

.admin-stat-card__value {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1;
}

.admin-stat-card__label {
    font-size: 0.8rem;
    color: var(--secondary-text);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.admin-dashboard__section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text);
    margin: 0 0 16px 0;
    font-size: 1rem;
    font-weight: 600;
}

.admin-dashboard__roles-card,
.admin-dashboard__actions-card {
    padding: 20px !important;
    margin-bottom: 24px;
}

.admin-dashboard__roles-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.admin-role-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 20px;
    background-color: var(--background-adornment);
    border: 1px solid var(--primary);
}

.admin-role-badge__name {
    font-size: 0.85rem;
    color: var(--text);
}

.admin-role-badge__count {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--primary-text);
    background-color: var(--primary);
    border-radius: 10px;
    padding: 1px 8px;
}

.admin-dashboard__actions-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.aud-page__loading,
.aud-page__error {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 60px 20px;
    text-align: center;
}

/* ─── Page Shell ─────────────────────────────────────────── */
.aud-page {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 24px;
    max-width: 1200px;
    margin: 0 auto;
}

/* ─── Header ─────────────────────────────────────────────── */
.aud-page__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}

.aud-page__header-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.aud-page__title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text);
}

.aud-page__subtitle {
    font-size: 0.875rem;
    color: var(--secondary-text);
}

.aud-page__badges {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

/* ─── Alerts ─────────────────────────────────────────────── */
.aud-page__alert {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 0.875rem;
}

.aud-page__alert--error {
    background-color: color-mix(in srgb, var(--error) 12%, transparent);
    color: var(--error);
    border: 1px solid color-mix(in srgb, var(--error) 30%, transparent);
}

.aud-page__alert--success {
    background-color: color-mix(in srgb, var(--success) 12%, transparent);
    color: var(--success);
    border: 1px solid color-mix(in srgb, var(--success) 30%, transparent);
}

/* ─── Quick Actions bar ──────────────────────────────────── */
.aud-page__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px 16px;
    align-items: center;
}

/* ─── Confirm bar ────────────────────────────────────────── */
.aud-page__confirm {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 16px;
    background-color: color-mix(in srgb, var(--warning) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--warning) 30%, transparent);
    border-radius: 8px;
}

.aud-page__confirm-text {
    flex: 1;
    font-size: 0.875rem;
    color: var(--text);
    min-width: 200px;
}

.aud-page__confirm-btns {
    display: flex;
    gap: 8px;
}

/* ─── Two-column grid ────────────────────────────────────── */
.aud-page__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}

@media (max-width: 860px) {
    .aud-page__grid {
        grid-template-columns: 1fr;
    }
}

.aud-page__col {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ─── Section card ───────────────────────────────────────── */
.aud-page__section {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
}

.aud-page__section-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text);
    padding-bottom: 8px;
    border-bottom: 1px solid var(--divider);
}

/* ─── Fields ─────────────────────────────────────────────── */
.aud-page__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 20px;
}

.aud-page__field {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.aud-page__field-label {
    font-size: 0.73rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--secondary-text);
}

.aud-page__field-value {
    font-size: 0.875rem;
    color: var(--text);
    word-break: break-all;
}

.aud-page__field-value--mono {
    font-family: monospace;
    font-size: 0.78rem;
}

/* ─── Flags ──────────────────────────────────────────────── */
.aud-page__flags {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.aud-page__flag {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 0.85rem;
    background-color: var(--background-adornment);
}

.aud-page__flag--ok {
    color: var(--success);
}

.aud-page__flag--warn {
    color: var(--warning);
}

.aud-page__flag--error {
    color: var(--error);
}

.aud-page__flag--neutral {
    color: var(--secondary-text);
}

/* ─── Role Management ────────────────────────────────────── */
.aud-page__role-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.aud-page__role-check-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}

.aud-page__role-check-label--locked {
    opacity: 0.6;
    cursor: default;
}

.aud-page__role-check-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text);
}

.aud-page__role-check-hint {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

.aud-page__role-update {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 4px;
}

.aud-page__role-error {
    font-size: 0.8rem;
    color: var(--error);
    margin-top: 4px;
    display: block;
}

.aud-page__role-ok {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    color: var(--success);
    margin-top: 6px;
    margin-bottom: 6px;
}

/* ─── Activity Log ───────────────────────────────────────── */
.aud-page__activity-load-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.aud-page__activity-error {
    color: var(--error);
    font-size: 0.8rem;
}

.aud-page__activity-empty {
    font-size: 0.875rem;
    color: var(--secondary-text);
    font-style: italic;
}

.aud-page__activity-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
    padding-right: 4px;
}

.aud-page__activity-entry {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 12px;
    border-radius: 6px;
    background-color: var(--background-adornment);
    border-left: 3px solid var(--primary);
}

.aud-page__activity-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.aud-page__activity-type {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--primary);
}

.aud-page__activity-time {
    font-size: 0.75rem;
    color: var(--secondary-text);
    white-space: nowrap;
}

.aud-page__activity-desc {
    font-size: 0.8rem;
    color: var(--text);
}

.aud-page__activity-ip {
    font-size: 0.75rem;
    color: var(--secondary-text);
    font-family: monospace;
}
.admin-um {
    padding: 0 8px;
}

.admin-um__header {
    margin-bottom: 20px;
}

.admin-um__title {
    margin: 0 0 0 10px;
    color: var(--text);
    align-self: center;
}

.admin-um__toolbar {
    display: flex !important;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 14px !important;
    margin-bottom: 12px;
}

.admin-um__toolbar-left {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.admin-um__toolbar-right {
    display: flex;
    gap: 10px;
    align-items: center;
}

.admin-um__search-input,
.admin-um__filter-select {
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid var(--background-adornment);
    background-color: var(--surface);
    color: var(--text);
    font-size: 0.875rem;
    min-width: 180px;
    outline: none;
    transition: border-color 0.15s;
}

    .admin-um__search-input:focus,
    .admin-um__filter-select:focus {
        border-color: var(--primary);
    }

.admin-um__bulk-bar {
    display: flex !important;
    align-items: center;
    gap: 16px;
    padding: 10px 16px !important;
    margin-bottom: 12px;
    border: 1px solid var(--warning);
    flex-wrap: wrap;
}

.admin-um__bulk-label {
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
}

.admin-um__bulk-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.admin-um__loading,
.admin-um__error {
    padding: 24px 0;
    display: flex;
    gap: 12px;
    align-items: center;
}

.admin-um__table-wrap {
    padding: 0 !important;
    overflow: hidden;
    margin-bottom: 12px;
}

.admin-um__roles {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.admin-um__role-chip {
    font-size: 0.75rem;
    padding: 2px 8px;
    border-radius: 12px;
    background-color: var(--primary-hover);
    color: var(--primary-text);
    border: 1px solid var(--primary);
}

.admin-um__status-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.admin-um__status-badge--active {
    background-color: var(--success-hover);
    color: var(--success);
    border: 1px solid var(--success);
}

.admin-um__status-badge--inactive {
    background-color: var(--warning-hover);
    color: var(--warning);
    border: 1px solid var(--warning);
}

.admin-um__status-badge--unknown {
    background-color: var(--secondary-hover);
    color: var(--secondary-text);
    border: 1px solid var(--secondary);
}

.admin-um__flags {
    display: flex;
    gap: 4px;
    justify-content: center;
}

.admin-um__row-actions {
    display: flex;
    gap: 2px;
    justify-content: center;
}

.admin-um__name-link {
    cursor: pointer;
    color: var(--primary);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
}

    .admin-um__name-link:hover {
        opacity: 0.8;
    }

.admin-um__pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 8px 0;
}

.admin-um__pagination-info {
    font-size: 0.875rem;
    color: var(--secondary-text);
}

.admin-um__pagination-actions {
    display: flex;
    gap: 8px;
}
