/* Membership portal colour system. The shared conference theme supplies the
   base tokens; these rules preserve membership status colours and controls. */

body.membership-theme {
    min-height: 100vh;
    color: var(--site-text);
}

.membership-theme .membership-navbar {
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    background: linear-gradient(100deg, #07549a, #087a88) !important;
}

.membership-theme .membership-navbar .navbar-brand,
.membership-theme .membership-navbar .navbar-brand span,
.membership-theme .membership-navbar .membership-theme-toggle,
.membership-theme .membership-navbar .membership-theme-toggle i,
.membership-theme .membership-navbar .membership-theme-toggle span {
    color: #ffffff !important;
}

.membership-theme .membership-theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border-color: rgba(255, 255, 255, .62) !important;
    background: rgba(4, 30, 51, .18) !important;
}

.membership-theme .membership-theme-toggle:hover,
.membership-theme .membership-theme-toggle:focus {
    border-color: #ffffff !important;
    background: rgba(255, 255, 255, .16) !important;
}

.membership-theme .card,
.membership-theme .list-group-item,
.membership-theme .modal-content {
    border-color: var(--site-border);
    background: var(--site-surface);
    color: var(--site-text);
}

.membership-theme .card-header:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info):not(.bg-dark),
.membership-theme .card-footer,
.membership-theme .modal-header,
.membership-theme .modal-footer {
    border-color: var(--site-border);
    background: var(--site-surface-soft);
    color: var(--site-text);
}

.membership-theme[data-theme="dark"] .card .text-dark,
.membership-theme[data-theme="dark"] .list-group-item .text-dark {
    color: var(--site-text) !important;
}

.membership-theme .card.bg-primary,
.membership-theme .card.bg-success,
.membership-theme .card.bg-danger,
.membership-theme .card.bg-dark,
.membership-theme .card-header.bg-primary,
.membership-theme .card-header.bg-success,
.membership-theme .card-header.bg-danger,
.membership-theme .card-header.bg-dark {
    color: #ffffff !important;
}

.membership-theme .card.bg-primary *,
.membership-theme .card.bg-success *,
.membership-theme .card.bg-danger *,
.membership-theme .card.bg-dark *,
.membership-theme .card-header.bg-primary *,
.membership-theme .card-header.bg-success *,
.membership-theme .card-header.bg-danger *,
.membership-theme .card-header.bg-dark * {
    color: inherit !important;
}

.membership-theme .card.bg-info,
.membership-theme .card-header.bg-info {
    border-color: #49b7ca !important;
    background: #8bd8e6 !important;
    color: #07343d !important;
}

.membership-theme .card.bg-info *,
.membership-theme .card-header.bg-info * {
    color: inherit !important;
}

.membership-theme .card.bg-warning,
.membership-theme .card-header.bg-warning {
    border-color: #dba900 !important;
    background: #f5c842 !important;
    color: #302300 !important;
}

.membership-theme .card.bg-warning *,
.membership-theme .card-header.bg-warning *,
.membership-theme .card.bg-warning.text-white,
.membership-theme .card-header.bg-warning.text-white {
    color: #302300 !important;
}

.membership-theme .form-control,
.membership-theme .form-select,
.membership-theme .input-group-text,
.membership-theme textarea {
    border-color: var(--site-border-strong) !important;
    background: var(--site-control-bg) !important;
    color: var(--site-text) !important;
}

.membership-theme .form-control::placeholder,
.membership-theme textarea::placeholder {
    color: var(--site-muted) !important;
    opacity: .9;
}

.membership-theme .form-control:disabled,
.membership-theme .form-control[readonly],
.membership-theme .form-select:disabled {
    background: var(--site-control-disabled) !important;
    color: var(--site-muted) !important;
    opacity: 1;
}

.membership-theme .form-control:focus,
.membership-theme .form-select:focus,
.membership-theme .form-check-input:focus,
.membership-theme .btn:focus-visible,
.membership-theme a:focus-visible {
    border-color: var(--site-primary) !important;
    box-shadow: 0 0 0 3px var(--site-focus) !important;
}

.membership-theme .table {
    --bs-table-bg: var(--site-surface);
    --bs-table-color: var(--site-text);
    --bs-table-border-color: var(--site-border);
    --bs-table-striped-bg: var(--site-surface-soft);
    --bs-table-striped-color: var(--site-text);
    --bs-table-hover-bg: var(--site-surface-raised);
    --bs-table-hover-color: var(--site-text);
}

.membership-theme .table th,
.membership-theme .table td {
    border-color: var(--site-border) !important;
    color: var(--site-text);
}

.membership-theme .badge.bg-secondary {
    background: #465d70 !important;
    color: #ffffff !important;
}

.membership-theme .badge.bg-secondary * {
    color: inherit !important;
}

.membership-theme[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(1) brightness(1.8);
}

body.membership-theme[data-theme="dark"] .swal2-popup {
    border: 1px solid var(--site-border-strong) !important;
    background: var(--site-surface) !important;
    color: var(--site-text) !important;
}

body.membership-theme[data-theme="dark"] .swal2-title,
body.membership-theme[data-theme="dark"] .swal2-html-container {
    color: var(--site-text) !important;
}

body.membership-theme[data-theme="dark"] .swal2-confirm {
    border: 1px solid #3188cf !important;
    background: var(--site-primary-action) !important;
    color: #ffffff !important;
}

body.membership-theme[data-theme="dark"] .swal2-cancel,
body.membership-theme[data-theme="dark"] .swal2-deny {
    border: 1px solid var(--site-border-strong) !important;
    background: var(--site-surface-raised) !important;
    color: var(--site-text) !important;
}

@media (max-width: 575.98px) {
    .membership-theme .membership-navbar .container-fluid {
        gap: .75rem;
    }

    .membership-theme .membership-navbar .navbar-brand span {
        max-width: 13rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    .membership-theme *,
    .membership-theme *::before,
    .membership-theme *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
