/* Member dashboard v2 — webshop/Account ShowProfile + Holdtilmelding */

.member-dashboard-v2,
.md-panel {
    --md-radius: 1rem;
    --md-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.06);
    --md-border: #eef2f7;
}

.member-dashboard-v2 {
    max-width: 100%;
}

.md-welcome {
    margin-bottom: 1.75rem;
}

.md-welcome__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}

.md-welcome__main {
    flex: 1;
    min-width: 0;
}

.md-welcome__profile {
    flex-shrink: 0;
    padding-top: 0.15rem;
}

.md-top-actions {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-shrink: 0;
    padding-top: 0.15rem;
}

.member-notif-bell--toolbar {
    display: inline-flex;
    align-items: center;
}

.md-notif-bell-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    border: 1px solid var(--md-border);
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    color: #0f172a;
    cursor: pointer;
    line-height: 1;
}

.md-notif-bell-btn:hover,
.md-notif-bell-btn:focus,
.md-notif-bell-btn.show {
    border-color: #bfdbfe;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
    outline: none;
}

.md-notif-bell-btn__icon {
    font-size: 1.05rem;
    line-height: 1;
}

.md-notif-bell-btn__badge {
    position: absolute;
    top: -0.2rem;
    right: -0.2rem;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 0.2rem;
    border-radius: 999px;
    background: #16a34a;
    color: #fff;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1.05rem;
    text-align: center;
    pointer-events: none;
    border: 2px solid #fff;
}

.md-notif-bell__menu {
    width: min(22rem, 92vw);
    min-width: min(18rem, 92vw);
    padding: 0;
    margin-top: 0.45rem !important;
    border: 1px solid var(--md-border);
    border-radius: 0.75rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

.md-bell-dropdown {
    background: #fff;
}

.md-bell-dropdown--empty {
    padding: 1.5rem 1.25rem 0.75rem;
    text-align: center;
}

.md-bell-dropdown__empty-icon {
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 auto 0.75rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.md-bell-dropdown__empty-title {
    margin: 0 0 0.35rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
}

.md-bell-dropdown__empty-hint {
    margin: 0 0 0.5rem;
    font-size: 0.8125rem;
    color: #64748b;
}

.md-bell-dropdown__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.85rem 1rem 0.65rem;
    border-bottom: 1px solid var(--md-border);
}

.md-bell-dropdown__title {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.md-bell-dropdown__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 0.75rem;
    font-weight: 700;
}

.md-bell-dropdown__list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: min(20rem, 55vh);
    overflow-y: auto;
}

.md-bell-dropdown__item {
    border-bottom: 1px solid var(--md-border);
}

.md-bell-dropdown__item:last-child {
    border-bottom: none;
}

.md-bell-dropdown__link {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    color: inherit;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.md-bell-dropdown__link:hover,
.md-bell-dropdown__link:focus {
    background: #f8fafc;
    color: inherit;
}

.md-bell-dropdown__icon {
    flex-shrink: 0;
    width: 1.1rem;
    margin-top: 0.15rem;
    color: #334155;
    font-size: 1rem;
    line-height: 1;
}

.md-bell-dropdown__body {
    min-width: 0;
    flex: 1;
}

.md-bell-dropdown__category {
    display: block;
    font-size: 0.75rem;
    line-height: 1.3;
    color: #64748b;
    margin-bottom: 0.15rem;
}

.md-bell-dropdown__subject {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.35;
    margin-bottom: 0.2rem;
}

.md-bell-dropdown__preview {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: #64748b;
    margin-bottom: 0.35rem;
    word-break: break-word;
}

.md-bell-dropdown__time {
    display: block;
    font-size: 0.75rem;
    color: #94a3b8;
    line-height: 1.2;
}

.md-bell-dropdown__footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.65rem 1rem 0.85rem;
    border-top: 1px solid var(--md-border);
    background: #fafbfc;
}

.md-bell-dropdown__footer-link {
    display: block;
    width: 100%;
    padding: 0.45rem 0.5rem;
    border-radius: 0.45rem;
    text-align: center;
    font-size: 0.875rem;
    font-weight: 500;
    color: #2563eb;
    text-decoration: none;
}

.md-bell-dropdown__footer-link:hover,
.md-bell-dropdown__footer-link:focus {
    background: #eff6ff;
    color: #1d4ed8;
}

.md-bell-dropdown--empty .md-bell-dropdown__footer {
    margin-top: 0.25rem;
    background: #fff;
}

.md-profile-menu-wrap {
    position: relative;
}

.md-profile-menu {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    max-width: min(100%, 16rem);
    padding: 0.3rem 0.55rem 0.3rem 0.3rem;
    border: 1px solid var(--md-border);
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    color: #0f172a;
    cursor: pointer;
    text-align: left;
}

.md-profile-menu:hover,
.md-profile-menu:focus,
.md-profile-menu.show {
    border-color: #bfdbfe;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
    outline: none;
}

.md-profile-menu--static {
    cursor: default;
}

