/**
 * PC 商城页面
 */

.ls-mall-page {
    padding-top: 20px;
}

.ls-mall-category-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ls-mall-category-title > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ls-float-menu__item.ls-mall-float-action a {
    background: transparent;
    color: var(--ls-text-secondary);
    box-shadow: none;
}

.ls-float-menu__item.ls-mall-float-action.is-active a {
    background: transparent;
    color: var(--ls-text-secondary);
    box-shadow: none;
}

.ls-float-menu__item.ls-mall-float-action a:hover,
.ls-float-menu__item.ls-mall-float-action.is-active a:hover {
    background: var(--ls-bg-hover);
    color: var(--ls-primary);
    box-shadow: none;
}

.ls-float-menu__item.ls-mall-float-action .ls-mall-float-badge {
    top: 5px;
    right: 5px;
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    border: 1.5px solid var(--ls-bg-white);
    border-radius: 999px;
    font-size: 9px;
    line-height: 14px;
    box-shadow: 0 3px 8px rgba(239, 68, 68, .28);
    transform: translate(35%, -35%);
}

.ls-float-menu--style4 .ls-float-menu__item.ls-mall-float-action a {
    background: var(--ls-bg-white);
    color: var(--ls-text-secondary);
}

.ls-float-menu--style4 .ls-float-menu__item.ls-mall-float-action.is-active a {
    background: var(--ls-bg-white);
    color: var(--ls-text-secondary);
}

.ls-float-menu--style4 .ls-float-menu__item.ls-mall-float-action a:hover,
.ls-float-menu--style4 .ls-float-menu__item.ls-mall-float-action.is-active a:hover {
    background: var(--ls-bg-hover);
    color: var(--ls-primary);
}

.ls-mall-cart-page {
    width: 100%;
}

.ls-mall-cart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ls-mall-cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 16px;
    align-items: start;
}

.ls-mall-cart-list {
    display: grid;
    gap: 14px;
}

.ls-mall-cart-store {
    padding: 0;
    overflow: hidden;
}

.ls-mall-cart-store-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ls-border, #e5e7eb);
    background: #f8fafc;
}

.ls-mall-cart-store-head label,
.ls-mall-cart-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ls-mall-cart-store-head span {
    font-weight: 700;
    color: #111827;
}

.ls-mall-cart-store-head a {
    color: #2563eb;
    font-size: 13px;
}

.ls-mall-cart-store-select,
.ls-mall-cart-select {
    appearance: none;
    -webkit-appearance: none;
    display: inline-block;
    width: 18px;
    min-width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    border: 1.5px solid #cbd5e1;
    border-radius: 999px;
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 10px 10px;
    box-sizing: border-box;
    cursor: pointer;
    vertical-align: middle;
}

.ls-mall-cart-store-select:checked,
.ls-mall-cart-select:checked {
    border-color: var(--ls-primary, #2563eb);
    background-color: var(--ls-primary, #2563eb);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.2 8.2l3 3.1 6.6-6.8'/%3E%3C/svg%3E");
}

.ls-mall-cart-store-select:disabled,
.ls-mall-cart-select:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.ls-mall-cart-item {
    display: grid;
    grid-template-columns: 28px 96px minmax(0, 1fr) 108px 132px 128px;
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-bottom: 1px solid #eef2f7;
}

.ls-mall-cart-item:last-child {
    border-bottom: 0;
}

.ls-mall-cart-item.is-disabled {
    opacity: .68;
}

.ls-mall-cart-cover {
    width: 96px;
    height: 72px;
    border-radius: 8px;
    overflow: hidden;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
}

.ls-mall-cart-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-cart-info {
    min-width: 0;
    display: grid;
    gap: 6px;
}

.ls-mall-cart-title {
    color: #111827;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-cart-sku,
.ls-mall-cart-stock {
    color: #64748b;
    font-size: 13px;
}

.ls-mall-cart-freight {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    max-width: 100%;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(15, 118, 110, .08);
    color: #0f766e;
    font-size: 12px;
    line-height: 1.35;
}

.ls-mall-cart-freight i {
    font-size: 13px;
}

.ls-mall-cart-warning {
    color: #ef4444;
    font-size: 13px;
}

.ls-mall-cart-price,
.ls-mall-cart-total {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.ls-mall-cart-price {
    justify-items: start;
}

.ls-mall-cart-total {
    justify-items: end;
    text-align: right;
}

.ls-mall-cart-price span,
.ls-mall-cart-total span {
    color: #94a3b8;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
}

.ls-mall-cart-price strong,
.ls-mall-cart-total strong {
    line-height: 1.15;
    white-space: nowrap;
}

.ls-mall-cart-price strong {
    color: #334155;
    font-size: 14px;
    font-weight: 700;
}

.ls-mall-cart-total strong {
    color: #ef4444;
    font-size: 17px;
    font-weight: 800;
}

.ls-mall-cart-price del {
    color: #94a3b8;
    font-size: 12px;
}

.ls-mall-cart-qty {
    display: grid;
    grid-template-columns: 34px 56px 34px;
    height: 36px;
    border: 1px solid #dbe3ef;
    border-radius: 8px;
    overflow: hidden;
}

.ls-mall-cart-qty button,
.ls-mall-cart-qty input {
    border: 0;
    background: #fff;
    text-align: center;
    color: #111827;
}

.ls-mall-cart-qty button {
    cursor: pointer;
    font-size: 17px;
}

.ls-mall-cart-qty button:disabled,
.ls-mall-cart-qty input:disabled {
    color: #cbd5e1;
    cursor: not-allowed;
}

.ls-mall-cart-qty input {
    border-left: 1px solid #dbe3ef;
    border-right: 1px solid #dbe3ef;
    width: 56px;
}

.ls-mall-cart-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 54px;
    height: 24px;
    padding: 0 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.ls-mall-cart-delete i {
    font-size: 13px;
}

.ls-mall-cart-delete em {
    font-style: normal;
}

.ls-mall-cart-delete:hover {
    border-color: rgba(239, 68, 68, .2);
    background: #fef2f2;
    color: #ef4444;
}

.ls-mall-cart-summary {
    position: sticky;
    top: 86px;
    display: grid;
    gap: 14px;
}

.ls-mall-cart-summary h3 {
    margin: 0;
    font-size: 18px;
    color: #111827;
}

.ls-mall-cart-summary p,
.ls-mall-cart-summary div {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #64748b;
}

.ls-mall-cart-summary strong {
    color: #ef4444;
    font-size: 24px;
}

.ls-mall-cart-checkout {
    height: 42px;
    border: 0;
    border-radius: 8px;
    background: #ef4444;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}

.ls-mall-cart-checkout:disabled {
    background: #cbd5e1;
    cursor: not-allowed;
}

.ls-mall-cart-summary em {
    color: #94a3b8;
    font-size: 12px;
    font-style: normal;
    line-height: 1.6;
}

.ls-mall-coupon-mode-field {
    display: grid;
    gap: 6px;
    margin: 0;
}

.ls-mall-coupon-mode-field > span {
    color: #64748b;
    font-size: 13px;
}

.ls-mall-coupon-mode-field select {
    width: 100%;
    height: 38px;
    min-width: 0;
    padding: 0 34px 0 10px;
    border: 1px solid #dbe3ef;
    border-radius: 8px;
    outline: 0;
    background: #fff;
    color: #334155;
    font-size: 13px;
}

.ls-mall-coupon-mode-field select:focus {
    border-color: var(--ls-primary);
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb), .12);
}

.ls-mall-cart-empty {
    text-align: center;
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 48px 24px;
}

.ls-mall-cart-empty i {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: #eff6ff;
    color: #2563eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
}

.ls-mall-recommend-section {
    margin-top: 16px;
}

.ls-mall-cart-page .ls-mall-recommend-section,
.ls-mall-pay-result-page .ls-mall-recommend-section {
    grid-column: 1 / -1;
}

@media (max-width: 900px) {
    .ls-mall-cart-layout {
        grid-template-columns: 1fr;
    }

    .ls-mall-cart-summary {
        position: static;
    }

    .ls-mall-cart-item {
        grid-template-columns: 28px 82px minmax(0, 1fr);
    }

    .ls-mall-cart-price,
    .ls-mall-cart-qty,
    .ls-mall-cart-total {
        grid-column: 3;
    }

    .ls-mall-cart-total {
        justify-items: start;
        text-align: left;
    }
}

.ls-mall-checkout-page {
    width: 100%;
}

.ls-mall-checkout-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ls-mall-checkout-head h2,
.ls-mall-checkout-main h3,
.ls-mall-checkout-summary h3 {
    margin: 0;
    color: #111827;
}

.ls-mall-checkout-head p {
    margin: 6px 0 0;
    color: #64748b;
}

.ls-mall-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 16px;
    align-items: start;
}

.ls-mall-checkout-main {
    display: grid;
    gap: 18px;
}

.ls-mall-checkout-items {
    display: grid;
    gap: 10px;
}

.ls-mall-checkout-item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid #edf1f6;
    border-radius: 8px;
    background: #fbfcfe;
}

.ls-mall-checkout-item > span {
    width: 72px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: #f1f5f9;
    color: #94a3b8;
}

.ls-mall-checkout-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-checkout-item strong {
    display: block;
    color: #111827;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-checkout-item em,
.ls-mall-checkout-item p {
    display: block;
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
    font-style: normal;
}

.ls-mall-checkout-item-coupon,
.ls-mall-checkout-item-freight {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    width: fit-content;
    max-width: 100%;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(239, 68, 68, .08);
    color: #ef4444 !important;
    font-size: 12px !important;
    line-height: 1.35;
}

.ls-mall-checkout-item-coupon i,
.ls-mall-checkout-item-coupon span,
.ls-mall-checkout-item-freight i,
.ls-mall-checkout-item-freight span {
    min-width: 0;
}

.ls-mall-checkout-item-coupon span,
.ls-mall-checkout-item-freight span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-checkout-item-coupon.is-claimable {
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary) !important;
}

.ls-mall-checkout-item-freight {
    background: rgba(15, 118, 110, .08);
    color: #0f766e !important;
}

.ls-mall-checkout-item b {
    color: #ef4444;
    white-space: nowrap;
}

.ls-mall-checkout-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-checkout-form label,
.ls-mall-checkout-form .ls-mall-buy-region {
    min-width: 0;
}

.ls-mall-checkout-form label span,
.ls-mall-checkout-form .ls-mall-buy-region > label span {
    display: block;
    margin-bottom: 6px;
    color: #475569;
    font-size: 13px;
}

.ls-mall-checkout-form input,
.ls-mall-checkout-form select,
.ls-mall-checkout-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #dbe3ef;
    border-radius: 8px;
    background: #fff;
    color: #111827;
}

.ls-mall-checkout-form input,
.ls-mall-checkout-form select {
    height: 40px;
    padding: 0 12px;
}

.ls-mall-checkout-form textarea {
    min-height: 88px;
    padding: 10px 12px;
    resize: vertical;
}

.ls-mall-checkout-form .is-wide,
.ls-mall-checkout-form .ls-mall-buy-region {
    grid-column: 1 / -1;
}

.ls-mall-invoice-fields {
    margin-bottom: 4px;
}

.ls-mall-checkout-form .ls-mall-buy-region {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-checkout-form .ls-mall-buy-region .is-wide {
    grid-column: 1 / -1;
}

.ls-mall-checkout-summary {
    position: sticky;
    top: 86px;
    display: grid;
    gap: 14px;
}

.ls-mall-checkout-summary > p,
.ls-mall-checkout-payable-row {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #64748b;
}

.ls-mall-checkout-payable-row strong {
    color: #ef4444;
    font-size: 26px;
}

.ls-mall-summary-discount b {
    color: #ef4444;
}

.ls-mall-summary-discount-value {
    min-width: 0;
    display: grid;
    justify-items: end;
    gap: 2px;
    text-align: right;
}

.ls-mall-summary-discount-value em {
    max-width: 168px;
    overflow: hidden;
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-summary-discount-value i {
    color: #ef4444;
    font-style: normal;
    font-weight: 700;
}

.ls-mall-summary-points b {
    color: var(--ls-primary);
}

.ls-mall-checkout-coupon-summary {
    display: grid;
    gap: 8px;
    margin: 0;
}

.ls-mall-order-coupon {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(239, 68, 68, .16);
    border-radius: 8px;
    background: rgba(239, 68, 68, .05);
}

.ls-mall-order-coupon > i {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: #fff;
    color: #ef4444;
    font-size: 16px;
}

.ls-mall-order-coupon > div {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.ls-mall-order-coupon strong {
    color: #111827;
    font-size: 13px;
}

.ls-mall-order-coupon span {
    overflow: hidden;
    color: #64748b;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-order-coupon-action {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    white-space: nowrap;
}

.ls-mall-order-coupon b {
    color: #ef4444;
    font-size: 13px;
    white-space: nowrap;
}

.ls-mall-order-coupon-claim {
    height: 30px;
    padding: 0 10px;
    border: 1px solid var(--ls-primary);
    border-radius: 7px;
    background: var(--ls-primary);
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.ls-mall-order-coupon-claim:disabled {
    cursor: not-allowed;
    opacity: .65;
}

.ls-mall-order-coupon.is-claimable {
    border-color: rgba(var(--ls-primary-rgb), .16);
    background: rgba(var(--ls-primary-rgb), .05);
}

.ls-mall-order-coupon.is-claimable > i,
.ls-mall-order-coupon.is-claimable b {
    color: var(--ls-primary);
}

.ls-mall-checkout-coupon-summary > em {
    color: #94a3b8;
    font-size: 12px;
    font-style: normal;
}

.ls-mall-checkout-submit {
    height: 42px;
    border: 0;
    border-radius: 8px;
    background: #ef4444;
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}

.ls-mall-checkout-summary em {
    color: #94a3b8;
    font-size: 12px;
    font-style: normal;
    line-height: 1.6;
}

.ls-mall-checkout-summary .ls-mall-use-points {
    width: 100%;
    align-items: flex-start;
    padding: 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .16);
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .05);
}

.ls-mall-use-points span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.ls-mall-use-points b {
    color: #1f2937;
    font-weight: 700;
}

.ls-mall-use-points em {
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    line-height: 1.5;
}

.ls-mall-checkout-page .ls-mall-pay-channels {
    margin-top: 2px;
}

.ls-mall-pay-result-page {
    width: 100%;
    max-width: 1280px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    margin: 0 auto;
    padding: 24px 0 40px;
}

.ls-mall-pay-result {
    width: 100%;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    grid-template-areas:
        "icon title actions"
        "icon desc actions"
        "meta meta meta";
    align-items: center;
    justify-items: stretch;
    gap: 8px 18px;
    padding: 28px 32px;
    text-align: left;
}

.ls-mall-pay-result > i {
    grid-area: icon;
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 34px;
}

.ls-mall-pay-result.is-success > i {
    background: #dcfce7;
    color: #16a34a;
}

.ls-mall-pay-result.is-failed > i {
    background: #fee2e2;
    color: #ef4444;
}

.ls-mall-pay-result h2 {
    grid-area: title;
    margin: 0;
    color: #111827;
    font-size: 25px;
    line-height: 1.28;
}

.ls-mall-pay-result p {
    grid-area: desc;
    margin: 0;
    color: #64748b;
    line-height: 1.7;
}

.ls-mall-pay-result-meta {
    grid-area: meta;
    width: 100%;
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.ls-mall-pay-result-meta:empty {
    display: none;
}

.ls-mall-pay-result-meta span {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
    text-align: left;
}

.ls-mall-pay-result-meta b {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 600;
}

.ls-mall-pay-result-meta em {
    min-width: 0;
    overflow: hidden;
    color: #1f2937;
    font-size: 13px;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-pay-result-actions {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    min-width: max-content;
}

.ls-mall-pay-result-page .ls-mall-recommend-section {
    margin-top: 0;
}

@media (max-width: 760px) {
    .ls-mall-pay-result {
        grid-template-columns: 1fr;
        grid-template-areas:
            "icon"
            "title"
            "desc"
            "meta"
            "actions";
        justify-items: center;
        padding: 28px 18px;
        text-align: center;
    }

    .ls-mall-pay-result-actions {
        justify-content: center;
        min-width: 0;
    }

    .ls-mall-pay-result-meta span {
        grid-template-columns: 1fr;
        gap: 4px;
        text-align: center;
    }

    .ls-mall-pay-result-meta em {
        white-space: normal;
        word-break: break-all;
    }
}

@media (max-width: 900px) {
    .ls-mall-checkout-layout,
    .ls-mall-checkout-form,
    .ls-mall-checkout-form .ls-mall-buy-region {
        grid-template-columns: 1fr;
    }

    .ls-mall-checkout-summary {
        position: static;
    }

    .ls-mall-checkout-item {
        grid-template-columns: 64px minmax(0, 1fr);
    }

    .ls-mall-checkout-item b {
        grid-column: 2;
    }
}

.ls-mall-page h1,
.ls-mall-page h2,
.ls-mall-page h3,
.ls-mall-page strong,
.ls-mall-page b {
    font-weight: 400;
}

.ls-mall-card,
.ls-mall-aside-card {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
}

.ls-mall-status-icon {
    width: 50px;
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-mall-status-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.ls-mall-status-icon i {
    font-size: 27px;
}

.ls-mall-wallet-link,
.ls-mall-apply-btn,
.ls-mall-shop-favorite,
.ls-mall-shop-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 40px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 14px;
    cursor: pointer;
    white-space: nowrap;
    transition: background .16s, color .16s, border-color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-wallet-link {
    padding: 0 18px;
}

button.ls-mall-wallet-link {
    font-family: inherit;
}

.ls-mall-shop-contact {
    padding: 0 18px;
    text-decoration: none;
}

.ls-mall-shop-favorite {
    padding: 0 16px;
    font-family: inherit;
}

.ls-mall-shop-favorite.is-active {
    border-color: rgba(239, 68, 68, .28);
    color: #ef4444;
    background: #fff5f5;
}

.ls-mall-wallet-link:hover,
.ls-mall-shop-favorite:hover,
.ls-mall-shop-contact:hover {
    border-color: rgba(var(--ls-primary-rgb), .55);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.ls-mall-shop-favorite.is-active:hover {
    border-color: rgba(239, 68, 68, .42);
    color: #ef4444;
    background: #fff5f5;
}

.ls-mall-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 16px;
}

.ls-mall-shell.is-market {
    grid-template-columns: minmax(0, 1fr);
}

.ls-mall-shell.is-seller,
.ls-mall-shell.is-product-form {
    grid-template-columns: minmax(0, 1fr);
}

.ls-mall-shell.is-market .ls-mall-aside,
.ls-mall-shell.is-seller .ls-mall-aside,
.ls-mall-shell.is-product-form .ls-mall-aside {
    display: none;
}

.ls-mall-main,
.ls-mall-aside {
    min-width: 0;
}

.ls-mall-shop-hero {
    position: relative;
    display: grid;
    grid-template-columns: 242px minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.ls-mall-category-panel,
.ls-mall-hero-board {
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-category-panel {
    position: relative;
    z-index: 12;
}

.ls-mall-category-title {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 48px;
    padding: 0 16px;
    border-bottom: 1px solid var(--ls-border-light);
    color: var(--ls-text);
    font-size: 15px;
    font-weight: 400;
}

.ls-mall-category-title i {
    color: var(--ls-primary);
}

.ls-mall-category-list {
    display: grid;
    padding: 8px;
}

.ls-mall-category-link {
    position: relative;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
    min-height: 58px;
    padding: 9px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--ls-text);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background .16s, color .16s;
}

.ls-mall-category-link::after {
    content: "›";
    position: absolute;
    top: 50%;
    right: 10px;
    color: var(--ls-border);
    font-size: 18px;
    line-height: 1;
    transform: translateY(-50%);
    transition: color .16s, transform .16s;
}

.ls-mall-category-link:hover,
.ls-mall-category-link.active {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-category-link:hover::after,
.ls-mall-category-link.active::after {
    color: var(--ls-primary);
    transform: translate(2px, -50%);
}

.ls-mall-category-prefix {
    grid-row: 1 / 3;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 16px;
    overflow: hidden;
}

.ls-mall-category-prefix img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-category-name {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
}

.ls-mall-category-link em {
    overflow: hidden;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-category-flyout {
    position: absolute;
    top: 0;
    right: 0;
    bottom: auto;
    left: 258px;
    z-index: 11;
    height: 356px;
    min-height: 356px;
    max-height: calc(100vh - 140px);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .16);
    opacity: 0;
    pointer-events: none;
    transform: translateX(-8px);
    transition: opacity .18s ease, transform .18s ease;
}

.ls-mall-category-flyout.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

.ls-mall-category-flyout-panel {
    display: none;
    height: 100%;
    overflow: auto;
    padding: 28px 34px;
    scrollbar-width: thin;
    scrollbar-color: var(--ls-border) transparent;
}

.ls-mall-category-flyout-panel.active {
    display: block;
}

.ls-mall-category-flyout-panel::-webkit-scrollbar {
    width: 6px;
}

.ls-mall-category-flyout-panel::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: var(--ls-border);
}

.ls-mall-category-flyout-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-category-flyout-head span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ls-text);
    font-size: 20px;
    font-weight: 400;
}

.ls-mall-category-flyout-head i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 20px;
}

.ls-mall-category-flyout-head em {
    max-width: 420px;
    color: var(--ls-text-secondary);
    font-size: 13px;
    font-style: normal;
    line-height: 1.7;
}

.ls-mall-category-flyout-groups {
    display: grid;
    gap: 26px;
}

.ls-mall-category-flyout-groups section {
    min-width: 0;
}

.ls-mall-category-flyout-groups h3 {
    margin: 0 0 14px;
    color: var(--ls-text);
    font-size: 18px;
    font-weight: 400;
}

.ls-mall-category-flyout-groups section > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 32px;
}

.ls-mall-category-flyout-item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    min-width: 0;
    height: 44px;
    gap: 12px;
    padding: 4px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--ls-text-secondary);
    font-size: 13px;
    text-align: left;
    cursor: pointer;
    transition: background .16s, color .16s, transform .16s;
}

