.wishlist-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
    color: inherit;
    padding: 0;
}

.wishlist-button:focus-visible {
    outline: 2px solid rgba(0, 0, 0, 0.35);
    outline-offset: 4px;
}

.wishlist-button.is-loading {
    opacity: 0.65;
    cursor: wait;
}

.wishlist-button__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
}

.wishlist-button__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    transition: fill 0.25s ease, stroke 0.25s ease;
}

.wishlist-button__label {
    font-size: 0.875rem;
    font-weight: 500;
    transition: opacity 0.2s ease;
}

.wishlist-button__label--active {
    display: none;
}

.wishlist-button.is-active .wishlist-button__label--active {
    display: inline;
}

.wishlist-button.is-active [data-wishlist-label="inactive"] {
    display: none;
}

.wishlist-button.is-active .wishlist-button__icon svg {
    fill: #c71f3f;
    stroke: #c71f3f;
}

.wishlist-button--sm .wishlist-button__icon {
    width: 1.75rem;
    height: 1.75rem;
}

.wishlist-button--lg .wishlist-button__icon {
    width: 2.75rem;
    height: 2.75rem;
}

.wishlist-count-badge {
    position: absolute;
    top: -4px;
    right: -10px;
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: #c71f3f;
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.wishlist-count-badge.is-empty {
    opacity: 0;
    transform: scale(0.8);
}

.wishlist-floating-button {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
}

.auth-modal {
    border-radius: 16px;
    border: none;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.auth-modal__toggle {
    display: inline-flex;
    gap: 8px;
    background: #f5f5f5;
    padding: 4px;
    border-radius: 999px;
}

.auth-toggle-button {
    border: none;
    background: transparent;
    padding: 8px 18px;
    border-radius: 999px;
    font-weight: 600;
    color: #6c757d;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.auth-toggle-button.active {
    background: #c71f3f;
    color: #ffffff;
}

.auth-switch-link {
    font-weight: 600;
}