.md-profile-menu--static:hover {
    border-color: var(--md-border);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.md-profile-menu__avatar,
.md-profile-menu .member-img {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    border-radius: 0.35rem !important;
    object-fit: cover;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #f1f5f9;
    flex-shrink: 0;
}

.md-profile-menu__name {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.md-profile-menu__chev {
    font-size: 0.7rem;
    color: #64748b;
    flex-shrink: 0;
    margin-left: 0.1rem;
}

.md-profile-menu__dropdown {
    min-width: 12rem;
    border-radius: 0.65rem;
    padding: 0.35rem;
    margin-top: 0.35rem !important;
}

.md-profile-menu__dropdown .dropdown-item {
    border-radius: 0.4rem;
    font-size: 0.875rem;
    padding: 0.45rem 0.65rem;
}

.md-profile-menu__dropdown .dropdown-item.active,
.md-profile-menu__dropdown .dropdown-item:active {
    background: #eff6ff;
    color: #2563eb;
}

.md-welcome__title {
    font-size: clamp(1.75rem, 3.5vw, 2.125rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #0f172a;
    line-height: 1.15;
}

.md-welcome__subtitle {
    font-size: 0.9375rem;
    max-width: 40rem;
    color: #64748b;
    margin-top: 0.35rem;
}

.md-stats-grid {
    --bs-gutter-x: 1.25rem;
    --bs-gutter-y: 1.25rem;
    align-items: stretch;
}

.md-stats-grid > .col {
    display: flex;
}

/* Stat cards — icon left, text right */
.md-stat-card {
    background: #fff;
    border: 1px solid var(--md-border);
    border-radius: 1rem;
    box-shadow: var(--md-shadow);
    padding: 1.25rem 1.25rem 1.125rem;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: stretch;
    flex: 1;
    width: 100%;
    --md-stat-icon-size: 3.5rem;
    --md-stat-icon-gap: 1rem;
}

.md-stat-card__top {
    display: flex;
    align-items: flex-start;
    gap: var(--md-stat-icon-gap);
    min-height: 0;
}

.md-stat-card__icon {
    width: var(--md-stat-icon-size);
    height: var(--md-stat-icon-size);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.35rem;
}

.md-stat-card__icon--primary { background: #dbeafe; color: #2563eb; }
.md-stat-card__icon--warning { background: #ffedd5; color: #ea580c; }
.md-stat-card__icon--success { background: #dcfce7; color: #16a34a; }
.md-stat-card__icon--purple { background: #ede9fe; color: #7c3aed; }

.md-stat-card__content {
    flex: 1;
    min-width: 0;
    min-height: 0;
    padding-top: 0.125rem;
}

.md-stat-card__label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.35;
    margin: 0 0 0.25rem;
}

.md-stat-card__value {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.3;
    color: #0f172a;
    letter-spacing: -0.02em;
    word-break: break-word;
}

.md-stat-card__value--num {
    font-size: 1.375rem;
    line-height: 1.2;
}

.md-stat-card__value--long {
    font-size: 0.9375rem;
    line-height: 1.35;
    font-weight: 600;
}

.md-stat-card__sub {
    font-size: 0.8125rem;
    color: #64748b;
    margin-top: 0.125rem;
    line-height: 1.4;
}

.md-stat-card__footer {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    min-height: 1.25rem;
    padding-top: 0.625rem;
    flex-shrink: 0;
}

.md-stat-card__footer--progress {
    align-items: center;
}

.md-stat-card__progress {
    width: 100%;
    height: 0.4375rem;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
    flex-shrink: 0;
}

.md-stat-card__progress-bar {
    height: 100%;
    background: #2563eb;
    border-radius: 999px;
    transition: width 0.35s ease;
}

.md-stat-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1875rem 0.625rem;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.45;
}

.md-stat-card__badge--success { background: #dcfce7; color: #15803d; }
.md-stat-card__badge--warning { background: #fef3c7; color: #b45309; }
.md-stat-card__badge--danger { background: #fee2e2; color: #b91c1c; }
.md-stat-card__badge--secondary { background: #f1f5f9; color: #475569; }

.md-stat-card__link {
    display: inline-block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #2563eb;
    text-decoration: none;
    line-height: 1.35;
}

.md-stat-card__link:hover {
    color: #1d4ed8;
    text-decoration: underline;
}

/* Panels */
.md-panel {
    background: #fff;
    border: 1px solid var(--md-border);
    border-radius: var(--md-radius);
    box-shadow: var(--md-shadow);
    padding: 1.25rem 1.35rem;
}

.md-panel--compact {
    padding: 1rem 1.15rem;
}

.md-panel__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 1rem;
}

.md-panel__title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
}

.md-panel__link {
    font-size: 0.85rem;
    font-weight: 600;
    color: #2563eb;
    text-decoration: none;
    white-space: nowrap;
}

.md-panel__link:hover {
    text-decoration: underline;
}

/* Tabs */
.md-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.md-tabs__btn {
    display: inline-block;
    padding: 0.4rem 1rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    color: #475569;
    background: #f1f5f9;
    border: 1px solid transparent;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.md-signup-filters .md-tabs__btn {
    padding: 0.4375rem 1.125rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #374151;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    line-height: 1.35;
}

.md-signup-filters .md-tabs__btn:hover {
    background: #eceef2;
    color: #1f2937;
    border-color: #d1d5db;
}

.md-signup-filters .md-tabs__btn--active {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
    font-weight: 600;
}

.md-signup-filters .md-tabs__btn--active:hover {
    background: #1d4ed8;
    color: #fff;
    border-color: #1d4ed8;
}

.md-tabs__btn:hover {
    background: #e2e8f0;
    color: #1e293b;
}

.md-tabs__btn--active {
    background: #2563eb;
    color: #fff;
}

.md-tabs__btn--active:hover {
    background: #1d4ed8;
    color: #fff;
}

.md-signup-filters {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.md-signup-filters .md-tabs {
    gap: 0.5rem;
}

.md-signup-type-tabs,
.md-signup-tabs {
    margin-bottom: 0;
}

/* Class list */
.md-class-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 1rem;
    border-top: 1px solid var(--md-border, #eef2f7);
}

.md-panel > .md-class-list:only-child {
    margin-top: 0;
}

.md-class-list__day-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    padding: 0.75rem 0 0.25rem;
}

.md-class-row {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1.5fr) minmax(0, 1.1fr) 4.25rem auto;
    gap: 0.65rem 1rem;
    align-items: center;
    padding: 0.95rem 0;
    border-bottom: 1px solid var(--md-border, #eef2f7);
}

.md-class-row > * {
    min-width: 0;
}

.md-class-row--has-note,
.md-class-row--has-meta {
    align-items: start;
}

.md-class-row--has-note .md-class-row__time,
.md-class-row--has-note .md-class-row__instructor,
.md-class-row--has-note .md-class-row__spots,
.md-class-row--has-note .md-class-row__action,
.md-class-row--has-meta .md-class-row__time,
.md-class-row--has-meta .md-class-row__instructor,
.md-class-row--has-meta .md-class-row__spots,
.md-class-row--has-meta .md-class-row__action {
    align-self: center;
}

.md-class-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.md-class-row__time {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    min-width: 3.25rem;
}

.md-class-row__time-start {
    font-size: 0.875rem;
    font-weight: 700;
    color: #0f172a;
}

.md-class-row__time-end {
    font-size: 0.75rem;
    font-weight: 500;
    color: #64748b;
}

.md-class-row__name {
    font-weight: 700;
    font-size: 0.9375rem;
    line-height: 1.3;
    color: #0f172a;
}

.md-class-row__cat {
    font-size: 0.8125rem;
    color: #64748b;
    line-height: 1.35;
    margin-top: 0.125rem;
}

.md-class-row__meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 0.35rem;
    min-width: 0;
}

.md-class-row__note--solo + .md-class-row__meta {
    margin-top: 0.45rem;
}

.md-class-row__area {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    font-size: 0.75rem;
    line-height: 1.35;
    color: #64748b;
}

.md-class-row__meta-icon {
    flex-shrink: 0;
    margin-top: 0.1rem;
    font-size: 0.6875rem;
    color: #94a3b8;
}

.md-class-row__desc {
    font-size: 0.75rem;
    line-height: 1.4;
    color: #475569;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.md-class-row__desc--notice {
    color: #92400e;
}

.md-class-row__note {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    line-height: 1.4;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 0.5rem;
    padding: 0.35rem 0.5rem;
}

.md-class-row__note--solo {
    margin-top: 0;
}

.md-class-row__status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 5.75rem;
    padding: 0.45rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #fde68a;
}

.md-class-row__instructor {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.md-class-row__instructor-img img,
.md-class-row__instructor-img .md-class-row__instructor-photo {
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    min-height: 2rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.md-class-row__instructor-name {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #334155;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.md-class-row__instructor-more {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.375rem;
    height: 1.375rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
    color: #475569;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    cursor: help;
}

.md-class-row__spots {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.25;
    min-width: 4.25rem;
}

.md-class-row__spots-count {
    font-size: 0.875rem;
    font-weight: 700;
    color: #16a34a;
}

.md-class-row__spots-label {
    font-size: 0.6875rem;
    color: #64748b;
}

.md-class-row__action {
    justify-self: end;
    align-self: center;
    min-width: 5.75rem;
}

.md-class-row__action > .w-100.border-top {
    border-top: 0 !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    width: auto !important;
}

.md-class-row__action .btn,
.md-class-row__action .md-class-row__btn {
    min-width: 5.75rem;
    padding: 0.45rem 1rem;
    border-radius: 0.5rem !important;
    font-weight: 600;
    font-size: 0.8125rem;
    line-height: 1.2;
    white-space: nowrap;
    width: auto !important;
    border: none !important;
}

.md-class-row__action .btn-primary,
.md-class-row__action .md-class-row__btn {
    background: #2563eb;
    color: #fff;
}

.md-class-row__action .btn-primary:hover,
.md-class-row__action .md-class-row__btn:hover {
    background: #1d4ed8;
    color: #fff;
}

.md-class-row__action .md-class-row__btn.md-class-row__btn--registered {
    background: #16a34a;
    color: #fff;
}

.md-class-row__action .md-class-row__btn.md-class-row__btn--registered:hover {
    background: #15803d;
    color: #fff;
}

.md-class-row__action .btn-warning,
.md-class-row__action .btn-success {
    border-radius: 0.5rem !important;
    width: auto !important;
}

.md-class-row__actions-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
}

.md-instructor-participants-btn--link {
    font-size: 0.75rem;
    font-weight: 600;
    color: #2563eb !important;
    text-decoration: none;
    white-space: nowrap;
}

.md-instructor-participants-btn--link:hover {
    color: #1d4ed8 !important;
    text-decoration: underline;
}

.md-class-row--instructor {
    background: #f8fbff;
    border-color: #dbeafe;
}

.md-class-row--instructor .md-instructor-participants-trigger {
    cursor: pointer;
    border-radius: 0.5rem;
    padding: 0.15rem 0.35rem;
    margin: -0.15rem -0.35rem;
    transition: background 0.15s;
}

.md-class-row--instructor .md-instructor-participants-trigger:hover,
.md-class-row--instructor .md-instructor-participants-trigger:focus-visible {
    background: #e8f0fe;
    outline: none;
}

.md-class-row__spots-sub {
    font-size: 0.6875rem;
    line-height: 1.2;
}

.md-panel--instructor .md-panel__title {
    font-size: 1rem;
}

.md-participants-list {
    border-top: 1px solid var(--md-border);
}

.md-participant-row {
    padding: 0.85rem 1rem;
}

.md-participant-row__main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.md-participant-row__avatar img,
.md-participant-row__avatar-img {
    width: 2.5rem !important;
    height: 2.5rem !important;
    min-width: 2.5rem !important;
    min-height: 2.5rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.md-participant-row__body {
    min-width: 0;
    flex: 1;
}

.md-participant-row__name {
    font-weight: 600;
    font-size: 0.9rem;
    color: #0f172a;
    line-height: 1.3;
}

.md-participant-row__meta {
    margin-top: 0.2rem;
}

.md-participant-row__status {
    font-size: 0.6875rem;
    font-weight: 600;
}

.md-participant-waiting {
    background: #fffbeb;
    border-top: 1px solid #fde68a;
}

.md-participant-waiting__title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #92400e;
    margin-bottom: 0.35rem;
}

.md-participant-waiting__item {
    font-size: 0.8125rem;
    padding: 0.15rem 0;
}

.md-participants-empty,
.md-participants-loading {
    font-size: 0.9rem;
}

.md-more-link {
    font-size: 0.875rem;
    font-weight: 600;
    color: #2563eb;
    text-decoration: none;
}

.md-more-link:hover {
    color: #2563eb;
}

/* Bookings */
.md-booking-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.md-booking-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem 1rem;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--md-border);
}

.md-booking-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.md-booking-row__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 3rem;
    padding: 0.35rem 0.5rem;
    border-radius: 0.5rem;
    background: #f1f5f9;
    line-height: 1.1;
}

.md-booking-row__dow,
.md-booking-row__mon {
    font-size: 0.65rem;
    font-weight: 700;
    color: #64748b;
}

.md-booking-row__dom {
    font-size: 1.25rem;
    font-weight: 800;
    color: #1e293b;
}

.md-booking-row__name {
    font-weight: 700;
    font-size: 0.92rem;
}

.md-booking-row__time,
.md-booking-row__instructor {
    font-size: 0.78rem;
}

.md-booking-row__cancel {
    white-space: nowrap;
}

/* News / messages */
.md-news-list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.md-news-item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    text-decoration: none;
    color: inherit;
    padding: 0.5rem;
    margin: -0.5rem;
    border-radius: 0.5rem;
    transition: background 0.15s;
}

.md-news-item:hover {
    background: #f8fafc;
}

.md-news-item__thumb {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
    background: #e8f0fe;
    color: #2563eb;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.md-news-item__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.md-news-item__title {
    font-weight: 700;
    font-size: 0.85rem;
    line-height: 1.3;
}

.md-news-item__text {
    font-size: 0.78rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.md-news-item__date {
    font-size: 0.72rem;
    margin-top: 0.15rem;
}

/* Quick actions */
.md-actions-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}

.md-action-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 0.5rem;
    border: 1px solid var(--md-border);
    border-radius: 0.75rem;
    background: #fafbfc;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s, border-color 0.15s;
    min-height: 5.5rem;
}

.md-action-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
    color: inherit;
}

.md-action-card__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.md-action-card__icon--blue { background: #e8f0fe; color: #2563eb; }
.md-action-card__icon--green { background: #e8f7ef; color: #16a34a; }
.md-action-card__icon--purple { background: #f3e8ff; color: #9333ea; }

.md-action-card__label {
    font-size: 0.78rem;
    font-weight: 600;
    text-align: center;
}

/* Notifications panel on dashboard */
.md-notifications-panel--unread {
    border-color: #bfdbfe;
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.08), var(--md-shadow);
}

.md-notifications-panel .list-group-item-primary {
    background: #eff6ff;
}

/* Empty states */
.md-empty-state {
    text-align: center;
    padding: 1.5rem 1rem;
    color: #64748b;
    font-size: 0.9rem;
}

.md-empty-state--sm {
    padding: 1rem 0.5rem;
    font-size: 0.85rem;
}

/* Mobile */
@media (max-width: 991.98px) {
    .md-class-row {
        grid-template-columns: 3rem minmax(0, 1fr) auto;
        grid-template-areas:
            "time info action"
            "instructor spots spots";
        gap: 0.5rem 0.75rem;
    }

    .md-class-row__time { grid-area: time; align-self: start; }
    .md-class-row__info { grid-area: info; }
    .md-class-row__instructor { grid-area: instructor; }
    .md-class-row__spots { grid-area: spots; align-items: flex-end; }
    .md-class-row__action { grid-area: action; align-self: start; }
}

@media (max-width: 575.98px) {
    .md-class-row {
        grid-template-columns: 3rem minmax(0, 1fr) auto;
        grid-template-areas:
            "time info action"
            "instructor instructor spots";
    }

    .md-class-row__action .btn,
    .md-class-row__action .md-class-row__btn {
        min-width: 0;
        padding-inline: 0.75rem;
    }

    .md-class-row__actions-stack {
        align-items: stretch;
        width: 100%;
    }

    .md-instructor-participants-btn--link {
        align-self: flex-end;
    }

    .md-booking-row {
        grid-template-columns: auto 1fr;
    }

    .md-booking-row__cancel {
        grid-column: 1 / -1;
        width: 100%;
    }

    .md-stat-card {
        padding: 1rem;
        --md-stat-icon-size: 3rem;
        --md-stat-icon-gap: 0.875rem;
    }

    .md-stat-card__icon {
        font-size: 1.2rem;
    }
}

@media (max-width: 767.98px) {
    .md-panel {
        padding: 1rem;
    }
}

/* ------------------------------------------------------------------ */
/* Member profile v2 — webshop/Account?action=Account                 */
/* ------------------------------------------------------------------ */
.member-profile-v2 {
    --mp-radius: var(--md-radius, 1rem);
    --mp-shadow: var(--md-shadow, 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.06));
    --mp-border: var(--md-border, #eef2f7);
    --mp-green: #2563eb;
    --mp-green-light: #eff6ff;
    --mp-green-border: #bfdbfe;
    --mp-green-hover: #1d4ed8;
    --mp-muted: #64748b;
    --mp-text: #0f172a;
    --bs-primary: #2563eb;
    --bs-primary-rgb: 37, 99, 235;
    --bs-link-color: #2563eb;
    --bs-link-hover-color: #1d4ed8;
    max-width: 100%;
}

.member-profile-v2 .btn-primary {
    --bs-btn-bg: #2563eb;
    --bs-btn-border-color: #2563eb;
    --bs-btn-hover-bg: #1d4ed8;
    --bs-btn-hover-border-color: #1d4ed8;
    --bs-btn-active-bg: #1e40af;
    --bs-btn-active-border-color: #1e40af;
}

.member-profile-v2 .btn-outline-primary {
    --bs-btn-color: #2563eb;
    --bs-btn-border-color: #2563eb;
    --bs-btn-hover-bg: #2563eb;
    --bs-btn-hover-border-color: #2563eb;
}

.member-profile-v2__topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1.5rem;
}

.member-profile-v2__breadcrumb {
    font-size: 0.875rem;
    color: var(--mp-muted);
    margin: 0;
}

.member-profile-v2__breadcrumb a {
    color: var(--mp-muted);
    text-decoration: none;
}

.member-profile-v2__breadcrumb a:hover {
    color: var(--mp-green);
}

.member-profile-v2__breadcrumb .active {
    color: var(--mp-text);
    font-weight: 500;
}

.member-profile-v2__topbar .md-top-actions {
    gap: 0.65rem;
}

.member-profile-v2__topbar .md-profile-menu {
    max-width: min(100%, 14rem);
}

/* Sidebar — single unified panel card (mockup) */
.member-profile-v2__sidebar {
    position: sticky;
    top: 1rem;
}

.mp-sidebar-panel {
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow);
    overflow: hidden;
}

/* --- Header --- */
.mp-sidebar-panel__header {
    padding: 1.5rem 1.25rem 1.25rem;
    text-align: center;
}

.mp-sidebar-panel__avatar-wrap {
    position: relative;
    display: inline-block;
    margin-bottom: 0.75rem;
}

.mp-sidebar-panel__avatar-wrap .member-img,
.mp-sidebar-panel__avatar-wrap img,
.mp-sidebar-panel__avatar-wrap .mp-sidebar-panel__avatar {
    width: 96px !important;
    height: 96px !important;
    min-width: 96px !important;
    min-height: 96px !important;
    border-radius: 50% !important;
    object-fit: cover;
    border: 3px solid var(--mp-green-light) !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #f1f5f9;
}

.mp-sidebar-panel__name {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--mp-text);
    margin-bottom: 0.15rem;
    line-height: 1.3;
}