.ls-mall-category-flyout-item:hover {
    background: var(--ls-bg);
    color: var(--ls-primary);
    transform: translateX(2px);
}

.ls-mall-category-flyout-thumb {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    overflow: hidden;
    border-radius: 5px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 18px;
}

.ls-mall-category-flyout-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-category-flyout-name {
    overflow: hidden;
    color: inherit;
    font-size: 14px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 商城首页轮播内部跟随左侧分类栏高度，避免后台增加分类后底部露出空白卡片。 */
.ls-mall-hero-board {
    position: relative;
    display: flex;
    min-height: 356px;
    background: var(--ls-card-bg);
}

.ls-mall-manage-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 40px;
    padding: 0 18px;
    border: 0;
    border-radius: 6px;
    background: var(--ls-text);
    color: var(--ls-card-bg);
    font-size: 14px;
    cursor: pointer;
    transition: background .16s, transform .16s, box-shadow .16s;
}

.ls-mall-hero-slides {
    position: relative;
    flex: 1 1 auto;
    overflow: hidden;
    width: 100%;
    min-height: 356px;
    border-radius: 8px;
}

.ls-mall-hero-slide {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44%;
    align-items: stretch;
    opacity: 0;
    pointer-events: none;
    transform: scale(1.015);
    transition: opacity .4s ease, transform .45s ease;
}

.ls-mall-hero-slide.has-image {
    grid-template-columns: 1fr;
}

.ls-mall-banner-image {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-hero-slide.has-image::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .46) 42%, rgba(255, 255, 255, .05) 100%);
    pointer-events: none;
}

.ls-mall-hero-slide.active {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
    z-index: 1;
    cursor: pointer;
}

.ls-mall-banner-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: 44px 48px 54px 68px;
}

.ls-mall-hero-slide.has-image .ls-mall-banner-copy {
    width: min(60%, 600px);
    height: 100%;
}

.ls-mall-banner-copy > span {
    height: 28px;
    color: var(--ls-success);
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.ls-mall-banner-copy h2 {
    max-width: 520px;
    margin: 16px 0 0;
    color: var(--ls-text);
    font-size: 38px;
    line-height: 1.12;
    letter-spacing: 0;
}

.ls-mall-banner-copy p {
    max-width: 430px;
    margin: 14px 0 0;
    color: var(--ls-text-secondary);
    font-size: 14px;
    line-height: 1.8;
}

.ls-mall-banner-target {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 130px;
    height: 42px;
    margin-top: 24px;
    padding: 0 22px;
    border: 0;
    border-radius: 4px;
    background: var(--ls-text);
    color: var(--ls-card-bg);
    font-size: 14px;
    cursor: pointer;
    transition: background .16s, transform .16s, box-shadow .16s;
}

.ls-mall-banner-target:hover {
    background: var(--ls-primary);
    box-shadow: 0 14px 28px rgba(var(--ls-primary-rgb), .2);
    transform: translateY(-1px);
}

.ls-mall-banner-visual {
    position: relative;
    z-index: 1;
    overflow: hidden;
    min-width: 0;
    border-left: 1px solid rgba(255, 255, 255, .46);
    background: linear-gradient(145deg, rgba(255, 255, 255, .42), rgba(255, 255, 255, .08));
}

.ls-mall-banner-visual.has-image {
    background: transparent;
}

.ls-mall-banner-visual.has-image .ls-mall-banner-product {
    display: none;
}

.ls-mall-hero-slide::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, .74) 44%, rgba(255, 255, 255, .24) 100%),
        radial-gradient(circle at 76% 28%, rgba(255, 255, 255, .55), transparent 28%),
        linear-gradient(135deg, var(--ls-primary-light) 0%, var(--ls-success-light) 100%);
}

.ls-mall-hero-slide.has-image::before {
    display: none;
}

.ls-mall-hero-slide .ls-mall-banner-visual.is-digital {
    background: transparent;
}

.ls-mall-hero-slide .ls-mall-banner-visual.is-life {
    background: transparent;
}

.ls-mall-hero-slide .ls-mall-banner-visual.is-service {
    background: transparent;
}

.ls-mall-hero-slide.has-image .ls-mall-banner-visual,
.ls-mall-hero-slide.has-image .ls-mall-banner-visual.is-digital,
.ls-mall-hero-slide.has-image .ls-mall-banner-visual.is-life,
.ls-mall-hero-slide.has-image .ls-mall-banner-visual.is-service {
    border-left: 0;
    background: transparent;
}

.ls-mall-banner-product {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: rgba(255, 255, 255, .74);
    box-shadow: 0 30px 70px rgba(15, 23, 42, .16);
    backdrop-filter: blur(14px);
}

.ls-mall-banner-product i {
    color: var(--ls-primary);
    font-size: 58px;
}

.ls-mall-banner-product.is-main {
    right: 62px;
    top: 66px;
    width: 158px;
    height: 178px;
}

.ls-mall-banner-product.is-sub {
    right: 218px;
    bottom: 58px;
    width: 94px;
    height: 94px;
}

.ls-mall-banner-product.is-sub i {
    color: var(--ls-success);
    font-size: 38px;
}

.ls-mall-hero-nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 54px;
    border: 0;
    border-radius: 4px;
    background: rgba(255, 255, 255, .82);
    color: var(--ls-primary);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) scale(.96);
    transition: background .16s, color .16s, opacity .16s, transform .16s;
}

.ls-mall-hero-slides:hover .ls-mall-hero-nav,
.ls-mall-hero-nav:hover {
    background: var(--ls-card-bg);
    color: var(--ls-primary);
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) scale(1);
}

.ls-mall-hero-nav:focus-visible {
    background: var(--ls-card-bg);
    color: var(--ls-primary);
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) scale(1);
    outline: none;
}

.ls-mall-hero-nav i {
    font-size: 26px;
}

.ls-mall-hero-nav.is-prev {
    left: 14px;
}

.ls-mall-hero-nav.is-next {
    right: 14px;
}

.ls-mall-hero-dots {
    position: absolute;
    right: 32px;
    bottom: 26px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ls-mall-hero-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, .22);
    cursor: pointer;
    transition: width .16s, background .16s;
}

.ls-mall-hero-dot.active {
    width: 24px;
    background: var(--ls-primary);
}

.ls-mall-service-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: stretch;
    gap: 0;
    height: 84px;
    margin: 16px 0 22px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

.ls-mall-service-item,
.ls-mall-category-flyout-item,
.ls-mall-promo-card,
.ls-mall-hot-product,
.ls-mall-floor-more,
.ls-mall-floor-hero,
.ls-mall-floor-product,
.ls-mall-mosaic-feature,
.ls-mall-category-image-card,
.ls-mall-category-product,
.ls-mall-wide-ad,
.ls-mall-store-card {
    color: inherit;
    text-decoration: none;
}

.ls-mall-service-item {
    min-width: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0;
    padding: 0 20px;
    border: 0;
    border-right: 1px solid var(--ls-border-light);
    background: transparent;
    color: var(--ls-text);
    text-align: left;
}

.ls-mall-service-item {
    cursor: pointer;
    transition: background .16s, transform .16s;
}

.ls-mall-service-item > span:last-child {
    min-height: 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ls-mall-service-item:last-child {
    border-right: 0;
}

.ls-mall-service-item:hover {
    background: var(--ls-bg);
    transform: translateY(-1px);
}

.ls-mall-service-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 22px;
}

.ls-mall-service-icon.has-image {
    width: 64px;
    height: 48px;
    border-radius: 5px;
    background: transparent;
}

.ls-mall-service-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.ls-mall-service-icon.is-orange {
    background: var(--ls-warning-light);
    color: var(--ls-warning);
}

