.col-lg-12.ftco-animate.py-5.mt-5.fadeInUp.ftco-animated{
    padding-top: 0 !important;
    margin-top: 0 !important;
}

html,
body {
    overflow-x: hidden;
}

/* Participant pending profile switch + compact sheets */
.rs-leader-actions:has(.rs-profile-completeness) {
    align-items: center;
}

.rs-profile-completeness.rs-profile-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.48rem;
    min-height: 2.15rem;
    margin: 0;
    padding: 0.38rem 0.66rem;
    border: 0.0625rem solid rgba(46, 106, 82, 0.24);
    border-radius: 999rem;
    background: #f8fbf7;
    color: #2c4f3f;
    cursor: pointer;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.1;
}

.rs-profile-completeness.rs-profile-toggle input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.rs-profile-completeness .rs-profile-toggle__track {
    position: relative;
    flex: 0 0 auto;
    width: 2.15rem;
    height: 1.18rem;
    border-radius: 999rem;
    background: #d9ded8;
    transition: background 160ms ease;
}

.rs-profile-completeness .rs-profile-toggle__track::after {
    content: "";
    position: absolute;
    top: 0.16rem;
    left: 0.16rem;
    width: 0.86rem;
    aspect-ratio: 1;
    border-radius: 999rem;
    background: #fff;
    box-shadow: 0 0.12rem 0.3rem rgba(33, 38, 34, 0.22);
    transition: transform 160ms ease;
}

.rs-profile-completeness.rs-profile-toggle input:checked + .rs-profile-toggle__track {
    background: #2e6a52;
}

.rs-profile-completeness.rs-profile-toggle input:checked + .rs-profile-toggle__track::after {
    transform: translateX(0.96rem);
}

.rs-profile-completeness.rs-profile-toggle input:focus-visible + .rs-profile-toggle__track {
    outline: 0.15rem solid rgba(46, 106, 82, 0.35);
    outline-offset: 0.14rem;
}

/* General rs-profile-toggle — applies to any label.rs-profile-toggle (e.g. group extras switch) */
.rs-profile-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.48rem;
    min-height: 2.15rem;
    margin: 0;
    padding: 0.38rem 0.66rem;
    border: 0.0625rem solid rgba(46, 106, 82, 0.24);
    border-radius: 999rem;
    background: #f8fbf7;
    color: #2c4f3f;
    cursor: pointer;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.1;
}
.rs-profile-toggle input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.rs-profile-toggle .rs-profile-toggle__track {
    position: relative;
    flex: 0 0 auto;
    width: 2.15rem;
    height: 1.18rem;
    border-radius: 999rem;
    background: #d9ded8;
    transition: background 160ms ease;
}
.rs-profile-toggle .rs-profile-toggle__track::after {
    content: "";
    position: absolute;
    top: 0.16rem;
    left: 0.16rem;
    width: 0.86rem;
    aspect-ratio: 1;
    border-radius: 999rem;
    background: #fff;
    box-shadow: 0 0.12rem 0.3rem rgba(33, 38, 34, 0.22);
    transition: transform 160ms ease;
}
.rs-profile-toggle input:checked + .rs-profile-toggle__track {
    background: #2e6a52;
}
.rs-profile-toggle input:checked + .rs-profile-toggle__track::after {
    transform: translateX(0.96rem);
}
.rs-profile-toggle input:focus-visible + .rs-profile-toggle__track {
    outline: 0.15rem solid rgba(46, 106, 82, 0.35);
    outline-offset: 0.14rem;
}

.rs-profile-completeness.rs-profile-pending-view {
    display: grid;
    gap: clamp(0.85rem, 1.8vw, 1.15rem);
    width: 100%;
    min-width: 0;
}

.rs-profile-completeness .rs-profile-pending-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(0.8rem, 1.8vw, 1rem);
    border: 0.0625rem solid rgba(66, 75, 60, 0.14);
    border-radius: 0.55rem;
    background: #fbfaf6;
}

.rs-profile-completeness .rs-profile-pending-eyebrow {
    display: block;
    color: #59715e;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.rs-profile-completeness .rs-profile-pending-head h4 {
    margin: 0.12rem 0 0;
    color: #26332c;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    font-weight: 950;
}

.rs-profile-completeness .rs-profile-pending-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.42rem;
}

.rs-profile-completeness .rs-profile-pending-summary span {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: 0.28rem 0.58rem;
    border-radius: 999rem;
    background: #eef4ee;
    color: #375540;
    font-size: 0.76rem;
    font-weight: 850;
}

.rs-profile-completeness .rs-profile-sheet-list {
    display: grid;
    gap: clamp(0.82rem, 1.8vw, 1.05rem);
}

.rs-profile-completeness .rs-profile-sheet {
    overflow: hidden;
    border: 0.0625rem solid rgba(67, 72, 58, 0.16);
    border-radius: 0.7rem;
    background: #fff;
    box-shadow: 0 0.55rem 1.4rem rgba(47, 43, 35, 0.07);
}

.rs-profile-completeness .rs-profile-sheet--pending {
    border-color: rgba(176, 78, 57, 0.28);
}

.rs-profile-completeness .rs-profile-sheet__band {
    display: grid;
    min-width: 0;
}

.rs-profile-completeness .rs-profile-sheet__band--top {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0;
    background: #56614f;
    color: #fff;
}

.rs-profile-completeness .rs-profile-sheet__number {
    display: grid;
    min-width: 3.15rem;
    place-items: center;
    padding: 0.75rem 0.55rem;
    background: #3f493b;
    color: #fff;
    font-size: clamp(1.1rem, 2.2vw, 1.45rem);
    font-weight: 950;
}

.rs-profile-completeness .rs-profile-sheet__badge {
    align-self: center;
    justify-self: end;
    margin-right: 0.75rem;
    padding: 0.24rem 0.55rem;
    border-radius: 999rem;
    font-size: 0.72rem;
    font-weight: 900;
    white-space: nowrap;
}

.rs-profile-completeness .rs-profile-sheet__badge--ok {
    background: rgba(225, 244, 226, 0.95);
    color: #255936;
}

.rs-profile-completeness .rs-profile-sheet__badge--pending {
    background: #fff1e8;
    color: #9b3e25;
}

.rs-profile-completeness .rs-profile-sheet__band--slot {
    align-items: center;
}

.rs-profile-completeness .rs-profile-slot-empty {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.75rem;
    color: #fff;
}

.rs-profile-completeness .rs-profile-sheet__band--middle {
    background: #f5f1e9;
}

.rs-profile-completeness .rs-profile-sheet__band--bottom {
    background: #fbf8f1;
    border-top: 0.0625rem solid rgba(88, 78, 64, 0.1);
}

.rs-profile-completeness .rs-profile-sheet__fields {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    min-width: 0;
}

.rs-profile-completeness .rs-profile-sheet__fields--contact {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.rs-profile-completeness .rs-profile-sheet__fields--health {
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.rs-profile-completeness .rs-profile-field {
    display: grid;
    align-content: start;
    gap: 0.18rem;
    min-width: 0;
    min-height: 4.15rem;
    padding: 0.58rem 0.68rem;
    border-left: 0.0625rem solid rgba(255, 255, 255, 0.18);
}

.rs-profile-completeness .rs-profile-sheet__band--middle .rs-profile-field,
.rs-profile-completeness .rs-profile-sheet__band--bottom .rs-profile-field {
    border-left-color: rgba(72, 65, 55, 0.12);
}

.rs-profile-completeness .rs-profile-field__label {
    color: currentColor;
    opacity: 0.72;
    font-size: 0.62rem;
    font-weight: 850;
    line-height: 1.1;
    text-transform: uppercase;
}

.rs-profile-completeness .rs-profile-field__value {
    min-width: 0;
    color: currentColor;
    font-size: clamp(0.78rem, 1.35vw, 0.9rem);
    font-weight: 900;
    line-height: 1.18;
    overflow-wrap: anywhere;
}

.rs-profile-completeness .rs-profile-sheet__band--middle .rs-profile-field,
.rs-profile-completeness .rs-profile-sheet__band--bottom .rs-profile-field {
    color: #2f342d;
}

.rs-profile-completeness .rs-profile-field__state {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    width: max-content;
    max-width: 100%;
    color: #9f3f25;
    font-size: 0.64rem;
    font-weight: 900;
    line-height: 1.1;
}

.rs-profile-completeness .rs-profile-field--missing {
    background: #fff0e9;
    box-shadow: inset 0 0 0 0.08rem rgba(178, 66, 40, 0.42);
}

.rs-profile-completeness .rs-profile-field--missing .rs-profile-field__value {
    color: #9f3f25;
}

.rs-profile-completeness .rs-profile-field--optional {
    opacity: 0.78;
}

.rs-profile-completeness .rs-profile-field--full {
    grid-column: 1 / -1;
}

.rs-profile-completeness .rs-profile-sheet__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.58rem 0.75rem;
    border-top: 0.0625rem solid rgba(178, 66, 40, 0.18);
    background: #fff8f4;
    color: #6e4b3e;
    font-size: 0.78rem;
    font-weight: 800;
}

.rs-profile-completeness .rs-profile-sheet__footer a {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    color: #2e6a52;
    font-weight: 950;
    cursor: pointer;
    white-space: nowrap;
}

@media (max-width: 68rem) {
    .rs-profile-completeness .rs-profile-sheet__band--top {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rs-profile-completeness .rs-profile-sheet__badge {
        grid-column: 1 / -1;
        justify-self: start;
        margin: 0 0 0.75rem 3.65rem;
    }

    .rs-profile-completeness .rs-profile-sheet__fields,
    .rs-profile-completeness .rs-profile-sheet__fields--contact,
    .rs-profile-completeness .rs-profile-sheet__fields--health {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr));
    }
}

@media (max-width: 42rem) {
    .rs-leader-actions:has(.rs-profile-completeness) {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .rs-profile-completeness.rs-profile-toggle,
    .rs-leader-actions:has(.rs-profile-completeness) > button {
        width: 100%;
        justify-content: center;
    }

    .rs-profile-completeness .rs-profile-pending-head,
    .rs-profile-completeness .rs-profile-sheet__footer {
        display: grid;
        align-items: start;
    }

    .rs-profile-completeness .rs-profile-pending-summary {
        justify-content: start;
    }

    .rs-profile-completeness .rs-profile-sheet__band--top {
        grid-template-columns: minmax(0, 1fr);
    }

    .rs-profile-completeness .rs-profile-sheet__number {
        min-width: 0;
        place-items: start;
        padding: 0.7rem 0.8rem;
    }

    .rs-profile-completeness .rs-profile-sheet__badge {
        margin: 0 0.75rem 0.75rem;
    }

    .rs-profile-completeness .rs-profile-field {
        min-height: 0;
        padding: 0.55rem 0.75rem;
        border-left: 0;
        border-top: 0.0625rem solid rgba(72, 65, 55, 0.1);
    }
}

.rs-pending-info-mode .rs-profile-sheet {
    overflow: hidden;
    border: 0.0625rem solid #d8d3c7;
    border-radius: 0.58rem;
    background: #f7f5f0;
    box-shadow: none;
}

.rs-pending-info-mode .rs-profile-sheet > .rs-profile-sheet__band {
    display: none;
}

.rs-pending-info-mode .rs-pending-profile-card {
    display: block;
    min-width: 0;
    background: #f7f5f0;
    color: #171814;
}

.rs-pending-info-mode .rs-pending-profile-card__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: clamp(0.58rem, 1.4vw, 1rem);
    padding: clamp(0.62rem, 1.35vw, 0.85rem);
    background: #46503d;
    color: #f7f3ea;
}

.rs-pending-info-mode .rs-pending-profile-number {
    position: relative;
    display: grid;
    place-items: center;
    min-width: clamp(2.1rem, 4vw, 2.65rem);
    min-height: clamp(2.1rem, 4vw, 2.65rem);
    padding: 0.22rem 0.36rem;
    border-radius: 0.42rem;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: clamp(0.9rem, 1.6vw, 1.05rem);
    font-weight: 560;
    line-height: 1;
}

.rs-pending-info-mode .rs-pending-profile-star {
    position: absolute;
    top: -0.48rem;
    right: -0.18rem;
    color: #f2c94c;
    font-size: clamp(0.82rem, 1.45vw, 0.98rem);
    line-height: 1;
    text-shadow: 0 0.08rem 0.18rem rgba(0, 0, 0, 0.25);
}

.rs-pending-info-mode .rs-pending-profile-head-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(0.52rem, 1.35vw, 0.9rem);
    min-width: 0;
}

.rs-pending-info-mode .rs-pending-profile-card--slot .rs-pending-profile-head-grid {
    grid-template-columns: minmax(0, 1fr);
}

.rs-pending-info-mode .rs-pending-profile-actions {
    display: inline-flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 0.42rem;
    min-width: 0;
}

.rs-pending-info-mode .rs-pending-profile-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.55rem;
    padding: 0.22rem 0.5rem;
    border-radius: 999rem;
    font-size: clamp(0.58rem, 1vw, 0.68rem);
    font-weight: 560;
    line-height: 1.05;
    white-space: nowrap;
}

.rs-pending-info-mode .rs-pending-profile-badge.is-complete {
    background: rgba(225, 244, 226, 0.94);
    color: #255936;
}

.rs-pending-info-mode .rs-pending-profile-badge.is-pending {
    background: #fff1e8;
    color: #8a5b17;
}

.rs-pending-info-mode .rs-pending-profile-edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999rem;
    color: #f7f3ea;
    cursor: pointer;
    text-decoration: none;
}

.rs-pending-info-mode .rs-pending-profile-edit:hover,
.rs-pending-info-mode .rs-pending-profile-edit:focus,
.rs-pending-info-mode .rs-pending-profile-edit:focus-visible {
    background: rgba(255, 255, 255, 0.13);
    color: #fff;
    outline: 0.13rem solid rgba(255, 255, 255, 0.42);
    outline-offset: 0.12rem;
    text-decoration: none;
}

.rs-pending-info-mode .rs-pending-profile-card__body {
    display: grid;
    background: #f7f5f0;
}

.rs-pending-info-mode .rs-pending-profile-row {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    min-width: 0;
    border-top: 0.0625rem solid #e1ddd3;
}

.rs-pending-info-mode .rs-pending-profile-cell,
.rs-pending-info-mode .rs-pending-profile-main-field {
    display: grid;
    align-content: start;
    gap: 0.18rem;
    min-width: 0;
}

.rs-pending-info-mode .rs-pending-profile-cell {
    min-height: 0;
    padding: clamp(0.52rem, 1.2vw, 0.72rem);
}

.rs-pending-info-mode .rs-pending-profile-cell + .rs-pending-profile-cell {
    border-left: 0.0625rem solid #d8d3c7;
}

/* ── Desktop column spans (semantic row classes) ── */
.rs-pending-info-mode .rs-pending-profile-row--contact > .rs-pending-profile-cell:first-child { grid-column: span 4; }
.rs-pending-info-mode .rs-pending-profile-row--contact > .rs-pending-profile-cell:nth-child(2) { grid-column: span 8; }

.rs-pending-info-mode .rs-pending-profile-row--location > .rs-pending-profile-cell,
.rs-pending-info-mode .rs-pending-profile-row--measures > .rs-pending-profile-cell { grid-column: span 4; }

.rs-pending-info-mode .rs-pending-profile-row--health > .rs-pending-profile-cell { grid-column: span 3; }

.rs-pending-info-mode .rs-pending-profile-row--email > .rs-pending-profile-cell { grid-column: span 6; }

.rs-pending-info-mode .rs-pending-profile-label {
    min-width: 0;
    color: inherit;
    font-size: clamp(0.58rem, 1vw, 0.68rem);
    font-weight: 480;
    line-height: 1.08;
    opacity: 0.76;
    overflow-wrap: anywhere;
}

.rs-pending-info-mode .rs-pending-profile-card__head .rs-pending-profile-label {
    color: rgba(247, 243, 234, 0.82);
    opacity: 1;
}

.rs-pending-info-mode .rs-pending-profile-value {
    min-width: 0;
    color: #24251f;
    font-size: clamp(0.78rem, 1.2vw, 0.9rem);
    font-weight: 520;
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.rs-pending-info-mode .rs-pending-profile-card__head .rs-pending-profile-value {
    color: #fff;
    font-size: clamp(0.78rem, 1.25vw, 0.92rem);
    font-weight: 540;
}

.rs-pending-info-mode .rs-pending-profile-value--icon {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.rs-pending-info-mode .rs-pending-profile-value--icon i {
    flex: 0 0 auto;
    color: #606259;
    font-size: clamp(0.84rem, 1.3vw, 0.96rem);
}

.rs-pending-info-mode .rs-pending-profile-cell--bool.is-yes .rs-pending-profile-value--icon i {
    color: #3f7a4b;
}

.rs-pending-info-mode .rs-pending-profile-cell--bool.is-no .rs-pending-profile-value--icon i {
    color: #3f4039;
}

.rs-pending-info-mode .rs-pending-profile-value .is-female {
    color: #d96b93;
    margin-right: 0.14rem;
}

.rs-pending-info-mode .rs-pending-profile-value .is-male {
    color: #4d8ac8;
    margin-right: 0.14rem;
}

.rs-pending-info-mode .rs-pending-profile-state {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    width: max-content;
    max-width: 100%;
    font-size: clamp(0.54rem, 0.9vw, 0.62rem);
    font-weight: 480;
    line-height: 1.08;
}

.rs-pending-info-mode .rs-pending-profile-state.is-missing,
.rs-pending-info-mode .rs-pending-profile-cell.is-missing .rs-pending-profile-value,
.rs-pending-info-mode .rs-pending-profile-main-field.is-missing .rs-pending-profile-value {
    color: #8a5b17;
}

.rs-pending-info-mode .rs-pending-profile-state.is-info {
    color: #8b7657;
}

.rs-pending-info-mode .rs-pending-profile-cell.is-unregistered .rs-pending-profile-value,
.rs-pending-info-mode .rs-pending-profile-main-field.is-unregistered .rs-pending-profile-value {
    color: #9a8c78;
    font-weight: 460;
}

.rs-pending-info-mode .rs-profile-sheet__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(0.5rem, 1.4vw, 0.9rem);
    padding: clamp(0.48rem, 1.1vw, 0.65rem) clamp(0.62rem, 1.35vw, 0.82rem);
    border-top: 0.0625rem solid #e1ddd3;
    background: #f7f5f0;
    color: #66543d;
    font-size: clamp(0.66rem, 1vw, 0.76rem);
    font-weight: 480;
}

.rs-pending-info-mode .rs-profile-sheet__footer a {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    color: #2e6a52;
    font-weight: 560;
    cursor: pointer;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .rs-pending-info-mode .rs-pending-profile-head-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .rs-pending-info-mode .rs-pending-profile-main-field--desktop {
        display: none;
    }

    .rs-pending-info-mode .rs-pending-profile-row--health > .rs-pending-profile-cell { grid-column: span 6; }
}

@media (max-width: 767.98px) {
    .rs-pending-info-mode {
        gap: 0.8rem;
    }

    .rs-pending-info-mode .rs-profile-sheet-list {
        gap: 0.9rem;
    }

    .rs-pending-info-mode .rs-pending-profile-card__head {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 0.5rem;
        padding: 0.62rem 0.58rem;
    }

    .rs-pending-info-mode .rs-pending-profile-head-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.52rem 0.68rem;
    }

    .rs-pending-info-mode .rs-pending-profile-actions {
        display: grid;
        justify-items: end;
        gap: 0.28rem;
    }

    .rs-pending-info-mode .rs-pending-profile-badge {
        font-size: 0.56rem;
        min-height: 1.3rem;
        padding: 0.18rem 0.36rem;
        white-space: normal;
    }

    .rs-pending-info-mode .rs-pending-profile-row--two {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    }

    .rs-pending-info-mode .rs-pending-profile-row--three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .rs-pending-info-mode .rs-pending-profile-row--contact > .rs-pending-profile-cell,
    .rs-pending-info-mode .rs-pending-profile-row--location > .rs-pending-profile-cell,
    .rs-pending-info-mode .rs-pending-profile-row--health > .rs-pending-profile-cell,
    .rs-pending-info-mode .rs-pending-profile-row--measures > .rs-pending-profile-cell,
    .rs-pending-info-mode .rs-pending-profile-row--email > .rs-pending-profile-cell {
        grid-column: auto;
    }

    .rs-pending-info-mode .rs-pending-profile-row--health {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rs-pending-info-mode .rs-pending-profile-cell {
        padding: 0.52rem 0.56rem;
    }

    .rs-pending-info-mode .rs-profile-sheet__footer {
        display: flex;
        align-items: center;
        padding: 0.5rem 0.58rem;
    }
}

@media (max-width: 374px) {
    .rs-pending-info-mode .rs-pending-profile-card__head {
        gap: 0.42rem;
        padding-inline: 0.5rem;
    }

    .rs-pending-info-mode .rs-pending-profile-head-grid {
        gap: 0.48rem 0.56rem;
    }

    .rs-pending-info-mode .rs-pending-profile-cell {
        padding-inline: 0.5rem;
    }
}


body{
    overflow-x: hidden;
}

.payment-card {
    border-radius: 15px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 30px;
    background-color: #ffeb3b;
    color: #333;
    transition: transform 0.2s, box-shadow 0.2s;
}

.payment-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.custom-link {
    display: inline-block;
    padding: 8px 10px;
    border-radius: 10px;
    background-color: white;
    border: 2px solid #28a745;
    transition: background-color 0.3s ease;
}

.custom-link a {
    text-decoration: none;
    color: black;
    display: flex;
    align-items: center;
    transition: color 0.3s ease;
}

.custom-link h2 {
    font-weight: 600;
    font-size: 1rem;
}

.custom-link:hover {
    background-color: #28a745;
}

.custom-link:hover a {
    color: black;
}

.custom-link:hover svg {
    fill: rgb(255, 255, 255);
}

.step-indicators {
    display: flex;
    justify-content: space-around;
    margin-bottom: 20px;
}

.step-indicator-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100px;
}

.step-indicator {
    width: 50px;
    height: 50px;
    line-height: 50px;
    border-radius: 50%;
    background-color: #ddd;
    color: #333;
    text-align: center;
    margin-bottom: 5px;
    font-size: 1.2rem;
    cursor: pointer;
}

.step-indicator:hover {
    background-color: #007bff;
    color: white;
    transition: background-color 0.6s ease;
}

.step-indicator.active {
    background-color: #007bff;
    color: white;
}

.step-description {
    font-size: 0.85rem;
}

/* Ocultar todos los pasos y mostrar solo el activo */
.step {
    display: none;
}

.step.active {
    display: block;
}

/* Estilos básicos */
.step {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s ease, visibility 0.6s;
    position: absolute;
    width: 100%;
    backface-visibility: hidden;
    transform-style: preserve-3d;
    transform-origin: center;
}

/* Paso activo */
.step.active {
    opacity: 1;
    visibility: visible;
    position: relative;
    z-index: 2;
}

/* Animación de tarjeta giratoria */
.step.slide-in-left {
    animation: slideInLeft 0.78s ease-out forwards;
    opacity: 0;
    transform: translateX(-50px);
}

.step.slide-in-right {
    animation: slideInRight 0.78s ease-out forwards;
    opacity: 0;
    transform: translateX(50px);
}