.mp-sidebar-panel__email {
    font-size: 0.8125rem;
    color: var(--mp-muted);
    margin-bottom: 0.85rem;
    word-break: break-word;
}

.mp-sidebar-panel__badges {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
}

.mp-sidebar-panel__badges-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    gap: 0.35rem;
    width: 100%;
}

.mp-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 500;
    padding: 0.35rem 0.55rem;
    border-radius: 0.5rem;
    white-space: nowrap;
    line-height: 1.2;
    background: #fff;
}

.mp-sidebar-panel__badges-row .mp-status-badge {
    flex: 1 1 0;
    justify-content: center;
    min-width: 0;
}

.mp-status-badge__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #64748b;
    flex-shrink: 0;
}

.mp-status-badge__dot--green {
    background: var(--mp-green);
}

.mp-status-badge__check {
    font-size: 0.85rem;
    color: var(--mp-green);
    flex-shrink: 0;
}

.mp-status-badge--member-inactive,
.mp-status-badge--access-inactive {
    border: 1px solid #e2e8f0;
    color: #64748b;
}

.mp-status-badge--member-active {
    border: 1px solid var(--mp-green-border);
    color: var(--mp-green);
}

.mp-status-badge--access-active {
    border: 1px solid var(--mp-green-border);
    color: var(--mp-green);
}

