/* ── 追加样式：客服悬浮窗、下载进度、钱包、保证金 ── */
body{min-height:100vh}
#app{min-height:60vh}
.footer-wrap footer{margin-top:20px}

/* 首页商品卡按钮复位 */
.product-card .art-button{display:block;width:100%;padding:0;border:0;background:none}
.product-card .art-button:focus-visible{outline:2px solid #f60}
.product-name{display:block;cursor:pointer}
.card-shop button{font-size:15px;color:#bbb;line-height:1}
.card-shop button.liked{color:#e83a17}

/* 顶部客服电话 */
.hotline{display:flex;align-items:center;gap:6px;font-size:12px;color:#fff;background:#e83a17;padding:4px 10px;border-radius:2px}
.topbar .hotline{background:transparent;color:#ddd}

/* 支付页 */
.pay-wrap{display:grid;grid-template-columns:280px 1fr;gap:30px;background:#fff;padding:26px;margin-top:13px}
.pay-qr{width:220px;height:220px;border:1px solid #e5e5e5;padding:10px;background:#fff;display:flex;align-items:center;justify-content:center}
.pay-qr canvas{width:100%;height:100%;display:block;image-rendering:pixelated}
.pay-side{font-size:13px;color:#666}
.pay-amount{font:400 30px Arial;color:#209574;margin:6px 0 2px}
.pay-addr{display:flex;gap:8px;align-items:center;background:#f7f9fb;border:1px solid #ececec;padding:9px 10px;margin:10px 0;word-break:break-all;font-family:Consolas,monospace;font-size:12px;color:#333}
.pay-addr button{flex:none;font-size:12px;color:#3266ce}
.pay-meta{display:grid;grid-template-columns:86px 1fr;gap:6px 10px;margin:14px 0;font-size:12px;color:#888}
.pay-meta b{color:#333;font-weight:400}
.pay-count{color:#e83a17;font-weight:700}
.pay-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.pay-warn{font-size:12px;color:#ff6838;background:#fff8f5;border:1px solid #ffd9cc;padding:10px;margin-top:16px;line-height:1.8}

/* 下载弹层 */
.dl-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1200;padding:16px}
.dl-card{width:520px;max-width:100%;background:#fff;border-radius:4px;box-shadow:0 18px 60px #0005;overflow:hidden}
.dl-head{padding:18px 22px;border-bottom:1px solid #eee;display:flex;align-items:center;gap:10px}
.dl-head h3{font-size:15px;font-weight:700}
.dl-head .dot{width:8px;height:8px;border-radius:50%;background:#2fb344;box-shadow:0 0 0 3px #2fb34422}
.dl-body{padding:22px}
.dl-file{display:flex;justify-content:space-between;font-size:12px;color:#888;margin-bottom:10px}
.dl-file b{color:#333;font-weight:400}
.dl-bar{height:10px;background:#eef0f2;border-radius:6px;overflow:hidden}
.dl-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3ba55c,#5cc97a);transition:width .35s ease}
.dl-bar.bad i{background:linear-gradient(90deg,#e2563c,#f08a6a)}
.dl-meta{display:flex;justify-content:space-between;font-size:11px;color:#9aa0a6;margin-top:8px}
.dl-fail{border:1px solid #ffd2c6;background:#fff7f4;padding:14px;margin-top:16px;font-size:12px;color:#5a4a44;line-height:1.9;display:none}
.dl-fail.show{display:block}
.dl-fail h4{color:#d9482a;font-size:13px;margin-bottom:8px}
.dl-kv{display:grid;grid-template-columns:78px 1fr;gap:3px 8px;font-size:12px}
.dl-kv dt{color:#a08f88}
.dl-kv dd{margin:0;color:#43342e;word-break:break-all}
.dl-tip{margin-top:12px;color:#c2410c;font-weight:700}
.dl-actions{display:flex;gap:10px;justify-content:flex-end;padding:16px 22px;border-top:1px solid #eee;background:#fcfcfd}
.dl-actions .btn{cursor:pointer}

/* 客服悬浮窗 */
.cs-fab{position:fixed;right:22px;bottom:26px;z-index:1000;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e6e6e6;border-radius:30px;padding:8px 16px 8px 10px;box-shadow:0 6px 24px #0002;cursor:pointer;font-size:13px;color:#333}
.cs-fab:hover{border-color:#f0a06f}
.cs-fab img,.cs-fab .cs-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:#f6ede7;display:flex;align-items:center;justify-content:center;color:#c58f6c;font-size:14px}
.cs-fab small{display:block;color:#999;font-size:10px;line-height:1.4}
.cs-fab .cs-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;border-radius:9px;background:#e83a17;color:#fff;font-size:10px;line-height:17px;text-align:center;padding:0 4px}
.cs-panel{position:fixed;right:22px;bottom:84px;width:340px;max-width:calc(100vw - 24px);height:460px;max-height:calc(100vh - 120px);background:#fff;border-radius:6px;box-shadow:0 14px 50px #0003;display:flex;flex-direction:column;z-index:1001;overflow:hidden;border:1px solid #eee}
.cs-panel[hidden]{display:none}
.cs-head{background:#e83a17;color:#fff;padding:12px 14px;display:flex;align-items:center;gap:10px}
.cs-head b{font-size:13px;font-weight:400}
.cs-head small{display:block;font-size:10px;opacity:.85;margin-top:2px}
.cs-head .online{width:7px;height:7px;background:#7dff9b;border-radius:50%;display:inline-block;margin-right:4px}
.cs-head button{margin-left:auto;color:#fff;font-size:18px;line-height:1}
.cs-body{flex:1;overflow-y:auto;padding:14px;background:#f7f8fa}
.cs-msg{margin-bottom:12px;display:flex;flex-direction:column;align-items:flex-start}
.cs-msg.me{align-items:flex-end}
.cs-msg p{background:#fff;padding:9px 12px;border-radius:6px;font-size:12px;line-height:1.75;max-width:86%;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 2px #0000000d}
.cs-msg.me p{background:#ffe9dd;color:#7a3a17}
.cs-msg.system p{background:#fff8e6;border:1px solid #f5e3b3;color:#8a6d2f;max-width:100%}
.cs-msg time{font-size:9px;color:#b0b6bc;margin-bottom:4px}
.cs-quick{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 10px;background:#f7f8fa}
.cs-quick button{font-size:11px;border:1px solid #e2e2e2;background:#fff;border-radius:14px;padding:5px 10px;color:#666}
.cs-quick button:hover{border-color:#f0a06f;color:#e83a17}
.cs-input{display:flex;gap:8px;padding:10px;border-top:1px solid #eee;background:#fff}
.cs-input input{flex:1;min-width:0;font-size:12px;padding:8px 10px}
.cs-input button{background:#e83a17;color:#fff;border-radius:3px;padding:0 14px;font-size:12px}

/* 钱包 */
.wallet-card{background:#fff;margin-top:13px;padding:26px}
.wallet-top{display:flex;align-items:center;gap:16px;padding-bottom:20px;border-bottom:1px solid #f0f0f0}
.wallet-balance{font:400 34px Arial;color:#e85308}
.wallet-note{font-size:12px;color:#999;margin-top:6px;line-height:1.8}
.wallet-actions{display:flex;gap:10px;margin:18px 0 6px}
.wallet-tip{font-size:12px;color:#8a8a8a;background:#fafafa;border:1px dashed #e2e2e2;padding:12px;margin-top:16px;line-height:1.9}
.ledger-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #f4f4f4;font-size:12px;color:#666}
.ledger-row b{color:#e85308;font-weight:400}
.ledger-row .plus{color:#209574}

/* 保证金 */
.deposit-wrap{background:#fff;margin-top:13px;padding:26px}
.deposit-head{display:flex;gap:14px;align-items:center;padding-bottom:18px;border-bottom:1px solid #f0f0f0}
.deposit-head h2{font-size:18px}
.deposit-head p{font-size:12px;color:#999;margin-top:6px}
.deposit-grid{display:grid;grid-template-columns:240px 1fr;gap:26px;padding-top:22px}
.deposit-amount{font:400 32px Arial;color:#209574}
.deposit-status{display:inline-block;font-size:12px;padding:3px 10px;border-radius:12px;background:#fff2e8;color:#e06a2c;margin-left:8px;vertical-align:middle}
.deposit-status.ok{background:#edf8f0;color:#2f8b52}
.deposit-status.wait{background:#eef4ff;color:#3b6db5}
.deposit-steps{display:flex;gap:0;margin:18px 0 0;font-size:12px;color:#aaa}
.deposit-steps span{flex:1;padding:10px 0;border-top:3px solid #eee}
.deposit-steps span.on{border-color:#e85308;color:#e85308}
.shop-form{display:flex;flex-direction:column;gap:16px;max-width:520px;padding-top:20px}
.shop-form label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#717983}
.shop-form input,.shop-form textarea{font-size:13px}

/* 商品详情补丁 */
.pd-tag{display:inline-block;font-size:11px;color:#e85308;border:1px solid #ffd9c8;background:#fff6f0;padding:2px 8px;margin-bottom:10px}
.pd-title{font-size:19px;line-height:1.6;font-weight:700;margin-bottom:12px}
.pd-facts{display:flex;gap:26px;font-size:12px;color:#999;margin:16px 0}
.pd-facts b{color:#333;font-weight:400}
.pd-price{background:#fffaf7;border:1px solid #ffe3d5;padding:14px 18px;margin:16px 0;display:flex;align-items:baseline;gap:12px}
.pd-price b{font:400 30px Arial;color:#fb6e52}
.pd-price small{color:#999;font-size:12px}
.pd-actions{display:flex;gap:10px;margin:20px 0 8px;flex-wrap:wrap}

/* 通用 */
.section-pad{padding:20px}
.muted-sm{font-size:12px;color:#999;line-height:1.9}
.list-empty{padding:60px 20px;text-align:center;color:#aaa;font-size:13px}
.link-btn{color:#3266ce;cursor:pointer}
.tag-green{display:inline-block;font-size:11px;color:#2f8b52;background:#edf8f0;padding:2px 8px;border-radius:2px}
.steps-note{font-size:12px;color:#999;line-height:2;margin-top:10px}
.row-wrap{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.copy-ok{color:#2f8b52!important}

/* 订单详情补丁 */
.od-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.dl-entry{display:flex;align-items:center;gap:14px;background:#f7fcf9;border:1px solid #d7ecdf;padding:16px;margin-top:18px}
.dl-entry .ico{width:40px;height:40px;background:#e6f6ec;color:#2f8b52;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px}
.dl-entry div{flex:1}
.dl-entry b{display:block;font-size:13px;margin-bottom:5px}
.dl-entry small{color:#999;font-size:11px}
.refund-box{background:#fff8f5;border:1px solid #ffd9cc;padding:14px;margin-top:16px;font-size:12px;color:#7a4a38;line-height:1.9}

@media(max-width:800px){
  .pay-wrap,.deposit-grid{grid-template-columns:1fr}
  .pay-qr{margin:0 auto}
  .cs-fab{right:12px;bottom:16px;padding:6px 12px 6px 8px}
  .cs-panel{right:12px;bottom:70px;width:calc(100vw - 24px)}
  .wallet-top{flex-wrap:wrap}
  .dl-card{width:100%}
}

/* 修正：头部按钮可见性 / 下载图标宽度 */
.header-inner>.btn{color:#e83a17;background:#fff;border-color:#fff;font-weight:700;height:34px;margin-left:14px}
.header-inner>.btn:hover{background:#ffe9df;border-color:#ffe9df;color:#b62b0c}
.dl-entry .ico{flex:none;width:40px}