@keyframes slideInLeft {
    0% {
        opacity: 0;
        transform: translateX(-50px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInRight {
    0% {
        opacity: 0;
        transform: translateX(50px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Contenedor de la tarjeta bancaria */
/* Estilos base de la tarjeta bancaria */
.bank-account-option {
    border-radius: 12px;
    border: none;
    cursor: pointer;
    transition: all 0.25s;
    overflow: hidden;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 100%;
    max-width: 300px;
    height: 180px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Imagen de fondo que se ajusta sin deformarse */
.bank-account-option img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 12px;
}

.bank-account-option.selected {
    box-shadow: 0 0 0 4px #28a745; /* borde verde */
    transition: box-shadow 0.2s ease-in-out;
}

/* Información en la parte inferior */
.text-overlay {
    padding: 5px 10px;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    position: absolute;
    bottom: 50px;
    left: 0;
    z-index: 2;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    color: white;
}

/* Efecto de elevación al pasar el mouse */
.bank-account-option:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

/* Efecto visual cuando la tarjeta está seleccionada */
.bank-account-option.selected {
    border-color: transparent;
    box-shadow: 0 10px 20px rgba(0, 123, 255, 0.289);
    position: relative;
    overflow: hidden;
}

/* Capa translúcida para resaltar la selección */
.bank-account-option.selected::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 123, 255, 0.226);
    z-index: 5;
    border-radius: 12px;
}

/* Palomita en la esquina superior derecha */
.bank-account-option.selected::after {
    content: '\f058'; /* Código unicode del ícono de check en Font Awesome */
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    color: rgb(29, 216, 0);
    border-radius: 50%;
    padding: 5px;
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 1.5rem;
    z-index: 10;
}

/* Animación sutil para la palomita */
.bank-account-option.selected::after {
    animation: bounceIn 0.3s ease-out;
}

/* Animación de rebote */
@keyframes bounceIn {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }
    60% {
        transform: scale(1.2);
        opacity: 1;
    }
    100% {
        transform: scale(1);
    }
}


/* Botón Copiar Todo */
.copy-all-btn {
    font-size: 0.85rem;
    padding: 5px 10px;
    border-radius: 5px;
    background-color: white;
    transition: all 0.2s;
    width: 100%;
    max-width: 300px;
    text-align: center;
}

.copy-all-btn:hover {
    background-color: #f1f1f1;
    border-color: #007bff;
    color: #007bff;
}

/* Ajuste para dispositivos móviles */
@media (max-width: 768px) {
    .bank-account-option {
        max-width: 90vw;
        height: auto;
        /* Permitir que la altura sea dinámica */
    }

    .text-overlay p {
        padding: 0;
        font-size: 12px !important;
    }
}

.payment-type-selector {
    display: flex;
    flex-direction: column;
}

/*TIPO DE PAGO */
.payment-option {
    flex: 1;
    border: 2px solid #ddd;
    border-radius: 8px;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    background-color: white;
    margin: 0 5px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.payment-option:hover {
    border-color: #007bff81;
    background-color: #f1f7ffe5;
    color: rgba(0, 94, 131, 0.946);
    box-shadow: 0 4px 8px rgba(0, 123, 255, 0.2);
    transition: box-shadow 0.3s;
}

.payment-option span{
    font-size: 0.9rem;
}

.payment-option i.payment-icon {
    font-size: 2rem;
    margin-bottom: 5px;
    color: #6c757d;
    transition: color 0.3s;
}

.payment-option.active {
    border-color: #007bff;
    background-color: #e7f1ff;
    color: rgb(0, 93, 131);
    box-shadow: 0 4px 8px rgba(0, 123, 255, 0.2);
}

.payment-option.active i.payment-icon {
    color: rgb(0, 93, 131);
}

.payment-info-content {
    display: none;
    padding: 10px;
    border-radius: 8px;
    background-color: #f9f9f9;
}

.payment-info-content.active {
    display: block;
}

.payment-summary {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
}

.payment-summary h5 {
    font-size: 1.1rem;
    margin-bottom: 10px;
}

.payment-summary ul {
    margin: 0;
    padding: 0;
}

.payment-summary li {
    display: flex;
    justify-content: space-between;
    padding: 5px 0;
    border-bottom: 1px solid #eee;
}

.payment-summary li:last-child {
    border-bottom: none;
}

/* ESTILO DE GUARDADO EN FORM */
.save-indicator {
    font-size: 0.8rem;
    color: #28a745; /* Verde para "Guardado" */
    margin-left: 10px;
    animation: fadeOut 2s forwards;
}

.save-indicator.error {
    color: #dc3545; /* Rojo para "Error al guardar" */
}

/* Animación para desvanecer el indicador */
@keyframes fadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        visibility: hidden;
    }
}
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
#drafts-container {
    background: #f8f9fa;
    padding: 15px;
    border-radius: 10px;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
}

.list-group-item {
    cursor: pointer;
    transition: all 0.3s ease-in-out;
}

.list-group-item:hover {
    background: #e2e6ea;
}
.btn-danger {
    background-color: #D9534F;
    border: none;
}

.btn-danger:hover {
    background-color: #C9302C;
}

.btn-light {
    background-color: #F8F9FA;
}

.list-group-item {
    border: 1px solid #53584C;
}
.borrador:hover{
    background-color: #BAA88D;
    color: white !important;
}

.card {
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.card:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}
.progress {
    height: 12px;
    border-radius: 5px;
}
.progress-bar {
    transition: width 0.5s ease-in-out;
}
.btn {
    transition: all 0.3s ease-in-out;
}
.btn:hover {
    transform: scale(1.05);
}
.list-group-item {
    transition: background-color 0.3s ease-in-out;
}
.list-group-item:hover {
    background-color: rgba(0, 0, 0, 0.05);
}

.addons-container {
    padding: 30px 0;
}
.addon-card {
    border: none;
    border-radius: 15px;
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
    overflow: hidden;
    background: #F9F9F9;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.addon-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}
.addon-body {
    padding: 20px;
    text-align: center;
}
.addon-price {
    font-size: 20px;
    font-weight: bold;
    color: #333;
    display: block;
    margin-top: 10px;
}
.btn-addon {
    background-color: #BAA88D;
    color: white;
    border-radius: 20px;
    padding: 10px 15px;
    font-size: 15px;
    font-weight: bold;
    transition: background 0.3s ease-in-out, transform 0.2s ease-in-out;
    display: inline-block;
    margin-top: 15px;
    border: none;
}
.btn-addon:hover {
    background-color: #9C8A6E;
    transform: scale(1.05);
}
.addon-title {
    font-size: 18px;
    font-weight: bold;
    color: #222;
    margin-bottom: 8px;
}
.card-text {
    font-size: 14px;
    color: #555;
}
/* Animaciones y transiciones */
.progress-bar {
    transition: width 0.6s ease-in-out;
}
.btn {
    transition: all 0.3s ease-in-out;
}
.btn:hover {
    transform: scale(1.05);
}
.table tbody tr {
    transition: background-color 0.3s ease-in-out;
}
.table tbody tr:hover {
    background-color: rgba(0, 0, 0, 0.05);
}

.open-modal-btn {
    transition: color 0.3s ease-in-out;
}
.assign-addon-card {
    transition: all 0.3s ease-in-out;
    cursor: pointer;
    border: 2px solid #ddd;
    border-radius: 10px;
    padding: 15px;
}

.assign-addon-card.selected {
    border-color: #28a745;
    background-color: #e9fbe9;
}

.assign-addon-btn {
    width: 100%;
    font-weight: bold;
    transition: 0.3s;
}

.assign-addon-btn i {
    margin-right: 5px;
}


@keyframes pulse {
    0% { box-shadow: 0 0 10px rgba(40, 167, 69, 0.5); }
    50% { box-shadow: 0 0 20px rgba(40, 167, 69, 0.7); }
    100% { box-shadow: 0 0 10px rgba(40, 167, 69, 0.5); }
}
.pulse-animation {
    animation: pulse 1.5s infinite;
}
/* Fondo de la tarjeta */
.payment-card {
    background-color: #fff8d6; /* Amarillo pastel */
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Título */
.payment-title {
    font-size: 1.5rem;
    font-weight: bold;
    color: #6c4c24; /* Marrón elegante */
    display: flex;
    align-items: center;
}

/* Ícono del título */
.payment-icon {
    font-size: 1.8rem;
    margin-right: 10px;
    color: #ffb400; /* Amarillo fuerte */
}

/* Texto de la descripción */
.payment-text {
    font-size: 1rem;
    color: #5a5a5a;
}

/* Resaltar monto a pagar */
.payment-amount {
    color: #d9534f; /* Rojo suave */
    font-weight: bold;
}

/* Botón de pago */
.payment-button {
    background-color: #ffcc00; /* Amarillo vibrante */
    color: #fff;
    font-size: 1.2rem;
    font-weight: bold;
    padding: 12px 24px;
    border: none;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(255, 204, 0, 0.5);
    transition: all 0.3s ease-in-out;
}

/* Hover: oscurece y agranda el botón */
.payment-button:hover {
    background-color: #ffa500; /* Naranja */
    transform: scale(1.05);
}

/* Activo: efecto de pulsación */
.payment-button:active {
    transform: scale(0.95);
}

/* Animación de pulso */
@keyframes payment-pulse {
    0% { box-shadow: 0 0 10px rgba(255, 204, 0, 0.7); }
    50% { box-shadow: 0 0 20px rgba(255, 204, 0, 1); }
    100% { box-shadow: 0 0 10px rgba(255, 204, 0, 0.7); }
}

.payment-button {
    animation: payment-pulse 2s infinite;
}
/* Contenedor del aviso */
.pending-info-alert {
    background-color: #fff8d6; /* Amarillo pastel */
    border-left: 6px solid #ffcc00; /* Borde llamativo */
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    position: relative;
    animation: fadeIn 0.6s ease-in-out;
    transition: all 0.3s ease-in-out;
}

/* Animación de entrada */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-15px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Botón de cierre */
.close-alert-btn {
    background: none;
    border: none;
    font-size: 20px;
    font-weight: bold;
    cursor: pointer;
    color: #cc5200;
    transition: all 0.2s ease-in-out;
}

.close-alert-btn:hover {
    color: #ff0000;
    transform: scale(1.2);
}

/* Lista de participantes */
.participant-list {
    list-style: none;
    padding-left: 0;
    margin-top: 12px;
}

/* Tarjetas individuales para cada participante */
.participant-item {
    background: #ffedb8; /* Fondo amarillo más claro */
    padding: 10px;
    border-radius: 6px;
    margin-bottom: 8px;
    font-size: 1rem;
    font-weight: 500;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
    transition: all 0.2s ease-in-out;
}

.participant-item:hover {
    background: #ffdb7c; /* Amarillo más fuerte al pasar el mouse */
}

/* Campos pendientes destacados */
.missing-fields {
    color: #d9534f; /* Rojo llamativo */
    font-weight: bold;
}

/* Animación de cierre */
.fade-out {
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}
#ftco-loader{
    display: none;
}
/* 🔹 SECCIÓN: Seleccionar Tipo de Participante */
/* 🔹 CONTENEDOR GENERAL */
.participant-type-container {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    border: 1px solid #dee2e6;
}

/* 🔹 OPCIONES COMO TARJETAS */
.participant-type-option {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 10px;
    border: 2px solid #ccc;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    text-align: center;
    font-size: 0.85rem;
    font-weight: bold;
    color: #333;
    position: relative;
    background: white;
    padding: 10px;
}

/* Ocultar los input de radio */
.participant-type-option input {
    display: none;
}

/* 🔹 CONTENIDO INTERNO */
.option-content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 🔹 ICONOS */
.option-content i {
    font-size: 1.5rem;
    color: #007bff;
    margin-bottom: 5px;
}

/* 🔹 EFECTO AL SELECCIONAR */
.participant-type-option input:checked + .option-content {
    color: #007bff;
    font-weight: bold;
}

/* 🔹 BORDE Y SOMBRA AL SELECCIONAR */
.participant-type-option input:checked + .option-content i {
    color: white;
    background: #007bffc2;
    padding: 10px;
    clip-path: circle();
}

.participant-type-option:hover {
    border-color: #007bff;
}


.form-check-inline {
    margin-right: 15px;
}

.form-check-label i {
    margin-right: 5px;
    color: #007bff;
    font-size: 1.2rem;
}

/* 🔹 CARDS */
.card {
    border-radius: 8px;
    border: none;
    background: #ffffff;
}

.card h5 {
    margin-bottom: 15px;
}

/* 🔹 BOTÓN */
#add-participant {
    font-size: 1.1rem;
    font-weight: bold;
    padding: 12px;
    border-radius: 8px;
}

@media (min-width: 768px) {
    .cards-wrapper {
        display: none;
    }
    .status-programado {
        background-color: #b8fbc8; /* Verde claro */
    }
    .status-cancelado, .status-devuelto, .status-transferido, .status-cambio {
        background-color: #f8b5bb; /* Rojo claro */
    }
    .status-interesado {
        background-color: #ffecb0; /* Amarillo claro */
    }
}

/* 📱 En móviles, oculta la tabla y muestra las tarjetas */
@media (max-width: 767px) {
    .table-wrapper {
        display: none;
    }
    .cards-wrapper {
        display: block;
    }
    .badge-status {
        color: #000 !important; /* Asegura que el texto sea visible */
        padding: 5px 10px;
        border-radius: 5px;
        font-weight: bold;
    }

    .badge-status.status-programado {
        background-color: #b8fbc8;
    }

    .badge-status.status-cancelado, 
    .badge-status.status-devuelto, 
    .badge-status.status-transferido, 
    .badge-status.status-cambio {
        background-color: #f8b5bb;
    }

    .badge-status.status-interesado {
        background-color: #ffecb0;
    }
}

/* 🌟 Estilos para las tarjetas */
.participant-card {
    border: 1px solid #ddd;
    margin-bottom: 15px;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ============================================================
   RF DESIGN SYSTEM — Reservation Flow
   ============================================================ */

:root {
    --rf-warm:   #F0E8E2;
    --rf-sage:   #DFE2CF;
    --rf-red:    #B30E1C;
    --rf-cta:    #E30613;
    --rf-dark:   #4D4D4A;
    --rf-peach:  #FAE1CD;
}

/* ── Wrapper ──────────────────────────────────────────────── */
.rf-wrapper {
    max-width: 780px;
    margin: 0 auto 2rem;
    padding: 0 1rem;
}

/* ── Stepper ──────────────────────────────────────────────── */
.rf-stepper {
    display: flex;
    align-items: center;
    background: var(--rf-warm);
    border-radius: 40px;
    padding: .45rem 1.2rem;
    margin: 1.2rem 0 1.4rem;
    gap: 0;
}
.rf-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    gap: .18rem;
}
.rf-step-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #d0c8c2;
    color: #888;
    font-size: .72rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, color .2s;
}
.rf-step-label {
    font-size: .65rem;
    color: #999;
    font-weight: 500;
    white-space: nowrap;
    transition: color .2s;
}
.rf-step.active .rf-step-num {
    background: var(--rf-cta);
    color: #fff;
    box-shadow: 0 2px 8px rgba(227,6,19,.25);
}
.rf-step.active .rf-step-label {
    color: var(--rf-dark);
    font-weight: 700;
}
.rf-step.done .rf-step-num {
    background: var(--rf-dark);
    color: #fff;
}
.rf-step.done .rf-step-label {
    color: var(--rf-dark);
}
.rf-step-line {
    flex: 1;
    height: 1px;
    background: #c8c0b8;
    margin: 0 .3rem;
    align-self: center;
    margin-bottom: .9rem;
}

/* ── Status message ───────────────────────────────────────── */
.rf-status-msg {
    text-align: center;
    padding: .8rem .5rem .4rem;
}
.rf-status-msg .rf-status-icon {
    font-size: 1.5rem;
    color: var(--rf-cta);
    margin-bottom: .3rem;
}
.rf-status-msg h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .2rem;
}
.rf-status-msg p {
    font-size: .8rem;
    color: #777;
    margin: 0;
}

/* ── Main reservation card ────────────────────────────────── */
.rf-main-card {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 1.2rem;
}
.rf-card-top {
    display: flex;
    align-items: stretch;
    padding: 1rem 1.2rem;
    gap: 1rem;
    border-bottom: 1px solid #f0ece8;
}
.rf-tour-col {
    flex: 1;
}
.rf-tour-col h3 {
    font-size: .92rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin: .2rem 0 .3rem;
}
.rf-tour-icon {
    font-size: 1rem;
    color: #bbb;
    margin-bottom: .2rem;
}
.rf-tour-meta {
    font-size: .73rem;
    color: #888;
    margin: 0;
    line-height: 1.6;
}
.rf-price-col {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    min-width: 130px;
    padding-left: 1rem;
    border-left: 1px solid #f0ece8;
}
.rf-price-label {
    font-size: .68rem;
    color: #999;
    text-align: right;
    margin-bottom: .2rem;
}
.rf-price-value {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--rf-red);
    line-height: 1.1;
    text-align: right;
}

/* ── Regular price strip ──────────────────────────────────── */
.rf-regular-strip {
    background: var(--rf-sage);
    padding: .35rem 1.2rem;
    font-size: .74rem;
    color: var(--rf-dark);
    text-align: center;
    border-bottom: 1px solid rgba(0,0,0,.04);
}

/* ── CTA area ─────────────────────────────────────────────── */
.rf-cta-area {
    padding: 1rem 1.2rem;
    text-align: center;
}
.rf-cta-btn {
    display: inline-block;
    background: var(--rf-cta);
    color: #fff !important;
    border: none;
    border-radius: 50px;
    padding: .65rem 2rem;
    font-size: .88rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 3px 12px rgba(227,6,19,.3);
    width: 100%;
    max-width: 400px;
    transition: background .2s, box-shadow .2s;
    text-decoration: none;
}
.rf-cta-btn:hover {
    background: #c40511;
    box-shadow: 0 4px 18px rgba(227,6,19,.45);
    color: #fff !important;
}

/* ── Trust row ────────────────────────────────────────────── */
.rf-trust-row {
    display: flex;
    justify-content: center;
    gap: 1.2rem;
    margin-top: .7rem;
    flex-wrap: wrap;
}
.rf-trust-item {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .7rem;
    color: #888;
}
.rf-trust-item i {
    font-size: .8rem;
}

/* ── Payment logos ────────────────────────────────────────── */
.rf-payment-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .7rem;
    padding: .5rem 1.2rem;
    border-top: 1px solid #f4f0ec;
    border-bottom: 1px solid #f4f0ec;
}
.rf-payment-logos img {
    height: 20px;
    opacity: .7;
    object-fit: contain;
}
.rf-payment-logos span {
    font-size: .65rem;
    color: #bbb;
}

/* ── Urgency strip ────────────────────────────────────────── */
.rf-urgency-strip {
    background: var(--rf-warm);
    padding: .45rem 1.2rem;
    font-size: .74rem;
    color: var(--rf-dark);
    text-align: center;
}
.rf-urgency-strip i {
    color: var(--rf-red);
    margin-right: .3rem;
}

/* ── Code card ────────────────────────────────────────────── */
.rf-code-card {
    background: var(--rf-warm);
    border-radius: 12px;
    padding: 1rem 1.2rem;
    margin-bottom: 1rem;
}
.rf-code-card-title {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .5rem;
}
.rf-code-row {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-bottom: .45rem;
}
.rf-code-box {
    flex: 1;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: .45rem .8rem;
    font-size: .9rem;
    font-weight: 700;
    color: var(--rf-dark);
    letter-spacing: .08em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rf-copy-pill {
    background: var(--rf-peach);
    border: none;
    border-radius: 50px;
    padding: .4rem .9rem;
    font-size: .72rem;
    font-weight: 600;
    color: var(--rf-dark);
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s;
}
.rf-copy-pill:hover {
    background: #f0c8a0;
}
.rf-code-hint {
    font-size: .7rem;
    color: #888;
    margin: 0;
}

/* ── Action grid ──────────────────────────────────────────── */
.rf-action-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
    margin-bottom: 1rem;
}
.rf-action-card {
    background: #fff;
    border: 1px solid #e8e4e0;
    border-radius: 12px;
    padding: .9rem 1rem;
}
.rf-action-card h6 {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .3rem;
}
.rf-action-card p {
    font-size: .7rem;
    color: #888;
    margin-bottom: .6rem;
}

/* ── Dark pill button ─────────────────────────────────────── */
.rf-btn-dark {
    display: inline-block;
    background: var(--rf-dark);
    color: #fff !important;
    border: none;
    border-radius: 50px;
    padding: .38rem .9rem;
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s;
    text-decoration: none;
    line-height: 1.4;
}
.rf-btn-dark:hover {
    background: #333330;
    color: #fff !important;
}

/* ── Link row ─────────────────────────────────────────────── */
.rf-link-row {
    display: flex;
    gap: .4rem;
    align-items: center;
}
.rf-link-input {
    flex: 1;
    border: 1px solid #e0dbd6;
    border-radius: 8px;
    padding: .38rem .7rem;
    font-size: .72rem;
    color: #555;
    background: #fafafa;
    min-width: 0;
}
.rf-link-copy-btn {
    background: var(--rf-dark);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: .38rem .65rem;
    font-size: .78rem;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .2s;
}
.rf-link-copy-btn:hover {
    background: #333330;
}

/* ── Section title ────────────────────────────────────────── */
.rf-section-title {
    font-size: .82rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .6rem;
    padding-bottom: .3rem;
    border-bottom: 1px solid #eee;
}

/* ── Participant item ─────────────────────────────────────── */
.rf-participant-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    background: #fff;
    border: 1px solid #ebe7e3;
    border-radius: 10px;
    padding: .7rem .9rem;
    margin-bottom: .5rem;
    gap: .6rem;
}
.rf-participant-info {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    flex: 1;
    min-width: 0;
}
.rf-participant-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rf-warm);
    color: var(--rf-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    flex-shrink: 0;
}
.rf-participant-name {
    font-size: .82rem;
    font-weight: 700;
    color: var(--rf-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rf-participant-meta {
    font-size: .69rem;
    color: #888;
    margin-top: .1rem;
    line-height: 1.5;
}
.rf-participant-actions {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-shrink: 0;
}
.rf-edit-btn {
    display: inline-block;
    background: var(--rf-dark);
    color: #fff !important;
    border: none;
    border-radius: 50px;
    padding: .3rem .75rem;
    font-size: .7rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s;
}
.rf-edit-btn:hover {
    background: #333330;
    color: #fff !important;
}

/* ── Slot item ────────────────────────────────────────────── */
.rf-slot-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1.5px dashed #d0cac4;
    border-radius: 10px;
    padding: .6rem .9rem;
    margin-bottom: .5rem;
    background: #faf8f6;
}
.rf-slot-label {
    font-size: .75rem;
    color: #aaa;
}

/* ── Extras header ────────────────────────────────────────── */
.rf-extras-header {
    margin-bottom: .8rem;
}
.rf-extras-header h4 {
    font-size: .95rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .15rem;
}
.rf-extras-header p {
    font-size: .75rem;
    color: #888;
    margin: 0;
}

/* ── Extras grid ──────────────────────────────────────────── */
.rf-extras-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin-bottom: 1rem;
}
.rf-extra-card {
    background: #fff;
    border: 1px solid #ebe7e3;
    border-radius: 12px;
    overflow: hidden;
}
.rf-extra-img-placeholder {
    background: var(--rf-warm);
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #c8b8ae;
}
.rf-extra-body {
    padding: .7rem .8rem;
}
.rf-extra-name {
    font-size: .75rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .15rem;
}
.rf-extra-desc {
    font-size: .68rem;
    color: #888;
    margin-bottom: .3rem;
    line-height: 1.4;
}
.rf-extra-price {
    font-size: .82rem;
    font-weight: 800;
    color: var(--rf-red);
    margin-bottom: .4rem;
}
.rf-extra-add-btn {
    display: block;
    width: 100%;
    background: var(--rf-dark);
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: .3rem .6rem;
    font-size: .7rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s;
}
.rf-extra-add-btn:hover {
    background: #333330;
}

/* ── Extras summary ───────────────────────────────────────── */
.rf-extras-summary {
    background: #fff;
    border: 1px solid #ebe7e3;
    border-radius: 12px;
    padding: .9rem 1rem;
    margin-bottom: 1rem;
}
.rf-extras-summary h6 {
    font-size: .8rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .6rem;
}
.rf-extras-summary-row {
    display: flex;
    justify-content: space-between;
    font-size: .75rem;
    color: #555;
    padding: .25rem 0;
    border-bottom: 1px solid #f4f0ec;
}
.rf-extras-total-row {
    display: flex;
    justify-content: space-between;
    font-size: .8rem;
    font-weight: 700;
    color: var(--rf-dark);
    padding: .4rem 0 0;
}

/* ── Continue button ──────────────────────────────────────── */
.rf-continue-btn {
    display: block;
    width: 100%;
    max-width: 360px;
    margin: .8rem auto;
    background: var(--rf-dark);
    color: #fff !important;
    border: none;
    border-radius: 50px;
    padding: .65rem 1.5rem;
    font-size: .88rem;
    font-weight: 700;
    text-align: center;
    cursor: pointer;
    transition: background .2s;
    text-decoration: none;
}
.rf-continue-btn:hover {
    background: #333330;
    color: #fff !important;
}

/* ── Bottom divider ───────────────────────────────────────── */
.rf-bottom-divider {
    border: none;
    border-top: 1px solid #e8e3de;
    margin: 1.5rem 0 1rem;
}

/* ── Payment box (urgent) ─────────────────────────────────── */
.rf-payment-box {
    background: #fff;
    border: 1px solid #ebe7e3;
    border-radius: 12px;
    padding: 1rem 1.2rem;
    margin-bottom: 1rem;
}

/* ── Totals row ───────────────────────────────────────────── */
.rf-totals {
    text-align: right;
    font-size: .82rem;
    color: #555;
    padding: .5rem 0;
    border-top: 1px solid #eee;
    margin-top: .5rem;
}
.rf-totals strong {
    font-size: .95rem;
    color: var(--rf-dark);
}

/* ── Bottom actions ───────────────────────────────────────── */
.rf-bottom-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-top: .8rem;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 600px) {
    .rf-card-top {
        flex-direction: column;
        gap: .6rem;
    }
    .rf-price-col {
        align-items: flex-start;
        border-left: none;
        padding-left: 0;
        border-top: 1px solid #f0ece8;
        padding-top: .6rem;
    }
    .rf-action-grid {
        grid-template-columns: 1fr;
    }
    .rf-extras-grid {
        grid-template-columns: 1fr 1fr;
    }
    .rf-stepper {
        padding: .4rem .7rem;
    }
    .rf-step-label {
        font-size: .58rem;
    }
    .rf-bottom-actions {
        flex-direction: column;
    }
}
@media (max-width: 400px) {
    .rf-extras-grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════════════════════
   CREATE.BLADE — STEP 1 COMPONENTS
   ══════════════════════════════════════════════════════════════ */

/* ── Details card ─────────────────────────────────────────── */
.rf-details-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0,0,0,.06);
    overflow: hidden;
    margin-bottom: 1.2rem;
}
.rf-details-title {
    font-size: .88rem;
    font-weight: 700;
    color: var(--rf-dark);
    text-align: center;
    padding: .8rem 1.2rem .4rem;
    margin: 0;
    border-bottom: 1px solid #f4f0ec;
}
.rf-details-body {
    display: flex;
    gap: .8rem;
    padding: .6rem 1.2rem 1rem;
    align-items: flex-start;
}
.rf-details-info {
    flex: 1;
    min-width: 0;
}
.rf-details-img {
    width: 130px;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
}
.rf-detail-tour-name {
    font-size: .88rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .35rem;
}
.rf-detail-row {
    font-size: .74rem;
    color: #666;
    padding: .12rem 0;
    display: flex;
    align-items: baseline;
    gap: .35rem;
}
.rf-detail-price {
    font-size: .78rem;
    color: var(--rf-dark);
    font-weight: 600;
}

/* ── Form sections ────────────────────────────────────────── */
.rf-form-section {
    padding: .9rem 1.2rem;
    border-top: 1px solid #f4f0ec;
}
.rf-form-section-title {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rf-dark);
    margin-bottom: .2rem;
}
.rf-form-section-hint {
    font-size: .72rem;
    color: #888;
    margin-bottom: .5rem;
}

/* ── Attendants row ───────────────────────────────────────── */
.rf-attendants-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    padding: .25rem 0;
}
.rf-qty-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rf-dark);
    color: #fff;
    border: none;
    font-size: .85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s;
    flex-shrink: 0;
    line-height: 1;
}
.rf-qty-btn:hover { background: #333330; }
.rf-qty-input {
    width: 60px;
    text-align: center;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: .35rem .5rem;
    font-size: .9rem;
    font-weight: 700;
    color: var(--rf-dark);
}

/* ── Discount applied card ────────────────────────────────── */
.rf-discount-applied-card {
    display: flex;
    align-items: center;
    gap: .7rem;
    background: #f3fdf5;
    border: 1px solid #a8d5b5;
    border-radius: 10px;
    padding: .65rem .9rem;
    margin-bottom: .5rem;
}
.rf-discount-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #28a745;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    flex-shrink: 0;
}
.rf-discount-label {
    font-size: .76rem;
    font-weight: 700;
    color: #1a6b32;
}
.rf-discount-badge {
    background: #28a745;
    color: #fff;
    border-radius: 50px;
    padding: .15rem .5rem;
    font-size: .65rem;
    font-weight: 700;
    margin-left: .3rem;
}
.rf-discount-sub {
    font-size: .68rem;
    color: #5a8a6a;
    margin: 0;
}
.rf-btn-outline {
    display: inline-block;
    background: transparent;
    color: var(--rf-dark);
    border: 1px solid var(--rf-dark);
    border-radius: 50px;
    padding: .3rem .8rem;
    font-size: .73rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s;
    text-decoration: none;
    margin-bottom: .5rem;
}
.rf-btn-outline:hover {
    background: var(--rf-dark);
    color: #fff;
}
.rf-discount-input-row {
    display: flex;
    gap: .4rem;
    align-items: center;
    margin-bottom: .3rem;
}
.rf-discount-input-row input {
    flex: 1;
}

/* ── Price summary ────────────────────────────────────────── */
.rf-price-summary {
    background: var(--rf-warm);
    border-radius: 10px;
    padding: .8rem 1rem;
    margin: .5rem 1.2rem .9rem;
}
.rf-price-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .78rem;
    color: var(--rf-dark);
    margin-bottom: .2rem;
}
.rf-price-summary-total {
    font-size: .9rem;
    font-weight: 800;
    color: var(--rf-red);
}
.rf-price-summary-discount {
    display: flex;
    justify-content: space-between;
    font-size: .74rem;
    color: #555;
    padding: .2rem 0;
    border-top: 1px solid #ddd6ce;
    margin-bottom: .2rem;
}
.rf-price-summary-perunit {
    font-size: .73rem;
    color: #888;
    border-top: 1px solid #ddd6ce;
    padding-top: .3rem;
    margin-top: .2rem;
    text-align: right;
}

/* ── Agreement label ──────────────────────────────────────── */
.rf-agreement-label {
    font-size: .76rem;
    font-weight: 600;
    color: var(--rf-dark);
    display: block;
    margin-bottom: .2rem;
    cursor: pointer;
}
.rf-agreement-label input[type="radio"] {
    margin-right: .4rem;
}

/* ── Responsive adjustments for details card ─────────────── */
@media (max-width: 600px) {
    .rf-details-body {
        flex-direction: column;
    }
    .rf-details-img {
        width: 100%;
    }
    .rf-details-img img {
        height: 120px !important;
        object-fit: cover;
        width: 100%;
    }
    .rf-price-summary {
        margin-left: .8rem;
        margin-right: .8rem;
    }
    .rf-form-section {
        padding: .75rem .8rem;
    }
}

/* ============================================================
   RS DESIGN SYSTEM — Reservation Flow v2 (reservation.blade)
   Palette: #F0E8E2 warm · #DFE2CF sage · #B30E1C red-price
            #E30613 cta · #4D4D4A dark · #FAE1CD peach
   ============================================================ */

:root {
    --rs-warm:   #F0E8E2;
    --rs-sage:   #DFE2CF;
    --rs-red:    #B30E1C;
    --rs-cta:    #E30613;
    --rs-dark:   #4D4D4A;
    --rs-peach:  #FAE1CD;
    --rs-radius: 12px;
    --rs-shadow: 0 2px 10px rgba(0,0,0,.07);
    --rs-pay-card-max: 640px;
}

/* ── Wrapper (full-width background layer) ───────────────── */
.rs-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

/* ── Inner container (same width/centering as before) ──────── */
.rs-inner {
    max-width: clamp(48.75rem, 90%, 80rem);
    margin: 0 auto;
    padding: 0 1rem;
}


/* ════════════════════════════════════════════════════════════
   STEPPER
   ════════════════════════════════════════════════════════════ */
.rs-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-warm);
    border-radius: 0;
    padding: .55rem 1.2rem;
    margin: 0 0 1rem;
    gap: 0;
    width: 100%;
}

.rs-summary-card {
    background: linear-gradient(180deg, #fffaf3 0%, #f7f1e8 100%);
    border: 1px solid #e4d7c6;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(77, 77, 74, .06);
    padding: 1rem 1rem .95rem;
    margin: .75rem 0 1rem;
}
.rs-summary-card__head {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}
.rs-summary-card__icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #efe1c8;
    color: #7a6648;
    flex-shrink: 0;
}
.rs-summary-card__titles {
    min-width: 0;
    flex: 1 1 220px;
}
.rs-summary-card__eyebrow {
    display: block;
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #8f7a56;
    font-weight: 700;
}
.rs-summary-card__title {
    margin: .15rem 0 0;
    font-size: 1rem;
    line-height: 1.25;
    color: #2a241c;
    font-weight: 700;
}
.rs-summary-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .38rem .7rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    white-space: nowrap;
}
.rs-summary-card__badge.is-complete {
    background: rgba(112, 134, 96, .14);
    color: #51613f;
}
.rs-summary-card__badge.is-partial {
    background: rgba(143, 122, 86, .16);
    color: #6f5a39;
}
.rs-summary-card__badge.is-pending {
    background: rgba(185, 164, 137, .18);
    color: #6a4e2e;
}
.rs-summary-card__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem .9rem;
    margin-top: .9rem;
}
.rs-summary-card__item {
    min-width: 0;
}
.rs-summary-card__label {
    display: block;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #948777;
    font-weight: 700;
    margin-bottom: .15rem;
}
.rs-summary-card__value {
    display: block;
    color: #2d2a25;
    font-size: .85rem;
    line-height: 1.35;
    font-weight: 600;
    word-break: break-word;
}
.rs-summary-card__note {
    margin: .75rem 0 0;
    font-size: .78rem;
    color: #6f6252;
    line-height: 1.35;
}
.rs-pending-confirmation {
    align-items: center;
    background: #fff8ed;
    border: 1px solid #ead7b9;
    border-radius: 14px;
    color: #6b5840;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .75rem;
    line-height: 1.3;
    margin: .75rem 0 1rem;
    padding: .72rem .85rem;
}
.rs-pending-confirmation--compact {
    margin: .75rem 0 0;
    padding: .55rem .65rem;
}
.rs-pending-confirmation__badge {
    align-items: center;
    background: #f0dfc3;
    border-radius: 999px;
    color: #5b4933;
    display: inline-flex;
    flex-shrink: 0;
    font-size: .72rem;
    font-weight: 800;
    gap: .3rem;
    padding: .28rem .55rem;
    text-transform: uppercase;
}
.rs-pending-confirmation__text {
    display: flex;
    flex: 1 1 260px;
    flex-wrap: wrap;
    font-size: .78rem;
    gap: .15rem .65rem;
}
.rs-pending-confirmation__text span::before {
    content: '•';
    margin-right: .28rem;
}
.rs-validation-shell {
    background: #fff;
    border: 1px solid rgba(70, 74, 63, .12);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(45, 42, 37, .08);
    margin: 0 auto;
    max-width: 31rem;
    padding: 1.55rem;
    text-align: left;
}
.rs-payment-centered-content {
    inline-size: min(100%, var(--rs-pay-card-max));
    margin-inline: auto;
}