.mp-status-badge--pending {
    width: 100%;
    justify-content: center;
    background: #fef9c3;
    border: 1px solid #fde68a;
    color: #854d0e;
    white-space: normal;
    text-align: center;
    line-height: 1.35;
}

/* --- Navigation (inside same card) --- */
.mp-sidebar-panel__nav {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0 0.75rem 0.75rem;
}

.mp-sidebar-panel__nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.55rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #1e293b;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.mp-sidebar-panel__nav-link i {
    width: 1.2rem;
    text-align: center;
    color: #64748b;
    font-size: 1.05rem;
    flex-shrink: 0;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mp-sidebar-panel__nav-link:hover {
    background: #f8fafc;
    color: var(--mp-green);
}

.mp-sidebar-panel__nav-link:hover i {
    color: var(--mp-green);
}

.mp-sidebar-panel__nav-link.active {
    background: var(--mp-green-light);
    color: var(--mp-green);
    font-weight: 600;
}

.mp-sidebar-panel__nav-link.active i {
    color: var(--mp-green);
}

/* --- Divider --- */
.mp-sidebar-panel__divider {
    height: 1px;
    background: var(--mp-border);
    margin: 0 1rem 0.85rem;
}

/* --- Support nested box --- */
.mp-sidebar-panel__support {
    margin: 0 0.75rem 0.85rem;
    padding: 0.85rem;
    background: #f8fafc;
    border: 1px solid #eef2f7;
    border-radius: 0.75rem;
}