.ls-mall-service-icon.is-blue {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-service-icon.is-violet {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-service-icon.is-purple {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-service-item b {
    display: block;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 15px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-service-item em {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-promo-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 54px;
}

.ls-mall-promo-card {
    position: relative;
    min-height: 154px;
    overflow: hidden;
    border: 0;
    border-radius: 4px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    text-align: left;
    cursor: pointer;
}

.ls-mall-promo-card::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 32%, rgba(255, 255, 255, .86) 100%);
    pointer-events: none;
}

.ls-mall-promo-card.is-mint {
    background: var(--ls-card-bg);
}

.ls-mall-promo-card.is-cream {
    background: var(--ls-card-bg);
}

.ls-mall-promo-card.is-pink {
    background: var(--ls-card-bg);
}

.ls-mall-promo-card.is-blue {
    background: var(--ls-card-bg);
}

.ls-mall-promo-copy {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    display: block;
    padding: 14px 16px 13px;
}

.ls-mall-promo-card strong {
    display: block;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 17px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-promo-card em {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-promo-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    transition: transform .18s;
}

.ls-mall-promo-card:hover img {
    transform: scale(1.04);
}

.ls-mall-static-section,
.ls-mall-floor-section {
    margin-bottom: 58px;
}

.ls-mall-discovery {
    margin-bottom: 42px;
}

.ls-mall-catalog-page {
    display: grid;
    gap: 16px;
}

.ls-mall-catalog-head {
    display: grid;
    gap: 16px;
}

.ls-mall-catalog-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.ls-mall-catalog-title h2 {
    margin: 0;
    color: var(--ls-text);
    font-size: 24px;
    line-height: 1.35;
}

.ls-mall-catalog-title p {
    margin: 8px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.7;
}

.ls-mall-catalog-controls {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 190px 170px auto auto;
    gap: 12px;
    align-items: end;
}

.ls-mall-catalog-controls label {
    display: grid;
    gap: 6px;
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-catalog-controls input,
.ls-mall-catalog-controls select {
    width: 100%;
    height: 38px;
    box-sizing: border-box;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 13px;
    outline: none;
}

.ls-mall-catalog-controls input {
    padding: 0 12px;
}

.ls-mall-catalog-controls select {
    padding: 0 10px;
}

.ls-mall-catalog-controls input:focus,
.ls-mall-catalog-controls select:focus {
    border-color: rgba(var(--ls-primary-rgb), .65);
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb), .1);
}

.ls-mall-catalog-search-btn {
    align-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 38px;
    padding: 0 16px;
    border: 0;
    border-radius: 6px;
    background: var(--ls-text);
    color: var(--ls-card-bg);
    cursor: pointer;
}

.ls-mall-catalog-clear {
    align-self: end;
    height: 38px;
    padding: 0 14px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-catalog-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-catalog-chips a {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    font-size: 13px;
    text-decoration: none;
    transition: border-color .16s, color .16s, background .16s, transform .16s;
}

.ls-mall-catalog-chips a:hover,
.ls-mall-catalog-chips a.active {
    border-color: rgba(var(--ls-primary-rgb), .45);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    transform: translateY(-1px);
}

.ls-mall-catalog-chips em {
    color: inherit;
    font-style: normal;
    opacity: .68;
}

.ls-mall-catalog-result .ls-mall-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ls-mall-section-head,
.ls-mall-floor-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}

.ls-mall-section-head h2,
.ls-mall-floor-head h2 {
    margin: 0;
    color: var(--ls-text);
    font-size: 24px;
    line-height: 1.35;
}

.ls-mall-section-head p,
.ls-mall-floor-head p {
    margin: 8px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-hot-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ls-mall-hot-product {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    min-height: 118px;
    padding: 16px;
    border-radius: 5px;
    background: var(--ls-card-bg);
    transition: box-shadow .16s, transform .16s;
}

.ls-mall-hot-product:hover,
.ls-mall-floor-hero:hover,
.ls-mall-floor-product:hover,
.ls-mall-mosaic-feature:hover,
.ls-mall-category-image-card:hover,
.ls-mall-category-product:hover,
.ls-mall-wide-ad:hover,
.ls-mall-promo-card:hover {
    border-color: rgba(var(--ls-primary-rgb), .42);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.ls-mall-hot-cover {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 86px;
    height: 86px;
    overflow: hidden;
    border-radius: 5px;
    background: var(--ls-bg);
}

.ls-mall-hot-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-hot-product h3,
.ls-mall-floor-product h3 {
    margin: 0;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-hot-product p,
.ls-mall-floor-product p {
    margin: 5px 0 0;
    overflow: hidden;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.5;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-hot-product strong,
.ls-mall-floor-product strong {
    display: block;
    margin-top: 8px;
    color: var(--ls-danger);
    font-size: 18px;
    font-weight: 400;
}

.ls-mall-hot-product .ls-mall-hot-price,
.ls-mall-floor-product .ls-mall-tile-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-top: 8px;
    color: var(--ls-danger);
    font-size: 0;
    font-weight: 400;
    line-height: 1.1;
}

.ls-mall-hot-product .ls-mall-hot-price {
    justify-content: flex-start;
}

.ls-mall-hot-price .ls-mall-price-prefix,
.ls-mall-tile-price .ls-mall-price-prefix {
    font-size: 12px;
    line-height: 1.1;
}

.ls-mall-hot-price .ls-mall-price-value,
.ls-mall-tile-price .ls-mall-price-value {
    font-size: 21px;
    line-height: 1.1;
}

.ls-mall-hot-price del,
.ls-mall-tile-price del {
    margin-left: 3px;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.1;
}

.ls-mall-floor-head nav {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 28px;
    margin-top: 18px;
}

.ls-mall-floor-head nav button {
    position: relative;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ls-text-muted);
    font-size: 14px;
    cursor: pointer;
    transition: color .16s;
}

.ls-mall-floor-head nav button:hover,
.ls-mall-floor-head nav button.active {
    color: var(--ls-text);
    font-weight: 400;
}

.ls-mall-floor-head nav button:focus-visible {
    color: var(--ls-primary);
    outline: none;
}

.ls-mall-tab-panel {
    display: none;
}

.ls-mall-tab-panel.active {
    display: block;
}

.ls-mall-floor-more {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ls-text-muted);
    font-size: 14px;
    cursor: pointer;
}

.ls-mall-floor-more i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    font-size: 14px;
}

.ls-mall-floor-more:hover {
    background: transparent;
    color: var(--ls-primary);
}

.ls-mall-floor-more:hover i {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-floor-more:focus-visible {
    background: transparent;
    color: var(--ls-primary);
    outline: none;
}

.ls-mall-floor-more:focus-visible i {
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-floor-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}

.ls-mall-floor-hero,
.ls-mall-floor-product,
.ls-mall-mosaic-feature {
    box-sizing: border-box;
    border: 1px solid transparent;
    border-radius: 4px;
    background: var(--ls-card-bg);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-floor-hero {
    position: relative;
    grid-column: span 2;
    min-height: 276px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48%;
    align-items: center;
    overflow: hidden;
    padding: 32px 34px;
}

.ls-mall-floor-hero.is-digital {
    background: var(--ls-card-bg);
}

.ls-mall-floor-hero.is-life {
    background: var(--ls-card-bg);
}

.ls-mall-floor-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(255, 255, 255, .32);
    pointer-events: none;
}

.ls-mall-floor-hero > div,
.ls-mall-floor-hero img {
    position: relative;
    z-index: 1;
}

.ls-mall-floor-hero em {
    display: inline-flex;
    height: 24px;
    align-items: center;
    padding: 0 9px;
    border-radius: 4px;
    background: var(--ls-text);
    color: var(--ls-card-bg);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-floor-hero h3 {
    margin: 18px 0 0;
    color: var(--ls-text);
    font-size: 30px;
    line-height: 1.2;
}

.ls-mall-floor-hero p {
    margin: 10px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.7;
}

.ls-mall-floor-hero img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-floor-product {
    min-height: 276px;
    padding: 22px;
    text-align: center;
}

.ls-mall-floor-product img {
    width: 100%;
    height: 138px;
    object-fit: cover;
    border-radius: 4px;
    background: var(--ls-bg);
}

.ls-mall-floor-product h3 {
    margin-top: 18px;
}

.ls-mall-floor-product del {
    margin-left: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-weight: 400;
}

.ls-mall-wide-ad {
    position: relative;
    display: block;
    box-sizing: border-box;
    height: 118px;
    margin: 12px 0 58px;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 4px;
    background: var(--ls-card-bg);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-wide-ad.is-green {
    background: var(--ls-card-bg);
}

.ls-mall-wide-ad img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-mosaic-grid {
    display: grid;
    grid-template-columns: 1.05fr repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ls-mall-mosaic-feature {
    position: relative;
    grid-row: span 2;
    min-height: 536px;
    overflow: hidden;
}

.ls-mall-mosaic-feature img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    margin-top: 0;
    object-fit: cover;
}

.ls-mall-category-row-list {
    display: grid;
    gap: 16px;
}

.ls-mall-category-row {
    --ls-mall-category-card-height: 324px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.ls-mall-category-image-card,
.ls-mall-category-product {
    box-sizing: border-box;
    height: var(--ls-mall-category-card-height);
    min-height: 0;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 4px;
    background: var(--ls-card-bg);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-category-image-card {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    cursor: pointer;
}

.ls-mall-category-image-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.ls-mall-category-product {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 24px 22px 22px;
    text-align: center;
}

.ls-mall-category-product > span:first-child {
    flex: 0 0 142px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 142px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--ls-bg);
}

.ls-mall-category-product img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-category-product h3 {
    flex: 0 0 auto;
    max-width: 100%;
    margin: 20px 0 0;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-category-product p {
    flex: 0 0 auto;
    max-width: 100%;
    margin: 7px 0 0;
    overflow: hidden;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.5;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-category-product strong {
    display: block;
    margin-top: 13px;
    color: var(--ls-danger);
    font-size: 16px;
    font-weight: 400;
}

.ls-mall-category-product del {
    margin-left: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-weight: 400;
}

.ls-mall-category-product .ls-mall-category-price {
    flex: 0 0 auto;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-top: 13px;
    color: var(--ls-danger);
    font-size: 0;
    font-weight: 400;
    line-height: 1.1;
    white-space: nowrap;
}

.ls-mall-category-price .ls-mall-price-prefix {
    display: inline;
    width: auto;
    height: auto;
    overflow: visible;
    background: transparent;
    font-size: 12px;
    line-height: 1.1;
}

.ls-mall-category-price .ls-mall-price-value {
    display: inline;
    width: auto;
    height: auto;
    overflow: visible;
    background: transparent;
    font-size: 21px;
    line-height: 1.1;
}

.ls-mall-category-price del {
    display: inline-block;
    margin-left: 3px;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.1;
}

.ls-mall-card {
    padding: 22px;
    margin-bottom: 16px;
}

.ls-mall-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.ls-mall-detail-store-head {
    min-width: 0;
    display: grid;
    gap: 6px;
}

.ls-mall-detail-store-head a {
    width: max-content;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    color: var(--ls-text);
    text-decoration: none;
}

.ls-mall-detail-store-head strong {
    min-width: 0;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 20px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-official-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    height: 18px;
    padding: 0 6px;
    border-radius: 4px;
    background: #ef4444;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 18px;
}

.ls-mall-detail-store-head i {
    color: var(--ls-text);
    font-size: 18px;
    line-height: 1;
}

.ls-mall-detail-store-rating {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #f43f5e;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.ls-mall-detail-store-rating span {
    color: #f43f5e;
    letter-spacing: 1px;
}

.ls-mall-detail-store-rating b {
    color: #ef4444;
    font-size: 13px;
    font-weight: 700;
}

.ls-mall-detail-store-rating.is-empty,
.ls-mall-detail-store-rating.is-empty span,
.ls-mall-detail-store-rating.is-empty b {
    color: var(--ls-text-muted);
}

.ls-mall-detail-store-tools {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex-wrap: wrap;
}

.ls-mall-detail-store-chat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 0 9px;
    border: 1px solid rgba(var(--ls-primary-rgb), .18);
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}

.ls-mall-detail-store-chat i {
    color: inherit;
    font-size: 14px;
}

.ls-mall-detail-store-chat:hover {
    border-color: rgba(var(--ls-primary-rgb), .42);
    background: rgba(var(--ls-primary-rgb), .12);
}

.ls-mall-card h2,
.ls-mall-aside-card h3,
.ls-mall-empty h2 {
    margin: 0;
    color: var(--ls-text);
    font-size: 20px;
    line-height: 1.35;
}

.ls-mall-card p,
.ls-mall-aside-card p,
.ls-mall-empty p {
    margin: 7px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.7;
}

.ls-mall-category-section h2 i {
    margin-right: 8px;
    color: var(--ls-primary);
}

.ls-mall-status-card {
    display: flex;
    align-items: center;
    gap: 16px;
}

.ls-mall-status-body {
    min-width: 0;
    flex: 1;
}

.ls-mall-status-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    justify-content: flex-end;
    margin-left: auto;
}

.ls-mall-status-card.is-active {
    border-color: rgba(34, 197, 94, .45);
}

.ls-mall-status-card.is-pending {
    border-color: rgba(245, 158, 11, .45);
}

.ls-mall-status-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ls-mall-status-title em {
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 12px;
    font-style: normal;
    line-height: 1;
}

.ls-mall-status-card.is-active .ls-mall-status-title em {
    background: var(--ls-success-light);
    color: var(--ls-success);
}

.ls-mall-status-card.is-pending .ls-mall-status-title em {
    background: var(--ls-warning-light);
    color: var(--ls-warning);
}

.ls-mall-status-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.ls-mall-status-meta span {
    padding: 6px 10px;
    border-radius: 6px;
    color: var(--ls-text-secondary);
    background: var(--ls-bg-hover);
    font-size: 12px;
}

.ls-mall-store-profile-dialog {
    display: grid;
    gap: 12px;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.ls-dialog.ls-mall-store-profile-modal {
    width: 560px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ls-mall-store-profile-modal .ls-dialog-header,
.ls-mall-store-profile-modal .ls-dialog-footer {
    flex: 0 0 auto;
}

.ls-mall-store-profile-modal .ls-dialog-body {
    box-sizing: border-box;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: 14px;
}

.ls-mall-store-profile-modal .ls-dialog-footer {
    padding-top: 14px;
    border-top: 1px solid var(--ls-border-light);
    background: var(--ls-card-bg);
}

.ls-mall-store-profile-dialog label {
    display: grid;
    gap: 6px;
    margin: 0;
}

.ls-mall-store-profile-dialog span {
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-store-profile-dialog input,
.ls-mall-store-profile-dialog select,
.ls-mall-store-profile-dialog textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 13px;
    outline: none;
}

.ls-mall-store-profile-dialog input,
.ls-mall-store-profile-dialog select {
    height: 40px;
    padding: 0 12px;
}

.ls-mall-store-profile-dialog textarea {
    min-height: 88px;
    padding: 10px 12px;
    resize: vertical;
}

.ls-mall-store-featured-picker {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-store-featured-title {
    display: grid;
    gap: 4px;
}

.ls-mall-store-featured-title span {
    color: var(--ls-text);
    font-weight: 700;
}

.ls-mall-store-featured-title em,
.ls-mall-store-featured-empty,
.ls-mall-store-featured-option em {
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-store-featured-selected,
.ls-mall-store-featured-results {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.ls-mall-store-featured-chip,
.ls-mall-store-featured-option {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-store-featured-chip {
    max-width: 100%;
    padding: 7px 9px 7px 7px;
}

.ls-mall-store-featured-option {
    width: calc(50% - 4px);
    padding: 8px;
    text-align: left;
}

.ls-mall-store-featured-chip:hover,
.ls-mall-store-featured-option:hover {
    border-color: rgba(var(--ls-primary-rgb), .45);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-store-featured-cover {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ls-bg);
    color: var(--ls-text-muted);
}

.ls-mall-store-featured-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-store-featured-chip b,
.ls-mall-store-featured-option b,
.ls-mall-store-featured-option em {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-store-featured-chip b,
.ls-mall-store-featured-option b {
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-store-featured-option span:last-child {
    min-width: 0;
}

.ls-mall-store-featured-remove {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--ls-text-muted);
}

.ls-mall-store-featured-remove:hover {
    background: rgba(var(--ls-danger-rgb, 239, 68, 68), .1);
    color: var(--ls-danger, #ef4444);
}

.ls-mall-store-featured-searchbar {
    height: 38px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-store-featured-searchbar i {
    color: var(--ls-text-muted);
    text-align: center;
}

.ls-mall-store-profile-dialog .ls-mall-store-featured-searchbar input {
    height: 36px;
    border: 0;
    background: transparent;
}

.ls-mall-store-service-picker {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg-soft, #f8fafc);
}

.ls-mall-store-service-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.ls-mall-store-service-title span {
    color: var(--ls-text);
    font-weight: 700;
}

.ls-mall-store-service-title em,
.ls-mall-store-service-selected em,
.ls-mall-store-service-option em,
.ls-mall-store-service-results > span {
    color: var(--ls-text-muted);
    font-style: normal;
    font-size: 12px;
}

.ls-mall-store-service-selected,
.ls-mall-store-service-option {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.ls-mall-store-service-selected {
    padding: 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .18);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-store-service-selected b,
.ls-mall-store-service-option b {
    display: block;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-store-service-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-store-service-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-store-service-options,
.ls-mall-store-service-results {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-store-service-option {
    max-width: 180px;
    padding: 7px 10px 7px 7px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    cursor: pointer;
}

.ls-mall-store-service-option:hover {
    border-color: rgba(var(--ls-primary-rgb), .45);
    color: var(--ls-primary);
}

.ls-mall-store-service-searchbar {
    height: 38px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-store-service-searchbar i {
    color: var(--ls-text-muted);
    text-align: center;
}

.ls-mall-store-profile-dialog .ls-mall-store-service-searchbar input {
    height: 36px;
    border: 0;
    background: transparent;
}

.ls-mall-store-decoration-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-bg-soft);
}

.ls-mall-store-decoration-status b {
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-store-announcement-dialog textarea {
    min-height: 138px;
}

.ls-mall-store-profile-image-field {
    display: grid;
    gap: 6px;
}

.ls-mall-store-profile-image-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ls-mall-store-profile-image-head small {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-store-profile-image-control {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto 36px;
    gap: 8px;
    align-items: center;
}

.ls-mall-store-profile-image-preview {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg);
    color: var(--ls-text-muted);
}

.ls-mall-store-profile-image-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-store-profile-image-upload,
.ls-mall-store-profile-image-clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 40px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-store-profile-image-upload {
    padding: 0 12px;
}

.ls-mall-store-profile-image-upload:hover,
.ls-mall-store-profile-image-clear:hover {
    border-color: var(--ls-primary);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-mall-store-profile-image-upload:disabled {
    cursor: wait;
    opacity: .75;
}

.ls-mall-store-decoration {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-store-decoration-head {
    display: grid;
    gap: 4px;
}

.ls-mall-store-decoration-head strong {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-store-decoration-head span,
.ls-mall-store-decoration-toggle em {
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-store-decoration-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.ls-mall-store-profile-dialog .ls-mall-store-decoration-toggle {
    min-height: 40px;
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-store-decoration-toggle input {
    width: 36px;
    height: 20px;
    margin: 0;
    accent-color: var(--ls-primary);
}

.ls-mall-store-decoration-toggle span {
    display: grid;
    gap: 2px;
}

.ls-mall-store-decoration-toggle b {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 600;
}

.ls-mall-store-decoration textarea {
    min-height: 60px;
}

.ls-mall-seller-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px;
}

.ls-mall-seller-head-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.ls-mall-store-home-link {
    border-color: rgba(var(--ls-primary-rgb), .35);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
}

.ls-mall-seller-rule-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-no-store-rule-grid {
    align-items: start;
    gap: 16px;
    margin-bottom: 16px;
}

.ls-mall-no-store-rule-grid .ls-mall-seller-rule-card {
    min-height: 0;
    padding: 24px 28px;
}

.ls-mall-no-store-rule-grid .ls-mall-seller-rule-card p {
    max-width: 760px;
    margin-top: 14px;
    color: var(--ls-text-secondary);
    font-size: 14px;
    line-height: 1.75;
}

.ls-mall-no-store-rule-grid .ls-mall-seller-rule-card ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}

.ls-mall-no-store-rule-grid .ls-mall-seller-rule-card li {
    min-height: 74px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;
    padding: 12px 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 7px;
    background: #f8fafc;
}

.ls-mall-no-store-rule-grid .ls-mall-seller-rule-card li:last-child {
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-no-store-rule-grid .ls-mall-seller-rule-card li span {
    font-size: 15px;
}

.ls-mall-no-store-card {
    align-items: center;
    gap: 18px;
    padding: 24px 28px;
    border-color: rgba(var(--ls-primary-rgb), .18);
    background: linear-gradient(90deg, rgba(var(--ls-primary-rgb), .05), var(--ls-card-bg) 48%);
}

.ls-mall-no-store-card .ls-mall-status-icon {
    width: 58px;
    height: 58px;
    border-radius: 10px;
}

.ls-mall-no-store-card .ls-mall-status-icon i {
    font-size: 30px;
}

.ls-mall-no-store-card h2 {
    font-size: 22px;
    line-height: 1.3;
}

.ls-mall-no-store-card p {
    max-width: 640px;
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.65;
}

.ls-mall-seller-nav button,
.ls-mall-seller-summary button,
.ls-mall-product-create {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 38px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
    transition: background .16s, border-color .16s, color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-seller-nav button {
    padding: 0 12px;
}

.ls-mall-seller-nav button:hover,
.ls-mall-seller-summary button:hover,
.ls-mall-product-create:hover {
    border-color: rgba(var(--ls-primary-rgb), .55);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .07);
    transform: translateY(-1px);
}

.ls-mall-seller-nav button.active {
    border-color: var(--ls-primary);
    background: var(--ls-primary);
    color: var(--ls-card-bg);
    box-shadow: 0 10px 20px rgba(var(--ls-primary-rgb), .18);
}

.ls-mall-seller-nav button:disabled {
    cursor: not-allowed;
    border-color: var(--ls-border);
    background: var(--ls-bg-hover);
    color: var(--ls-text-muted);
    box-shadow: none;
    transform: none;
}

.ls-mall-seller-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-seller-summary button {
    justify-content: flex-start;
    height: 74px;
    padding: 0 16px;
    text-align: left;
}

.ls-mall-seller-summary button i {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 20px;
}

.ls-mall-seller-summary button b {
    color: var(--ls-text);
    font-size: 20px;
    line-height: 1;
}

.ls-mall-seller-summary button span {
    color: var(--ls-text-secondary);
    font-size: 13px;
    font-weight: 400;
}

.ls-mall-dashboard {
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.ls-mall-dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-dashboard-metric,
.ls-mall-dashboard-item {
    display: flex;
    align-items: center;
    min-width: 0;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-dashboard-metric {
    gap: 12px;
    padding: 14px;
}

.ls-mall-dashboard-metric > i {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 18px;
}

.ls-mall-dashboard-metric div {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.ls-mall-dashboard-metric span,
.ls-mall-dashboard-metric em,
.ls-mall-dashboard-panel-head span,
.ls-mall-dashboard-item em {
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ls-mall-dashboard-metric strong {
    color: var(--ls-text);
    font-size: 18px;
    line-height: 1.25;
    word-break: break-word;
}

.ls-mall-dashboard-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-dashboard-insights {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-dashboard-panel {
    min-width: 0;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.ls-mall-dashboard-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ls-border-light);
    background: var(--ls-bg);
}

.ls-mall-dashboard-panel-head h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-dashboard-list {
    display: grid;
}

.ls-mall-dashboard-item {
    width: 100%;
    gap: 10px;
    padding: 12px 14px;
    border-width: 0 0 1px;
    border-radius: 0;
    color: var(--ls-text);
    text-align: left;
}

.ls-mall-dashboard-item:last-child {
    border-bottom: 0;
}

.ls-mall-dashboard-item:hover {
    background: var(--ls-bg-hover);
}

.ls-mall-dashboard-cover {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-dashboard-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-dashboard-item div {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.ls-mall-dashboard-item strong {
    overflow: hidden;
    color: var(--ls-text);
    font-size: 13px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-dashboard-item b {
    margin-left: auto;
    color: var(--ls-text);
    font-size: 12px;
    white-space: nowrap;
}

.ls-mall-dashboard-empty {
    padding: 28px 14px;
    color: var(--ls-text-muted);
    font-size: 13px;
    text-align: center;
}

.ls-mall-dashboard-trend {
    min-width: 0;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.ls-mall-dashboard-range-tabs {
    display: inline-flex;
    gap: 6px;
    padding: 3px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: #fff;
}

.ls-mall-dashboard-range {
    height: 28px;
    padding: 0 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--ls-text-secondary);
    cursor: pointer;
    font-size: 12px;
}

.ls-mall-dashboard-range.active {
    background: var(--ls-primary);
    color: #fff;
}

.ls-mall-dashboard-trend-canvas-wrap {
    position: relative;
    min-height: 260px;
    padding: 12px 14px 4px;
}

.ls-mall-dashboard-trend-canvas {
    display: block;
    width: 100%;
    height: 260px;
}

.ls-mall-dashboard-trend-tooltip {
    position: absolute;
    z-index: 3;
    min-width: 150px;
    padding: 9px 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .18);
    border-radius: 8px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .13);
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.55;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -100%);
    transition: opacity .12s ease;
}

.ls-mall-dashboard-trend-tooltip.is-visible {
    opacity: 1;
}

.ls-mall-dashboard-trend-tooltip strong,
.ls-mall-dashboard-trend-tooltip span,
.ls-mall-dashboard-trend-tooltip em {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ls-mall-dashboard-trend-tooltip strong {
    margin-bottom: 4px;
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-dashboard-trend-tooltip em {
    margin-top: 4px;
    color: var(--ls-text-muted);
    font-style: normal;
}

.ls-mall-dashboard-trend-legend {
    display: flex;
    gap: 12px;
    padding: 0 14px 14px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-dashboard-trend-legend span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.ls-mall-dashboard-trend-legend i,
.ls-mall-dashboard-trend-tooltip i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.ls-mall-dashboard-trend-legend .is-view,
.ls-mall-dashboard-trend-tooltip .is-view {
    background: rgba(59, 130, 246, .95);
}

.ls-mall-dashboard-trend-legend .is-order,
.ls-mall-dashboard-trend-tooltip .is-order {
    background: rgba(16, 185, 129, .95);
}

.ls-mall-dashboard-trend-legend .is-refund,
.ls-mall-dashboard-trend-tooltip .is-refund {
    background: rgba(239, 68, 68, .95);
}

.ls-mall-dashboard-funnel-list,
.ls-mall-dashboard-refund-list {
    display: grid;
    gap: 10px;
    padding: 14px;
}

.ls-mall-dashboard-funnel-row {
    display: grid;
    gap: 7px;
}

.ls-mall-dashboard-funnel-row div,
.ls-mall-dashboard-refund-reason {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ls-mall-dashboard-funnel-row strong,
.ls-mall-dashboard-refund-reason strong {
    min-width: 0;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-dashboard-funnel-row span,
.ls-mall-dashboard-refund-reason span {
    flex: 0 0 auto;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-dashboard-funnel-row em {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--ls-bg);
}

.ls-mall-dashboard-funnel-row em i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--ls-primary);
}

.ls-mall-dashboard-funnel-row.is-success em i {
    background: #10b981;
}

.ls-mall-dashboard-funnel-row.is-risk em i {
    background: #ef4444;
}

.ls-mall-dashboard-refund-reason {
    padding: 10px 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-sales-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.ls-mall-sales-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-sales-card > i {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 18px;
}

.ls-mall-sales-card div {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.ls-mall-sales-card span,
.ls-mall-sales-card em {
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ls-mall-sales-card strong {
    color: var(--ls-text);
    font-size: 18px;
    line-height: 1.25;
    word-break: break-word;
}

.ls-mall-sales-flow {
    margin-top: 16px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    overflow: hidden;
}

.ls-mall-sales-flow-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: var(--ls-bg);
}

.ls-mall-sales-flow-head h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-sales-flow-head span {
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-sales-flow-list {
    display: grid;
}

.ls-mall-sales-flow-item {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) minmax(150px, auto);
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border-top: 1px solid var(--ls-border-light);
}

.ls-mall-sales-flow-cover {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--ls-bg-hover);
    color: var(--ls-text-muted);
    overflow: hidden;
}

.ls-mall-sales-flow-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-sales-flow-main,
.ls-mall-sales-flow-money {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.ls-mall-sales-flow-main strong {
    overflow: hidden;
    color: var(--ls-text);
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-sales-flow-main span,
.ls-mall-sales-flow-main em {
    overflow: hidden;
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-sales-flow-money {
    justify-items: end;
    text-align: right;
}

.ls-mall-sales-flow-money strong {
    color: #ef4444;
    font-size: 14px;
}

.ls-mall-sales-flow-money span {
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-sales-flow-money em {
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-sales-flow-money em.is-success {
    background: rgba(16, 185, 129, .12);
    color: #10b981;
}

.ls-mall-sales-flow-money em.is-warning {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}

.ls-mall-sales-flow-money em.is-danger {
    background: rgba(239, 68, 68, .12);
    color: #ef4444;
}

.ls-mall-sales-empty {
    padding: 28px 14px;
    border-top: 1px solid var(--ls-border-light);
    color: var(--ls-text-muted);
    text-align: center;
    font-size: 13px;
}

.ls-mall-stock-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.ls-mall-stock-stats span {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-stock-stats b {
    color: var(--ls-text);
    font-size: 20px;
    line-height: 1;
}

.ls-mall-stock-stats em {
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-stock-stats .is-warning b {
    color: #d97706;
}

.ls-mall-stock-stats .is-danger b {
    color: #ef4444;
}

.ls-mall-stock-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.ls-mall-stock-filter {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    font-size: 13px;
    cursor: pointer;
}

.ls-mall-stock-filter b {
    min-width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--ls-bg-hover);
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-stock-filter.active {
    border-color: rgba(var(--ls-primary-rgb), .45);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-stock-filter.active b {
    background: rgba(var(--ls-primary-rgb), .14);
    color: var(--ls-primary);
}

.ls-mall-stock-list {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.ls-mall-stock-item {
    display: grid;
    grid-template-columns: minmax(230px, .8fr) minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-stock-item.is-warning {
    border-color: rgba(245, 158, 11, .35);
    background: rgba(255, 251, 235, .72);
}

.ls-mall-stock-item.is-danger {
    border-color: rgba(239, 68, 68, .32);
    background: rgba(254, 242, 242, .72);
}

.ls-mall-stock-product {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.ls-mall-stock-product img,
.ls-mall-stock-product > span {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--ls-bg-hover);
    color: var(--ls-text-muted);
    object-fit: cover;
}

.ls-mall-stock-product strong,
.ls-mall-stock-product em {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-stock-product strong {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-stock-product em {
    margin-top: 5px;
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-stock-main {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.ls-mall-stock-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-stock-summary b {
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-stock-summary span,
.ls-mall-stock-summary em {
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-stock-summary em {
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(245, 158, 11, .14);
    color: #d97706;
}

.ls-mall-stock-skus {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ls-mall-stock-skus span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 5px 8px;
    border: 1px solid var(--ls-border-light);
    border-radius: 999px;
    background: var(--ls-card-bg);
    font-size: 12px;
}

.ls-mall-stock-skus b,
.ls-mall-stock-skus em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-stock-skus b {
    color: var(--ls-text-secondary);
    font-weight: 600;
}

.ls-mall-stock-skus em {
    color: var(--ls-text-muted);
    font-style: normal;
}

.ls-mall-stock-skus span.is-warning {
    border-color: rgba(245, 158, 11, .35);
    background: rgba(255, 251, 235, .9);
}

.ls-mall-stock-skus span.is-danger {
    border-color: rgba(239, 68, 68, .35);
    background: rgba(254, 242, 242, .9);
}

.ls-mall-stock-actions {
    display: flex;
    justify-content: flex-end;
}

.ls-mall-stock-actions button {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    font-size: 13px;
    cursor: pointer;
}

.ls-mall-stock-actions button:hover {
    border-color: rgba(var(--ls-primary-rgb), .45);
    color: var(--ls-primary);
}

.ls-mall-product-create {
    height: 36px;
    padding: 0 14px;
    border-color: var(--ls-primary);
    background: var(--ls-primary);
    color: var(--ls-card-bg);
}

.ls-mall-address-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 36px;
    padding: 0 14px;
    border: 1px solid var(--ls-primary);
    border-radius: 6px;
    background: var(--ls-primary);
    color: var(--ls-card-bg);
    cursor: pointer;
}

.ls-mall-apply-card {
    padding: 26px 30px;
}

.ls-mall-apply-card .ls-mall-card-head {
    margin-bottom: 22px;
}

.ls-mall-requirements {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 20px;
}

.ls-mall-apply-card .ls-mall-requirements {
    gap: 12px;
    margin-bottom: 22px;
}

.ls-mall-req {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 68px;
    padding: 13px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: var(--ls-bg);
}

.ls-mall-apply-card .ls-mall-req {
    min-height: 64px;
    padding: 14px 16px;
    background: #f8fafc;
}

.ls-mall-req i {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-req.is-pass i {
    background: var(--ls-success-light);
    color: var(--ls-success);
}

.ls-mall-req.is-fail i {
    background: var(--ls-danger-light);
    color: var(--ls-danger);
}

.ls-mall-req b {
    display: block;
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.4;
}

.ls-mall-req span {
    display: block;
    margin-top: 4px;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding-top: 18px;
    border-top: 1px solid var(--ls-border-light);
}

.ls-mall-apply-card .ls-mall-form {
    gap: 16px;
    padding-top: 22px;
}

.ls-mall-apply-form {
    --ls-mall-apply-soft: #f8fafc;
}

.ls-mall-apply-step {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding-top: 4px;
}

.ls-mall-apply-step b {
    color: var(--ls-text);
    font-size: 16px;
    line-height: 1.4;
}

.ls-mall-apply-step span {
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.5;
    text-align: right;
}

.ls-mall-apply-grid,
.ls-mall-apply-doc-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ls-mall-form label {
    display: grid;
    gap: 8px;
}

.ls-mall-form label span {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 400;
}

.ls-mall-form label span em,
.ls-mall-apply-doc-head em {
    color: var(--ls-danger);
    font-style: normal;
}

.ls-mall-form input,
.ls-mall-form select,
.ls-mall-form textarea {
    width: 100%;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 14px;
    outline: none;
    transition: border-color .16s, box-shadow .16s;
}

.ls-mall-form input,
.ls-mall-form select {
    height: 42px;
    padding: 0 12px;
}

.ls-mall-form select {
    appearance: auto;
    cursor: pointer;
}

.ls-mall-form textarea {
    min-height: 90px;
    padding: 12px;
    resize: vertical;
}

.ls-mall-form input:focus,
.ls-mall-form select:focus,
.ls-mall-form textarea:focus {
    border-color: rgba(var(--ls-primary-rgb), .65);
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb), .1);
}

.ls-mall-apply-doc-field {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-mall-apply-soft);
}

.ls-mall-apply-doc-field.has-material {
    border-color: rgba(var(--ls-primary-rgb), .28);
    background: rgba(var(--ls-primary-rgb), .04);
}

.ls-mall-apply-doc-head {
    display: grid;
    gap: 4px;
}

.ls-mall-apply-doc-head strong {
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.35;
}

.ls-mall-apply-doc-head span {
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.55;
}

.ls-mall-apply-doc-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 38px;
    gap: 8px;
    align-items: center;
}

.ls-mall-apply-doc-upload,
.ls-mall-apply-doc-clear {
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    cursor: pointer;
    transition: border-color .16s, background .16s, color .16s;
}

.ls-mall-apply-doc-upload {
    padding: 0 14px;
    color: var(--ls-primary);
}

.ls-mall-apply-doc-clear {
    width: 38px;
    color: var(--ls-text-muted);
}

.ls-mall-apply-doc-upload:hover,
.ls-mall-apply-doc-clear:hover {
    border-color: rgba(var(--ls-primary-rgb), .45);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-apply-doc-upload:disabled {
    cursor: not-allowed;
    opacity: .7;
}

.ls-mall-apply-doc-preview {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px dashed var(--ls-border);
    border-radius: 7px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-apply-doc-preview i {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 18px;
}

.ls-mall-apply-doc-preview img {
    width: 52px;
    height: 52px;
    flex: 0 0 auto;
    border-radius: 6px;
    object-fit: cover;
}

.ls-mall-apply-doc-preview a {
    margin-left: auto;
    color: var(--ls-primary);
    text-decoration: none;
    white-space: nowrap;
}

.ls-mall-apply-submit-row {
    display: flex;
    justify-content: flex-start;
    padding-top: 4px;
}

.ls-mall-apply-btn {
    width: fit-content;
    min-width: 160px;
    padding: 0 22px;
    border-color: var(--ls-primary);
    background: var(--ls-primary);
    color: var(--ls-card-bg);
}

.ls-mall-apply-btn:hover {
    background: var(--ls-primary-hover);
    border-color: var(--ls-primary-hover);
    box-shadow: 0 10px 22px rgba(var(--ls-primary-rgb), .22);
    transform: translateY(-1px);
}

.ls-mall-apply-btn:disabled {
    cursor: not-allowed;
    border-color: var(--ls-border);
    background: var(--ls-border);
    color: var(--ls-text-muted);
    box-shadow: none;
    transform: none;
}

.ls-mall-aside-card {
    padding: 18px;
    margin-bottom: 14px;
}

.ls-mall-seller-rule-grid .ls-mall-aside-card {
    margin-bottom: 0;
}

.ls-mall-aside-card ul {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 14px 0 0;
    list-style: none;
}

.ls-mall-aside-card li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-aside-card li:last-child {
    border-bottom: 0;
}

.ls-mall-aside-card li b {
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-aside-card li span {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 400;
}

.ls-mall-empty {
    min-height: 360px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 44px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    text-align: center;
}

.ls-mall-empty > i {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 30px;
}

.ls-mall-product-empty {
    padding: 38px 0;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    color: var(--ls-text-muted);
    text-align: center;
    background: var(--ls-bg);
}

.ls-mall-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.ls-mall-product-card {
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-product-card:hover {
    border-color: rgba(var(--ls-primary-rgb), .42);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.ls-mall-product-link-card {
    cursor: pointer;
}

.ls-mall-product-cover {
    position: relative;
    height: 136px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--ls-primary-light), var(--ls-success-light));
    color: var(--ls-primary);
    font-size: 30px;
}

.ls-mall-product-cover span {
    position: absolute;
    left: 9px;
    top: 9px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: calc(100% - 18px);
    height: 24px;
    padding: 0 8px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .9);
    color: var(--ls-primary);
    font-size: 12px;
    font-weight: 400;
    box-shadow: 0 6px 14px rgba(15, 23, 42, .08);
}

.ls-mall-product-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-product-info {
    padding: 14px;
}

.ls-mall-product-info h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
    line-height: 1.4;
    font-weight: 400;
}

.ls-mall-product-info h3 a {
    color: inherit;
    text-decoration: none;
}

.ls-mall-product-info h3 a:hover {
    color: var(--ls-primary);
}

.ls-mall-product-info p {
    min-height: 42px;
    margin: 8px 0 0;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ls-mall-product-meta,
.ls-mall-product-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ls-mall-product-meta {
    margin-top: 10px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-product-stats {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 8px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-product-stats span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-product-stats i {
    color: #f59e0b;
}

.ls-mall-product-meta span,
.ls-mall-product-meta em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-product-meta em {
    font-style: normal;
}

.ls-mall-product-foot {
    margin-top: 14px;
    min-height: 34px;
}

.ls-mall-product-price-group,
.ls-mall-product-action-group {
    display: inline-flex;
    align-items: center;
}

.ls-mall-product-price-group {
    gap: 6px;
    min-width: 0;
    line-height: 1;
}

.ls-mall-product-action-group {
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
}

.ls-mall-product-price-group strong {
    color: var(--ls-danger);
    font-size: 16px;
    line-height: 1;
    white-space: nowrap;
}

.ls-mall-product-price-group del {
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
}

.ls-mall-product-sold {
    margin-left: auto;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1;
    white-space: nowrap;
}

.ls-mall-product-sold + .ls-mall-product-action-group {
    margin-left: 0;
}

.ls-mall-buy-btn,
.ls-mall-favorite-btn,
.ls-mall-cart-btn,
.ls-mall-product-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    padding: 0 14px;
    border: 0;
    border-radius: 6px;
    background: var(--ls-primary);
    color: var(--ls-card-bg);
    cursor: pointer;
    transition: background .16s, box-shadow .16s, transform .16s;
}

.ls-mall-buy-btn:hover,
.ls-mall-favorite-btn:hover,
.ls-mall-cart-btn:hover,
.ls-mall-product-save:hover {
    background: var(--ls-primary-hover);
    box-shadow: 0 10px 20px rgba(var(--ls-primary-rgb), .2);
    transform: translateY(-1px);
}

.ls-mall-favorite-btn,
.ls-mall-cart-btn {
    min-width: 42px;
    padding: 0 10px;
    background: var(--ls-bg);
    color: var(--ls-text-secondary);
}

.ls-mall-favorite-btn.active {
    background: rgba(239, 68, 68, .1);
    color: var(--ls-danger);
}

.ls-mall-favorite-btn:hover {
    color: var(--ls-card-bg);
}

.ls-mall-cart-btn {
    width: 34px;
    min-width: 34px;
    padding: 0;
}

.ls-mall-cart-btn:hover {
    color: var(--ls-card-bg);
}

.ls-mall-seller-panel {
    border-color: rgba(var(--ls-primary-rgb), .24);
}

.ls-mall-store-manage-page {
    display: grid;
    gap: 14px;
}

.ls-mall-store-manage-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-store-manage-grid section {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg-soft);
}

.ls-mall-store-manage-grid section > i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
    font-size: 20px;
}

.ls-mall-store-manage-grid h3 {
    margin: 0 0 6px;
    font-size: 15px;
    color: var(--ls-text);
}

.ls-mall-store-manage-grid p {
    min-height: 40px;
    margin: 0;
    color: var(--ls-muted);
    font-size: 13px;
    line-height: 1.55;
}

.ls-mall-store-manage-grid .ls-mall-wallet-link {
    grid-column: 2;
    width: fit-content;
    margin-top: 4px;
}

.ls-mall-seller-messages-page {
    display: grid;
    gap: 14px;
}

.ls-mall-message-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-message-overview section {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 76px;
    padding: 13px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-message-overview i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
    font-size: 20px;
}

.ls-mall-message-overview section.is-warning i {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}

.ls-mall-message-overview section.is-danger i {
    background: rgba(239, 68, 68, .12);
    color: #ef4444;
}

.ls-mall-message-overview span,
.ls-mall-message-overview em {
    display: block;
    color: var(--ls-muted);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-message-overview strong {
    display: block;
    margin: 2px 0;
    color: var(--ls-text);
    font-size: 20px;
}

.ls-mall-message-replies {
    display: grid;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg-soft);
}

.ls-mall-message-replies > div:first-child {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
}

.ls-mall-message-replies > div:first-child i {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
}

.ls-mall-message-replies > div:first-child span,
.ls-mall-message-replies > div:first-child em {
    display: block;
}

.ls-mall-message-replies > div:first-child span {
    grid-column: 2;
    color: var(--ls-text);
    font-weight: 600;
}

.ls-mall-message-replies > div:first-child em {
    grid-column: 2;
    margin-top: 3px;
    color: var(--ls-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ls-mall-message-replies > div:last-child {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.ls-mall-message-quick {
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .18);
    border-radius: 7px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 12px;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
}

.ls-mall-message-quick:hover {
    border-color: rgba(var(--ls-primary-rgb), .38);
    color: var(--ls-primary);
}

.ls-mall-message-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ls-mall-message-section {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg-soft);
}

.ls-mall-message-section.is-wide {
    grid-column: 1 / -1;
}

.ls-mall-message-section-head {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.ls-mall-message-section-head > i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
    font-size: 20px;
}

.ls-mall-message-section h3 {
    margin: 0 0 4px;
    font-size: 15px;
    color: var(--ls-text);
}

.ls-mall-message-section p {
    margin: 0;
    color: var(--ls-muted);
    font-size: 13px;
}

.ls-mall-message-list {
    display: grid;
    gap: 10px;
}

.ls-mall-message-item {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-message-cover {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary);
}

.ls-mall-message-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-message-cover i {
    font-size: 22px;
}

.ls-mall-message-body {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.ls-mall-message-body-head {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ls-mall-message-body strong,
.ls-mall-message-body span,
.ls-mall-message-body em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-message-body strong {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-message-body-head strong {
    flex: 1;
}

.ls-mall-message-body-head small {
    flex: 0 0 auto;
    max-width: 104px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
    font-size: 11px;
}

.ls-mall-message-body-head small.is-warning {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}

.ls-mall-message-body-head small.is-danger {
    background: rgba(239, 68, 68, .12);
    color: #ef4444;
}

.ls-mall-message-body-head small.is-muted {
    background: rgba(148, 163, 184, .14);
    color: var(--ls-muted);
}

.ls-mall-message-body span,
.ls-mall-message-body em {
    color: var(--ls-muted);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-message-source {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ls-mall-message-source span {
    width: auto;
    max-width: 180px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(148, 163, 184, .12);
    color: var(--ls-muted);
    font-size: 11px;
}

.ls-mall-message-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.ls-mall-message-action {
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 0 11px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 13px;
    cursor: pointer;
    text-decoration: none;
}

.ls-mall-message-action.is-primary {
    border-color: rgba(var(--ls-primary-rgb), .25);
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
}

.ls-mall-message-empty {
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    color: var(--ls-muted);
    font-size: 13px;
}

.ls-mall-product-form {
    display: grid;
    gap: 10px;
}

.ls-mall-product-form input,
.ls-mall-product-form textarea,
.ls-mall-product-form select {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 13px;
    outline: none;
}

.ls-mall-product-form input,
.ls-mall-product-form select {
    height: 40px;
    padding: 0 12px;
}

.ls-mall-product-category-picker {
    position: relative;
    z-index: 8;
}

.ls-mall-product-category-toggle {
    width: 100%;
    height: 44px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    text-align: left;
    cursor: pointer;
}

.ls-mall-product-category-toggle span {
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
    font-size: 12px;
    font-weight: 700;
}

.ls-mall-product-category-toggle b {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 700;
}

.ls-mall-product-category-panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: none;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .14);
}

.ls-mall-product-category-picker.is-open .ls-mall-product-category-panel {
    display: block;
}

.ls-mall-product-category-panel label {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 10px;
    border-bottom: 1px solid var(--ls-border-light);
    color: var(--ls-text-muted);
}

.ls-mall-product-category-panel input {
    height: 34px;
    padding: 0;
    border: 0;
    box-shadow: none;
}

.ls-mall-product-category-panel input:focus {
    box-shadow: none;
}

.ls-mall-product-category-list {
    max-height: 320px;
    overflow: auto;
    padding: 6px;
}

.ls-mall-product-category-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 4px 0;
    padding: 8px 10px;
    border-radius: 6px;
    background: var(--ls-bg);
    color: var(--ls-text);
}

.ls-mall-product-category-group span,
.ls-mall-product-category-option span {
    color: var(--ls-text-muted);
    font-size: 12px;
    font-weight: 600;
}

.ls-mall-product-category-group b {
    font-size: 13px;
}

.ls-mall-product-category-option {
    width: 100%;
    display: grid;
    grid-template-columns: 54px minmax(0, .8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px 10px 8px 22px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--ls-text-secondary);
    text-align: left;
    cursor: pointer;
}

.ls-mall-product-category-option:hover,
.ls-mall-product-category-option.is-selected {
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary);
}

.ls-mall-product-category-option b,
.ls-mall-product-category-option em {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-product-category-option b {
    font-size: 13px;
}

.ls-mall-product-category-option em {
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-product-category-empty {
    display: none;
    padding: 26px 10px;
    color: var(--ls-text-muted);
    font-size: 13px;
    text-align: center;
}

.ls-mall-category-template-panel {
    display: grid;
    gap: 9px;
    padding: 12px;
    border: 1px solid rgba(var(--ls-primary-rgb), .14);
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .04);
}

.ls-mall-category-template-panel > div {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--ls-primary);
    font-size: 13px;
    font-weight: 700;
}

.ls-mall-category-template-panel p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
}

.ls-mall-category-template-panel b {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-category-template-panel em {
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-category-template-panel button {
    justify-self: start;
    height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .24);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-primary);
    cursor: pointer;
}

.ls-mall-category-template-panel.is-empty {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-product-form textarea {
    min-height: 84px;
    padding: 11px 12px;
    resize: vertical;
}

.ls-mall-product-editor-block {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-editor-block-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.ls-mall-editor-block-head b {
    display: block;
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.4;
}

.ls-mall-editor-block-head span {
    display: block;
    margin-top: 3px;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-editor-block-head > div:last-child,
.ls-mall-editor-block-head button,
.ls-mall-media-upload,
.ls-mall-media-poster-upload,
.ls-mall-media-remove,
.ls-mall-spec-remove,
.ls-mall-rich-toolbar button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.ls-mall-editor-block-head > div:last-child {
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-editor-block-head button,
.ls-mall-media-upload,
.ls-mall-media-poster-upload,
.ls-mall-media-remove,
.ls-mall-spec-remove,
.ls-mall-rich-toolbar button {
    height: 32px;
    padding: 0 10px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-media-list,
.ls-mall-spec-list {
    display: grid;
    gap: 8px;
}

.ls-mall-media-row {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(var(--ls-primary-rgb), .08);
    border-radius: 8px;
    background: rgba(248, 250, 252, .7);
}

.ls-mall-media-row-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 10px;
    align-items: center;
}

.ls-mall-media-row-head b {
    color: var(--ls-text);
    font-size: 13px;
    line-height: 1.4;
}

.ls-mall-media-row-head span {
    grid-column: 1;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-media-row-head .ls-mall-media-remove {
    grid-column: 2;
    grid-row: 1 / 3;
    width: 36px;
    padding: 0;
}

.ls-mall-media-line {
    display: grid;
    gap: 10px;
    align-items: start;
    min-width: 0;
}

.ls-mall-media-main-line {
    grid-template-columns: 116px minmax(0, 1fr) 112px;
}

.ls-mall-media-meta-line {
    grid-template-columns: minmax(0, 1fr) 118px minmax(0, 1fr);
}

.ls-mall-media-line label {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.ls-mall-media-line label span {
    color: var(--ls-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.ls-mall-media-line label em {
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.45;
}

.ls-mall-media-main-line .ls-mall-media-upload,
.ls-mall-media-meta-line .ls-mall-media-poster-upload {
    align-self: end;
    margin-bottom: 22px;
}

.ls-mall-media-row.is-image .ls-mall-media-poster-field,
.ls-mall-media-row.is-image .ls-mall-media-poster-upload {
    display: none;
}

.ls-mall-media-row.is-image .ls-mall-media-meta-line {
    grid-template-columns: minmax(0, 1fr);
}

.ls-mall-media-row input,
.ls-mall-media-row select,
.ls-mall-media-upload,
.ls-mall-media-poster-upload,
.ls-mall-media-remove {
    height: 38px;
    box-sizing: border-box;
}

.ls-mall-media-upload,
.ls-mall-media-poster-upload {
    white-space: nowrap;
}

.ls-mall-media-row input,
.ls-mall-media-row select {
    width: 100%;
    min-width: 0;
}

.ls-mall-media-upload:disabled,
.ls-mall-media-poster-upload:disabled {
    cursor: default;
    opacity: .72;
}

.ls-mall-media-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary);
    font-size: 12px;
}

.ls-mall-media-progress-host {
    position: fixed;
    right: 18px;
    bottom: 22px;
    z-index: 10060;
    display: grid;
    gap: 10px;
    width: min(340px, calc(100vw - 36px));
}

.ls-mall-media-progress-item {
    padding: 12px;
    border: 1px solid rgba(var(--ls-primary-rgb), .16);
    border-radius: 8px;
    background: var(--ls-card-bg);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .14);
}

.ls-mall-media-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-media-progress-head span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.ls-mall-media-progress-head em {
    color: var(--ls-text-muted);
    font-style: normal;
}

.ls-mall-media-progress-bar {
    height: 6px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, .18);
}

.ls-mall-media-progress-bar i {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--ls-primary);
    transition: width .22s ease;
}

.ls-mall-media-progress-item p {
    margin: 8px 0 0;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.ls-mall-media-progress-item.is-failed .ls-mall-media-progress-bar i {
    background: #ef4444;
}

.ls-mall-spec-row {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) 40px;
    gap: 8px;
    align-items: start;
}

.ls-mall-spec-row textarea {
    min-height: 58px;
}

.ls-mall-spec-value-editor {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: start;
}

.ls-mall-spec-tagbox {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 38px;
    padding: 5px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: var(--ls-card-bg);
}

.ls-mall-spec-tagbox:focus-within {
    border-color: rgba(var(--ls-primary-rgb), .65);
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb), .1);
}

.ls-mall-spec-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    height: 26px;
    padding: 0 7px 0 9px;
    border-radius: 999px;
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary);
    font-size: 12px;
}

.ls-mall-spec-tag span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-spec-tag-remove,
.ls-mall-spec-value-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ls-mall-spec-tag-remove {
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
}

.ls-mall-spec-value-input {
    flex: 1 1 120px;
    min-width: 120px;
    height: 26px !important;
    padding: 0 4px !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.ls-mall-spec-value-add {
    height: 38px;
    gap: 5px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
}

.ls-mall-sku-matrix {
    display: grid;
    gap: 10px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--ls-border-soft);
}

.ls-mall-sku-matrix.is-empty {
    padding: 12px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    background: rgba(248, 250, 252, .72);
}

.ls-mall-sku-matrix.is-empty b,
.ls-mall-sku-head b {
    display: block;
    color: var(--ls-text);
}

.ls-mall-sku-matrix.is-empty span,
.ls-mall-sku-head span {
    display: block;
    margin-top: 4px;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.ls-mall-sku-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ls-mall-sku-head em {
    color: var(--ls-text-muted);
    font-style: normal;
    font-size: 12px;
}

.ls-mall-sku-batch {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.ls-mall-sku-batch label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--ls-border-soft);
    border-radius: 8px;
    background: rgba(248, 250, 252, .68);
}

.ls-mall-sku-batch label span {
    color: var(--ls-text-muted);
    font-size: 12px;
    white-space: nowrap;
}

.ls-mall-sku-batch input {
    width: 100% !important;
    height: 34px !important;
    min-width: 0;
}

.ls-mall-sku-batch button {
    height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 7px;
    background: var(--ls-primary);
    color: #fff;
}

.ls-mall-sku-table {
    overflow-x: auto;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-sku-tr {
    display: grid;
    grid-template-columns: 92px 82px minmax(220px, 1.45fr) minmax(172px, .92fr) minmax(120px, .7fr) minmax(120px, .7fr) minmax(110px, .6fr) 70px;
    gap: 8px;
    align-items: center;
    min-width: 1120px;
    padding: 10px;
    border-bottom: 1px solid var(--ls-border-soft);
}

.ls-mall-sku-tr:last-child {
    border-bottom: 0;
}

.ls-mall-sku-tr.is-head {
    background: rgba(248, 250, 252, .85);
    color: var(--ls-text-muted);
    font-size: 12px;
    font-weight: 600;
}

.ls-mall-sku-row.is-disabled {
    background: rgba(148, 163, 184, .08);
}

.ls-mall-sku-row.is-disabled .ls-mall-sku-text,
.ls-mall-sku-row.is-disabled input {
    opacity: .58;
}

.ls-mall-mini-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
    white-space: nowrap;
}

.ls-mall-mini-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ls-mall-mini-switch span {
    position: relative;
    width: 34px;
    height: 18px;
    border-radius: 999px;
    background: #cbd5e1;
    transition: background .18s ease;
}

.ls-mall-mini-switch span::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    transition: transform .18s ease;
}

.ls-mall-mini-switch input:checked + span {
    background: var(--ls-primary);
}

.ls-mall-mini-switch input:checked + span::after {
    transform: translateX(16px);
}

.ls-mall-sku-default {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
    white-space: nowrap;
}

.ls-mall-sku-default input {
    width: 15px;
    height: 15px;
    accent-color: var(--ls-primary);
}

.ls-mall-sku-default input:checked + span {
    color: var(--ls-primary);
    font-weight: 700;
}

.ls-mall-sku-text {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 600;
}

.ls-mall-sku-image-cell {
    display: grid;
    grid-template-columns: 42px minmax(74px, auto) 34px;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.ls-mall-sku-image-preview {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    overflow: hidden;
    border: 1px dashed var(--ls-border);
    border-radius: 7px;
    background: #f8fafc;
    color: var(--ls-text-muted);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ls-mall-sku-image-preview.has-image {
    border-style: solid;
    background: #fff;
}

.ls-mall-sku-image-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-sku-image-upload,
.ls-mall-sku-image-clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 34px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: #fff;
    color: var(--ls-text);
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
    white-space: nowrap;
}

.ls-mall-sku-image-upload {
    padding: 0 10px;
}

.ls-mall-sku-image-cell:hover .ls-mall-sku-image-preview,
.ls-mall-sku-image-preview:hover {
    border-color: rgba(var(--ls-primary-rgb), .45);
    box-shadow: 0 6px 14px rgba(var(--ls-primary-rgb), .12);
    transform: translateY(-1px);
}

.ls-mall-sku-image-upload:hover,
.ls-mall-sku-image-upload:focus-visible {
    border-color: rgba(var(--ls-primary-rgb), .45);
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary);
    box-shadow: 0 6px 14px rgba(var(--ls-primary-rgb), .13);
    transform: translateY(-1px);
}

.ls-mall-sku-image-clear:hover,
.ls-mall-sku-image-clear:focus-visible {
    border-color: rgba(239, 68, 68, .38);
    background: rgba(239, 68, 68, .08);
    color: #ef4444;
    box-shadow: 0 6px 14px rgba(239, 68, 68, .12);
    transform: translateY(-1px);
}

.ls-mall-sku-image-upload:active,
.ls-mall-sku-image-clear:active {
    box-shadow: none;
    transform: translateY(0);
}

.ls-mall-sku-image-clear {
    width: 34px;
    padding: 0;
}

.ls-mall-sku-tr em {
    color: var(--ls-text-muted);
    font-style: normal;
    font-size: 12px;
}

.ls-mall-spec-remove {
    width: 40px;
    height: 40px;
    padding: 0;
}

.ls-mall-rich-toolbar {
    position: sticky;
    top: 72px;
    z-index: 25;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px;
    margin: -4px -4px 0;
    border: 1px solid rgba(var(--ls-primary-rgb), .08);
    border-radius: 8px;
    background: rgba(248, 250, 252, .92);
    box-shadow: 0 12px 26px rgba(15, 23, 42, .08);
    backdrop-filter: blur(12px);
}

.ls-mall-rich-body {
    min-height: 180px;
    padding: 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.75;
    outline: none;
}

.ls-mall-rich-body:focus {
    border-color: rgba(var(--ls-primary-rgb), .65);
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb), .1);
}

.ls-mall-rich-body:empty::before {
    content: attr(data-placeholder);
    color: var(--ls-text-muted);
}

.ls-mall-rich-body img,
.ls-mall-rich-body video {
    max-width: 100%;
    border-radius: 8px;
}

.ls-mall-product-form input:focus,
.ls-mall-product-form textarea:focus,
.ls-mall-product-form select:focus {
    border-color: rgba(var(--ls-primary-rgb), .65);
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb), .1);
}

.ls-mall-form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 10px;
}

.ls-mall-sale-row {
    align-items: end;
    padding: 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .08);
    border-radius: 8px;
    background: rgba(248, 250, 252, .7);
}

.ls-mall-sale-row.is-sku-mode .ls-mall-base-price-field {
    display: none;
}

.ls-mall-freight-config {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(var(--ls-primary-rgb), .16);
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(var(--ls-primary-rgb), .06), rgba(255, 255, 255, .92));
}

.ls-mall-freight-config.is-hidden {
    display: none;
}

.ls-mall-freight-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.ls-mall-freight-head b {
    display: block;
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-freight-head span {
    display: block;
    margin-top: 4px;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.55;
}

.ls-mall-freight-head i {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .12);
    color: var(--ls-primary);
    font-size: 18px;
}

.ls-mall-form-field {
    display: grid;
    gap: 6px;
    min-width: 0;
    margin: 0;
}

.ls-mall-form-field span {
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.2;
}

.ls-mall-form-field input,
.ls-mall-form-field select {
    width: 100%;
}

.ls-mall-field-help {
    display: block;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
    line-height: 1.55;
}

.ls-mall-check-field,
.ls-mall-use-points {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-check-field input,
.ls-mall-use-points input {
    width: 16px;
    height: 16px;
}

.ls-mall-product-save {
    width: fit-content;
    min-width: 126px;
}

/* 商品发布操作按钮跟随主题变量，避免前台发布页和站点主题色脱节。 */
.ls-mall-product-form-actions .ls-mall-product-save {
    background: var(--ls-primary);
    color: var(--ls-card-bg);
}

.ls-mall-product-form-actions .ls-mall-product-save:hover {
    background: var(--ls-primary-hover);
    color: var(--ls-card-bg);
}

.ls-mall-product-form-actions .ls-mall-product-save:disabled {
    cursor: not-allowed;
    background: var(--ls-border);
    color: var(--ls-text-muted);
    box-shadow: none;
    transform: none;
}

.ls-mall-buy-btn:disabled,
.ls-mall-buy-btn.is-disabled {
    cursor: not-allowed;
    opacity: .55;
}

.ls-mall-product-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ls-mall-product-form-actions-left,
.ls-mall-product-form-actions-main {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.ls-mall-product-form-actions-main {
    margin-left: auto;
}

.ls-mall-product-status-field {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--ls-text-muted);
    font-size: 12px;
    white-space: nowrap;
}

.ls-mall-product-status-field select {
    width: 116px;
    height: 34px;
    border-radius: 6px;
}

.ls-mall-product-preview,
.ls-mall-product-reset,
.ls-mall-seller-actions a,
.ls-mall-seller-actions button,
.ls-mall-order-actions button,
.ls-mall-order-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 13px;
    line-height: 1;
    text-decoration: none;
    transition: border-color .16s, color .16s, background .16s, transform .16s;
}

.ls-mall-seller-actions i,
.ls-mall-order-actions i,
.ls-mall-product-preview i,
.ls-mall-product-reset i {
    flex: 0 0 auto;
    font-size: 16px;
    line-height: 1;
}

.ls-mall-product-preview:hover,
.ls-mall-product-reset:hover,
.ls-mall-seller-actions a:hover,
.ls-mall-seller-actions button:hover,
.ls-mall-order-actions button:hover,
.ls-mall-order-actions a:hover {
    border-color: rgba(var(--ls-primary-rgb), .55);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    transform: translateY(-1px);
}

/* 预览按钮和保存按钮使用同一主题色体系，保持商品表单操作区一致。 */
.ls-mall-product-form-actions .ls-mall-product-preview {
    border-color: rgba(var(--ls-primary-rgb), .32);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-product-form-actions .ls-mall-product-preview:hover {
    border-color: rgba(var(--ls-primary-rgb), .55);
    background: var(--ls-card-bg);
    color: var(--ls-primary-hover);
}

.ls-mall-order-actions button.is-danger {
    border-color: rgba(239, 68, 68, .28);
    color: #ef4444;
}

.ls-mall-order-actions button.is-danger:hover {
    border-color: rgba(239, 68, 68, .42);
    color: #ef4444;
    background: rgba(239, 68, 68, .08);
}

.ls-mall-store-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.ls-mall-store-card {
    display: block;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}

.ls-mall-store-card:hover {
    border-color: rgba(var(--ls-primary-rgb), .42);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.ls-mall-store-cover {
    height: 98px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, var(--ls-primary-light), var(--ls-success-light));
    color: var(--ls-primary);
    font-size: 28px;
}

.ls-mall-store-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-store-info {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
}

.ls-mall-store-avatar {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ls-bg-hover);
    color: var(--ls-primary);
}

.ls-mall-store-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-store-info h3 {
    margin: 0;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-store-info p {
    margin-top: 5px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.45;
}

.ls-mall-store-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 12px 12px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-store-foot em {
    color: var(--ls-primary);
    font-style: normal;
    font-weight: 400;
}

.ls-mall-product-store-link {
    color: var(--ls-primary);
    text-decoration: none;
}

.ls-mall-product-store-link:hover {
    text-decoration: underline;
}

.ls-mall-seller-list {
    display: grid;
    gap: 8px;
    margin-top: 16px;
}

.ls-mall-product-batch-toolbar {
    display: grid;
    grid-template-columns: max-content max-content minmax(160px, 220px) minmax(120px, 180px) minmax(160px, 220px) auto auto;
    align-items: center;
    gap: 10px 8px;
    margin-top: 16px;
    padding: 10px 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: rgba(248, 250, 252, .72);
}

.ls-mall-product-batch-all-wrap {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    white-space: nowrap;
}

.ls-mall-product-batch-all-wrap input[type="checkbox"],
.ls-mall-product-select input[type="checkbox"] {
    width: 14px;
    height: 14px;
    min-width: 14px;
    flex: 0 0 14px;
    margin: 0;
    accent-color: var(--ls-primary);
    cursor: pointer;
}

.ls-mall-product-batch-count {
    color: var(--ls-text-muted);
    font-size: 12px;
    white-space: nowrap;
}

.ls-mall-product-batch-hint {
    grid-column: 1 / -1;
    margin: -2px 0 0;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.ls-mall-product-batch-toolbar select,
.ls-mall-product-batch-toolbar input:not([type="checkbox"]) {
    width: 100%;
    height: 34px;
}

.ls-mall-product-batch-apply,
.ls-mall-product-batch-export {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
    transition: border-color .16s, color .16s, background .16s, transform .16s;
}

.ls-mall-product-batch-apply {
    border-color: rgba(var(--ls-primary-rgb), .3);
    background: var(--ls-primary);
    color: #fff;
}

.ls-mall-product-batch-apply.is-danger {
    border-color: rgba(239, 68, 68, .35);
    background: #ef4444;
    color: #fff;
}

.ls-mall-product-batch-apply:disabled {
    cursor: not-allowed;
    opacity: .52;
    transform: none;
}

.ls-mall-product-batch-export:hover,
.ls-mall-product-batch-apply:not(:disabled):hover {
    border-color: rgba(var(--ls-primary-rgb), .5);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    transform: translateY(-1px);
}

.ls-mall-product-batch-apply.is-danger:not(:disabled):hover {
    border-color: rgba(239, 68, 68, .42);
    color: #ef4444;
    background: rgba(239, 68, 68, .08);
}

.ls-mall-seller-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 6px;
    background: var(--ls-bg);
}

.ls-mall-products-page .ls-mall-seller-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
}

.ls-mall-product-select {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.ls-mall-seller-item > div:first-child {
    min-width: 0;
}

.ls-mall-seller-product-info {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.ls-mall-seller-item span {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 400;
}

.ls-mall-seller-product-title {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-seller-product-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.ls-mall-seller-product-meta strong,
.ls-mall-seller-product-meta em {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 8px;
    border: 1px solid var(--ls-border-light);
    border-radius: 6px;
    background: var(--ls-card-bg);
    font-size: 12px;
    line-height: 1;
}

.ls-mall-seller-product-meta strong {
    color: var(--ls-danger);
    font-weight: 600;
}

.ls-mall-seller-item em {
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-seller-product-meta .is-warning {
    border-color: rgba(239, 68, 68, .24);
    background: rgba(239, 68, 68, .08);
    color: var(--ls-danger);
}

.ls-mall-seller-actions {
    display: flex;
    gap: 8px;
    flex: 0 0 auto;
}

.ls-mall-order-card {
    border-color: rgba(16, 185, 129, .22);
}

.ls-mall-address-card {
    border-color: rgba(var(--ls-primary-rgb), .2);
}

.ls-mall-address-page {
    display: grid;
    gap: 14px;
}

.ls-mall-address-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ls-mall-address-hero h2 {
    margin: 0;
    color: var(--ls-text);
    font-size: 24px;
    line-height: 1.3;
}

.ls-mall-address-hero p {
    margin: 8px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-address-hero-actions {
    display: flex;
    gap: 10px;
    flex: 0 0 auto;
}

.ls-mall-address-list {
    display: grid;
    gap: 10px;
}

.ls-mall-address-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-address-item strong,
.ls-mall-address-item span,
.ls-mall-address-item small {
    display: block;
}

.ls-mall-address-item strong {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-address-item strong em {
    display: inline-flex;
    margin-left: 8px;
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--ls-success-light);
    color: var(--ls-success);
    font-size: 11px;
    font-style: normal;
}

.ls-mall-address-item span,
.ls-mall-address-item small {
    margin-top: 4px;
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-address-actions {
    display: flex;
    gap: 8px;
}

.ls-mall-address-actions button {
    height: 32px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-mine-page {
    display: grid;
    gap: 14px;
}

.ls-mall-mine-hero,
.ls-mall-mine-login-tip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ls-mall-mine-hero h2 {
    margin: 0;
    color: var(--ls-text);
    font-size: 26px;
    line-height: 1.28;
}

.ls-mall-mine-hero p,
.ls-mall-mine-login-tip p {
    margin: 8px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-mine-login-tip h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 17px;
}

.ls-mall-mine-shortcuts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-mine-shortcut {
    position: relative;
    min-height: 128px;
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--ls-border-light);
    border-radius: 10px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.ls-mall-mine-shortcut:hover {
    transform: translateY(-2px);
    border-color: rgba(var(--ls-primary-rgb), .28);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}

.ls-mall-mine-shortcut > span {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--ls-primary-rgb), .1);
    color: var(--ls-primary);
}

.ls-mall-mine-shortcut > span i {
    font-size: 20px;
}

.ls-mall-mine-shortcut strong {
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-mine-shortcut p {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-mine-shortcut em {
    position: absolute;
    top: 16px;
    right: 16px;
    color: var(--ls-danger);
    font-size: 22px;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
}

.ls-mall-mine-shortcut.is-green > span {
    background: rgba(16, 185, 129, .12);
    color: #059669;
}

.ls-mall-mine-shortcut.is-orange > span {
    background: rgba(245, 158, 11, .14);
    color: #d97706;
}

.ls-mall-mine-shortcut.is-violet > span {
    background: rgba(139, 92, 246, .12);
    color: #7c3aed;
}

.ls-mall-mine-shortcut.is-slate > span {
    background: rgba(100, 116, 139, .12);
    color: #475569;
}

.ls-mall-mine-shortcut.is-cyan > span {
    background: rgba(6, 182, 212, .12);
    color: #0891b2;
}

.ls-mall-mine-products:empty {
    display: none;
}

@media (max-width: 1280px) {
    .ls-mall-mine-shortcuts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .ls-mall-mine-hero,
    .ls-mall-mine-login-tip {
        align-items: flex-start;
        flex-direction: column;
    }

    .ls-mall-mine-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.ls-mall-order-block {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.ls-mall-buyer-orders-page {
    display: grid;
    gap: 14px;
}

.ls-mall-buyer-orders-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ls-mall-buyer-orders-head h2 {
    margin: 0;
    color: var(--ls-text);
    font-size: 22px;
}

.ls-mall-buyer-orders-head p {
    margin: 8px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-order-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.ls-mall-order-tabs button,
.ls-mall-order-pager button {
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-order-tabs button.active {
    border-color: var(--ls-primary);
    background: var(--ls-primary);
    color: #fff;
}

.ls-mall-order-pager {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
}

.ls-mall-order-pager button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.ls-mall-order-pager span {
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-order-block:first-of-type {
    margin-top: 0;
}

.ls-mall-order-block h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-order-empty {
    padding: 18px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    color: var(--ls-text-muted);
    background: var(--ls-bg);
    text-align: center;
}

.ls-mall-order-table {
    display: grid;
    gap: 12px;
}

.ls-mall-order-table-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 128px 148px 168px;
    gap: 12px;
    padding: 0 14px;
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-order-row {
    overflow: hidden;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-order-row-head {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 38px;
    padding: 0 14px;
    background: var(--ls-bg);
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-order-row-head span,
.ls-mall-order-row-head a {
    color: inherit;
    text-decoration: none;
}

.ls-mall-order-row-head a:hover {
    color: var(--ls-primary);
}

.ls-mall-order-head-chat {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ls-text-secondary);
}

.ls-mall-order-head-chat:hover {
    color: var(--ls-primary);
}

.ls-mall-order-row-head em {
    margin-left: auto;
    color: var(--ls-primary);
    font-style: normal;
}

.ls-mall-order-row-body {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr) 120px 140px 168px;
    gap: 12px;
    align-items: center;
    padding: 14px;
}

.ls-mall-order-cover {
    width: 68px;
    height: 68px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--ls-primary-light), var(--ls-success-light));
    color: var(--ls-primary);
}

.ls-mall-order-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-order-row-info {
    min-width: 0;
}

.ls-mall-order-row-title {
    display: block;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 14px;
    line-height: 1.5;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-order-row-title:hover {
    color: var(--ls-primary);
}

.ls-mall-order-row-info p,
.ls-mall-order-row-info span {
    display: block;
    margin: 4px 0 0;
    overflow: hidden;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.5;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-order-row-info .ls-mall-order-pay-countdown {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: auto;
    color: #ef4444;
}

.ls-mall-order-pay-countdown i {
    font-size: 14px;
}

.ls-mall-order-pay-countdown em {
    font-style: normal;
    font-variant-numeric: tabular-nums;
}

.ls-mall-order-pay-countdown.is-expired {
    color: var(--ls-text-muted);
}

.ls-mall-order-row-amount,
.ls-mall-order-row-pay {
    display: grid;
    gap: 4px;
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-order-row-amount em,
.ls-mall-order-row-pay em {
    color: var(--ls-text-secondary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-order-row-actions {
    display: flex;
    justify-content: flex-end;
}

.ls-mall-order-row-actions .ls-mall-order-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.ls-mall-order-detail-head-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-order-detail-card {
    display: grid;
    gap: 12px;
}

.ls-mall-order-detail-summary {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(var(--ls-primary-rgb), .06), rgba(16, 185, 129, .06));
}

.ls-mall-order-detail-summary .ls-mall-order-cover {
    width: 68px;
    height: 68px;
}

.ls-mall-order-detail-summary h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 18px;
}

.ls-mall-order-detail-summary h3 a {
    color: inherit;
}

.ls-mall-order-detail-summary p,
.ls-mall-order-detail-summary span {
    display: block;
    margin-top: 6px;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-order-detail-summary em {
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-style: normal;
    white-space: nowrap;
}

.ls-mall-order-detail-summary em.is-warning {
    background: rgba(245, 158, 11, .12);
    color: #b45309;
}

.ls-mall-order-detail-summary em.is-danger {
    background: rgba(239, 68, 68, .12);
    color: #ef4444;
}

.ls-mall-order-detail-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.ls-mall-order-detail-facts span {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-order-detail-facts em,
.ls-mall-order-detail-facts b {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-order-detail-facts em {
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-order-detail-facts b {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 500;
}

.ls-mall-order-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.ls-mall-order-detail-grid section {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-order-detail-grid h3 {
    margin: 0 0 4px;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-order-detail-grid p {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-order-detail-empty {
    padding: 18px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    color: var(--ls-text-muted);
    font-size: 13px;
    text-align: center;
}

.ls-mall-order-detail-actions-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-order-detail-actions-card h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-order-detail-actions-card p {
    margin: 5px 0 0;
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-order-detail-actions-card .ls-mall-order-actions {
    flex: 0 0 auto;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.ls-mall-order-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 16px;
    align-items: start;
}

.ls-mall-order-detail-main {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.ls-mall-order-status-panel {
    padding: 6px 2px 18px;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-order-status-panel h3 {
    margin: 0 0 14px;
    color: var(--ls-text);
    font-size: 20px;
    font-weight: 600;
}

.ls-mall-order-status-lines {
    display: grid;
    gap: 8px;
}

.ls-mall-order-status-lines span {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-order-status-lines i {
    color: var(--ls-text-muted);
    font-size: 16px;
    line-height: 1.6;
}

.ls-mall-order-product-panel {
    display: grid;
    gap: 0;
}

.ls-mall-order-product-store {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--ls-border-light);
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-order-product-store a {
    color: inherit;
}

.ls-mall-order-product-store > a {
    color: var(--ls-primary);
    font-size: 13px;
}

.ls-mall-order-product-row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) 120px;
    gap: 14px;
    align-items: start;
    padding: 14px 0;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-order-product-row .ls-mall-order-cover {
    width: 88px;
    height: 88px;
}

.ls-mall-order-product-info {
    min-width: 0;
}

.ls-mall-order-product-info h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}

.ls-mall-order-product-info h3 a {
    color: inherit;
}

.ls-mall-order-product-info p {
    margin: 6px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.55;
}

.ls-mall-order-product-money {
    display: grid;
    justify-items: end;
    gap: 5px;
    color: var(--ls-text-secondary);
    font-size: 13px;
    text-align: right;
}

.ls-mall-order-product-money span {
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-order-product-money em,
.ls-mall-order-product-money b {
    font-style: normal;
    font-weight: 400;
}

.ls-mall-order-product-money b {
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 12px;
}

.ls-mall-order-product-money b.is-warning {
    background: rgba(245, 158, 11, .12);
    color: #b45309;
}

.ls-mall-order-product-money b.is-danger {
    background: rgba(239, 68, 68, .12);
    color: #ef4444;
}

.ls-mall-order-detail-action-row {
    display: flex;
    justify-content: flex-end;
    padding-top: 12px;
}

.ls-mall-order-detail-aside {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.ls-mall-order-detail-aside-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-order-detail-aside-card h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 15px;
    font-weight: 500;
}

.ls-mall-order-detail-aside-card dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.ls-mall-order-detail-aside-card dl div {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.ls-mall-order-detail-aside-card dt,
.ls-mall-order-detail-aside-card dd {
    margin: 0;
    min-width: 0;
    font-size: 13px;
    line-height: 1.5;
}

.ls-mall-order-detail-aside-card dt {
    color: var(--ls-text-secondary);
}

.ls-mall-order-detail-aside-card dd {
    color: var(--ls-text);
    text-align: right;
    word-break: break-all;
}

.ls-mall-order-detail-aside-card .is-total {
    padding-top: 10px;
    border-top: 1px solid var(--ls-border-light);
}

.ls-mall-order-detail-aside-card .is-total dd {
    color: var(--ls-text);
    font-size: 16px;
    font-weight: 600;
}

.ls-mall-order-detail-card .ls-mall-order-block {
    margin-top: 12px;
}

.ls-mall-logistics-detail-page {
    display: grid;
    gap: 14px;
}

.ls-mall-logistics-detail-page .ls-mall-order-detail-summary {
    margin: 0;
}

.ls-mall-logistics-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-logistics-detail-grid section,
.ls-mall-logistics-history,
.ls-mall-logistics-empty {
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-logistics-detail-grid h3,
.ls-mall-logistics-history h3 {
    margin: 0 0 6px;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-logistics-detail-grid p {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-refund-detail-page {
    display: grid;
    gap: 14px;
}

.ls-mall-refund-status-grid,
.ls-mall-refund-detail-grid {
    display: grid;
    gap: 12px;
}

.ls-mall-refund-status-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ls-mall-refund-detail-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.ls-mall-refund-status-grid section,
.ls-mall-refund-detail-grid section,
.ls-mall-refund-history,
.ls-mall-refund-empty {
    padding: 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-refund-status-grid span,
.ls-mall-refund-status-grid strong,
.ls-mall-refund-status-grid em,
.ls-mall-refund-detail-grid h3,
.ls-mall-refund-detail-grid p,
.ls-mall-refund-history h3 {
    display: block;
}

.ls-mall-refund-status-grid span {
    margin-bottom: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-refund-status-grid strong {
    color: var(--ls-text);
    font-size: 13px;
    line-height: 1.55;
}

.ls-mall-refund-status-grid em {
    margin-top: 6px;
    color: var(--ls-text-muted);
    font-size: 11px;
    font-style: normal;
}

.ls-mall-refund-detail-grid h3,
.ls-mall-refund-history h3 {
    margin: 0 0 6px;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-refund-detail-grid p {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-refund-detail-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.ls-mall-refund-detail-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--ls-primary);
    border-radius: 7px;
    background: var(--ls-primary);
    color: #fff;
    cursor: pointer;
}

.ls-mall-refund-detail-actions button.is-danger {
    border-color: rgba(239, 68, 68, .22);
    background: #fff;
    color: #ef4444;
}

.ls-mall-refund-detail-actions span {
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-refund-case-list {
    display: grid;
    gap: 10px;
}

.ls-mall-refund-case-list section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-refund-case-list section:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.ls-mall-refund-case-list strong,
.ls-mall-refund-case-list span,
.ls-mall-refund-case-list p,
.ls-mall-refund-case-list small {
    display: block;
}

.ls-mall-refund-case-list strong {
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-refund-case-list span,
.ls-mall-refund-case-list small {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-refund-case-list p {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-refund-case-list em {
    align-self: start;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-refund-case-list em.is-warning {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}

.ls-mall-refund-case-list em.is-danger {
    background: rgba(239, 68, 68, .12);
    color: #ef4444;
}

.ls-mall-refund-case-list em.is-muted {
    background: var(--ls-bg-soft);
    color: var(--ls-text-muted);
}

.ls-mall-refund-empty {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.ls-mall-refund-empty i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 20px;
    flex: 0 0 auto;
}

.ls-mall-refund-empty b,
.ls-mall-refund-empty span {
    display: block;
}

.ls-mall-refund-empty b {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-refund-empty span {
    margin-top: 5px;
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-logistics-empty {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--ls-text-secondary);
}

.ls-mall-logistics-empty i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 18px;
    flex: 0 0 auto;
}

.ls-mall-logistics-empty b,
.ls-mall-logistics-empty span {
    display: block;
}

.ls-mall-logistics-empty b {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-logistics-empty span {
    margin-top: 4px;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-logistics {
    display: grid;
    gap: 8px;
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-logistics-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ls-mall-logistics-head span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 700;
}

.ls-mall-logistics-head em {
    flex: 0 0 auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-logistics.is-delivered .ls-mall-logistics-head em {
    background: rgba(16, 185, 129, .12);
    color: #10b981;
}

.ls-mall-logistics.is-exception .ls-mall-logistics-head em,
.ls-mall-logistics.is-refunded .ls-mall-logistics-head em {
    background: rgba(245, 158, 11, .12);
    color: #d97706;
}

.ls-mall-logistics p {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.55;
}

.ls-mall-logistics-meta {
    display: grid;
    gap: 4px;
}

.ls-mall-logistics-meta span {
    margin: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    color: var(--ls-text-secondary);
    line-height: 1.45;
}

.ls-mall-logistics-steps {
    display: grid;
    gap: 7px;
    padding-top: 2px;
}

.ls-mall-logistics-steps span {
    position: relative;
    display: grid;
    gap: 2px;
    margin: 0;
    padding-left: 14px;
    white-space: normal;
}

.ls-mall-logistics-steps span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ls-primary);
}

.ls-mall-logistics-steps b,
.ls-mall-logistics-steps em,
.ls-mall-logistics-steps small {
    display: block;
}

.ls-mall-logistics-steps b {
    color: var(--ls-text);
    font-size: 12px;
}

.ls-mall-logistics-steps em,
.ls-mall-logistics-steps small {
    color: var(--ls-text-muted);
    font-size: 11px;
    font-style: normal;
}

.ls-mall-logistics.is-full {
    margin-top: 0;
    padding: 14px;
}

.ls-mall-logistics.is-full .ls-mall-logistics-head span {
    font-size: 15px;
}

.ls-mall-logistics.is-full .ls-mall-logistics-steps {
    gap: 10px;
    padding-top: 4px;
}

.ls-mall-logistics.is-full .ls-mall-logistics-steps span {
    padding-left: 18px;
}

.ls-mall-logistics.is-full .ls-mall-logistics-steps b {
    font-size: 13px;
}

.ls-mall-order-timeline {
    display: grid;
    gap: 6px;
    margin-top: 10px;
}

.ls-mall-order-timeline span {
    position: relative;
    padding-left: 12px;
}

.ls-mall-order-timeline span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--ls-primary);
}

.ls-mall-order-timeline b,
.ls-mall-order-timeline em,
.ls-mall-order-timeline small {
    display: block;
}

.ls-mall-order-timeline b {
    color: var(--ls-text);
    font-size: 12px;
}

.ls-mall-order-timeline em,
.ls-mall-order-timeline small {
    color: var(--ls-text-muted);
    font-size: 11px;
    font-style: normal;
}

.ls-mall-order-actions {
    display: flex;
    gap: 8px;
}

.ls-mall-ship-dialog,
.ls-mall-refund-dialog,
.ls-mall-review-dialog,
.ls-mall-address-dialog,
.ls-mall-buy-dialog,
.ls-mall-cart-dialog {
    display: grid;
    gap: 10px;
}

.ls-mall-buy-dialog {
    width: 100%;
    max-width: 100%;
    gap: 8px;
}

.ls-mall-buy-dialog h3 {
    margin: 2px 0 0;
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-ship-dialog input,
.ls-mall-ship-dialog textarea,
.ls-mall-refund-dialog input,
.ls-mall-refund-dialog select,
.ls-mall-refund-dialog textarea,
.ls-mall-review-dialog select,
.ls-mall-review-dialog textarea,
.ls-mall-address-dialog input,
.ls-mall-address-dialog select,
.ls-mall-address-dialog textarea,
.ls-mall-buy-dialog input,
.ls-mall-buy-dialog select,
.ls-mall-buy-dialog textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    font-size: 14px;
    outline: none;
}

.ls-mall-ship-dialog input,
.ls-mall-refund-dialog input,
.ls-mall-refund-dialog select,
.ls-mall-review-dialog select,
.ls-mall-address-dialog input,
.ls-mall-address-dialog select,
.ls-mall-buy-dialog input,
.ls-mall-buy-dialog select {
    height: 36px;
    padding: 0 12px;
}

.ls-mall-ship-dialog textarea,
.ls-mall-refund-dialog textarea,
.ls-mall-review-dialog textarea,
.ls-mall-address-dialog textarea,
.ls-mall-buy-dialog textarea {
    min-height: 68px;
    padding: 9px 12px;
    resize: vertical;
}

.ls-mall-refund-dialog p,
.ls-mall-review-dialog p,
.ls-mall-ship-tip {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.7;
}

.ls-mall-refund-dialog label {
    display: grid;
    gap: 6px;
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-review-score-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ls-mall-review-score {
    display: grid;
    gap: 6px;
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-review-upload {
    display: grid;
    gap: 10px;
    padding: 10px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-review-upload > div:first-child {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ls-mall-review-image-upload {
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    cursor: pointer;
}

.ls-mall-review-image-upload i {
    margin-right: 5px;
}

.ls-mall-review-upload span {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-review-upload-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-review-upload-list span {
    width: 58px;
    height: 58px;
    overflow: hidden;
    border-radius: 6px;
    border: 1px solid var(--ls-border);
    background: var(--ls-card-bg);
}

.ls-mall-review-upload-list img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-buy-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: linear-gradient(135deg, var(--ls-bg) 0%, var(--ls-card-bg) 100%);
}

.ls-mall-buy-summary-info {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.ls-mall-buy-summary strong {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-buy-summary span,
.ls-mall-buy-delivery {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-buy-summary-info em {
    width: fit-content;
    max-width: 100%;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(var(--ls-primary-rgb), .08);
    color: var(--ls-primary);
    font-size: 12px;
    font-style: normal;
    line-height: 1.4;
    white-space: normal;
}

.ls-mall-buy-quantity-control {
    position: relative;
    justify-self: end;
}

.ls-mall-buy-quantity-toggle {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 10px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: #fff;
    color: var(--ls-text);
    cursor: pointer;
}

.ls-mall-buy-quantity-toggle span {
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
    color: var(--ls-text);
    font-size: 13px;
    line-height: 1;
}

.ls-mall-buy-quantity-toggle b {
    font-size: 15px;
}

.ls-mall-buy-quantity-toggle i {
    color: var(--ls-text-secondary);
    font-size: 15px;
}

.ls-mall-buy-quantity-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 5;
    display: none;
    grid-template-columns: 34px 44px 34px;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 24px rgba(15, 23, 42, .12);
}

.ls-mall-buy-quantity-control.is-open .ls-mall-buy-quantity-panel {
    display: grid;
}

.ls-mall-buy-quantity-step,
.ls-mall-buy-quantity-panel strong {
    width: 100%;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-buy-quantity-step {
    cursor: pointer;
}

.ls-mall-buy-quantity-step:hover:not(:disabled) {
    background: var(--ls-bg);
}

.ls-mall-buy-quantity-step:disabled {
    cursor: not-allowed;
    color: var(--ls-text-muted);
}

.ls-mall-buy-quantity-panel strong {
    border-right: 1px solid var(--ls-border-light);
    border-left: 1px solid var(--ls-border-light);
}

.ls-mall-buy-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 10px;
}

.ls-mall-buy-fields label {
    display: grid;
    gap: 6px;
}

.ls-mall-buy-fields label.is-wide,
.ls-mall-buy-fields > .is-wide {
    grid-column: 1 / -1;
}

.ls-mall-buy-address-manual {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 10px;
}

.ls-mall-buy-address-manual .is-wide,
.ls-mall-buy-address-manual .ls-mall-buy-region {
    grid-column: 1 / -1;
}

.ls-mall-buy-dialog.is-address-manual-hidden .ls-mall-buy-address-manual,
.ls-mall-checkout-page.is-address-manual-hidden .ls-mall-buy-address-manual {
    display: none !important;
}

.ls-mall-buy-fields span {
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-buy-save-address {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 8px;
}

.ls-mall-buy-save-address input {
    width: 16px;
    height: 16px;
    padding: 0;
}

.ls-mall-buy-region {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 10px;
}

.ls-mall-buy-region label {
    display: grid;
    gap: 6px;
}

.ls-mall-buy-region label.is-wide {
    grid-column: 1 / -1;
}

.ls-mall-buy-submit-tip {
    margin: 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(255, 59, 48, .08);
    color: #ff3b30;
    font-size: 13px;
}

.ls-dialog.ls-mall-buy-modal {
    width: min(1120px, calc(100vw - 56px));
    max-width: calc(100vw - 56px);
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ls-mall-buy-modal .ls-dialog-header {
    flex: 0 0 auto;
    padding: 18px 30px 0;
}

.ls-mall-buy-modal .ls-dialog-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 14px 30px 16px;
    scrollbar-gutter: stable;
}

.ls-mall-buy-modal .ls-dialog-footer {
    flex: 0 0 auto;
    align-items: center;
    padding: 12px 30px 14px;
    border-top: 1px solid var(--ls-border-light);
    background: var(--ls-card-bg);
    box-shadow: 0 -8px 18px rgba(15, 23, 42, .06);
}

.ls-mall-buy-footer-total {
    margin-right: auto;
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    min-height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #ff3b30;
    white-space: nowrap;
}

.ls-mall-buy-footer-total span {
    color: #ff3b30;
    font-size: 12px;
}

.ls-mall-buy-footer-total strong {
    color: #ff3b30;
    font-size: 24px;
    line-height: 1.1;
}

.ls-mall-buy-coupon-preview {
    display: grid;
}

.ls-mall-buy-coupon-preview .ls-mall-order-coupon {
    padding: 9px 10px;
}

@media (max-width: 860px) {
    .ls-dialog.ls-mall-buy-modal {
        min-width: 0;
        width: calc(100vw - 20px);
        max-width: calc(100vw - 20px);
        max-height: calc(100vh - 20px);
    }

    .ls-mall-buy-modal .ls-dialog-header {
        padding: 14px 16px 0;
    }

    .ls-mall-buy-modal .ls-dialog-body {
        padding: 12px 16px 14px;
    }

    .ls-mall-buy-modal .ls-dialog-footer {
        flex-wrap: wrap;
        padding: 10px 16px 12px;
    }

    .ls-mall-buy-footer-total {
        width: 100%;
        margin-right: 0;
    }

    .ls-mall-pay-channel {
        flex: 1 1 calc(50% - 6px);
        justify-content: center;
    }
}

.ls-mall-cart-specs {
    display: grid;
    gap: 12px;
}

.ls-mall-cart-spec-group {
    display: grid;
    gap: 8px;
}

.ls-mall-cart-spec-group b,
.ls-mall-cart-quantity-field span {
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-cart-spec-group div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-cart-spec-option {
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-cart-spec-option.is-selected {
    border-color: var(--ls-primary);
    background: var(--ls-primary-light);
    color: var(--ls-primary);
}

.ls-mall-cart-spec-option.is-disabled,
.ls-mall-cart-spec-option:disabled {
    cursor: not-allowed;
    opacity: .46;
}

.ls-mall-cart-quantity-field {
    display: grid;
    gap: 6px;
}

.ls-mall-cart-quantity-field input {
    width: 160px;
    height: 40px;
    box-sizing: border-box;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
}

.ls-mall-product-detail {
    display: grid;
    grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.ls-mall-detail-left {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 18px;
}

.ls-mall-detail-store-slot {
    min-width: 0;
}

.ls-mall-detail-gallery {
    position: relative;
    z-index: 1;
    width: 520px;
    max-width: 100%;
    display: grid;
    justify-items: center;
    gap: 16px;
}

.ls-mall-detail-gallery.is-zooming {
    z-index: 30;
}

.ls-mall-detail-cover {
    position: relative;
    justify-self: start;
    width: 520px;
    height: 520px;
    max-width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 6px;
    background: #fff;
    color: var(--ls-primary);
    user-select: none;
}

.ls-mall-detail-media-stage {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ls-mall-detail-media-stage img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}

.ls-mall-detail-media-stage video {
    width: 100%;
    height: 100%;
    background: #000;
    object-fit: contain;
}

.ls-mall-detail-cover i {
    font-size: 48px;
}

.ls-mall-detail-zoom-lens {
    position: absolute;
    z-index: 4;
    display: none;
    border: 1px solid rgba(var(--ls-primary-rgb), .42);
    border-radius: 2px;
    background: rgba(255, 255, 255, .42);
    box-shadow: 0 0 0 999px rgba(255, 255, 255, .08) inset;
    pointer-events: none;
}

.ls-mall-detail-zoom-preview {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 10080;
    display: none;
    width: 560px;
    height: 560px;
    max-width: calc(100vw - 120px);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background-color: #fff;
    background-repeat: no-repeat;
    box-shadow: 0 20px 46px rgba(15, 23, 42, .14);
    pointer-events: none;
}

.ls-mall-detail-thumbs-wrap {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    overflow: hidden;
}

.ls-mall-detail-thumbs {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-start;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2px;
    scroll-snap-type: x mandatory;
}

.ls-mall-detail-thumb {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    padding: 0;
    scroll-snap-align: start;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 4px;
    background: var(--ls-bg);
    color: var(--ls-primary);
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ls-mall-detail-thumb:hover,
.ls-mall-detail-thumb.is-active {
    border-color: rgba(var(--ls-primary-rgb), .72);
    box-shadow: 0 0 0 2px rgba(var(--ls-primary-rgb), .12);
}

.ls-mall-detail-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-detail-gallery-nav {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ls-border-light);
    border-radius: 50%;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
    transition: color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.ls-mall-detail-gallery-nav:hover {
    border-color: rgba(var(--ls-primary-rgb), .5);
    color: var(--ls-primary);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
}

.ls-mall-media-video-thumb {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0f172a;
}

.ls-mall-media-video-thumb > i {
    position: absolute;
    color: #fff;
    font-size: 24px;
}

.ls-mall-media-video-thumb.is-empty > i {
    position: static;
}

.ls-mall-detail-main {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 12px;
}

.ls-mall-detail-kicker {
    width: max-content;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 6px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 13px;
}

.ls-mall-detail-main h1 {
    margin: 0;
    color: var(--ls-text);
    font-size: 28px;
    line-height: 1.35;
}

.ls-mall-detail-main p,
.ls-mall-detail-desc {
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 15px;
    line-height: 1.75;
}

.ls-mall-detail-desc {
    display: grid;
    gap: 8px;
}

.ls-mall-detail-desc h2,
.ls-mall-detail-desc h3,
.ls-mall-detail-desc p,
.ls-mall-detail-desc ul,
.ls-mall-detail-desc ol {
    margin: 0;
}

.ls-mall-detail-desc ul,
.ls-mall-detail-desc ol {
    padding-left: 20px;
}

.ls-mall-detail-desc img,
.ls-mall-detail-desc video {
    max-width: 100%;
    border-radius: 8px;
}

.ls-mall-detail-specs {
    display: grid;
    gap: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--ls-border-light);
}

.ls-mall-detail-spec-group {
    display: grid;
    gap: 10px;
}

.ls-mall-detail-spec-group b {
    color: var(--ls-text-secondary);
    font-size: 14px;
    font-weight: 400;
}

.ls-mall-detail-spec-group > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px;
}

.ls-mall-spec-option.is-disabled,
.ls-mall-spec-option:disabled {
    cursor: not-allowed;
    opacity: .45;
    background: rgba(148, 163, 184, .08);
    color: var(--ls-text-muted);
}

.ls-mall-detail-sku-summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    margin-top: 4px;
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-detail-sku-summary i {
    color: var(--ls-primary);
}

.ls-mall-spec-option {
    width: auto;
    min-width: 112px;
    max-width: 100%;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 16px;
    border: 1px solid var(--ls-border);
    border-radius: 7px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    cursor: pointer;
    text-align: left;
    line-height: 1.35;
    transition: border-color .16s, color .16s, background .16s, box-shadow .16s;
}

.ls-mall-spec-option.has-thumb {
    justify-content: flex-start;
    min-height: 48px;
    text-align: left;
}

.ls-mall-spec-option img {
    width: 32px;
    height: 32px;
    flex: 0 0 auto;
    border-radius: 5px;
    object-fit: cover;
    background: var(--ls-bg-hover);
}

.ls-mall-spec-option em {
    min-width: 0;
    color: inherit;
    font-size: 14px;
    font-style: normal;
    overflow-wrap: anywhere;
}

.ls-mall-spec-option.is-selected {
    border-color: #ef4444;
    color: #ef4444;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(239, 68, 68, .2);
}

.ls-mall-detail-meta,
.ls-mall-detail-foot {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.ls-mall-detail-delivery {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.5;
}

.ls-mall-detail-delivery i {
    margin-top: 2px;
    color: var(--ls-primary);
}

.ls-mall-detail-pricebox {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 74px;
    padding: 14px 18px;
    border-radius: 8px;
    background: linear-gradient(90deg, #fff5f5 0%, #fff7ed 100%);
}

.ls-mall-detail-pricebox div {
    min-width: 0;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-detail-pricebox strong {
    color: #ef4444;
    font-size: 30px;
    line-height: 1;
}

.ls-mall-detail-pricebox del {
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-detail-pricebox em {
    flex: 0 0 auto;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .72);
    color: #ef4444;
    font-size: 12px;
    font-style: normal;
}

.ls-mall-detail-tip {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 8px 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 18px;
}

.ls-mall-detail-tip i {
    flex: 0 0 auto;
    width: 14px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ls-text);
    font-size: 14px;
    line-height: 18px;
}

.ls-mall-detail-tip p {
    min-width: 0;
    margin: 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 18px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ls-mall-detail-service {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
    padding: 12px 0;
    border-top: 1px solid var(--ls-border-light);
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-detail-service span {
    min-width: 0;
    display: grid;
    grid-template-columns: 20px auto minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.55;
}

.ls-mall-detail-service i {
    margin-top: 2px;
    color: var(--ls-text);
    font-size: 16px;
}

.ls-mall-detail-service b {
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 400;
    white-space: nowrap;
}

.ls-mall-detail-service em {
    min-width: 0;
    color: var(--ls-text-secondary);
    font-style: normal;
    overflow-wrap: anywhere;
}

.ls-mall-detail-meta a,
.ls-mall-detail-meta span {
    color: var(--ls-text-secondary);
    font-size: 14px;
}

.ls-mall-detail-meta b {
    color: inherit;
    font: inherit;
}

.ls-mall-detail-foot {
    margin-top: 8px;
    justify-content: flex-end;
    padding-top: 18px;
    border-top: 1px solid var(--ls-border);
}

.ls-mall-detail-quantity {
    display: grid;
    gap: 10px;
    margin-top: 4px;
}

.ls-mall-detail-quantity > span {
    color: var(--ls-text-secondary);
    font-size: 13px;
}

.ls-mall-detail-quantity-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.ls-mall-detail-quantity-stepper {
    height: 40px;
    display: grid;
    grid-template-columns: 40px 52px 40px;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: #fff;
}

.ls-mall-detail-quantity-btn,
.ls-mall-detail-quantity-input {
    width: 100%;
    min-width: 0;
    height: 40px;
    border: 0;
    background: transparent;
    color: var(--ls-text);
    text-align: center;
    font-size: 15px;
}

.ls-mall-detail-quantity-btn {
    cursor: pointer;
}

.ls-mall-detail-quantity-btn:hover:not(:disabled) {
    background: var(--ls-bg);
}

.ls-mall-detail-quantity-btn:disabled {
    cursor: not-allowed;
    color: var(--ls-text-muted);
}

.ls-mall-detail-quantity-input {
    border-right: 1px solid var(--ls-border-light);
    border-left: 1px solid var(--ls-border-light);
    font-weight: 700;
}

.ls-mall-detail-quantity-input::-webkit-outer-spin-button,
.ls-mall-detail-quantity-input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.ls-mall-detail-quantity em {
    color: var(--ls-text-secondary);
    font-size: 13px;
    font-style: normal;
}

.ls-mall-detail-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 58px;
    align-items: stretch;
    gap: 10px;
}

.ls-mall-detail-action-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-width: 0;
    overflow: hidden;
    border-radius: 12px;
}

.ls-mall-detail-action-group .ls-mall-cart-btn,
.ls-mall-detail-action-group .ls-mall-buy-btn {
    width: 100%;
    height: 52px;
    min-width: 0;
    padding: 0 18px;
    border-radius: 0;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    box-shadow: none;
}

.ls-mall-detail-action-group .ls-mall-cart-btn {
    background: linear-gradient(90deg, #ffc400 0%, #ffae00 100%);
}

.ls-mall-detail-action-group .ls-mall-buy-btn {
    background: linear-gradient(90deg, #ff6a00 0%, #ff3d00 100%);
}

.ls-mall-detail-action-group .ls-mall-cart-btn:hover,
.ls-mall-detail-action-group .ls-mall-buy-btn:hover {
    box-shadow: none;
    transform: none;
    filter: brightness(.98);
}

.ls-mall-detail-favorite {
    width: 58px;
    height: 52px;
    min-width: 0;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 3px;
    padding: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--ls-text);
    box-shadow: none;
}

.ls-mall-detail-favorite i {
    font-size: 22px;
    line-height: 1;
}

.ls-mall-detail-favorite span {
    font-size: 12px;
    line-height: 1;
}

.ls-mall-detail-favorite.active {
    background: transparent;
    color: #ef4444;
}

.ls-mall-detail-favorite:hover {
    background: var(--ls-bg);
    color: #ef4444;
    box-shadow: none;
    transform: none;
}

.ls-mall-detail-tabs {
    margin-top: 24px;
    border-top: 1px solid var(--ls-border);
}

.ls-mall-detail-tab-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 28px;
    overflow: visible;
    padding: 0 4px;
    border-bottom: 1px solid var(--ls-border-light);
}

.ls-mall-detail-tab {
    position: relative;
    height: 52px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ls-text-secondary);
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
}

.ls-mall-detail-tab::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    border-radius: 999px;
    background: transparent;
}

.ls-mall-detail-tab.active {
    color: var(--ls-text);
}

.ls-mall-detail-tab.active::after {
    background: var(--ls-primary);
}

.ls-mall-detail-tab-body {
    padding-top: 18px;
}

.ls-mall-detail-tab-panel {
    display: none;
}

.ls-mall-detail-tab-panel.active {
    display: block;
}

.ls-mall-detail-rich {
    color: var(--ls-text-secondary);
    font-size: 14px;
    line-height: 1.8;
}

.ls-mall-detail-rich h2,
.ls-mall-detail-rich h3,
.ls-mall-detail-rich p,
.ls-mall-detail-rich ul,
.ls-mall-detail-rich ol {
    margin-top: 0;
}

.ls-mall-detail-rich img,
.ls-mall-detail-rich video {
    max-width: 100%;
    border-radius: 8px;
}

.ls-mall-detail-note-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.ls-mall-detail-note-grid section,
.ls-mall-spec-table {
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-detail-note-grid section {
    padding: 13px;
}

.ls-mall-detail-note-grid b {
    display: block;
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-detail-note-grid p {
    margin: 7px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.7;
}

.ls-mall-spec-tab {
    display: grid;
    gap: 14px;
}

.ls-mall-spec-table {
    overflow: hidden;
}

.ls-mall-spec-table div {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    border-top: 1px solid var(--ls-border-light);
}

.ls-mall-spec-table div:first-child {
    border-top: 0;
}

.ls-mall-spec-table span {
    padding: 12px 14px;
    background: var(--ls-card-bg);
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-spec-table strong {
    padding: 12px 14px;
    color: var(--ls-text);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.ls-mall-tab-empty {
    padding: 28px 14px;
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg);
    color: var(--ls-text-muted);
    text-align: center;
    font-size: 13px;
}

.ls-mall-detail-foot strong {
    color: var(--ls-danger, #ef4444);
    font-size: 24px;
}

.ls-mall-detail-foot del {
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-preview-dialog .ls-dialog-body {
    max-height: calc(90vh - 120px);
    overflow-y: auto;
    padding: 16px 20px 20px;
    background: var(--ls-bg);
}

.ls-mall-preview-dialog .ls-dialog-footer {
    padding-top: 14px;
    border-top: 1px solid var(--ls-border);
}

.ls-mall-product-preview-content {
    display: grid;
    gap: 14px;
    color: var(--ls-text);
}

.ls-mall-product-preview-tip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid rgba(var(--ls-primary-rgb), .18);
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 13px;
}

.ls-mall-product-preview-tip span {
    flex: 1;
    min-width: 0;
}

.ls-mall-product-preview-tip em {
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    font-style: normal;
    font-size: 12px;
}

.ls-mall-product-preview-content .ls-mall-product-detail {
    padding: 16px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-product-preview-content .ls-mall-detail-foot {
    justify-content: flex-start;
}

.ls-mall-pay-channels {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 10px;
    border: 1px solid rgba(var(--ls-primary-rgb), .14);
    border-radius: 8px;
    background: #fff;
}

.ls-mall-pay-channels > b {
    color: var(--ls-text);
    font-size: 14px;
}

.ls-mall-pay-channels > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.ls-mall-pay-channel {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
    line-height: 1.2;
}

.ls-mall-pay-channel i,
.ls-mall-pay-qr-head i {
    color: var(--ls-mall-pay-icon-color, currentColor);
}

.ls-mall-pay-channel.is-selected {
    border-color: var(--ls-primary);
    color: var(--ls-primary);
    background: rgba(var(--ls-primary-rgb), .08);
}

.ls-mall-pay-channels p,
.ls-mall-pay-dialog p {
    margin: 0;
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-pay-dialog {
    display: grid;
    justify-items: center;
    gap: 14px;
    padding: 18px 0;
    text-align: center;
}

.ls-mall-pay-qr-head {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ls-text);
    font-weight: 600;
}

.ls-mall-pay-qr-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 220px;
    height: 220px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: #fff;
}

.ls-mall-shop-detail-notices {
    display: grid;
    gap: 8px;
    padding: 12px 16px 0;
}

.ls-mall-shop-detail-notices span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-review-images {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0;
}

.ls-mall-review-images img {
    width: 72px;
    height: 72px;
    border-radius: 6px;
    object-fit: cover;
}

.ls-mall-review-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--ls-bg);
    color: var(--ls-text-secondary);
    font-size: 12px;
}

.ls-mall-review-summary strong {
    color: #f59e0b;
    font-size: 16px;
}

.ls-mall-review-summary span,
.ls-mall-review-summary em {
    font-style: normal;
}

.ls-mall-review-dimensions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.ls-mall-review-dimensions span {
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(59, 130, 246, .08);
    color: var(--ls-primary);
    font-size: 12px;
}

.ls-mall-review-reply {
    padding: 8px 10px;
    border-radius: 6px;
    background: var(--ls-bg);
    color: var(--ls-text-secondary);
}

.ls-mall-review-append {
    margin-top: 8px;
    padding: 9px 10px;
    border-left: 3px solid var(--ls-primary);
    border-radius: 6px;
    background: var(--ls-card-bg);
}

.ls-mall-review-append b {
    color: var(--ls-primary);
    font-size: 12px;
}

.ls-mall-review-append p {
    margin-top: 5px;
}

.ls-mall-review-panel {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--ls-border);
}

.ls-mall-review-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.ls-mall-review-head h3 {
    margin: 0;
    color: var(--ls-text);
    font-size: 16px;
}

.ls-mall-review-head span,
.ls-mall-review-empty {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-review-list {
    display: grid;
    gap: 12px;
}

.ls-mall-review-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-review-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--ls-card-bg);
    color: var(--ls-text-muted);
}

.ls-mall-review-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-review-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ls-mall-review-title strong {
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-review-title em {
    color: #f59e0b;
    font-style: normal;
}

.ls-mall-review-item p {
    margin: 7px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.7;
}

.ls-mall-review-item time {
    display: block;
    margin-top: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-store-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.ls-mall-store-toolbar.is-no-categories {
    justify-content: flex-end;
}

.ls-mall-store-toolbar.is-no-categories .ls-mall-store-tabs {
    display: none;
}

.ls-mall-store-search {
    width: min(360px, 42vw);
    height: 38px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto auto;
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-store-search > i {
    color: var(--ls-text-muted);
    text-align: center;
    font-size: 16px;
}

.ls-mall-store-search-input {
    width: 100%;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-store-search-input::-webkit-search-cancel-button {
    display: none;
}

.ls-mall-store-search-clear,
.ls-mall-store-search-btn {
    height: 100%;
    border: 0;
    cursor: pointer;
}

.ls-mall-store-search-clear {
    width: 34px;
    background: transparent;
    color: var(--ls-text-muted);
}

.ls-mall-store-search-btn {
    padding: 0 13px;
    background: var(--ls-primary);
    color: var(--ls-card-bg);
    font-size: 13px;
}

.ls-mall-store-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ls-mall-store-filter {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 11px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
    transition: border-color .16s, color .16s, background .16s, transform .16s;
}

.ls-mall-store-filter:hover,
.ls-mall-store-filter.active {
    border-color: rgba(var(--ls-primary-rgb), .45);
    color: var(--ls-primary);
    background: var(--ls-primary-light);
    transform: translateY(-1px);
}

.ls-mall-store-filter em {
    color: inherit;
    font-style: normal;
    opacity: .72;
}

.ls-mall-store-sort {
    width: 150px;
    height: 34px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text);
    padding: 0 10px;
}

.ls-mall-store-loading {
    margin-bottom: 12px;
}

.ls-mall-store-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
    color: var(--ls-text-muted);
    font-size: 13px;
}

.ls-mall-store-pagination button {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 12px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    cursor: pointer;
}

.ls-mall-store-pagination button:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.ls-mall-shop-page {
    display: grid;
    gap: 16px;
}

.ls-mall-shop-page .ls-mall-card-head h2 {
    font-size: 18px;
}

.ls-mall-shop-detail-hero {
    position: relative;
    min-height: 314px;
    display: block;
    overflow: hidden;
    margin-bottom: 0;
    padding: 0;
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-shop-detail-hero.has-cover {
    background: linear-gradient(135deg, #f7fbff 0%, #edf6f8 52%, #f8fbf0 100%);
}

.ls-mall-shop-cover-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: transparent;
}

.ls-mall-shop-detail-hero.no-cover .ls-mall-shop-cover-bg {
    display: none;
}

.ls-mall-shop-cover-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-shop-cover-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .76), rgba(255, 255, 255, .52) 48%, rgba(255, 255, 255, .7)),
        linear-gradient(180deg, rgba(15, 23, 42, .08), rgba(255, 255, 255, .42));
}

.ls-mall-shop-hero-content {
    position: relative;
    z-index: 1;
    min-height: 314px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px 24px;
    align-content: start;
    padding: 34px;
}

.ls-mall-shop-brand {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.ls-mall-shop-detail-logo {
    width: 96px;
    height: 96px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, .92);
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-primary);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .16);
}

.ls-mall-shop-detail-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-shop-detail-meta,
.ls-mall-shop-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.ls-mall-shop-detail-meta a,
.ls-mall-shop-detail-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .84);
    color: var(--ls-text-secondary);
    font-size: 12px;
    text-decoration: none;
    backdrop-filter: blur(10px);
}

.ls-mall-shop-detail-main {
    min-width: 0;
}

.ls-mall-shop-detail-main h1 {
    margin: 0;
    color: var(--ls-text);
    font-size: 32px;
    line-height: 1.2;
}

.ls-mall-shop-detail-main p {
    max-width: 680px;
    margin: 10px 0 0;
    color: var(--ls-text-secondary);
    font-size: 14px;
    line-height: 1.7;
}

.ls-mall-shop-detail-meta {
    margin-top: 14px;
}

.ls-mall-shop-actions {
    justify-content: flex-end;
    align-self: start;
    padding-top: 4px;
}

.ls-mall-shop-detail-stats {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.ls-mall-shop-detail-stats span {
    display: block;
    padding: 15px 16px;
    border: 1px solid rgba(255, 255, 255, .46);
    border-radius: 8px;
    background: rgba(255, 255, 255, .38);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .05);
    -webkit-backdrop-filter: blur(18px) saturate(1.25);
    backdrop-filter: blur(18px) saturate(1.25);
}

.ls-mall-shop-detail-stats b {
    display: block;
    overflow: hidden;
    color: var(--ls-text);
    font-size: 22px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-shop-detail-stats em {
    display: block;
    margin-top: 5px;
    color: var(--ls-text-muted);
    font-size: 12px;
    font-style: normal;
}

.ls-mall-shop-announcement {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 24px auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, .46);
    border-radius: 6px;
    background: rgba(255, 255, 255, .34);
    color: var(--ls-text-secondary);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
    -webkit-backdrop-filter: blur(18px) saturate(1.25);
    backdrop-filter: blur(18px) saturate(1.25);
    cursor: pointer;
    text-align: left;
    transition: background .16s, border-color .16s, color .16s, transform .16s;
}

.ls-mall-shop-announcement:hover {
    border-color: rgba(var(--ls-primary-rgb), .36);
    background: rgba(255, 255, 255, .78);
    color: var(--ls-primary);
    transform: translateY(-1px);
}

.ls-mall-shop-announcement i {
    color: var(--ls-primary);
    font-size: 16px;
}

.ls-mall-shop-announcement strong,
.ls-mall-shop-announcement em {
    white-space: nowrap;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
}

.ls-mall-shop-announcement em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ls-mall-shop-announcement span {
    min-width: 0;
    overflow: hidden;
    color: var(--ls-text-secondary);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-shop-announcement-dialog {
    max-width: min(560px, calc(100vw - 64px));
    color: var(--ls-text-secondary);
    font-size: 14px;
    line-height: 1.8;
    white-space: normal;
}

.ls-mall-shop-promise-strip {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.ls-mall-shop-promise-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 2px 10px;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    background: var(--ls-card-bg);
}

.ls-mall-shop-promise-item i {
    grid-row: span 2;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--ls-primary-light);
    color: var(--ls-primary);
    font-size: 20px;
}

.ls-mall-shop-promise-item strong {
    overflow: hidden;
    color: var(--ls-text);
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-shop-promise-item span {
    overflow: hidden;
    color: var(--ls-text-muted);
    font-size: 12px;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-shop-decor-section {
    padding: 18px;
}

.ls-mall-shop-decor-section .ls-mall-product-grid {
    margin-top: 14px;
}

.ls-mall-shop-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.ls-mall-shop-products,
.ls-mall-shop-info-card,
.ls-mall-shop-review-card {
    padding: 18px;
}

.ls-mall-shop-side {
    display: grid;
    gap: 16px;
}

.ls-mall-shop-products .ls-mall-store-toolbar {
    margin-top: 12px;
}

.ls-mall-shop-info-list,
.ls-mall-shop-review-list {
    display: grid;
    gap: 12px;
}

.ls-mall-shop-info-row {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-shop-info-row i {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--ls-card-bg);
    color: var(--ls-primary);
    font-size: 18px;
}

.ls-mall-shop-info-row strong {
    display: block;
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-shop-info-row p {
    margin: 5px 0 0;
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.6;
}

.ls-mall-shop-review-empty {
    padding: 18px;
    border-radius: 8px;
    background: var(--ls-bg);
    color: var(--ls-text-muted);
    font-size: 13px;
    text-align: center;
}

.ls-mall-shop-review-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ls-border-light);
    border-radius: 8px;
    background: var(--ls-bg);
}

.ls-mall-shop-review-avatar {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--ls-card-bg);
    color: var(--ls-primary);
}

.ls-mall-shop-review-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ls-mall-shop-review-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ls-mall-shop-review-title strong {
    overflow: hidden;
    color: var(--ls-text);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-shop-review-title em {
    color: #f59e0b;
    font-size: 12px;
    font-style: normal;
    white-space: nowrap;
}

.ls-mall-shop-review-product {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: var(--ls-primary);
    font-size: 12px;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-shop-review-item p {
    margin: 6px 0 0;
    color: var(--ls-text-secondary);
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-shop-review-reply {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 6px;
    background: var(--ls-card-bg);
    color: var(--ls-text-secondary);
    font-size: 12px;
    line-height: 1.5;
}

.ls-mall-shop-review-item time {
    display: block;
    margin-top: 6px;
    color: var(--ls-text-muted);
    font-size: 12px;
}

@media (max-width: 980px) {
    .ls-mall-shop-hero {
        grid-template-columns: 1fr;
    }

    .ls-mall-category-flyout {
        display: none;
    }

    .ls-mall-hero-slides {
        height: 300px;
    }

    .ls-mall-hero-slide {
        grid-template-columns: 1fr;
    }

    .ls-mall-banner-copy {
        padding: 34px 34px 42px;
    }

    .ls-mall-hero-slide.has-image .ls-mall-banner-copy {
        width: 100%;
    }

    .ls-mall-banner-copy h2 {
        max-width: 420px;
        font-size: 30px;
    }

    .ls-mall-banner-copy p {
        max-width: 360px;
    }

    .ls-mall-banner-visual {
        display: none;
    }

    .ls-mall-service-strip,
    .ls-mall-promo-row,
    .ls-mall-hot-grid,
    .ls-mall-floor-grid,
    .ls-mall-mosaic-grid,
    .ls-mall-category-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ls-mall-category-row {
        --ls-mall-category-card-height: 260px;
    }

    .ls-mall-catalog-controls {
        grid-template-columns: 1fr 1fr;
    }

    .ls-mall-catalog-search-btn,
    .ls-mall-catalog-clear {
        grid-column: 1 / -1;
    }

    .ls-mall-catalog-result .ls-mall-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ls-mall-floor-hero,
    .ls-mall-wide-ad,
    .ls-mall-mosaic-feature,
    .ls-mall-category-image-card {
        grid-column: 1 / -1;
    }

    .ls-mall-floor-hero {
        grid-template-columns: 1fr;
    }

    .ls-mall-mosaic-feature {
        min-height: 360px;
    }

    .ls-mall-mosaic-feature img {
        height: 240px;
    }

    .ls-mall-shell {
        grid-template-columns: 1fr;
    }

    .ls-mall-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ls-mall-store-manage-grid,
    .ls-mall-message-grid,
    .ls-mall-store-decoration-grid,
    .ls-mall-store-profile-image-control {
        grid-template-columns: 1fr;
    }

    .ls-mall-message-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ls-mall-message-replies {
        grid-template-columns: 1fr;
    }

    .ls-mall-message-replies > div:last-child {
        grid-template-columns: 1fr;
    }

    .ls-mall-store-profile-image-preview {
        display: none;
    }

    .ls-mall-buy-fields,
    .ls-mall-buy-address-manual,
    .ls-mall-buy-region {
        grid-template-columns: 1fr;
    }

    .ls-mall-shop-hero-content {
        grid-template-columns: 1fr;
        padding: 24px;
    }

    .ls-mall-shop-brand {
        grid-template-columns: 78px minmax(0, 1fr);
        align-items: center;
    }

    .ls-mall-shop-detail-logo {
        width: 78px;
        height: 78px;
    }

    .ls-mall-shop-detail-main h1 {
        font-size: 24px;
    }

    .ls-mall-shop-actions {
        justify-content: flex-start;
    }

    .ls-mall-shop-detail-stats,
    .ls-mall-shop-promise-strip,
    .ls-mall-shop-body {
        grid-template-columns: 1fr;
    }

    .ls-mall-store-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ls-mall-seller-summary {
        grid-template-columns: 1fr;
    }

    .ls-mall-seller-rule-grid,
    .ls-mall-requirements,
    .ls-mall-apply-grid,
    .ls-mall-apply-doc-grid {
        grid-template-columns: 1fr;
    }

    .ls-mall-apply-step {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .ls-mall-apply-step span {
        text-align: left;
    }

    .ls-mall-apply-doc-control {
        grid-template-columns: 1fr;
    }

    .ls-mall-apply-doc-clear {
        width: 100%;
    }

    .ls-mall-no-store-rule-grid .ls-mall-seller-rule-card,
    .ls-mall-no-store-card,
    .ls-mall-apply-card {
        padding: 20px;
    }

    .ls-mall-no-store-card {
        align-items: flex-start;
    }

    .ls-mall-no-store-rule-grid .ls-mall-seller-rule-card ul {
        grid-template-columns: 1fr;
    }

    .ls-mall-dashboard-metrics,
    .ls-mall-dashboard-insights,
    .ls-mall-dashboard-panels {
        grid-template-columns: 1fr;
    }

    .ls-mall-sales-grid {
        grid-template-columns: 1fr;
    }

    .ls-mall-product-batch-toolbar {
        grid-template-columns: 1fr 1fr;
    }

    .ls-mall-product-batch-toolbar select,
    .ls-mall-product-batch-value,
    .ls-mall-product-batch-category,
    .ls-mall-product-batch-apply,
    .ls-mall-product-batch-export {
        grid-column: 1 / -1;
    }

    .ls-mall-products-page .ls-mall-seller-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .ls-mall-message-item {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .ls-mall-message-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    .ls-mall-products-page .ls-mall-seller-actions {
        grid-column: 2;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .ls-mall-stock-stats,
    .ls-mall-stock-item {
        grid-template-columns: 1fr;
    }

    .ls-mall-stock-actions {
        justify-content: flex-start;
    }

    .ls-mall-sales-flow-item {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .ls-mall-sales-flow-money {
        grid-column: 1 / -1;
        justify-items: start;
        text-align: left;
    }

    .ls-mall-form-row {
        grid-template-columns: 1fr 1fr;
    }

    .ls-mall-sku-batch,
    .ls-mall-order-detail-layout,
    .ls-mall-order-detail-grid,
    .ls-mall-logistics-detail-grid,
    .ls-mall-refund-status-grid,
    .ls-mall-refund-detail-grid {
        grid-template-columns: 1fr;
    }

    .ls-mall-order-detail-facts {
        grid-template-columns: 1fr 1fr;
    }

    .ls-mall-order-detail-actions-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .ls-mall-order-product-row {
        grid-template-columns: 68px minmax(0, 1fr);
    }

    .ls-mall-order-product-row .ls-mall-order-cover {
        width: 68px;
        height: 68px;
    }

    .ls-mall-order-product-money {
        grid-column: 1 / -1;
        justify-items: start;
        text-align: left;
    }

    .ls-mall-order-detail-action-row {
        justify-content: flex-start;
    }

    .ls-mall-order-detail-aside-card dl div {
        grid-template-columns: 76px minmax(0, 1fr);
    }

    .ls-mall-detail-service,
    .ls-mall-detail-note-grid {
        grid-template-columns: 1fr;
    }

    .ls-mall-spec-table div {
        grid-template-columns: 112px minmax(0, 1fr);
    }

    .ls-mall-detail-pricebox {
        align-items: flex-start;
        flex-direction: column;
    }

    .ls-mall-product-category-option {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .ls-mall-product-category-option em {
        grid-column: 2;
    }

    .ls-mall-buy-fields {
        grid-template-columns: 1fr;
    }

    .ls-mall-buy-address-manual {
        grid-template-columns: 1fr;
    }

    .ls-mall-order-table-head {
        display: none;
    }

    .ls-mall-order-row-head {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 6px 10px;
        padding: 10px 12px;
    }

    .ls-mall-order-row-head em {
        margin-left: 0;
    }

    .ls-mall-order-row-body {
        grid-template-columns: 68px minmax(0, 1fr);
        align-items: start;
        padding: 12px;
    }

    .ls-mall-order-row-amount,
    .ls-mall-order-row-pay,
    .ls-mall-order-row-actions {
        grid-column: 1 / -1;
    }

    .ls-mall-order-row-amount,
    .ls-mall-order-row-pay {
        grid-template-columns: auto 1fr;
        align-items: center;
    }

    .ls-mall-order-actions {
        justify-content: flex-end;
    }

    .ls-mall-order-detail-summary {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .ls-mall-order-detail-summary em {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .ls-mall-product-detail {
        grid-template-columns: 1fr;
    }

    .ls-mall-detail-gallery {
        width: 100%;
    }

    .ls-mall-detail-cover {
        width: 100%;
        height: min(520px, 82vw);
    }

    .ls-mall-detail-zoom-preview {
        display: none !important;
    }

    .ls-mall-detail-thumbs {
        gap: 10px;
        justify-content: flex-start;
        overflow-x: auto;
        padding: 2px;
    }

.ls-mall-detail-thumb {
        flex-basis: 64px;
        width: 64px;
        height: 64px;
    }
}

.ls-mall-coupon-page {
    display: grid;
    gap: 16px;
}

.ls-mall-coupon-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ls-mall-coupon-stats span {
    background: #fff;
    border: 1px solid var(--ls-border, #e5e7eb);
    border-radius: 8px;
    color: #475569;
    font-size: 13px;
    padding: 12px 14px;
}

.ls-mall-coupon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 414px));
    gap: 12px;
    justify-content: start;
    padding-top: 12px;
}

.ls-mall-coupon-card {
    align-items: center;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    min-height: 82px;
    overflow: visible;
    padding: 12px;
}

.ls-mall-coupon-mark,
.ls-mall-context-coupon-mark {
    align-items: center;
    background: #fff7ed;
    border-radius: 8px;
    color: #c2410c;
    display: flex;
    justify-content: center;
    min-height: 62px;
    padding: 8px 6px;
    text-align: center;
}

.ls-mall-coupon-mark strong,
.ls-mall-context-coupon-mark strong {
    font-size: 24px;
    line-height: 1;
}

div.ls-mall-coupon-value {
    align-items: center;
    background: #fff7ed;
    border-right: 1px dashed #fed7aa;
    color: #c2410c;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 16px;
    text-align: center;
}

div.ls-mall-coupon-value strong {
    font-size: 22px;
    line-height: 1.2;
}

div.ls-mall-coupon-value span,
.ls-mall-coupon-info em {
    color: #64748b;
    font-size: 12px;
    font-style: normal;
    margin-top: 6px;
}

.ls-mall-coupon-info {
    min-width: 0;
    padding: 0;
}

.ls-mall-coupon-info h3 {
    color: #111827;
    font-size: 14px;
    line-height: 1.35;
    margin: 0 0 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-coupon-detail {
    display: grid;
    gap: 14px;
}

.ls-mall-coupon-detail-hero {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 14px;
    border: 1px solid rgba(248, 113, 113, .22);
    border-radius: 10px;
    background: linear-gradient(135deg, #fff7ed, #fff);
}

.ls-mall-coupon-detail-hero > span {
    width: 68px;
    height: 68px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #ffedd5;
    color: #c2410c;
    font-size: 28px;
    font-weight: 800;
}

.ls-mall-coupon-detail-hero h3 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    line-height: 1.35;
}

.ls-mall-coupon-detail-hero p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 13px;
}

.ls-mall-coupon-detail-rules {
    display: grid;
    gap: 10px;
}

.ls-mall-coupon-detail-rules p {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 12px;
    margin: 0;
    color: #475569;
    font-size: 13px;
    line-height: 1.5;
}

.ls-mall-coupon-detail-rules span {
    color: #94a3b8;
}

.ls-mall-coupon-detail-rules strong {
    min-width: 0;
    color: #0f172a;
    font-weight: 700;
}

.ls-mall-coupon-detail-note {
    padding: 12px 14px;
    border-radius: 8px;
    background: #f8fafc;
    color: #64748b;
    font-size: 13px;
    line-height: 1.65;
}

.ls-dialog.ls-mall-coupon-detail-modal {
    width: min(520px, calc(100vw - 32px));
}

.ls-mall-coupon-claim,
.ls-mall-coupon-badge {
    align-items: center;
    align-self: center;
    background: #2563eb;
    border: 0;
    border-radius: 7px;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    height: 34px;
    justify-content: center;
    min-width: 56px;
    padding: 0 10px;
    white-space: nowrap;
}

.ls-mall-coupon-claim:disabled {
    background: #cbd5e1;
    color: #475569;
    cursor: not-allowed;
}

.ls-mall-coupon-badge {
    background: #f1f5f9;
    color: #334155;
}

.ls-mall-coupon-list {
    display: grid;
    gap: 12px;
}

.ls-mall-promotions-page .ls-mall-coupon-stats {
    margin: 16px 0;
}

.ls-mall-context-coupons {
    display: grid;
    gap: 10px;
    margin: 12px 0;
    padding: 12px;
    border: 1px solid rgba(248, 113, 113, .22);
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(255, 247, 237, .88), rgba(255, 255, 255, .96));
}

.ls-mall-home-coupons {
    margin: 18px 0;
    padding: 12px;
    overflow: visible;
}

.ls-mall-home-coupons .ls-mall-context-coupon-list {
    gap: 10px;
}

.ls-mall-home-coupons .ls-mall-context-coupon {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.ls-mall-shop-coupons {
    margin: 14px 0;
}

/* PC 店铺页优惠券最多三列，不足三张时自动铺满可用宽度。 */
.ls-mall-shop-coupons .ls-mall-context-coupon-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
}

.ls-mall-shop-coupons.is-coupon-count-1 .ls-mall-context-coupon-list {
    grid-template-columns: 1fr;
}

.ls-mall-shop-coupons.is-coupon-count-2 .ls-mall-context-coupon-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ls-mall-product-coupons.is-compact {
    gap: 12px;
    margin: 14px 0 16px;
}

.ls-mall-product-coupons .ls-mall-context-coupon-head {
    align-items: center;
}

.ls-mall-product-coupons .ls-mall-context-coupon-head > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.ls-mall-product-coupons .ls-mall-context-coupon-list {
    grid-template-columns: 1fr;
}

.ls-mall-coupon-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 10px;
    border: 1px solid rgba(239, 68, 68, .24);
    border-radius: 7px;
    background: #fff;
    color: #ef4444;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.ls-mall-coupon-more b {
    min-width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fee2e2;
    color: #dc2626;
    font-size: 11px;
}

.ls-mall-coupon-list-dialog > p {
    margin: 0 0 14px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.6;
}

.ls-mall-coupon-dialog-list {
    display: grid;
    gap: 12px;
    max-height: min(62vh, 560px);
    overflow: auto;
    padding-right: 4px;
}

.ls-dialog.ls-mall-coupon-list-modal {
    width: min(820px, calc(100vw - 32px));
}

.ls-mall-coupon-list-modal .ls-dialog-body {
    max-width: 100%;
}

.ls-mall-coupon-dialog-list .ls-mall-coupon-card {
    min-height: 100px;
}

.ls-mall-context-coupon-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.ls-mall-context-coupon-head strong {
    color: var(--ls-text);
    font-size: 15px;
}

.ls-mall-context-coupon-head span {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-context-coupon-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 414px));
    gap: 10px;
    justify-content: start;
}

.ls-mall-context-coupon {
    display: grid;
    align-items: center;
    gap: 10px;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    overflow: visible;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}

.ls-mall-context-coupon-value {
    display: grid;
    gap: 4px;
    justify-items: center;
    padding: 10px 12px;
    border-right: 1px dashed rgba(251, 146, 60, .35);
    color: #dc2626;
}

.ls-mall-context-coupon-value b {
    font-size: 16px;
    line-height: 1.2;
    white-space: nowrap;
}

.ls-mall-context-coupon-value span,
.ls-mall-context-coupon-info span {
    color: var(--ls-text-muted);
    font-size: 12px;
}

.ls-mall-context-coupon-info {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 0;
}

.ls-mall-context-coupon-info strong,
.ls-mall-context-coupon-info span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ls-mall-context-coupon-info strong {
    color: var(--ls-text);
    font-size: 13px;
}

.ls-mall-context-coupon-claim {
    align-self: center;
    min-width: 56px;
    height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 7px;
    background: #2563eb;
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}

.ls-mall-context-coupon-claim:disabled {
    color: #475569;
    cursor: not-allowed;
    background: #cbd5e1;
}

.ls-mall-coupon-row {
    align-items: center;
    border: 1px solid var(--ls-border, #e5e7eb);
    border-radius: 8px;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    padding: 14px;
}

.ls-mall-coupon-row strong,
.ls-mall-coupon-row span,
.ls-mall-coupon-row em {
    display: block;
}

.ls-mall-coupon-row span,
.ls-mall-coupon-row em {
    color: #64748b;
    font-size: 13px;
    font-style: normal;
    margin-top: 5px;
}

.ls-mall-coupon-dialog {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ls-mall-coupon-dialog .is-wide {
    grid-column: 1 / -1;
}

@media (max-width: 860px) {
    .ls-mall-coupon-grid,
    .ls-mall-coupon-stats {
        grid-template-columns: 1fr;
    }

    .ls-mall-coupon-card {
        grid-template-columns: 58px minmax(0, 1fr) auto;
    }

    .ls-mall-coupon-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .ls-mall-context-coupon-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .ls-mall-context-coupon {
        grid-template-columns: 58px minmax(0, 1fr) auto;
    }

    .ls-mall-context-coupon-value,
    .ls-mall-context-coupon-claim {
        border: 0;
    }

    .ls-mall-context-coupon-claim {
        min-height: 38px;
    }
}

/* Mall layout polish: keep dense trade pages stable across cards, dialogs and toolbars. */
.ls-mall-page *,
.ls-dialog.ls-mall-buy-modal * {
    box-sizing: border-box;
}

.ls-mall-page input:focus,
.ls-mall-page select:focus,
.ls-mall-page textarea:focus,
.ls-dialog.ls-mall-buy-modal input:focus,
.ls-dialog.ls-mall-buy-modal select:focus,
.ls-dialog.ls-mall-buy-modal textarea:focus {
    outline: none;
    border-color: var(--ls-primary, #2563eb) !important;
    box-shadow: 0 0 0 3px rgba(var(--ls-primary-rgb, 37, 99, 235), .13) !important;
}

.ls-mall-cart-item {
    min-height: 112px;
}

.ls-mall-cart-price,
.ls-mall-cart-total {
    align-self: stretch;
    align-content: center;
}

.ls-mall-cart-price {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    justify-items: start;
}

.ls-mall-cart-total {
    padding-left: 12px;
    border-left: 1px solid #eef2f7;
}

.ls-mall-cart-price strong,
.ls-mall-cart-total strong,
.ls-mall-checkout-payable-row strong,
.ls-mall-buy-footer-total strong {
    font-variant-numeric: tabular-nums;
}

.ls-mall-cart-total .ls-mall-cart-delete {
    margin-top: 4px;
}

.ls-mall-checkout-summary,
.ls-mall-cart-summary {
    overflow: hidden;
}

.ls-mall-checkout-summary > p,
.ls-mall-checkout-payable-row,
.ls-mall-cart-summary p,
.ls-mall-cart-summary div {
    min-width: 0;
}

.ls-mall-checkout-summary > p b,
.ls-mall-cart-summary p b,
.ls-mall-cart-summary strong {
    min-width: 0;
    text-align: right;
    overflow-wrap: anywhere;
}

.ls-mall-product-batch-toolbar {
    grid-template-columns: 78px 86px minmax(170px, 220px) minmax(120px, 180px) minmax(160px, 220px) minmax(118px, 180px) minmax(150px, 210px);
    gap: 10px;
}

.ls-mall-product-batch-all-wrap {
    gap: 6px;
    min-width: 0;
}

.ls-mall-product-batch-all-wrap input[type="checkbox"],
.ls-mall-product-select input[type="checkbox"] {
    width: 14px !important;
    height: 14px !important;
    min-width: 14px !important;
    max-width: 14px !important;
    padding: 0 !important;
}

.ls-mall-product-select {
    width: 18px;
    min-width: 18px;
}

.ls-mall-products-page .ls-mall-seller-item {
    align-items: center;
}

.ls-dialog.ls-mall-buy-modal {
    margin: 24px auto;
}

.ls-mall-buy-modal .ls-dialog-body {
    max-height: calc(100vh - 176px);
    overscroll-behavior: contain;
}

.ls-mall-buy-modal .ls-dialog-footer {
    gap: 12px;
}

.ls-mall-buy-footer-total {
    flex-wrap: wrap;
    row-gap: 2px;
}

.ls-mall-pay-result-page {
    padding: 24px 20px 48px;
}

.ls-mall-pay-result {
    min-height: 178px;
    border-color: #dbe3ef;
}

.ls-mall-pay-result-actions a,
.ls-mall-pay-result-actions button {
    min-width: 118px;
    justify-content: center;
}

.ls-mall-no-store-rule-grid {
    align-items: stretch;
    gap: 16px;
}

.ls-mall-no-store-card {
    min-height: 132px;
    border-color: #dbeafe;
    background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
}

.ls-mall-apply-card .ls-mall-form,
.ls-mall-apply-form {
    gap: 18px;
}

.ls-mall-apply-doc-field {
    min-height: 172px;
}

@media (max-width: 900px) {
    .ls-mall-cart-price {
        padding: 0;
        border: 0;
        background: transparent;
    }

    .ls-mall-cart-total {
        padding-left: 0;
        border-left: 0;
        justify-items: start;
        text-align: left;
    }

    .ls-mall-product-batch-toolbar {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .ls-mall-buy-modal .ls-dialog-body {
        max-height: calc(100vh - 154px);
    }
}