.rs-payment-centered-content .rs-pay-headline,
.rs-payment-centered-content .rs-validation-shell,
.rs-payment-centered-content .rs-pay-card {
    max-width: var(--rs-pay-card-max);
    width: 100%;
}

.rs-payment-centered-content .rs-validation-shell {
    box-sizing: border-box;
}
.rs-validation-shell--center {
    text-align: center;
}
.rs-validation-icon {
    align-items: center;
    background: #f7efe3;
    border-radius: 999px;
    color: #8f6b37;
    display: inline-flex;
    font-size: 1.55rem;
    height: 3.25rem;
    justify-content: center;
    margin-bottom: 1rem;
    width: 3.25rem;
}
.rs-validation-title {
    color: #2d2a25;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.18;
    margin: 0 0 .45rem;
}
.rs-validation-copy {
    color: #6f6252;
    font-size: .92rem;
    line-height: 1.45;
    margin: 0 0 1rem;
}
.rs-validation-summary {
    background: #faf7f2;
    border: 1px solid rgba(143, 107, 55, .16);
    border-radius: 12px;
    display: grid;
    gap: .62rem;
    margin: 1rem 0 1.1rem;
    padding: .85rem;
}
.rs-validation-row {
    align-items: baseline;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
}
.rs-validation-label {
    color: #8a7f70;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}
.rs-validation-value {
    color: #2d2a25;
    font-size: .86rem;
    font-weight: 700;
    text-align: right;
}
.rs-validation-note {
    color: #7b6c58;
    font-size: .78rem;
    line-height: 1.4;
    margin: .55rem 0 0;
}
/* ── Stripe status page ────────────────────────────────── */
.rs-stripe-status-wrap {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
}
.rs-stripe-pending-ring {
    width: 1.6rem;
    height: 1.6rem;
    border: 3px solid rgba(143, 107, 55, .22);
    border-top-color: #8f6b37;
    border-radius: 50%;
    animation: rs-spin .9s linear infinite;
}
@keyframes rs-spin {
    to { transform: rotate(360deg); }
}
.rs-stripe-status-cta {
    margin-top: 1.1rem;
    text-align: center;
}
.rs-stripe-status-primary {
    align-items: center;
    background: var(--alpek-blue, #005D83);
    border: 1px solid var(--alpek-blue, #005D83);
    box-shadow: 0 10px 22px rgba(0, 93, 131, .18);
    color: #fff !important;
    display: inline-flex;
    justify-content: center;
    min-height: 2.5rem;
    padding: .62rem 1.15rem;
    text-decoration: none;
}
.rs-stripe-status-primary:hover {
    background: #004a68;
    border-color: #004a68;
    color: #fff !important;
    text-decoration: none;
}
.rs-stripe-status-primary:focus,
.rs-stripe-status-primary:focus-visible {
    box-shadow: 0 0 0 .2rem rgba(0, 93, 131, .24);
    color: #fff !important;
    outline: 2px solid rgba(0, 93, 131, .35);
    outline-offset: 2px;
    text-decoration: none;
}
/* Compact deadline notice inside the payment modal */
.rp-deadline-notice {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .2rem .4rem;
    font-size: .77rem;
    color: #6b4f0f;
    margin-top: .45rem;
}
.rp-deadline-notice i {
    color: #a07020;
    font-size: .8rem;
    flex-shrink: 0;
}
.rp-deadline-notice__countdown {
    font-weight: 600;
    color: #7a5012;
}
/* ─────────────────────────────────────────────────────── */

.rp-payment-validation-popup {
    border-radius: 18px !important;
    padding: 1.15rem !important;
}
.rp-payment-validation-html {
    margin: 0 !important;
}
.rp-payment-validation-confirm {
    background: #4D4D4A !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-weight: 800 !important;
    padding: .75rem 1.5rem !important;
}
.rs-summary-card__participants {
    border-top: 1px solid rgba(70, 74, 63, .12);
    margin-top: .75rem;
    padding-top: .7rem;
}
.rs-summary-card__participant-list {
    display: grid;
    gap: .35rem;
    margin-top: .35rem;
}
.rs-summary-card__participant-line {
    align-items: start;
    background: rgba(255, 255, 255, .58);
    border: 1px solid rgba(70, 74, 63, .08);
    border-radius: 12px;
    display: grid;
    gap: .22rem;
    grid-template-columns: 1fr;
    padding: .46rem .6rem;
}
.rs-summary-card__participant-main {
    align-items: baseline;
    display: flex;
    gap: .35rem;
    min-width: 0;
}
.rs-summary-card__participant-main strong {
    color: #3f4a3c;
    font-size: .84rem;
    line-height: 1.2;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rs-summary-card__participant-main em {
    color: #4d5749;
    flex-shrink: 0;
    font-size: .78rem;
    font-style: normal;
    font-weight: 700;
}
.rs-summary-card__participant-addon {
    align-items: flex-start;
    color: #687063;
    display: flex;
    flex-wrap: wrap;
    font-size: .74rem;
    font-weight: 700;
    gap: .18rem .35rem;
    line-height: 1.25;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}
.rs-summary-card__participant-addon > i {
    flex-shrink: 0;
    font-size: .72rem;
    margin-top: .08rem;
}
.rs-summary-card__participant-addon-text {
    flex: 1 1 220px;
    min-width: 0;
}
.rs-summary-card__participant-map {
    align-items: center;
    border-radius: 999px;
    color: #5f7355;
    display: inline-flex;
    flex-shrink: 0;
    font-size: .7rem;
    font-weight: 800;
    gap: .15rem;
    line-height: 1;
    padding: .12rem .28rem;
    text-decoration: none;
    transition: background .15s, color .15s;
}
.rs-summary-card__participant-map:hover {
    background: rgba(96, 112, 84, .11);
    color: #3f4a3c;
    text-decoration: none;
}
.rs-summary-card__participant-map i {
    font-size: .72rem;
}
.rs-summary-card__participant-addon.is-muted {
    background: transparent;
    color: #948777;
    font-weight: 600;
}
.rs-summary-card__item--countdown {
    border-color: rgba(143, 107, 55, .12);
}
.rs-summary-card__countdown {
    align-items: center;
    display: inline-flex;
    gap: .35rem;
}
.rs-summary-card__countdown i {
    color: #8f6b37;
    font-size: .95rem;
}
.rs-step {
    display: flex;
    align-items: center;
    gap: .28rem;
    flex-shrink: 0;
}
.rs-step__num {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ccc6be;
    color: #fff;
    font-size: .62rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .25s;
    flex-shrink: 0;
}
.rs-step__label {
    font-size: .72rem;
    color: #a09890;
    font-weight: 500;
    white-space: nowrap;
    transition: color .25s, font-weight .25s;
}
/* active step */
.rs-step--active .rs-step__num {
    background: var(--rs-dark);
}
.rs-step--active .rs-step__label {
    color: var(--rs-dark);
    font-weight: 700;
}
/* done step */
.rs-step--done .rs-step__num {
    background: var(--rs-dark);
}
.rs-step--done .rs-step__label {
    color: var(--rs-dark);
}
/* When step 1 (Pago) is already fully covered, lock it visually */
.rs-step--locked {
    cursor: default;
    pointer-events: none;
    opacity: .72;
}
/* connector line */
.rs-step__line {
    flex: 1;
    min-width: 18px;
    max-width: 42px;
    height: 1px;
    background: #d2ccc5;
    margin: 0 .3rem;
}
.rs-step__line--done {
    background: var(--rs-dark);
}
@media (max-width: 480px) {
    .rs-stepper {
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        box-sizing: border-box;
        padding: .45rem .7rem;
        gap: 0;
    }
    .rs-step__label { font-size: .62rem; }
    .rs-step__line { min-width: 10px; max-width: 20px; }
    .rs-summary-card { padding: .9rem .85rem .85rem; }
    .rs-summary-card__grid { grid-template-columns: 1fr; }
    .rs-summary-card__badge { width: 100%; justify-content: center; }
}

/* ════════════════════════════════════════════════════════════
   PASO 2 — PAGO CARD
   ════════════════════════════════════════════════════════════ */

/* ── PRE-CARD HEADLINE ─────────────────────────────────────── */
.rs-pay-headline {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: .45rem 1rem .3rem;
    gap: 0;
}
.rs-pay-headline--canonical {
    padding: .56rem 1rem .38rem;
    gap: .08rem;
}
.rs-pay-headline__icon {
    font-size: 1rem;
    color: #B30E1C;
    line-height: 1;
    margin-bottom: .18rem;
}
.rs-pay-headline__emoji {
    font-size: 1.02em;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    margin-right: .34rem;
}
.rs-pay-headline__title {
    font-size: .95rem;
    font-weight: 600;
    color: #1f1f1f;
    margin: 0;
    line-height: 1.3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.rs-pay-headline__sub {
    font-size: .7rem;
    color: #aaa;
    margin: .1rem 0 0;
    line-height: 1.3;
}

/* ── CARD SHELL ────────────────────────────────────────────── */
.rs-pay-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,.08), 0 3px 12px rgba(0,0,0,.05);
    overflow: hidden;
    margin: .4rem auto 1rem;
    max-width: var(--rs-pay-card-max);
    border: 1px solid #e8e2db;
}

/* ── ① TOP ROW: col-izq cálida | col-der limpia ─────────────── */
.rs-pay-top {
    display: flex;
    align-items: stretch;
    gap: 0;
    min-block-size: clamp(7.2rem, 11vw, 8.4rem);
}

/* Columna izquierda — fondo cálido completo */
.rs-pay-left {
    flex: 0 0 52%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: #F0E8E2;        /* fondo cálido cubre TODA la columna */
}
.rs-pay-left__body {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .82rem .85rem .6rem;
    flex: 1;
    text-align: left;
}
.rs-pay-tour__icon {
    flex-shrink: 0;
    background: transparent;
    color: #4d4d4a;
    font-size: 1.3rem;
    line-height: 1;
    display: flex;
    align-items: center;
}
.rs-pay-tour__info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    text-align: left;
}
.rs-pay-tour__name {
    font-size: .94rem;
    font-weight: 600;
    color: #1f1f1f;
    margin: 0 0 .1rem;
    line-height: 1.25;
}
.rs-pay-tour__meta {
    font-size: .8rem;
    color: #5a5a57;
    margin: 0 0 2px;
    line-height: 1.4;
}
.rs-pay-tour__meta-label {
    font-weight: 600;
    color: #3d3d3a;
    margin-right: 3px;
}

/* Precio regular — franja inferior SOLO de la columna izquierda */
.rs-regular-band {
    background: #DFE2CF;
    font-size: .78rem;
    color: #3d3d3a;
    padding: .7rem .8rem;
    line-height: 1.3;
    text-align: left;
    /* NO width:100% — queda contenida dentro de rs-pay-left */
}

/* Divisor vertical entre columnas */
.rs-pay-top__divider {
    width: 1px;
    background: #ddd6ce;
    flex-shrink: 0;
    align-self: stretch;
}

/* Columna derecha — fondo blanco, precio protagonista */
.rs-pay-right {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: .85rem .95rem;
    text-align: center;
    background: #fff;
}
.rs-pay-price__label {
    font-size: .69rem;
    color: #bbb;
    margin: 0 0 .15rem;
    line-height: 1.2;
    white-space: nowrap;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.rs-pay-price__value {
    font-size: 2.15rem;       /* grande y dominante */
    font-weight: 800;
    color: #B30E1C;
    line-height: 1;
    margin: 0;
    white-space: nowrap;
    letter-spacing: -.02em;
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: .14rem;
}
.rs-pay-price__pp {
    font-size: .83rem;
    font-weight: 700;
    color: #B30E1C;
    letter-spacing: 0;
    line-height: 1;
}

/* ── ② CTA ZONE ─────────────────────────────────────────────── */
.rs-pay-cta {
    padding: .82rem 1rem .72rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .58rem;
    border-top: 1px solid #f0ece7;
    background: #fff;
}

/* Botón pill rojo */
.rs-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #E30613;
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: .8rem 2.2rem;
    font-size: 1.13rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    width: 100%;
    max-width: 25rem;
    box-shadow: 0 4px 12px rgba(227,6,19,.28);
    transition: background .15s, box-shadow .15s, transform .1s;
    text-decoration: none;
    line-height: 1.1;
}
.rs-cta-btn:hover {
    background: #c8000d;
    box-shadow: 0 6px 16px rgba(227,6,19,.38);
    transform: translateY(-1px);
    color: #fff;
    text-decoration: none;
}
.rs-cta-btn:focus { outline: none; }
.rs-cta-btn--secondary {
    background: #fff;
    color: #E30613;
    border: 2px solid #E30613;
    box-shadow: none;
}
.rs-cta-btn--secondary:hover {
    background: #fff5f5;
    color: #c8000d;
    border-color: #c8000d;
    box-shadow: none;
    transform: translateY(-1px);
}
.rs-cta-btn--sm {
    font-size: .88rem;
    padding: .5rem 1.1rem;
    max-width: 260px;
}

.rs-pay-cta-actions {
    width: 100%;
    max-width: 42rem;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: .6rem;
}

.rs-pay-cta-actions .rs-cta-btn {
    max-width: none;
}

/* ── ③ TRUST ROW ────────────────────────────────────────────── */
.rs-trust-row {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: .22rem .85rem;
    margin-top: .12rem;
}
.rs-trust-item {
    display: inline-flex;
    align-items: center;
    gap: .18rem;
    font-size: .73rem;
    color: #888;
    white-space: nowrap;
}
.rs-trust-item i {
    font-size: .72rem;
    color: #bbb;
}
.rs-trust-item strong {
    font-weight: 600;
    color: #666;
}

.rs-trust-break {
    flex-basis: 100%;
    width: 100%;
    height: 0;
}

.rs-trust-item--danger {
    color: #B30E1C;
    font-weight: 600;
}

.rs-trust-item--danger i {
    color: #B30E1C;
}

.rs-trust-item--release {
    white-space: normal;
    max-width: min(100%, 32rem);
    text-align: center;
    line-height: 1.35;
}

.rs-trust-item--release strong {
    display: inline-block;
    white-space: nowrap;
}

/* ── ④ PAYMENT LOGOS ────────────────────────────────────────── */
.rs-pay-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
}
.rs-pay-logos img {
    height: 21px;
    width: auto;
    opacity: .55;
}

/* ── ⑤ URGENCY STRIP ───────────────────────────────────────── */
.rs-urgency-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    text-align: center;
    font-size: .82rem;
    font-weight: 600;
    color: #4d4d4a;
    padding: .62rem 1rem;
    border-top: 1px solid #efe8e1;
    background: #f0e8e2;
    letter-spacing: .01em;
    line-height: 1.3;
}
.rs-urgency-strip__emoji {
    font-size: 1.1em;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}
.rs-urgency-strip--pending-confirmation {
    align-items: center;
    background: #f7efe3;
    color: #5d4e39;
    gap: .55rem;
}
.rs-urgency-strip--pending-confirmation .rs-urgency-strip__emoji {
    align-items: center;
    background: rgba(179, 14, 28, .08);
    border-radius: 999px;
    color: #8f6b37;
    font-size: .95rem;
    height: 1.7rem;
    justify-content: center;
    width: 1.7rem;
}
.rs-urgency-strip__pending {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .18rem .55rem;
    justify-content: center;
}
.rs-urgency-strip__pending strong {
    color: #3e3932;
    font-weight: 800;
}
.rs-urgency-strip__pending span {
    font-weight: 600;
}
.rs-urgency-strip__pending span::before {
    content: '•';
    margin-right: .35rem;
    opacity: .65;
}

/* Cita line — debajo del meta en la tarjeta */
.rs-pay-tour__cita {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .1rem .2rem;
    font-size: .77rem;
    color: #7a7a74;
    margin: .12rem 0 0;
    line-height: 1.35;
}
.rs-pay-tour__cita i {
    font-size: .86rem;
    color: #B30E1C;
    flex-shrink: 0;
}

/* ── URGENT BOX (< 168h variant) ───────────────────────────── */
.rs-urgent-box {
    background: #fff8f0;
    border: 1px solid #f5c8a0;
    border-radius: 8px;
    padding: .75rem 1rem;
    margin: 0 auto .9rem;
    max-width: 640px;
}
.rs-urgent-box__title {
    font-size: .82rem;
    font-weight: 700;
    color: #b55800;
    margin-bottom: .28rem;
}
.rs-urgent-box__body {
    font-size: .73rem;
    color: #555;
    margin-bottom: .55rem;
}

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 540px) {
    .rs-pay-headline--canonical {
        padding: .52rem .9rem .34rem;
    }
    .rs-pay-top {
        flex-direction: column;
        min-height: unset;
    }
    .rs-pay-left {
        flex: none;
        border-right: none;
    }
    .rs-pay-top__divider {
        width: 100%;
        height: 1px;
    }
    .rs-pay-right {
        align-items: flex-start;
        text-align: left;
        padding: .7rem .85rem;
    }
    .rs-pay-price__value { font-size: 1.5rem; }
    .rs-cta-btn {
        max-width: min(100%, 23rem);
        font-size: 1.05rem;
        padding: .76rem 1.2rem;
    }
    .rs-pay-cta-actions {
        flex-direction: column;
    }
    .rs-urgency-strip {
        gap: .3rem;
        font-size: .79rem;
        padding: .38rem .85rem .4rem;
    }
    .rs-urgency-strip--pending-confirmation {
        align-items: flex-start;
        text-align: left;
    }
    .rs-urgency-strip__pending {
        align-items: flex-start;
        flex: 1;
        justify-content: flex-start;
    }
    .rs-urgency-strip__pending strong {
        flex-basis: 100%;
    }
    .rs-validation-shell {
        border-radius: 14px;
        padding: 1.15rem;
    }
    .rs-validation-row {
        align-items: flex-start;
        flex-direction: column;
        gap: .18rem;
    }
    .rs-validation-value {
        text-align: left;
    }
    .rs-trust-item { white-space: normal; }
    .rs-regular-band { text-align: left; }
}

/* ════════════════════════════════════════════════════════════
   PASO 3 — PARTICIPANTES
   ════════════════════════════════════════════════════════════ */

/* Sub-headings inside step */
.rs-sub-title {
    font-size: .88rem;
    font-weight: 700;
    color: var(--rs-dark);
    margin-bottom: .2rem;
}
.rs-sub-hint {
    font-size: .73rem;
    color: #888;
}

/* Reservation code card */
.rs-code-card {
    background: var(--rs-warm);
    border-radius: var(--rs-radius);
    padding: 1rem 1.2rem;
    margin-bottom: 1rem;
}
.rs-code-card__title {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rs-dark);
    margin-bottom: .5rem;
}
/* Integrated input-group style field */
.rs-code-field {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1.5px solid #ddd6ce;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: .45rem;
}
.rs-code-field__value {
    flex: 1;
    padding: .5rem .9rem;
    font-size: .92rem;
    font-weight: 700;
    color: var(--rs-dark);
    letter-spacing: .08em;
    text-align: center;
    background: transparent;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rs-code-field__btn {
    background: var(--rs-dark);
    color: #fff;
    border: none;
    border-left: 1.5px solid #ddd6ce;
    padding: .5rem .85rem;
    font-size: .72rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s;
    flex-shrink: 0;
    align-self: stretch;
    display: flex;
    align-items: center;
    gap: .3rem;
}
.rs-code-field__btn:hover { background: #333330; }
.rs-code-card__hint {
    font-size: .7rem;
    color: #999;
    margin: 0;
}

/* Action grid */
.rs-action-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
    margin-bottom: 1rem;
}
.rs-action-card {
    background: #fff;
    border: 1px solid #eee8e0;
    border-radius: var(--rs-radius);
    padding: .9rem 1rem;
}
.rs-action-card__title {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rs-dark);
    margin-bottom: .2rem;
}
.rs-action-card__body {
    font-size: .72rem;
    color: #888;
    margin-bottom: .6rem;
}

/* Dark pill button */
.rs-btn-dark {
    display: inline-flex;
    align-items: center;
    background: var(--rs-dark);
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: .38rem .9rem;
    font-size: .74rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s;
    line-height: 1.4;
    gap: .3rem;
}
.rs-btn-dark:hover {
    background: #333330;
    color: #fff;
    text-decoration: none;
}

/* Link row — integrated field */
.rs-link-field {
    display: flex;
    align-items: center;
    background: #faf7f4;
    border: 1.5px solid #e0d8d0;
    border-radius: 10px;
    overflow: hidden;
}
.rs-link-field__input {
    flex: 1;
    border: none;
    background: transparent;
    padding: .45rem .7rem;
    font-size: .7rem;
    color: var(--rs-dark);
    min-width: 0;
    outline: none;
}
.rs-link-field__btn {
    width: 36px;
    height: 36px;
    background: var(--rs-dark);
    color: #fff;
    border: none;
    border-left: 1.5px solid #e0d8d0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .2s;
    align-self: stretch;
    width: auto;
    padding: 0 .65rem;
}
.rs-link-field__btn:hover { background: #333330; }

/* Section title */
.rs-section-title {
    font-size: .82rem;
    font-weight: 700;
    color: var(--rs-dark);
    border-bottom: 2px solid var(--rs-warm);
    padding-bottom: .35rem;
    margin-bottom: .8rem;
    letter-spacing: .01em;
}

/* ── Pending participant info alert ─────────────────────────────────────── */
.rsp-pending-info-alert {
    background: #fffbf0;
    border: 1px solid #f0d080;
    border-left: 4px solid #e6a800;
    border-radius: 10px;
    padding: .85rem 1rem;
    margin-bottom: 1rem;
}

.rsp-pending-info-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .4rem;
}

.rsp-pending-info-title {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .84rem;
    font-weight: 700;
    color: #7a4f00;
}

.rsp-pending-info-icon {
    color: #e6a800;
    font-size: .9rem;
    flex-shrink: 0;
}

.rsp-pending-info-close {
    background: none;
    border: none;
    color: #a07020;
    font-size: .78rem;
    cursor: pointer;
    padding: .1rem .25rem;
    line-height: 1;
    border-radius: 4px;
    transition: background .15s, color .15s;
    flex-shrink: 0;
}
.rsp-pending-info-close:hover {
    background: #f5e0a0;
    color: #5a3a00;
}

.rsp-pending-info-subtitle {
    font-size: .73rem;
    color: #7a5c10;
    margin: 0 0 .55rem;
}

.rsp-pending-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.rsp-pending-info-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    background: #fff8e6;
    border: 1px solid #f0d080;
    border-radius: 7px;
    padding: .45rem .65rem;
    flex-wrap: wrap;
}

.rsp-pending-info-person {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
    flex: 1;
}

.rsp-pending-info-name {
    font-size: .78rem;
    font-weight: 700;
    color: #4a3000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rsp-pending-info-fields {
    font-size: .72rem;
    color: #7a5c10;
    display: flex;
    align-items: center;
    gap: .3rem;
    flex-wrap: wrap;
}

.rsp-pending-field-icon {
    color: #e6a800;
    font-size: .65rem;
    flex-shrink: 0;
}

.rsp-pending-info-cta {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: #2c2c2a;
    color: #fff !important;
    font-size: .7rem;
    font-weight: 600;
    padding: .3rem .65rem;
    border-radius: 6px;
    white-space: nowrap;
    text-decoration: none !important;
    cursor: pointer;
    transition: background .15s, transform .1s;
    flex-shrink: 0;
}
.rsp-pending-info-cta:hover {
    background: #444440;
    transform: translateY(-1px);
}
/* ── /Pending info alert ────────────────────────────────────────────────── */

/* Leader action buttons row — secondary/small, below section title */
.rs-leader-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .75rem;
    opacity: .85;
}

/* Participant item card */
/* ══════════════════════════════════════════════════════════════
   PARTICIPANT CARDS  —  Mobile-first compact layout
   ══════════════════════════════════════════════════════════════ */

/* Card shell */
.rs-participant-item {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    background: #fff;
    border: 1px solid #eee8e0;
    border-radius: 10px;
    padding: .55rem .7rem;
    margin-bottom: 0;
    height: 100%;
    min-width: 0;
}

/* Avatar circle */
.rs-participant-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--rs-warm);
    color: var(--rs-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    flex-shrink: 0;
    margin-top: .1rem;
}

/* Body: all rows stacked */
.rs-pcard-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

/* Row 1: name + status badge + action buttons — all inline, wrap gracefully */
.rs-pcard-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .3rem;
    min-width: 0;
}

/* Name: grows to fill, wraps on overflow */
.rs-participant-name {
    font-size: .78rem;
    font-weight: 700;
    color: var(--rs-dark);
    flex: 1 1 0;
    min-width: 0;
    word-break: break-word;
    line-height: 1.3;
}

/* Status badge lives inline with name */
.rs-pcard-badge {
    font-size: .6rem;
    flex-shrink: 0;
    padding: .15rem .45rem;
    line-height: 1.4;
}

/* Action icons (edit / share) — tight group */
.rs-pcard-actions {
    display: flex;
    align-items: center;
    gap: .2rem;
    flex-shrink: 0;
    margin-left: auto;
}

/* Row 2: date meta + pills — same flex row, pills wrap below on narrow */
.rs-pcard-meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .4rem;
    min-width: 0;
}

.rs-pcard-extra-row {
    color: #4d5749;
    display: grid;
    font-size: .82rem;
    gap: .25rem;
    line-height: 1.35;
    margin-top: .45rem;
}
.rs-pcard-extra-row span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.rs-pcard-extra-row i {
    color: #6f7a68;
    margin-right: .25rem;
}