.mp-sidebar-panel__support-top {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
    text-align: left;
}

.mp-sidebar-panel__support-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--mp-green-light);
    color: var(--mp-green);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.mp-sidebar-panel__support-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--mp-text);
    margin-bottom: 0.15rem;
    line-height: 1.3;
}

.mp-sidebar-panel__support-desc {
    font-size: 0.75rem;
    color: var(--mp-muted);
    margin: 0;
    line-height: 1.4;
}

.mp-sidebar-panel__support-btn {
    width: 100%;
    font-size: 0.8125rem;
    font-weight: 500;
    padding: 0.4rem 0.75rem;
    border-radius: 0.45rem;
    background: #fff;
}

/* Shared card */
.mp-card {
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow);
    overflow: hidden;
    height: 100%;
}

.mp-card__header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--mp-border);
    font-size: 1rem;
    font-weight: 600;
    color: var(--mp-text);
}

.mp-card__header i {
    color: var(--mp-muted);
}

.mp-card__body {
    padding: 1.25rem;
}

/* Membership card — compact profile summary (works outside .member-profile-v2) */
.mp-membership-card {
    --mp-radius: var(--md-radius, 1rem);
    --mp-shadow: var(--md-shadow, 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.06));
    --mp-border: var(--md-border, #eef2f7);
    --mp-green: #2563eb;
    --mp-green-light: #eff6ff;
    --mp-green-border: #bfdbfe;
    --mp-green-hover: #1d4ed8;
    --mp-muted: #64748b;
    --mp-text: #0f172a;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow);
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
}

