.vxcart {
    font-family: var(--vx-font-family);
    width: 340px;
    max-width: 90vw;
    background: var(--vx-bg-card);
    color: var(--vx-text);
    border: 1px solid var(--vx-border);
    border-radius: var(--vx-radius);
    box-shadow: var(--vx-shadow-lg);
    overflow: hidden;
}
.vxcart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .9rem 1rem;
    border-bottom: 1px solid var(--vx-border);
}
.vxcart-title { font-weight: 600; font-size: .95rem; }
.vxcart-count { font-size: .8rem; color: var(--vx-text-3); }

.vxcart-body { max-height: 320px; overflow-y: auto; }

.vxcart-item {
    display: flex;
    gap: .7rem;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--vx-border);
}
.vxcart-item.is-removing { opacity: 0; transition: opacity .2s ease; }
.vxcart-item-img {
    width: 54px; height: 54px;
    flex: 0 0 auto;
    border-radius: var(--vx-radius);
    background: var(--vx-bg-hover);
    object-fit: cover;
}
.vxcart-item-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.vxcart-item-name {
    font-size: .85rem; line-height: 1.3; color: var(--vx-text);
    text-decoration: none;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
}
.vxcart-item-name:hover { color: var(--vx-primary); }
.vxcart-item-opts { font-size: .72rem; color: var(--vx-text-3); }
.vxcart-item-bottom {
    display: flex; align-items: center; justify-content: space-between; margin-top: .15rem;
}
.vxcart-qty {
    display: inline-flex; align-items: center;
    border: 1px solid var(--vx-border); border-radius: var(--vx-radius);
}
.vxcart-qty button {
    width: 24px; height: 24px;
    border: 0; background: none; color: var(--vx-text-2);
    cursor: pointer; font-size: .95rem; line-height: 1;
}
.vxcart-qty button:hover { background: var(--vx-bg-hover); }
.vxcart-qty input {
    width: 36px; height: 24px;
    border: 0; border-left: 1px solid var(--vx-border); border-right: 1px solid var(--vx-border);
    text-align: center; font-size: .8rem;
    background: var(--vx-bg-input); color: var(--vx-text);
    -moz-appearance: textfield;
}
.vxcart-qty input::-webkit-outer-spin-button,
.vxcart-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vxcart-item-price { font-size: .9rem; font-weight: 700; }

.vxcart-item-remove {
    border: 0; background: none; color: var(--vx-text-3);
    cursor: pointer; padding: 2px; align-self: flex-start;
}
.vxcart-item-remove:hover { color: var(--vx-danger); }

.vxcart-foot { padding: .9rem 1rem; border-top: 1px solid var(--vx-border); }
.vxcart-subtotal {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: .7rem;
}
.vxcart-subtotal span { font-size: .85rem; color: var(--vx-text-2); }
.vxcart-subtotal strong { font-size: 1.05rem; }
.vxcart-checkout { display: block; text-align: center; }

.vxcart-empty, .vxcart-loading {
    text-align: center; padding: 2rem 1rem;
    color: var(--vx-text-3); font-size: .9rem;
}