.rs-participant-meta {
    font-size: .68rem;
    color: #999;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Payment status pills — inline with meta, wrap when needed */
.rs-pcard-status {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    align-items: center;
}

.rs-pstatus {
    display: inline-flex;
    align-items: center;
    gap: .18rem;
    font-size: .62rem;
    font-weight: 600;
    border-radius: 50px;
    padding: .15rem .42rem;
    white-space: nowrap;
    line-height: 1.3;
}
.rs-pstatus--covered { background: #e6f4ea; color: #2d7a3e; }
.rs-pstatus--pending { background: #fdecea; color: #b71c1c; }
.rs-pstatus--addon   { background: #fff8e1; color: #7a5000; }

/* ── Per-participant note save UI ────────────────────────── */
.rs-note-wrap {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin-top: .1rem;
}

/* Textarea + icon-only save button on same row */
.rs-note-inline {
    display: flex;
    align-items: stretch;
    gap: .25rem;
}

.rs-note-wrap .rs-note-textarea {
    flex: 1;
    min-width: 0;
    font-size: .7rem;
    border-color: #e8e0d8;
    border-radius: 6px;
    background: #faf7f4;
    resize: none;
    padding: .28rem .45rem;
    transition: border-color .2s, background .2s;
    line-height: 1.4;
}
.rs-note-wrap .rs-note-textarea:focus {
    border-color: #c8c0b8;
    box-shadow: none;
    background: #fff;
}
.rs-note-wrap .rs-note-textarea.rs-note--dirty {
    border-color: #d4a843;
    background: #fffdf5;
}

/* Icon-only save button — same height as textarea */
.rs-note-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-dark);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: .28rem .5rem;
    font-size: .72rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s, opacity .2s;
    flex-shrink: 0;
}
.rs-note-save:disabled {
    opacity: .35;
    cursor: default;
    pointer-events: none;
}
.rs-note-save:not(:disabled):hover { background: #333330; }

.rs-note-status {
    font-size: .64rem;
    font-weight: 600;
    color: #999;
    min-height: .9rem;
    line-height: 1.2;
}
.rs-note-status.rs-note-status--saved  { color: #3a8a4b; }
.rs-note-status.rs-note-status--error  { color: #c0392b; }
.rs-note-status.rs-note-status--saving { color: #999; }

/* Read-only note text for non-editable viewers */
.rs-pcard-note-ro {
    font-size: .68rem;
    color: #888;
    font-style: italic;
    margin-top: .1rem;
}

/* Edit / share icon buttons */
.rs-edit-btn {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    background: var(--rs-dark);
    color: #fff;
    border-radius: 50px;
    padding: .22rem .55rem;
    font-size: .66rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s;
    white-space: nowrap;
    line-height: 1.4;
}
.rs-edit-btn:hover {
    background: #333330;
    text-decoration: none;
    color: #fff;
}

/* ══════════════════════════════════════════════════════════════
   SLOT (available) CARDS  —  compact
   ══════════════════════════════════════════════════════════════ */
.rs-slot-item {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    border: 1.5px dashed #ddd6ce;
    border-radius: 10px;
    padding: .55rem .7rem;
    margin-bottom: 0;
    height: 100%;
    min-width: 0;
}

.rs-slot-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #f0ece6;
    color: #bbb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    flex-shrink: 0;
    margin-top: .1rem;
}

.rs-slot-info {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    flex: 1;
    min-width: 0;
}

/* Label + agregar button on same row */
.rs-slot-head {
    display: flex;
    align-items: center;
    gap: .3rem;
    flex-wrap: wrap;
}

.rs-slot-label {
    font-size: .72rem;
    color: #aaa;
    font-style: italic;
    flex: 1;
    white-space: nowrap;
}

/* Agregar button — compact pill */
.rs-slot-add-btn {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    background: var(--rs-dark);
    color: #fff !important;
    border-radius: 50px;
    padding: .2rem .55rem;
    font-size: .66rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s;
    white-space: nowrap;
    flex-shrink: 0;
}
.rs-slot-add-btn:hover {
    background: #333330;
    text-decoration: none;
    color: #fff !important;
}

/* Removed/replaced rules: rs-participant-info, rs-participant-actions,
   rs-slot-main, .rs-note-footer — subsumed by the new layout above */

/* ════════════════════════════════════════════════════════════
   PASO 4 — EXTRAS  (xp-* system)  — MOBILE FIRST
   ════════════════════════════════════════════════════════════ */

/* ── Header ───────────────────────────────────────────────── */
.xp-header {
    margin-bottom: 1rem;
}
.xp-header__title {
    font-size: .95rem;
    font-weight: 700;
    color: var(--rs-dark);
    margin-bottom: .2rem;
}
.xp-header__sub {
    font-size: .76rem;
    color: #888;
    margin: 0;
}

/* ── Two-column layout — MOBILE FIRST ────────────────────── */
/* Mobile: single column, summary below cards */
.xp-layout {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: stretch;
    width: 100%;
    min-width: 0;
}

/* Tablet (≥600px): side by side */
@media (min-width: 600px) {
    .xp-layout {
        display: grid;
        grid-template-columns: 1fr 240px;
        gap: 1rem;
        align-items: start;
    }
}

/* Desktop (≥900px): wider sidebar */
@media (min-width: 900px) {
    .xp-layout {
        grid-template-columns: 1fr 260px;
    }
}

/* ── Cards column ─────────────────────────────────────────── */
.xp-cards-col {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    min-width: 0;
    width: 100%;
}

/* ── Single extra card ────────────────────────────────────── */
.xp-type-group {
    margin: .25rem 0 .1rem;
}

.xp-type-group__title {
    color: #3f4a3c;
    font-size: .85rem;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0;
    text-transform: uppercase;
}

.xp-card {
    background: #fff;
    border: 1px solid #eee8e0;
    border-radius: var(--rs-radius);
    overflow: hidden;
    transition: border-color .2s, box-shadow .2s;
}
.xp-card--active {
    border-color: var(--rs-dark);
    box-shadow: 0 0 0 1.5px var(--rs-dark);
}

/* Card summary row — always visible, clickable */
.xp-card__row {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem .9rem;
    cursor: pointer;
    user-select: none;
    transition: background .15s;
}
.xp-card__row:hover { background: #faf7f4; }
.xp-card--active .xp-card__row { background: #f7f3ef; }

.xp-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--rs-warm);
    color: #b0a098;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.xp-card--active .xp-card__icon {
    background: #e8e3dc;
    color: var(--rs-dark);
}

.xp-card__info {
    flex: 1;
    min-width: 0;
}
.xp-card__name {
    font-size: .82rem;
    font-weight: 700;
    color: var(--rs-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.xp-card__desc {
    font-size: .7rem;
    color: #888;
    line-height: 1.35;
    /* allow wrap on narrow screens so text doesn't overflow card */
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.xp-card__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .25rem;
    flex-shrink: 0;
}
.xp-card__price {
    font-size: .82rem;
    font-weight: 700;
    color: var(--rs-dark);
    white-space: nowrap;
}
.xp-card__pp {
    font-size: .65rem;
    font-weight: 400;
    color: #aaa;
}
.xp-card__btn {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    background: var(--rs-dark);
    color: #fff;
    border-radius: 50px;
    padding: .22rem .65rem;
    font-size: .7rem;
    font-weight: 600;
    white-space: nowrap;
    transition: background .15s;
    pointer-events: none; /* row handles the click */
}
.xp-card--active .xp-card__btn,
.xp-card__btn--assigned {
    background: transparent;
    color: var(--rs-dark);
    border: 1.5px solid var(--rs-dark);
}

/* ── Inline expand panel ──────────────────────────────────── */
.xp-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s cubic-bezier(.25,.46,.45,.94);
}
.xp-panel--open {
    max-height: 800px;
}
.xp-panel__inner {
    border-top: 1px solid #f0ebe5;
    padding: .85rem .9rem .9rem;
    background: #faf7f4;
}

/* Hint line */
.xp-panel__hint {
    font-size: .73rem;
    color: #888;
    margin-bottom: .6rem;
    display: flex;
    align-items: center;
    gap: .3rem;
}

/* ── Participant rows inside panel ────────────────────────── */
.xp-plist {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-bottom: .75rem;
}
.xp-prow {
    display: flex;
    align-items: center;
    gap: .6rem;
    background: #fff;
    border: 1px solid #ede9e2;
    border-radius: 9px;
    padding: .5rem .7rem;
    transition: border-color .15s, background .15s;
}
.xp-prow--saved {
    border-color: #c8c2ba;
    background: #f5f2ef;
}

/* Toggle button */
.xp-prow__toggle {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1.5px solid #c4bdb5;
    background: #fff;
    color: transparent;
    font-size: .75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s, border-color .15s, color .15s;
    padding: 0;
    line-height: 1;
}
.xp-prow__toggle--on {
    background: var(--rs-dark);
    border-color: var(--rs-dark);
    color: #fff;
}

.xp-prow__name {
    flex: 1;
    min-width: 0;
    font-size: .78rem;
    font-weight: 600;
    color: var(--rs-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: .3rem;
}
.xp-prow__name i {
    font-size: .7rem;
    opacity: .45;
    flex-shrink: 0;
}

/* "Saved" badge */
.xp-prow__saved-badge {
    font-size: .63rem;
    font-weight: 600;
    color: #6a8f6a;
    background: #e8f5e8;
    border-radius: 50px;
    padding: .12rem .45rem;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    flex-shrink: 0;
}

/* Quantity stepper */
.xp-prow__qty {
    display: flex;
    align-items: center;
    gap: .25rem;
    flex-shrink: 0;
    transition: opacity .2s;
}
.xp-prow__qty--hidden {
    opacity: 0;
    pointer-events: none;
}
.xp-qty-btn {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1.5px solid #ccc6be;
    background: #fff;
    color: var(--rs-dark);
    font-size: .85rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s, border-color .15s;
    padding: 0;
    line-height: 1;
}
.xp-qty-btn:hover {
    background: var(--rs-dark);
    border-color: var(--rs-dark);
    color: #fff;
}
.xp-qty-input {
    width: 40px;
    text-align: center;
    border: 1px solid #d0cac4;
    border-radius: 7px;
    padding: .2rem .3rem;
    font-size: .8rem;
    font-weight: 700;
    color: var(--rs-dark);
    background: #fff;
    outline: none;
    appearance: textfield;
    -moz-appearance: textfield;
}
.xp-qty-input::-webkit-inner-spin-button,
.xp-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.xp-qty-input:focus { border-color: var(--rs-dark); }

/* ── Panel action row ─────────────────────────────────────── */
.xp-panel__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .6rem;
    margin-bottom: .5rem;
}
.xp-save-btn {
    align-items: center;
    background: var(--rs-dark);
    border: 1px solid var(--rs-dark);
    border-radius: 50px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: .76rem;
    font-weight: 800;
    justify-content: center;
    line-height: 1.2;
    min-height: 34px;
    min-width: 138px;
    padding: .45rem .9rem;
    transition: background .15s, border-color .15s, opacity .15s;
}
.xp-save-btn:hover:not(:disabled) {
    background: #333330;
    border-color: #333330;
}
.xp-save-btn:disabled {
    background: #d8d2ca;
    border-color: #d8d2ca;
    color: #7d756d;
    cursor: not-allowed;
    opacity: .9;
}
.xp-save-btn--saved {
    background: #e8f5e8;
    border-color: #cfe8cf;
    color: #4f7b4f;
}

/* WPP note */
.xp-panel__note {
    font-size: .68rem;
    color: #bbb;
    margin: 0;
}
.xp-wpp-link {
    color: #25d366;
    font-weight: 600;
    text-decoration: none;
}
.xp-wpp-link:hover { text-decoration: underline; color: #1da851; }

/* ── Summary column ───────────────────────────────────────── */
.xp-summary-col {
    /* Mobile: normal flow — sits below cards */
    position: static;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
/* Tablet+: sticky within grid column */
@media (min-width: 600px) {
    .xp-summary-col {
        position: sticky;
        top: 1rem;
        /* Ensure it never exceeds its grid cell */
        max-width: 100%;
        overflow: hidden;
    }
}
.xp-summary {
    background: var(--rs-warm);
    border-radius: var(--rs-radius);
    padding: .85rem 1rem;
    margin-bottom: .75rem;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}
.xp-summary__head {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    font-weight: 700;
    color: var(--rs-dark);
    margin-bottom: .6rem;
    padding-bottom: .45rem;
    border-bottom: 1px solid #ddd6ce;
}
.xp-summary__empty {
    font-size: .73rem;
    color: #aaa;
    text-align: center;
    padding: .5rem 0;
    margin: 0;
    font-style: italic;
}
.xp-summary-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .4rem;
    padding: .3rem 0;
    border-bottom: 1px solid #e8e2da;
}
.xp-summary-row__left {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}
.xp-summary-row__name {
    font-size: .75rem;
    font-weight: 700;
    color: var(--rs-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.xp-summary-row__people {
    display: grid;
    gap: .08rem;
    font-size: .65rem;
    color: #888;
    line-height: 1.25;
    margin-top: .12rem;
    min-width: 0;
    white-space: normal;
}
.xp-summary-row__person {
    display: block;
    overflow-wrap: anywhere;
}
.xp-summary-row__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
    gap: .02rem;
}
.xp-summary-row__qty {
    font-size: .65rem;
    color: #aaa;
}
.xp-summary-row__price {
    font-size: .76rem;
    font-weight: 700;
    color: var(--rs-dark);
}
/* Pending (selected but not yet saved) */
.xp-summary-row--pending .xp-summary-row__name::after {
    content: ' •';
    color: #c09060;
    font-size: .7rem;
}
.xp-summary__total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .82rem;
    font-weight: 700;
    color: var(--rs-dark);
    margin-top: .45rem;
    padding-top: .4rem;
    border-top: 1.5px solid #c8c0b8;
}

/* ── Continue CTA ─────────────────────────────────────────── */
.xp-continue-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    background: var(--rs-dark);
    color: #fff !important;
    border-radius: 50px;
    padding: .7rem 1.5rem;
    font-size: .85rem;
    font-weight: 700;
    text-decoration: none;
    transition: background .2s;
    text-align: center;
    width: 100%;
}
.xp-continue-btn:hover {
    background: #333330;
    color: #fff !important;
    text-decoration: none;
}

/* ── Empty state ──────────────────────────────────────────── */
.xp-empty {
    font-size: .78rem;
    color: #aaa;
    text-align: center;
    padding: 1rem 0;
    font-style: italic;
}

/* ── Saving overlay state ─────────────────────────────────── */
.xp-card--saving .xp-panel__inner {
    opacity: .6;
    pointer-events: none;
}

/* ── Continue btn sizing fine-tune on small screens ────────── */
@media (max-width: 599px) {
    .xp-continue-btn {
        font-size: .88rem;
        padding: .8rem 1.5rem;
    }
}

/* Legacy rs-continue-btn kept for other uses */
.rs-continue-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-dark);
    color: #fff;
    border-radius: 50px;
    padding: .75rem 2rem;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    width: 100%;
    max-width: 320px;
    margin: 0 auto .9rem;
    text-decoration: none;
    transition: background .2s;
}
.rs-continue-btn:hover {
    background: #333330;
    color: #fff;
    text-decoration: none;
}

/* ════════════════════════════════════════════════════════════
   NAVEGACIÓN DE PASOS  (.rs-step-panel · .rs-panel--*)
   ════════════════════════════════════════════════════════════ */

/* Panel oculto — base sin transición para el estado "hidden" */
.rs-step-panel {
    display: none;
    opacity: 0;
    transform: translateY(6px);
}
.rs-step-panel:not(.rs-panel--active):not(.rs-panel--leaving) {
    display: none !important;
}

/* Panel visible — con animación de entrada */
.rs-step-panel.rs-panel--active {
    display: block;
    animation: rsPanelIn .28s cubic-bezier(.25,.46,.45,.94) forwards;
}

/* Panel saliendo — fade-out antes de ocultar (lo controla JS) */
.rs-step-panel.rs-panel--leaving {
    animation: rsPanelOut .18s ease-out forwards;
    pointer-events: none;
}

@keyframes rsPanelIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes rsPanelOut {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-4px); }
}

/* ── Badge "Pago cubierto" ───────────────────────────────── */
.rs-paid-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    border-radius: .5rem;
    padding: .45rem .9rem;
    font-size: .82rem;
    font-weight: 600;
    margin: .5rem 0 1rem;
    animation: rsBadgeIn .35s cubic-bezier(.34,1.56,.64,1) forwards;
}

@keyframes rsBadgeIn {
    from { opacity: 0; transform: scale(.85) translateY(4px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* ── Botones de navegación entre pasos ──────────────────── */
.rs-step-nav {
    margin-top: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    flex-wrap: wrap;
}

/* Botón "Atrás" outline */
.rs-nav-btn-back {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: transparent;
    color: var(--rs-dark);
    border: 1.5px solid #d0c9c2;
    border-radius: 50px;
    padding: .42rem 1rem;
    font-size: .76rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .18s, border-color .18s, color .18s, transform .1s;
    line-height: 1.4;
    white-space: nowrap;
}
.rs-nav-btn-back:hover {
    background: var(--rs-warm);
    border-color: #b0a9a2;
    color: var(--rs-dark);
    text-decoration: none;
    transform: translateX(-2px);
}
.rs-nav-btn-back:active {
    transform: translateX(-1px);
}

/* Botón "Siguiente / Finalizar" primario */
.rs-nav-btn-next {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: var(--rs-dark);
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: .42rem 1.1rem;
    font-size: .76rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .18s, box-shadow .18s, transform .1s;
    line-height: 1.4;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(77,77,74,.2);
}
.rs-nav-btn-next:hover {
    background: #333330;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(77,77,74,.3);
    transform: translateX(2px);
}
.rs-nav-btn-next:active {
    transform: translateX(1px);
}

/* --- Cursor e interaccion del stepper ---------------------- */
#rs-stepper .rs-step {
    cursor: pointer;
    border-radius: 6px;
    padding: .15rem .35rem;
    margin: 0 -.35rem;
    transition: background .18s;
}
#rs-stepper .rs-step:hover {
    background: rgba(77,77,74,.09);
}
#rs-stepper .rs-step:hover .rs-step__num {
    background: var(--rs-dark);
}
#rs-stepper .rs-step:hover .rs-step__label {
    color: var(--rs-dark);
    font-weight: 600;
}

/* -- Stepper numero: transicion bounce en checkmark --------- */
.rs-step--done .rs-step__num {
    animation: rsNumDone .3s cubic-bezier(.34,1.56,.64,1) forwards;
}
@keyframes rsNumDone {
    0%   { transform: scale(.7); }
    60%  { transform: scale(1.2); }
    100% { transform: scale(1); }
}

/* ── Stepper línea — transición de fill animado ─────────── */
.rs-step__line {
    transition: background .3s ease;
}

/* ════════════════════════════════════════════════════════════
   TOTALS & BOTTOM ACTIONS
   ════════════════════════════════════════════════════════════ */
.rs-totals {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--rs-warm);
    border-radius: 10px;
    padding: .7rem 1rem;
    font-size: .78rem;
    color: var(--rs-dark);
    margin-bottom: .8rem;
    flex-wrap: wrap;
    gap: .4rem;
}
.rs-totals strong { color: var(--rs-red); }

.rs-bottom-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    flex-wrap: wrap;
    margin-bottom: .5rem;
}

.rs-bottom-divider {
    border: none;
    border-top: 1px solid #e8e0d8;
    margin: .8rem 0 0;
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
    .rs-pay-top { flex-direction: column; gap: .5rem; }
    .rs-pay-price { text-align: left; padding-left: 0; }
    .rs-pay-price__value { font-size: 1.25rem; }
    .rs-action-grid { grid-template-columns: 1fr; }
    .rs-totals { flex-direction: column; align-items: flex-start; }
    .rs-bottom-actions { flex-direction: column; }
    .rs-cta-btn { max-width: 100%; }
}
@media (max-width: 400px) {
    .rs-stepper { flex-wrap: nowrap; overflow-x: visible; }
}


/* ════════════════════════════════════════════════════════════
   MODAL: REGISTRAR PAGO  (.rp-*)
   ════════════════════════════════════════════════════════════ */

/* ── Selector de participantes ─────────────────────────────── */
.rp-participants-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    margin-bottom: 1rem;
}
.rp-stepper-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1.5px solid #222;
    background: #fff;
    color: #222;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .18s, color .18s;
    flex-shrink: 0;
}
.rp-stepper-btn:hover {
    background: #222;
    color: #fff;
}
.rp-stepper-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 72px;
}
.rp-stepper-label {
    font-size: .7rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .1rem;
}
.rp-stepper-value {
    font-size: 1.6rem;
    font-weight: 700;
    color: #111;
    line-height: 1;
}

/* ── Anticipo por persona ──────────────────────────────────── */
.rp-deposit-label {
    font-size: .82rem;
    color: #555;
    margin-bottom: .6rem;
}
.rp-deposit-label strong {
    color: #111;
}

/* ── Resumen ───────────────────────────────────────────────── */
.rp-summary {
    background: #f8f7f5;
    border-radius: 10px;
    padding: .65rem .9rem;
    margin-bottom: 1.1rem;
}
.rp-summary-title {
    font-size: .75rem;
    font-weight: 600;
    color: #444;
    display: block;
    margin-bottom: .25rem;
}
.rp-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    flex-wrap: wrap;
}
.rp-summary-row--remaining {
    margin-top: .28rem;
    padding-top: .28rem;
    border-top: 1px solid rgba(70, 64, 58, .08);
}
.rp-summary-text {
    font-size: .8rem;
    color: #555;
}
.rp-summary-amount {
    font-size: 1rem;
    font-weight: 700;
    color: #c0392b;
}
.rp-summary-remaining {
    color: #3f3a34;
    font-size: .86rem;
    font-weight: 700;
}

/* ── Extras summary block (Step 1, extras mode only) ──────── */
/* ── Mode selector buttons (inside modal step 1) ──────────── */
.rp-mode-btn {
    display: inline-flex;
    align-items: center;
    padding: .45rem 1rem;
    border-radius: 50px;
    border: 1.5px solid #e0dbd6;
    background: #fafafa;
    color: #333;
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
    white-space: nowrap;
}
.rp-mode-btn:hover {
    border-color: #999;
    background: #f2f1ef;
}
.rp-mode-btn.rp-mode-btn--active {
    background: #222;
    border-color: #222;
    color: #fff;
}

.rp-extras-summary-block {
    background: #f0f4f8;
    border-left: 3px solid #4D4D4A;
    border-radius: 0 8px 8px 0;
    padding: .55rem .85rem;
    margin-bottom: 1.1rem;
    font-size: .8rem;
    color: #333;
}
.rp-extras-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.rp-extras-item {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.rp-extras-name {
    font-weight: 600;
    color: #1e1e1e;
    font-size: .82rem;
}
.rp-extras-pline {
    color: #555;
    font-size: .78rem;
    padding-left: .5rem;
}

/* ── Slot rows (empty-slot addon assignment) ──────────────── */
.xp-prow--slot .xp-prow__name em {
    font-size: .7rem;
    opacity: .6;
}
/* ── Paid badge variant ───────────────────────────────────── */
.xp-prow__saved-badge--paid {
    color: #1a6f2e;
    background: #d4edda;
}
/* ── Pending-review badge (awaiting payment validation) ───── */
.xp-prow__saved-badge--review {
    color: #856404;
    background: #fff3cd;
}
.xp-prow--review {
    border-color: #ffc107;
    background: #fffbf0;
}
/* ── Continue button — done state ─────────────────────────── */
.xp-continue-btn--done {
    background: #4D4D4A !important;
    pointer-events: none;
    opacity: .85;
}
/* ── Divider between participant rows and slot rows ────────── */
.xp-plist__divider {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .6rem 0 .4rem;
    font-size: .68rem;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.xp-plist__divider::before,
.xp-plist__divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e0dbd4;
}
.xp-plist__divider i {
    font-size: .75rem;
    opacity: .7;
}

/* ── Título de sección ─────────────────────────────────────── */
.rp-section-title {
    font-size: .78rem;
    font-weight: 700;
    color: #222;
    margin-bottom: .65rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── Grid de métodos ──────────────────────────────────────── */
.rp-methods-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .55rem;
    margin-bottom: 1.1rem;
}
.rp-method-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .6rem .9rem;
    border-radius: 50px;
    border: 1.5px solid #e0dbd6;
    background: #fafafa;
    color: #333;
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .18s, border-color .18s, color .18s;
    gap: .4rem;
    text-align: left;
}
.rp-method-btn:hover {
    border-color: #999;
    background: #f2f1ef;
}
.rp-method-btn.active {
    background: #222;
    border-color: #222;
    color: #fff;
}
.rp-method-btn.active .rp-method-icon {
    color: #fff;
}
.rp-method-text {
    flex: 1;
}
.rp-method-icon {
    font-size: .95rem;
    color: #888;
    flex-shrink: 0;
}

/* ── Bloque condicional de método ─────────────────────────── */
.rp-method-block {
    border-top: 1px solid #eee;
    padding-top: .85rem;
    margin-bottom: .5rem;
}
.rp-block-title {
    font-size: .78rem;
    font-weight: 700;
    color: #333;
    margin-bottom: .65rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.rp-block-title-helper {
    display: inline-flex;
    margin-left: .55rem;
    color: #777;
    font-size: .88em;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
    vertical-align: middle;
}

/* ── Cuentas bancarias ─────────────────────────────────────── */
.rp-accounts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .55rem;
    margin-bottom: .7rem;
}
.rp-account-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .6rem .85rem;
    border-radius: 12px;
    border: 1.5px solid #e0dbd6;
    background: #fafafa;
    cursor: pointer;
    transition: border-color .18s, background .18s;
    gap: .4rem;
    text-align: left;
}
.rp-account-btn:hover {
    border-color: #aaa;
    background: #f2f1ef;
}
.rp-account-btn.selected {
    border-color: #222;
    background: #f5f4f2;
}
.rp-account-info {
    display: flex;
    flex-direction: column;
    gap: .06rem;
    min-width: 0;
}
.rp-account-bank {
    font-size: .72rem;
    font-weight: 700;
    color: #222;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rp-account-owner {
    font-size: .67rem;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rp-account-number {
    font-size: .65rem;
    color: #999;
    font-family: monospace;
}
.rp-account-copy-icon {
    font-size: .85rem;
    color: #bbb;
    flex-shrink: 0;
    transition: color .15s;
}
.rp-account-btn.selected .rp-account-copy-icon,
.rp-account-btn:hover .rp-account-copy-icon {
    color: #555;
}

/* ── Feedback "Texto Copiado" ─────────────────────────────── */
.rp-copied-feedback {
    text-align: center;
    font-size: .78rem;
    font-weight: 600;
    color: #2e7d32;
    margin-top: .3rem;
    margin-bottom: 0;
}

/* ── Placeholder blocks (Stripe / PayPal / OXXO) ─────────── */
.rp-placeholder-block {
    border: 1.5px dashed #ddd;
    border-radius: 12px;
    padding: 1.1rem 1rem;
    text-align: center;
    background: #fafafa;
}
.rp-placeholder-icon {
    font-size: 2rem;
    color: #ccc;
    display: block;
    margin-bottom: .5rem;
}
.rp-placeholder-text {
    font-size: .75rem;
    color: #888;
    margin-bottom: 0;
    line-height: 1.5;
}

/* ── Botón Siguiente ──────────────────────────────────────── */
.rp-next-btn {
    padding: .45rem 1.4rem;
    font-size: .78rem;
}
.rp-next-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

/* ── Responsive global del modal de pago ─────────────────── */
.rp-order-actions {
    display: flex;
    gap: .55rem;
    align-items: center;
    margin-top: 1.1rem;
    flex-wrap: wrap;
}
.rp-pdf-btn {
    font-size: .8rem;
    padding: .5rem 1.1rem;
    min-height: 40px;
}

/* ── Responsive global del modal de pago ─────────────────── */

/* Ajuste base del modal: nunca desbordar, scroll interno */
#registrarPagoModal .modal-content {
    border-radius: 16px;
    overflow: hidden;
}
#registrarPagoModal .modal-body {
    padding: 1.25rem 1.25rem .5rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    word-break: break-word;
    /* Con modal-dialog-scrollable Bootstrap maneja max-height automáticamente */
}
#registrarPagoModal .modal-footer {
    padding: .65rem 1.25rem;
    border-top: 1px solid #ece9e4;
    flex-wrap: wrap;
    gap: .45rem;
}

/* Títulos de cada paso */
#rpStep1 h5,
#rpStep2 h5 {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: .85rem;
}

/* Footers de pasos — siempre full-width y bien alineados */
#rpFooter1,
#rpFooter2,
#rpFooter3 {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

/* Botones de navegación — tamaño táctil adecuado */
#rpFooter1 .rf-btn-dark,
#rpFooter2 .rf-btn-dark,
#rpFooter2 .rf-btn-outline,
#rpFooter3 .rf-btn-dark,
#rpFooter3 .rf-btn-outline,
.rp-next-btn {
    min-height: 42px;
    padding: .5rem 1.35rem;
    font-size: .82rem;
    border-radius: 50px;
    white-space: nowrap;
}
.rp-next-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

/* ── Orden de pago: info tour y cuenta ────────────────────── */
.rp-order-info-block,
.rp-order-account-block {
    margin-bottom: .2rem;
}
.rp-order-account-block {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.rp-order-copy-row {
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
}
.rp-order-copy-label {
    font-weight: 600;
    color: #555;
    min-width: 82px;
    flex-shrink: 0;
    font-size: .79rem;
}
.rp-order-copy-value {
    flex: 1 1 auto;
    min-width: 0;
    font-size: .84rem;
    color: #333;
    word-break: break-word;
}
.rp-order-copy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: #777;
    flex-shrink: 0;
    transition: background .15s, color .15s, border-color .15s;
}
.rp-order-copy-btn:hover {
    background: #f3f2f0;
    color: #222;
    border-color: #e2ddd7;
}
.rp-order-copy-btn:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(34, 34, 34, .08);
}
.rp-order-copy-btn i {
    font-size: .88rem;
    line-height: 1;
}
.rp-order-copy-actions {
    display: flex;
    justify-content: flex-start;
    margin-top: .25rem;
}
.rp-order-copy-all-btn {
    min-height: 32px;
    padding: .34rem .75rem;
    font-size: .77rem;
}
.rp-order-line {
    display: flex;
    gap: .5rem;
    align-items: baseline;
    font-size: .84rem;
    color: #333;
    margin-bottom: .35rem;
    flex-wrap: wrap;
}
.rp-order-label {
    font-weight: 600;
    color: #555;
    min-width: 90px;
    flex-shrink: 0;
    font-size: .79rem;
}
.rp-order-total {
    color: #c0392b;
    font-size: .97rem;
}
.rp-order-ref {
    font-family: monospace;
    font-size: .79rem;
    background: #f5f4f2;
    border-radius: 4px;
    padding: .1rem .35rem;
    color: #444;
    word-break: break-all;
}
.rp-divider {
    border: none;
    border-top: 1px solid #ece9e4;
    margin: .75rem 0;
}

/* ════════════════════════════════════════════════════════════════════════
   STEP 3 — Registrar Pago Voucher  (.rpv-*)
════════════════════════════════════════════════════════════════════════ */