.mp-membership-card .btn-primary {
    --bs-btn-bg: #2563eb;
    --bs-btn-border-color: #2563eb;
    --bs-btn-hover-bg: #1d4ed8;
    --bs-btn-hover-border-color: #1d4ed8;
    --bs-btn-active-bg: #1e40af;
    --bs-btn-active-border-color: #1e40af;
}

.mp-membership-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.mp-membership-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--mp-text);
    margin: 0;
    line-height: 1.3;
}

.mp-membership-card__badge {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 0.35rem;
    background: var(--mp-green-light);
    color: var(--mp-green);
    white-space: nowrap;
    flex-shrink: 0;
}

.mp-membership-compact__subtitle {
    font-size: 0.875rem;
    color: var(--mp-muted);
    margin-bottom: 0.65rem;
    line-height: 1.4;
}

.mp-membership-compact__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem 1rem;
    margin: 0 0 0.65rem;
    padding: 0;
}

.mp-membership-compact__fact {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.mp-membership-compact__fact dt {
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--mp-muted);
    margin: 0;
}

.mp-membership-compact__fact dd {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--mp-text);
    margin: 0;
}

.mp-membership-compact__details {
    margin-bottom: 0.65rem;
    border-top: 1px solid var(--mp-border);
    padding-top: 0.5rem;
}

.mp-membership-compact__details-toggle {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--mp-green);
    cursor: pointer;
    list-style: none;
    user-select: none;
    border-radius: 0.375rem;
    padding: 0.35rem 0.5rem;
    margin: 0 -0.5rem;
}

