*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent;}
body{background:#f4f5f7;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px;color:#333;line-height:1.5;padding-top:48px;padding-bottom:70px;}
button,a,div[onclick]{-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent;user-select:none;}
.page-wrap{width:100%;}
.navbar{position:fixed;top:0;left:0;right:0;z-index:100;height:48px;background:#fff;border-bottom:1px solid #e6e8eb;display:flex;align-items:center;justify-content:space-between;padding:0 12px;}
.nav-back{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.nav-title{position:absolute;left:0;right:0;text-align:center;font-size:16px;font-weight:500;color:#222;pointer-events:none;}
.nav-placeholder{width:32px;}
.nav-more{width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.nav-more svg{width:24px;height:24px;fill:#333;}

/* 图片懒加载样式 */
.img-lazy{
    background:#f0f2f5;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='%23ccc' stroke-width='1.5'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:center;
    background-size:40px 40px;
    min-height:200px;
    transition:opacity 0.4s ease, filter 0.4s ease;
    opacity:0;
    filter:blur(8px);
}
.img-lazy.loaded{opacity:1;filter:blur(0);background-image:none;}
.img-lazy.error{background-color:#fef2f2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23f33' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");background-size:24px;}

.goods-img-container{position:relative;width:100%;padding-top:100%;overflow:hidden;border-radius:8px;background:#f0f2f5;cursor:pointer;}
.goods-img-container img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease;}
.goods-img-container:active img{transform:scale(0.98);}

.goods-imgs{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:8px 0 16px;
}

/* 富文本详情图样式 */
.goods-desc{
    font-size:14px;
    color:#444;
    line-height:1.7;
    margin:12px 0;
    word-break:break-word;
    overflow-wrap:break-word;
}
.goods-desc img{
    max-width:100% !important;
    height:auto !important;
    display:block;
    margin:10px auto;
    border-radius:8px;
}
.goods-desc p{margin:6px 0;line-height:1.7;}
.goods-desc br{line-height:1.5;}
.goods-desc div{line-height:1.5;}

/* 图片查看器 */
.img-viewer-mask{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,0.92);display:none;align-items:center;justify-content:center;touch-action:pinch-zoom;}
.img-viewer-mask.show{display:flex;}
.img-viewer-mask img{max-width:95vw;max-height:90vh;object-fit:contain;border-radius:8px;animation:viewerIn 0.25s ease;}
@keyframes viewerIn{from{opacity:0;transform:scale(0.9);}to{opacity:1;transform:scale(1);}}
.img-viewer-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;}
.img-viewer-prev,.img-viewer-next{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.15);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;user-select:none;}
.img-viewer-prev{left:10px;}
.img-viewer-next{right:10px;}
.img-viewer-dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:6px;}
.img-viewer-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.35);cursor:pointer;transition:all 0.2s;}
.img-viewer-dot.active{background:#fff;transform:scale(1.2);}

.comment-img-wrap{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.comment-img{width:80px;height:80px;border-radius:6px;object-fit:cover;cursor:pointer;transition:opacity 0.3s;}
.comment-img:hover{opacity:0.85;}

.oper-mask{position:fixed;inset:0;background:rgba(0,0,0,0.15);z-index:9999;display:none;align-items:flex-end;justify-content:center;}
.oper-mask.show{display:flex;}
.oper-popup{width:calc(100% - 24px);max-width:600px;background:#fff;border-radius:16px;overflow:hidden;transform:translateY(100%);transition:transform 0.3s ease;margin-bottom:20px;}
.oper-mask.show .oper-popup{transform:translateY(0);}
.oper-item{height:48px;display:flex;align-items:center;justify-content:center;font-size:16px;border-bottom:1px solid #f0f0f0;cursor:pointer;background:#fff;}
.oper-item.edit{color:#1677ff;}
.oper-item.del{color:#f33;}
#closeOper{height:48px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#666;margin-top:8px;border-radius:16px;background:#fff;cursor:pointer;}
.seller-bar{background:#fff;padding:10px 12px;display:flex;align-items:center;gap:10px;border-bottom:4px solid #f0f0f0;}
.seller-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#f0f2f5;}
.seller-avatar img{width:100%;height:100%;object-fit:cover;}
.seller-info{flex:1;min-width:0;}
.seller-name{font-size:14px;font-weight:500;color:#222;margin-bottom:2px;}
.role-tag{display:inline-block;font-size:10px;padding:2px 6px;border-radius:6px;font-weight:500;}
.role-admin{color:#2563eb;background:#dbeafe;}
.role-user{color:#dc2626;background:#fee2e2;}
.role-official{color:#ffffff !important;background:linear-gradient(90deg, #000000, #d4af37);}
.card{background:#fff;border-bottom:1px solid #f0f0f0;padding:12px;border-radius:0;margin-bottom:8px;}
.card-title{font-size:15px;font-weight:700;color:#222;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f0f0f0;}

/* ==================== VIP 价格样式 ==================== */
.goods-price{font-size:22px;font-weight:700;color:#e93323;margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.goods-price del{font-size:12px;color:#999;font-weight:normal;}
.vip-badge{
    display:inline-flex;align-items:center;gap:2px;
    font-size:10px;padding:2px 6px;border-radius:5px;
    background:linear-gradient(135deg,#ff4655,#ff6b81);
    color:#fff;font-weight:600;line-height:1.4;
}
.vip-saved{font-size:11px;color:#16a34a;margin-left:4px;font-weight:500;}
.discount-tag{font-size:11px;padding:2px 6px;background:#fef2f2;color:#dc2626;border-radius:5px;font-weight:500;line-height:1.4;}

.goods-title{font-size:16px;font-weight:600;color:#222;margin-bottom:8px;}
.meta-row{display:flex;gap:12px;color:#666;font-size:12px;margin-bottom:8px;}
.tag-wrap{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.tag-item{font-size:11px;padding:2px 8px;border-radius:5px;font-weight:600;line-height:1.5;border:1px solid-transparent;}
.tag-green{color:#16a34a;background:#f0fdf4;border-color:#bbf7d0;}
.tag-red{color:#dc2626;background:#fef2f2;border-color:#fecaca;}
.tag-blue{color:#2563eb;background:#eff6ff;border-color:#bfdbfe;}
.tag-yellow{color:#ca8a04;background:#fefce8;border-color:#fde68a;}
.tag-gray{color:#64748b;background:#f1f5f9;border-color:#cbd5e1;}
.tag-cyan{color:#0891b2;background:#ecfeff;border-color:#a8f1ff;}
.tag-orange{color:#ea580c;background:#fff7ed;border-color:#fed7aa;}
.tag-purple{color:#9333ea;background:#faf5ff;border-color:#e9d5ff;}
.tag-benefit{color:#c71585;background:#fdeef5;border-color:#f9c6dd;}
.tag-vip{color:#fff;background:linear-gradient(135deg,#ff4655,#ff6b81);border:none;}

.ws-list{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0;}
.ws-item{font-size:11px;padding:2px 6px;border:1px solid #e6e8eb;border-radius:6px;background:#fafafa;color:#666;}
.ws-item.active{border-color:#e93323;background:#fef2f2;color:#e93323;}

.form-group{margin-bottom:12px;}
.form-label{display:block;font-size:12px;font-weight:600;color:#333;margin-bottom:6px;}
.form-input{width:100%;height:42px;padding:0 12px;border:1.5px solid #d9dce0;border-radius:9px;font-size:14px;background:#fff;outline:none;transition:border .2s;}
.form-input:focus{border-color:#e93323;box-shadow:0 0 0 3px rgba(233,51,35,0.06);}
.form-input.err{border-color:#dc2626;}
.error-tip{font-size:11px;color:#dc2626;margin-top:4px;display:none;}
.email-confirm-tip{font-size:12px;color:#e93323;margin-bottom:6px;display:none;}
textarea.form-input{height:auto;padding:10px 12px;resize:vertical;}
.qty-group{display:flex;align-items:center;gap:8px;}
.qty-btn{width:32px;height:32px;border:1px solid #d9dce0;border-radius:7px;background:#fff;font-size:16px;cursor:pointer;transition:all 0.2s;}
.qty-btn:hover{background:#ff4655;color:#fff;border-color:#ff4655;}
.qty-input{width:60px;text-align:center;border-radius:7px;}
.pay-list{display:grid;grid-template-columns:repeat(2, 1fr);gap:8px;overflow-x:hidden;}
.pay-item{display:flex;align-items:center;gap:8px;padding:10px 10px;border:1.5px solid #e8e8e8;border-radius:10px;cursor:pointer;font-size:12px;background:#fff;transition:all 0.2s;overflow:hidden;}
.pay-item:has(input:checked){border-color:#ff4655;background:rgba(255,70,85,0.05);box-shadow:0 2px 8px rgba(255,70,85,0.10);}
.pay-item input{accent-color:#ff4655;width:16px;height:16px;flex-shrink:0;}
.pay-item span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pay-icon-box{width:24px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:bold;font-size:12px;flex-shrink:0;}
.icon-balance{background:#ff7823;}
.icon-alipay{background:#1677ff;}
.price-summary{background:#f9fafb;border-radius:8px;padding:8px 10px;font-size:12px;margin-bottom:10px;}
.price-summary .line{display:flex;justify-content:space-between;margin-bottom:3px;color:#666;}
.price-summary .total{display:flex;justify-content:space-between;font-weight:600;font-size:15px;color:#222;padding-top:6px;border-top:1px solid #eee;margin-top:4px;}
.price-summary .total .num{color:#ff4655;font-size:17px;}
.price-summary .discount{color:#16a34a;}
.order-form{margin-top:10px;padding-top:10px;border-top:1px solid #f0f1f3;}

.bottom-bar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #e6e8eb;height:58px;display:flex;align-items:center;padding:0 12px;gap:10px;z-index:99;padding-bottom:env(safe-area-inset-bottom);}
.bottom-bar .btn-comment,.bottom-bar .btn-chat{width:70px;height:38px;border:none;border-radius:19px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.bottom-bar .btn-comment{background:#eff6ff;color:#2563eb;}
.bottom-bar .btn-chat{background:#eff6ff;color:#2563eb;text-decoration:none;}
.bottom-bar .owner-edit-box{flex:1;height:38px;background:#f5f5f5;border-radius:19px;display:flex;align-items:center;padding:0 6px 0 14px;cursor:pointer;overflow:hidden;}
.bottom-bar .owner-edit-box .edit-placeholder{flex:1;font-size:12px;color:#bbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;}
.bottom-bar .owner-edit-box .edit-icon{width:30px;height:30px;border-radius:50%;background:#ff4655;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(233,51,35,0.25);}
.bottom-bar .owner-manage-card{width:54px;height:38px;background:#fff;border:1px solid #e6e8eb;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;gap:1px;transition:all .2s;}
.bottom-bar .owner-manage-card:active{transform:scale(0.95);background:#f9fafb;}
.bottom-bar .owner-manage-card .manage-icon{font-size:15px;line-height:1;}
.bottom-bar .owner-manage-card .manage-text{font-size:14px;color:#666;font-weight:500;line-height:1;}
.bottom-bar .btn-buy{width:90px;height:38px;border-radius:19px;border:none;background:linear-gradient(90deg,#ff4655,#ff6b81);color:#fff;font-size:14px;font-weight:600;cursor:pointer;flex-shrink:0;margin-left:auto;}
.bottom-bar .btn-buy:disabled{opacity:.5;cursor:not-allowed;}
.new-comment-mask{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.35);z-index:99999;display:none;align-items:flex-end;}
.new-comment-mask.show{display:flex;}
.new-comment-box{width:100%;background:#fff;border-radius:20px 20px 0 0;padding:12px 16px 20px;transform:translateY(100%);transition:transform 0.3s ease;}
.new-comment-mask.show .new-comment-box{transform:translateY(0);}
.pop-drag-bar{width:80px;height:5px;background:#ddd;border-radius:99px;margin:0 auto 14px;}
.pop-gray-wrap{width:100%;background:#eeeeee;border-radius:20px;padding:14px;}
.pop-textarea{width:100%;min-height:30px;background:transparent;border:none;font-size:16px;resize:none;outline:none;}
.pop-textarea::placeholder{color:#bbbbbb;}
.pop-img-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.img-card{width:50px;height:50px;position:relative;border-radius:10px;overflow:hidden;background:#ddd;flex-shrink:0;}
.img-card img{width:100%;height:100%;object-fit:cover;}
.img-del{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,0.55);color:#fff;text-align:center;line-height:18px;font-size:14px;cursor:pointer;}
.pop-bottom-row{display:flex;justify-content:space-between;align-items:center;margin-top:16px;}
.pop-add-img-btn{width:45px;height:45px;border-radius:12px;background:#f0f0f0;border:1px solid #ddd;display:flex;align-items:center;justify-content:center;font-size:20px;color:#333;cursor:pointer;flex-shrink:0;}
.pop-submit-btn{background:#f32524;color:#fff;border:none;border-radius:999px;padding:8px 10px;font-size:16px;cursor:pointer;flex-shrink:0;}
.hide-file{display:none;}
.popup-mask{position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:9999;display:none;align-items:flex-end;}
.popup-wrap{width:100%;background:#fff;border-radius:16px 16px 0 0;max-height:85vh;overflow-y:auto;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom));transition:transform 0.3s ease;transform:translateY(100%);}
.popup-mask.show .popup-wrap{transform:translateY(0);}
.popup-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;}
.popup-title{font-size:16px;font-weight:600;}
.popup-close{font-size:24px;color:#999;cursor:pointer;}
.popup-img-upload{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0;align-items:center;}
.popup-img-item{width:70px;height:70px;position:relative;}
.popup-img-item img{width:100%;height:100%;object-fit:cover;border-radius:6px;}
.popup-img-item .del{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:#f33;color:#fff;text-align:center;line-height:18px;font-size:12px;cursor:pointer;}
.upload-btn{width:70px;height:70px;border:1px dashed #ccc;display:flex;align-items:center;justify-content:center;color:#999;border-radius:6px;cursor:pointer;}
.file-input{display:none;}
.popup-btns{display:flex;gap:12px;margin-top:18px;}
.popup-btns button{flex:1;height:42px;border-radius:10px;font-size:14px;cursor:pointer;}
.btn-cancel{border:1px solid #ddd;background:#fff;}
.btn-submit{bborder:none;background:#e93323;color:#fff;}
.comment-list{display:flex;flex-direction:column;gap:16px;}
.comment-item{border-bottom:1px solid #eee;}
.comment-main-area{padding-bottom:10px;cursor:pointer;}
.comment-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.comment-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;background:#f0f2f5;}
.comment-avatar img{width:100%;height:100%;object-fit:cover;}
.comment-user-info{flex:1;min-width:0;}
.comment-name-row{display:flex;align-items:center;gap:8px;}
.comment-nick{font-weight:500;font-size:13px;}
.comment-time{font-size:11px;color:#999;margin-top:2px;}
.comment-content{color:#333;line-height:1.7;margin-bottom:10px;white-space:pre-line;}
.comment-merchant-reply{background:#f8fafc;padding:10px;border-radius:8px;margin-bottom:10px;}
.reply-title{font-size:13px;color:#2563eb;font-weight:500;margin-bottom:4px;}
.reply-text{font-size:13px;color:#444;white-space:pre-line;line-height:1.6;}
.empty-comment{text-align:center;padding:40px 0;color:#999;}
.sub-reply-card{background:#eee;border-radius:10px;padding:12px;margin-top:12px;pointer-events:auto;position:relative;z-index:2;}
.sub-reply-list{display:flex;flex-direction:column;gap:10px;}
.sub-reply-item.hidden{display:none;}
.toggle-reply-btn{width:100%;margin-top:8px;text-align:center;color:#2563eb;font-size:13px;background:none;border:none;padding:4px 0;cursor:pointer;pointer-events:auto;position:relative;z-index:9;}
.sub-reply-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.sub-reply-avatar{width:26px;height:26px;border-radius:50%;overflow:hidden;}
.sub-reply-avatar img{width:100%;height:100%;object-fit:cover;}
.sub-reply-name{font-size:13px;font-weight:500;}
.sub-reply-time{font-size:11px;color:#999;margin-left:6px;}
.sub-reply-text{font-size:13px;color:#444;line-height:1.6;}
.nav-back svg{width:18px;height:18px;}
.comment-list {padding-bottom: 10px !important;}

/* ==========================================
   小红书风格购买弹窗 - 核心修改：价格&库存横向同排
   ========================================== */

.purchase-modal-mask {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 1000;
    display: none;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
}

.purchase-modal-mask.show {
    display: flex;
}

.purchase-modal {
    width: 100%;
    max-height: 90vh;
    background: #fff;
    border-radius: 20px 20px 0 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: translateY(100%);
    transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
    box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.15);
}

.purchase-modal-mask.show .purchase-modal {
    transform: translateY(0);
}

/* 顶部拖拽条 */
.purchase-modal-header {
    position: relative;
    padding: 10px 0 6px;
    flex-shrink: 0;
    background: #fff;
    border-bottom: none;
}

.purchase-modal-drag-bar {
    width: 36px;
    height: 4px;
    background: #e0e0e0;
    border-radius: 2px;
    margin: 0 auto;
}

/* 关闭按钮 */
.purchase-modal-close {
    position: absolute;
    right: 16px;
    top: 16px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: 16px;
    cursor: pointer;
    line-height: 1;
}

/* ===== 商品信息卡片：核心修改 ===== */
.modal-product-card {
    display: flex;
    padding: 12px;
    gap: 10px;
    background: #fff;
    border-bottom: none;
}

.modal-product-img {
    width: 80px;
    height: 80px;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
    background: #f0f0f0;
}

/* 核心修改：改成横向可换行布局，标题独占一行，价格和库存同排 */
.modal-product-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: row; /* 主轴改为横向 */
    flex-wrap: wrap; /* 允许换行 */
    align-items: center; /* 垂直居中对齐 */
    gap: 4px; /* 元素间距更紧凑 */
    padding: 2px 0;
}

/* 标题独占一行 */
.modal-product-title {
    width: 100%; /* 强制占满整行 */
    font-size: 14px;
    font-weight: 600;
    color: #222;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 价格区域：和库存同排 */
.modal-product-price {
    display: flex;
    align-items: baseline; /* 价格基线对齐，更美观 */
    gap: 6px;
    flex-shrink: 0; /* 不允许收缩，避免价格变形 */
    margin-top: 0; /* 去掉原来的上边距 */
}

.modal-current-price {
    font-size: 20px;
    font-weight: 700;
    color: #ff2442;
    letter-spacing: -0.5px;
}

.modal-original-price {
    font-size: 12px;
    color: #aaa;
    text-decoration: line-through;
}

/* 库存区域：和价格同排，靠右对齐 */
.modal-stock-info {
    margin-left: auto; /* 自动左边距，推到最右侧 */
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    margin-top: 0; /* 去掉原来的上边距 */
}

/* 库存标签更紧凑 */
.stock-tag {
    display: inline-block;
    font-size: 10px;
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: 500;
    white-space: nowrap; /* 不换行 */
}

.stock-tag.in-stock {
    color: #52c41a;
    background: #f6ffed;
}

.stock-tag.out-stock {
    color: #999;
    background: #f5f5f5;
}

/* 弹窗滚动区 */
.purchase-modal-body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px;
    overscroll-behavior: contain;
}

/* 表单微调 */
.purchase-modal-body .form-group {
    margin-bottom: 12px;
}

.purchase-modal-body .form-label {
    font-size: 13px;
    font-weight: 500;
    color: #333;
    margin-bottom: 6px;
}

.purchase-modal-body .form-input {
    height: 42px;
    border-radius: 9px;
    border: 1px solid #e8e8e8;
    background: #fafafa;
    padding: 0 10px;
    font-size: 13px;
}

.purchase-modal-body textarea.form-input {
    height: auto;
    padding: 10px;
}

/* 支付列表 */
.pay-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.pay-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fafafa;
    cursor: pointer;
}

.pay-item:has(input:checked) {
    border-color: #ff2442;
    background: #fff5f5;
}

.pay-item input {
    accent-color: #ff2442;
    width: 16px;
    height: 16px;
}

.pay-icon-box {
    width: 24px;
    height: 24px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 11px;
    font-weight: bold;
}

.icon-balance { background: #ff9500; }
.icon-alipay { background: #1677ff; }

/* 价格汇总 */
.price-summary {
    background: #fafafa;
    borderRadius: 10px;
    padding: 10px;
    margin: 12px 0;
    font-size: 12px;
    border: none;
}

.price-summary .line {
    display: flex;
    justify-content: space-between;
    margin-bottom: 4px;
    color: #666;
}

.price-summary .total {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 600;
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px dashed #e0e0e0;
}

.price-summary .total .num {
    color: #ff2442;
    font-size: 18px;
}

/* 底部按钮 */
.purchase-modal-footer {
    padding: 10px 12px;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    border-top: none;
    background: #fff;
}

.purchase-submit-btn {
    width: 100%;
    height: 46px;
    border: none;
    border-radius: 23px;
    background: linear-gradient(135deg, #ff2442, #ff6b81);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 15px rgba(255, 36, 66, 0.35);
}

.purchase-submit-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(255, 36, 66, 0.4);
}

.purchase-submit-btn:active {
    transform: scale(0.99);
}

.purchase-submit-btn:disabled {
    background: #ccc;
    box-shadow: none;
    cursor: not-allowed;
}

/* ==================== APP风格Toast（完全修复版） ==================== */
.app-toast {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    z-index: 10001;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}
.app-toast.show {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}
.app-toast-content {
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #fff;
    padding: 12px 24px;
    border-radius: 24px;
    font-size: 14px;
    max-width: 80vw;
    text-align: center;
    line-height: 1.5;
}
.app-toast-content.confirm {
    padding: 16px 20px;
    border-radius: 16px;
    max-width: 280px;
}
.app-toast-content.confirm span {
    display: block;
    margin-bottom: 16px;
}
.app-toast-content.confirm .confirm-btns {
    display: flex;
    gap: 12px;
}
.app-toast-content.confirm .confirm-btns button {
    flex: 1;
    height: 40px;
    border: none;
    border-radius: 20px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s;
    pointer-events: auto;
}
.app-toast-content.confirm .confirm-btns button:first-child {
    background: #f0f0f0;
    color: #666;
}
.app-toast-content.confirm .confirm-btns button:last-child {
    background: linear-gradient(90deg, #ff4655, #ff6b81);
    color: #fff;
}