/* Encabezado */
.rpv-header       { margin-bottom: .25rem; }
.rpv-title        { font-size: 1.05rem; font-weight: 700; color: #222; margin: 0 0 .2rem; }
.rpv-subtitle     { font-size: .8rem; color: #888; margin: 0; line-height: 1.45; }

/* Contenedor de campos */
.rpv-fields       { display: flex; flex-direction: column; gap: 1rem; }

/* Grupo campo */
.rpv-field-group  { display: flex; flex-direction: column; gap: .35rem; }
.rpv-label        { font-size: .78rem; font-weight: 600; color: #444; margin: 0; line-height: 1.4; }
.rpv-required     { color: #c0392b; margin-left: .15rem; }

/* Input wrapper — permite poner icono a la derecha */
.rpv-input-wrap   { position: relative; }
.rpv-input {
    width: 100%;
    border: 1.5px solid #ddd;
    border-radius: 50px;
    padding: .52rem 2.4rem .52rem 1rem;
    font-size: .9rem;
    color: #333;
    background: #fff;
    outline: none;
    transition: border-color .18s;
    box-sizing: border-box;
    min-height: 42px;
    -webkit-appearance: none;
    appearance: none;
}
.rpv-input:focus  { border-color: #4D4D4A; box-shadow: 0 0 0 3px rgba(77,77,74,.08); }
.rpv-input--native {
    padding-right: 1rem;
}
.rpv-input-icon {
    position: absolute;
    right: .9rem;
    top: 50%;
    transform: translateY(-50%);
    color: #aaa;
    font-size: .9rem;
    pointer-events: none;
}

/* File input personalizado */
.rpv-file-wrap {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}
.rpv-file-input   { display: none; }
.rpv-file-btn {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: #4D4D4A;
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: .52rem 1.05rem;
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .18s;
    white-space: nowrap;
    margin: 0;
    min-height: 42px;
    flex-shrink: 0;
}
.rpv-file-btn:hover { background: #333; }
.rpv-file-name {
    font-size: .78rem;
    color: #999;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: break-all;
}
.rpv-file-name.has-file { color: #333; font-weight: 500; }
.rpv-file-hint    { font-size: .72rem; color: #bbb; margin: .15rem 0 0; padding-left: .1rem; }

/* ── Preview de archivo seleccionado ──────────────────────── */
.rpv-preview-wrap {
    display: flex;
    align-items: center;
    gap: .75rem;
    background: #f5f4f2;
    border: 1.5px solid #e0dbd6;
    border-radius: 12px;
    padding: .55rem .75rem;
    min-height: 58px;
}
.rpv-preview-thumb {
    width: 42px;
    height: 42px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    background: #ece9e4;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rpv-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.rpv-preview-pdf-icon {
    font-size: 1.4rem;
    color: #c0392b;
}
.rpv-preview-info {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
    flex: 1;
}
.rpv-preview-name {
    font-size: .8rem;
    font-weight: 600;
    color: #222;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}
.rpv-preview-size {
    font-size: .7rem;
    color: #999;
    display: block;
}
.rpv-preview-remove {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid #ccc;
    background: #fff;
    color: #888;
    font-size: .75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color .15s, color .15s, background .15s;
    padding: 0;
    line-height: 1;
}
.rpv-preview-remove:hover {
    border-color: #c0392b;
    color: #c0392b;
    background: #fdf0ee;
}

/* Disclaimer */
.rpv-disclaimer {
    font-size: .75rem;
    color: #999;
    line-height: 1.55;
    margin-top: 1rem;
    padding: .65rem .9rem;
    background: #f9f9f8;
    border-radius: 8px;
    border-left: 3px solid #ddd;
}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE — MODAL DE PAGO
   Breakpoints: ≤575px (móvil), 576-767px (móvil grande / landscape)
════════════════════════════════════════════════════════════ */

/* Móvil grande (≤ 767px) */
@media (max-width: 767.98px) {

    /* Modal ocupa casi toda la pantalla, pero deja margen */
    #registrarPagoModal .modal-dialog {
        margin: .75rem auto;
        max-width: calc(100vw - 1.5rem);
    }
    #registrarPagoModal .modal-body {
        padding: 1rem 1rem .5rem;
        max-height: 72vh;
        overflow-y: auto;
    }
    #registrarPagoModal .modal-footer {
        padding: .65rem 1rem;
    }

    /* Título del paso */
    #rpStep1 h5,
    #rpStep2 h5 {
        font-size: .95rem;
    }

    /* Stepper de participantes */
    .rp-participants-row {
        gap: .9rem;
    }
    .rp-stepper-btn {
        width: 44px;
        height: 44px;
        font-size: 1.2rem;
    }
    .rp-stepper-value {
        font-size: 1.5rem;
    }

    /* Métodos de pago: 2 columnas en móvil grande, ya ok */
    .rp-methods-grid {
        gap: .45rem;
    }
    .rp-method-btn {
        padding: .6rem .75rem;
        font-size: .77rem;
        min-height: 44px;
    }

    /* Cuentas bancarias */
    .rp-accounts-grid {
        grid-template-columns: 1fr 1fr;
        gap: .45rem;
    }
    .rp-account-btn {
        padding: .55rem .7rem;
        min-height: 56px;
    }

    /* Orden de pago: etiquetas y valores apilados si no caben */
    .rp-order-line {
        font-size: .83rem;
        gap: .35rem;
    }
    .rp-order-label {
        min-width: 80px;
        font-size: .77rem;
    }
    .rp-order-copy-row {
        gap: .35rem;
    }
    .rp-order-copy-label {
        min-width: 74px;
        font-size: .75rem;
    }
    .rp-order-copy-value {
        font-size: .82rem;
    }
    .rp-order-copy-btn {
        width: 1.55rem;
        height: 1.55rem;
    }

    /* Cuenta bancaria: datos no se cortan */
    .rp-account-bank,
    .rp-account-owner,
    .rp-account-number {
        white-space: normal;
        word-break: break-word;
    }

    /* Botón PDF full-width en móvil */
    .rp-order-actions {
        justify-content: stretch;
    }
    .rp-pdf-btn {
        flex: 1;
        justify-content: center;
        text-align: center;
        min-height: 44px;
    }

    /* Step 3 — formulario */
    .rpv-input {
        border-radius: 14px;
        font-size: .88rem;
        padding: .55rem 2.4rem .55rem 1rem;
    }
    .rpv-file-btn {
        border-radius: 14px;
        width: 100%;
        justify-content: center;
    }
    .rpv-file-wrap {
        flex-direction: column;
        align-items: stretch;
    }
    .rpv-file-name {
        white-space: normal;
        word-break: break-word;
        text-align: center;
        padding: .2rem 0;
    }

    /* Preview del archivo en móvil */
    .rpv-preview-wrap {
        border-radius: 10px;
    }
    .rpv-preview-name {
        white-space: normal;
        word-break: break-word;
        font-size: .77rem;
    }

    /* Botones de navegación — full-width en móvil */
    #rpFooter1,
    #rpFooter2,
    #rpFooter3 {
        flex-direction: row;
        justify-content: stretch;
        gap: .45rem;
    }
    #rpFooter2 .rf-btn-outline,
    #rpFooter3 .rf-btn-outline {
        flex: 1;
    }
    #rpFooter1 .rf-btn-dark,
    #rpFooter2 .rf-btn-dark,
    #rpFooter3 .rf-btn-dark {
        flex: 2;
    }
}

/* Móvil pequeño (≤ 479px) */
@media (max-width: 479.98px) {

    #registrarPagoModal .modal-dialog {
        margin: .4rem;
        max-width: calc(100vw - .8rem);
    }
    #registrarPagoModal .modal-body {
        padding: .85rem .85rem .4rem;
        max-height: 68vh;
    }
    #registrarPagoModal .modal-footer {
        padding: .6rem .85rem;
    }

    /* Métodos: fila única en pantallas muy pequeñas */
    .rp-methods-grid {
        grid-template-columns: 1fr 1fr;
    }
    .rp-method-btn {
        font-size: .74rem;
        padding: .55rem .65rem;
    }
    .rp-method-icon {
        display: none; /* ocultar icono en móvil muy pequeño para ganar espacio */
    }

    /* Cuentas: 1 columna */
    .rp-accounts-grid {
        grid-template-columns: 1fr;
    }
    .rp-account-btn {
        min-height: 52px;
    }

    /* Stepper más compacto */
    .rp-stepper-btn {
        width: 40px;
        height: 40px;
    }
    .rp-stepper-value {
        font-size: 1.3rem;
    }

    /* Order de pago — etiqueta encima del valor */
    .rp-order-line {
        flex-direction: column;
        gap: .1rem;
        margin-bottom: .5rem;
        font-size: .82rem;
    }
    .rp-order-label {
        min-width: unset;
        font-size: .72rem;
        color: #888;
        text-transform: uppercase;
        letter-spacing: .03em;
    }
    .rp-order-copy-row {
        gap: .3rem;
    }
    .rp-order-copy-label {
        min-width: 68px;
        font-size: .71rem;
        letter-spacing: .02em;
        text-transform: uppercase;
    }
    .rp-order-copy-value {
        font-size: .8rem;
    }
    .rp-order-copy-btn {
        width: 1.45rem;
        height: 1.45rem;
    }

    /* CLABE y número de cuenta — monospace puede desbordar */
    #op-clabe,
    #op-account {
        font-size: .78rem;
        word-break: break-all;
    }

    /* Disclaimer más compacto */
    .rpv-disclaimer {
        font-size: .72rem;
        padding: .5rem .75rem;
    }

    /* Resumen en step 1 */
    .rp-summary {
        padding: .55rem .75rem;
    }
    .rp-summary-row {
        flex-direction: column;
        align-items: flex-start;
        gap: .1rem;
    }
}

/* ============================================================
   Payment card proportion fix — scoped to public book/reservation
   ============================================================ */
.rs-pay-card {
    width: min(100%, 42rem);
    max-width: 100%;
}

.rf-main-card {
    max-width: min(100%, 42rem);
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 992px) {
    .rs-pay-card {
        width: min(100%, 42.5rem);
        margin-top: 0.45rem;
        margin-bottom: 1rem;
    }

    .rs-pay-left {
        flex-basis: 50%;
    }

    .rs-pay-left__body {
        padding: .86rem .95rem .66rem;
    }

    .rs-pay-right {
        padding: .92rem 1rem;
    }

    .rs-pay-price__value {
        font-size: clamp(1.85rem, 2.35vw, 2.18rem);
    }
}

@media (max-width: 767.98px) {
    .rs-wrapper {
        width: 100vw;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
    }

    .rs-inner {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .rs-stepper,
    .rf-status-msg,
    .rf-main-card,
    .rs-pay-card {
        margin-left: auto;
        margin-right: auto;
    }

    .rs-stepper {
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        box-sizing: border-box;
    }

    .rf-status-msg {
        max-width: min(100%, 30rem);
        padding: 0.65rem 0 0.3rem;
    }

    .rf-main-card,
    .rs-pay-card {
        width: min(100%, 32rem);
    }

    .rs-pay-card {
        border-radius: 0.75rem;
        box-shadow: 0 0.45rem 1rem rgba(45, 38, 30, 0.09);
    }

    .rs-pay-headline {
        max-width: min(100%, 30rem);
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .rs-pay-top {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
    }

    .rs-pay-left {
        flex: none;
        border-right: none;
    }

    .rs-pay-left__body {
        justify-content: center;
        text-align: center;
        padding: 0.72rem 0.8rem 0.52rem;
    }

    .rs-pay-tour__info {
        text-align: center;
    }

    .rs-pay-tour__meta,
    .rs-pay-tour__cita {
        justify-content: center;
    }

    .rs-pay-top__divider {
        display: none;
    }

    .rs-pay-right {
        padding: 0.78rem 0.85rem;
        border-top: 1px solid #eee6de;
        align-items: center;
        text-align: center;
    }

    .rs-pay-price__label {
        white-space: normal;
        color: #8a7660;
    }

    .rs-pay-price__value {
        font-size: clamp(1.75rem, 7.6vw, 2.3rem);
        white-space: normal;
    }

    .rs-pay-cta {
        align-items: center;
        text-align: center;
    }

    .rs-cta-btn {
        max-width: min(100%, 24rem);
        padding: 0.68rem 1.25rem;
        font-size: clamp(0.94rem, 3.7vw, 1.08rem);
        text-align: center;
    }

    .rs-trust-row {
        align-items: center;
        justify-content: center;
        gap: 0.25rem 0.7rem;
        margin-top: 0.4rem;
    }

    .rs-trust-item {
        justify-content: center;
        text-align: center;
        line-height: 1.35;
    }

    .rs-trust-item--release {
        justify-content: center;
        max-width: min(100%, 28rem);
    }

    .rs-pay-logos {
        justify-content: center;
    }

    .rs-urgency-strip {
        text-align: center;
        margin-top: 0.55rem;
    }
}

/* CUSTOM STYLING FOR MOCKUP REDESIGN (NO PX MEASUREMENTS) */

/* Make the rs-inner container wider on larger screens */
.rs-inner {
    max-width: clamp(48.75rem, 70%, 95rem) !important;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Guarantee that grid/flex items and their children can shrink without causing overflow */
.rs-participants-extras-layout,
.rs-participants-extras-layout > *,
.rs-invite-card,
.rs-invite-card > *,
.rs-extras-side,
.rs-extras-side *,
.rs-participants-main,
.rs-participants-main *,
.xp-layout,
.xp-layout *,
.xp-cards-col,
.xp-summary-col,
.xp-card,
.xp-card *,
.xp-summary,
.xp-summary * {
    min-width: 0 !important;
    min-inline-size: 0 !important;
}

/* General Layout for Step 2 on Desktop (min-width: 992px) */
@media (min-width: 992px) {
    .rs-invite-card {
        display: grid !important;
        grid-template-columns: 1.4fr 0.8fr !important;
        gap: 1.5rem !important;
        align-items: stretch !important;
        margin-bottom: 1.5rem !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .rs-reward-panel {
        background: #ffffff;
        border: 0.0625rem solid #eee6de;
        border-radius: 0.75rem;
        padding: 1.5rem;
        box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03);
    }

    .rs-invite-actions {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        gap: 1rem;
    }

    .rs-action-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
        height: 100% !important;
        justify-content: space-between !important;
    }

    .rs-action-card {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .rs-participants-extras-layout {
        display: grid !important;
        grid-template-columns: 1.4fr 0.8fr !important;
        gap: 1.5rem !important;
        align-items: start !important;
        margin-bottom: 1.5rem !important;
    }

    .rs-participants-main {
        background: #ffffff;
        border: 0.0625rem solid #eee6de;
        border-radius: 0.75rem;
        padding: 1.5rem !important;
        box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03);
    }

    .rs-extras-side {
        background: #ffffff;
        border: 0.0625rem solid #eee6de;
        border-radius: 0.75rem;
        padding: 0.75rem !important;
        box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03);
        display: flex !important;
        flex-direction: column !important;
    }

    .rs-extras-side .xp-layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 1.25rem !important;
        flex-grow: 1 !important;
        justify-content: space-between !important;
    }

    .rs-extras-side .xp-cards-col {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        order: 2 !important; /* Categories below summary on desktop */
    }

    .rs-extras-side .xp-summary-col {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-end !important;
        flex-grow: 1 !important;
        order: 1 !important; /* Selected extras at the top on desktop */
    }

    #rs-panel-2 .rs-step-nav {
        display: grid !important;
        grid-template-columns: 1.4fr 0.8fr !important;
        gap: 1.5rem !important;
        align-items: center !important;
        margin-top: 1.5rem !important;
        border-top: none !important;
        padding-top: 0 !important;
    }

    #rs-panel-2 .rs-nav-btn-back {
        grid-column: 1 / 2;
        justify-self: start;
    }
}

/* Stepper View Actions Adjustment */
#rs-panel-2 .rs-step-nav .rs-nav-btn-next {
    display: none !important;
}

/* Reward Tracker Styles */
.rs-reward-panel__header {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.rs-reward-panel__icon-circle {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background-color: #28a745;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    flex-shrink: 0;
    box-shadow: 0 0.25rem 0.5rem rgba(40, 167, 69, 0.15);
}

.rs-reward-panel__header-text {
    flex-grow: 1;
    min-width: 0;
}

.rs-reward-panel__title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #4a3e3d;
    margin: 0 0 0.25rem;
    line-height: 1.25;
}

.rs-reward-panel__copy {
    font-size: 0.85rem;
    color: #8a7660;
    margin: 0;
    line-height: 1.35;
}

.rs-reward-panel__eyebrow {
    font-size: 0.78rem;
    text-transform: uppercase;
    font-weight: bold;
    color: #8a7660;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.rs-reward-panel__count-wrapper {
    display: flex;
    align-items: center;
    overflow: hidden;
    margin-left: -0.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #4a3e3d;
    margin-bottom: 1.5rem;
}

.rs-reward-panel__count-item {
    border-left: 1px solid rgba(138, 118, 96, 0.3);
    margin-left: -1px;
    padding: 0 0.75rem;
    line-height: 1.2;
}

.rs-reward-panel__count-divider {
    display: none !important;
}

.rs-reward-track {
    display: flex;
    align-items: center;
    position: relative;
    margin: 3.5rem 0 3.5rem !important;
    padding: 0 0.5rem;
}

.rs-reward-track::before {
    display: none !important;
}

.rs-reward-track__item {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rs-reward-track__item--organizer {
    margin-right: 2.5rem !important;
    flex-shrink: 0;
}

.rs-reward-track__companions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-grow: 1;
    position: relative;
}

.rs-reward-track__companions::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 0.125rem;
    border-top: 0.125rem dashed #dcd3c9;
    z-index: 1;
    transform: translateY(-50%);
}

.rs-reward-track__dot {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background-color: #ffffff;
    border: 0.125rem solid #dcd3c9;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: bold;
    color: #8a7660;
    transition: all 0.3s ease;
    box-shadow: 0 0 0 0.25rem #ffffff;
}

.rs-reward-track__item--organizer .rs-reward-track__dot {
    background-color: #28a745;
    border-color: #28a745;
    color: #ffffff;
}

.rs-reward-track__item--qualified .rs-reward-track__dot {
    background-color: #28a745;
    border-color: #28a745;
    color: #ffffff;
}

.rs-reward-track__item--partial .rs-reward-track__dot {
    background-color: #28a745;
    border-color: #28a745;
    color: #ffffff;
}

.rs-reward-track__item--added .rs-reward-track__dot {
    background-color: #e8f5e9;
    border-color: #81c784;
    color: #388e3c;
}

.rs-reward-track__item--trophy .rs-reward-track__dot {
    border-color: #ffb300;
    color: #ffb300;
    background-color: #fff9db;
}

.rs-reward-track__item--trophy.rs-reward-track__item--qualified .rs-reward-track__dot,
.rs-reward-track__item--trophy.rs-reward-track__item--partial .rs-reward-track__dot {
    background-color: #ffb300;
    border-color: #ffb300;
    color: #ffffff;
    box-shadow: 0 0 0 0.25rem #ffffff, 0 0.125rem 0.375rem rgba(255, 179, 0, 0.3);
}

.rs-reward-track__tier {
    font-size: 0.72rem;
    font-weight: 700;
    color: #537a5a;
    position: absolute;
    bottom: 2.6rem !important;
    white-space: nowrap;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
}

.rs-reward-track__label-sub {
    font-size: 0.72rem;
    font-weight: bold;
    color: #8a7660;
    position: absolute;
    top: 2.6rem !important;
    white-space: nowrap;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
}

.rs-reward-track__item--trophy .rs-reward-track__dot i {
    font-size: 0.95rem;
}

/* Green Info Box */
.rs-reward-panel__note-box {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    background-color: #eaf7ec;
    border: 0.0625rem solid #d4edda;
    border-radius: 0.5rem;
    padding: 0.75rem;
    margin-top: 0.5rem;
}

.rs-reward-panel__note-box-icon {
    font-size: 1.35rem;
    color: #28a745;
    flex-shrink: 0;
    margin-top: 0.15rem;
}

.rs-reward-panel__note-box-text {
    font-size: 0.82rem;
    color: #155724;
    line-height: 1.4;
}

/* Invitation Action Cards Styling */
.rs-action-card {
    background: #ffffff;
    border: 0.0625rem solid #eee6de;
    border-radius: 0.75rem;
    padding: 1.5rem !important;
    box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03);
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    align-items: stretch !important;
    flex-grow: 1 !important;
}

.rs-action-card .rs-btn-dark,
.rs-action-card .rs-link-field {
    margin-top: auto !important;
}

.rs-action-card__title {
    font-size: 0.95rem !important;
    font-weight: bold;
    color: #4a3e3d;
    margin-bottom: 0.5rem;
}

.rs-action-card__body {
    font-size: 0.82rem !important;
    color: #8a7660;
    margin-bottom: 0.75rem;
}

/* Participant List Styling */
.rs-leader-actions {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.rs-participant-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.85rem !important;
    background: #ffffff !important;
    border: 0.0625rem solid #eee6de !important;
    border-radius: 0.5rem !important;
    padding: 0.85rem 1rem !important;
    box-shadow: 0 0.125rem 0.375rem rgba(45, 38, 30, 0.02) !important;
    width: 100% !important;
}

.rs-participant-avatar {
    width: 2.2rem !important;
    height: 2.2rem !important;
    border-radius: 50%;
    background-color: #f7f3ee;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem !important;
    color: #8a7660;
    flex-shrink: 0;
}

.rs-pcard-body {
    flex-grow: 1 !important;
    min-width: 0 !important;
}

.rs-pcard-head {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    width: 100% !important;
    margin-bottom: 0.35rem !important;
    flex-wrap: nowrap !important;
}

@media (max-width: 767.98px) {
    .rs-pcard-head {
        flex-wrap: wrap !important;
    }
}

.rs-participant-name {
    font-weight: bold;
    font-size: 1rem !important;
    color: #4a3e3d;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal !important;
    overflow-wrap: normal !important;
    flex-shrink: 1;
}

@media (max-width: 767.98px) {
    .rs-participant-name {
        white-space: normal !important;
        text-overflow: clip !important;
        overflow: visible !important;
    }
}

.rs-pcard-badge {
    font-size: 0.7rem !important;
    padding: 0.15rem 0.45rem !important;
    border-radius: 6.25rem;
    flex-shrink: 0;
}

.rs-pcard-actions {
    margin-left: auto !important;
    display: flex !important;
    gap: 0.4rem !important;
    align-items: center !important;
    flex-shrink: 0 !important;
}

.rs-edit-btn {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: #f7f3ee;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8a7660;
    text-decoration: none !important;
    transition: all 0.2s;
}

.rs-edit-btn:hover {
    background: #4a3e3d;
    color: #ffffff;
}

.rs-pcard-meta-row {
    display: flex;
    align-items: center;
    gap: 0.6rem !important;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
    font-size: 0.78rem !important;
    color: #8a7660;
}

.rs-participant-meta {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.rs-participant-meta-divider {
    color: #eee6de;
}

.rs-pstatus {
    font-size: 0.72rem;
    font-weight: bold;
    padding: 0.15rem 0.45rem;
    border-radius: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.rs-pstatus--pending {
    background-color: #fdf3f2;
    color: #d9534f;
}

.rs-pstatus--covered {
    background-color: #eaf7ec;
    color: #28a745;
}

.rs-pstatus--addon {
    background-color: #f2f7fd;
    color: #0275d8;
}

/* Slots grid and cards */
.rs-slots-section-title {
    font-size: 0.85rem !important;
    font-weight: 700;
    color: #4a3e3d;
    margin: 1.5rem 0 0.8rem !important;
    border-bottom: 0.0625rem solid #eee6de;
    padding-bottom: 0.35rem;
}

.rs-slots-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)) !important;
    gap: 0.75rem !important;
    margin-bottom: 1.5rem !important;
}

.rs-slot-card {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    background: #fdfcfb !important;
    border: 0.0625rem dashed #dcd3c9 !important;
    border-radius: 0.5rem !important;
    padding: 0.75rem !important;
    min-width: 0 !important;
}

.rs-slot-card__avatar {
    width: 2.2rem !important;
    height: 2.2rem !important;
    border-radius: 50%;
    background-color: #f7f3ee;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem !important;
    color: #8a7660;
    flex-shrink: 0;
}

.rs-slot-card__info {
    flex-grow: 1 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.2rem !important;
}

.rs-slot-card__label {
    font-size: 0.8rem !important;
    font-weight: bold;
    color: #8a7660;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rs-slot-card__status {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.25rem !important;
}

.rs-slot-card__btn {
    padding: 0.25rem 0.6rem !important;
    font-size: 0.75rem !important;
    border-radius: 0.25rem !important;
    cursor: pointer;
    flex-shrink: 0;
    white-space: nowrap !important;
}

/* Reduced prominence for Category Titles */
.xp-type-group__title {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8a7660;
    margin: 1.2rem 0 0.6rem;
    border-bottom: 0.0625rem solid #f0e6db;
    padding-bottom: 0.3rem;
    font-weight: bold;
}

/* Compact Sidebar overrides for Extras cards */
.rs-extras-side {
    background: #ffffff;
    border: 0.0625rem solid #eee6de;
    border-radius: 0.75rem;
    padding: 0.75rem !important;
    box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03);
}

.rs-extras-side .xp-card {
    border-radius: 0.4rem !important;
    border: 0.0625rem solid #eee6de !important;
    background: #faf9f7 !important;
    margin-bottom: 0.4rem !important;
    min-width: 0 !important;
}

.rs-extras-side .xp-card__row {
    padding: 0.4rem 0.6rem !important;
    gap: 0.5rem !important;
    min-width: 0 !important;
}

.rs-extras-side .xp-card__icon {
    width: 1.5rem !important;
    height: 1.5rem !important;
    font-size: 0.8rem !important;
    border-radius: 0.25rem !important;
}

.rs-extras-side .xp-card__name {
    font-size: 0.8rem !important;
    color: #4a3e3d !important;
    font-weight: bold !important;
}

.rs-extras-side .xp-card__desc {
    font-size: 0.68rem !important;
    color: #8a7660 !important;
    line-height: 1.25 !important;
}

.rs-extras-side .xp-card__price {
    font-size: 0.78rem !important;
    color: #4a3e3d !important;
}

.rs-extras-side .xp-card__pp {
    font-size: 0.6rem !important;
}

.rs-extras-side .xp-card__btn {
    padding: 0.15rem 0.45rem !important;
    font-size: 0.68rem !important;
    border-radius: 0.25rem !important;
}

.rs-extras-side .xp-summary {
    padding: 0.75rem !important;
    border-radius: 0.4rem !important;
    min-width: 0 !important;
}

.rs-extras-side .xp-summary__head {
    font-size: 0.8rem !important;
    color: #8a7660 !important;
    margin-bottom: 0.5rem !important;
}

.rs-extras-side .xp-summary-row {
    padding: 0.2rem 0 !important;
    min-width: 0 !important;
}

.rs-extras-side .xp-summary-row__name {
    font-size: 0.72rem !important;
}

.rs-extras-side .xp-summary-row__qty,
.rs-extras-side .xp-summary-row__price {
    font-size: 0.72rem !important;
}