.mp-membership-compact__details[open] .mp-membership-compact__details-toggle {
    border: 1px solid var(--mp-green-border);
    background: #fff;
    margin-bottom: 0.15rem;
}

.mp-membership-compact__details-toggle::-webkit-details-marker {
    display: none;
}

.mp-membership-compact__details-toggle::before {
    content: '+ ';
    font-weight: 700;
}

.mp-membership-compact__details[open] .mp-membership-compact__details-toggle::before {
    content: '− ';
}

.mp-membership-compact__details-body {
    padding-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--mp-muted);
    line-height: 1.45;
}

.mp-membership-compact__detail-row {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-bottom: 0.5rem;
}

.mp-membership-compact__detail-row:last-child {
    margin-bottom: 0;
}

.mp-membership-compact__detail-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
}

.mp-membership-compact__detail-value {
    color: var(--mp-text);
}

.mp-membership-compact__bero {
    font-size: 0.8125rem;
    color: var(--mp-text);
    line-height: 1.4;
}

.mp-membership-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--mp-border);
}

.mp-membership-card__link {
    text-decoration: none;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.mp-membership-card__link:hover {
    text-decoration: underline;
}

/* Empty membership state */
.mp-membership-card--empty {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
}

.mp-membership-card__empty-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.5rem;
    background: var(--mp-green-light);
    color: var(--mp-green);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.mp-membership-card__empty-body {
    flex: 1;
    min-width: 0;
}

.mp-membership-card__sub {
    font-size: 0.8125rem;
    color: var(--mp-muted);
    margin: 0 0 0.65rem;
    line-height: 1.45;
}

/* Legacy hero (unused on profile) */
.mp-status-hero {
    background: linear-gradient(135deg, #f8fdf9 0%, #fff 55%);
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow);
    padding: 1.5rem 1.5rem 1.5rem 1.25rem;
    margin-bottom: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    position: relative;
    overflow: hidden;
}

.mp-status-hero__icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: var(--mp-green-light);
    color: var(--mp-green);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.mp-status-hero__content {
    flex: 1;
    min-width: min(100%, 16rem);
}

.mp-status-hero__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--mp-text);
    margin-bottom: 0.35rem;
}

.mp-status-hero__sub {
    font-size: 0.875rem;
    color: var(--mp-muted);
    margin-bottom: 0;
    max-width: 36rem;
    line-height: 1.5;
}

.mp-status-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.mp-status-hero__decor {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.07;
    font-size: 6rem;
    color: var(--mp-green);
    pointer-events: none;
    line-height: 1;
}

.mp-status-hero--active .mp-status-hero__summary .table {
    margin-bottom: 0;
    font-size: 0.875rem;
}

.mp-status-hero--active .mp-status-hero__summary .rounded-3.border {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Quick action cards */
.mp-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.mp-quick-action {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: #fff;
    border: 1px solid var(--mp-border);
    border-radius: 0.85rem;
    box-shadow: var(--mp-shadow);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
    cursor: pointer;
    text-align: left;
}

.mp-quick-action:hover {
    border-color: #cbd5e1;
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.08);
    color: inherit;
}

.mp-quick-action__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}

.mp-quick-action__icon--blue { background: #e8f0fe; color: #2563eb; }
.mp-quick-action__icon--green { background: var(--mp-green-light); color: var(--mp-green); }
.mp-quick-action__icon--amber { background: #fef3c7; color: #d97706; }
.mp-quick-action__icon--red { background: #fee2e2; color: #dc2626; }

.mp-quick-action__body {
    flex: 1;
    min-width: 0;
}

.mp-quick-action__title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--mp-text);
    line-height: 1.3;
}

.mp-quick-action__sub {
    font-size: 0.72rem;
    color: var(--mp-muted);
    line-height: 1.35;
    margin-top: 0.1rem;
}

.mp-quick-action__chev {
    color: #cbd5e1;
    font-size: 0.75rem;
    flex-shrink: 0;
}

/* Form grid inside personal info */
.mp-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem 1rem;
}

.mp-form-grid .mp-form-grid__full {
    grid-column: 1 / -1;
}

.mp-form-grid .form-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--mp-muted);
    margin-bottom: 0.25rem;
}

.mp-form-grid .form-control {
    border-radius: 0.5rem;
    border-color: var(--mp-border);
    font-size: 0.9375rem;
}

.mp-form-grid .form-control:focus {
    border-color: var(--mp-green);
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.15);
}

.mp-dob-readonly {
    font-size: 0.9375rem;
    padding: 0.375rem 0;
    color: var(--mp-text);
}

/* Password field toggle */
.mp-password-wrap {
    position: relative;
}

.mp-password-wrap .form-control {
    padding-right: 2.5rem;
}

.mp-password-toggle {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: var(--mp-muted);
    padding: 0.25rem 0.4rem;
    line-height: 1;
    cursor: pointer;
}

.mp-password-toggle:hover {
    color: var(--mp-text);
}

/* Notifications toggle row */
.mp-notif-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.mp-notif-row__text {
    flex: 1;
    font-size: 0.875rem;
    color: var(--mp-muted);
    line-height: 1.45;
}

.mp-notif-row .form-switch .form-check-input {
    width: 2.5rem;
    height: 1.35rem;
    cursor: pointer;
}

