.user-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font: 15px/1.2 "Jost";
}

/* ===== Header row: greeting + QR icon ===== */
.user-info__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.user-info__greeting {
    font: 600 16px/1.2 "Jost";
    color: var(--color-text-primary);
}

.user-info__qr {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    cursor: pointer;
}

/* ===== Membership row: tier + points ===== */
.user-info__membership {
    display: flex;
    gap: 16px;
}

.user-info__column {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.user-info__label {
    font: 400 13px/1 "Jost";
    color: var(--color-text-secondary);
}

.user-info__value {
    display: flex;
    align-items: center;
    gap: 4px;
    font: 600 20px/1.2 "Crimson Pro";
    color: var(--color-text-primary);
    text-decoration: none;
}

.user-info__tier-icon {
    width: 20px;
    height: 20px;
}

.user-info__tier-chevron {
    height: 10px;
    width: auto;
    margin-top: 3px;
}

/* ===== Bottom messages ===== */
.user-info__upgrade {
    font: 400 13px/1.3 "Jost";
    color: var(--color-olive);
}

.user-info__expiration {
    font: 400 13px/1.3 "Jost";
    color: var(--color-text-secondary);
}

/* ===== QR popup modal (tingle overrides) ===== */
.tingle-modal.tingle-modal--qr {
    background: rgba(0, 0, 0, 0.3);
    cursor: default;

    .tingle-modal-box {
        width: 100%;
        max-width: 360px;
        width: 100%;
        border-radius: 20px;
        overflow: hidden;
        padding: 0;
        background-color: var(--color-olive);
        cursor: auto;
    }

    .tingle-modal-box__content {
        padding: 0;
    }

    @media (max-width: 540px) {
        display: flex;
    }
}

.qr-popup {
    background-color: var(--color-olive);
    border-radius: 20px;
    overflow: hidden;

    &::after {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        height: calc(100% - 40px);
        width: 100%;
        background-image: url("/static/img/v2/logo-harvest-revamp-pattern.c88c6b9dc2a7.webp");
        background-repeat: repeat;
        background-size: 150px;
        z-index: 0;
        opacity: 0.2;
    }
}

.qr-popup__content {
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
}

.qr-popup__header {
    display: flex;
    justify-content: flex-end;
    padding: 16px 16px 0;
}

.qr-popup__close {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    line-height: 0;
}

.qr-popup__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 24px 24px;
    color: white;
}

.qr-popup__name {
    font: 700 20px/1.3 "Crimson Pro";
    text-align: center;
    margin: 0;
}

.qr-popup__phone {
    font: 400 13px/1.4 "Jost";
    text-align: center;
    margin: 0 0 12px;
}

.qr-popup__canvas-wrap {
    background: white;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
    line-height: 0;
}

.qr-popup__canvas {
    display: block;
}

.qr-popup__footer {
    background-color: var(--color-lavender);
    padding: 12px 24px;
    text-align: center;
    font: 400 12px/1.4 "Jost";
    color: white;
}