/* Responsive / Mobile View Overrides (max-width: 991.98px) */
@media (max-width: 991.98px) {
    #rs-panel-2.rs-panel--active,
    #rs-panel-2.rs-panel--leaving {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }

    .rs-participants-extras-layout,
    .rs-extras-side,
    .xp-layout,
    .xp-summary-col {
        display: contents !important;
    }

    .rs-participants-main,
    .xp-cards-col {
        grid-column: 1 / -1 !important;
    }

    .rs-extras-side .xp-summary {
        background: #ffffff !important;
        border: 0.0625rem solid #eee6de !important;
        border-radius: 0.75rem !important;
        padding: 1.25rem !important;
        box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03) !important;
        margin: 0 !important;
        grid-column: 1 / -1 !important;
    }

    .rs-invite-actions,
    .rs-action-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
    }

    .rs-invite-card {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
        border: 0.0625rem solid #eee6de !important;
        background: #ffffff !important;
        padding: 1.25rem !important;
        border-radius: 0.75rem !important;
        box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03) !important;
    }

    .rs-participants-main {
        background: #ffffff !important;
        border: 0.0625rem solid #eee6de !important;
        border-radius: 0.75rem !important;
        padding: 1.25rem !important;
        box-shadow: 0 0.25rem 0.75rem rgba(45, 38, 30, 0.03) !important;
    }

    #rs-panel-2 .rs-step-nav {
        display: none !important;
    }

    #xp-continue-btn {
        grid-column: 1 / -1 !important;
        order: 9 !important;
        margin: 0 !important;
        width: 100% !important;
    }

    #xp-continue-btn {
        box-sizing: border-box !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 2.75rem !important;
        padding: 0.65rem 1.25rem !important;
        font-size: 0.82rem !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        border-radius: 50px !important;
        text-align: center !important;
        margin: 0 !important;
        width: 100% !important;
    }

    /* Countdown wrap and flow alignment */
    .rs-trust-item {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        white-space: normal !important;
        flex-wrap: wrap !important;
        gap: 0.25rem !important;
    }

    .rs-trust-item span {
        display: inline-block !important;
        text-align: center !important;
        white-space: normal !important;
    }

    .pay-card-countdown-value {
        white-space: nowrap !important;
        display: inline-block !important;
    }

    /* Compact reward tracker */
    .rs-reward-panel {
        padding: 0.75rem !important;
    }

    .rs-reward-panel__header {
        display: flex !important;
        align-items: center !important;
        gap: 0.5rem !important;
        margin-bottom: 0.5rem !important;
    }

    .rs-reward-panel__icon-circle {
        width: 2rem !important;
        height: 2rem !important;
        font-size: 1rem !important;
        flex-shrink: 0 !important;
    }

    .rs-reward-panel__header-text {
        flex-grow: 1 !important;
        min-width: 0 !important;
    }

    .rs-reward-panel__title {
        font-size: clamp(0.95rem, 4vw, 1.1rem) !important;
        line-height: 1.2 !important;
        margin-bottom: 0.05rem !important;
    }

    .rs-reward-panel__copy {
        font-size: 0.7rem !important;
        line-height: 1.2 !important;
    }

    .rs-reward-panel__eyebrow {
        margin-bottom: 0.15rem !important;
        font-size: 0.65rem !important;
    }

    .rs-reward-panel__count-wrapper {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        overflow: hidden !important;
        margin-left: -0.5rem !important;
        margin-bottom: 0.5rem !important;
        font-size: 0.7rem !important;
    }

    .rs-reward-panel__count-item {
        border-left: 1px solid rgba(138, 118, 96, 0.3) !important;
        margin-left: -1px !important;
        padding: 0 0.5rem !important;
        line-height: 1.2 !important;
    }

    .rs-reward-panel__count-divider {
        display: none !important;
    }

    .rs-reward-track {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        margin: 1.8rem 0 !important;
        padding: 0 0.25rem !important;
        position: relative !important;
    }

    .rs-reward-track::before {
        content: '' !important;
        position: absolute !important;
        top: 50% !important;
        left: 1rem !important;
        right: 1rem !important;
        height: 0.0625rem !important;
        border-top: 0.0625rem dashed #dcd3c9 !important;
        z-index: 1 !important;
        display: block !important;
        transform: translateY(-50%) !important;
    }

    .rs-reward-track__item--organizer {
        margin-right: 0.75rem !important;
        margin-left: 0 !important;
        margin-inline-start: 0 !important;
        margin-inline-end: 0.75rem !important;
        flex-shrink: 0 !important;
        align-self: auto !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        width: 1.8rem !important;
        height: 1.8rem !important;
        position: relative !important;
    }

    .rs-reward-track__companions {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        flex-grow: 1 !important;
        position: relative !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .rs-reward-track__companions::before {
        display: none !important;
    }

    .rs-reward-track__item {
        position: relative !important;
        z-index: 2 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        width: 1.8rem !important;
        height: 1.8rem !important;
        flex-shrink: 0 !important;
    }

    .rs-reward-track__dot {
        width: 1.5rem !important;
        height: 1.5rem !important;
        font-size: 0.7rem !important;
        border-width: 0.1rem !important;
        box-shadow: 0 0 0 0.15rem #ffffff !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .rs-reward-track__tier {
        position: absolute !important;
        bottom: 1.8rem !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        font-size: 0.6rem !important;
        font-weight: 700 !important;
        color: #537a5a !important;
        white-space: nowrap !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .rs-reward-track__label-sub {
        position: absolute !important;
        top: 1.8rem !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        font-size: 0.55rem !important;
        font-weight: bold !important;
        color: #8a7660 !important;
        white-space: nowrap !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .rs-reward-track__item--trophy .rs-reward-track__label-sub {
        white-space: normal !important;
        width: 3rem !important;
        max-width: 3rem !important;
        text-align: center !important;
        line-height: 1.1 !important;
        top: 1.8rem !important;
    }

    .rs-reward-track__item--trophy .rs-reward-track__dot i {
        font-size: 0.75rem !important;
    }

    .rs-reward-panel__note-box {
        padding: 0.4rem 0.6rem !important;
        margin-top: 0.5rem !important;
        gap: 0.4rem !important;
        border-radius: 0.35rem !important;
        display: flex !important;
        align-items: flex-start !important;
    }

    .rs-reward-panel__note-box-icon {
        font-size: 0.95rem !important;
        margin-top: 0.05rem !important;
        flex-shrink: 0 !important;
    }

    .rs-reward-panel__note-box-text {
        font-size: 0.65rem !important;
        line-height: 1.25 !important;
        flex-grow: 1 !important;
    }

    /* Leader actions stacking */
    .rs-leader-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.5rem !important;
        width: 100% !important;
    }

    .rs-leader-actions button {
        width: 100% !important;
        text-align: center !important;
        font-size: 0.75rem !important;
        padding: 0.5rem 1rem !important;
    }

    /* Compact registered participant cards on mobile */
    .rs-participant-item {
        display: flex !important;
        align-items: flex-start !important;
        gap: 0.65rem !important;
        padding: 0.65rem 0.75rem !important;
        border-radius: 0.5rem !important;
    }

    .rs-participant-avatar {
        width: 2rem !important;
        height: 2rem !important;
        font-size: 0.95rem !important;
        margin-top: 0.15rem !important;
    }

    .rs-pcard-body {
        flex-grow: 1 !important;
        min-width: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0.35rem !important;
    }

    .rs-pcard-head {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
        gap: 0.35rem 0.5rem !important;
        margin-bottom: 0 !important;
        width: 100% !important;
    }

    .rs-participant-name {
        font-size: 0.95rem !important;
        font-weight: bold !important;
        min-width: 0 !important;
        max-width: 100% !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
        white-space: normal !important;
        flex: 1 1 auto !important;
    }

    .rs-pcard-badge {
        font-size: 0.65rem !important;
        padding: 0.15rem 0.45rem !important;
        flex-shrink: 0 !important;
    }

    .rs-pcard-actions {
        margin-left: auto !important;
        margin-inline-start: auto !important; /* Logical property push to right */
        display: flex !important;
        gap: 0.35rem !important;
        flex-shrink: 0 !important;
    }

    .rs-pcard-meta-row {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.3rem 0.5rem !important;
        margin-bottom: 0 !important;
        font-size: 0.75rem !important;
        color: #8a7660 !important;
    }

    .rs-participant-meta {
        display: inline-flex !important;
        align-items: center !important;
        gap: 0.2rem !important;
    }

    .rs-participant-meta-divider {
        display: none !important; /* Hide vertical bars on mobile */
    }

    .rs-pstatus {
        font-size: 0.68rem !important;
        padding: 0.1rem 0.35rem !important;
    }

    .rs-note-wrap {
        width: 100% !important;
        margin-top: 0.15rem !important;
    }

    .rs-note-inline {
        display: flex !important;
        align-items: stretch !important;
        gap: 0.35rem !important;
        width: 100% !important;
    }

    .rs-note-textarea {
        flex-grow: 1 !important;
        font-size: 0.78rem !important;
        padding: 0.25rem 0.5rem !important;
        min-height: 2rem !important;
        height: auto !important;
    }

    .rs-note-save {
        flex-shrink: 0 !important;
        padding: 0.25rem 0.6rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
}

/* Extras visual refresh: final cascade layer */
.rs-extras-side .xp-cards-col,
.xp-cards-col {
    gap: clamp(0.9rem, 2vw, 1.25rem);
}

.rs-extras-side .xp-pay-column,
.xp-pay-column {
    display: grid;
    gap: clamp(0.75rem, 1.8vw, 1rem);
    min-width: 0;
}

.rs-extras-side .xp-pay-column__head,
.xp-pay-column__head {
    display: grid;
    gap: 0.25rem;
    padding: clamp(0.9rem, 2vw, 1.15rem);
    border: 0.0625rem solid rgba(84, 62, 45, 0.12);
    border-radius: 0.75rem;
    background: linear-gradient(135deg, #fffaf2 0%, #f6fbf6 100%);
    box-shadow: 0 0.65rem 1.6rem rgba(63, 49, 40, 0.06);
}

.rs-extras-side .xp-pay-column__eyebrow,
.xp-pay-column__eyebrow {
    color: #2e6a52;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rs-extras-side .xp-pay-column__head h5,
.xp-pay-column__head h5 {
    margin: 0;
    color: #2f2826;
    font-size: clamp(1rem, 2vw, 1.18rem);
    font-weight: 900;
}

.rs-extras-side .xp-pay-column__head p,
.xp-pay-column__head p {
    margin: 0;
    color: #756b63;
    font-size: clamp(0.86rem, 1.6vw, 0.94rem);
    line-height: 1.45;
}

.rs-extras-side .xp-pay-column--arrival,
.xp-pay-column--arrival {
    opacity: 0.72;
}

.rs-extras-side .xp-pay-column--arrival .xp-pay-column__head,
.xp-pay-column--arrival .xp-pay-column__head {
    border-style: dashed;
    background: #fbfaf8;
}

.rs-extras-side .xp-type-group,
.xp-type-group {
    margin: clamp(0.9rem, 2vw, 1.2rem) 0 0.45rem;
}

.rs-extras-side .xp-card,
.xp-card {
    overflow: clip;
    border: 0.0625rem solid rgba(78, 61, 49, 0.12);
    border-radius: 0.9rem;
    background: #fff;
    box-shadow: 0 0.75rem 1.8rem rgba(62, 49, 38, 0.08);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.rs-extras-side .xp-card:hover,
.xp-card:hover {
    transform: translateY(-0.12rem);
    border-color: rgba(46, 106, 82, 0.26);
    box-shadow: 0 1rem 2.2rem rgba(62, 49, 38, 0.11);
}

.rs-extras-side .xp-card--active,
.xp-card--active {
    border-color: rgba(46, 106, 82, 0.45);
    box-shadow: 0 0.9rem 2rem rgba(46, 106, 82, 0.12);
}

.rs-extras-side .xp-card__row,
.xp-card__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(0.75rem, 1.8vw, 1rem);
    padding: clamp(0.85rem, 2vw, 1rem);
}

.rs-extras-side .xp-card__icon,
.xp-card__icon {
    display: inline-grid;
    width: clamp(3rem, 7vw, 3.8rem);
    aspect-ratio: 1;
    place-items: center;
    border-radius: 0.85rem;
    background: linear-gradient(135deg, #2e6a52 0%, #8db86f 100%);
    color: #fff;
    font-size: clamp(1.2rem, 2.8vw, 1.55rem);
}

.rs-extras-side .xp-card__info,
.xp-card__info {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.rs-extras-side .xp-card__badges,
.xp-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rs-extras-side .xp-card__badge,
.xp-card__badge {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    padding: 0.18rem 0.48rem;
    border-radius: 999rem;
    background: #f4efe8;
    color: #675b52;
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.2;
    text-transform: uppercase;
}

.rs-extras-side .xp-card__badge--now,
.xp-card__badge--now {
    background: #e8f4ec;
    color: #24644c;
}

.rs-extras-side .xp-card__price,
.xp-card__price {
    color: #205f48;
    font-size: clamp(1rem, 2vw, 1.16rem);
    font-weight: 950;
    white-space: nowrap;
}

.rs-extras-side .xp-card__btn,
.xp-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.25rem;
    padding: 0.48rem 0.75rem;
    border-radius: 999rem;
    background: #2e6a52;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 900;
    box-shadow: 0 0.45rem 1rem rgba(46, 106, 82, 0.18);
}

.rs-extras-side .xp-card__btn--assigned,
.xp-card__btn--assigned {
    background: #d8a444;
    color: #241f18;
}

@media (max-width: 44rem) {
    .rs-extras-side .xp-card__row,
    .xp-card__row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rs-extras-side .xp-card__right,
    .xp-card__right {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        justify-items: stretch;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rs-extras-side .xp-card,
    .xp-card {
        transition: none;
    }

    .rs-extras-side .xp-card:hover,
    .xp-card:hover {
        transform: none;
    }
}

/* Reservation book Phase B: contextual participant flow */
.rs-participants-extras-layout {
    display: block !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    max-width: 100%;
}

.rs-participants-main,
.rs-extras-context-shell {
    width: 100%;
    min-width: 0;
}

.rs-summary-card__code {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.rs-summary-card__code > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.rs-summary-card__copy {
    display: inline-grid;
    flex: 0 0 auto;
    width: 1.85rem;
    aspect-ratio: 1;
    place-items: center;
    border: 0.0625rem solid rgba(46, 106, 82, 0.18);
    border-radius: 999rem;
    background: #f3faf6;
    color: #24644c;
    font-size: 0.86rem;
    line-height: 1;
}

.rs-summary-card__copy:hover {
    background: #e5f3eb;
    color: #1c523d;
}

.rs-invite-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(0.9rem, 2vw, 1.25rem) !important;
    max-width: 100%;
}

.rs-invite-card .rs-reward-panel {
    width: 100%;
    min-width: 0;
}

.rs-invite-actions {
    display: grid;
    gap: 0.65rem;
    width: 100%;
    min-width: 0;
}

.rs-invite-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    width: 100%;
}

.rs-invite-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.45rem;
    padding: 0.55rem 0.85rem;
    border: 0.0625rem solid rgba(46, 106, 82, 0.2);
    border-radius: 999rem;
    background: #fff;
    color: #285542;
    font-size: 0.86rem;
    font-weight: 850;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
}

.rs-invite-action:hover {
    background: #f4faf6;
    color: #1d4736;
    text-decoration: none;
}

.rs-invite-action--primary {
    border-color: #2e6a52;
    background: #2e6a52;
    color: #fff;
}

.rs-invite-action--primary:hover {
    background: #235540;
    color: #fff;
}

.rs-invite-action--wa {
    border-color: rgba(37, 211, 102, 0.4);
    color: #14793b;
}

.rs-pcard-finance-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.7rem;
    margin-top: 0.35rem;
    color: #6c5d50;
    font-size: 0.8rem;
    line-height: 1.25;
}

.rs-pcard-finance-row strong {
    color: #3f332b;
    font-weight: 850;
}

.rs-pcard-appointment {
    align-items: center;
    color: #5f544a;
    display: flex;
    flex-wrap: wrap;
    font-size: 0.8rem;
    font-weight: 650;
    gap: 0.32rem;
    line-height: 1.35;
    margin: 0.34rem 0 0.42rem;
    min-width: 0;
}

.rs-pcard-appointment__icon {
    color: #2e6a52;
    flex: 0 0 auto;
    font-size: 0.9rem;
}

.rs-pcard-appointment__label {
    color: #3f332b;
    flex: 0 0 auto;
    font-weight: 850;
}

.rs-pcard-appointment__body {
    align-items: center;
    display: inline-flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 0.28rem;
    min-width: 0;
}

.rs-pcard-appointment__place {
    color: #2e6a52;
    min-width: 0;
    overflow-wrap: anywhere;
    text-decoration: none;
}

a.rs-pcard-appointment__place:hover,
a.rs-pcard-appointment__place:focus-visible {
    color: #235540;
    text-decoration: underline;
}

.rs-pcard-appointment__separator {
    color: #a59584;
    flex: 0 0 auto;
}

.rs-pcard-appointment__time {
    color: #5f544a;
    flex: 0 0 auto;
}

.rs-pcard-appointment__map {
    align-items: center;
    border: 1px solid rgba(46, 106, 82, 0.2);
    border-radius: 999rem;
    color: #2e6a52;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.86rem;
    height: 1.9rem;
    justify-content: center;
    text-decoration: none;
    width: 1.9rem;
}

.rs-pcard-appointment__map:hover,
.rs-pcard-appointment__map:focus-visible {
    background: #eef8f2;
    border-color: rgba(46, 106, 82, 0.36);
    color: #235540;
    outline: none;
}

.rs-pcard-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.55rem;
    width: 100%;
}

.rs-participant-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.34rem;
    min-height: 2.15rem;
    padding: 0.45rem 0.68rem;
    border: 0.0625rem solid rgba(73, 60, 49, 0.14);
    border-radius: 999rem;
    background: #fff;
    color: #4a4038;
    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
}

.rs-participant-action:hover,
.rs-participant-action--active {
    border-color: rgba(46, 106, 82, 0.36);
    background: #eef8f2;
    color: #235640;
}

.rs-participant-action--pay {
    border-color: rgba(216, 164, 68, 0.45);
    background: #fff8e8;
    color: #6b4b10;
}

.rs-note-wrap:not(.is-open) {
    display: none !important;
}

.rs-note-wrap.is-open {
    display: block;
}

.rs-extras-context-shell {
    margin-top: clamp(1rem, 2.6vw, 1.6rem);
    padding: clamp(0.9rem, 2vw, 1.25rem);
    border: 0.0625rem solid rgba(78, 61, 49, 0.12);
    border-radius: 0.95rem;
    background: #fff;
    box-shadow: 0 0.9rem 2.4rem rgba(62, 49, 38, 0.08);
}

.xp-context-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(0.85rem, 2vw, 1.15rem);
}

.xp-context-head__actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.45rem;
    min-width: 0;
}

.xp-context-head__eyebrow {
    display: block;
    color: #2e6a52;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.xp-context-head__title {
    margin: 0.12rem 0 0;
    color: #2f2826;
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    font-weight: 900;
    line-height: 1.15;
}

.xp-context-head__sub {
    margin: 0.28rem 0 0;
    color: #71675f;
    font-size: 0.9rem;
    line-height: 1.4;
}

.xp-context-head__close {
    display: inline-grid;
    flex: 0 0 auto;
    width: 2.25rem;
    aspect-ratio: 1;
    place-items: center;
    border: 0.0625rem solid rgba(73, 60, 49, 0.14);
    border-radius: 999rem;
    background: #fff;
    color: #4a4038;
}

.xp-context-head__close:hover {
    background: #f5f1eb;
}

.xp-group-extras-toggle {
    min-height: 2rem;
    padding: 0.34rem 0.62rem;
    white-space: normal;
}

.rs-extras-context-shell .xp-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(1rem, 2.5vw, 1.4rem) !important;
}

.rs-extras-context-shell .xp-summary-col {
    position: static !important;
    width: 100%;
    min-width: 0;
}

.rs-extras-context-shell .xp-summary-card {
    position: static !important;
    top: auto !important;
}

.rs-extras-context-shell .xp-cards-col {
    min-width: 0;
}

.xp-prow.d-none,
.xp-card.d-none,
.xp-plist__divider.d-none,
.rs-extras-context-shell.d-none {
    display: none !important;
}

.rs-slot-card .rs-participant-action {
    margin-left: auto;
}

@media (max-width: 48rem) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .rs-invite-actions__buttons,
    .rs-pcard-quick-actions,
    .rs-pcard-finance-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .rs-invite-action,
    .rs-participant-action {
        width: 100%;
        white-space: normal;
    }

    .xp-context-head {
        align-items: flex-start;
    }

    .rs-extras-context-shell {
        padding: 0.85rem;
        border-radius: 0.75rem;
    }

    .rs-slot-card .rs-participant-action {
        margin-left: 0;
    }

}

.rs-invite-actions__buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, auto));
    justify-content: center;
    align-items: center;
    gap: 0.65rem;
}

.rs-invite-actions__buttons > .rs-invite-action {
    width: auto;
    min-width: min(13.25rem, 100%);
    min-height: 2.35rem;
    padding: 0.58rem 1.05rem;
    border: 0;
    border-radius: 999rem;
    background: #2f6f58;
    color: #fff;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    box-shadow: none;
}

.rs-invite-actions__buttons > .rs-invite-action:hover,
.rs-invite-actions__buttons > .rs-invite-action:focus {
    background: #285f4b;
    color: #fff;
    text-decoration: none;
}

.rs-invite-actions__buttons > .rs-invite-action i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    font-size: 1.12rem;
    line-height: 1;
}

.rs-invite-actions__buttons > .rs-invite-action--ghost {
    display: none;
}

@media (max-width: 30rem) {
    .rs-invite-actions__buttons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.55rem;
    }

    .rs-invite-actions__buttons > .rs-invite-action {
        min-width: 0;
        padding-inline: 0.72rem;
        font-size: 0.78rem;
    }
}

/* Reservation book correction: unified places list + inline extras */
.rs-places-list {
    display: grid;
    gap: clamp(0.75rem, 1.8vw, 1rem);
    width: 100%;
    min-width: 0;
}

.rs-place-card {
    display: grid;
    gap: 0;
    min-width: 0;
}

.rs-place-card .rs-participant-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: clamp(0.75rem, 1.8vw, 1rem);
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    padding: clamp(0.85rem, 2vw, 1.05rem) !important;
    border: 0.0625rem solid rgba(78, 61, 49, 0.12);
    border-radius: 0.9rem;
    background: #fff;
    box-shadow: 0 0.45rem 1.15rem rgba(62, 49, 38, 0.055);
}

.rs-participant-item--available {
    background: #fffdf8 !important;
}

.rs-place-card .rs-participant-avatar {
    width: clamp(2.5rem, 7vw, 3.15rem) !important;
    height: auto !important;
    aspect-ratio: 1;
    display: inline-grid !important;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 999rem;
    background: #eef6f1;
    color: #2e6a52;
}

.rs-place-card .rs-pcard-body {
    display: grid;
    gap: 0.42rem;
    min-width: 0;
    width: 100%;
}

.rs-place-card .rs-pcard-head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.4rem 0.55rem;
    min-width: 0;
}

.rs-place-card .rs-participant-name {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    color: #302824;
    font-weight: 900;
    line-height: 1.2;
}

.rs-place-card .rs-pcard-actions {
    margin-left: auto;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.rs-pcard-actions .rs-token-action {
    border: 0;
    appearance: none;
    cursor: pointer;
    line-height: 1;
    padding: 0.22rem 0.45rem;
}

.rs-slot-invite-row {
    align-items: center;
    display: grid;
    gap: 0.35rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
    max-width: 32rem;
    min-width: 0;
}

.rs-slot-alias-input {
    background: #fff;
    border: 1px solid rgba(78, 61, 49, 0.18);
    border-radius: 0.48rem;
    color: #302824;
    font-size: 0.78rem;
    height: 2rem;
    min-width: 0;
    padding: 0 0.6rem;
}

.rs-slot-alias-input:focus {
    border-color: #2e6a52;
    box-shadow: 0 0 0 0.16rem rgba(46, 106, 82, 0.16);
    outline: none;
}

.rs-slot-alias-save {
    align-items: center;
    background: #2e6a52;
    border: 1px solid #2e6a52;
    border-radius: 0.48rem;
    color: #fff;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    min-width: 2rem;
    padding: 0 0.55rem;
}

.rs-slot-alias-save:hover,
.rs-slot-alias-save:focus-visible {
    background: #235540;
    border-color: #235540;
    color: #fff;
    outline: none;
}

.rs-slot-alias-status {
    color: #2e6a52;
    font-size: 0.72rem;
    font-weight: 700;
    min-width: 3.2rem;
}

.rs-slot-alias-status.is-error {
    color: #b42318;
}

.rs-alias-entry {
    align-items: center;
    background: rgba(46, 106, 82, 0.06);
    border: 1px solid rgba(46, 106, 82, 0.14);
    border-radius: 0.72rem;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin: 0.65rem 0 0;
    padding: clamp(0.75rem, 2.4vw, 0.95rem);
}

.rs-alias-entry__eyebrow {
    color: #2e6a52;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.25;
}

.rs-alias-entry__copy,
.rs-alias-panel__copy {
    color: #6f6258;
    font-size: 0.8rem;
    line-height: 1.35;
    margin: 0.18rem 0 0;
}

.rs-alias-entry__action,
.rs-alias-panel__switch {
    align-items: center;
    background: transparent;
    border: 1px solid rgba(46, 106, 82, 0.25);
    border-radius: 999rem;
    color: #2e6a52;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.38rem;
    justify-content: center;
    min-height: 2.25rem;
    padding: 0.45rem 0.8rem;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.rs-alias-entry__action:hover,
.rs-alias-entry__action:focus-visible,
.rs-alias-panel__switch:hover,
.rs-alias-panel__switch:focus-visible {
    background: #2e6a52;
    border-color: #2e6a52;
    color: #fff;
    outline: none;
}

.rs-alias-entry__action:focus-visible,
.rs-alias-panel__switch:focus-visible {
    box-shadow: 0 0 0 0.18rem rgba(46, 106, 82, 0.18);
}

.rs-alias-panel {
    background: #fff;
    border: 1px solid rgba(78, 61, 49, 0.13);
    border-radius: 0.78rem;
    box-shadow: 0 0.55rem 1.4rem rgba(48, 40, 36, 0.08);
    display: grid;
    gap: 0.85rem;
    margin-top: 0.7rem;
    padding: clamp(0.85rem, 2.6vw, 1.05rem);
}

.rs-alias-panel__head {
    align-items: flex-start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.rs-alias-panel__grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1.35fr) minmax(11rem, 0.65fr);
}

.rs-alias-field {
    min-width: 0;
}

.rs-alias-panel__status {
    color: #2e6a52;
    font-size: 0.78rem;
    font-weight: 700;
    margin: 0;
}

.rs-alias-panel__status.is-error {
    color: #b42318;
}

#information-form.is-alias-mode .uam-legal-note {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .rs-alias-entry__action,
    .rs-alias-panel__switch {
        transition: none;
    }
}

@media (max-width: 575.98px) {
    .rs-alias-entry,
    .rs-alias-panel__head {
        align-items: stretch;
        flex-direction: column;
    }

    .rs-alias-entry__action,
    .rs-alias-panel__switch {
        width: 100%;
    }

    .rs-alias-panel__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.rs-place-card .rs-pcard-meta-row,
.rs-place-card .rs-pcard-finance-row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 0.32rem 0.65rem !important;
    min-width: 0;
}

.rs-place-card .rs-pcard-quick-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.rs-participant-action--primary {
    border-color: #2e6a52;
    background: #2e6a52;
    color: #fff;
}

.rs-participant-action--primary:hover {
    background: #235540;
    color: #fff;
}

.rs-participant-action[data-extras-context] i,
.rs-participant-action[data-note-target] i {
    font-size: 0.86rem;
}

.rs-place-extras-slot {
    min-width: 0;
}

.rs-place-extras-slot:empty {
    display: none;
}

.rs-place-extras-slot .rs-extras-context-shell {
    margin: 0.55rem 0 0;
}

.rs-token-modal .modal-body {
    display: grid;
    gap: 1rem;
}

.rs-token-status {
    margin: 0;
    padding: 0.62rem 0.75rem;
    border-radius: 0.65rem;
    border: 0.0625rem solid rgba(73, 60, 49, 0.14);
    background: #f7f3ed;
    color: #4a4038;
    font-size: 0.88rem;
    font-weight: 750;
}

.rs-token-status.is-success {
    border-color: rgba(46, 106, 82, 0.22);
    background: #eef8f2;
    color: #235640;
}

.rs-token-status.is-warning {
    border-color: rgba(216, 164, 68, 0.32);
    background: #fff8e8;
    color: #6b4b10;
}

.rs-token-share-panel {
    display: grid;
    gap: 0.9rem;
}

.rs-token-intro,
.rs-token-bulk-head p {
    margin: 0;
    color: #5d5149;
    line-height: 1.45;
}

.rs-token-url {
    padding: 0.82rem 0.9rem;
    border: 0.0625rem solid rgba(73, 60, 49, 0.16);
    border-radius: 0.75rem;
    background: #fffaf4;
    color: #302824;
    font-size: 0.9rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
    user-select: text;
}

.rs-token-actions,
.rs-token-bulk-head,
.rs-token-row,
.rs-token-row__actions {
    display: flex;
    align-items: center;
}

.rs-token-actions {
    flex-wrap: wrap;
    gap: 0.5rem;
}

.rs-token-modal .btn {
    border-radius: 999rem;
    font-weight: 850;
}

.rs-token-modal .btn-secondary {
    border-color: rgba(143, 122, 86, 0.36);
    background: #fff8e8;
    color: #6b4b10;
}

.rs-token-modal .btn-secondary:hover {
    border-color: rgba(143, 122, 86, 0.52);
    background: #f5ead1;
    color: #5a3f0f;
}

.rs-token-modal .btn-dark {
    border-color: #2e6a52;
    background: #2e6a52;
    color: #fff;
}

.rs-token-modal .btn-dark:hover {
    border-color: #235540;
    background: #235540;
    color: #fff;
}