.mp-notif-row .form-switch .form-check-input:checked {
    background-color: var(--mp-green);
    border-color: var(--mp-green);
}

/* Policies */
/* Policies — compact collapsible list */
.mp-card__body--compact {
    padding: 0.65rem 0.85rem 0.85rem;
}

.mp-card--policies .mp-card__header {
    padding: 0.85rem 1rem;
    font-size: 0.9375rem;
}

.mp-policies-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.mp-policies-item {
    margin: 0;
}

.mp-policies-item__details {
    border: 1px solid var(--mp-border);
    border-radius: 0.5rem;
    background: #fff;
    overflow: hidden;
}

.mp-policies-item__summary {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.65rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.mp-policies-item__summary::-webkit-details-marker {
    display: none;
}

.mp-policies-item__icon {
    color: #64748b;
    font-size: 1rem;
    flex-shrink: 0;
}

.mp-policies-item__title {
    flex: 1;
    min-width: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--mp-text);
}

.mp-policies-item__status {
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15rem 0.45rem;
    border-radius: 0.35rem;
    white-space: nowrap;
    flex-shrink: 0;
}

.mp-policies-item__status--ok {
    background: var(--mp-green-light);
    color: var(--mp-green);
}

.mp-policies-item__status--pending {
    background: #fef3c7;
    color: #92400e;
}

.mp-policies-item__chev {
    font-size: 0.75rem;
    color: #94a3b8;
    flex-shrink: 0;
    transition: transform 0.15s;
}

.mp-policies-item__details[open] .mp-policies-item__chev {
    transform: rotate(180deg);
}

.mp-policies-item__panel {
    border-top: 1px solid var(--mp-border);
    padding: 0.5rem 0.65rem 0.65rem;
    background: #f8fafc;
}

.mp-policies-item__link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--mp-green);
    text-decoration: none;
    margin-bottom: 0.45rem;
}

.mp-policies-item__link:hover {
    text-decoration: underline;
    color: var(--mp-green-hover);
}

.mp-policies-item__content {
    max-height: 10rem;
    overflow-y: auto;
    font-size: 0.75rem;
    line-height: 1.45;
    color: #475569;
    padding: 0.45rem 0.5rem;
    background: #fff;
    border: 1px solid #eef2f7;
    border-radius: 0.35rem;
}

.mp-policies-item__content .btn {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.mp-policies-item__content p:last-child,
.mp-policies-item__content div:last-child {
    margin-bottom: 0;
}

/* Legacy policy blocks */
.mp-policy-links {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.mp-policy-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--mp-green);
    text-decoration: none;
}

.mp-policy-link:hover {
    text-decoration: underline;
    color: var(--mp-green);
}

.mp-policy-approved {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: #f8fafc;
    border-radius: 0.65rem;
    border: 1px solid var(--mp-border);
}

.mp-policy-approved__icon {
    color: var(--mp-green);
    font-size: 1.35rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.mp-policy-approved__text {
    font-size: 0.875rem;
    color: var(--mp-text);
    margin-bottom: 0.35rem;
}

.member-profile-v2 .mp-card .card-body.bg-light {
    background: #f8fafc !important;
    border-radius: 0.65rem;
    margin-top: 0.75rem;
    font-size: 0.875rem;
}

@media (max-width: 1199.98px) {
    .mp-quick-actions {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 991.98px) {
    .member-profile-v2__layout {
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .md-welcome__inner {
        flex-wrap: wrap;
    }

    .md-welcome__profile,
    .md-top-actions {
        width: 100%;
        display: flex;
        justify-content: flex-end;
    }

    .mp-quick-actions {
        grid-template-columns: 1fr;
    }

    .mp-form-grid {
        grid-template-columns: 1fr;
    }

    .mp-membership-compact__facts {
        grid-template-columns: 1fr;
    }

    .member-profile-v2__topbar {
        margin-bottom: 1rem;
    }

    .mp-card__body {
        padding: 1rem;
    }
}

/* Signup offer (opstartstilbud) */
.signup-offer-section {
    margin-bottom: 1.5rem;
}

.signup-offer-card {
    background: #fff;
    transition: box-shadow 0.15s ease;
}

/* Admin member profile: Check-in tab */
.md-class-row__status-badge {
    font-size: 0.6875rem;
    font-weight: 600;
}

.md-class-row__category {
    font-size: 0.6875rem;
    font-weight: 500;
}

.md-class-row__admin-actions {
    min-width: 10.5rem;
}

.md-class-row__admin-actions .d-grid {
    gap: 0.35rem !important;
}

.signup-offer-card:hover {
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

.signup-offer-card--sold-out {
    opacity: 0.72;
}

.signup-offer-card__img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    flex-shrink: 0;
    background: #f1f5f9;
}

.signup-offer-prices .fw-semibold {
    font-size: 0.95rem;
}

.signup-offer-summary {
    border-left: 3px solid #16a34a;
    padding-left: 0.75rem;
}

.signup-offer-summary li + li {
    margin-top: 0.25rem;
}

.signup-offer-checkout-table {
    margin-top: 0.5rem;
}

@media (min-width: 768px) {
    .signup-offer-card__img {
        width: 88px;
        height: 88px;
    }
}
