/* ===== 业务页面组件样式（补充 style.css） ===== */
input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}
input[type=text],input[type=number],input[type=date],input[type=tel],input:not([type]),select,textarea{
  width:100%;border:1px solid var(--line);background:#FBF8FC;border-radius:12px;padding:11px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--pink);background:#fff}
textarea{resize:vertical}
.field{margin-bottom:12px}.field>label{display:block;font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:6px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.card-soft{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);margin-bottom:12px}
.card-soft>summary{cursor:pointer;font-size:15px;list-style:none}.card-soft[open]>summary{margin-bottom:12px}
.section-h{font-size:16px;font-weight:800;color:var(--ink);margin:18px 2px 12px;display:flex;align-items:center;gap:8px}
.section-h small{font-weight:400;color:var(--ink3);font-size:12px}
.block{display:block;width:100%}.inline{display:inline-block}.lg{padding:14px;font-size:15px}.sm{padding:7px 12px;font-size:12px;border-radius:10px}
.btn-pay{display:block;width:100%;border:0;border-radius:14px;padding:14px;font-size:15px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#F7A25D,#F06FA8);box-shadow:0 5px 16px rgba(240,111,168,.3);cursor:pointer}
.btn-del{border:0;background:#FDECEF;color:var(--red);border-radius:10px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer}
.btn-ghost{background:#F3ECF6;color:var(--ink);border:1px solid var(--line)}
.form-actions{display:flex;gap:10px;margin-top:6px}.form-actions .btn-primary,.form-actions .btn-ghost{flex:1}
.inline-form{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}
.tip-line,.tip-inline{font-size:12px;color:var(--ink3);margin-top:8px}.tip-inline{margin-left:6px}
.login-tip,.admin-tip{background:#FFF4E8;color:#B5742F;font-size:12.5px;padding:10px 12px;border-radius:12px;margin-bottom:10px}
.admin-tip{background:#F0ECFB;color:#6E4FC4}
.text-price{color:var(--pink-deep)}.text-warn{color:var(--red)}
.total-green{color:#3FA463;font-weight:800}.free-red{color:var(--red);font-weight:800}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(40,25,50,.45);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.modal-mask[hidden]{display:none}
.modal-card{background:#fff;border-radius:18px;padding:18px;width:100%;max-width:380px;max-height:86vh;overflow:auto;position:relative}
.modal-card h3{font-size:16px;margin-bottom:12px}.modal-x{position:absolute;right:12px;top:10px;border:0;background:var(--bg);width:30px;height:30px;border-radius:50%;font-size:18px;color:var(--ink2);cursor:pointer}

/* ===== 工作台 ===== */
.work-top{background:var(--grad);padding:14px 14px 16px;border-radius:0 0 22px 22px}
.store-switcher{display:flex;align-items:center;gap:8px;color:#fff}.ss-label{font-size:12px;opacity:.9}
.store-switcher select{background:rgba(255,255,255,.92);border:0;border-radius:10px;padding:7px 10px;font-weight:700;flex:1}
.quick-mini{display:flex;gap:10px;margin-top:10px}.qm-btn{flex:1;text-align:center;background:rgba(255,255,255,.2);color:#fff;font-size:12px;font-weight:700;padding:9px;border-radius:12px}
.qm-btn.disabled{opacity:.5;pointer-events:none}
.todo-panel{background:#fff;border-radius:var(--radius);padding:12px;box-shadow:var(--shadow-sm);margin-bottom:6px}
.todo-title{font-size:15px;font-weight:800;margin-bottom:12px}.todo-title small{color:var(--ink3);font-weight:400;font-size:12px}
.todo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.todo-item{background:#FAF6FB;border-radius:12px;padding:10px;text-align:center}.todo-item b{display:block;font-size:24px;color:var(--purple);font-weight:800}
.todo-item span{font-size:12.5px;color:var(--ink2);font-weight:600}.todo-item.alert b{color:var(--red)}
.lock-banner{background:#FFF4E8;color:#B5742F;font-size:12.5px;padding:10px 12px;border-radius:12px;margin:10px 0}.lock-banner a{color:var(--pink-deep);font-weight:700}
.func-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.grid-item{background:#fff;border-radius:14px;padding:14px 8px;text-align:center;box-shadow:var(--shadow-sm);position:relative;transition:transform .12s}
.grid-item .gi-ico{font-size:28px;display:block;margin-bottom:6px;position:relative}
.grid-item b{font-size:14px;display:block;font-weight:800}.grid-item small{display:block;font-size:11.5px;color:var(--ink3);margin-top:3px}
.grid-item.locked{opacity:.45}.grid-item.dragging{opacity:.6;transform:scale(1.06);box-shadow:0 10px 26px rgba(160,120,190,.3)}
.gi-badge{position:absolute;top:2px;right:8px;background:var(--red);color:#fff;font-size:9px;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-style:normal}

/* ===== 台位 ===== */
.stat-strip{display:flex;gap:8px;background:var(--grad);border-radius:var(--radius);padding:14px;margin-bottom:12px;color:#fff;align-items:center}
.stat-strip.static{background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}
.stat-strip>div{flex:1;text-align:center}.stat-strip b{display:block;font-size:18px}.stat-strip span{font-size:11px;opacity:.85}
.stat-strip.static span{color:var(--ink3)}.ss-go{font-size:12px;opacity:.9}
.add-zone{margin-bottom:10px}
.zone-card{background:#fff;border-radius:var(--radius);padding:12px;box-shadow:var(--shadow-sm);margin-bottom:12px}
.zone-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.zone-head b{font-size:15px}.zone-count{font-size:11px;color:var(--ink3)}
.zone-add{margin-left:auto;border:0;background:linear-gradient(135deg,#F6A6C8,#C9A0F0);color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:10px;cursor:pointer}
.add-table-form{display:none;gap:8px;margin-bottom:10px;flex-wrap:wrap}.add-table-form.open{display:flex}
.add-table-form input{flex:1;min-width:90px}
.seat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.zone-empty{grid-column:1/-1;text-align:center;color:var(--ink3);font-size:12px;padding:14px}
.seat{border-radius:12px;padding:10px 6px;text-align:center;background:#EEF6EF;border:1.5px solid #CDE9D2;display:flex;flex-direction:column;gap:3px;align-items:center}
.seat.idle .seat-idle-txt{font-size:11px;color:#4FA86A;font-weight:700}
.seat.using{background:#FDF1F6;border-color:#F3B9D2}.seat.warn{background:#FFF3E0;border-color:#F7B95F;animation:pulseW 1s infinite}
.seat.overdue{background:#FDECEF;border-color:#E0526D;animation:pulseW .7s infinite}
@keyframes pulseW{50%{box-shadow:0 0 0 4px rgba(247,166,95,.18)}}
.seat-no{font-weight:800;font-size:13px}.seat-cd{font-size:11px;font-weight:700;color:var(--pink-deep)}.seat-ch{font-size:10px;color:var(--ink3)}
.channel-opts{display:flex;flex-direction:column;gap:6px}.channel-opts label{font-size:13px;background:#FAF6FB;border-radius:10px;padding:9px 10px}
.pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.pkg-cell{position:relative;background:#FAF6FB;border:1.5px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:3px;cursor:pointer}
.pkg-cell input{position:absolute;opacity:0}.pkg-cell b{font-size:13px}.pkg-price{font-size:12px;color:var(--pink-deep);font-weight:800}.pkg-cell small{font-size:10px;color:var(--ink3)}
.pkg-cell:has(input:checked){border-color:var(--pink);background:#FDF1F6}
.to-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.to-head b{font-size:16px}
.tag-idle,.tag-using{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:700}.tag-idle{background:#EEF6EF;color:#4FA86A}.tag-using{background:#FDF1F6;color:var(--pink-deep)}
.zone-tag{font-size:11px;background:#F0ECFB;color:#6E4FC4;padding:3px 9px;border-radius:20px}
.using-card{background:linear-gradient(160deg,#fff,#FDF4F9)}
.clock-box{text-align:center;padding:10px 0}.clock{font-size:34px;font-weight:900;letter-spacing:1px;color:var(--purple);font-variant-numeric:tabular-nums}
.clock-sub{font-size:12px;color:var(--ink2);margin-top:2px}.using-card.warn .clock{color:#E8902F}.using-card.overdue .clock{color:var(--red)}
.amt-rows{margin-top:8px}.amt-row{display:flex;justify-content:space-between;padding:8px 2px;border-bottom:1px dashed var(--line);font-size:13px}
.amt-row.total{border-bottom:0;font-size:16px;font-weight:800;margin-top:4px}.amt-row.total b{color:var(--pink-deep);font-size:18px}
.extra-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.extra-chips span{background:#F3ECF6;border-radius:20px;padding:4px 10px;font-size:11px}
.extra-pick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.extra-btn{border:1px solid var(--line);background:#FAF6FB;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}

/* ===== 通用管理列表 ===== */
.mgmt-form .row2,.mgmt-form .row3{margin-bottom:0}
.mgmt-list{display:flex;flex-direction:column;gap:9px}
.mgmt-row{background:#fff;border-radius:14px;padding:12px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:10px}
.mr-main{flex:1;min-width:0}.mr-main b{font-size:14px;display:block}.mr-main span{font-size:12px;color:var(--ink2);display:block}
.mr-main small{font-size:11px;color:var(--ink3);display:block}.sort-no{color:var(--ink3);font-weight:400;font-size:11px}
.mr-ops{display:flex;gap:6px;align-items:center;flex-shrink:0}.mr-ops.vertical{flex-direction:column}
.mr-ops form{display:inline}
.bill-row{background:#fff;border-radius:12px;padding:11px 12px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:10px}
.br-main{flex:1;min-width:0}.br-main b{font-size:13.5px;display:block}.br-main span,.br-main small{font-size:11px;color:var(--ink2);display:block}.br-note{color:var(--ink3)}
.br-amt{color:var(--pink-deep);font-size:15px;white-space:nowrap}
.range-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.range-chip{background:#fff;border-radius:20px;padding:7px 14px;font-size:12px;font-weight:700;box-shadow:var(--shadow-sm)}.range-chip.on{background:var(--grad);color:#fff}
.range-custom{display:flex;gap:6px;align-items:center}.range-custom input{padding:7px 8px;width:auto}
.range-label{font-size:12px;color:var(--ink2);margin-bottom:10px;font-weight:700}
.seg-tabs{display:flex;background:#fff;border-radius:12px;padding:4px;gap:4px;margin-bottom:12px;box-shadow:var(--shadow-sm)}
.seg-tabs a{flex:1;text-align:center;padding:8px;border-radius:9px;font-size:13px;font-weight:700;color:var(--ink2)}
.seg-tabs a.on{background:var(--grad);color:#fff}

/* ===== 会员 ===== */
.member-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.member-card{background:#fff;border-radius:16px;padding:14px;box-shadow:var(--shadow-sm)}
.mc-top{display:flex;gap:12px;align-items:center}.mc-avatar{width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}
.mc-info b{font-size:15px}.mc-info span{display:block;font-size:12px;color:var(--ink2)}
.lv{font-size:10px;padding:2px 7px;border-radius:10px;font-weight:700}.lv-普通{background:#EEF;background:#F0ECF6;color:#6E5E7C}.lv-VIP{background:#FDF1F6;color:var(--pink-deep)}.lv-金卡{background:#FFF4E0;color:#D08A2A}.lv-黑金{background:#ECEAF2;color:#3B2B45}
.mc-stats{display:flex;margin:12px 0}.mc-stats>div{flex:1;text-align:center}.mc-stats b{display:block;font-size:17px;color:var(--purple)}.mc-stats span{font-size:11px;color:var(--ink3)}
.mc-ops{display:flex;gap:6px;flex-wrap:wrap}.recharge-form{display:flex;gap:6px;flex:1;min-width:120px}.recharge-form input{padding:7px 9px}
.rule-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.rule-grid .field{margin-bottom:8px}
.rule-read ul{padding-left:18px;margin-top:8px}.rule-read li{font-size:13px;margin:4px 0;color:var(--ink2)}
.wallet-card{background:var(--grad);border-radius:var(--radius);padding:16px;color:#fff;margin-bottom:14px}
.wc-row{display:flex;justify-content:space-between;padding:7px 0;font-size:14px}.wc-row a{color:#fff;text-decoration:underline}
.form-sec-title{font-size:13px;font-weight:800;margin:14px 2px 8px}
.preset-row{display:flex;gap:8px;margin-bottom:10px}.preset{flex:1;border:1px solid var(--line);background:#FBF8FC;border-radius:10px;padding:9px 0;text-align:center;font-weight:700;font-size:13px;cursor:pointer}
.preset.on{border-color:var(--pink);background:#FDF1F6;color:var(--pink-deep)}
.record-list{background:#fff;border-radius:14px;box-shadow:var(--shadow-sm)}.rec-row{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px}.rec-row:last-child{border:0}.rec-row b{color:#3FA463}

/* ===== 豆仓 ===== */
.wh-import{margin-bottom:10px}
.wh-toolbar{display:flex;gap:8px;margin:10px 0}.wh-toolbar input{flex:1}.wh-toolbar select{width:auto}
.wh-cats{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:10px}
.wh-cat{flex-shrink:0;background:#fff;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;box-shadow:var(--shadow-sm)}.wh-cat.on{background:var(--grad);color:#fff}
.wh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wh-cell{background:#fff;border-radius:12px;padding:8px;text-align:center;box-shadow:var(--shadow-sm);border-top:3px solid #ddd}
.wh-cell.wh-mid{border-top-color:#F7A25D}.wh-cell.wh-low{border-top-color:var(--red);opacity:.85}
.wc-color{width:100%;height:34px;border-radius:8px;border:1px solid rgba(0,0,0,.06);margin-bottom:5px}
.wc-code{font-weight:800;font-size:12px}.wc-stock{font-size:10px;color:var(--ink2)}.wc-gram{font-size:9px;color:var(--ink3)}
.wc-ops{margin-top:5px}.wc-ops summary{font-size:10px;color:var(--purple);cursor:pointer;list-style:none}.wc-form{margin:4px 0}.wc-form .inline-form{gap:4px}.wc-form select,.wc-form input{padding:5px 6px;font-size:11px}

/* ===== 寄存/烫豆/呼叫/消息/公告 ===== */
.storage-card{background:#fff;border-radius:14px;padding:12px;box-shadow:var(--shadow-sm)}
.sc-top{display:flex;gap:10px}.sc-img{width:56px;height:56px;border-radius:10px;object-fit:cover}.sc-img.noimg{display:flex;align-items:center;justify-content:center;background:#FAF6FB;font-size:24px}
.sc-info{flex:1;min-width:0}.sc-info b{display:block;font-size:14px}.sc-info span,.sc-info small{display:block;font-size:12px;color:var(--ink2);word-break:break-all}
.state-on{color:#3FA463;font-size:11px}.state-off{color:var(--ink3);font-size:11px}
.queue-row{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:10px}
.queue-row.st-waiting,.queue-row.st-warn{border-left:3px solid var(--red)}
.qr-main{flex:1;min-width:0}.qr-main b{font-size:13.5px;display:block}.qr-main span{font-size:11px;color:var(--ink2)}.q-state{font-size:11px;color:var(--purple);font-weight:700;white-space:nowrap}
.pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulseW 1s infinite;margin-left:4px}
.msg-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;color:var(--ink2)}
.msg-list{display:flex;flex-direction:column;gap:9px}.msg-row{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);display:flex;gap:10px;align-items:center}
.msg-row.unread{border-left:3px solid var(--pink)}.msg-body{flex:1}.msg-body b{display:block;font-size:13.5px}.msg-body span{display:block;font-size:12px;color:var(--ink2)}.msg-body small{font-size:10px;color:var(--ink3)}
.msg-bold{font-weight:800!important;color:var(--red)!important}.msg-go{border:0;background:#F3ECF6;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:700;color:var(--purple);cursor:pointer;white-space:nowrap}
.ann-row{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);display:flex;gap:10px;align-items:flex-start}
.ar-main{flex:1}.ar-main b{display:block;font-size:14px}.ar-main span{display:block;font-size:12px;color:var(--ink2)}.ar-main small{font-size:10px;color:var(--ink3)}
.rate-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rate-bar label{font-size:13px;font-weight:700}

/* ===== 代拼/成品（管理+顾客） ===== */
.dp-order{background:#fff;border-radius:12px;box-shadow:var(--shadow-sm);margin-bottom:9px}
.dp-order>summary{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}
.dpo-main{display:flex;gap:10px;align-items:center;flex:1;min-width:0}.dpo-thumb{width:44px;height:44px;border-radius:9px;object-fit:cover}.dpo-thumb.noimg{display:flex;align-items:center;justify-content:center;background:#FAF6FB;font-size:20px}
.dpo-main b{display:block;font-size:13.5px}.dpo-main span{font-size:11px;color:var(--ink2)}
.dpo-detail{padding:0 12px 12px;border-top:1px dashed var(--line)}.dpo-detail p{font-size:13px;margin:7px 0}.dpo-full{max-height:240px;object-fit:contain;border-radius:10px;margin:8px 0}.dpo-time{color:var(--ink3);font-size:11px}
.dp-price-line{text-align:center;font-size:15px;margin:6px 0 12px}.dp-price-line b{color:var(--pink-deep);font-size:22px}
.dp-list,.dp-hall{display:flex;flex-direction:column;gap:9px}.dp-card{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm)}
.dp-head{display:flex;justify-content:space-between;font-size:13px}.dp-state{color:var(--purple);font-size:11px}.dp-info{display:flex;justify-content:space-between;margin:8px 0;font-size:13px}.dp-money{color:var(--pink-deep)}.dp-meta{font-size:11px;color:var(--ink2)}
.goods-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.goods-admin-card{background:#fff;border-radius:12px;padding:9px;box-shadow:var(--shadow-sm)}.goods-admin-card img{width:100%;height:110px;object-fit:cover;border-radius:9px}.ga-noimg{height:110px;display:flex;align-items:center;justify-content:center;background:#FAF6FB;font-size:30px;border-radius:9px}
.goods-admin-card b{display:block;font-size:13px;margin:6px 0 2px}.ga-price{font-size:11px;color:var(--ink2)}
.goods-market{display:flex;flex-direction:column;gap:10px}.gm-card{background:#fff;border-radius:12px;box-shadow:var(--shadow-sm)}.gm-card>summary{list-style:none;cursor:pointer}
.gm-card>summary{display:flex;gap:10px;padding:10px}.gm-img{width:72px;height:72px;border-radius:10px;overflow:hidden;flex-shrink:0}.gm-img img{width:100%;height:100%;object-fit:cover}.gm-img span{display:flex;height:100%;align-items:center;justify-content:center;font-size:28px}
.gm-body{flex:1;min-width:0}.gm-body b{font-size:14px;display:block}.gm-desc{font-size:11px;color:var(--ink3);display:block}.gm-foot{display:flex;justify-content:space-between;margin-top:6px}.gm-detail{padding:0 12px 12px;font-size:12.5px;color:var(--ink2)}.gm-seller{font-size:11px;color:var(--ink3)}
.goods-row{background:#fff;border-radius:12px;padding:10px;box-shadow:var(--shadow-sm);display:flex;gap:10px;align-items:center;margin-bottom:9px}
.gr-img{width:58px;height:58px;border-radius:9px;overflow:hidden;flex-shrink:0}.gr-img img{width:100%;height:100%;object-fit:cover}.gr-img span{display:flex;height:100%;align-items:center;justify-content:center;font-size:24px}
.gr-body{flex:1;min-width:0}.gr-name{font-weight:700;font-size:13.5px}.gr-desc{font-size:11px;color:var(--ink3)}.gr-foot{display:flex;justify-content:space-between;font-size:12px;margin-top:3px}

/* ===== 门店管理/列表/详情 ===== */
.store-mgmt-list{display:flex;flex-direction:column;gap:10px}
.store-mgmt-card{background:#fff;border-radius:14px;padding:12px;box-shadow:var(--shadow-sm);border:2px solid transparent}
.store-mgmt-card.cur{border-color:var(--pink)}.smc-head{display:flex;gap:10px;margin-bottom:10px}
.smc-logo{width:48px;height:48px;border-radius:12px;object-fit:cover}.smc-logo.txt-logo{display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:800}
.smc-info{flex:1;min-width:0}.smc-info b{font-size:14px}.smc-info span,.smc-info small{display:block;font-size:11px;color:var(--ink2);word-break:break-all}.cur-tag{background:var(--pink);color:#fff;font-size:10px;padding:2px 7px;border-radius:10px}
.list-toolbar{display:flex;gap:8px;margin-bottom:12px}.list-toolbar input{flex:1}.list-toolbar select{width:auto}
.store-list{display:flex;flex-direction:column;gap:10px}
.store-row{background:#fff;border-radius:14px;padding:12px;box-shadow:var(--shadow-sm);display:flex;gap:10px;align-items:center}
.sr-logo{width:52px;height:52px;border-radius:12px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad);color:#fff;font-size:22px;font-weight:800}.sr-logo img{width:100%;height:100%;object-fit:cover}
.sr-info{flex:1;min-width:0}.sr-info b{display:block;font-size:14px}.sr-info span,.sr-info small{display:block;font-size:11px;color:var(--ink2)}.sr-seats{font-size:11px;margin-top:2px}.sr-go{font-size:22px;color:var(--ink3)}
.store-detail .sd-head{display:flex;gap:12px;background:#fff;border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm)}
.sd-logo{width:56px;height:56px;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--grad);color:#fff;font-size:24px;font-weight:800;flex-shrink:0}.sd-logo img{width:100%;height:100%;object-fit:cover}
.sd-head h2{font-size:17px}.sd-sub{font-size:11px;color:var(--ink2);margin:3px 0}.sd-addr{font-size:12px;color:var(--ink3)}
.sd-seats{display:flex;background:#fff;border-radius:14px;padding:14px;margin-top:10px;box-shadow:var(--shadow-sm)}.sd-seats>div{flex:1;text-align:center}.sd-seats b{display:block;font-size:20px}.sd-seats span{font-size:11px;color:var(--ink3)}
.sd-rows{background:#fff;border-radius:14px;padding:6px 14px;margin-top:10px;box-shadow:var(--shadow-sm)}.sd-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;gap:12px}.sd-row:last-child{border:0}.sd-row b{font-weight:600;text-align:right}
.sd-notice{background:#FFF4E8;color:#B5742F;border-radius:12px;padding:10px 12px;font-size:12.5px;margin-top:10px}
.sd-layout{margin-top:12px}.sdl-title{font-weight:800;font-size:13px;margin-bottom:8px}.sd-btns{display:flex;gap:10px;margin-top:14px}.sd-btns a{flex:1;text-align:center}

/* ===== 预约 ===== */
.bk-row{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);display:flex;gap:12px;align-items:center;margin-bottom:9px}
.bk-date{width:54px;text-align:center;background:#FDF1F6;border-radius:10px;padding:8px 4px;flex-shrink:0}.bk-date b{display:block;font-size:13px;color:var(--pink-deep)}.bk-date span{font-size:11px;color:var(--ink2)}
.bk-info{flex:1;min-width:0}.bk-info b{font-size:13.5px;display:block}.bk-info span,.bk-info small{display:block;font-size:11px;color:var(--ink2)}
.bk-state{font-size:10px;padding:2px 7px;border-radius:10px}.st-pending{color:#E8902F}.st-confirmed{color:#3FA463}.st-done{color:var(--ink3)}
.bk-list .bk-card{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);margin-bottom:9px}.bk-head{display:flex;justify-content:space-between;font-size:14px;font-weight:700;margin-bottom:6px}.bk-row-txt{font-size:12.5px;color:var(--ink2);margin:3px 0}

/* ===== 首页 ===== */
.home-top{display:flex;gap:9px;align-items:center;padding:12px 14px;background:var(--grad);border-radius:0 0 18px 18px}
.loc-pill{border:0;background:rgba(255,255,255,.25);color:#fff;border-radius:22px;padding:10px 16px;font-size:14px;font-weight:800;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:4px}.loc-pill small{opacity:.9;margin-left:4px;font-size:12px}
.searchbar{flex:1}.searchbar input{width:100%;border:0;border-radius:20px;padding:9px 14px;background:rgba(255,255,255,.95)}
.notice-bar{display:flex;align-items:center;gap:8px;background:#fff;margin:10px 14px 0;padding:9px 12px;border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden}.nb-ico{flex-shrink:0}.nb-track{overflow:hidden;white-space:nowrap;font-size:12px;color:var(--ink2)}.nb-item{margin-right:26px}
.banner{margin:12px 14px}.banner-in{background:linear-gradient(120deg,#FFD9E8,#E7DBFA);border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.banner-in b{font-size:16px}.banner-in span{font-size:12px;color:var(--ink2);width:100%}.banner-btn{background:#fff;color:var(--pink-deep);font-size:12px;font-weight:800;padding:6px 14px;border-radius:20px}
.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:4px 14px;margin-bottom:6px}
.qi{text-align:center;font-size:11px;color:var(--ink)}.qi-ico{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 5px;position:relative}
.qi-ico.c1{background:#FFE9F1}.qi-ico.c2{background:#E9F7EF}.qi-ico.c3{background:#FFF3E0}.qi-ico.c4{background:#EEF1FD}.qi-ico.c5{background:#F3ECF6}
.hot-tag{position:absolute;top:-6px;right:-8px;background:linear-gradient(135deg,#FF6B6B,#F06FA8);color:#fff;font-style:normal;font-size:8px;padding:1px 5px;border-radius:8px;font-weight:800}
.sec-title{display:flex;justify-content:space-between;align-items:center;margin:14px 14px 8px}.sec-title h2{font-size:15px;font-weight:800}.more{font-size:12px;color:var(--pink-deep);font-weight:700}
.hscroll{display:flex;gap:10px;overflow-x:auto;padding:2px 14px 8px}.hscroll>*{flex-shrink:0}
.store-card{width:140px;background:#fff;border-radius:14px;padding:10px;box-shadow:var(--shadow-sm)}
.sc-logo{width:40px;height:40px;border-radius:11px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;overflow:hidden;margin-bottom:6px}.sc-logo img{width:100%;height:100%;object-fit:cover}
.sc-name{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-meta{font-size:10.5px;color:var(--ink2);margin:2px 0}.sc-seats{font-size:10.5px}.sc-addr{font-size:10px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:0 14px}.goods-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}.gc-img{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;font-size:26px;background:#fff;overflow:hidden}.gc-img img{width:100%;height:100%;object-fit:cover;display:block}.gc-name{font-size:10.5px;padding:5px 6px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gc-price{font-size:12px;color:var(--pink-deep);font-weight:800;padding:2px 6px 7px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px}.pat-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}.pc-img{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;font-size:34px;background:#fff;overflow:hidden}.pc-img img{width:100%;height:100%;object-fit:cover;display:block}.pc-name{font-size:12.5px;font-weight:700;padding:7px 8px 0}.pc-tag{font-size:10.5px;color:var(--ink3);padding:2px 8px 8px}
.loc-pickers{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.loc-pickers select{flex:1;min-width:100px;height:46px;font-size:16px;font-weight:700;padding:0 12px;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer}
.loc-pickers select:focus{border-color:var(--pink);outline:none}
.loc-pickers select option{font-size:15px;padding:6px}

/* ===== 图纸广场/生成器 ===== */
.pat-head{display:flex;gap:10px;padding:12px 14px}.ph-gen{flex:1;background:var(--grad);color:#fff;border-radius:12px;padding:11px;font-weight:800;font-size:14px;text-align:center}.ph-gen small{display:block;font-weight:400;font-size:10px;opacity:.9}
.ph-up{border:0;background:#fff;border-radius:12px;padding:0 16px;font-weight:700;color:var(--purple);box-shadow:var(--shadow-sm);cursor:pointer}
.upload-pattern{display:none;margin:0 14px 12px}.upload-pattern.open{display:block}.upload-pattern input,.upload-pattern textarea{margin-bottom:9px}
.cat-tabs{display:flex;gap:7px;overflow-x:auto;padding:4px 14px 10px}.cat-tabs a{flex-shrink:0;background:#fff;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;box-shadow:var(--shadow-sm)}.cat-tabs a.on{background:var(--grad);color:#fff}
.cat-pick{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.cat-opt{border:1.5px solid var(--line);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;background:#FBF8FC}.cat-opt input{display:none}.cat-opt.on{border-color:var(--pink);background:#FDF1F6;color:var(--pink-deep)}
.pat-waterfall{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px}
.pw-item{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer}.pw-img{height:150px;display:flex;align-items:center;justify-content:center;font-size:34px;background:#FAF6FB}.pw-img img{width:100%;height:100%;object-fit:cover}.pw-name{font-size:12.5px;font-weight:700;padding:7px 8px 0}.pw-meta{font-size:10.5px;color:var(--ink3);padding:2px 8px 8px}.pw-item .btn-del{margin:0 8px 8px;width:calc(100% - 16px)}
.pat-preview img{width:100%;border-radius:10px;margin-bottom:10px}.pat-preview p{font-size:12px;color:var(--ink2);margin-bottom:10px}
.gen-intro{font-size:12.5px;color:var(--ink2);line-height:1.6}.upload-box{display:block;border:2px dashed var(--pink);border-radius:14px;padding:26px;text-align:center;color:var(--pink-deep);font-weight:700;background:#FDF4F9;cursor:pointer;margin-bottom:12px}
.gen-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.canvas-wrap{overflow:auto;background:#FAF6FB;border-radius:12px;padding:8px;text-align:center}.canvas-wrap canvas{max-width:100%;height:auto;image-rendering:pixelated}
.gen-summary{text-align:center;font-size:14px;margin:10px 0}.gen-summary b{color:var(--purple)}
.color-stats{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow:auto;margin-bottom:12px}.cs-item{display:flex;align-items:center;gap:5px;background:#fff;border-radius:20px;padding:4px 10px;font-size:11px;box-shadow:var(--shadow-sm)}.cs-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.1)}.cs-item em{font-style:normal;color:var(--ink3)}
.gen-actions{display:flex;gap:10px}.gen-actions button{flex:1}

/* ===== 我的 ===== */
.me-header{background:var(--grad);padding:20px 16px;border-radius:0 0 22px 22px}
.me-user{display:flex;gap:12px;align-items:center;color:#fff}.me-avatar{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800}
.me-meta b{font-size:18px;display:block}.me-meta span{font-size:12px;opacity:.9}.me-auth{display:flex;gap:10px;margin-top:14px}.me-auth .btn-primary,.me-auth .btn-ghost{flex:1}
.role-tag{font-size:10px;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,.25);margin-left:6px}
.sec-badge{background:var(--red);color:#fff;font-size:10px;min-width:17px;height:17px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.logout-form{margin-top:18px}
.quick-call{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}.qc-btn{border:1px solid var(--line);background:#FBF8FC;border-radius:20px;padding:6px 12px;font-size:12px;cursor:pointer}

/* 认证页 */
.auth-wrap{padding:40px 24px}.auth-card{background:#fff;border-radius:20px;padding:28px 22px;box-shadow:var(--shadow)}.auth-logo{width:64px;height:64px;border-radius:18px;background:var(--grad);color:#fff;font-size:30px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.auth-card h2{text-align:center;font-size:21px}.auth-sub{text-align:center;color:var(--ink3);font-size:12px;margin:6px 0 20px}.auth-foot{text-align:center;margin-top:16px;font-size:13px}.auth-tip{text-align:center;margin-top:12px;font-size:11px;color:var(--ink3);background:#FAF6FB;padding:8px;border-radius:10px}

/* 地图选点弹层 */
.mp-search{display:flex;gap:8px;margin-bottom:8px}.mp-search input{flex:1}
.mp-sug{max-height:170px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
.mp-sug-item{padding:9px 11px;font-size:13px;font-weight:600;border-bottom:1px solid var(--line);cursor:pointer}
.mp-sug-item:last-child{border:0}.mp-sug-item small{display:block;font-size:11px;color:var(--ink3);font-weight:400}
.mp-box{position:relative;height:300px;border-radius:12px;overflow:hidden;background:#E9EEF2;margin-bottom:8px}
.mp-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);font-size:30px;z-index:5;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.3))}
.mp-addr{font-size:13px;font-weight:700;line-height:1.5}.mp-coord{font-size:11px;color:var(--ink3);margin:4px 0 10px}
/* 表单卡片 / logo */
.form-card{background:#fff;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}
.logo-row{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.logo-preview{width:64px;height:64px;border-radius:16px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;overflow:hidden;flex-shrink:0}
.logo-preview img{width:100%;height:100%;object-fit:cover}
.upload-btn{display:inline-block;background:#F3ECF6;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer}

/* 未入驻/普通会员看到的锁定引导 */
.lock-hero{background:#fff;border-radius:var(--radius);padding:26px 20px;text-align:center;box-shadow:var(--shadow);margin-bottom:14px}
.lock-hero .lh-ico{font-size:46px;margin-bottom:8px}.lock-hero h3{font-size:18px;margin-bottom:8px}
.lock-hero p{font-size:13px;color:var(--ink2);line-height:1.7;margin-bottom:16px}

/* 全局图片放大灯箱 */
.global-lb{position:fixed;inset:0;background:rgba(20,12,28,.92);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px}
.global-lb[hidden]{display:none}
.global-lb img{max-width:96vw;max-height:78vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5);transition:transform .15s;cursor:zoom-in}
.lb-bar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;color:#fff;font-size:14px}
.lb-bar #lbCap{opacity:.9}
#lbClose{width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:24px;cursor:pointer}
.lb-hint{color:rgba(255,255,255,.6);font-size:12px;margin-top:12px}
img.zoomable{cursor:zoom-in}

/* ===== 图纸广场预览窗（缩放/拖动） ===== */
.pat-preview{max-width:92vw !important;width:92vw;max-height:92vh;overflow-y:auto;padding:14px !important}
.pv-zoom-bar{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.pv-zbtn{padding:7px 14px;font-size:14px;font-weight:700;border:1.5px solid #ddd;background:#fff;border-radius:10px;cursor:pointer;color:#333;transition:all .2s}
.pv-zbtn:active{background:#E1BEE7;border-color:#9C27B0;color:#6A1B9A}
.pv-zval{font-size:14px;font-weight:800;color:#9C27B0;min-width:48px;text-align:center}
.pv-img-wrap{width:100%;max-height:55vh;overflow:hidden;background:#f5f5f5;border-radius:10px;display:flex;justify-content:center;align-items:center;touch-action:none;position:relative}
.pv-img-wrap img{max-width:100%;max-height:55vh;display:block;transform-origin:center center;transition:transform .1s ease;user-select:none;-webkit-user-drag:none}

/* 图纸广场上传按钮放大 */
.ph-up-lg{font-size:15px !important;font-weight:800 !important;padding:12px 20px !important;border-radius:14px !important}
.ph-file-lg{font-size:15px;padding:10px;border:2px dashed #ddd;border-radius:10px;width:100%;background:#fafafa;cursor:pointer}
.ph-file-lg::file-selector-button{font-size:14px;font-weight:700;padding:8px 16px;margin-right:10px;border:0;border-radius:8px;background:linear-gradient(135deg,#F06FA8,#9C27B0);color:#fff;cursor:pointer}

/* ===== 成品市集：一行两图网格 ===== */
.goods-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.gg-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.06);cursor:pointer;transition:transform .15s,box-shadow .15s}
.gg-card:active{transform:scale(.97);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.gg-img{width:100%;aspect-ratio:1/1;background:#f5f0fa;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gg-img img{width:100%;height:100%;object-fit:cover;display:block}
.gg-placeholder{font-size:48px;opacity:.4}
.gg-body{padding:10px 12px 12px}
.gg-name{font-size:14px;font-weight:800;color:#333;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gg-meta{display:flex;gap:8px;margin:5px 0;font-size:11px;color:#888}
.gg-beans{background:#f0e6fa;color:#7A4FD0;padding:2px 7px;border-radius:6px;font-weight:700}
.gg-stock{color:#999}
.gg-desc{font-size:12px;color:#666;line-height:1.4;margin:4px 0 8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:32px}
.gg-foot{display:flex;justify-content:space-between;align-items:center}
.text-price{color:#E91E63;font-size:16px;font-weight:800}
.gg-seller{font-size:11px;color:#aaa}
.gg-detail{display:none;padding:0 12px 12px;font-size:12px;color:#666;border-top:1px dashed #eee;margin-top:4px;padding-top:8px;line-height:1.6}
.gg-detail.show{display:block}

/* 门店详情：套餐/团购 */
.sd-packages{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.sd-pkg{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 2px 8px rgba(0,0,0,.05);border-left:4px solid #E91E63}
.sd-pkg-left{flex:1;min-width:0}
.sd-pkg-left b{font-size:14px;font-weight:800;color:#333;display:block}
.sd-pkg-left span{font-size:11px;color:#888;display:block;margin:3px 0}
.sd-pkg-left small{font-size:11px;color:#666;display:block;line-height:1.4}
.sd-pkg-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin-left:10px}

/* ===== 首页附近门店优化 ===== */
.hscroll{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.hscroll::-webkit-scrollbar{display:none}
.store-card{flex:0 0 160px;scroll-snap-align:start;background:#fff;border-radius:14px;padding:12px;box-shadow:0 2px 10px rgba(0,0,0,.06);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px;transition:transform .15s}
.store-card:active{transform:scale(.96)}
.sc-logo{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#fff;overflow:hidden;margin-bottom:2px}
.sc-logo img{width:100%;height:100%;object-fit:cover}
.sc-name{font-size:13px;font-weight:800;color:#333;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px}
.sc-meta{font-size:11px;color:#888;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sc-dist{font-size:11px;color:#E91E63;font-weight:700;background:#fff0f5;padding:2px 6px;border-radius:6px}
.sc-seats{font-size:11px;color:#666;display:flex;gap:4px}
.total-green{color:#4CAF50;font-weight:800}
.free-red{color:#E91E63;font-weight:800}
.sc-addr{font-size:10px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== 个人中心 V2 ===== */
.me-header-v2{background:linear-gradient(135deg,#E91E63 0%,#9C27B0 50%,#673AB7 100%);padding:24px 16px 20px;border-radius:0 0 26px 26px;color:#fff}
.me-user-v2{display:flex;gap:14px;align-items:center}
.me-avatar-v2{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.me-meta-v2{flex:1;min-width:0}
.me-meta-v2 b{font-size:19px;font-weight:800;display:block;margin-bottom:4px}
.me-meta-v2 span{font-size:13px;opacity:.92}
.me-balance b{font-size:15px;font-weight:800;color:#FFD54F}
.role-tag-v2{font-size:11px;padding:3px 9px;border-radius:11px;font-weight:700;margin-left:6px;vertical-align:middle}
.me-auth-v2{display:flex;gap:10px;margin-top:18px}
.me-auth-v2 .btn-primary{flex:1;text-align:center;padding:11px;font-size:15px;font-weight:700;border-radius:12px}
.btn-ghost-light{flex:1;text-align:center;padding:11px;font-size:15px;font-weight:700;border-radius:12px;background:rgba(255,255,255,.2);color:#fff;border:1.5px solid rgba(255,255,255,.4);text-decoration:none}
.me-stats{display:flex;gap:8px;margin-top:18px;background:rgba(255,255,255,.15);border-radius:14px;padding:12px 8px;backdrop-filter:blur(10px)}
.ms-item{flex:1;text-align:center}
.ms-item b{display:block;font-size:20px;font-weight:800;color:#FFD54F}
.ms-item span{font-size:11px;opacity:.9;margin-top:2px;display:block}
.grid-item small{display:block;font-size:10px;color:#999;margin-top:2px;font-weight:400}
.me-setting{margin-top:8px}
.ms-row{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:14px 16px;margin-bottom:8px;box-shadow:0 2px 8px rgba(0,0,0,.04);text-decoration:none;color:inherit}
.ms-row b{flex:1;font-size:14px;font-weight:700}
.ms-row i{color:#ccc;font-style:normal;font-size:18px}
.recharge-tip{font-size:11px;color:#999;text-align:center;margin-top:10px;line-height:1.5}

/* 预约开锁密码 */
.bk-pwd-box{background:linear-gradient(135deg,#fff8e1,#fff3cd);border:1.5px dashed #f0c040;border-radius:12px;padding:12px 14px;margin-top:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bk-pwd-label{font-size:13px;color:#8a6d1a;font-weight:600}
.bk-pwd-code{font-size:24px;font-weight:900;color:#d48806;letter-spacing:4px;font-family:'Courier New',monospace;background:#fff;padding:4px 12px;border-radius:8px;box-shadow:0 2px 8px rgba(212,136,6,.15)}
.bk-pwd-time{font-size:11px;color:#a08030;width:100%;margin-top:4px}
.qi-ico.c6{background:linear-gradient(135deg,#FF6B35,#F7931E)!important;color:#fff!important}

/* 图片裁剪器 */
.crop-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.crop-dialog{background:#fff;border-radius:16px;padding:20px;max-width:360px;width:100%;text-align:center}
.crop-dialog h3{margin:0 0 4px;font-size:17px}
.crop-tip{font-size:12px;color:#999;margin:0 0 12px}
.crop-area{position:relative;margin:0 auto 12px;overflow:hidden;border-radius:8px}
.crop-area canvas{display:block;cursor:grab;touch-action:none}
.crop-area canvas:active{cursor:grabbing}
.crop-frame{position:absolute;top:0;left:0;right:0;bottom:0;border:2px dashed rgba(255,255,255,.7);pointer-events:none;box-shadow:0 0 0 9999px rgba(0,0,0,.3)}
.crop-controls{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.crop-controls input[type=range]{flex:1}
.crop-controls span{font-size:12px;color:#666}
.crop-btns{display:flex;gap:10px}
.crop-btns button{flex:1}

/* ===== 个人中心顶部优化（横向布局） ===== */
.me-header-v2{padding:20px 16px 16px !important}
.me-user-v2{gap:16px !important;align-items:flex-start !important}
.me-avatar-v2{width:72px !important;height:72px !important;font-size:32px !important;border-radius:20px !important}
.me-meta-v2 b{font-size:21px !important;display:flex !important;align-items:center !important;flex-wrap:wrap !important;gap:6px}
.me-meta-v2 span{font-size:14px !important;line-height:1.6}
.me-balance{display:block !important;margin-top:6px !important;font-size:14px !important}
.me-balance b{font-size:17px !important;display:inline !important}
.role-tag-v2{font-size:12px !important;padding:4px 10px !important;border-radius:12px !important;margin-left:0 !important}
.me-stats{margin-top:16px !important;padding:14px 10px !important;gap:4px !important}
.ms-item b{font-size:22px !important}
.ms-item span{font-size:12px !important}
.me-auth-v2{margin-top:16px !important}