.rs-token-bulk-head {
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.rs-token-bulk-head strong {
    display: block;
    color: #302824;
    font-size: 1rem;
    font-weight: 900;
}

.rs-token-list {
    display: grid;
    gap: 0.55rem;
}

.rs-token-row {
    gap: 0.75rem;
    min-width: 0;
    padding: 0.72rem;
    border: 0.0625rem solid rgba(73, 60, 49, 0.12);
    border-radius: 0.75rem;
    background: #fff;
}

.rs-token-avatar {
    display: inline-grid;
    flex: 0 0 auto;
    width: 2.15rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 999rem;
    background: #eef8f2;
    color: #235640;
    font-weight: 900;
}

.rs-token-row__body {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.rs-token-row__body strong,
.rs-token-row__body span,
.rs-token-row__body small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rs-token-row__body strong {
    color: #302824;
    font-weight: 900;
}

.rs-token-row__body span {
    color: #2e6a52;
    font-size: 0.82rem;
    font-weight: 850;
}

.rs-token-row__body small {
    color: #786d64;
    font-size: 0.78rem;
}

.rs-token-row__actions {
    margin-left: auto;
    gap: 0.35rem;
}

.rs-token-icon-btn {
    display: inline-grid;
    width: 2.05rem;
    aspect-ratio: 1;
    place-items: center;
    border: 0.0625rem solid rgba(73, 60, 49, 0.14);
    border-radius: 999rem;
    background: #fff;
    color: #4a4038;
    cursor: pointer;
}

.rs-token-icon-btn:hover {
    border-color: rgba(46, 106, 82, 0.36);
    background: #eef8f2;
    color: #235640;
}

@media (max-width: 48rem) {
    .rs-token-bulk-head,
    .rs-token-row {
        align-items: stretch;
        flex-direction: column;
    }

    .rs-token-row__actions {
        margin-left: 0;
    }

    .rs-token-row__body strong,
    .rs-token-row__body span,
    .rs-token-row__body small {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

.rs-extras-context-shell {
    padding: clamp(0.78rem, 1.8vw, 1rem);
    border-radius: 0.85rem;
    border-color: rgba(46, 106, 82, 0.16);
    background: #fffdf8;
    box-shadow: 0 0.55rem 1.35rem rgba(62, 49, 38, 0.06);
}

.rs-extras-context-shell .xp-context-head__sub,
.rs-extras-context-shell .xp-pay-column__head p,
.xp-pay-column__head p {
    display: none !important;
}

.rs-extras-context-shell .xp-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: clamp(0.7rem, 1.6vw, 0.95rem) !important;
}

.rs-extras-context-shell .xp-pay-column--now,
.rs-extras-context-shell .xp-pay-column--arrival {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
    align-items: start;
    gap: clamp(0.65rem, 1.5vw, 0.85rem);
}

.rs-extras-context-shell .xp-pay-column__head,
.rs-extras-context-shell .xp-type-group,
.rs-extras-context-shell .xp-empty {
    grid-column: 1 / -1;
}

.rs-extras-context-shell .xp-type-group {
    margin: 0.1rem 0 0;
}

.rs-extras-context-shell .xp-pay-column__head {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.rs-extras-context-shell .xp-pay-column__eyebrow {
    width: max-content;
    max-width: 100%;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #191715;
    font-size: clamp(1rem, 2vw, 1.18rem);
    letter-spacing: 0.02em;
}

.rs-extras-context-shell .xp-context-head {
    align-items: center;
    margin-bottom: clamp(0.65rem, 1.5vw, 0.85rem);
}

.rs-extras-context-shell .xp-card {
    height: 100%;
    border-color: rgba(92, 80, 68, 0.16);
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: none;
}

.rs-extras-context-shell .xp-card:hover {
    transform: none;
    border-color: rgba(62, 49, 38, 0.28);
    box-shadow: 0 0.28rem 0.8rem rgba(62, 49, 38, 0.045);
}

.rs-extras-context-shell .xp-card--active {
    border-color: rgba(62, 49, 38, 0.52);
    box-shadow: 0 0.32rem 0.85rem rgba(62, 49, 38, 0.06);
}

.rs-extras-context-shell .xp-card__row {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    min-height: 0;
    padding: clamp(0.68rem, 1.55vw, 0.85rem);
}

.rs-extras-context-shell .xp-card__icon {
    width: clamp(2.1rem, 4.2vw, 2.55rem);
    border-radius: 0.55rem;
    background: #f2eee8;
    color: #3d352e;
    font-size: 1rem;
}

.rs-extras-context-shell .xp-card__badges {
    gap: 0.28rem;
}

.rs-extras-context-shell .xp-card__badge {
    padding: 0.12rem 0.38rem;
    background: #f5f1eb;
    color: #665b51;
    font-size: 0.62rem;
}

.rs-extras-context-shell .xp-card__badge--now {
    background: #f5f1eb;
    color: #3d352e;
}

.rs-extras-context-shell .xp-card__name {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    color: #24201c;
    font-size: 0.9rem;
    font-weight: 900;
    line-height: 1.2;
}

.rs-extras-context-shell .xp-card__desc {
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    -webkit-box-orient: initial;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    color: #6f665e;
    font-size: 0.75rem;
    line-height: 1.38;
}

.rs-extras-context-shell .xp-card__right {
    display: grid;
    justify-items: end;
    gap: 0.42rem;
    align-content: start;
}

.rs-extras-context-shell .xp-card__price {
    color: #26211d;
    font-size: 0.92rem;
    font-weight: 950;
}

.rs-extras-context-shell .xp-card__pp {
    color: #8d8378;
}

.rs-extras-context-shell .xp-card__btn {
    min-height: 1.8rem;
    padding: 0.32rem 0.62rem;
    border: 0.0625rem solid rgba(62, 49, 38, 0.2);
    border-radius: 999rem;
    background: #fff;
    color: #2e2924;
    box-shadow: none;
    font-size: 0.72rem;
}

.rs-extras-context-shell .xp-card__btn--assigned {
    border-color: rgba(46, 106, 82, 0.35);
    background: #f2f7f3;
    color: #245640;
}

.rs-extras-context-shell .xp-panel {
    grid-column: 1 / -1;
}

.rs-extras-context-shell .xp-panel--open {
    max-height: none;
    overflow: visible;
}

.rs-extras-context-shell .xp-panel__inner {
    padding: 0.7rem;
    background: #fbfaf8;
}

.rs-extras-context-shell .xp-panel__hint,
.rs-extras-context-shell .xp-panel__note {
    display: none;
}

.rs-extras-context-shell .xp-summary-col {
    margin-top: 0;
}

.rs-payment-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(0.85rem, 2vw, 1.25rem);
    margin-top: clamp(1rem, 2.2vw, 1.35rem);
    padding: clamp(1rem, 2vw, 1.25rem) clamp(1.05rem, 2.3vw, 1.55rem);
    border: 0.14rem solid rgba(46, 106, 82, 0.14);
    border-radius: 1.35rem;
    background: linear-gradient(135deg, #f8fcf7 0%, #fffaf1 100%);
    box-shadow: 0 0.55rem 1.35rem rgba(62, 49, 38, 0.06);
}

.rs-payment-cta__body {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.rs-payment-cta__eyebrow {
    color: #5f6d5e;
    font-size: 0.78rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rs-payment-cta__amount {
    color: #213f32;
    font-size: clamp(1.55rem, 3.3vw, 2rem);
    font-weight: 950;
    line-height: 1.1;
}

.rs-payment-cta__breakdown {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.8rem;
    color: #6e645c;
    font-size: 0.84rem;
}

.rs-payment-cta__button,
.xp-continue-btn--inline {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.62rem;
    width: auto !important;
    min-width: clamp(13rem, 24vw, 19rem);
    min-height: 3.15rem;
    padding: 0.78rem 1.45rem;
    border: 0;
    border-radius: 999rem;
    background: #2e6a52;
    color: #fff;
    font-size: clamp(0.95rem, 1.55vw, 1.16rem);
    font-weight: 900;
    line-height: 1.15;
    box-shadow: 0 0.65rem 1.2rem rgba(46, 106, 82, 0.2);
    transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.rs-payment-cta__button {
    animation: rsPaymentCtaPulse 2.8s ease-in-out infinite;
}

.rs-payment-cta__button i {
    font-size: 1.25em;
    line-height: 1;
}

.rs-payment-cta__button:hover,
.xp-continue-btn--inline:hover {
    background: #245640;
    color: #fff;
    box-shadow: 0 0.62rem 1.25rem rgba(46, 106, 82, 0.2);
    transform: translateY(-0.04rem);
}

@keyframes rsPaymentCtaPulse {
    0%,
    100% {
        box-shadow: 0 0.65rem 1.2rem rgba(46, 106, 82, 0.2);
    }

    50% {
        box-shadow: 0 0.8rem 1.55rem rgba(46, 106, 82, 0.28);
    }
}

@media (prefers-reduced-motion: reduce) {
    .rs-payment-cta__button {
        animation: none;
    }
}

.xp-continue-btn--inline:disabled {
    opacity: 0.52;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.rs-extras-context-shell .xp-summary {
    padding: clamp(0.72rem, 1.6vw, 0.9rem);
    border: 0.0625rem solid rgba(78, 61, 49, 0.1);
    border-radius: 0.75rem;
    background: #fffaf2;
    box-shadow: none;
}

.rs-extras-context-shell .xp-summary__head {
    margin-bottom: 0.45rem;
}

.rs-extras-context-shell .xp-summary-row {
    padding: 0.34rem 0;
}

.rs-extras-context-shell .xp-summary-row--group {
    padding-top: 0.55rem;
}

.rs-extras-context-shell .xp-summary__total {
    margin-top: 0.5rem;
    padding-top: 0.55rem;
}

.rs-extras-context-shell .xp-continue-btn--inline {
    margin-top: 0.65rem;
    height: auto !important;
}

@media (max-width: 48rem) {
    .xp-context-head {
        align-items: stretch;
        flex-direction: column;
    }

    .xp-context-head__actions {
        justify-content: space-between;
        width: 100%;
    }

    .xp-group-extras-toggle {
        flex: 1 1 12rem;
    }

    .rs-place-card .rs-participant-item {
        grid-template-columns: minmax(0, 1fr);
    }

    .rs-place-card .rs-participant-avatar {
        width: 2.65rem !important;
    }

    .rs-place-card .rs-pcard-actions {
        margin-left: 0;
    }

    .rs-place-card .rs-pcard-quick-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .rs-place-card .rs-participant-action {
        width: 100%;
        white-space: normal;
    }

    .rs-place-extras-slot .rs-extras-context-shell {
        margin-left: 0;
    }

    .rs-extras-context-shell .xp-card__row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rs-extras-context-shell .xp-card__right {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr) auto;
        justify-items: stretch;
        align-items: center;
        width: 100%;
    }

    .rs-payment-cta {
        display: grid;
    }

    .rs-payment-cta__button,
    .xp-continue-btn--inline {
        width: 100% !important;
    }
}

/* ═══════════════════════════════════════════════════════════════
   NEW: Two-column grid, images, arrival badges, matrix UI
   ═══════════════════════════════════════════════════════════════ */

/* Two-column grid inside xp-cards-col */
.xp-two-col-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.5rem, 3vw, 2.25rem);
    align-items: start;
}

@media (max-width: 767px) {
    .xp-two-col-grid {
        grid-template-columns: 1fr;
    }
}

/* Pay-column headings (overrides for title/sub variant) */
.xp-pay-column__title {
    margin: 0 0 0.25rem;
    font-size: clamp(1.05rem, 2.2vw, 1.22rem);
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #2f2826;
}

.xp-pay-column--now .xp-pay-column__title {
    color: #1d4f38;
}

.xp-pay-column--arrival .xp-pay-column__title {
    color: #5a5040;
}

.xp-pay-column__sub {
    margin: 0;
    font-size: 0.83rem;
    color: #7a6f66;
    line-height: 1.45;
}

/* Remove dimming so arrival column is fully visible */
.xp-pay-column--arrival {
    opacity: 1 !important;
}

.xp-pay-column--arrival .xp-pay-column__head {
    background: linear-gradient(135deg, #fdfcf8 0%, #f6f3ec 100%) !important;
    border-color: rgba(140, 110, 60, 0.18) !important;
    border-style: solid !important;
}

/* Addon card: image */
.xp-card__image-wrap {
    width: clamp(70px, 12vw, 96px);
    aspect-ratio: 1;
    border-radius: 0.6rem;
    overflow: hidden;
    flex-shrink: 0;
    align-self: flex-start;
}

.xp-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.xp-card__price-from {
    font-size: 0.72rem;
    font-weight: 400;
    color: #8a7f75;
    display: block;
}

/* Badges */
.xp-card__badge--required {
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffc107;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.1rem 0.45rem;
    border-radius: 0.35rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.xp-card__badge--arrival {
    background: #e8f4f0;
    color: #1d6b52;
    border: 1px solid rgba(46, 106, 82, 0.3);
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.1rem 0.45rem;
    border-radius: 0.35rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Saved badge: arrival state */
.xp-prow__saved-badge--arrival {
    background: #e8f4f0;
    color: #1d5e48;
    border-color: rgba(46, 106, 82, 0.3);
}

/* Panel: arrival note */
.xp-panel__arrival-note {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.65rem 0.85rem;
    background: #e8f4f0;
    border: 1px solid rgba(46, 106, 82, 0.2);
    border-radius: 0.6rem;
    font-size: 0.84rem;
    color: #1d5e48;
    line-height: 1.45;
    margin-bottom: 0.75rem;
}

/* Summary: arrival note */
.xp-arrival-note {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.65rem 0.85rem;
    background: #fffbe8;
    border: 1px solid rgba(140, 110, 60, 0.2);
    border-radius: 0.6rem;
    font-size: 0.82rem;
    color: #5a4a20;
    line-height: 1.45;
    margin-top: 0.75rem;
}

/* Save button: arrival variant */
.xp-save-btn--arrival {
    background: #2e6a52 !important;
    color: #fff !important;
    border-color: #2e6a52 !important;
}

.xp-save-btn--arrival:hover:not(:disabled) {
    background: #245542 !important;
}

/* Matrix configurator */
.xp-matrix-wrap {
    margin-bottom: 0.75rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.xp-matrix-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.xp-matrix-table th {
    background: #3a3028;
    color: #fff;
    padding: 0.55rem 0.75rem;
    text-align: center;
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.xp-matrix-table th:first-child {
    text-align: left;
}

.xp-matrix-table td {
    padding: 0.5rem 0.65rem;
    border: 1px solid #e8e0d8;
    text-align: center;
    vertical-align: middle;
}

.xp-matrix-table td:first-child {
    text-align: left;
    font-weight: 600;
    color: #3a3028;
    background: #fafaf8;
}

.xp-matrix-table tr:hover td {
    background: #f6f3ec;
}

.xp-matrix-cell {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.xp-matrix-cell .xp-qty-btn {
    width: 1.6rem;
    height: 1.6rem;
    font-size: 0.85rem;
    line-height: 1;
}

.xp-matrix-cell .xp-qty-input {
    width: 2.5rem;
    text-align: center;
    padding: 0.1rem;
    font-size: 0.85rem;
}

.xp-matrix-footer {
    display: flex;
    justify-content: space-between;
    padding: 0.6rem 0.5rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #2f2826;
    border-top: 1px solid #e8e0d8;
}

.xp-matrix-total--price {
    color: #c62828;
}

/* ── Matrix responsive: compact stacked layout on narrow screens ─────────
   Desktop: normal table with header row providing column context.
   Mobile (≤480 px): table elements become block; thead is hidden because
   each body cell carries its own .xp-matrix-col-label span with the column
   value name, injected by xpRenderMatrix() from the variant data.
   ─────────────────────────────────────────────────────────────────────── */
.xp-matrix-wrap {
    -webkit-overflow-scrolling: touch;
}
.xp-matrix-table {
    min-width: 100%;
    white-space: nowrap;
}

/* Column-value label injected per cell by xpRenderMatrix — hidden on desktop
   where the <thead> already names the columns. */
.xp-matrix-col-label {
    display: none;
}

@media (max-width: 480px) {
    .xp-matrix-table,
    .xp-matrix-table thead,
    .xp-matrix-table tbody,
    .xp-matrix-table tr,
    .xp-matrix-table th,
    .xp-matrix-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
        white-space: normal;
    }
    .xp-matrix-table thead { display: none; } /* label provided by .xp-matrix-col-label */
    .xp-matrix-table tr {
        border: 1px solid #e8e0d8;
        border-radius: 6px;
        margin-bottom: 0.5rem;
        padding: 0.4rem 0.5rem;
    }
    .xp-matrix-table td {
        border: none;
        padding: 0.25rem 0;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
    .xp-matrix-table td:first-child {
        font-weight: 700;
        font-size: 0.85rem;
        padding-bottom: 0.35rem;
        border-bottom: 1px solid #f0ece4;
    }
    /* Show the column-value label injected by JS; push the qty control to the right */
    .xp-matrix-col-label {
        display: inline;
        font-size: 0.8rem;
        color: #555;
        flex: 1;
    }
    .xp-matrix-cell {
        margin-left: auto;
    }
}

/* ── Group-select button & panel ─────────────────────────────────────── */
.xp-group-select-btn {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: none;
    border: 1.5px dashed var(--rs-dark, #3a3028);
    color: var(--rs-dark, #3a3028);
    border-radius: 6px;
    padding: 0.4rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    margin: 0.5rem 0 0.25rem;
    transition: background 0.15s;
}
.xp-group-select-btn:hover {
    background: rgba(58,48,40,0.07);
}

.xp-group-panel {
    background: #faf8f4;
    border: 1px solid #e8e0d8;
    border-radius: 8px;
    margin: 0.4rem 0 0.6rem;
    overflow: hidden;
    animation: xpFadeIn 0.15s ease;
}
.xp-group-panel__title {
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.55rem 0.85rem;
    background: #f0ece4;
    border-bottom: 1px solid #e8e0d8;
    color: #3a3028;
}
.xp-group-panel__list {
    padding: 0.4rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.xp-group-cb-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0;
    cursor: pointer;
    font-size: 0.83rem;
}
.xp-group-cb-row--disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.xp-group-cb-name {
    flex: 1;
}
.xp-group-cb-badge {
    font-size: 0.72rem;
    padding: 0.1rem 0.5rem;
    border-radius: 50px;
    background: #e8e0d8;
    color: #3a3028;
    font-weight: 600;
}
.xp-group-cb-badge--paid {
    background: #d4edda;
    color: #155724;
}
.xp-group-panel__footer {
    padding: 0.5rem 0.85rem 0.65rem;
    border-top: 1px solid #f0ece4;
}
.xp-group-apply-btn {
    background: var(--rs-dark, #3a3028);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.15s;
}
.xp-group-apply-btn:hover { opacity: 0.85; }

@keyframes xpFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Arrival column: disable pay-now-only continue button style difference */
.xp-pay-column--arrival .xp-save-btn {
    background: #2e6a52;
    color: #fff;
    border-color: #2e6a52;
}

/* ── Part A: Individual mode — hide toggle for active participant ───────── */
.xp-prow--auto-target .xp-prow__toggle { display: none !important; }
.xp-prow--auto-target { opacity: 1; }

/* ── Global group-extras mode — host container & per-participant matrix blocks */

/* Global extras host: replaces participant list when switch is ON */
.rs-global-extras-host {
    width: 100%;
    animation: rsGlobalExtrasIn 0.18s ease;
}
@keyframes rsGlobalExtrasIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Hide standard matrix elements when a panel is in global-view mode */
.xp-panel--global-view .xp-matrix-wrap,
.xp-panel--global-view .xp-matrix-footer,
.xp-panel--global-view .xp-plist,
.xp-panel--global-view .xp-panel__hint,
.xp-panel--global-view .xp-panel__actions { display: none !important; }

/* Per-participant matrix table wrapper (mirrors xp-matrix-wrap but never hidden in global view) */
.xp-gmatrix-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 0.5rem;
}

/* Global matrix host (per-participant blocks) */
.xp-global-matrix-host {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.2rem 0 0.6rem;
}

/* Each participant block */
.xp-gmatrix-block {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    transition: border-color 0.15s;
}
.xp-gmatrix-block--saved { border-color: #b8ddc8; }

/* Block header (accordion toggle button) */
.xp-gmatrix-block__head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.6rem 0.8rem;
    background: #f9fafb;
    border: none;
    cursor: pointer;
    text-align: left;
    font-size: 0.81rem;
    color: #1f2937;
    transition: background 0.12s;
}
.xp-gmatrix-block--saved .xp-gmatrix-block__head { background: #f0f9f5; }
.xp-gmatrix-block__head:hover { background: #eef2f7; }

.xp-gmatrix-block__identity {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 1 1 auto;
    min-width: 0;
}
.xp-gmatrix-block__name {
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.xp-gmatrix-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.42rem;
    border-radius: 999rem;
    font-size: 0.66rem;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}
.xp-gmatrix-badge--saved { background: #d1fae5; color: #166534; }
.xp-gmatrix-head-price {
    font-size: 0.78rem;
    font-weight: 700;
    color: #2e6a52;
    white-space: nowrap;
    flex-shrink: 0;
}
.xp-gmatrix-block__chevron {
    flex-shrink: 0;
    font-size: 0.7rem;
    color: #6b7280;
    transition: transform 0.2s;
}
.xp-gmatrix-block__head[aria-expanded="true"] .xp-gmatrix-block__chevron {
    transform: rotate(180deg);
}

/* Block body */
.xp-gmatrix-block__body {
    padding: 0.7rem 0.8rem 0.8rem;
    border-top: 1px solid #e5e7eb;
}
.xp-gmatrix-block__table { margin-bottom: 0.7rem; }

/* Block footer: total + save button */
.xp-gmatrix-block__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding-top: 0.5rem;
    border-top: 1px solid #eef0f2;
}
.xp-gmatrix-block__footer-left {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.81rem;
}
.xp-gmatrix-foot-label { color: #6b7280; }
.xp-gmatrix-foot-total { font-size: 0.95rem; color: #1a3c2c; font-weight: 700; }

.xp-gmatrix-save-btn {
    background: #2e6a52;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.38rem 0.85rem;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.15s;
    white-space: nowrap;
}
.xp-gmatrix-save-btn:hover:not(:disabled) { opacity: 0.85; }
.xp-gmatrix-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.xp-gmatrix-save-btn--arrival { background: #1e5c44; }

/* Compact pay-on-arrival chip ─────────────────────────────────────────────── */
.rs-arrival-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.3rem;
    padding: 0.18rem 0.48rem;
    background: #f6f2eb;
    border: 1px solid #d8c9a8;
    border-radius: 999rem;
    font-size: 0.72rem;
    line-height: 1.15;
    color: #5a4320;
    cursor: pointer;
    user-select: none;
    transition: background 0.12s, border-color 0.12s;
    max-width: 100%;
}
.rs-arrival-chip:hover { background: #ede5d4; border-color: #c8b889; }
.rs-arrival-chip:focus,
.rs-arrival-chip:focus-visible {
    outline: 2px solid rgba(138, 108, 48, .24);
    outline-offset: 2px;
}
.rs-arrival-chip__icon { flex-shrink: 0; color: #8a6c30; }
.rs-arrival-chip__text {
    flex: 1 1 auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rs-arrival-chip__chevron {
    flex-shrink: 0;
    font-size: 0.62rem;
    transition: transform 0.18s;
}
.rs-arrival-chip__chevron--open { transform: rotate(180deg); }
.rs-arrival-detail {
    margin-top: 0.25rem;
    padding: 0.28rem 0.5rem;
    background: #faf7f1;
    border-left: 2px solid #c8a86a;
    border-radius: 0 4px 4px 0;
    font-size: 0.72rem;
}
.rs-arrival-detail-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.2rem 0.5rem;
    padding: 0.14rem 0;
    border-top: 1px solid #ede5d4;
}
.rs-arrival-detail-item:first-child { border-top: none; }
.rs-arrival-detail-item__name { font-weight: 600; color: #3a3028; }
.rs-arrival-detail-item__variants { color: #666; flex: 1 0 100%; }
.rs-arrival-detail-item__qty { color: #666; }
.rs-arrival-detail-item__price { margin-left: auto; font-weight: 600; color: #3a3028; }

.rs-card-extras-summary {
    display: grid;
    gap: 0.34rem;
    margin-top: 0.48rem;
}

.rs-card-extras-summary__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.28rem 0.34rem 0.28rem 0.44rem;
    border: 1px solid rgba(78, 61, 49, 0.09);
    border-radius: 0.55rem;
    background: rgba(255, 253, 248, 0.72);
}

.rs-card-extras-summary__chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}

.rs-card-extras-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.26rem;
    min-height: 1.45rem;
    padding: 0.16rem 0.46rem;
    border: 1px solid rgba(78, 61, 49, 0.09);
    border-radius: 999px;
    color: #514638;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.rs-card-extras-chip strong {
    color: #302a24;
    font-size: 0.72rem;
    font-weight: 800;
}

.rs-card-extras-chip--arrival {
    border-color: rgba(138, 108, 48, 0.18);
    background: #fff7e2;
}

.rs-card-extras-chip--online {
    border-color: rgba(46, 106, 82, 0.14);
    background: #f5fbf6;
}

.rs-card-extras-chip--online.is-pending {
    border-color: rgba(156, 64, 46, 0.2);
    background: #fff7f3;
}

.rs-card-extras-summary__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.24rem;
    flex: 0 0 auto;
    min-height: 1.55rem;
    padding: 0.1rem 0.28rem;
    border: 0;
    border-radius: 0.42rem;
    background: transparent;
    color: #6a573d;
    font-size: 0.72rem;
    font-weight: 780;
    line-height: 1;
    cursor: pointer;
}

.rs-card-extras-summary__toggle:hover,
.rs-card-extras-summary__toggle:focus-visible {
    background: rgba(136, 105, 62, 0.09);
    color: #4c3b26;
}

.rs-card-extras-summary__toggle i {
    font-size: 0.72rem;
    transition: transform 0.18s ease;
}

.rs-card-extras-summary__toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.rs-card-extras-summary__detail {
    display: grid;
    gap: 0.28rem;
    padding: 0.06rem 0.12rem 0;
}

.rs-card-extras-summary__detail[hidden] {
    display: none;
}

.rs-card-extras-summary__group {
    display: grid;
    gap: 0.2rem;
    padding: 0.26rem 0.38rem;
    border-left: 2px solid rgba(78, 61, 49, 0.12);
}

.rs-card-extras-summary__group--arrival {
    border-left-color: rgba(138, 108, 48, 0.32);
}

.rs-card-extras-summary__group--online {
    border-left-color: rgba(46, 106, 82, 0.26);
}

.rs-card-extras-summary__group-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.rs-card-extras-summary__group-head strong {
    color: #302a24;
    font-size: 0.72rem;
    font-weight: 800;
    white-space: nowrap;
}

.rs-card-extras-summary__label {
    color: #665b50;
    font-size: 0.66rem;
    font-weight: 760;
    letter-spacing: 0.01em;
}

.rs-card-extra-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 0.5rem;
    color: #3a3028;
    font-size: 0.72rem;
    line-height: 1.2;
}

.rs-card-extra-line span {
    min-width: 0;
}

.rs-card-extra-line small {
    display: block;
    margin-top: 0.06rem;
    color: #71685f;
    font-size: 0.65rem;
    font-weight: 500;
}

.rs-card-extra-line strong {
    color: #302a24;
    font-size: 0.72rem;
    font-weight: 760;
    white-space: nowrap;
}

/* Responsive */
@media (max-width: 42rem) {
    .rs-arrival-chip {
        max-width: 100%;
    }
    .rs-arrival-chip__text {
        white-space: nowrap;
    }
    .xp-gmatrix-block__footer { flex-direction: column; align-items: stretch; }
    .xp-gmatrix-save-btn { width: 100%; text-align: center; }
    .xp-gmatrix-block__identity { flex-wrap: wrap; }
    .xp-gmatrix-block__name { font-size: 0.78rem; }
}

/* Scoped composition pass: participants step without an extra visual panel */
#rs-panel-2 .rs-participants-extras-layout {
    display: block !important;
    margin-bottom: clamp(0.85rem, 2vw, 1.25rem) !important;
}

#rs-panel-2 .rs-participants-main {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    width: 100%;
}

#rs-panel-2 .rs-places-list {
    gap: clamp(0.65rem, 1.6vw, 0.95rem);
}

#rs-panel-2 .rs-place-card .rs-participant-item {
    box-sizing: border-box;
}

#rs-panel-2 .rs-place-card .rs-pcard-quick-actions {
    gap: 0.38rem;
}

#rs-panel-2 .rs-participant-action {
    min-height: 2.05rem;
    padding: 0.42rem 0.62rem;
}

@media (max-width: 48rem) {
    #rs-panel-2 .rs-participant-item {
        width: 100%;
    }

    #rs-panel-2 .rs-place-card .rs-participant-item {
        grid-template-columns: auto minmax(0, 1fr);
        gap: clamp(0.55rem, 2.5vw, 0.75rem);
        padding: clamp(0.68rem, 3vw, 0.9rem) !important;
    }

    #rs-panel-2 .rs-place-card .rs-participant-avatar {
        width: clamp(2.15rem, 10vw, 2.55rem) !important;
    }

    #rs-panel-2 .rs-place-card .rs-pcard-quick-actions {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        gap: 0.38rem;
        justify-content: flex-end;
    }

    #rs-panel-2 .rs-place-card .rs-participant-action {
        border-radius: 999rem;
        flex: 0 0 auto;
        min-height: 2.45rem;
        padding: 0.52rem;
        white-space: nowrap;
        width: 2.45rem;
    }

    #rs-panel-2 .rs-place-card .rs-participant-action span {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }

    #rs-panel-2 .rs-place-card .rs-participant-action i {
        font-size: 1rem;
        margin: 0;
    }

    #rs-panel-2 .rs-pcard-finance-row {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.28rem 0.58rem !important;
    }

    #rs-panel-2 .rs-slot-invite-row {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    #rs-panel-2 .rs-slot-alias-status {
        grid-column: 1 / -1;
        min-width: 0;
    }
}

/* Participant cards: compact reference layout */
#rs-panel-2 .rs-place-card .rs-participant-item {
    align-items: center;
    gap: clamp(0.55rem, 1.5vw, 0.8rem);
    padding: clamp(0.72rem, 1.7vw, 0.92rem) !important;
}

#rs-panel-2 .rs-place-card .rs-pcard-body {
    gap: 0.28rem;
}

#rs-panel-2 .rs-place-card .rs-pcard-head {
    align-items: center;
    display: grid !important;
    gap: 0.4rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
}

#rs-panel-2 .rs-place-card .rs-participant-name {
    font-size: clamp(0.94rem, 2.3vw, 1.05rem);
    line-height: 1.14;
}

#rs-panel-2 .rs-place-card .rs-pcard-badge {
    justify-self: end;
    max-width: 8.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#rs-panel-2 .rs-pcard-reserved-date {
    color: #342d28;
    font-size: clamp(0.72rem, 1.35vw, 0.82rem);
    font-weight: 780;
    justify-self: end;
    line-height: 1.15;
    white-space: nowrap;
}

#rs-panel-2 .rs-pcard-appointment {
    align-items: baseline;
    display: grid;
    gap: 0.2rem 0.28rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 0;
    min-width: 0;
}

#rs-panel-2 .rs-pcard-appointment__text {
    min-width: 0;
}

#rs-panel-2 .rs-pcard-appointment__label,
#rs-panel-2 .rs-pcard-appointment__place,
#rs-panel-2 .rs-pcard-appointment__time {
    font-size: 0.8rem;
    line-height: 1.26;
}

#rs-panel-2 .rs-pcard-appointment__body {
    display: inline;
    flex: 1 1 auto;
    min-width: 0;
}

#rs-panel-2 .rs-pcard-appointment__place {
    font-weight: 760;
}

#rs-panel-2 .rs-pcard-appointment__map {
    align-self: center;
    height: 2rem;
    width: 2rem;
}

#rs-panel-2 .rs-pcard-finance-row {
    color: #342d28;
    display: flex !important;
    flex-wrap: wrap !important;
    font-size: 0.78rem;
    gap: 0.24rem 0.62rem !important;
    line-height: 1.24;
    margin-top: 0.08rem;
}

#rs-panel-2 .rs-finance-item--tour,
#rs-panel-2 .rs-finance-item--tour strong {
    color: #342d28;
}

#rs-panel-2 .rs-tour-price {
    align-items: center;
    display: inline-flex;
    gap: 0.24rem;
}

#rs-panel-2 .rs-tour-price__toggle {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: #342d28;
    cursor: pointer;
    display: inline-flex;
    font-size: 0.82rem;
    height: 1.2rem;
    justify-content: center;
    line-height: 1;
    margin: 0;
    padding: 0;
    width: 1.2rem;
}

#rs-panel-2 .rs-tour-price__toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}

#rs-panel-2 .rs-tour-price__toggle i {
    transition: transform 160ms ease;
}

#rs-panel-2 .rs-tour-price-breakdown {
    align-self: start;
    background: #fff;
    border: 1px solid rgba(78, 61, 49, 0.12);
    border-radius: 0.36rem;
    box-shadow: 0 0.45rem 1rem rgba(45, 38, 30, 0.08);
    display: grid;
    gap: 0.36rem;
    margin: 0.08rem 0 0;
    max-width: 18rem;
    padding: 0.62rem 0.72rem;
    width: min(100%, 18rem);
}

#rs-panel-2 .rs-tour-price-breakdown[hidden] {
    display: none;
}

#rs-panel-2 .rs-tour-price-breakdown > div {
    align-items: baseline;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

#rs-panel-2 .rs-tour-price-breakdown span {
    color: #5f564f;
    font-size: 0.76rem;
    line-height: 1.18;
}

#rs-panel-2 .rs-tour-price-breakdown strong {
    color: #251f1b;
    font-size: 0.78rem;
    font-weight: 780;
    white-space: nowrap;
}

@media (max-width: 48rem) {
    #rs-panel-2 .rs-place-card .rs-pcard-head {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    #rs-panel-2 .rs-pcard-reserved-date {
        grid-column: 1 / -1;
        justify-self: start;
        white-space: normal;
    }

    #rs-panel-2 .rs-tour-price-breakdown {
        max-width: 100%;
        width: 100%;
    }
}

#rs-panel-2 .rs-finance-item.is-danger,
#rs-panel-2 .rs-finance-item.is-danger strong {
    color: #b42318;
}

#rs-panel-2 .rs-pcard-divider {
    border-top: 1px solid rgba(78, 61, 49, 0.12);
    margin-top: 0.34rem;
}

#rs-panel-2 .rs-pcard-footer {
    align-items: center;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 0.3rem;
    min-width: 0;
}

#rs-panel-2 .rs-pcard-footer-left {
    align-items: center;
    display: flex;
    gap: 0.42rem;
    min-width: 0;
}

#rs-panel-2 .rs-card-icon-action,
#rs-panel-2 .rs-participant-action {
    align-items: center;
    border: 1px solid rgba(73, 60, 49, 0.14);
    border-radius: 999rem;
    display: inline-flex;
    flex: 0 0 auto;
    height: 2.35rem;
    justify-content: center;
    min-height: 2.35rem;
    padding: 0;
    width: 2.35rem;
}

#rs-panel-2 .rs-slot-register-action {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(73, 60, 49, 0.14);
    border-radius: 999rem;
    color: #4a4038;
    display: inline-flex;
    flex: 0 1 auto;
    font-size: 0.76rem;
    font-weight: 850;
    gap: 0.34rem;
    min-height: 2.35rem;
    min-width: 0;
    padding: 0.48rem 0.72rem;
    text-decoration: none;
    white-space: nowrap;
}

#rs-panel-2 .rs-slot-register-action:hover,
#rs-panel-2 .rs-slot-register-action:focus-visible {
    background: #f5f1eb;
    color: #302824;
    outline: none;
}

#rs-panel-2 .rs-card-icon-action {
    background: #fff;
    color: #4a4038;
    text-decoration: none;
}

#rs-panel-2 .rs-card-icon-action:hover,
#rs-panel-2 .rs-card-icon-action:focus-visible {
    background: #f5f1eb;
    color: #302824;
    outline: none;
}

#rs-panel-2 .rs-pcard-quick-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.34rem;
    justify-content: flex-end;
    margin-top: 0;
    width: auto;
}

#rs-panel-2 .rs-participant-action span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

#rs-panel-2 .rs-participant-action--pay {
    background: #fff2ee;
    border-color: rgba(180, 35, 24, 0.24);
    color: #b42318;
}

#rs-panel-2 .rs-card-pending-info {
    color: #74675d;
    display: grid;
    font-size: 0.7rem;
    gap: 0.02rem;
    line-height: 1.14;
    min-width: 0;
}

#rs-panel-2 .rs-card-pending-info span {
    font-weight: 780;
}

#rs-panel-2 .rs-card-pending-info strong {
    color: #4c433d;
    font-weight: 680;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 30rem) {
    #rs-panel-2 .rs-place-card .rs-participant-item {
        grid-template-columns: auto minmax(0, 1fr);
        padding: 0.68rem !important;
    }

    #rs-panel-2 .rs-place-card .rs-participant-avatar {
        width: 2.15rem !important;
    }

    #rs-panel-2 .rs-pcard-footer {
        gap: 0.36rem;
    }

    #rs-panel-2 .rs-card-icon-action,
    #rs-panel-2 .rs-participant-action {
        height: 2.25rem;
        min-height: 2.25rem;
        width: 2.25rem;
    }

    #rs-panel-2 .rs-slot-register-action {
        min-height: 2.25rem;
        padding: 0.44rem 0.6rem;
    }

    #rs-panel-2 .rs-pcard-quick-actions {
        gap: 0.26rem;
    }
}

/* ── Scroll containment para modales scrollables ─────────────────────────
   Evita que el scroll del contenido del modal se propague al body.
   No modifica tamaño, centrado ni visual de ningún modal. */
.modal-dialog-scrollable .modal-body {
    overscroll-behavior: contain;
}

/* ── Énfasis temporal del bloque de método de pago seleccionado ──────── */
.rp-method-block.is-payment-method-options-highlighted {
    box-shadow: 0 0 0 2px #baa88d;
    border-radius: 0.35rem;
    transition: box-shadow 0.25s ease;
}

/* Participant view switch + extras/totals summary */
.rs-participant-view-switch {
    --rs-view-switch-bg: #3f3f3c;
    --rs-view-switch-active-bg: #d8d4cd;
    --rs-view-switch-color: #f5f1eb;
    --rs-view-switch-active-color: #2f302d;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: 0.15rem;
    width: clamp(18rem, 40vw, 32rem);
    max-width: 100%;
    min-height: 2.35rem;
    margin: 0.45rem auto 0.95rem;
    padding: 0.2rem;
    border: 0;
    border-radius: 999rem;
    background: var(--rs-view-switch-bg);
    box-shadow: none;
}

.rs-participant-view-switch::before {
    content: none;
}

.rs-participant-view-switch__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 2rem;
    min-height: 2rem;
    border: 0;
    border-radius: 999rem;
    background: transparent;
    color: var(--rs-view-switch-color);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    transition: background-color 160ms ease, color 160ms ease;
}

.rs-participant-view-switch__tab.is-active {
    background: var(--rs-view-switch-active-bg);
    color: var(--rs-view-switch-active-color);
}

.rs-participant-view-switch__tab > * {
    display: block;
    margin: 0;
    line-height: 1;
}

.rs-participant-view-switch__tab > i::before,
.rs-participant-view-switch__tab > .bi::before {
    display: block;
    line-height: 1;
    vertical-align: 0;
}

.rs-participant-view-switch__tab:focus-visible {
    outline: 2px solid rgba(216, 212, 205, 0.55);
    outline-offset: 0.15rem;
}

.rs-participant-costs-view {
    display: grid;
    gap: 0.85rem;
}

.rs-participant-costs-cards {
    display: none;
}

.rs-participant-cost-card {
    display: grid;
    gap: 0.7rem;
    padding: 0.82rem;
    border: 1px solid rgba(64, 74, 58, 0.13);
    border-radius: 0.68rem;
    background: #fff;
}

.rs-participant-cost-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.rs-participant-cost-card__head h5 {
    margin: 0;
    color: #2f342d;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1.18;
}

.rs-participant-cost-card__identity > div > span:not(.rs-participant-cost-card__leader) {
    color: #74675d;
    font-size: 0.72rem;
    font-weight: 750;
}

.rs-participant-cost-card__head strong {
    color: #2e6a52;
    font-size: 0.95rem;
    font-weight: 950;
    white-space: nowrap;
}

.rs-participant-cost-card__totals {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
    margin: 0;
}

.rs-participant-cost-card__totals div {
    display: grid;
    gap: 0.12rem;
    padding: 0.48rem;
    border-radius: 0.48rem;
    background: #f7f4ed;
}

.rs-participant-cost-card__totals dt {
    color: #74675d;
    font-size: 0.64rem;
    font-weight: 800;
}

.rs-participant-cost-card__totals dd {
    margin: 0;
    color: #2f342d;
    font-size: 0.78rem;
    font-weight: 900;
}

.rs-participant-cost-card__group {
    display: grid;
    gap: 0.36rem;
}

.rs-participant-cost-line {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.65rem;
    padding-top: 0.38rem;
    border-top: 1px solid rgba(64, 74, 58, 0.1);
    color: #3a3028;
    font-size: 0.8rem;
    line-height: 1.25;
}

.rs-participant-cost-line small {
    color: #74675d;
    font-weight: 750;
}

.rs-participant-cost-line strong {
    font-weight: 900;
    white-space: nowrap;
}

.rs-participant-cost-line--arrival strong {
    color: #8a6c30;
}

.rs-participant-cost-empty,
.rs-participant-costs-empty {
    margin: 0;
    color: #74675d;
    font-size: 0.76rem;
    font-weight: 700;
}

.rs-participant-costs-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid rgba(64, 74, 58, 0.12);
    border-radius: 0.68rem;
    background: #fff;
}

.rs-participant-costs-table {
    width: 100%;
    min-width: 46rem;
    border-collapse: collapse;
    color: #2f342d;
    font-size: 0.8rem;
}

.rs-participant-costs-table th,
.rs-participant-costs-table td {
    padding: 0.72rem 0.8rem;
    border-bottom: 1px solid rgba(64, 74, 58, 0.1);
    text-align: right;
    vertical-align: top;
    white-space: nowrap;
}

.rs-participant-costs-table th:first-child,
.rs-participant-costs-table td:first-child {
    text-align: left;
    white-space: normal;
}

.rs-participant-costs-table thead th {
    background: #f7f4ed;
    color: #5a514a;
    font-size: 0.68rem;
    font-weight: 900;
}

.rs-participant-costs-table tbody th span,
.rs-participant-costs-table tbody th small,
.rs-participant-costs-table td small {
    display: block;
}

.rs-participant-costs-table tbody th span {
    font-weight: 900;
}

.rs-participant-costs-table tbody tr:last-child th,
.rs-participant-costs-table tbody tr:last-child td {
    border-bottom: 0;
}

@media (max-width: 48rem) {
    .rs-participant-view-switch {
        width: min(100%, 26rem);
        margin: 0.15rem auto 0.75rem;
    }

    .rs-participant-costs-cards {
        display: grid;
        gap: 0.7rem;
    }

    .rs-participant-costs-table-wrap {
        display: none;
    }
}

@media (max-width: 26rem) {
    .rs-participant-cost-card__totals {
        grid-template-columns: 1fr;
    }
}

/* Third participant view: compact breakdown reference */
.rs-participant-costs-view {
    gap: 0.65rem;
}

.rs-participant-cost-card__totals,
.rs-participant-cost-empty,
.rs-participant-costs-table th:nth-child(6),
.rs-participant-costs-table td:nth-child(6) {
    display: none !important;
}

.rs-participant-costs-cards {
    display: grid;
    gap: 0.62rem;
}

.rs-participant-cost-card {
    gap: 0.38rem;
    padding: 0.72rem 0;
    border: 0;
    border-bottom: 1px solid rgba(64, 74, 58, 0.14);
    border-radius: 0;
    background: transparent;
}

.rs-participant-cost-card__head {
    align-items: center;
    gap: 0.55rem;
}

.rs-participant-cost-card__identity {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.rs-participant-cost-card__avatar {
    box-sizing: border-box;
    flex: 0 0 auto;
    inline-size: 2.15rem;
    block-size: 2.15rem;
    min-inline-size: 2.15rem;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 999rem;
    background: #f2eee8;
    line-height: 1;
}

.rs-participant-cost-card__avatar-icon {
    display: grid;
    place-items: center;
    inline-size: 1.05rem;
    block-size: 1.05rem;
    margin: 0;
    padding: 0;
    color: #6f665c;
    line-height: 1;
}

.rs-participant-cost-card__avatar-icon > *,
.rs-participant-cost-card__avatar-icon svg,
.rs-participant-cost-card__avatar-icon img,
.rs-participant-cost-card__avatar-icon i {
    display: block;
    inline-size: 100%;
    block-size: 100%;
    margin: 0;
    padding: 0;
    line-height: 1;
}

.rs-participant-cost-card__avatar-icon svg {
    fill: currentColor;
}

.rs-participant-cost-card__avatar-icon > i::before,
.rs-participant-cost-card__avatar-icon > .bi::before,
.rs-participant-cost-card__avatar-icon > .fa::before,
.rs-participant-cost-card__avatar-icon > .fas::before,
.rs-participant-cost-card__avatar-icon > .far::before {
    display: block;
    margin: 0;
    line-height: 1;
    vertical-align: 0;
}

.rs-participant-cost-card__avatar-icon img {
    max-inline-size: 100%;
    max-block-size: 100%;
    object-fit: contain;
}

.rs-participant-cost-card__leader {
    display: inline-flex;
    align-items: center;
    margin-right: 0.2rem;
    color: #b30e1c;
    font-size: 0.68rem;
}

.rs-participant-cost-card__label {
    display: block !important;
    margin: 0.22rem 0 0.08rem;
    color: #6f665d;
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1.15;
}

.rs-participant-cost-card__label small {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.rs-participant-cost-card__head h5 {
    display: inline;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.15;
}

.rs-participant-cost-card__identity > div > span:not(.rs-participant-cost-card__leader) {
    display: block;
    margin-top: 0.08rem;
    font-size: 0.68rem;
    line-height: 1.1;
}

.rs-participant-cost-card__head > strong {
    color: #2f342d;
    font-size: 0.92rem;
    font-weight: 600;
}

.rs-participant-cost-card__due {
    display: grid;
    justify-items: end;
    gap: 0.12rem;
    color: #2f342d;
}

.rs-participant-cost-card__due span {
    color: #7b746b;
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.rs-participant-cost-card__due strong {
    font-size: 0.92rem;
    font-weight: 600;
}

.rs-participant-cost-value {
    display: grid;
    justify-items: end;
    gap: 0.14rem;
    min-width: max-content;
    text-align: right;
}

.rs-participant-cost-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 1.12rem;
    padding: 0.14rem 0.42rem;
    border: 1px solid transparent;
    border-radius: 999rem;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
}

.rs-participant-cost-badge--success {
    border-color: rgba(46, 106, 82, 0.18);
    background: #eef6f0;
    color: #2e6a52;
}

.rs-participant-cost-badge--warning {
    border-color: rgba(147, 104, 35, 0.22);
    background: #fff6e3;
    color: #74511e;
}

.rs-participant-cost-badge--danger {
    border-color: rgba(179, 14, 28, 0.18);
    background: #fff0ef;
    color: #9b1c24;
}

.rs-participant-cost-badge--neutral {
    border-color: rgba(91, 82, 72, 0.14);
    background: #f5f2ed;
    color: #6b6258;
}

.rs-participant-cost-card__due .rs-participant-cost-badge,
.rs-participant-costs-global .rs-participant-cost-badge {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.rs-participant-cost-card__due .rs-participant-cost-badge--success,
.rs-participant-costs-global .rs-participant-cost-badge--success {
    color: #2e6a52;
}

.rs-participant-cost-card__due .rs-participant-cost-badge--danger,
.rs-participant-costs-global .rs-participant-cost-badge--danger {
    color: #9b1c24;
}

.rs-participant-cost-card__group {
    gap: 0;
    padding-left: 2.65rem;
}

.rs-participant-cost-line {
    min-height: 1.72rem;
    align-items: center;
    padding: 0.34rem 0;
    border-top: 1px solid rgba(64, 74, 58, 0.08);
    font-size: 0.8rem;
    font-weight: 400;
}

.rs-participant-cost-line strong {
    font-weight: 600;
}

.rs-participant-cost-line small {
    display: block;
    margin-top: 0.06rem;
    color: #7a736b;
    font-size: 0.68rem;
    font-weight: 400;
}

.rs-participant-cost-line--base {
    margin-left: 2.65rem;
}

.rs-participant-cost-line--arrival strong {
    color: #5f4a24;
}

.rs-participant-cost-line--muted {
    color: #6f6a63;
}

.rs-participant-cost-line--subtotal {
    color: #4f4a43;
    font-weight: 500;
}

.rs-participant-cost-line--total {
    margin-top: 0.1rem;
    border-top-color: rgba(77, 77, 74, 0.22);
    color: #2f342d;
    font-size: 0.86rem;
    font-weight: 600;
}

.rs-participant-costs-global {
    display: grid;
    justify-items: center;
    gap: 0.18rem;
    margin: 0.9rem 0 0.2rem;
    color: #2f342d;
    text-align: center;
}

.rs-participant-costs-global span {
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.rs-participant-costs-global strong {
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.1;
}

.rs-participant-costs-global > small {
    color: #706960;
    font-size: 0.72rem;
}

.rs-participant-costs-global__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 0.8rem;
    margin-top: 0.18rem;
    color: #6b645c;
}

.rs-participant-costs-global__meta span {
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0;
}

.rs-participant-costs-pay {
    display: flex;
    justify-content: center;
    margin-top: 0.7rem;
}

.rs-participant-costs-pay__button {
    min-width: 8.8rem;
    min-height: 2.5rem;
    padding: 0.62rem 1.5rem;
    border: 0;
    border-radius: 999rem;
    background: #b30e1c;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    box-shadow: 0 0.48rem 0.95rem rgba(179, 14, 28, 0.18);
}

.rs-participant-costs-pay__button:hover,
.rs-participant-costs-pay__button:focus-visible {
    background: #98101a;
    color: #fff;
}

.rs-participants-main[data-active-participant-view="costs"] > .rs-payment-cta {
    display: none;
}

.rs-participant-costs-table th,
.rs-participant-costs-table td,
.rs-participant-costs-table thead th,
.rs-participant-costs-table tbody th span,
.rs-participant-costs-table strong {
    font-weight: 600;
}

.rs-participant-costs-table .rs-participant-cost-badge {
    margin-top: 0.22rem;
    margin-left: auto;
}

.rs-participant-costs-table small,
.rs-participant-costs-table tbody th small {
    font-weight: 400;
}

@media (min-width: 48.01rem) {
    .rs-participant-costs-cards {
        display: none;
    }

    .rs-participant-costs-table-wrap {
        display: block;
    }
}

@media (max-width: 48rem) {
    .rs-participant-costs-table-wrap {
        display: none;
    }
}

/* Costs breakdown reference layout */
.rs-participants-main .rs-participant-view-switch {
    --rs-view-switch-bg: #3f3f32;
    --rs-view-switch-active-bg: #ebe6dc;
    --rs-view-switch-color: #f7f2e8;
    --rs-view-switch-active-color: #312d24;
    width: clamp(21rem, 42vw, 34rem);
    min-height: 2.65rem;
    margin: 0.55rem auto 1.25rem;
    padding: 0.24rem;
    gap: 0.22rem;
    border-radius: 0.55rem;
    background: var(--rs-view-switch-bg);
}

.rs-participants-main .rs-participant-view-switch__tab {
    min-height: 2.15rem;
    height: 2.15rem;
    border-radius: 0.42rem;
    color: var(--rs-view-switch-color);
    font-size: 1.02rem;
}

.rs-participants-main .rs-participant-view-switch__tab.is-active {
    background: var(--rs-view-switch-active-bg);
    color: var(--rs-view-switch-active-color);
}

.rs-participant-costs-view {
    width: min(100%, 70rem);
    margin-inline: auto;
    gap: 0.85rem;
}

.rs-participant-costs-table-wrap {
    width: min(100%, 66rem);
    margin-inline: auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid rgba(65, 63, 50, 0.18);
    border-radius: 0.72rem;
    background: #fffdf9;
    box-shadow: 0 0.7rem 1.8rem rgba(48, 40, 29, 0.07);
}

.rs-participant-costs-table {
    min-width: 58rem;
    border-collapse: separate;
    border-spacing: 0;
    color: #2f2b24;
    font-size: 0.78rem;
}

.rs-participant-costs-table thead th {
    padding: 0.68rem 0.78rem;
    border-bottom: 0;
    background: #3f3f32;
    color: #fffaf0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-align: right;
    white-space: normal;
}

.rs-participant-costs-table thead th:first-child {
    border-top-left-radius: 0.66rem;
    text-align: left;
}

.rs-participant-costs-table thead th:last-child {
    border-top-right-radius: 0.66rem;
}

.rs-participant-costs-table tbody th,
.rs-participant-costs-table tbody td {
    padding: 0.88rem 0.78rem;
    border-bottom: 1px solid rgba(65, 63, 50, 0.11);
    background: #fffdf9;
    text-align: right;
    vertical-align: top;
    white-space: normal;
}

.rs-participant-costs-table tbody th {
    width: 23%;
    text-align: left;
}

.rs-participant-costs-table tbody td:nth-child(2),
.rs-participant-costs-table tbody td:nth-child(5) {
    width: 15%;
}

.rs-participant-costs-table tbody td:nth-child(3),
.rs-participant-costs-table tbody td:nth-child(4) {
    width: 23.5%;
}

.rs-participant-costs-table tfoot th,
.rs-participant-costs-table tfoot td {
    padding: 0.8rem 0.78rem;
    border: 0;
    background: #f3eee4;
    color: #2f2b24;
    text-align: right;
    vertical-align: middle;
}

.rs-participant-costs-table tfoot th {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.rs-participant-costs-table tfoot td strong {
    font-size: 1rem;
}

.rs-cost-participant {
    display: flex;
    align-items: center;
    gap: 0.62rem;
    min-width: 0;
}

.rs-cost-participant__avatar {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    inline-size: 2.05rem;
    block-size: 2.05rem;
    border-radius: 999rem;
    background: #f1ece4;
    color: #70665a;
}

.rs-participant-costs-table .rs-cost-participant__avatar {
    display: grid;
}

.rs-cost-participant__avatar svg {
    display: block;
    inline-size: 1rem;
    block-size: 1rem;
    fill: currentColor;
}

.rs-cost-participant__copy {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
}

.rs-participant-costs-table .rs-cost-participant__copy {
    display: grid;
}

.rs-cost-participant__name {
    color: #2f2b24;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.15;
}

.rs-cost-participant__copy small {
    color: #7a7167;
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1.1;
}

.rs-cost-cell-stack,
.rs-cost-lines {
    display: grid;
    justify-items: end;
    gap: 0.28rem;
}

.rs-cost-cell-stack strong,
.rs-cost-line-item strong {
    color: #302b24;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
}

.rs-cost-cell-stack--total strong {
    font-size: 0.92rem;
}

.rs-cost-line-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 0.75rem;
    width: 100%;
    color: #3d362e;
    line-height: 1.2;
}

.rs-cost-line-item > span {
    min-width: 0;
    color: #50483f;
    font-size: 0.74rem;
    font-weight: 500;
    text-align: left;
}

.rs-cost-line-item small {
    display: inline;
    margin-left: 0.2rem;
    color: #8a8075;
    font-size: 0.66rem;
    font-weight: 500;
}

.rs-participant-costs-table .rs-cost-line-item small {
    display: inline;
}

.rs-cost-line-item--subtotal {
    margin-top: 0.08rem;
    padding-top: 0.28rem;
    border-top: 1px solid rgba(65, 63, 50, 0.12);
}

.rs-cost-line-item--subtotal > span,
.rs-cost-line-item--subtotal strong {
    font-weight: 700;
}

.rs-cost-dash {
    color: #988f85;
    font-size: 0.82rem;
    font-weight: 600;
}

.rs-participant-cost-badge {
    min-height: 1rem;
    padding: 0.11rem 0.34rem;
    border-radius: 0.34rem;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.rs-participant-cost-badge--success {
    border-color: rgba(59, 111, 82, 0.18);
    background: #eff6f1;
    color: #3b6f52;
}

.rs-participant-cost-badge--warning {
    border-color: rgba(141, 108, 55, 0.2);
    background: #fbf3df;
    color: #735525;
}

.rs-participant-cost-badge--danger {
    border-color: rgba(163, 58, 52, 0.18);
    background: #fbefeb;
    color: #993b35;
}

.rs-participant-cost-badge--neutral {
    border-color: rgba(91, 82, 72, 0.12);
    background: #f4f0e9;
    color: #746b61;
}

.rs-participant-costs-table .rs-participant-cost-badge {
    margin-top: 0.02rem;
    margin-left: auto;
}

.rs-participant-costs-pay {
    display: grid;
    justify-items: center;
    gap: 0.48rem;
    width: min(100%, 66rem);
    margin: 0.72rem auto 0;
    padding: 1.05rem clamp(1rem, 3vw, 1.5rem) 1.15rem;
    border-top: 0;
    border-radius: 0 0 0.72rem 0.72rem;
}

.rs-participant-costs-pay__hint {
    color: #6f665b;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.rs-participant-costs-pay__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: min(100%, 24rem);
    min-height: 3.05rem;
    padding: 0.82rem 1.75rem;
    border: 0;
    border-radius: 0.7rem;
    background: #b30e1c;
    color: #fff;
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1;
    box-shadow: 0 0.7rem 1.35rem rgba(179, 14, 28, 0.2);
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.rs-participant-costs-pay__button i {
    font-size: 1.05rem;
    line-height: 1;
}

.rs-participant-costs-pay__button:hover,
.rs-participant-costs-pay__button:focus-visible {
    background: #98101a;
    color: #fff;
    box-shadow: 0 0.9rem 1.65rem rgba(179, 14, 28, 0.24);
    transform: translateY(-0.04rem);
}

.rs-participant-costs-pay__button:active {
    box-shadow: 0 0.45rem 0.95rem rgba(179, 14, 28, 0.18);
    transform: translateY(0);
}

@media (max-width: 48rem) {
    .rs-participants-main .rs-participant-view-switch {
        width: min(100%, 25rem);
        margin-top: 0.2rem;
    }

    .rs-participant-costs-view {
        width: 100%;
    }

    .rs-participant-costs-pay {
        width: 100%;
        margin-top: 0.62rem;
        padding-inline: 0.85rem;
    }

    .rs-participant-costs-pay__button {
        width: 100%;
        min-height: 3rem;
    }
}
