:root{--bg:#f3f4f6;--panel:#fff;--text:#171717;--muted:#7a7a7a;--line:#e8e8e8;--black:#111;--danger:#d64040;--ok:#18a558;--warn:#d89516;--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.hidden{display:none!important}.login-view{min-height:100vh;display:grid;place-items:center;background:#ededed}.login-card{width:390px;background:#fff;border-radius:24px;padding:42px;box-shadow:0 18px 60px #00000012}.brand{font-size:25px;font-weight:800;letter-spacing:3px}.login-card h1{font-size:30px;margin:30px 0 22px}.login-card label{display:block;font-size:13px;color:var(--muted);margin:13px 0}.login-card input{width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;outline:none}.login-card input:focus,.scan-input:focus,.toolbar input:focus{border-color:#111}.tiny{font-size:12px;color:#999;margin-top:10px}.center{text-align:center}.app{min-height:100vh;display:flex}.sidebar{width:112px;background:#111;color:#fff;padding:24px 12px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.side-brand{font-size:18px;font-weight:800;line-height:1;letter-spacing:1px;padding:5px 10px 30px}.side-brand span{font-size:12px;letter-spacing:4px;color:#aaa}.sidebar nav{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:#aaa;padding:13px 12px;border-radius:11px;cursor:pointer;text-align:left}.nav-btn.active{background:#fff;color:#111}
@media (hover:hover) and (pointer:fine){.nav-btn:hover{background:#fff;color:#111}}.side-foot{margin-top:auto;font-size:11px;color:#aaa;display:flex;align-items:center;gap:7px;padding:8px}.dot{width:8px;height:8px;border-radius:50%;background:#aaa}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.main{margin-left:112px;width:calc(100% - 112px);min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.top-sub{margin-left:10px;color:#999;font-size:13px}.top-actions{display:flex;gap:16px;align-items:center;font-size:13px;color:#777}.page{display:none;padding:22px}.page.active{display:block}.panel{background:var(--panel);border:1px solid #ececec;border-radius:var(--radius);padding:20px}.panel h2{font-size:17px;margin:0 0 15px}.cashier-grid{display:grid;grid-template-columns:minmax(560px,1fr) 390px;gap:18px;height:calc(100vh - 114px)}.cart-panel,.checkout-panel{display:flex;flex-direction:column;min-height:0}.panel-head,.label-row{display:flex;justify-content:space-between;align-items:center}.panel-head>div{display:flex;gap:10px;align-items:center}.panel-head h2{margin:0}.pill{font-size:12px;padding:4px 8px;background:#f0f0f0;border-radius:999px;color:#666}.scan-row,.member-search-row,.toolbar{display:flex;gap:9px;margin:16px 0}.scan-input,.member-search-row input,.toolbar input,.toolbar select,.money-input{border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none;background:#fff}.scan-input{flex:1;font-size:16px}.member-search-row input,.toolbar input{flex:1}.btn{border:1px solid #ddd;background:#fff;color:#222;padding:10px 15px;border-radius:10px;cursor:pointer}.btn:hover{background:#f7f7f7}.btn.primary{background:#111;color:#fff;border-color:#111}.btn.danger{border-color:#ffd6d6;color:var(--danger);background:#fff8f8}.btn.full{width:100%;margin-top:14px}.btn.ghost{background:#f5f5f5}.link-btn{border:0;background:none;cursor:pointer;color:#555;padding:4px}.link-btn.danger{color:var(--danger)}.cart-list{flex:1;overflow:auto;border-top:1px solid var(--line)}.empty{display:grid;place-items:center;color:#aaa;height:180px}.cart-row{display:grid;grid-template-columns:62px minmax(190px,1fr) 110px 92px 28px;gap:12px;align-items:center;padding:13px 3px;border-bottom:1px solid #f0f0f0}.thumb{width:58px;height:58px;background:#f3f3f3;border-radius:10px;object-fit:cover}.item-title{font-weight:650;font-size:14px}.item-meta{font-size:12px;color:#999;margin-top:4px}.qty{display:flex;align-items:center;justify-content:center;gap:8px}.qty button{width:28px;height:28px;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer}.price{text-align:right;font-weight:700}.icon-btn{border:0;background:none;color:#aaa;font-size:20px;cursor:pointer}.search-results{position:absolute;z-index:30;top:156px;left:20px;right:20px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px #0002;max-height:360px;overflow:auto}.cart-panel{position:relative}.result-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #eee;cursor:pointer}.result-row:hover{background:#fafafa}.checkout-panel{overflow:auto}.section-block{padding-bottom:17px;margin-bottom:17px;border-bottom:1px solid var(--line)}.member-card{margin-top:10px;border-radius:12px;padding:12px}.muted-card{background:#f6f6f6;color:#999}.member-card.active{background:#f3f8f5;color:#222}.member-card strong{display:block;margin-bottom:5px}.totals>div{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:14px}.totals .grand{border-top:1px dashed #ddd;margin-top:7px;padding-top:16px;font-size:18px}.totals .grand strong{font-size:30px}.money-input{width:100px;text-align:right;padding:7px 8px}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.pay-btn{border:1px solid var(--line);background:#fff;padding:13px 6px;border-radius:11px;cursor:pointer}.pay-btn.active{background:#111;color:#fff;border-color:#111}.checkout-btn{border:0;background:#111;color:#fff;border-radius:14px;padding:18px 19px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:16px}.checkout-btn strong{font-size:24px}.toolbar{margin-top:0}.toolbar select{min-width:120px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat span{color:#888;font-size:12px}.stat strong{display:block;font-size:25px;margin-top:5px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;color:#888;font-weight:500;border-bottom:1px solid var(--line);padding:11px 9px}.data-table td{padding:12px 9px;border-bottom:1px solid #f2f2f2;vertical-align:middle}.data-table tr:hover td{background:#fafafa}.status{padding:4px 7px;border-radius:999px;font-size:11px;background:#eee}.status.ok{background:#eaf7ef;color:#16854a}.status.bad{background:#fdeeee;color:#bf3434}.status.warn{background:#fff3dd;color:#a26700}.shift-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.shift-info,.summary-list{display:grid;gap:10px;margin-bottom:18px}.summary-item{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #f0f0f0}.muted{color:#888}.toast-host{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:9999;display:grid;gap:8px}.toast{background:#111;color:#fff;padding:11px 15px;border-radius:10px;box-shadow:0 10px 30px #0003;font-size:13px}.modal-backdrop{position:fixed;inset:0;background:#0006;z-index:1000;display:grid;place-items:center;padding:20px}.modal{width:min(620px,94vw);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:22px}.modal h3{margin:0 0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{font-size:12px;color:#777}.form-grid input,.form-grid select,.modal textarea{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:9px;padding:10px;outline:none}.receipt{font-size:13px}.receipt-head{text-align:center;padding-bottom:12px;border-bottom:1px dashed #bbb}.receipt-total{font-size:24px;font-weight:800;text-align:right;margin-top:10px}@media(max-width:1100px){.cashier-grid{grid-template-columns:1fr 340px}.sidebar{width:94px}.main{margin-left:94px;width:calc(100% - 94px)}}

/* Inventory product thumbnails */
.inventory-table th:first-child{min-width:260px}.inventory-product{display:flex;align-items:center;gap:13px;min-width:240px}.inventory-thumb-wrap{width:64px;height:64px;flex:0 0 64px;border-radius:11px;overflow:hidden;background:#f4f4f4;border:1px solid #eee}.inventory-thumb{width:100%;height:100%;display:block;object-fit:cover}.inventory-thumb-empty{width:100%;height:100%;place-items:center;text-align:center;color:#aaa;font-size:10px;line-height:1.25;padding:7px}.inventory-product-info{min-width:0}.inventory-product-info strong{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-table td{padding-top:10px;padding-bottom:10px}

.stock-number{font-size:16px}.stock-edit-btn{white-space:nowrap;padding:8px 12px}.stock-edit-product{padding:12px 14px;background:#f7f7f7;border-radius:12px;margin:8px 0 14px}.modal label{display:block;margin:12px 0}.modal label input{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:11px 12px;border:1px solid #ddd;border-radius:9px;font:inherit}.btn.small{min-height:34px}


/* v3.5 童装尺码库存 */
.size-stock-table{min-width:max-content}.size-stock-table th,.size-stock-table td{white-space:nowrap}.size-stock-table .size-col{text-align:center;min-width:66px}.size-stock-cell{text-align:center}.size-stock-cell button{width:42px;height:34px;border:1px solid #e2e2e2;border-radius:9px;background:#fff;font-weight:700;cursor:pointer}.size-stock-cell button:hover{border-color:#111;box-shadow:0 0 0 2px #1111110d}.size-stock-cell.zero button,.size-stock-cell.zero strong{color:#d64040}.size-stock-cell.low button,.size-stock-cell.low strong{color:#a26700}.size-stock-cell.na{color:#ccc;background:#fafafa}.size-picker-product{padding:12px 14px;background:#f7f7f7;border-radius:12px}.size-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin:16px 0}.size-pick-btn{border:1px solid #ddd;background:#fff;border-radius:12px;padding:14px 8px;cursor:pointer;display:grid;gap:5px}.size-pick-btn strong{font-size:18px}.size-pick-btn span{font-size:12px;color:#888}.size-pick-btn:hover{border-color:#111}.size-pick-btn.disabled{opacity:.35;cursor:not-allowed}.size-stock-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px}.size-stock-form label{padding:10px;background:#f7f7f7;border-radius:10px;margin:0}.size-stock-form label span{font-weight:700;color:#222}.size-stock-form input{background:#fff}.inventory-table th:first-child{position:sticky;left:0;background:#fff;z-index:2}.inventory-table td:first-child{position:sticky;left:0;background:#fff;z-index:1}.inventory-table tr:hover td:first-child{background:#fafafa}

/* v3.6 member cloud sync */
.member-name-cell{display:flex;align-items:center;gap:10px}.member-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#f2f2f2}.member-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.member-detail-grid>div{background:#f7f7f7;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.member-detail-grid span{font-size:12px;color:#888}.detail-section{padding:12px 0;border-top:1px solid #eee}.detail-text{margin-top:6px;line-height:1.8}.summary-list.compact .summary-item{padding:7px 0}

.product-open-btn{border:0;background:transparent;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%}.product-open-btn:hover .inventory-product-info strong{text-decoration:underline}.product-detail-modal{width:min(860px,96vw)}.product-detail-head{display:grid;grid-template-columns:112px 1fr;gap:18px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:16px}.product-detail-head h3{margin:0 0 6px;font-size:22px}.product-detail-image{width:112px;height:112px;border-radius:15px;background:#f5f5f5;border:1px solid var(--line);overflow:hidden}.product-detail-image img{width:100%;height:100%;object-fit:cover;display:block}.product-detail-image .inventory-thumb-empty{height:100%}.product-total-stock{margin-top:12px;color:#777;font-size:13px}.product-total-stock strong{font-size:22px;color:#111;margin:0 4px}.product-edit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}.product-edit-grid label{font-size:12px;color:#777}.product-edit-grid .wide{grid-column:1/-1}.product-edit-grid input,.product-edit-grid select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:9px;padding:10px;outline:none;background:#fff}.product-detail-view{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.product-detail-view>div{padding:10px 12px;background:#f7f7f7;border-radius:10px}.product-detail-view span{display:block;color:#999;font-size:11px;margin-bottom:5px}.detail-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.detail-section-title span{font-size:11px;color:#999}.product-stock-grid{display:flex;flex-wrap:wrap;gap:8px}.product-stock-chip{min-width:86px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.product-stock-chip span{display:block;color:#777;font-size:11px}.product-stock-chip strong{font-size:20px;margin-right:3px}.product-stock-chip em{font-style:normal;color:#999;font-size:11px}.product-stock-chip.zero{background:#fff6f6;border-color:#f5dede}.product-stock-chip.zero strong{color:var(--danger)}.product-stock-chip.low{background:#fffaf0;border-color:#f1e1bf}.product-stock-chip.low strong{color:#a26700}@media(max-width:1200px){.product-edit-grid{grid-template-columns:1fr 1fr}.product-detail-view{grid-template-columns:1fr 1fr}}


/* v3.8 会员商业档案 */
.modal.wide,.modal-card.wide{max-width:1080px;width:min(1080px,94vw)}
.member-commercial-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.member-commercial-header h3{margin:0 0 6px}
.commercial-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0 16px}.commercial-stats>div{background:#f6f6f6;border-radius:12px;padding:14px}.commercial-stats span{display:block;font-size:12px;color:#8b8b8b;margin-bottom:7px}.commercial-stats strong{font-size:18px}
.section-title-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-title-line span{font-size:12px;color:#888}
.commercial-scroll{max-height:330px;overflow:auto;padding-right:4px}.commercial-scroll.small{max-height:240px}
.commercial-order{border:1px solid #eee;border-radius:12px;padding:13px 14px;margin-top:9px;background:#fff}.commercial-order-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.commercial-order-head strong,.commercial-order-head small{display:block}.commercial-order-head small{color:#999;margin-top:4px}.commercial-order-items{font-size:13px;color:#555;margin:10px 0;line-height:1.6}.commercial-order-money{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font-size:13px;margin-bottom:8px}.commercial-order-money b{color:#d7372f}.commercial-order-money>strong{margin-left:auto;font-size:15px}.status-pill{font-size:12px;border-radius:999px;padding:4px 9px;background:#eef8f1;color:#26814c}.status-pill.danger{background:#fff0ef;color:#d7372f}
.ledger-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #f0f0f0;padding:11px 0}.ledger-row:last-child{border-bottom:0}.ledger-row strong,.ledger-row small{display:block}.ledger-row small{color:#999;margin-top:4px;font-size:11px}.ledger-right{text-align:right}.ledger-right .positive{color:#16854b}.ledger-right .negative{color:#d7372f}
@media(max-width:1100px){.commercial-stats{grid-template-columns:repeat(3,1fr)}}

/* v4.0 cloud error diagnostics */
.cloud-error-box{margin:14px 0;padding:14px 16px;background:#f7f7f7;border:1px solid #e7e7e7;border-radius:12px}.cloud-error-box pre{white-space:pre-wrap;word-break:break-word;margin:8px 0 0;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;color:#b42318;max-height:240px;overflow:auto}

.stock-quick-adjust{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:14px 0;background:#f6f6f6;border-radius:12px}.stock-quick-buttons{display:flex;gap:8px;flex-wrap:wrap}.stock-quick-buttons .btn{min-width:72px}

.batch-total-preview{margin:12px 0;padding:10px 12px;border-radius:10px;background:#f8f8f8;color:#666}.batch-total-preview strong{font-size:20px;color:#111;margin:0 4px}


/* v6.4 80mm receipt / receipt settings */
.receipt-settings-panel{grid-column:1/-1}.receipt-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px;align-items:start}.receipt-settings-form label{display:block;font-size:13px;color:#666;margin:9px 0}.receipt-settings-form input,.receipt-settings-form textarea,.receipt-settings-form select{width:100%;margin-top:6px}.settings-subtitle{font-size:14px;margin:18px 0 8px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;background:#f7f7f7;border-radius:12px;padding:12px}.check-grid label,.check-line{display:flex!important;align-items:center;gap:8px;margin:0!important;color:#333!important}.check-grid input,.check-line input{width:auto!important;margin:0!important}.mini-code-setting{margin-top:12px;padding:12px;border:1px solid #eee;border-radius:12px}.mini-code-thumb{width:92px;height:92px;border:1px dashed #ccc;border-radius:8px;display:grid;place-items:center;color:#999;font-size:12px;overflow:hidden;background:#fff}.mini-code-thumb img{width:100%;height:100%;object-fit:contain}.receipt-preview-title{font-weight:700;margin:2px 0 10px}.receipt-paper-shell{background:#ececec;border-radius:14px;padding:18px;min-height:420px;display:flex;justify-content:center}.receipt-paper{width:72mm;max-width:100%;background:white;color:#111;padding:5mm 4mm;font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif;font-size:11px;line-height:1.45;box-shadow:0 10px 28px rgba(0,0,0,.08);box-sizing:border-box}.receipt-paper.paper-58{width:58mm;padding:3mm 3mm 3.4mm;font-size:9.6px;line-height:1.36}.rp-center{text-align:center}.rp-brand{font-size:19px;font-weight:800;letter-spacing:1.3px}.rp-sub{font-size:10px;margin-top:2px}.rp-rule{border-top:1px dashed #555;margin:8px 0}.rp-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin:2px 0}.rp-row span:first-child{min-width:0}.rp-item{padding:5px 0}.rp-item-name{font-weight:700}.rp-item-meta{font-size:10px;color:#444;word-break:break-all}.rp-total{font-size:17px;font-weight:800;margin:6px 0}.rp-qr{width:30mm;height:30mm;object-fit:contain;margin:6px auto 2px;display:block}.paper-58 .rp-brand{font-size:16px;letter-spacing:.6px}.paper-58 .rp-sub{font-size:8.6px;line-height:1.32}.paper-58 .rp-rule{margin:5px 0}.paper-58 .rp-row{gap:6px;margin:1.5px 0}.paper-58 .rp-item{padding:3px 0}.paper-58 .rp-item-meta{font-size:8.5px;line-height:1.3}.paper-58 .rp-total{font-size:14.5px;margin:4px 0}.paper-58 .rp-qr{width:21mm;height:21mm;margin:6px auto 2px}.rp-reprint{font-weight:800;border:1px solid #111;padding:3px 8px;display:inline-block;margin-top:6px}.receipt-modal{width:min(920px,94vw)}.receipt-modal-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px}.order-detail-items{max-height:340px;overflow:auto}.order-detail-item{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #eee;padding:10px 0}.order-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.order-op-btns{display:flex;gap:12px;align-items:center;justify-content:flex-end;white-space:nowrap}.link-btn.print{color:#111;font-weight:600}@media(max-width:1100px){.receipt-settings-grid,.receipt-modal-layout{grid-template-columns:1fr}.receipt-paper-shell{min-height:auto}.check-grid{grid-template-columns:repeat(2,1fr)}}
@media print{body>*{display:none!important}}
.refund-list{display:flex;flex-direction:column;gap:10px}.refund-item-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #eee}.refund-item-row label{display:flex;align-items:center;gap:8px;white-space:nowrap}.refund-item-row input{height:38px;border:1px solid #ddd;border-radius:8px;padding:0 9px}.status.warn{background:#fff4d7;color:#9a6b00}.btn.danger{color:#d94343;border-color:#f2c6c6;background:#fff}


/* v6.9 configurable recharge plans */
.recharge-settings-panel{grid-column:1/-1}.panel-actions{display:flex;gap:8px;flex-wrap:wrap}.recharge-plan-editor{display:flex;flex-direction:column;gap:10px;margin:12px 0}.recharge-plan-edit-row{display:grid;grid-template-columns:1.5fr 1fr 1fr auto auto;gap:10px;align-items:end;padding:12px;background:#f7f7f7;border-radius:12px}.recharge-plan-edit-row label{font-size:12px;color:#777;margin:0}.recharge-plan-edit-row input{width:100%;margin-top:6px}.rp-enabled-label{display:flex!important;align-items:center;gap:6px;padding:10px 2px;color:#333!important}.rp-enabled-label input{width:auto!important;margin:0!important}.recharge-plan-title{font-size:13px;font-weight:700;margin:14px 0 8px}.recharge-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:12px}.recharge-plan-card{appearance:none;border:1px solid #dedede;background:#fff;border-radius:12px;padding:12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px}.recharge-plan-card:hover,.recharge-plan-card.active{border-color:#111;background:#fafafa}.recharge-plan-card span{font-size:13px;font-weight:700}.recharge-plan-card strong{font-size:18px}.recharge-plan-card em{font-size:12px;color:#777;font-style:normal}.recharge-arrival{background:#f6f6f6;border-radius:10px;padding:11px 12px;margin:12px 0;color:#666}.recharge-arrival strong{font-size:18px;color:#111}@media(max-width:900px){.recharge-plan-edit-row{grid-template-columns:1fr 1fr}.recharge-plan-grid{grid-template-columns:1fr}}

.settings-collapse-head{cursor:pointer;position:relative;padding-right:34px}.settings-collapse-head:after{content:'⌃';position:absolute;right:4px;top:4px;font-size:18px;transition:.2s}.settings-collapse-head.collapsed:after{transform:rotate(180deg)}.settings-collapse-body.collapsed{display:none}.settings-collapse-head.collapsed .panel-actions,.settings-collapse-head.collapsed>button{display:none}


/* v7.1 staff / permission / live suggestions / profit */
.member-search-row{position:relative}.member-suggest-results{position:absolute;left:0;right:0;top:74px;z-index:25;max-height:280px;overflow:auto;background:#fff;border:1px solid #e6e6e6;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.10)}
.member-suggest-results .result-row,.search-results .result-row{cursor:pointer}.suggest-main{display:flex;gap:10px;align-items:center}.suggest-thumb{width:42px;height:42px;border-radius:8px;object-fit:cover;background:#f2f2f2}.suggest-side{text-align:right;white-space:nowrap}.staff-settings-panel{grid-column:1/-1}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;background:#f7f7f7;border-radius:12px;padding:14px;margin-top:10px}.permission-grid label{display:flex;align-items:center;gap:7px;font-size:13px}.permission-grid input{width:auto!important;margin:0!important}.staff-role-pill{display:inline-flex;padding:3px 8px;border-radius:999px;background:#f1f1f1;font-size:12px}.profit-good{color:#16854b}.profit-bad{color:#d7372f}.shift-profit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.shift-profit-card{padding:12px;border-radius:10px;background:#f7f7f7}.shift-profit-card span{font-size:11px;color:#888;display:block}.shift-profit-card strong{font-size:18px;display:block;margin-top:5px}.permission-hidden{display:none!important}@media(max-width:1000px){.permission-grid{grid-template-columns:repeat(2,1fr)}.shift-profit-grid{grid-template-columns:1fr}}

/* v7.2 member autocomplete: anchor inside checkout member section, never page-wide */
.checkout-panel .section-block:first-child{position:relative}.member-suggest-results{left:0!important;right:0!important;top:96px!important;width:auto!important;max-height:230px!important;border-radius:10px!important}.member-suggest-results .result-row{padding:9px 11px!important;min-height:58px}.member-suggest-results .result-row strong{font-size:14px}.member-suggest-results .suggest-side strong{font-size:14px}.member-suggest-results .item-meta{font-size:11px}.member-suggest-results .suggest-side{min-width:108px}

#page-data .data-stats{grid-template-columns:repeat(7,minmax(120px,1fr));overflow-x:auto}.hold-list{display:grid;gap:10px}.hold-card{border:1px solid #e7e7e7;border-radius:14px;padding:14px;display:flex;justify-content:space-between;align-items:center}.promotion-badge{font-size:12px;background:#111;color:#fff;border-radius:999px;padding:3px 8px}.promo-form{display:grid;gap:12px}.promo-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1000px){#page-data .data-stats{grid-template-columns:repeat(3,minmax(140px,1fr))}}


/* v7.4 Android tablet density + inventory image viewer */
.clickable-product-image{cursor:zoom-in;position:relative}.clickable-product-image:after{content:'点击查看大图';position:absolute;left:8px;right:8px;bottom:8px;background:rgba(0,0,0,.66);color:#fff;border-radius:7px;padding:5px 7px;font-size:11px;text-align:center;opacity:0;transition:.15s}.clickable-product-image:hover:after{opacity:1}.image-viewer-modal{width:min(980px,94vw)}.image-viewer-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.image-viewer-stage{height:min(68vh,680px);margin:14px 0;background:#f5f5f5;border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:auto}.image-viewer-stage img{max-width:100%;max-height:100%;object-fit:contain}.image-viewer-thumbs{display:flex;gap:8px;overflow-x:auto;padding:2px}.image-viewer-thumbs button{width:66px;height:66px;border:2px solid transparent;background:#fff;border-radius:9px;padding:2px;cursor:pointer}.image-viewer-thumbs button.active{border-color:#111}.image-viewer-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:6px}
/* 1280/1366px Android landscape tablets: match the user's comfortable browser ~75% visual density without manual zoom. */
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){html{font-size:12px}.sidebar{width:150px}.main{margin-left:150px}.topbar{height:54px}.content{padding:14px}.panel{padding:14px}.btn{min-height:34px;padding:7px 11px}.nav-btn{padding:9px 12px}.checkout-panel{width:330px}.cart-row{padding:8px 0}.data-table th,.data-table td{padding:8px 9px}.modal{max-height:92vh}.product-detail-modal{width:min(920px,92vw)}}


/* v7.5 POS checkout viewport fix: keep the confirm-payment action permanently visible on landscape tablets. */
.checkout-panel{overflow:hidden}
.checkout-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.checkout-btn{flex:0 0 auto;position:relative;z-index:4;margin-top:10px;box-shadow:0 -6px 18px rgba(255,255,255,.92)}
.checkout-shortcuts{flex:0 0 auto;margin-top:7px}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  .page{padding:14px}
  .cashier-grid{height:calc(100dvh - 82px);gap:14px}
  .checkout-panel{width:auto;min-width:330px;padding:12px}
  .checkout-scroll{padding-right:1px}
  .checkout-panel .section-block{padding-bottom:10px;margin-bottom:10px}
  .checkout-panel .member-search-row{margin:9px 0}
  .checkout-panel .member-card{margin-top:6px;padding:9px 10px}
  .checkout-panel .totals>div{padding:4px 0}
  .checkout-panel .totals .grand{margin-top:4px;padding-top:10px}
  .checkout-panel .totals .grand strong{font-size:26px}
  .checkout-panel .payment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}
  .checkout-panel .pay-btn{padding:9px 4px;min-height:36px}
  .checkout-panel .checkout-btn{padding:13px 15px;border-radius:12px;margin-top:8px}
  .checkout-panel .checkout-btn strong{font-size:22px}
  .checkout-shortcuts{margin-top:5px;font-size:10px}
}

/* v7.6 unified POS dialogs: replace browser alert/confirm/prompt chrome. */
.pos-dialog-modal{width:min(520px,92vw);padding:0;overflow:hidden;border-radius:18px}
.pos-dialog{padding:26px 28px 24px;background:#fff;color:#111}
.pos-dialog-kicker{font-size:11px;letter-spacing:1.8px;font-weight:800;color:#999;margin-bottom:10px}
.pos-dialog h3{margin:0;font-size:24px;line-height:1.25;font-weight:800}
.pos-dialog-amount{font-size:40px;line-height:1.05;font-weight:900;letter-spacing:-1px;margin:20px 0 12px}
.pos-dialog-message{font-size:15px;line-height:1.7;color:#666;margin-top:14px}
.pos-dialog-meta{margin-top:14px;padding:11px 13px;border-radius:10px;background:#f6f6f6;color:#555;font-size:13px}
.pos-dialog-input{width:100%;height:46px;border:1px solid #ddd;border-radius:10px;padding:0 13px;font-size:16px;margin-top:16px;outline:none}
.pos-dialog-input:focus{border-color:#111;box-shadow:0 0 0 2px rgba(0,0,0,.05)}
.pos-dialog-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin-top:24px}
.pos-dialog-actions.single{grid-template-columns:1fr}
.pos-dialog-actions .btn{height:46px;border-radius:11px;font-size:15px;font-weight:700}
.pos-dialog-actions .btn.primary{background:#111;color:#fff;border-color:#111}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  .pos-dialog-modal{width:min(500px,74vw)}
  .pos-dialog{padding:22px 24px 20px}
  .pos-dialog h3{font-size:21px}
  .pos-dialog-amount{font-size:36px;margin:16px 0 10px}
  .pos-dialog-message{font-size:14px}
}

/* v7.7 tablet data typography + unified sidebar wordmark */
.side-brand{line-height:1.12}
.side-brand span{font-size:inherit;letter-spacing:inherit;color:inherit;font-weight:inherit}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  #page-data .data-stats .stat{padding:12px 13px}
  #page-data .data-stats .stat span{font-size:11px}
  #page-data .data-stats .stat strong{font-size:20px;line-height:1.12;margin-top:4px;letter-spacing:-.2px}
}


/* v7.14 POS sound + cashier success feedback */
.pos-success-overlay{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.22);backdrop-filter:blur(4px);opacity:0;transition:opacity .18s ease;pointer-events:none}
.pos-success-overlay.show{opacity:1}
.pos-success-card{min-width:320px;padding:34px 44px 32px;border-radius:24px;background:#fff;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.22);transform:scale(.94);transition:transform .2s ease}
.pos-success-overlay.show .pos-success-card{transform:scale(1)}
.pos-success-check{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:36px;font-weight:800}
.pos-success-title{font-size:25px;font-weight:850;color:#111}
.pos-success-amount{font-size:42px;font-weight:900;letter-spacing:-1px;margin-top:8px;color:#111}
.pos-success-meta{font-size:15px;color:#777;margin-top:6px}
.sound-settings-panel .check-grid{margin:14px 0 10px}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){.pos-success-card{min-width:290px;padding:28px 38px}.pos-success-amount{font-size:36px}}

/* v7.15 receipt preview: persistent top-right actions */
.receipt-modal{position:relative;padding-top:72px}
.receipt-modal-toolbar{position:absolute;top:18px;right:18px;z-index:8;display:flex;align-items:center;gap:10px}
.receipt-top-print{min-width:104px}
.receipt-top-close{width:40px;height:40px;border:1px solid #ddd;border-radius:10px;background:#fff;color:#222;font-size:27px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.receipt-top-close:hover{background:#f5f5f5}
@media(max-width:700px){.receipt-modal{padding-top:68px}.receipt-modal-toolbar{top:14px;right:14px}.receipt-top-print{min-width:92px}}

/* v7.16 checkout processing feedback: give immediate visual response while the cloud transaction is committing. */
.checkout-btn.is-processing{cursor:wait;opacity:.92;pointer-events:none;background:#181818}
.checkout-btn.is-processing>span{display:inline-flex;align-items:center;gap:10px}
.checkout-btn.is-processing>span b{font:inherit;font-weight:650;letter-spacing:.02em}
.checkout-btn.is-processing>strong{font-size:15px;font-weight:500;opacity:.72}
.checkout-spinner{width:17px;height:17px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;display:inline-block;flex:0 0 auto;animation:xmbbCheckoutSpin .72s linear infinite}
@keyframes xmbbCheckoutSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.checkout-spinner{animation:none;border-top-color:rgba(255,255,255,.35);position:relative}.checkout-spinner:after{content:'…';position:absolute;left:2px;top:-7px;font-size:15px;color:#fff}}

/* v7.17 unified cloud-action loading feedback */
.action-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.38);border-top-color:currentColor;border-radius:50%;display:inline-block;vertical-align:-2px;margin-right:8px;animation:xmbbCheckoutSpin .72s linear infinite}.btn.is-processing,.btn[aria-busy="true"]{cursor:wait}.btn:not(.primary) .action-spinner{border-color:rgba(17,17,17,.22);border-top-color:currentColor}@media (prefers-reduced-motion:reduce){.action-spinner{animation:none}}


/* v7.18 会员 CRM */
.member-toolbar select{min-width:150px}.member-crm-table th:nth-child(3),.member-crm-table th:nth-child(4),.member-crm-table th:nth-child(5){white-space:nowrap}.member-action-group{display:flex;gap:10px;flex-wrap:wrap}.member-inactive{display:inline-block;margin-top:4px;font-size:12px;font-weight:700}.member-inactive.ok{color:#347a55}.member-inactive.notice{color:#8b6b25}.member-inactive.warn{color:#b5651d}.member-inactive.danger{color:#b33a3a}.member-inactive.muted{color:#999}.member-header-actions{display:flex;gap:10px;align-items:center}.member-profile-meta>div{display:flex;flex-direction:column;gap:4px}.member-profile-meta small{font-size:12px}.coupon-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.coupon-preset{border:1px solid var(--line,#ddd);background:#fff;border-radius:10px;padding:14px 10px;font-weight:700;cursor:pointer}.coupon-preset.active{background:#111;color:#fff;border-color:#111}
@media(max-width:1100px){.member-toolbar{gap:8px}.member-toolbar input{min-width:180px}.member-toolbar select{min-width:132px}.member-crm-table{font-size:13px}.member-crm-table th,.member-crm-table td{padding-left:9px;padding-right:9px}.coupon-preset-grid{grid-template-columns:1fr}}

/* v7.19 POS terminal interaction lock + image viewer top-right close */
body,.sidebar,.topbar,.page,.panel,.modal{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
img{-webkit-user-drag:none;user-drag:none}
.image-viewer-modal{position:relative;padding-top:58px}
.image-viewer-close{position:absolute;right:18px;top:16px;width:38px;height:38px;border:0;border-radius:10px;background:#111;color:#fff;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;z-index:3}
.image-viewer-close:hover{background:#2b2b2b}

/* v7.20 member identity verification flow */
.member-card.active{display:flex;align-items:center;justify-content:space-between;gap:12px}
.member-card-main{min-width:0;flex:1}.member-card-main span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-verify-btn{flex:0 0 auto;border:1px solid #111;background:#111;color:#fff;border-radius:9px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}
.member-verify-btn.verified{background:#eaf7ef;border-color:#cdebd8;color:#16854a}
.member-verify-modal .modal{width:min(520px,92vw);overflow:visible}
.member-verify-dialog{text-align:center}.member-verify-kicker{font-size:12px;letter-spacing:.12em;color:#999;margin-bottom:8px}.member-verify-dialog h3{font-size:25px;margin:0 0 18px}
.member-verify-person{display:flex;justify-content:center;align-items:baseline;gap:10px;background:#f7f7f7;border-radius:12px;padding:13px 16px;margin-bottom:14px}.member-verify-person strong{font-size:17px}.member-verify-person span{font-size:13px;color:#888}
.member-verify-guide{font-size:14px;line-height:1.7;color:#666;margin:4px auto 18px;max-width:420px}
.member-verify-state{min-height:68px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:11px;font-weight:750;margin-bottom:12px}.member-verify-state.waiting,.member-verify-state.loading{background:#f5f5f5;color:#222}.member-verify-state.success{background:#eaf7ef;color:#16854a;flex-direction:column;gap:3px}.member-verify-state.success b{font-size:20px}.member-verify-state.success small{font-size:12px;font-weight:500}.member-verify-state.error{background:#fff2f2;color:#b33a3a}
.member-verify-spinner{width:19px;height:19px;border:2px solid #d5d5d5;border-top-color:#111;border-radius:50%;animation:xmbbCheckoutSpin .72s linear infinite}
.member-verify-scan-input{width:100%;height:48px;border:1px solid #ddd;border-radius:10px;padding:0 14px;text-align:center;font-size:16px;letter-spacing:.08em;outline:none}.member-verify-scan-input:focus{border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.06)}
.member-verify-error{margin-top:10px;color:#b33a3a;font-size:13px;line-height:1.5}
.member-verify-dialog .modal-actions{justify-content:center;margin-top:14px}
@media (prefers-reduced-motion:reduce){.member-verify-spinner{animation:none}}

.member-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 8px}.member-entry-btn{min-width:0;border-radius:11px;padding:11px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:.15s ease}.member-entry-btn strong{font-size:14px}.member-entry-btn span{font-size:11px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-entry-scan{border:1.5px solid #111;background:#111;color:#fff}.member-entry-scan span{color:#bbb}.member-entry-manual{border:1px solid #ddd;background:#fff;color:#222}.member-entry-manual span{color:#999}.member-entry-manual.active{border-color:#111;background:#f6f6f6}.member-entry-btn:hover{transform:translateY(-1px)}.member-manual-box{margin-top:2px}.member-manual-box .member-search-row{margin:7px 0 8px}.member-first-scan{text-align:center}.member-first-scan h3{font-size:24px;margin:8px 0 12px}.member-first-scan-guide{font-size:14px;line-height:1.8;color:#777;margin-bottom:14px}

/* v7.29 商品扫码 / 尺码选择 */
.size-picker-scan-tip{margin:10px 0 14px;padding:9px 12px;border-radius:10px;background:#f5f6f7;color:#777;font-size:13px;line-height:1.45}


/* v7.33 hidden hardware-scanner focus sink */
.scanner-sink{position:fixed!important;left:-10000px!important;top:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;border:0!important;padding:0!important;margin:0!important;caret-color:transparent!important}

.size-picker-product{display:flex;align-items:center;gap:14px}.size-picker-thumb{width:84px;height:84px;object-fit:cover;border-radius:12px;background:#fff;flex:0 0 84px;border:1px solid #ececec}.size-picker-thumb-empty{display:grid;place-items:center;color:#aaa;font-size:12px}.size-picker-info{min-width:0;display:grid;gap:7px}.size-picker-info>strong{font-size:18px}.size-picker-info .item-meta{line-height:1.5}

.login-forgot{display:block;margin:10px auto 2px;font-size:13px}.auto-sync-settings-panel #autoSyncHint{margin-top:8px}
.password-reset-requests{margin:0 0 14px;padding:12px;border:1px solid #e7c46b;border-radius:12px;background:#fffaf0}.password-reset-request-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid rgba(0,0,0,.06)}.password-reset-request-row:first-of-type{margin-top:8px}.password-reset-request-row>span:first-child{flex:1}.password-reset-request-row .item-meta{white-space:nowrap}

/* v7.45 自动折扣 */
.auto-discount-tag{display:inline-block;margin-top:5px;padding:3px 7px;border-radius:999px;background:#eef7ee;font-size:11px;font-weight:700;color:#2d6437}.original-price{display:block;text-decoration:line-through;opacity:.48;font-size:11px;margin-bottom:2px}.cart-row .price strong{display:block}.inventory-assets-panel{margin-top:12px}

/* v7.47 — XMBB POS global custom controls (no Android/browser native dropdown/date UI) */
.xmbb-native-control{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.xmbb-select-trigger,.xmbb-date-trigger{min-height:42px;width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:#222;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;cursor:pointer;outline:none}
.toolbar>.xmbb-select-trigger,.toolbar>.xmbb-date-trigger{width:auto;min-width:136px;flex:0 0 auto}.member-toolbar>.xmbb-select-trigger{min-width:150px}
.xmbb-select-trigger:hover,.xmbb-date-trigger:hover,.xmbb-select-trigger:focus,.xmbb-date-trigger:focus{border-color:#111;box-shadow:0 0 0 2px rgba(17,17,17,.045)}
.xmbb-select-trigger>span:not(.xmbb-chevron),.xmbb-date-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xmbb-chevron{width:16px;height:16px;flex:0 0 16px;display:inline-flex;align-items:center;justify-content:center;color:#777;overflow:visible!important}.xmbb-chevron svg{width:16px;height:16px;display:block;overflow:visible}.xmbb-chevron path{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.xmbb-select-trigger:hover .xmbb-chevron,.xmbb-select-trigger:focus .xmbb-chevron{color:#222}.xmbb-select-trigger:disabled .xmbb-chevron,.xmbb-select-trigger.is-disabled .xmbb-chevron{color:#aaa}.xmbb-date-trigger>i{font-style:normal;font-size:11px;color:#888;letter-spacing:.03em}.xmbb-date-trigger.is-empty>span{color:#999}.xmbb-select-trigger:disabled,.xmbb-date-trigger:disabled,.xmbb-select-trigger.is-disabled{background:#f5f5f5;color:#aaa;cursor:not-allowed}
.form-grid label>.xmbb-select-trigger,.form-grid label>.xmbb-date-trigger,.modal label>.xmbb-select-trigger,.modal label>.xmbb-date-trigger{margin-top:7px}
#xmbbControlHost{position:relative;z-index:12000}.xmbb-control-backdrop{position:fixed;inset:0;z-index:12000;background:rgba(0,0,0,.38);display:grid;place-items:center;padding:22px;backdrop-filter:blur(2px)}
.xmbb-control-sheet{width:min(520px,92vw);max-height:min(720px,88vh);background:#fff;border-radius:20px;box-shadow:0 26px 80px rgba(0,0,0,.24);padding:22px;overflow:auto}.xmbb-control-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.xmbb-control-head small{font-size:10px;letter-spacing:.18em;color:#aaa}.xmbb-control-head h3{font-size:22px;margin:5px 0 0}.xmbb-control-close{width:38px;height:38px;border:0;border-radius:10px;background:#f4f4f4;font-size:24px;line-height:1;cursor:pointer}.xmbb-control-search input{width:100%;height:44px;border:1px solid var(--line);border-radius:11px;padding:0 13px;outline:none;margin-bottom:12px}.xmbb-control-search input:focus{border-color:#111}
.xmbb-option-list{display:grid;gap:7px}.xmbb-option{width:100%;min-height:50px;border:1px solid #ececec;background:#fff;border-radius:12px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;text-align:left;font-weight:650;cursor:pointer}.xmbb-option:hover{background:#f7f7f7}.xmbb-option.selected{background:#111;color:#fff;border-color:#111}.xmbb-option b{font-size:17px}.xmbb-option:disabled{opacity:.35;cursor:not-allowed}
.xmbb-calendar-sheet{width:min(560px,94vw)}.xmbb-calendar-nav{height:46px;display:grid;grid-template-columns:46px 1fr 46px;align-items:center;margin-bottom:8px}.xmbb-calendar-nav strong{text-align:center;font-size:17px}.xmbb-calendar-nav button{width:38px;height:38px;border:0;border-radius:10px;background:#f5f5f5;font-size:26px;cursor:pointer}.xmbb-calendar-week,.xmbb-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.xmbb-calendar-week span{text-align:center;color:#999;font-size:12px;padding:7px 0}.xmbb-calendar-day,.xmbb-calendar-blank{aspect-ratio:1;min-height:42px}.xmbb-calendar-day{border:0;background:#fff;border-radius:12px;font-weight:650;cursor:pointer}.xmbb-calendar-day:hover{background:#f3f3f3}.xmbb-calendar-day.today{box-shadow:inset 0 0 0 1px #bbb}.xmbb-calendar-day.selected{background:#111;color:#fff;box-shadow:none}.xmbb-time-row{margin:18px 0 4px;padding:14px;background:#f7f7f7;border-radius:13px;display:flex;align-items:flex-end;justify-content:center;gap:10px}.xmbb-time-row label{font-size:11px;color:#888}.xmbb-time-row input{display:block;width:82px;height:42px;margin-top:5px;border:1px solid #ddd;border-radius:9px;padding:0 10px;text-align:center;font-size:16px}.xmbb-time-row>span{font-size:22px;padding-bottom:8px}.xmbb-control-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:18px}
.brand-cost-preview{margin-top:16px;border-radius:12px;background:#f5f5f5;padding:14px 16px;display:flex;justify-content:space-between;gap:14px;align-items:center}.brand-cost-preview span{color:#777}.brand-cost-preview strong{font-size:17px}.form-grid .wide{grid-column:1/-1}
/* Data → sold product cards */
.sold-product-list{display:grid;gap:10px}.sold-product-card{width:100%;border:1px solid #ececec;background:#fff;border-radius:14px;padding:12px;display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:14px;text-align:left;cursor:pointer}.sold-product-card:hover{border-color:#ccc;background:#fafafa}.sold-product-thumb{width:72px;height:72px;border-radius:11px;overflow:hidden;background:#f4f4f4;border:1px solid #eee}.sold-product-thumb img{width:100%;height:100%;object-fit:cover;display:block}.sold-product-main{min-width:0}.sold-product-main strong{display:block;font-size:15px;margin-bottom:6px}.sold-product-main span{display:block;color:#777;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sold-product-main small{display:block;color:#aaa;font-size:11px;margin-top:6px}.sold-product-metrics{min-width:128px;text-align:right;display:grid;gap:5px;grid-template-columns:1fr auto;align-items:center}.sold-product-metrics b{font-size:17px;grid-column:1}.sold-product-metrics strong{font-size:14px;grid-column:1}.sold-product-metrics i{grid-column:2;grid-row:1/3;font-style:normal;font-size:28px;color:#aaa;padding-left:10px}.sold-product-detail-modal{position:relative;padding-top:60px}.sold-detail-hero{display:flex;gap:12px;align-items:baseline;margin-top:13px}.sold-detail-hero b{font-size:28px}.sold-detail-hero span{color:#666;font-weight:700}.sold-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.sold-detail-stats>div{background:#f7f7f7;border-radius:12px;padding:12px}.sold-detail-stats span{display:block;color:#888;font-size:11px}.sold-detail-stats strong{display:block;font-size:15px;margin-top:5px}.sold-size-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px}.sold-detail-size{border:1px solid #e7e7e7;border-radius:11px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.sold-detail-size span{color:#777;font-size:12px}.sold-detail-size strong{font-size:13px}.sold-detail-size.zero{background:#fff2f2;color:#b33a3a}.sold-detail-size.low{background:#fff7e8;color:#a26700}
@media(max-width:1100px){.xmbb-control-sheet{width:min(500px,90vw)}.sold-product-card{grid-template-columns:64px minmax(0,1fr) auto}.sold-product-thumb{width:64px;height:64px}.sold-detail-stats{grid-template-columns:repeat(2,1fr)}}

/* v7.48 库存相册模式 */
.inventory-toolbar{flex-wrap:wrap;gap:10px}.inventory-toolbar>input{min-width:280px;flex:1}.inventory-toolbar select{min-width:120px}.inventory-view-switch{display:flex;border:1px solid #ddd;border-radius:12px;padding:3px;background:#fff}.inventory-view-switch .btn{border:0;min-width:64px;background:transparent}.inventory-view-switch .btn.active{background:#111;color:#fff}.inventory-filter-hint{margin:0 2px 12px;color:#888;font-size:13px}.inventory-filter-hint strong{color:#111}.inventory-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;padding:4px}.inventory-gallery-card{appearance:none;border:1px solid #ececec;border-radius:18px;background:#fff;text-align:left;padding:0;overflow:hidden;cursor:pointer;transition:.18s ease;box-shadow:0 1px 0 rgba(0,0,0,.02)}.inventory-gallery-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.08);border-color:#d8d8d8}.inventory-gallery-image{position:relative;aspect-ratio:1/1;background:#f6f6f4;overflow:hidden}.inventory-gallery-image img{width:100%;height:100%;object-fit:cover;display:block}.inventory-gallery-image .inventory-thumb-empty{width:100%;height:100%;place-items:center;color:#aaa}.gallery-match-badge{position:absolute;left:12px;bottom:12px;background:#111;color:#fff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700}.inventory-gallery-info{padding:14px}.gallery-title-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.gallery-title-row strong{font-size:16px;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-title-row em{font-style:normal;font-size:12px;color:#666;white-space:nowrap}.gallery-size-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.gallery-size-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid #e5e5e5;border-radius:8px;padding:5px 7px;font-size:11px;color:#555;background:#fff}.gallery-size-chip b{color:#111}.gallery-size-chip.low{border-color:#e7c884;background:#fffaf0}.gallery-size-chip.zero{opacity:.35;text-decoration:line-through}@media(max-width:900px){.inventory-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.inventory-toolbar>input{min-width:100%;}.inventory-gallery-info{padding:11px}}@media(max-width:620px){.inventory-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v7.49 XMBB POS brand + structured settings */
.login-wordmark{font-weight:850;letter-spacing:3px;font-size:24px;line-height:1.02;margin-bottom:8px}.login-wordmark .wm-bottom,.side-brand .wm-bottom{display:flex;align-items:flex-end;gap:6px}.login-wordmark .wm-bottom small,.side-brand .wm-bottom small{font-size:9px;line-height:1.2;letter-spacing:.2px;color:#999;font-weight:650;margin-bottom:3px}.side-brand{font-size:24px;font-weight:850;letter-spacing:2px}.side-brand .wm-bottom small{color:#777}.settings-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start}.settings-subnav{position:sticky;top:78px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px}.settings-subnav-title{font-size:13px;color:#999;padding:8px 10px 10px}.settings-tab{width:100%;border:0;background:transparent;border-radius:10px;padding:11px 12px;text-align:left;font-size:14px;cursor:pointer;color:#555;margin:2px 0}.settings-tab:hover{background:#f6f6f6}.settings-tab.active{background:#111;color:#fff;font-weight:650}.settings-content{min-width:0}.settings-grid{grid-template-columns:1fr;gap:14px}.settings-grid>[data-settings-group]{display:none}.settings-grid>[data-settings-group].settings-group-active{display:block}.settings-grid>.hidden{display:none!important}.settings-grid .panel{padding:20px 22px}.settings-grid .panel-head{gap:16px}.settings-grid .panel-head>div{min-width:0}.settings-grid .panel h2{font-size:18px}.settings-grid .muted{line-height:1.55}.settings-grid .receipt-settings-panel{grid-column:auto}.settings-section-intro{margin-bottom:12px}.settings-grid table{width:100%}
@media(max-width:1000px){.settings-layout{grid-template-columns:1fr}.settings-subnav{position:static;display:flex;gap:6px;overflow-x:auto;padding:8px}.settings-subnav-title{display:none}.settings-tab{width:auto;white-space:nowrap}}


/* v7.50 — points, rounding and cleaner settings */
.discount-control{display:flex;align-items:center;gap:10px}.discount-control .money-input{flex:1}.mini-action-btn{border:1px solid #ddd;background:#fff;border-radius:10px;padding:8px 14px;font-weight:700;cursor:pointer;white-space:nowrap}.mini-action-btn:hover{border-color:#111}.totals #pointsRow:not(.hidden){display:flex}.switch-line{display:flex!important;align-items:center;justify-content:space-between;min-height:54px}.switch-line input[type=checkbox]{width:42px;height:24px;accent-color:#111}.settings-grid .panel{padding:28px}.settings-grid .panel h2{margin:0 0 8px}.settings-grid .panel-head{align-items:flex-start;gap:24px}.recharge-plan-editor{display:grid;gap:12px}.recharge-plan-edit-row{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(120px,.7fr) minmax(120px,.7fr) auto auto;gap:14px;align-items:end;padding:18px;border:1px solid #ececec;border-radius:16px;background:#fafafa}.recharge-plan-edit-row label{margin:0}.recharge-plan-edit-row input{background:#fff}.promotion-card-list{display:grid;gap:12px}.promotion-card{display:grid;grid-template-columns:minmax(200px,1.4fr) minmax(160px,1fr) minmax(120px,.7fr) minmax(220px,1.2fr) auto;gap:18px;align-items:center;padding:18px 20px;border:1px solid #ececec;border-radius:16px;background:#fafafa}.promotion-card strong{font-size:16px}.promotion-card .promotion-meta{display:flex;flex-direction:column;gap:4px}.promotion-status{display:inline-flex;width:max-content;padding:4px 9px;border-radius:999px;background:#eaf7ef;color:#237847;font-size:12px}.promotion-status.off{background:#f2f2f2;color:#777}@media(max-width:900px){.recharge-plan-edit-row,.promotion-card{grid-template-columns:1fr 1fr}.promotion-card .promotion-actions{grid-column:1/-1}.recharge-plan-edit-row .rp-delete{justify-self:start}}

.setting-display-card{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:18px;padding:18px 20px;border:1px solid #ececec;border-radius:16px;background:#fafafa}.setting-display-card>div:first-child{min-width:0}.setting-display-card strong{font-size:16px}.setting-card-actions{display:flex;align-items:center;gap:12px}.settings-collapse-body{margin-top:18px}

/* v7.51 order thumbnails + compact calendar */
.order-product-cell{display:flex;align-items:center;gap:12px;min-width:260px}.order-product-thumb,.order-product-thumb-empty{width:52px;height:52px;flex:0 0 52px;border-radius:10px;object-fit:cover;background:#f3f3f3}.order-product-thumb-empty{display:grid;place-items:center;font-size:10px;color:#aaa}
.xmbb-calendar-sheet{max-height:min(760px,94vh);overflow:hidden;display:flex;flex-direction:column;padding:18px 22px}.xmbb-calendar-sheet .xmbb-control-head{margin-bottom:8px}.xmbb-calendar-sheet .xmbb-calendar-nav{height:40px;margin-bottom:2px}.xmbb-calendar-sheet .xmbb-calendar-week,.xmbb-calendar-sheet .xmbb-calendar-grid{gap:3px}.xmbb-calendar-sheet .xmbb-calendar-week span{padding:4px 0}.xmbb-calendar-sheet .xmbb-calendar-day,.xmbb-calendar-sheet .xmbb-calendar-blank{aspect-ratio:auto;height:42px;min-height:34px}.xmbb-calendar-sheet .xmbb-control-actions{margin-top:10px;position:sticky;bottom:0;background:#fff;padding-top:8px}.xmbb-calendar-sheet .xmbb-time-row{margin:8px 0 0;padding:8px}
@media(max-height:760px){.xmbb-calendar-sheet{max-height:96vh;padding:12px 18px}.xmbb-calendar-sheet .xmbb-control-head h3{font-size:19px}.xmbb-calendar-sheet .xmbb-control-close{width:34px;height:34px}.xmbb-calendar-sheet .xmbb-calendar-nav{height:34px}.xmbb-calendar-sheet .xmbb-calendar-day,.xmbb-calendar-sheet .xmbb-calendar-blank{height:34px}.xmbb-calendar-sheet .xmbb-control-actions{margin-top:6px}.xmbb-calendar-sheet .xmbb-time-row{padding:6px;margin-top:5px}.xmbb-calendar-sheet .xmbb-time-row input{height:36px}}


/* v7.52 — settings width guard + developer credit */
.settings-content,.settings-grid,.settings-grid .panel,.settings-grid .form-grid,.settings-grid .form-grid label{min-width:0}
.settings-grid .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-grid .panel-head{flex-wrap:wrap}
.settings-grid .panel-head>div{flex:1 1 420px;min-width:0;flex-wrap:wrap}
.settings-grid .panel-head>.btn,.settings-grid .panel-head>.panel-actions{flex:0 0 auto}
.settings-grid .muted{overflow-wrap:anywhere}
.settings-grid input,.settings-grid select{max-width:100%;min-width:0}
.promotion-card{grid-template-columns:minmax(150px,1.2fr) minmax(120px,.85fr) minmax(90px,.55fr) minmax(160px,1fr) auto;gap:12px;min-width:0}
.promotion-card>*{min-width:0}.promotion-card div{overflow-wrap:anywhere}
.settings-developer-credit{display:none;text-align:center;color:#aaa;font-size:12px;padding:18px 10px 6px;letter-spacing:.3px}
.settings-developer-credit.settings-group-active{display:block}
@media(max-width:1450px){.promotion-card{grid-template-columns:1.2fr .9fr .65fr}.promotion-card>div:nth-child(4){grid-column:1/3}.promotion-card .promotion-actions{grid-column:3;grid-row:2;justify-self:end}.recharge-plan-edit-row{grid-template-columns:minmax(160px,1.4fr) minmax(100px,.7fr) minmax(100px,.7fr) auto auto;gap:10px}.settings-grid .panel{padding:20px}}
@media(max-width:1050px){.settings-grid .form-grid{grid-template-columns:1fr}.promotion-card,.recharge-plan-edit-row{grid-template-columns:1fr 1fr}.promotion-card>div:nth-child(4),.promotion-card .promotion-actions{grid-column:auto;grid-row:auto}.promotion-card .promotion-actions{justify-self:start}}

.settings-grid .panel-head h2{white-space:nowrap;flex:0 0 auto}
.settings-grid .panel-head p{flex:1 1 260px;min-width:180px;margin:0}


/* v7.55 cashier visual product browser */
.browse-products-btn{white-space:nowrap;padding-left:16px;padding-right:16px}
.product-browser-modal{width:min(1080px,96vw)!important;max-height:92vh!important}
.product-browser-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.product-browser-head h3{margin:3px 0 5px}
.product-browser-tools{display:grid;grid-template-columns:minmax(240px,1fr) 190px;gap:10px;position:sticky;top:-22px;background:#fff;padding:10px 0 12px;z-index:2;border-bottom:1px solid var(--line)}
.product-browser-tools input,.product-browser-tools select{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;outline:none}
.product-browser-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px 1px 4px}
.product-browser-card{border:1px solid #ececec;background:#fff;border-radius:14px;padding:0;overflow:hidden;text-align:left;cursor:pointer;transition:.14s ease;min-width:0}.product-browser-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px #00000010;border-color:#d9d9d9}
.product-browser-image{aspect-ratio:1/1;background:#f5f5f5;position:relative;display:grid;place-items:center;overflow:hidden}.product-browser-image img{width:100%;height:100%;object-fit:cover;display:block}
.product-browser-info{padding:10px 11px 12px;display:grid;gap:4px}.product-browser-info strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-browser-info span{font-size:11px;color:#8a8a8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-browser-info b{font-size:14px;margin-top:2px}.product-browser-empty{grid-column:1/-1}
@media(max-width:1200px){.product-browser-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v7.56 会员档案：顶部操作栏固定，内容独立滚动 */
.member-profile-modal{width:min(1120px,94vw)!important;max-height:88vh!important;overflow:hidden!important;padding:0!important}
.member-profile-shell{height:min(88vh,820px);display:flex;flex-direction:column;min-height:0}
.member-profile-modal .member-commercial-header{flex:0 0 auto;margin:0;padding:20px 22px 16px;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:4}
.member-profile-modal .member-header-actions{margin-left:auto;flex-wrap:nowrap}
.member-profile-modal .member-header-actions .btn{white-space:nowrap}
.member-profile-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 22px 22px;overscroll-behavior:contain}
.member-profile-scroll .commercial-stats{margin-top:16px}

/* v7.56 看图选款：整体收紧，顶部标题/搜索固定，商品区滚动 */
.product-browser-modal{width:min(920px,90vw)!important;max-height:84vh!important;overflow:hidden!important;padding:0!important}
.product-browser{height:min(84vh,760px);display:flex;flex-direction:column;min-height:0}
.product-browser-sticky{flex:0 0 auto;background:#fff;border-bottom:1px solid var(--line);padding:18px 18px 12px;position:relative;z-index:4}
.product-browser-head{margin:0 0 12px!important;align-items:center!important}
.product-browser-head h3{margin:2px 0 4px}
.product-browser-close{white-space:nowrap;align-self:flex-start}
.product-browser-tools{position:static!important;padding:0!important;border-bottom:0!important;grid-template-columns:minmax(220px,1fr) 170px!important;margin:0!important}
.product-browser-scroll{flex:1;min-height:0;overflow-y:auto;padding:12px 18px 18px;overscroll-behavior:contain}
.product-browser-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;padding:0!important}
@media(max-width:900px){.product-browser-modal{width:94vw!important}.product-browser-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.product-browser-tools{grid-template-columns:1fr!important}.member-profile-modal{width:96vw!important}.member-profile-modal .member-commercial-header{align-items:flex-start}.member-profile-modal .member-header-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}}

/* v7.57 全局下拉框：统一使用独立 SVG Chevron Down 图标，不再依赖字体符号 */
.xmbb-select-trigger .xmbb-chevron{margin-left:auto;margin-right:1px}


/* v7.58 平板触控：禁止“悬停态粘住”造成侧栏同时出现两个白色选中条 */
.nav-btn,.btn,.link-btn,.pay-btn,.checkout-btn,.icon-btn,.mini-action-btn,.xmbb-select-trigger{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
@media (hover:none), (pointer:coarse){
  .nav-btn:hover:not(.active){background:transparent!important;color:#aaa!important}
  .btn:hover{background:#fff}
  .btn.primary:hover{background:#111;color:#fff;border-color:#111}
  .btn.danger:hover{background:#fff8f8}
  .link-btn:hover,.icon-btn:hover{background:transparent}
  .pay-btn:hover:not(.active){background:#fff;color:inherit}
  .product-browser-card:hover{transform:none;box-shadow:none;border-color:#ececec}
  .data-table tr:hover td{background:transparent}
  .result-row:hover{background:#fff}
}


/* v7.59 — calendar SVG arrows + settings spacing/form consistency */
.xmbb-calendar-nav .xmbb-cal-arrow{display:flex;align-items:center;justify-content:center;padding:0;line-height:1;font-size:0}
.xmbb-calendar-nav .xmbb-cal-arrow svg{width:20px;height:20px;display:block}
.xmbb-calendar-nav .xmbb-cal-arrow path{fill:none;stroke:#111;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
#exportBtn{margin-right:12px}
#storeDisplayName{height:42px;min-width:260px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#222;font:inherit;font-size:14px;line-height:42px;outline:none;box-sizing:border-box;vertical-align:middle}
#storeDisplayName::placeholder{color:#aaa;font:inherit}
#storeDisplayName:hover{border-color:#c8c8c8}
#storeDisplayName:focus{border-color:#111;box-shadow:0 0 0 2px rgba(17,17,17,.045)}
/* v7.61 inventory layout */
.inventory-assets-panel{margin-bottom:24px}
.inventory-fixed-table{width:100%;table-layout:fixed;min-width:0}
.inventory-fixed-table th:nth-child(1){width:24%}.inventory-fixed-table th:nth-child(2){width:14%}.inventory-fixed-table th:nth-child(3){width:12%}.inventory-fixed-table th:nth-child(4){width:28%}.inventory-fixed-table th:nth-child(5){width:8%}.inventory-fixed-table th:nth-child(6){width:8%}.inventory-fixed-table th:nth-child(7){width:10%}
.inventory-sizes-cell{padding-left:8px!important;padding-right:8px!important;overflow:hidden}.inventory-size-strip{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;padding:4px 2px 7px;scrollbar-width:thin}.inventory-size-mini{flex:0 0 48px;text-align:center}.inventory-size-mini span{display:block;color:#999;font-size:10px;margin-bottom:4px}.inventory-size-mini button,.inventory-size-mini strong{display:grid;place-items:center;width:44px;height:34px;border:1px solid #e2e2e2;border-radius:9px;background:#fff;font-weight:700}.inventory-size-mini button{cursor:pointer}.inventory-size-mini.zero button,.inventory-size-mini.zero strong{color:#d64040}.inventory-size-mini.low button,.inventory-size-mini.low strong{color:#a26700}.inventory-fixed-table td:nth-last-child(-n+3),.inventory-fixed-table th:nth-last-child(-n+3){white-space:nowrap}
.product-detail-modal{position:relative;padding-top:58px}.product-detail-close{position:absolute;right:18px;top:16px;width:40px;height:40px;border:1px solid #e8e8e8;border-radius:11px;background:#f7f7f7;display:grid;place-items:center;cursor:pointer;z-index:4}.product-detail-close svg{width:20px;height:20px;fill:none;stroke:#111;stroke-width:2;stroke-linecap:round}.product-detail-close:hover{background:#eee}.product-stock-priority{margin:0 0 18px;padding:14px;background:#f7f7f7;border-radius:14px}.product-stock-priority .product-stock-grid{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.product-stock-priority .product-stock-chip{flex:0 0 86px}


/* v7.60 会员档案：单一滚动、分区层级、订单详情入口 */
.member-profile-scroll{background:#f4f5f6;padding:16px 22px 24px}
.member-profile-scroll>.commercial-stats,.member-profile-scroll>.member-detail-grid,.member-profile-scroll>.detail-section,.member-profile-scroll>.tiny{background:#fff}
.member-profile-scroll>.commercial-stats{margin-top:0;border:1px solid #ededed;border-radius:14px;padding:10px}
.member-profile-scroll>.member-detail-grid{border:1px solid #ededed;border-radius:14px;padding:10px;margin:12px 0}
.member-profile-scroll>.detail-section{border:1px solid #ededed;border-radius:14px;padding:16px;margin:12px 0}
.member-profile-scroll>.detail-section+ .detail-section{border-top:1px solid #ededed}
.member-profile-scroll>.tiny{border-radius:12px;padding:12px 14px;color:#999}
.member-record-list{margin-top:10px;display:grid;gap:8px}
.member-record-list .ledger-row{margin:0;background:#fafafa;border:1px solid #eee;border-radius:10px;padding:12px 13px}
.commercial-order.compact-order{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;margin:0;padding:12px 13px;border:1px solid #e9e9e9;background:#fafafa;appearance:none;-webkit-appearance:none}
.commercial-order.compact-order:hover{border-color:#d6d6d6;background:#f7f7f7}
.commercial-order-summary{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;color:#888;font-size:12px}
.profile-order-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.profile-order-right>strong{font-size:15px;white-space:nowrap}
.profile-order-chevron{width:22px;height:22px;display:grid;place-items:center;color:#8a8a8a}
.profile-order-chevron svg{width:15px;height:15px;display:block}.profile-order-chevron path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.member-collapsed{display:none!important}
.member-more-btn{display:block;margin:10px auto 0;padding:8px 18px;border:1px solid #dedede;border-radius:999px;background:#fff;color:#555;font:inherit;font-size:12px;cursor:pointer}
.member-more-btn:hover{border-color:#bbb;color:#111}
@media (hover:none),(pointer:coarse){.commercial-order.compact-order:hover{background:#fafafa;border-color:#e9e9e9}}


/* v7.62 商品详情操作布局 */
.product-detail-modal{padding-top:72px}
.product-detail-top-actions{position:absolute;right:18px;top:16px;display:flex;align-items:center;gap:10px;z-index:6}
.product-detail-top-actions .product-detail-close{position:static;right:auto;top:auto;flex:0 0 40px}
.product-stock-title{gap:14px}
.product-stock-title-actions{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:0}
.product-stock-title-actions>span{white-space:nowrap}
.product-stock-title-actions .btn{white-space:nowrap}
@media(max-width:800px){
  .product-detail-modal{padding-top:68px}
  .product-detail-top-actions{right:14px;top:14px;gap:8px}
  .product-stock-title{align-items:flex-start}
  .product-stock-title-actions{gap:8px}
  .product-stock-title-actions>span{display:none}
}

/* v7.63 订单详情：顶部固定，操作固定右上角 */
.modal.order-detail-modal{padding:0;overflow:hidden;max-height:90vh}
.order-detail-shell{height:min(840px,90vh);display:flex;flex-direction:column;min-height:0;background:#fff;border-radius:18px;overflow:hidden}
.order-detail-fixed-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px 16px;background:#fff;border-bottom:1px solid var(--line);z-index:4}
.order-detail-title{min-width:0}.order-detail-title h3{margin:0 0 6px}.order-detail-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;white-space:nowrap}
.order-detail-close{width:42px;height:42px;border:1px solid #e5e5e5;border-radius:12px;background:#f7f7f7;display:grid;place-items:center;cursor:pointer;padding:0;flex:0 0 auto}
.order-detail-close svg{width:20px;height:20px;fill:none;stroke:#111;stroke-width:2;stroke-linecap:round}
.order-detail-scroll{flex:1;min-height:0;overflow:auto;padding:18px 22px 24px;overscroll-behavior:contain}
@media(max-width:900px){.order-detail-fixed-header{align-items:flex-start}.order-detail-header-actions{gap:6px}.order-detail-fixed-header .btn{padding:9px 11px}.order-detail-close{width:40px;height:40px}}
/* v7.64 售后 / 换货 */
.order-reprint-btn{background:#111!important;color:#fff!important;border-color:#111!important;font-weight:700}.order-reprint-btn:hover{background:#000!important}
.after-sale-head,.exchange-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #eee}.after-sale-head h3,.exchange-picker-head h3{margin:0 0 5px}.refund-stepper{display:flex;align-items:center;gap:12px;min-width:176px;justify-content:flex-end}.refund-stepper>span{font-size:13px;color:#666;white-space:nowrap}.refund-stepper b{font-size:18px;color:#111}.refund-stepper.selected>span{color:#111}.refund-plus{min-width:64px;font-weight:800;background:#111!important;color:#fff!important;border-color:#111!important}.refund-plus:hover{background:#000!important}.after-sale-modal{max-height:88vh;overflow:auto}.exchange-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.exchange-columns section{border:1px solid #eee;border-radius:16px;padding:16px;background:#fafafa}.exchange-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.exchange-in-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;background:#fff;border:1px solid #eee;border-radius:13px;margin-bottom:9px}.exchange-in-main{display:flex;align-items:center;gap:12px;min-width:0}.exchange-in-main img,.exchange-thumb-empty{width:58px;height:58px;border-radius:10px;object-fit:cover;background:#f3f3f3;flex:0 0 auto}.exchange-thumb-empty{display:grid;place-items:center;color:#aaa;font-size:11px}.exchange-in-main>div{min-width:0}.exchange-in-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exchange-in-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}.exchange-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.exchange-summary>div{background:#f7f7f7;border-radius:14px;padding:14px 16px;display:flex;justify-content:space-between;gap:10px}.exchange-summary span{color:#666}.exchange-summary strong{font-size:18px}.exchange-difference.positive-due strong{color:#111}.exchange-difference.negative-due strong{color:#16865c}.exchange-settlement{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;margin-bottom:14px}.exchange-payments{display:flex;gap:8px;flex-wrap:wrap}.exchange-picker-modal{width:min(1120px,92vw);height:min(820px,88vh);overflow:hidden}.exchange-picker-shell{height:100%;display:flex;flex-direction:column}.exchange-picker-actions{display:flex;align-items:center;gap:10px}.exchange-picker-search{display:flex;gap:10px;margin-bottom:14px}.exchange-picker-search input{flex:1}.exchange-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;overflow:auto;padding-right:4px}.exchange-product-card{appearance:none;border:1px solid #eee;background:#fff;border-radius:14px;padding:0;text-align:left;overflow:hidden;cursor:pointer}.exchange-product-card img,.exchange-product-empty{width:100%;aspect-ratio:1/1;object-fit:cover;background:#f5f5f5}.exchange-product-empty{display:grid;place-items:center;color:#aaa}.exchange-product-card>div:last-child{padding:10px}.exchange-product-card strong,.exchange-product-card small,.exchange-product-card b{display:block}.exchange-product-card small{color:#888;margin:4px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exchange-size-product{display:flex;align-items:center;gap:14px;margin:10px 0 18px}.exchange-size-product img{width:76px;height:76px;border-radius:13px;object-fit:cover}.exchange-record small{display:block;margin-top:4px}.empty.compact{padding:18px}
@media(max-width:900px){.exchange-columns{grid-template-columns:1fr}.exchange-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.exchange-summary{grid-template-columns:1fr}.exchange-settlement{align-items:flex-start;flex-direction:column}}
.nav-badge{margin-left:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#111;color:#fff;font-size:11px;display:inline-grid;place-items:center}.nav-badge.hidden{display:none}.transfer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.transfer-head h2{margin:0 0 5px}.transfer-tabs{display:flex;gap:8px;border-bottom:1px solid #eee;padding-bottom:12px;margin-bottom:16px}.transfer-tab{border:0;background:#f3f3f3;border-radius:10px;padding:10px 16px;font-weight:700;cursor:pointer}.transfer-tab.active{background:#111;color:#fff}.transfer-list{display:grid;gap:12px}.transfer-card{border:1px solid #e8e8e8;border-radius:16px;padding:16px;background:#fff}.transfer-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.transfer-product{display:flex;gap:12px;align-items:center}.transfer-thumb{width:64px;height:64px;border-radius:12px;object-fit:cover;background:#f3f3f3}.transfer-meta{display:flex;gap:14px;flex-wrap:wrap;color:#666;font-size:13px;margin-top:8px}.transfer-price{font-size:22px;font-weight:800}.transfer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.transfer-status{font-size:12px;font-weight:700;padding:5px 9px;border-radius:9px;background:#f2f2f2}.transfer-mode{font-size:12px;padding:4px 8px;border-radius:8px;background:#111;color:#fff}.transfer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.transfer-mode-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.transfer-mode-pick label{border:1px solid #ddd;border-radius:12px;padding:12px;cursor:pointer}.transfer-money-box{background:#f7f7f7;border-radius:14px;padding:14px;margin-top:12px}.logistics-box{background:#f7f7f7;border-radius:12px;padding:12px;margin-top:10px}.offer-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #eee}@media(max-width:900px){.transfer-form-grid{grid-template-columns:1fr}.transfer-card-head{flex-direction:column}}

/* v7.67 全国调货：图片选款 / 模式卡片 / 消息推送 DEMO */
.nav-badge{background:#e83939;color:#fff;box-shadow:0 0 0 2px #111;font-weight:800}.top-notify-btn{position:relative;width:36px;height:36px;border:0;background:transparent;border-radius:10px;display:grid;place-items:center;cursor:pointer}.top-notify-btn:hover{background:#f5f5f5}.top-notify-bell{width:18px;height:18px;display:block;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23444' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9'/%3E%3Cpath d='M13.73 21a2 2 0 0 1-3.46 0'/%3E%3C/svg%3E")}.top-notify-badge{position:absolute;right:1px;top:1px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#e83939;color:#fff;border:2px solid #fff;font-size:9px;line-height:12px;font-weight:800;text-align:center}.top-notify-badge.hidden{display:none}.transfer-request-modal{min-width:0}.transfer-request-head,.transfer-notice-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.transfer-request-head h3,.transfer-notice-title h3{margin:0 0 5px}.modal-x{width:42px;height:42px;border:1px solid #eee;border-radius:12px;background:#f7f7f7;font-size:26px;line-height:1;cursor:pointer;flex:none}.transfer-selected-product{display:flex;align-items:center;gap:12px;background:#f7f7f7;border-radius:14px;padding:12px;margin:14px 0}.transfer-selected-product img,.transfer-selected-placeholder{width:62px;height:62px;border-radius:10px;object-fit:cover;background:#eee}.transfer-selected-product span,.transfer-selected-product small{display:block;color:#888;font-size:12px}.transfer-selected-product strong{display:block;font-size:16px;margin:3px 0}.transfer-picker-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px;gap:9px;margin-bottom:10px}.transfer-picker-toolbar input,.transfer-picker-toolbar select{width:100%;height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff;outline:none}.transfer-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-height:310px;overflow:auto;padding:2px 4px 6px 1px}.transfer-product-card{border:1px solid #e8e8e8;background:#fff;border-radius:13px;padding:0;overflow:hidden;text-align:left;cursor:pointer;min-width:0}.transfer-product-card.selected{border-color:#111;box-shadow:0 0 0 1px #111}.transfer-product-card img,.transfer-product-placeholder{width:100%;aspect-ratio:1.22/1;object-fit:cover;background:#f5f5f5;display:grid;place-items:center;color:#aaa;font-size:12px}.transfer-product-card-body{display:block;padding:9px 10px}.transfer-product-card-body strong,.transfer-product-card-body small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transfer-product-card-body strong{font-size:13px;margin-bottom:4px}.transfer-product-card-body small{font-size:11px;color:#888;line-height:1.55}.transfer-picker-empty{grid-column:1/-1;height:120px}.transfer-form-grid.compact{margin-top:14px}.transfer-qty{display:grid;grid-template-columns:40px 1fr 40px;gap:6px;margin-top:5px}.transfer-qty button{border:1px solid var(--line);background:#fff;border-radius:9px;font-size:20px;cursor:pointer}.transfer-qty input{margin-top:0!important;text-align:center}.transfer-mode-pick{gap:12px;margin:16px 0}.transfer-mode-pick .transfer-mode-card{display:grid!important;grid-template-columns:22px 1fr;gap:11px;align-items:center;margin:0!important;border:1px solid #dedede;border-radius:14px;padding:16px!important;background:#fff;cursor:pointer;min-height:78px}.transfer-mode-card input[type=radio]{display:none!important;width:auto!important}.transfer-mode-radio{width:20px;height:20px;border:2px solid #aaa;border-radius:50%;display:grid;place-items:center;box-sizing:border-box}.transfer-mode-card input:checked + .transfer-mode-radio{border-color:#111}.transfer-mode-card input:checked + .transfer-mode-radio:after{content:'';width:10px;height:10px;border-radius:50%;background:#111}.transfer-mode-card:has(input:checked){border-color:#111;background:#fafafa}.transfer-mode-copy strong,.transfer-mode-copy small{display:block}.transfer-mode-copy strong{font-size:14px;color:#111}.transfer-mode-copy small{font-size:12px;color:#888;margin-top:5px;line-height:1.45}.transfer-price-row{display:grid;grid-template-columns:1.35fr .65fr;gap:12px}.transfer-price-row label{margin:0!important}.transfer-price-row input,.transfer-price-row select{width:100%;box-sizing:border-box;margin-top:6px;border:1px solid var(--line);border-radius:9px;padding:10px;outline:none;background:#fff}.transfer-price-input{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.transfer-price-input .btn{margin-top:6px;white-space:nowrap}.phone-push-card{position:relative;display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;background:rgba(247,247,247,.96);border:1px solid #e8e8e8;border-radius:18px;padding:14px;margin:12px 0 14px;box-shadow:0 12px 35px rgba(0,0,0,.08)}.phone-push-card img,.phone-push-img{width:56px;height:56px;border-radius:13px;object-fit:cover;background:#eee}.phone-push-app{font-size:11px;color:#777;margin-bottom:4px}.phone-push-app span{float:right}.phone-push-main strong{font-size:14px}.phone-push-main p{font-size:12px;color:#666;line-height:1.5;margin:4px 0 0}.phone-push-dot{position:absolute;right:12px;top:12px;width:10px;height:10px;border-radius:50%;background:#e83939;box-shadow:0 0 0 3px #fff}@media(max-width:900px){.transfer-picker-toolbar{grid-template-columns:1fr 1fr}.transfer-picker-toolbar input{grid-column:1/-1}.transfer-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.transfer-price-row{grid-template-columns:1fr}.transfer-mode-pick{grid-template-columns:1fr}}

/* v7.68 全国调货未读消息角标：固定在左侧菜单右上角 */
.nav-btn-transfer{position:relative;padding-right:34px!important}
.nav-btn-transfer .nav-badge{position:absolute;top:5px;right:7px;margin:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e83939;color:#fff;box-shadow:0 0 0 2px #111;font-size:10px;font-weight:800;line-height:18px;text-align:center;display:block}
.nav-btn-transfer.active .nav-badge{box-shadow:0 0 0 2px #fff}


/* v7.69 全国调货：左侧文字角标 + 发起调货左右双栏 */
.nav-btn-transfer{position:relative!important;padding-right:16px!important}
.transfer-nav-label{position:relative;display:inline-block}
.nav-btn-transfer .transfer-nav-label .nav-badge{position:absolute;left:calc(100% - 2px);right:auto;top:-10px;margin:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e83939;color:#fff;box-shadow:0 0 0 2px #111;font-size:10px;font-weight:800;line-height:18px;text-align:center;z-index:2}
.nav-btn-transfer.active .transfer-nav-label .nav-badge{box-shadow:0 0 0 2px #fff}
.transfer-request-split{height:min(760px,86vh);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.transfer-request-split .transfer-request-head{flex:0 0 auto;padding-bottom:14px;border-bottom:1px solid #eee}
.transfer-request-columns{display:grid;grid-template-columns:minmax(0,58fr) minmax(380px,42fr);gap:18px;flex:1;min-height:0;padding-top:14px}
.transfer-picker-pane{min-width:0;min-height:0;display:flex;flex-direction:column;padding-right:17px;border-right:1px solid #eee}
.transfer-picker-pane .transfer-picker-toolbar{flex:0 0 auto;grid-template-columns:minmax(180px,1fr) 126px 126px}
.transfer-picker-pane .transfer-product-grid{flex:1;min-height:0;max-height:none;overflow:auto;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;padding-right:5px}
.transfer-picker-pane .transfer-product-card img,.transfer-picker-pane .transfer-product-placeholder{aspect-ratio:1.42/1;max-height:125px}
.transfer-picker-pane .transfer-product-card-body{padding:8px 9px}
.transfer-setting-pane{min-width:0;min-height:0;display:flex;flex-direction:column}
.transfer-setting-scroll{flex:1;min-height:0;overflow:auto;padding-right:3px}
.transfer-setting-pane .transfer-selected-product{margin:0 0 14px}
.transfer-setting-pane .transfer-mode-pick{grid-template-columns:1fr;gap:9px;margin:14px 0}
.transfer-setting-pane .transfer-mode-pick .transfer-mode-card{min-height:68px;padding:13px!important}
.transfer-setting-pane .transfer-price-row{grid-template-columns:1fr;gap:10px}
.transfer-cost-note{margin-top:10px;line-height:1.55}
.transfer-submit-bar{flex:0 0 auto;display:flex;justify-content:flex-end;gap:9px;padding-top:14px;margin-top:12px;border-top:1px solid #eee;background:#fff}
.transfer-submit-bar .primary{min-width:112px}
@media(max-width:1050px){.transfer-request-columns{grid-template-columns:minmax(0,55fr) minmax(350px,45fr);gap:14px}.transfer-picker-pane .transfer-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.transfer-picker-pane .transfer-picker-toolbar{grid-template-columns:1fr 1fr}.transfer-picker-pane .transfer-picker-toolbar input{grid-column:1/-1}}

/* v7.70 全国调货云端初始化与发布链路修复 */

.logistics-timeline{margin-top:12px;border-left:2px solid #e8e8e8;padding-left:16px}.logistics-step{position:relative;padding:0 0 16px 8px}.logistics-step:before{content:'';position:absolute;left:-22px;top:4px;width:8px;height:8px;border-radius:50%;background:#111}.logistics-step span{display:block;color:#999;font-size:12px;margin-top:3px}.device-printer-fab{position:fixed;right:22px;bottom:22px;z-index:50}

/* v7.73 全国调货界面紧凑化：统计数字轻量、调货方式同排、竖版商品完整显示 */
#page-transfer .transfer-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 18px;padding:0 18px;background:#fff;border-radius:16px;border:1px solid #eee}
#page-transfer .transfer-stats .stat{min-height:62px;padding:12px 20px;border:0;border-radius:0;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:flex-start;gap:10px}
#page-transfer .transfer-stats .stat+.stat{border-left:1px solid #eee}
#page-transfer .transfer-stats .stat span{font-size:13px;color:#888}
#page-transfer .transfer-stats .stat strong{font-size:20px;line-height:1;font-weight:800;margin:0;color:#111}
.transfer-picker-pane .transfer-product-card img,.transfer-picker-pane .transfer-product-placeholder{width:100%;height:148px;max-height:none;aspect-ratio:auto;object-fit:contain!important;object-position:center;background:#f7f7f7}
.transfer-picker-pane .transfer-product-card{display:flex;flex-direction:column}
.transfer-picker-pane .transfer-product-card-body{min-height:48px}
.transfer-setting-pane .transfer-mode-pick{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;margin:10px 0!important}
.transfer-setting-pane .transfer-mode-pick .transfer-mode-card{min-height:58px!important;padding:10px 11px!important;grid-template-columns:19px 1fr;gap:8px}
.transfer-setting-pane .transfer-mode-radio{width:18px;height:18px}
.transfer-setting-pane .transfer-mode-card input:checked + .transfer-mode-radio:after{width:8px;height:8px}
.transfer-setting-pane .transfer-mode-copy strong{font-size:13px}
.transfer-setting-pane .transfer-mode-copy small{font-size:11px;margin-top:3px;line-height:1.3}
.transfer-setting-pane .transfer-selected-product{margin-bottom:10px;padding:10px}
.transfer-setting-pane .transfer-form-grid.compact{margin-top:10px}
.transfer-setting-pane .transfer-price-row{gap:8px}
.transfer-setting-pane .transfer-cost-note{margin-top:7px}
@media(max-width:900px){#page-transfer .transfer-stats{grid-template-columns:repeat(2,1fr)}#page-transfer .transfer-stats .stat:nth-child(3){border-left:0;border-top:1px solid #eee}#page-transfer .transfer-stats .stat:nth-child(4){border-top:1px solid #eee}.transfer-setting-pane .transfer-mode-pick{grid-template-columns:1fr!important}}

/* v7.74 全国调货图片选款：真正竖版商品卡 */
.transfer-picker-pane .transfer-product-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  align-content:start;
}
.transfer-picker-pane .transfer-product-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  background:#fff;
}
.transfer-picker-pane .transfer-product-card img,
.transfer-picker-pane .transfer-product-placeholder{
  width:100%;
  height:auto;
  max-height:none;
  aspect-ratio:4 / 5;
  object-fit:contain!important;
  object-position:center;
  background:#f7f7f7;
}
.transfer-picker-pane .transfer-product-card-body{
  min-height:50px;
  padding:8px 9px 9px;
}
.transfer-selected-product img,
.transfer-selected-placeholder{
  object-fit:contain!important;
  background:#f7f7f7;
}
@media(max-width:1050px){
  .transfer-picker-pane .transfer-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  .transfer-picker-pane .transfer-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* v7.75 全国调货选款卡：默认/筛选统一同一竖版媒体容器 */
.transfer-picker-pane .transfer-product-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-rows:max-content;
  align-items:start;
}
.transfer-picker-pane .transfer-product-card{
  display:flex!important;
  flex-direction:column!important;
  height:auto!important;
  min-height:0!important;
}
.transfer-picker-pane .transfer-product-media{
  display:block;
  width:100%;
  aspect-ratio:4 / 5;
  overflow:hidden;
  background:#f7f7f7;
  flex:0 0 auto;
}
.transfer-picker-pane .transfer-product-media img,
.transfer-picker-pane .transfer-product-media .transfer-product-placeholder{
  display:block;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#f7f7f7;
}
.transfer-picker-pane .transfer-product-media .transfer-product-placeholder{
  display:grid!important;
  place-items:center;
  color:#aaa;
}
.transfer-picker-pane .transfer-product-card-body{
  display:block!important;
  flex:0 0 auto;
  min-height:58px;
  padding:9px 10px 10px!important;
  background:#fff;
}
@media(max-width:820px){
  .transfer-picker-pane .transfer-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v7.76 inventory KPI compact row */
#page-inventory .stats-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
#page-inventory .stats-row .stat{min-height:100px;padding:14px 16px}
#page-inventory .stats-row .stat strong{font-size:22px;white-space:nowrap}
@media(max-width:1100px){#page-inventory .stats-row{grid-template-columns:repeat(5,minmax(145px,1fr));overflow-x:auto}}

/* v7.77 — settings subnav fixed column, content scrolls independently */
#page-settings.active{height:calc(100vh - 70px);overflow:hidden;}
#page-settings .settings-layout{height:100%;align-items:start;}
#page-settings .settings-subnav{position:static;align-self:start;top:auto;}
#page-settings .settings-content{height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:2px;}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){#page-settings.active{height:calc(100vh - 54px);}}
@media(max-width:1000px){#page-settings.active{height:auto;overflow:visible;}#page-settings .settings-content{height:auto;overflow:visible;}#page-settings .settings-subnav{position:static;}}


/* v7.78 — cashier image picker: five compact cards per row */
.product-browser-modal{width:min(1180px,96vw)!important;}
.product-browser{height:min(86vh,780px);}
.product-browser-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important;}
.product-browser-image{aspect-ratio:4/5;background:#f7f7f7;}
.product-browser-image img{object-fit:contain!important;object-position:center;}
.product-browser-info{padding:8px 9px 9px;gap:3px;}
.product-browser-info strong{font-size:13px;}
.product-browser-info span{font-size:10.5px;}
.product-browser-info b{font-size:13px;margin-top:1px;}
@media(max-width:1180px){.product-browser-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;}}
@media(max-width:900px){.product-browser-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}}
@media(max-width:720px){.product-browser-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}

/* v7.89 settings fixed shell + receipt tuning */
.page#page-settings.active{height:calc(100vh - 70px);overflow:hidden}
.page#page-settings .settings-layout{height:100%;min-height:0;align-items:stretch}
.page#page-settings .settings-subnav{position:sticky;top:0;align-self:start;max-height:calc(100vh - 92px);overflow:auto}
.page#page-settings .settings-content{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:28px}
.receipt-field-grid{grid-template-columns:repeat(auto-fit,minmax(138px,1fr))!important;align-items:center}
.receipt-field-grid label{white-space:nowrap;min-width:0}
.receipt-tuning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;background:#f7f7f7;border-radius:12px;padding:14px}
.receipt-tuning-grid label{margin:0!important;color:#444!important}.receipt-tuning-grid input[type=range]{width:100%;margin-top:8px}
@media(max-width:1100px){.receipt-tuning-grid{grid-template-columns:1fr}.receipt-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

.receipt-paper{padding-left:calc(var(--rp-margin,22px) * .35);padding-right:calc(var(--rp-margin,22px) * .35);padding-bottom:calc(12px + var(--rp-bottom,24px) * .25)}
.receipt-paper .rp-row,.receipt-paper .rp-item-meta,.receipt-paper>div:not(.rp-rule):not(.rp-center){line-height:calc(1.35em + var(--rp-line,0px) * .12)}
.receipt-paper .rp-rule{margin-top:calc(5px + var(--rp-section,0px) * .25);margin-bottom:calc(5px + var(--rp-section,0px) * .25)}
.rp-extra{margin-top:5px;line-height:1.45}.rp-contact{margin-top:4px}.rp-footer{padding-bottom:var(--rp-bottom,24px)}

/* v7.91 — settings hard-fixed shell + per-item receipt discount clarity */
body.settings-mode{height:100vh;overflow:hidden;overscroll-behavior:none}
body.settings-mode .app{height:100vh;overflow:hidden}
body.settings-mode .main{height:100vh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
body.settings-mode .topbar{flex:0 0 70px}
body.settings-mode #page-settings.active{display:block;flex:1 1 auto;height:auto!important;min-height:0;overflow:hidden!important;padding:22px}
body.settings-mode #page-settings .settings-layout{height:100%;min-height:0;overflow:hidden;align-items:stretch}
body.settings-mode #page-settings .settings-subnav{position:static!important;top:auto!important;align-self:start;max-height:none!important;overflow:hidden!important;overscroll-behavior:none;touch-action:pan-x}
body.settings-mode #page-settings .settings-content{height:100%;min-height:0;overflow-y:auto!important;overflow-x:hidden;overscroll-behavior:contain;padding-right:3px;padding-bottom:28px}
.receipt-paper .rp-item-discount{font-weight:800;margin-top:0}
.receipt-paper .rp-item-discount strong:last-child{font-size:1.05em}
.receipt-paper .rp-item-base{margin-bottom:0}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){body.settings-mode .topbar{flex-basis:54px}body.settings-mode #page-settings.active{padding:14px}}


/* settings shell + live receipt tuning */
html:has(body.settings-mode),body.settings-mode{height:100%;overflow:hidden!important;overscroll-behavior:none!important}
body.settings-mode .main{position:fixed!important;left:112px;right:0;top:0;bottom:0;width:auto!important;margin-left:0!important;min-height:0!important;overflow:hidden!important}
body.settings-mode .topbar{position:relative!important;top:auto!important;flex:0 0 70px;z-index:20}
body.settings-mode #page-settings.active{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:hidden!important}
body.settings-mode #page-settings .settings-layout{height:100%!important;min-height:0!important;overflow:hidden!important}
body.settings-mode #page-settings .settings-subnav{height:max-content!important;overflow:hidden!important;touch-action:none!important;overscroll-behavior:none!important}
body.settings-mode #page-settings .settings-content{height:100%!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch}
.receipt-preview-column{position:sticky;top:0;align-self:start;z-index:2;max-height:calc(100vh - 126px);overflow:auto;padding-bottom:12px}
.receipt-tuning-grid{grid-template-columns:1fr!important;gap:8px!important}
.receipt-tune-row{display:grid!important;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:center;margin:0!important;padding:7px 0;color:#444!important}
.receipt-tune-control{display:grid;grid-template-columns:minmax(130px,1fr) 72px 34px;gap:8px;align-items:center}
.receipt-tune-control input[type=range]{width:100%;margin:0!important}
.receipt-tune-number{width:72px!important;height:34px!important;margin:0!important;padding:5px 7px!important;border:1px solid var(--line)!important;border-radius:9px!important;text-align:center;background:#fff}
.receipt-tune-control em{font-style:normal;color:#999;font-size:11px}
@media(max-width:1100px){body.settings-mode .main{left:94px}.receipt-settings-grid{grid-template-columns:minmax(0,1fr) 330px!important}}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){body.settings-mode .main{left:150px}.receipt-preview-column{max-height:calc(100vh - 96px)}}


/* v7.94 — receipt UI consistency / strict settings scroll / global preview */
body.settings-mode #page-settings .settings-layout{display:grid!important;grid-template-columns:190px minmax(0,1fr)!important;gap:18px!important}
body.settings-mode #page-settings .settings-subnav{position:relative!important;inset:auto!important;align-self:start!important;height:auto!important;max-height:none!important;overflow:hidden!important;touch-action:none!important;overscroll-behavior:none!important}
body.settings-mode #page-settings .settings-content{position:relative!important;min-width:0!important;height:100%!important;max-height:100%!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:contain!important}

/* Receipt field checkboxes are fully custom drawn so Android WebView cannot resize them. */
.receipt-settings-form .check-grid input[type="checkbox"],
.receipt-settings-form .check-line input[type="checkbox"]{
  -webkit-appearance:none!important;appearance:none!important;
  flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;
  margin:0!important;padding:0!important;border:1px solid #c9cdd4!important;border-radius:4px!important;background:#fff!important;position:relative!important;box-sizing:border-box!important;vertical-align:middle!important;
}
.receipt-settings-form .check-grid input[type="checkbox"]:checked,
.receipt-settings-form .check-line input[type="checkbox"]:checked{background:#1683ff!important;border-color:#1683ff!important}
.receipt-settings-form .check-grid input[type="checkbox"]:checked::after,
.receipt-settings-form .check-line input[type="checkbox"]:checked::after{content:"";position:absolute;left:4px;top:1px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);box-sizing:border-box}
.receipt-settings-form .check-grid label{display:grid!important;grid-template-columns:18px minmax(0,1fr)!important;align-items:center!important;column-gap:8px!important;min-height:28px!important;line-height:1.25!important}

/* Bottom inputs use exactly the same visual system as the rest of Settings. */
.receipt-settings-form>label,.receipt-settings-form .mini-code-setting>label{font-size:13px!important;color:#666!important}
.receipt-settings-form input:not([type="checkbox"]):not([type="range"]):not([type="file"]),
.receipt-settings-form textarea,
.receipt-settings-form select{
  box-sizing:border-box!important;width:100%!important;border:1px solid var(--line)!important;border-radius:10px!important;background:#fff!important;color:#222!important;font:inherit!important;font-size:13px!important;line-height:1.4!important;padding:10px 12px!important;outline:none!important;box-shadow:none!important;transition:border-color .15s,box-shadow .15s!important;
}
.receipt-settings-form input:not([type="checkbox"]):not([type="range"]):not([type="file"]),.receipt-settings-form select{height:42px!important}
.receipt-settings-form textarea{min-height:92px!important;resize:vertical!important}
.receipt-settings-form input:focus,.receipt-settings-form textarea:focus,.receipt-settings-form select:focus{border-color:#999!important;box-shadow:0 0 0 3px rgba(0,0,0,.04)!important}

.receipt-preview-column{position:sticky!important;top:0!important;align-self:start!important;z-index:3!important;max-height:none!important;overflow:visible!important;padding-bottom:12px!important}
.receipt-preview-column>.receipt-paper-shell{max-height:calc(100vh - 155px)!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important}
.receipt-preview-column>.receipt-paper-shell::-webkit-scrollbar{width:5px}.receipt-preview-column>.receipt-paper-shell::-webkit-scrollbar-thumb{background:#ccc;border-radius:99px}
.receipt-paper.paper-80{width:80mm!important}
.receipt-paper.paper-58{width:58mm!important}
.receipt-modal-paper-shell .receipt-paper.paper-80{width:80mm!important}.receipt-modal-paper-shell .receipt-paper.paper-58{width:58mm!important}
.receipt-modal-paper-shell{overflow:auto!important}

.receipt-tune-row{grid-template-columns:126px minmax(0,1fr)!important}
.receipt-tune-control{grid-template-columns:minmax(150px,1fr) 72px 34px!important}
@media(max-width:1100px){body.settings-mode #page-settings .settings-layout{grid-template-columns:170px minmax(0,1fr)!important}.receipt-tune-row{grid-template-columns:112px minmax(0,1fr)!important}}


/* v7.95: staff permission modal remains independently scrollable; member camera scan */
.modal.wide{max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.modal.wide>.modal-actions{position:sticky;bottom:-22px;background:#fff;padding:14px 0 2px;z-index:4;border-top:1px solid #f0f0f0}
.member-camera-scan-btn{width:100%;margin:14px 0 4px;min-height:46px;font-weight:700}
.member-verify-modal .modal{max-height:90vh;overflow-y:auto}

/* v7.96 print tuning layout hardening */
.receipt-settings-grid{grid-template-columns:minmax(520px,1fr) minmax(300px,360px)!important;gap:20px!important;min-width:0}
.receipt-settings-form{min-width:0}
.receipt-preview-column{position:sticky!important;top:0!important;align-self:start!important;min-width:0!important;max-width:360px!important;overflow:visible!important}
.receipt-preview-column>.receipt-paper-shell{height:calc(100vh - 170px)!important;max-height:calc(100vh - 170px)!important;min-height:360px!important;overflow:auto!important;overscroll-behavior:contain!important;padding:16px!important}
.receipt-tune-row{grid-template-columns:132px minmax(0,1fr)!important;gap:12px!important;min-width:0}
.receipt-tune-control{grid-template-columns:minmax(120px,1fr) 70px 32px!important;gap:8px!important;min-width:0!important;width:100%!important}
.receipt-tune-control input[type=range]{min-width:0!important;width:100%!important}
.receipt-tune-number{display:block!important;visibility:visible!important;opacity:1!important;width:70px!important;min-width:70px!important;max-width:70px!important;position:relative!important;z-index:5!important}
.receipt-paper{padding-left:var(--rp-margin,22px)!important;padding-right:var(--rp-margin,22px)!important;padding-bottom:calc(12px + var(--rp-bottom,24px) * .25)!important}
.receipt-paper.paper-58{width:58mm!important}.receipt-paper.paper-80{width:80mm!important}
@media(max-width:1180px){.receipt-settings-grid{grid-template-columns:minmax(470px,1fr) 300px!important}.receipt-preview-column{max-width:300px!important}.receipt-tune-row{grid-template-columns:120px minmax(0,1fr)!important}.receipt-tune-control{grid-template-columns:minmax(100px,1fr) 66px 28px!important}.receipt-tune-number{width:66px!important;min-width:66px!important;max-width:66px!important}}

/* 订单同步：页面打开只读本地；手动同步按钮提供明确状态反馈 */
.order-toolbar{align-items:center;flex-wrap:wrap}.order-sync-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:106px}.order-sync-btn:disabled{opacity:.72;cursor:default}.order-sync-meta{font-size:12px;color:#888;white-space:nowrap}.order-sync-meta.error{color:var(--danger)}


/* v8.12 新店上线中心 */
.onboarding-view{position:fixed;inset:0;z-index:10050;background:#f5f5f3;display:flex;align-items:center;justify-content:center;padding:28px}.onboarding-view.hidden{display:none}.onboarding-shell{width:min(1180px,96vw);height:min(760px,92vh);background:#fff;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:340px 1fr;box-shadow:0 28px 80px rgba(0,0,0,.16)}.onboarding-side{background:#111;color:#fff;padding:38px 32px;overflow:auto}.onboarding-brand{font-size:22px;font-weight:800;letter-spacing:.08em}.onboarding-brand span{font-weight:400}.onboarding-kicker{margin-top:54px;font-size:12px;color:#aaa;letter-spacing:.16em}.onboarding-side h2{font-size:30px;line-height:1.2;margin:10px 0 12px}.onboarding-side p{color:#aaa;line-height:1.7}.onboarding-progress{height:5px;background:#333;border-radius:9px;margin:26px 0 10px;overflow:hidden}.onboarding-progress i{display:block;height:100%;width:0;background:#fff;transition:.25s}.onboarding-step-list{margin-top:28px;display:grid;gap:8px}.onboarding-step-item{display:flex;gap:12px;align-items:center;padding:9px 0;color:#777;font-size:13px}.onboarding-step-item b{width:24px;height:24px;border-radius:50%;border:1px solid #444;display:grid;place-items:center;font-size:11px}.onboarding-step-item.done,.onboarding-step-item.active{color:#fff}.onboarding-step-item.done b{background:#fff;color:#111;border-color:#fff}.onboarding-step-item.active b{border-color:#fff}.onboarding-main{padding:42px 48px 30px;display:flex;flex-direction:column;min-width:0}.onboarding-main-head{display:flex;justify-content:space-between;align-items:flex-start}.onboarding-main-head span{font-size:12px;letter-spacing:.14em;color:#888}.onboarding-main-head h1{font-size:32px;margin:7px 0 0}.onboarding-body{flex:1;overflow:auto;padding:28px 2px}.onboarding-actions{border-top:1px solid #eee;padding-top:22px;display:flex;justify-content:space-between}.onboarding-actions>div{display:flex;gap:10px}.onboarding-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.onboarding-card{border:1px solid #e5e5e5;border-radius:18px;padding:20px;background:#fff}.onboarding-card h3{margin:0 0 8px}.onboarding-card p{margin:0;color:#777;line-height:1.6}.onboarding-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.onboarding-choice button{padding:22px;border:1px solid #ddd;background:#fff;border-radius:18px;text-align:left;font:inherit;cursor:pointer}.onboarding-choice button.selected{border:2px solid #111}.onboarding-checklist{display:grid;gap:10px}.onboarding-check{display:flex;justify-content:space-between;padding:15px 18px;background:#f7f7f5;border-radius:14px}.onboarding-note{padding:16px 18px;background:#f4f4f1;border-radius:14px;color:#555;line-height:1.7}.onboarding-field{display:grid;gap:7px;margin:0 0 16px}.onboarding-field input,.onboarding-field select{height:46px;border:1px solid #ddd;border-radius:12px;padding:0 14px;font:inherit}@media(max-width:850px){.onboarding-view{padding:0}.onboarding-shell{width:100%;height:100%;border-radius:0;grid-template-columns:1fr}.onboarding-side{display:none}.onboarding-main{padding:26px 22px}.onboarding-card-grid,.onboarding-choice{grid-template-columns:1fr}}

/* v8.17 选品中心 */
.sourcing-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:14px}.sourcing-kicker{font-size:11px;letter-spacing:.18em;color:#888}.sourcing-hero h2{margin:6px 0}.sourcing-hero-actions{display:flex;gap:10px;align-items:center}.sourcing-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 150px 150px auto;gap:10px;margin-bottom:14px}.sourcing-toolbar input,.sourcing-toolbar select{height:44px;border:1px solid #e5e5e5;border-radius:10px;padding:0 13px;background:#fff}.sourcing-empty{text-align:center;padding:72px 24px}.sourcing-empty-mark{width:70px;height:70px;margin:0 auto 18px;border-radius:20px;background:#111;color:#fff;display:grid;place-items:center;font-weight:800}.sourcing-empty h3{margin:0 0 8px;font-size:22px}.sourcing-empty p{max-width:650px;margin:0 auto;color:#777;line-height:1.8}.sourcing-empty-notes{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:22px}.sourcing-empty-notes span{border:1px solid #e5e5e5;border-radius:999px;padding:7px 12px;font-size:12px}.sourcing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.sourcing-card{background:#fff;border:1px solid #ececec;border-radius:16px;overflow:hidden}.sourcing-card-media{aspect-ratio:4/5;background:#f3f3f3}.sourcing-card-media img{width:100%;height:100%;object-fit:cover}.sourcing-card-body{padding:14px}.sourcing-card-body h3{margin:5px 0 6px;font-size:16px}.sourcing-card-meta{font-size:12px;color:#888}.sourcing-card-foot{display:flex;justify-content:space-between;align-items:end;margin-top:12px}.sourcing-card-price strong{display:block;font-size:18px}.sourcing-card-price small{color:#888}.sourcing-size-order{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0}.sourcing-size-order label{display:grid;gap:5px;text-align:center;font-size:12px}.sourcing-size-order input{width:100%;height:38px;text-align:center;border:1px solid #ddd;border-radius:8px}.sourcing-order-summary{display:flex;justify-content:space-between;gap:18px;padding:14px;background:#f7f7f7;border-radius:12px}.sourcing-order-summary strong{font-size:20px}
/* v8.20.6 sourcing workspace */
.sourcing-summary{display:flex;gap:22px;align-items:center;flex-wrap:wrap;padding:12px 4px;color:#666}.sourcing-summary b{color:#111;font-size:18px;margin-left:4px}.sourcing-workspace{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:16px;align-items:start}.sourcing-cart-dock{position:sticky;top:88px;background:#111;color:#fff;border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:16px}.sourcing-cart-dock small{color:#aaa}.sourcing-cart-dock h3{font-size:28px;margin:6px 0}.sourcing-cart-dock>b{font-size:18px}.sourcing-cart-dock .btn{width:100%}.sourcing-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))!important;gap:14px!important}.sourcing-card-media{aspect-ratio:1/1!important}.sourcing-card-foot{flex-wrap:wrap}.sourcing-card-foot .btn{padding:8px 10px}.sourcing-supplier{font-size:11px;color:#777;margin-top:4px}.sourcing-stock-note{font-size:11px;color:#777;margin-top:4px}.sourcing-size-order label{display:flex!important;align-items:center;justify-content:space-between;gap:10px}.sourcing-size-order input{width:88px!important}@media(max-width:1100px){.sourcing-workspace{grid-template-columns:1fr}.sourcing-cart-dock{position:fixed;left:210px;right:20px;bottom:16px;top:auto;z-index:20;flex-direction:row;align-items:center;justify-content:space-between}.sourcing-cart-dock h3{display:inline;font-size:18px;margin-right:10px}}@media(max-width:700px){.sourcing-cart-dock{left:12px;right:12px}}


/* v8.20.8 — 首次登录欢迎动效、上线中心完成态与一屏侧栏 */
@media (min-width:901px){
  .sidebar{width:128px!important;padding-left:14px!important;padding-right:14px!important}
  .main{margin-left:128px!important;width:calc(100% - 128px)!important;min-width:0!important}
  .nav-btn{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;padding-left:12px!important;padding-right:12px!important}
  .nav-btn-transfer{white-space:nowrap!important}
  .topbar{min-width:0!important}
  .top-actions{gap:12px!important;min-width:0!important;white-space:nowrap!important}
}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  html{font-size:13px!important}
  .sidebar{width:132px!important}
  .main{margin-left:132px!important;width:calc(100% - 132px)!important}
  .page{padding:16px!important}
  .sourcing-toolbar{grid-template-columns:minmax(220px,1fr) 150px 135px 135px auto!important}
}
#page-sourcing{min-width:0!important;overflow-x:hidden}
#page-sourcing .sourcing-hero{padding:16px 18px!important;gap:16px!important}
#page-sourcing .sourcing-hero h2{font-size:20px!important}
#page-sourcing .sourcing-toolbar{padding:12px!important;min-width:0!important}
.sourcing-workspace{grid-template-columns:minmax(0,1fr) 220px!important;gap:14px!important;min-width:0!important}
.sourcing-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important;align-content:start!important;min-width:0!important}
.sourcing-card{min-width:0!important}
.sourcing-cart-dock{width:100%!important;min-width:0!important;top:84px!important;border-radius:14px!important}
.sourcing-card-body{padding:12px!important}
.sourcing-card-foot{gap:10px!important;align-items:center!important}
.sourcing-card-foot .btn{white-space:nowrap!important}
@media(max-width:1180px){
  .sourcing-workspace{grid-template-columns:minmax(0,1fr)!important;padding-bottom:92px}
  .sourcing-cart-dock{position:fixed!important;left:148px!important;right:18px!important;width:auto!important;bottom:14px!important;top:auto!important;z-index:30!important;display:grid!important;grid-template-columns:1fr auto!important;gap:8px 18px!important;padding:14px 18px!important}
  .sourcing-cart-dock .btn{grid-column:2;grid-row:1/3;align-self:center!important;width:auto!important;min-width:130px!important}
  .sourcing-cart-dock h3{font-size:20px!important;margin:2px 0!important}
}
@media(max-width:900px){.sourcing-cart-dock{left:12px!important;right:12px!important}}

/* 采购订单列表 / 详情 */
.purchase-orders-modal,.purchase-detail{min-width:0}.purchase-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.purchase-detail-head h3{font-size:22px;margin:5px 0 3px}.purchase-order-list{display:grid;gap:9px}.purchase-order-row{width:100%;border:1px solid #e8eaed;background:#fff;border-radius:12px;padding:15px 16px;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer}.purchase-order-row:hover{border-color:#cfd3d8;background:#fbfbfb}.purchase-order-title{display:flex;align-items:center;gap:10px}.purchase-order-title strong{font-size:14px}.purchase-order-title span{font-size:12px;color:#7c828a}.purchase-order-meta{font-size:12px;color:#858b93;margin-top:7px}.purchase-order-amount{text-align:right;font-weight:800;font-size:16px}.purchase-order-amount span{display:block;font-size:11px;font-weight:500;color:#2563eb;margin-top:5px}.purchase-status{padding:7px 10px;border-radius:999px;background:#fff3dd;color:#8a5a00;font-size:12px;font-weight:700}.purchase-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.purchase-info-grid>div{padding:12px 13px;background:#f7f8f9;border-radius:10px;display:grid;gap:5px}.purchase-info-grid span,.fulfillment-list span{font-size:11px;color:#858b93}.purchase-info-grid b{font-size:13px}.purchase-section{border:1px solid #eceef0;border-radius:12px;padding:15px;margin:0 0 14px}.purchase-section h4{margin:0 0 12px;font-size:14px}.purchase-line{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #f0f1f2}.purchase-line:last-child{border-bottom:0}.purchase-line img,.purchase-line-placeholder{width:58px;height:58px;border-radius:9px;object-fit:cover;background:#f1f2f3}.purchase-line-info{display:grid;gap:4px}.purchase-line-info>span{font-size:11px;color:#858b93}.purchase-size-chips{display:flex;gap:5px;flex-wrap:wrap}.purchase-size-chips em{font-style:normal;font-size:11px;padding:3px 7px;border-radius:99px;background:#f2f3f4}.purchase-line-price{text-align:right;display:grid;gap:4px}.purchase-line-price span{font-size:11px;color:#858b93}.purchase-detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fulfillment-list{display:grid;gap:10px}.fulfillment-list>div{display:flex;justify-content:space-between;gap:12px}.shipment-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.shipment-box span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#555}.purchase-change-note{display:grid;gap:4px;padding:12px 14px;background:#fff8e8;border-radius:10px;margin-bottom:14px}.purchase-change-note span{font-size:12px;color:#6f5a29}@media(max-width:760px){.purchase-info-grid{grid-template-columns:1fr 1fr}.purchase-detail-cols{grid-template-columns:1fr}.purchase-line{grid-template-columns:48px minmax(0,1fr)}.purchase-line-price{grid-column:2;text-align:left}}
\n\n/* v8.20.8 onboarding welcome */\n.onboarding-welcome{position:fixed;inset:0;z-index:10060;background:#f6f6f3;display:grid;place-items:center;overflow:hidden;opacity:0;transition:opacity .42s ease}.onboarding-welcome.hidden{display:none}.onboarding-welcome.show{opacity:1}.welcome-ambient{position:absolute;inset:-10%;background:radial-gradient(circle at 72% 30%,rgba(0,0,0,.055),transparent 28%),linear-gradient(rgba(17,17,17,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.028) 1px,transparent 1px);background-size:auto,44px 44px,44px 44px;transform:scale(1.04);opacity:0;animation:welcomeAmbient 1.4s .15s ease forwards}.welcome-content{position:relative;width:min(720px,86vw);text-align:center;transform:translateY(18px);opacity:0;filter:blur(7px);animation:welcomeIn .85s .12s cubic-bezier(.2,.8,.2,1) forwards}.welcome-wordmark{display:inline-flex;align-items:baseline;gap:10px;font-weight:850;letter-spacing:.12em;font-size:23px}.welcome-wordmark small{font-size:12px;letter-spacing:.32em;font-weight:650}.welcome-rule{width:1px;height:34px;background:#cfcfca;margin:25px auto 22px;transform:scaleY(0);transform-origin:top;animation:welcomeRule .5s .65s ease forwards}.welcome-eyebrow{font-size:10px;letter-spacing:.28em;color:#92928c;margin:0 0 15px;opacity:0;animation:welcomeFade .5s .62s ease forwards}.welcome-content h1{font-size:clamp(34px,4vw,52px);letter-spacing:-.045em;margin:0;font-weight:720}.welcome-desc{font-size:15px;color:#85857f;margin:16px 0 34px}.welcome-start{height:48px;border:0;border-radius:13px;background:#111;color:#fff;padding:0 20px 0 23px;display:inline-flex;align-items:center;gap:34px;cursor:pointer;font-weight:650;box-shadow:0 10px 28px rgba(0,0,0,.10);transition:transform .18s ease,box-shadow .18s ease}.welcome-start:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.14)}.welcome-start i{font-style:normal;font-size:18px;font-weight:400;transition:transform .18s ease}.welcome-start:hover i{transform:translateX(3px)}\n@keyframes welcomeIn{to{transform:none;opacity:1;filter:blur(0)}}@keyframes welcomeAmbient{to{opacity:1;transform:scale(1)}}@keyframes welcomeRule{to{transform:scaleY(1)}}@keyframes welcomeFade{to{opacity:1}}\n/* onboarding left column must fit in one desktop viewport */\n.onboarding-view{padding:18px}.onboarding-shell{height:min(720px,calc(100vh - 36px));grid-template-columns:316px 1fr}.onboarding-side{padding:28px 28px 22px;overflow:hidden;display:flex;flex-direction:column}.onboarding-kicker{margin-top:24px}.onboarding-side h2{font-size:25px;margin:7px 0 7px}.onboarding-side p{font-size:12px;line-height:1.55;margin:0}.onboarding-progress{margin:17px 0 8px}.onboarding-step-list{margin-top:14px;display:grid;gap:2px;min-height:0}.onboarding-step-item{padding:5px 0;gap:11px;font-size:12px;min-height:31px}.onboarding-step-item b{width:22px;height:22px;min-width:22px;border-radius:7px;font-weight:600}.onboarding-step-item.done b{background:#f1f1ed;color:#111;border-color:#f1f1ed}.step-check{width:8px;height:5px;border-left:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(-45deg) translate(1px,-1px);display:block}.onboarding-step-item.active{position:relative}.onboarding-step-item.active:before{content:"";position:absolute;left:-28px;width:2px;height:19px;background:#fff;border-radius:2px}.onboarding-main{padding:34px 42px 24px}.onboarding-body{padding:22px 2px}.onboarding-actions{padding-top:17px}\n/* main POS navigation: no vertical scrolling at 100% zoom */\n.sidebar{height:100vh;overflow:hidden;padding-top:18px;padding-bottom:14px}.side-brand{padding-bottom:18px}.sidebar nav{gap:3px;min-height:0}.nav-btn{padding-top:10px;padding-bottom:10px;white-space:nowrap}.side-foot{flex-shrink:0;margin-top:auto}\n@media(max-height:760px) and (min-width:851px){.onboarding-view{padding:10px}.onboarding-shell{height:calc(100vh - 20px)}.onboarding-side{padding:20px 24px 16px}.onboarding-kicker{margin-top:14px}.onboarding-side h2{font-size:22px}.onboarding-side p{display:none}.onboarding-progress{margin:12px 0 6px}.onboarding-step-list{margin-top:8px}.onboarding-step-item{padding:3px 0;min-height:27px}.onboarding-main{padding:26px 34px 20px}.onboarding-body{padding:16px 2px}.onboarding-actions{padding-top:13px}.sidebar{padding-top:12px;padding-bottom:10px}.side-brand{padding-bottom:12px}.nav-btn{padding-top:8px!important;padding-bottom:8px!important}}\n@media (prefers-reduced-motion:reduce){.onboarding-welcome,.welcome-ambient,.welcome-content,.welcome-rule,.welcome-eyebrow{animation:none!important;transition:none!important;opacity:1!important;transform:none!important;filter:none!important}}\n
/* v8.20.9 — 上线中心视觉重构：轻量、留白、无“安装向导”感 */
.onboarding-view{background:#f2f1ed;padding:22px;align-items:stretch;justify-content:stretch}
.onboarding-shell-v2{width:100%;max-width:1500px;height:calc(100vh - 44px);margin:auto;grid-template-columns:248px minmax(0,1fr);border-radius:30px;background:#fbfaf7;box-shadow:0 24px 70px rgba(25,23,18,.10);border:1px solid rgba(20,20,18,.06)}
.onboarding-side-v2{background:#f6f5f1;color:#161613;padding:30px 27px 24px;border-right:1px solid #e7e5df;overflow:hidden;display:flex;flex-direction:column}
.onboarding-brand-v2{font-size:18px;font-weight:800;letter-spacing:.12em}.onboarding-brand-v2 span{font-weight:500;letter-spacing:.06em}
.onboarding-side-core{margin-top:clamp(54px,9vh,96px)}
.onboarding-kicker-v2{font-size:10px;letter-spacing:.26em;color:#9d9a92;margin-bottom:18px}
.onboarding-count{display:flex;align-items:baseline;gap:7px;margin-bottom:18px}.onboarding-count strong{font-size:42px;line-height:1;font-weight:650;letter-spacing:-.05em}.onboarding-count span{font-size:13px;color:#a5a29a}
.onboarding-side-v2 h2{font-size:22px;line-height:1.28;letter-spacing:-.035em;margin:0 0 10px;max-width:190px}.onboarding-side-v2 p{font-size:12px;line-height:1.7;color:#8a877f;margin:0;max-width:190px}
.onboarding-progress-v2{height:2px;background:#e2dfd8;margin:28px 0 10px;overflow:hidden}.onboarding-progress-v2 i{height:100%;display:block;width:0;background:#181816;transition:width .35s cubic-bezier(.2,.75,.25,1)}
.onboarding-progress-text{font-size:11px;color:#8e8b83}
.onboarding-mini-steps{margin-top:28px;display:grid;gap:12px}.onboarding-mini-step{display:flex;align-items:center;gap:10px;font-size:12px;color:#aaa79f}.onboarding-mini-step i{width:7px;height:7px;border-radius:50%;border:1px solid #c9c6bf;display:block}.onboarding-mini-step.done{color:#8c8982}.onboarding-mini-step.done i{background:#96928a;border-color:#96928a}.onboarding-mini-step.active{color:#171715;font-weight:650}.onboarding-mini-step.active i{background:#171715;border-color:#171715;box-shadow:0 0 0 4px #ebe9e3}.onboarding-mini-step.more{color:#b8b5ad;font-size:11px;padding-left:17px}
.onboarding-side-foot{margin-top:auto;font-size:10px;letter-spacing:.08em;color:#aaa79f}
.onboarding-main-v2{padding:44px clamp(44px,6vw,88px) 30px;background:#fbfaf7;min-width:0}
.onboarding-main-head-v2{align-items:flex-start}.onboarding-main-head-v2>div>span{font-size:10px;letter-spacing:.22em;color:#aaa69d}.onboarding-main-head-v2 h1{font-size:clamp(36px,4vw,54px);line-height:1.05;letter-spacing:-.055em;font-weight:650;margin:12px 0 0}
.onboarding-close-v2{border:0;background:transparent;color:#8e8a82;font:inherit;font-size:12px;cursor:pointer;padding:8px 0}.onboarding-close-v2:hover{color:#171715}
.onboarding-body-v2{padding:clamp(46px,7vh,76px) 0 30px;overflow:auto;max-width:780px}.onboarding-body-v2>.muted{font-size:15px;line-height:1.75;color:#8a877f;margin:0 0 30px;max-width:610px}
.onboarding-body-v2 .onboarding-card{border:0;border-radius:0;padding:0;background:transparent}.onboarding-body-v2 .onboarding-card-grid{gap:16px}.onboarding-body-v2 .onboarding-card-grid .onboarding-card{border:1px solid #e4e1da;border-radius:18px;padding:22px;background:#f8f7f3}.onboarding-body-v2 .onboarding-card h3{font-size:16px;letter-spacing:-.02em}.onboarding-body-v2 .onboarding-card p{color:#8b887f}
.onboarding-body-v2 .onboarding-field{font-size:12px;color:#77736b;gap:10px;margin:0 0 20px}.onboarding-body-v2 .onboarding-field input,.onboarding-body-v2 .onboarding-field select{height:58px;border:0;border-bottom:1px solid #d8d5ce;border-radius:0;padding:0;background:transparent;font-size:18px;color:#181816;outline:none}.onboarding-body-v2 .onboarding-field input:focus,.onboarding-body-v2 .onboarding-field select:focus{border-bottom-color:#181816}
.onboarding-body-v2 .onboarding-note{padding:0;background:transparent;color:#aaa69d;font-size:12px;line-height:1.7;max-width:620px}
.onboarding-body-v2 .onboarding-choice{gap:14px}.onboarding-body-v2 .onboarding-choice button{border:1px solid #e2dfd8;border-radius:18px;background:#f8f7f3;padding:24px;transition:.18s}.onboarding-body-v2 .onboarding-choice button:hover{transform:translateY(-1px);border-color:#c9c5bc}.onboarding-body-v2 .onboarding-choice button.selected{border-color:#171715;box-shadow:inset 0 0 0 1px #171715}
.onboarding-body-v2 .onboarding-checklist{gap:0;border-top:1px solid #e8e5de}.onboarding-body-v2 .onboarding-check{background:transparent;border-bottom:1px solid #e8e5de;border-radius:0;padding:16px 2px;font-size:13px}.onboarding-body-v2 .onboarding-check b{font-weight:500;color:#9c9890}
.onboarding-actions-v2{margin-top:auto;border-top:1px solid #ebe8e1;padding-top:20px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.onboarding-actions-v2 button{font:inherit;cursor:pointer}.onboarding-back-v2,.onboarding-later-v2{border:0;background:transparent;color:#8f8b83;font-size:12px;padding:12px 0}.onboarding-back-v2:disabled{opacity:.25;cursor:default}.onboarding-later-v2{justify-self:center}.onboarding-next-v2{height:48px;border:0;border-radius:14px;background:#171715;color:#fff;padding:0 20px 0 22px;min-width:126px;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;font-size:13px;font-weight:650;box-shadow:0 10px 24px rgba(20,20,17,.10);transition:.18s}.onboarding-next-v2:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(20,20,17,.14)}.onboarding-next-v2 span{font-size:17px;font-weight:400}
@media(max-width:900px){.onboarding-view{padding:0}.onboarding-shell-v2{height:100vh;border-radius:0;grid-template-columns:1fr}.onboarding-side-v2{display:none}.onboarding-main-v2{padding:30px 24px 22px}.onboarding-main-head-v2 h1{font-size:38px}.onboarding-actions-v2{grid-template-columns:auto 1fr}.onboarding-later-v2{display:none}.onboarding-next-v2{justify-self:end}}
@media(max-height:760px) and (min-width:901px){.onboarding-shell-v2{height:calc(100vh - 20px)}.onboarding-view{padding:10px}.onboarding-side-v2{padding:24px 24px 18px}.onboarding-side-core{margin-top:30px}.onboarding-count strong{font-size:34px}.onboarding-side-v2 h2{font-size:19px}.onboarding-mini-steps{margin-top:18px;gap:9px}.onboarding-main-v2{padding-top:30px;padding-bottom:20px}.onboarding-body-v2{padding-top:34px}.onboarding-main-head-v2 h1{font-size:40px}}

/* v8.21.0 — 首次登录品牌序章 + 紧凑上线中心 */
.onboarding-welcome-v3{background:#f7f6f2;color:#171715;cursor:default;overflow:hidden}
.onboarding-welcome-v3.show{opacity:1}.welcome-story{position:relative;width:min(880px,86vw);height:360px;margin:auto;display:grid;place-items:center;text-align:center}
.welcome-line,.welcome-finale{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;filter:blur(12px);transform:translateY(5px);font-size:clamp(25px,2.7vw,40px);font-weight:560;letter-spacing:-.045em;pointer-events:none}
.onboarding-welcome-v3.show .welcome-line-1{animation:storyBeat 1.05s .12s ease both}.onboarding-welcome-v3.show .welcome-line-2{animation:storyBeat 1.05s 1.05s ease both}
.welcome-line-3{gap:13px!important;font-size:clamp(15px,1.45vw,20px)!important;font-weight:480!important;color:#6f6c65;letter-spacing:.01em!important}.welcome-line-3 i{font-style:normal;color:#bbb7ae}
.onboarding-welcome-v3.show .welcome-line-3{animation:storyBeat 1.15s 1.98s ease both}.onboarding-welcome-v3.show .welcome-line-4{animation:storyBeat 1.05s 2.92s ease both}.onboarding-welcome-v3.show .welcome-line-5{animation:storyBeat 1.15s 3.82s ease both}
.welcome-finale{flex-direction:column;pointer-events:auto;filter:blur(8px)}.onboarding-welcome-v3.show .welcome-finale{animation:finaleIn .75s 4.78s ease forwards}
.welcome-wordmark-v3{display:flex;align-items:baseline;gap:10px;font-size:25px;letter-spacing:.15em}.welcome-wordmark-v3 b{font-weight:820}.welcome-wordmark-v3 span{font-weight:470;letter-spacing:.08em}.welcome-finale p{font-size:14px;color:#77736c;margin:18px 0 28px;letter-spacing:.02em}
.welcome-start-v3{height:42px;border:1px solid #1b1b18;border-radius:12px;background:#171715;color:#fff;padding:0 18px 0 20px;font:inherit;font-size:12px;font-weight:650;display:flex;align-items:center;gap:30px;cursor:pointer}.welcome-start-v3 i{font-style:normal;font-size:16px}.welcome-skip{position:absolute;right:34px;top:28px;border:0;background:transparent;color:#aaa69e;font:inherit;font-size:11px;cursor:pointer;z-index:3;padding:8px}.welcome-skip:hover{color:#171715}
@keyframes storyBeat{0%{opacity:0;filter:blur(12px);transform:translateY(5px)}24%,67%{opacity:1;filter:blur(0);transform:none}100%{opacity:0;filter:blur(6px);transform:translateY(-3px)}}@keyframes finaleIn{to{opacity:1;filter:blur(0);transform:none}}
/* compact desktop scale */
.onboarding-view{padding:12px}.onboarding-shell-v2{max-width:1380px;height:calc(100vh - 24px);grid-template-columns:216px minmax(0,1fr);border-radius:22px}.onboarding-side-v2{padding:24px 22px 18px}.onboarding-brand-v2{font-size:16px}.onboarding-side-core{margin-top:clamp(32px,5vh,54px)}.onboarding-kicker-v2{font-size:9px;margin-bottom:12px}.onboarding-count{margin-bottom:13px}.onboarding-count strong{font-size:32px}.onboarding-count span{font-size:11px}.onboarding-side-v2 h2{font-size:18px;max-width:170px;margin-bottom:7px}.onboarding-side-v2 p{font-size:11px;line-height:1.55;max-width:170px}.onboarding-progress-v2{margin:19px 0 8px}.onboarding-progress-text{font-size:10px}.onboarding-mini-steps{margin-top:19px;gap:9px}.onboarding-mini-step{font-size:11px;gap:8px}.onboarding-mini-step i{width:6px;height:6px}.onboarding-side-foot{font-size:9px}
.onboarding-main-v2{padding:30px clamp(34px,4vw,58px) 22px}.onboarding-main-head-v2>div>span{font-size:9px}.onboarding-main-head-v2 h1{font-size:clamp(30px,3vw,40px);margin-top:8px}.onboarding-body-v2{padding:34px 0 22px;max-width:720px}.onboarding-body-v2>.muted{font-size:13px;line-height:1.65;margin-bottom:22px}.onboarding-body-v2 .onboarding-field input,.onboarding-body-v2 .onboarding-field select{height:48px;font-size:16px}.onboarding-body-v2 .onboarding-card-grid .onboarding-card{padding:18px;border-radius:14px}.onboarding-body-v2 .onboarding-choice button{padding:19px;border-radius:14px}.onboarding-body-v2 .onboarding-check{padding:12px 2px;font-size:12px}.onboarding-actions-v2{padding-top:14px}.onboarding-next-v2{height:42px;border-radius:12px;min-width:112px;padding:0 16px 0 18px;font-size:12px}.onboarding-back-v2,.onboarding-later-v2,.onboarding-close-v2{font-size:11px}
.onboarding-launch-done{position:fixed;inset:0;z-index:10020;background:#f7f6f2;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.onboarding-launch-done:not(.hidden){opacity:1}.launch-done-mark{width:42px;height:42px;border:1px solid #d5d1c8;border-radius:14px;display:grid;place-items:center;margin-bottom:20px}.launch-done-mark i{width:15px;height:8px;border-left:2px solid #171715;border-bottom:2px solid #171715;transform:rotate(-45deg) translate(1px,-1px);animation:launchCheck .45s ease both}.onboarding-launch-done h2{font-size:26px;letter-spacing:-.04em;margin:0}.onboarding-launch-done p{font-size:12px;color:#8c887f;margin:10px 0 0}@keyframes launchCheck{from{opacity:0;transform:rotate(-45deg) translate(1px,-1px) scale(.5)}to{opacity:1;transform:rotate(-45deg) translate(1px,-1px) scale(1)}}
@media (prefers-reduced-motion:reduce){.welcome-line,.welcome-finale{animation:none!important}.welcome-line{display:none}.welcome-finale{opacity:1!important;filter:none!important;transform:none!important}}

/* v8.21.1 — cache-bust release: ensure onboarding brand intro assets refresh on deploy */


/* v8.21.2 — onboarding route + dense desktop UI */
.onboarding-welcome{position:fixed!important;inset:0!important;z-index:10050!important;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;background:#f7f6f2}
.onboarding-welcome.show{opacity:1;visibility:visible}
.onboarding-welcome.hidden{display:none!important}
.welcome-story{width:min(760px,82vw);height:280px}
.welcome-line,.welcome-finale{font-size:clamp(22px,2.15vw,34px)}
.welcome-line-3{font-size:clamp(13px,1.18vw,17px)!important;gap:10px!important}
.welcome-wordmark-v3{font-size:22px}.welcome-finale p{font-size:12px;margin:14px 0 22px}.welcome-start-v3{height:38px;border-radius:10px;padding:0 15px 0 17px;gap:24px;font-size:11px}.welcome-skip{right:26px;top:20px;font-size:10px}
.onboarding-view{padding:8px!important;background:#f1f0ed}
.onboarding-shell-v2{max-width:1280px!important;height:calc(100vh - 16px)!important;grid-template-columns:184px minmax(0,1fr)!important;border-radius:18px!important;box-shadow:0 14px 42px rgba(24,24,20,.055)!important}
.onboarding-side-v2{padding:20px 18px 15px!important}.onboarding-brand-v2{font-size:14px!important;letter-spacing:.12em!important}.onboarding-side-core{margin-top:26px!important}.onboarding-kicker-v2{font-size:8px!important;margin-bottom:10px!important;letter-spacing:.24em!important}
.onboarding-count{margin-bottom:10px!important}.onboarding-count strong{font-size:26px!important}.onboarding-count span{font-size:9px!important;margin-left:4px!important}
.onboarding-side-v2 h2{font-size:15px!important;line-height:1.35!important;max-width:146px!important;margin:0 0 6px!important;letter-spacing:-.02em!important}.onboarding-side-v2 p{font-size:10px!important;line-height:1.5!important;max-width:146px!important}
.onboarding-progress-v2{margin:15px 0 7px!important}.onboarding-progress-text{font-size:9px!important}.onboarding-mini-steps{margin-top:14px!important;gap:7px!important}.onboarding-mini-step{font-size:10px!important;gap:7px!important}.onboarding-mini-step i{width:5px!important;height:5px!important}.onboarding-mini-step.active i{box-shadow:0 0 0 3px #ebe9e3!important}.onboarding-side-foot{font-size:8px!important}
.onboarding-main-v2{padding:24px 34px 18px!important}.onboarding-main-head-v2>div>span{font-size:8px!important;letter-spacing:.2em!important}.onboarding-main-head-v2 h1{font-size:30px!important;line-height:1.05!important;margin-top:6px!important;letter-spacing:-.045em!important}.onboarding-close-v2{font-size:10px!important;padding:5px 0!important}
.onboarding-body-v2{padding:26px 0 16px!important;max-width:640px!important}.onboarding-body-v2>.muted{font-size:12px!important;line-height:1.6!important;margin-bottom:18px!important;max-width:560px!important}.onboarding-body-v2 .onboarding-field{font-size:11px!important;gap:7px!important;margin-bottom:14px!important}.onboarding-body-v2 .onboarding-field input,.onboarding-body-v2 .onboarding-field select{height:42px!important;font-size:14px!important}.onboarding-body-v2 .onboarding-note{font-size:10px!important;line-height:1.55!important;max-width:560px!important}
.onboarding-body-v2 .onboarding-card-grid{gap:10px!important}.onboarding-body-v2 .onboarding-card-grid .onboarding-card{padding:14px!important;border-radius:12px!important}.onboarding-body-v2 .onboarding-card h3{font-size:14px!important;margin:0 0 5px!important}.onboarding-body-v2 .onboarding-card p{font-size:11px!important;line-height:1.55!important;margin:0!important}.onboarding-body-v2 .onboarding-choice{gap:10px!important}.onboarding-body-v2 .onboarding-choice button{padding:15px!important;border-radius:12px!important;font-size:12px!important}.onboarding-body-v2 .onboarding-choice small{font-size:10px!important}.onboarding-body-v2 .onboarding-check{padding:10px 2px!important;font-size:11px!important}
.onboarding-actions-v2{padding-top:10px!important;gap:8px!important}.onboarding-back-v2,.onboarding-later-v2{font-size:10px!important;padding:8px 0!important}.onboarding-next-v2{height:38px!important;border-radius:10px!important;min-width:100px!important;padding:0 14px 0 15px!important;font-size:11px!important;gap:20px!important;box-shadow:0 7px 18px rgba(20,20,17,.08)!important}.onboarding-next-v2 span{font-size:14px!important}
@media(max-height:760px) and (min-width:901px){.onboarding-shell-v2{height:calc(100vh - 12px)!important}.onboarding-view{padding:6px!important}.onboarding-side-v2{padding:16px 16px 12px!important}.onboarding-side-core{margin-top:18px!important}.onboarding-main-v2{padding:20px 30px 14px!important}.onboarding-body-v2{padding-top:20px!important}}

/* v8.21.3 — slow breathing brand intro */
.onboarding-welcome{transition:opacity .9s cubic-bezier(.22,.61,.36,1),visibility .9s ease!important}
.welcome-line,.welcome-finale{filter:blur(16px);transform:translateY(7px) scale(.992)}
.onboarding-welcome-v3.show .welcome-line-1{animation:storyBreath 2.65s .35s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-2{animation:storyBreath 2.65s 2.65s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-3{animation:storyBreath 2.8s 4.95s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-4{animation:storyBreath 2.65s 7.40s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-5{animation:storyBreath 2.9s 9.70s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-finale{animation:finaleBreathe 1.8s 12.25s cubic-bezier(.22,.61,.36,1) forwards!important}
@keyframes storyBreath{
  0%{opacity:0;filter:blur(16px);transform:translateY(7px) scale(.992)}
  22%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}
  68%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}
  100%{opacity:0;filter:blur(10px);transform:translateY(-5px) scale(1.006)}
}
@keyframes finaleBreathe{
  0%{opacity:0;filter:blur(14px);transform:translateY(7px) scale(.992)}
  58%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}
  100%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}
}

/* v8.21.4 — refined, light-weight brand prologue */
.onboarding-welcome-v3{
  background:
    radial-gradient(ellipse 42% 34% at 68% 30%,rgba(255,255,255,.92),rgba(255,255,255,0) 72%),
    radial-gradient(ellipse 36% 30% at 28% 72%,rgba(229,226,217,.34),rgba(229,226,217,0) 74%),
    #f6f5f1!important;
}
.onboarding-welcome-v3::before{
  content:"";position:absolute;inset:-14%;pointer-events:none;
  background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.7),transparent 38%);
  opacity:.42;transform:translate3d(-1.5%,1%,0) scale(1.02);
  animation:xmbbAmbientBreath 13s ease-in-out infinite alternate;
}
.welcome-story{position:relative;z-index:1;width:min(820px,84vw);height:300px}
.welcome-line,.welcome-finale{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif!important;
  font-weight:300!important;letter-spacing:.055em!important;color:#171716;
  -webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;
}
.welcome-line{font-size:clamp(22px,2vw,31px)!important;line-height:1.62!important}
.welcome-line i{font-style:normal;font-weight:200;color:#aaa69e;margin:0 12px}
.welcome-line-2{gap:0!important}
.welcome-line-stack{flex-direction:column!important;gap:7px!important;font-size:clamp(17px,1.48vw,23px)!important;letter-spacing:.07em!important}
.welcome-line-stack span:nth-child(2){color:#5f5d58}
.welcome-line-stack span:nth-child(3){color:#85817a}
.welcome-wordmark-v3{font-size:24px!important;gap:9px!important;letter-spacing:.16em!important}
.welcome-wordmark-v3 b{font-weight:720!important;letter-spacing:.12em!important}.welcome-wordmark-v3 span{font-weight:260!important;letter-spacing:.13em!important}
.welcome-finale p{font-weight:300!important;font-size:12px!important;letter-spacing:.12em!important;color:#77736d!important;margin:18px 0 25px!important}
.welcome-start-v3{height:auto!important;padding:7px 2px!important;border:0!important;border-radius:0!important;background:transparent!important;color:#242321!important;box-shadow:none!important;font-size:11px!important;font-weight:350!important;letter-spacing:.08em!important;gap:9px!important}
.welcome-start-v3:hover{background:transparent!important;box-shadow:none!important;transform:none!important;color:#000!important}.welcome-start-v3 i{font-size:17px!important;font-weight:250!important;transition:transform .35s cubic-bezier(.22,.61,.36,1)!important}.welcome-start-v3:hover i{transform:translateX(3px)!important}
.welcome-skip{background:transparent!important;border:0!important;color:#a09d96!important;font-weight:300!important;letter-spacing:.08em!important;padding:8px!important;opacity:.72;transition:opacity .3s ease,color .3s ease!important}.welcome-skip:hover{opacity:1;color:#55524d}
.onboarding-welcome-v3.show .welcome-line-1{animation:storyBreathFine 2.65s .35s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-2{animation:storyBreathFine 2.65s 2.65s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-3{animation:storyBreathFine 2.8s 4.95s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-4{animation:storyBreathFine 2.65s 7.40s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-5{animation:storyBreathFine 2.9s 9.70s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-finale{animation:finaleFine 1.8s 12.25s cubic-bezier(.22,.61,.36,1) forwards!important}
@keyframes storyBreathFine{
  0%{opacity:0;filter:blur(13px);transform:translateY(5px) scale(.994);letter-spacing:.025em}
  24%{opacity:1;filter:blur(0);transform:translateY(0) scale(1);letter-spacing:.055em}
  69%{opacity:1;filter:blur(0);transform:translateY(0) scale(1);letter-spacing:.06em}
  100%{opacity:0;filter:blur(8px);transform:translateY(-3px) scale(1.003);letter-spacing:.07em}
}
@keyframes finaleFine{0%{opacity:0;filter:blur(12px);transform:translateY(5px) scale(.995)}58%{opacity:1;filter:blur(0);transform:none}100%{opacity:1;filter:blur(0);transform:none}}
@keyframes xmbbAmbientBreath{0%{opacity:.30;transform:translate3d(-1.5%,1%,0) scale(1.01)}100%{opacity:.56;transform:translate3d(1.5%,-1%,0) scale(1.045)}}


/* v8.21.5 — intra-line breathing choreography */
.welcome-line-1,.welcome-line-pair{flex-direction:column!important;gap:6px!important}
.welcome-line strong{font:inherit;font-weight:300!important;letter-spacing:inherit;color:inherit}
.welcome-line-1>span,.welcome-line-1>strong,.welcome-line-pair>span,.welcome-line-pair>strong,
.welcome-line-stack>span{opacity:0;filter:blur(11px);transform:translateY(5px);will-change:opacity,filter,transform,letter-spacing}
/* the scene itself only owns the slow exit; children own the entrance */
.onboarding-welcome-v3.show .welcome-line-1{animation:sceneBreathOut 3.35s .35s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-2{animation:sceneBreathOut 3.35s 3.25s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-3{animation:sceneBreathOut 4.05s 6.15s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-4{animation:sceneBreathOut 3.55s 9.75s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-5{animation:sceneBreathOut 3.55s 12.85s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-1>span{animation:wordBreatheIn 1.25s .55s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-1>strong{animation:wordBreatheIn 1.35s 1.28s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-2>span{animation:wordBreatheIn 1.25s 3.48s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-2>strong{animation:wordBreatheIn 1.35s 4.20s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(1){animation:wordBreatheIn 1.15s 6.38s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(2){animation:wordBreatheIn 1.15s 7.05s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(3){animation:wordBreatheIn 1.35s 7.78s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-4>span{animation:wordBreatheIn 1.25s 10.02s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-4>strong{animation:wordBreatheIn 1.45s 10.82s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-5>span{animation:wordBreatheIn 1.25s 13.12s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-line-5>strong{animation:wordBreatheIn 1.45s 13.92s cubic-bezier(.22,.61,.36,1) forwards}
.onboarding-welcome-v3.show .welcome-finale{animation:finaleFine 2.25s 16.10s cubic-bezier(.22,.61,.36,1) forwards!important}
.welcome-wordmark-v3{font-size:34px!important;gap:12px!important}
.welcome-finale p{font-size:14px!important;margin:22px 0 30px!important}
.welcome-start-v3{font-size:13px!important;gap:11px!important}
@keyframes wordBreatheIn{
  0%{opacity:0;filter:blur(11px);transform:translateY(5px);letter-spacing:.025em}
  68%{opacity:1;filter:blur(.3px);transform:translateY(0);letter-spacing:.06em}
  100%{opacity:1;filter:blur(0);transform:translateY(0);letter-spacing:.055em}
}
@keyframes sceneBreathOut{
  0%,76%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}
  100%{opacity:0;filter:blur(9px);transform:translateY(-4px) scale(1.003)}
}


/* v8.21.6 — same-line phrasing + larger light type + reading-aware dwell */
.welcome-story{width:min(980px,88vw)!important;height:340px!important}
.welcome-line-1,.welcome-line-pair{
  flex-direction:row!important;
  align-items:baseline!important;
  justify-content:center!important;
  flex-wrap:nowrap!important;
  gap:.34em!important;
  white-space:nowrap!important;
}
.welcome-line{
  font-size:clamp(29px,2.55vw,42px)!important;
  line-height:1.48!important;
  font-weight:280!important;
}
.welcome-line strong{font-weight:280!important}
.welcome-line-stack{
  font-size:clamp(23px,2vw,32px)!important;
  line-height:1.58!important;
  gap:12px!important;
}
.welcome-wordmark-v3{font-size:42px!important;gap:14px!important}
.welcome-finale p{font-size:16px!important;margin:24px 0 32px!important}
.welcome-start-v3{font-size:14px!important}

/* reset v8.21.5 scene timings: short lines breathe, long lines get time to be read */
.onboarding-welcome-v3.show .welcome-line-1{animation:sceneBreathOutLong 3.75s .35s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-2{animation:sceneBreathOutLong 3.95s 4.30s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-3{animation:sceneBreathOutLong 5.55s 8.45s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-4{animation:sceneBreathOutLong 4.30s 14.20s cubic-bezier(.22,.61,.36,1) both!important}
.onboarding-welcome-v3.show .welcome-line-5{animation:sceneBreathOutLong 4.55s 18.70s cubic-bezier(.22,.61,.36,1) both!important}

.onboarding-welcome-v3.show .welcome-line-1>span{animation:wordBreatheInLarge 1.35s .60s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-1>strong{animation:wordBreatheInLarge 1.45s 1.42s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-2>span{animation:wordBreatheInLarge 1.35s 4.56s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-2>strong{animation:wordBreatheInLarge 1.45s 5.40s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(1){animation:wordBreatheInLarge 1.35s 8.76s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(2){animation:wordBreatheInLarge 1.35s 9.72s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(3){animation:wordBreatheInLarge 1.55s 10.78s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-4>span{animation:wordBreatheInLarge 1.35s 14.48s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-4>strong{animation:wordBreatheInLarge 1.50s 15.34s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-5>span{animation:wordBreatheInLarge 1.35s 18.98s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-line-5>strong{animation:wordBreatheInLarge 1.50s 19.88s cubic-bezier(.22,.61,.36,1) forwards!important}
.onboarding-welcome-v3.show .welcome-finale{animation:finaleFine 2.45s 23.45s cubic-bezier(.22,.61,.36,1) forwards!important}

@keyframes wordBreatheInLarge{
  0%{opacity:0;filter:blur(12px);transform:translateY(5px);letter-spacing:.02em}
  70%{opacity:1;filter:blur(.35px);transform:translateY(0);letter-spacing:.058em}
  100%{opacity:1;filter:blur(0);transform:translateY(0);letter-spacing:.052em}
}
@keyframes sceneBreathOutLong{
  0%,84%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}
  100%{opacity:0;filter:blur(9px);transform:translateY(-4px) scale(1.003)}
}
@media(max-width:760px){
  .welcome-story{width:92vw!important}
  .welcome-line{font-size:clamp(23px,6.1vw,31px)!important}
  .welcome-line-stack{font-size:clamp(19px,5vw,25px)!important}
  .welcome-line-1,.welcome-line-pair{white-space:normal!important;flex-wrap:wrap!important}
}

/* v8.21.9 — locked phrase geometry + scene-by-scene vertical composition */
/* Keep the final line width from frame 1. Hidden phrase fragments occupy their final space,
   and only blur/opacity changes. This removes the tiny horizontal re-centering jump. */
.welcome-line-1>span,.welcome-line-1>strong,
.welcome-line-pair>span,.welcome-line-pair>strong{
  display:inline-block!important;
  flex:0 0 auto!important;
  letter-spacing:.052em!important;
  transform:none!important;
  will-change:opacity,filter!important;
}
.onboarding-welcome-v3.show .welcome-line-1>span,
.onboarding-welcome-v3.show .welcome-line-1>strong,
.onboarding-welcome-v3.show .welcome-line-2>span,
.onboarding-welcome-v3.show .welcome-line-2>strong,
.onboarding-welcome-v3.show .welcome-line-4>span,
.onboarding-welcome-v3.show .welcome-line-4>strong,
.onboarding-welcome-v3.show .welcome-line-5>span,
.onboarding-welcome-v3.show .welcome-line-5>strong{
  animation-name:wordFocusLocked!important;
}
@keyframes wordFocusLocked{
  0%{opacity:0;filter:blur(12px);transform:none;letter-spacing:.052em}
  72%{opacity:1;filter:blur(.3px);transform:none;letter-spacing:.052em}
  100%{opacity:1;filter:blur(0);transform:none;letter-spacing:.052em}
}
/* Each scene has its own quiet composition height. The text does not travel during the scene. */
.welcome-line-1{top:-92px!important;bottom:92px!important}
.welcome-line-2{top:-26px!important;bottom:26px!important}
.welcome-line-3{top:54px!important;bottom:-54px!important}
.welcome-line-4{top:-58px!important;bottom:58px!important}
.welcome-line-5{top:34px!important;bottom:-34px!important}
/* Exit only breathes out through blur/opacity; no position shift that can read as a jump. */
.onboarding-welcome-v3.show .welcome-line-1,
.onboarding-welcome-v3.show .welcome-line-2,
.onboarding-welcome-v3.show .welcome-line-3,
.onboarding-welcome-v3.show .welcome-line-4,
.onboarding-welcome-v3.show .welcome-line-5{
  animation-name:sceneBreathOutStill!important;
}
@keyframes sceneBreathOutStill{
  0%,84%{opacity:1;filter:blur(0);transform:none}
  100%{opacity:0;filter:blur(9px);transform:none}
}
/* Three-line scene keeps its stagger, but no vertical drift while each line focuses. */
.welcome-line-stack>span{transform:none!important;letter-spacing:.052em!important;will-change:opacity,filter!important}
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(1),
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(2),
.onboarding-welcome-v3.show .welcome-line-3>span:nth-child(3){animation-name:wordFocusLocked!important}
@media(max-width:760px){
  .welcome-line-1,.welcome-line-2,.welcome-line-3,.welcome-line-4,.welcome-line-5{top:0!important;bottom:0!important}
}

/* v8.21.9 — fixed visual center across every intro scene */
/* Keep every scene on the same horizontal/vertical visual axis so the eye never chases the text. */
.welcome-line-1,
.welcome-line-2,
.welcome-line-3,
.welcome-line-4,
.welcome-line-5{
  top:0!important;
  bottom:0!important;
}


/* v8.21.9 — one immutable visual anchor for the entire brand prologue
   Scene 1 text center = scene 3 middle row = final XMBB POS wordmark center. */
.onboarding-welcome-v3{--intro-anchor-y:42%;}
.welcome-story{position:relative!important;}
.welcome-line-1,
.welcome-line-2,
.welcome-line-4,
.welcome-line-5{
  top:0!important;
  bottom:0!important;
  align-items:center!important;
}
/* The three-line scene is centered around its second sentence, not around an arbitrary box. */
.welcome-line-3{
  top:var(--intro-anchor-y)!important;
  bottom:auto!important;
  height:auto!important;
  inset-inline:0!important;
  transform:translateY(-50%)!important;
  align-items:center!important;
  justify-content:center!important;
}
/* Since three equal line boxes are used, row 2 sits exactly on the shared anchor. */
.welcome-line-3>span{
  min-height:1.58em!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
/* Final scene: do not vertically center the whole logo+slogan+CTA group.
   Pin the wordmark itself to the same anchor as the opening sentence. */
.welcome-finale{
  top:0!important;
  bottom:0!important;
  display:block!important;
  transform:none!important;
}
.welcome-wordmark-v3{
  position:absolute!important;
  left:50%!important;
  top:var(--intro-anchor-y)!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  white-space:nowrap!important;
}
.welcome-finale p{
  position:absolute!important;
  left:50%!important;
  top:calc(var(--intro-anchor-y) + 50px)!important;
  transform:translateX(-50%)!important;
  width:max-content!important;
  max-width:90vw!important;
  margin:0!important;
  white-space:nowrap!important;
}
.welcome-start-v3{
  position:absolute!important;
  left:50%!important;
  top:calc(var(--intro-anchor-y) + 94px)!important;
  transform:translateX(-50%)!important;
  margin:0!important;
}
.welcome-start-v3:hover{transform:translateX(-50%)!important;}
/* Finale fades/focuses without moving the anchored geometry. */
@keyframes finaleFine{
  0%{opacity:0;filter:blur(13px);transform:none}
  64%{opacity:1;filter:blur(.25px);transform:none}
  100%{opacity:1;filter:blur(0);transform:none}
}
@keyframes finaleBreathe{
  0%{opacity:0;filter:blur(14px);transform:none}
  58%{opacity:1;filter:blur(0);transform:none}
  100%{opacity:1;filter:blur(0);transform:none}
}
@media(max-width:760px){
  .onboarding-welcome-v3{--intro-anchor-y:43%;}
  .welcome-finale p{white-space:normal!important;width:88vw!important;text-align:center!important;}
}

/* v8.22.2 — move the entire brand prologue to one stable upper-middle visual anchor */
.onboarding-welcome-v3{--intro-anchor-y:42%!important;}
@media(max-width:760px){.onboarding-welcome-v3{--intro-anchor-y:43%!important;}}
/* v8.22.2 — account-only signup + five-stage onboarding */
.register-simple{max-width:460px}.register-simple .register-eyebrow{font-size:10px;letter-spacing:.22em;color:#9b978f;margin-bottom:12px}.register-simple h3{font-size:28px;letter-spacing:-.04em;margin:0 0 10px}.register-simple>label{display:block;margin-top:15px}.register-simple>label input{margin-top:7px}.onboarding-profile-simple{max-width:560px}.onboarding-profile-simple .onboarding-field{margin-bottom:18px}


/* v8.22.2 — onboarding editable fields + standardized province/city picker */
.onboarding-region-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:8px}
.onboarding-region-row select{width:100%;min-height:46px;border:0;border-bottom:1px solid #dedbd4;border-radius:0;background:transparent;padding:8px 30px 8px 0;font:inherit;color:#171716;outline:none;appearance:auto}
.onboarding-region-row select:focus{border-bottom-color:#171716}
.onboarding-region-row select:disabled{color:#aaa69e;cursor:not-allowed}
#onboardingView input,#onboardingView textarea,#onboardingView select{pointer-events:auto!important;user-select:text;-webkit-user-select:text}
@media(max-width:680px){.onboarding-region-row{grid-template-columns:1fr}}

/* v8.22.3 — unified horizontal XMBB POS wordmark */
.xmbb-wordmark{display:inline-flex!important;align-items:baseline!important;gap:9px!important;white-space:nowrap!important;line-height:1!important;letter-spacing:0!important}
.xmbb-wordmark>b{font-weight:820!important;letter-spacing:.13em!important;line-height:1!important}
.xmbb-wordmark>span{font-weight:320!important;letter-spacing:.08em!important;line-height:1!important;color:inherit!important;font-size:1em!important}
.xmbb-wordmark>small{font-size:8px!important;line-height:1!important;letter-spacing:.02em!important;color:#808080!important;font-weight:600!important;margin-left:-3px!important}
.login-wordmark.xmbb-wordmark{font-size:24px!important;margin-bottom:10px!important}
.side-brand.xmbb-wordmark{font-size:17px!important;padding:5px 4px 24px!important;gap:7px!important}
.side-brand.xmbb-wordmark>b{letter-spacing:.11em!important}
.side-brand.xmbb-wordmark>small{color:#777!important;font-size:7px!important;margin-left:-4px!important}
.onboarding-brand-v2.xmbb-wordmark{font-size:14px!important;gap:6px!important}
.onboarding-brand-v2.xmbb-wordmark>b{letter-spacing:.11em!important}
#assetRecovery .recovery-logo.xmbb-wordmark{font-size:24px!important;margin-bottom:24px!important;gap:9px!important}
#assetRecovery .recovery-logo.xmbb-wordmark small{font-size:8px!important;margin-left:-3px!important}


/* v8.22.4 — wider POS sidebar + left-aligned version below horizontal wordmark */
@media (min-width:901px){
  .sidebar{width:154px!important;padding-left:16px!important;padding-right:16px!important}
  .main{margin-left:154px!important;width:calc(100% - 154px)!important;min-width:0!important}
}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  .sidebar{width:158px!important}
  .main{margin-left:158px!important;width:calc(100% - 158px)!important}
}
.side-brand.xmbb-wordmark{
  display:grid!important;
  grid-template-columns:max-content max-content!important;
  justify-content:start!important;
  align-items:baseline!important;
  column-gap:7px!important;
  row-gap:8px!important;
  padding:5px 4px 22px!important;
  white-space:nowrap!important;
}
.side-brand.xmbb-wordmark>small{
  grid-column:1 / -1!important;
  justify-self:start!important;
  margin:0!important;
  padding:0!important;
  color:#777!important;
  font-size:8px!important;
  line-height:1!important;
  letter-spacing:.035em!important;
  font-weight:520!important;
}
@media(max-width:1180px){
  .sourcing-cart-dock{left:174px!important}
}


/* v8.22.5 — sidebar/header alignment polish + store-name field spacing */
@media (min-width:901px){
  :root{--pos-sidebar-width:154px}
  .sidebar{width:var(--pos-sidebar-width)!important;padding-left:18px!important;padding-right:18px!important}
  .main{margin-left:var(--pos-sidebar-width)!important;width:calc(100% - var(--pos-sidebar-width))!important;min-width:0!important}
  .topbar{width:100%!important}
  .side-brand.xmbb-wordmark{padding-left:2px!important;padding-right:2px!important}
  .sidebar nav{width:100%!important}
  .nav-btn{width:100%!important;padding-left:14px!important;padding-right:14px!important}
}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  :root{--pos-sidebar-width:158px}
}
/* Settings / 门店信息: keep label and field from visually sticking together. */
.panel[data-settings-group="basic"] > label:has(#storeDisplayName){
  display:flex!important;
  align-items:center!important;
  gap:16px!important;
  width:max-content!important;
  max-width:100%!important;
}
.panel[data-settings-group="basic"] > label:has(#storeDisplayName) > #storeDisplayName{
  margin:0!important;
  width:300px!important;
  max-width:min(300px,60vw)!important;
}

/* v8.22.7 — one global desktop layout rail + cashier rebalance */
@media (min-width:901px){
  :root{--pos-sidebar-width:184px!important}
  .sidebar{
    width:var(--pos-sidebar-width)!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
  .main{
    margin-left:var(--pos-sidebar-width)!important;
    width:calc(100% - var(--pos-sidebar-width))!important;
    min-width:0!important;
  }
  .topbar{
    width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    left:auto!important;
    right:auto!important;
  }
  .page{min-width:0!important}
  .side-brand.xmbb-wordmark{
    width:100%!important;
    padding:8px 0 24px!important;
    column-gap:8px!important;
  }
  .side-brand.xmbb-wordmark>small{
    justify-self:start!important;
    text-align:left!important;
    padding-left:0!important;
    margin-left:0!important;
  }
  .sidebar nav{width:100%!important}
  .nav-btn{
    width:100%!important;
    min-width:0!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .sourcing-cart-dock{left:auto!important}
}

/* Cashier: give checkout enough breathing room and keep payment choices at two columns. */
@media (min-width:1451px){
  #page-cashier .cashier-grid{
    grid-template-columns:minmax(0,1fr) clamp(410px,29vw,460px)!important;
    gap:18px!important;
  }
  #page-cashier .checkout-panel{width:auto!important;min-width:0!important}
  #page-cashier .payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  :root{--pos-sidebar-width:184px!important}
  #page-cashier .cashier-grid{
    grid-template-columns:minmax(0,1fr) minmax(360px,390px)!important;
    gap:14px!important;
  }
  #page-cashier .checkout-panel{width:auto!important;min-width:0!important}
  #page-cashier .payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
}
@media (max-width:1180px) and (min-width:901px){
  .sourcing-cart-dock{left:calc(var(--pos-sidebar-width) + 16px)!important}
}

/* v8.22.7 — Settings page geometry repair.
   Keep Settings on the exact same global sidebar/header coordinate system as every other POS page.
   Older settings-mode rules used hard-coded left offsets (112/150px), which caused the L-shaped rail/header mismatch. */
@media (min-width:901px){
  body.settings-mode .main{
    position:fixed!important;
    left:var(--pos-sidebar-width)!important;
    right:0!important;
    top:0!important;
    bottom:0!important;
    width:auto!important;
    margin-left:0!important;
    min-width:0!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body.settings-mode .topbar{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:70px!important;
    flex:0 0 70px!important;
    margin:0!important;
    padding:0 24px!important;
  }
  body.settings-mode #page-settings.active{
    width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  body.settings-mode #page-settings .settings-layout{
    width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  body.settings-mode #page-settings .settings-subnav,
  body.settings-mode #page-settings .settings-content{
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){
  body.settings-mode .topbar{
    height:54px!important;
    flex:0 0 54px!important;
  }
  body.settings-mode #page-settings.active{padding:14px!important;}
}
/* v8.23.0 搬家中心 */
.migration-entry{margin-top:18px;padding:18px;border:1px solid #e5e1d9;border-radius:16px;background:#faf9f6}.migration-entry p{margin:10px 0 0;color:#8b887f;font-size:11px;line-height:1.6}.migration-open-btn{height:46px;width:100%;border:0;border-radius:12px;background:#171715;color:#fff;font:inherit;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 16px;cursor:pointer}.migration-center{position:fixed;inset:0;z-index:12000;background:#f2f1ed;padding:24px}.migration-shell{height:100%;max-width:1280px;margin:auto;background:#fff;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:270px 1fr;box-shadow:0 25px 80px #0002}.migration-side{background:#11110f;color:#fff;padding:34px 30px;display:flex;flex-direction:column}.migration-logo{font-size:19px}.migration-kicker{margin-top:70px;color:#777;font-size:10px;letter-spacing:.18em}.migration-side h2{font-size:42px;margin:8px 0 12px;letter-spacing:-.05em}.migration-side p{color:#aaa;line-height:1.8;font-size:13px}.migration-steps{display:grid;gap:18px;margin-top:45px}.migration-steps b{font-size:12px;color:#555;font-weight:500}.migration-steps b.active{color:#fff}.migration-side>small{margin-top:auto;color:#555;line-height:1.6}.migration-main{padding:36px 50px;overflow:auto}.migration-main header{display:flex;justify-content:space-between;gap:30px}.migration-main header>div>span{font-size:10px;letter-spacing:.14em;color:#999}.migration-main header h1{font-size:32px;letter-spacing:-.04em;margin:8px 0}.migration-main header p{color:#888;font-size:12px;line-height:1.7;max-width:700px}.migration-main header>button{border:0;background:none;font-size:30px;color:#999;align-self:flex-start;cursor:pointer}.migration-drop{height:240px;margin-top:32px;border:1.5px dashed #cbc7be;border-radius:20px;background:#faf9f6;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.migration-drop input{display:none}.migration-drop strong{font-size:20px}.migration-drop span{margin-top:12px;color:#777;font-size:12px}.migration-drop em{margin-top:8px;color:#aaa;font-size:10px;font-style:normal}.migration-files{margin-top:18px;border-top:1px solid #eee}.migration-files>div{display:flex;align-items:center;gap:18px;padding:13px 4px;border-bottom:1px solid #eee}.migration-files span{display:grid;gap:3px;flex:1}.migration-files small{color:#999}.migration-files em{font-style:normal;font-size:11px}.migration-files em.ok{color:#28784a}.migration-files em.warn{color:#b46c25}.migration-files button{border:0;background:none;color:#999;cursor:pointer}.migration-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:22px}.migration-footer>span{margin-right:auto;color:#888;font-size:12px}.migration-footer button{height:44px;border:0;border-radius:12px;background:#171715;color:#fff;padding:0 18px;font-weight:700;cursor:pointer}.migration-footer button.secondary{background:#f0efeb;color:#555}.migration-footer button:disabled{opacity:.35}.migration-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}.migration-summary>div{background:#f7f6f2;border-radius:15px;padding:18px}.migration-summary strong{display:block;font-size:25px}.migration-summary span{font-size:10px;color:#888}.migration-map-head{margin:28px 0 12px}.migration-map-head h3{margin:0 0 5px}.migration-map-head p{margin:0;color:#888;font-size:11px}.migration-map{border-top:1px solid #eee;max-height:330px;overflow:auto}.migration-map label{display:grid;grid-template-columns:1fr 30px 220px;align-items:center;padding:10px 2px;border-bottom:1px solid #eee}.migration-map label>span{display:grid}.migration-map small{color:#999;font-size:9px}.migration-map i{text-align:center;color:#bbb}.migration-map select{height:38px;border:1px solid #ddd;border-radius:10px;padding:0 10px;background:#fff}.migration-check-title{margin-top:34px}.migration-check-title>span{font-size:10px;color:#999;letter-spacing:.15em}.migration-check-title h2{font-size:30px;margin:6px 0}.migration-check-title p{color:#888;font-size:12px}.migration-health{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.migration-health>div{padding:18px;border:1px solid #e9e7e1;border-radius:15px}.migration-health span{display:block;color:#888;font-size:10px}.migration-health strong{display:block;margin-top:8px;font-size:20px}.migration-pass,.migration-warnings,.migration-safety{margin-top:16px;padding:16px 18px;border-radius:14px;background:#f5f5f1;font-size:12px}.migration-pass{color:#28784a}.migration-warnings p{margin:7px 0;color:#9a6026}.migration-safety p{margin:7px 0 0;color:#777;line-height:1.7}@media(max-width:850px){.migration-center{padding:0}.migration-shell{border-radius:0;grid-template-columns:1fr}.migration-side{display:none}.migration-main{padding:24px 20px}.migration-health{grid-template-columns:1fr 1fr}.migration-map label{grid-template-columns:1fr 20px 150px}}

/* v8.23.3 日进斗金专用搬家适配器 */
.rjdj-files{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.rjdj-file-card{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1px solid #e8e6df;border-radius:14px;background:#faf9f6}.rjdj-file-card>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#eaf5ed;color:#28784a;font-weight:800}.rjdj-file-card>div{display:grid;gap:3px}.rjdj-file-card small{color:#999;font-size:10px}.rjdj-health{grid-template-columns:repeat(3,1fr)}.rjdj-checks{margin-top:16px;padding:16px 18px;border-radius:14px;background:#f5f5f1;font-size:12px}.rjdj-checks p{margin:7px 0;color:#28784a}@media(max-width:850px){.rjdj-files{grid-template-columns:1fr}.rjdj-health{grid-template-columns:1fr 1fr}}


/* v8.23.3 搬家高速批处理 + 4px 绿色进度条 */
.mig-live-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:8px}.mig-live-row p{margin:0!important}.mig-live-row strong{font-size:15px;font-weight:650;color:#238b57;white-space:nowrap}.mig-thin-track{height:4px;background:#eceeea;border-radius:999px;overflow:hidden;margin:20px 0 10px}.mig-thin-track i{display:block;width:0;height:100%;background:#2aa568;border-radius:999px;transition:width .28s ease}.mig-live-meta{font-size:13px;color:#7d827d;margin:0 0 18px}


/* v8.23.6: dialogs opened from Migration Center must sit above the full-screen migration layer. */
#modalHost .modal-backdrop{z-index:20000!important}


/* v8.23.6: warmer first-run copy and clearer vertical field hierarchy. */
.onboarding-profile-simple .onboarding-field{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;margin:0 0 26px!important;color:#181816!important}
.onboarding-profile-simple .onboarding-field-label{display:block;font-size:11px;font-weight:500;color:#8b877f;line-height:1.35;margin:0 0 8px}
.onboarding-profile-simple .onboarding-field-question{display:block;font-size:15px;font-weight:700;color:#181816;line-height:1.45;margin:0 0 10px}
.onboarding-profile-simple .onboarding-field input{width:100%;margin:0!important}
.onboarding-profile-simple .onboarding-region-row{width:100%;margin:0!important}

/* v8.23.8 — 「别来无恙」首屏纵向层级 + GPS/IP 城市预设 */
#onboardingView .onboarding-profile-simple{
  max-width:640px!important;
  display:grid!important;
  gap:34px!important;
}
#onboardingView .onboarding-profile-simple .onboarding-field{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:0!important;
  margin:0!important;
}
#onboardingView .onboarding-profile-simple .onboarding-field-label{
  display:block!important;
  margin:0 0 9px!important;
  color:#969189!important;
  font-size:10px!important;
  line-height:1.2!important;
  letter-spacing:.08em!important;
  font-weight:500!important;
}
#onboardingView .onboarding-profile-simple .onboarding-field-question{
  display:block!important;
  margin:0 0 15px!important;
  color:#22211e!important;
  font-size:15px!important;
  line-height:1.35!important;
  font-weight:720!important;
  letter-spacing:-.015em!important;
}
#onboardingView .onboarding-profile-simple .onboarding-field input{
  margin:0!important;
  width:100%!important;
}
#onboardingView .onboarding-profile-simple .onboarding-region-row{
  margin:0!important;
}
#onboardingView .onboarding-location-hint{
  display:block!important;
  margin-top:10px!important;
  min-height:16px!important;
  color:#aaa59c!important;
  font-size:10px!important;
  line-height:1.55!important;
  font-weight:400!important;
}
#onboardingView .onboarding-location-hint.success{color:#6e7d69!important}
#onboardingView .onboarding-location-hint.warning{color:#9b8060!important}
#onboardingView .onboarding-location-hint.loading{color:#8f8b83!important}
@media(max-height:780px) and (min-width:901px){
  #onboardingView .onboarding-profile-simple{gap:26px!important}
  #onboardingView .onboarding-profile-simple .onboarding-field-question{margin-bottom:11px!important}
}


/* v8.23.8 — 去除首屏冗余小标签；问题标题直接作为字段主层级 */
#onboardingView .onboarding-profile-simple .onboarding-field-label{display:none!important}
#onboardingView .onboarding-profile-simple .onboarding-field-question{margin:0 0 17px!important;font-size:16px!important;font-weight:750!important}
#onboardingView .onboarding-profile-simple{gap:38px!important}

/* v8.23.9 — 搬家最终资产对账明细 */
.migration-audit-list{display:grid;gap:8px;margin:14px 0 6px}
.migration-audit-row{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(240px,1.5fr) minmax(120px,.7fr);align-items:center;gap:16px;padding:13px 15px;border-radius:12px;background:rgba(255,255,255,.64);border:1px solid rgba(0,0,0,.055)}
.migration-audit-row span{font-weight:700;color:#252522}.migration-audit-row b{font-size:14px;font-weight:650;color:#333}.migration-audit-row small{text-align:right;color:#777}.migration-audit-row.ok span,.migration-audit-row.ok small{color:#168c4d}.migration-audit-row.bad{background:#fff9f2;border-color:#edcba7}.migration-audit-row.bad span,.migration-audit-row.bad small{color:#a45d1e}
@media(max-width:900px){.migration-audit-row{grid-template-columns:1fr}.migration-audit-row small{text-align:left}}

/* v8.24.0 — 大商品库看图选款分页/懒加载 */
.product-browser-more{text-align:center;padding:14px 0 28px;color:#999}


/* v8.24.1 — 全局弹层层级统一
   页面 < 全屏业务层 < 主弹窗 < 二级选择/日期控件 < Toast < 收款成功动画。
   重点修复：在商品详情等主弹窗里再次打开“销售状态/品牌/分类/日期”等控件时，
   二级弹层必须始终覆盖在当前弹窗之上，而不是被压在背后。 */
#modalHost{position:relative!important;z-index:20000!important}
#modalHost .modal-backdrop{z-index:20000!important}
#xmbbControlHost{position:relative!important;z-index:30000!important}
#xmbbControlHost .xmbb-control-backdrop{z-index:30000!important}
.toast-host{z-index:40000!important}


/* v8.24.2 — 库存检索与表格横向空间重配 */
.inventory-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.inventory-search-wrap{position:relative;flex:0 1 320px;width:320px;min-width:250px}
.inventory-search-wrap>input{width:100%;min-width:0!important;padding-right:42px!important}
.inventory-search-clear{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#999;font-size:23px;line-height:1;display:none;place-items:center;cursor:pointer;padding:0}
.inventory-search-clear.visible{display:grid}.inventory-search-clear:hover{background:#f0f0f0;color:#111}
.inventory-toolbar>input{min-width:0;flex:0 0 auto}
.inventory-toolbar select{flex:0 1 auto}
.inventory-fixed-table th:nth-child(1){width:23%}
.inventory-fixed-table th:nth-child(2){width:10%}
.inventory-fixed-table th:nth-child(3){width:8%}
.inventory-fixed-table th:nth-child(4){width:33%}
.inventory-fixed-table th:nth-child(5){width:7%}
.inventory-fixed-table th:nth-child(6){width:12%}
.inventory-fixed-table th:nth-child(7){width:7%}
.inventory-fixed-table td:nth-child(2),.inventory-fixed-table td:nth-child(3){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inventory-fixed-table td:nth-child(3){max-width:0}
.inventory-fixed-table td:nth-child(6) .status{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.inventory-sizes-cell{overflow:visible}
.inventory-size-strip{overflow-x:auto}
@media(max-width:1100px){.inventory-search-wrap{flex:1 1 280px;width:auto}.inventory-fixed-table th:nth-child(1){width:24%}.inventory-fixed-table th:nth-child(2){width:11%}.inventory-fixed-table th:nth-child(3){width:9%}.inventory-fixed-table th:nth-child(4){width:30%}.inventory-fixed-table th:nth-child(6){width:12%}}
@media(max-width:900px){.inventory-search-wrap{flex:1 1 100%;width:100%}}

/* v8.24.3 — 多颜色 SKU 收银选择 */
.variant-color-groups{display:grid;gap:14px;margin-top:14px}
.variant-color-group{padding:14px;border:1px solid #ecebe7;border-radius:16px;background:#fafaf8}
.variant-color-title{font-weight:800;font-size:15px;margin-bottom:10px;color:#171715}
.variant-color-group .size-picker-grid{margin:0}

/* v8.24.4 — 库存表大数据量分页渲染：避免数百款及全部尺码节点同时进入 DOM */
.inventory-pager{display:flex;align-items:center;justify-content:center;gap:18px;padding:16px 12px 6px;color:var(--muted,#8d8d8d);font-size:13px;position:sticky;left:0}
.inventory-pager strong{color:var(--text,#111)}
.inventory-pager .btn{min-width:76px}
.inventory-table tbody tr{content-visibility:auto;contain-intrinsic-size:82px}
.inventory-thumb{content-visibility:auto}


/* v8.24.5 — cashier right rail behaves like a POS panel, not a nested web page. */
#page-cashier .checkout-panel{
  overflow:hidden!important;
  min-height:0!important;
}
#page-cashier .checkout-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
  padding-right:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
}
#page-cashier .checkout-scroll>.section-block{
  flex:0 0 auto!important;
}
#page-cashier .checkout-btn,
#page-cashier .checkout-shortcuts{
  flex:0 0 auto!important;
}
@media (min-width:901px){
  #page-cashier .checkout-panel{
    height:100%!important;
    max-height:100%!important;
  }
}
@media (max-height:900px) and (min-width:901px){
  #page-cashier .checkout-panel{padding:12px!important}
  #page-cashier .checkout-panel .section-block{padding-bottom:8px!important;margin-bottom:8px!important}
  #page-cashier .member-entry-grid{margin:7px 0 5px!important;gap:6px!important}
  #page-cashier .member-entry-btn{padding:8px 10px!important;min-height:0!important}
  #page-cashier .member-entry-btn strong{font-size:13px!important}
  #page-cashier .member-entry-btn span{font-size:10px!important}
  #page-cashier .member-card{margin-top:4px!important;padding:7px 9px!important}
  #page-cashier .totals>div{padding:3px 0!important}
  #page-cashier .totals .grand{margin-top:3px!important;padding-top:8px!important}
  #page-cashier .totals .grand strong{font-size:25px!important}
  #page-cashier .payment-grid{margin-top:5px!important;gap:5px!important}
  #page-cashier .pay-btn{padding:8px 4px!important;min-height:34px!important}
  #page-cashier .checkout-btn{padding:12px 14px!important;margin-top:5px!important}
  #page-cashier .checkout-shortcuts{margin-top:3px!important;font-size:10px!important}
}
@media (max-height:760px) and (min-width:901px){
  #page-cashier .checkout-panel .section-block{padding-bottom:5px!important;margin-bottom:5px!important}
  #page-cashier .member-entry-btn span{display:none!important}
  #page-cashier .member-entry-grid{margin:4px 0!important}
  #page-cashier .member-card{padding:5px 8px!important}
  #page-cashier .totals>div{padding:2px 0!important;font-size:12px!important}
  #page-cashier .totals .grand{padding-top:5px!important}
  #page-cashier .totals .grand strong{font-size:22px!important}
  #page-cashier .pay-btn{padding:6px 3px!important;min-height:30px!important;font-size:12px!important}
  #page-cashier .checkout-btn{padding:9px 12px!important}
  #page-cashier .checkout-shortcuts{display:none!important}
}

/* v8.24.9 日进斗金自动搬家体检 */
.rjdj-auto-card{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:24px 26px;margin:4px 0 18px;border:1px solid #111;border-radius:18px;background:#111;color:#fff;cursor:pointer}
.rjdj-auto-card span{display:flex;flex-direction:column;gap:6px}.rjdj-auto-card em{display:inline-flex;width:max-content;padding:3px 8px;border-radius:999px;background:#fff;color:#111;font-size:11px;font-style:normal;font-weight:700}.rjdj-auto-card strong{font-size:20px}.rjdj-auto-card small{opacity:.72;font-size:13px}.rjdj-auto-card>i{font-size:24px;font-style:normal}.migration-or{display:flex;align-items:center;gap:12px;color:#aaa;font-size:12px;margin:0 0 14px}.migration-or:before,.migration-or:after{content:"";height:1px;background:#eee;flex:1}
.rjdj-auto-head span{font-size:12px;color:#999;letter-spacing:.12em}.rjdj-auto-head h2{font-size:30px;margin:8px 0 8px}.rjdj-auto-head p{color:#777;line-height:1.7;max-width:760px}.rjdj-auto-login{max-width:760px;margin-top:24px;display:flex;flex-direction:column;gap:18px}.rjdj-auto-login label{display:flex;flex-direction:column;gap:8px;font-weight:700}.rjdj-auto-login input{height:52px;border:1px solid #e3e3e3;border-radius:13px;padding:0 15px;font-size:16px;background:#fff;outline:none}.rjdj-auto-login input:focus{border-color:#111}.rjdj-captcha-field>div{display:grid;grid-template-columns:1fr 180px;gap:12px}.rjdj-captcha{height:52px;border:1px solid #e3e3e3;border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;cursor:pointer}.rjdj-captcha img{max-height:45px;max-width:118px}.rjdj-captcha em{font-style:normal;font-size:11px;color:#888}.migration-primary-wide{height:58px;border:0;border-radius:14px;background:#111;color:#fff;font-size:16px;font-weight:700;cursor:pointer}.migration-primary-wide:disabled{opacity:.55}.migration-link-btn{border:0;background:transparent;color:#777;font-size:13px;cursor:pointer;padding:8px}.rjdj-auto-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.rjdj-auto-progress>div{padding:16px;border-radius:14px;background:#f6f6f4;display:flex;flex-direction:column;gap:6px}.rjdj-auto-progress b{font-size:13px}.rjdj-auto-progress span{font-size:12px;color:#888}
@media(max-width:900px){.rjdj-auto-progress{grid-template-columns:1fr 1fr}.rjdj-captcha-field>div{grid-template-columns:1fr 150px}}

/* v8.24.9 日进斗金登录页：平板一屏完成，减少说明文字与网页感 */
.rjdj-auto-head h2{font-size:24px;margin:4px 0 14px}.rjdj-auto-head span,.rjdj-auto-head p{display:none}.rjdj-auto-login{max-width:620px;margin-top:8px;gap:11px}.rjdj-auto-login label{gap:5px;font-size:12px}.rjdj-auto-login input{height:44px;border-radius:11px;padding:0 14px;font-size:14px;pointer-events:auto!important;user-select:text!important;-webkit-user-select:text!important;touch-action:manipulation}.rjdj-captcha-field>div{grid-template-columns:1fr 150px;gap:10px}.rjdj-captcha{height:44px;border-radius:11px}.rjdj-captcha img{max-height:38px;max-width:100px}.migration-primary-wide{height:48px;border-radius:12px;font-size:14px;margin-top:2px}.rjdj-readonly-note{margin:0;text-align:center;color:#999;font-size:11px;line-height:1.5}.migration-link-btn{font-size:11px;padding:3px}.migration-main header h1{font-size:28px;margin:6px 0}.migration-main header p{margin:0;line-height:1.5}.migration-main{padding-top:30px}.migration-main header{margin-bottom:18px}
@media(max-height:800px){.migration-main{padding-top:22px;padding-bottom:18px}.migration-main header{margin-bottom:12px}.migration-main header h1{font-size:25px}.rjdj-auto-head h2{font-size:21px;margin-bottom:10px}.rjdj-auto-login{gap:8px}.rjdj-auto-login input,.rjdj-captcha,.migration-primary-wide{height:40px}}

/* v8.24.11 日进斗金自动体检：平板一屏完整显示 */
.rjdj-health-view{display:flex;flex-direction:column;min-height:0}
.rjdj-health-view .migration-check-title{margin-top:10px}
.rjdj-health-view .migration-check-title h2{font-size:25px;margin:4px 0}
.rjdj-health-view .migration-check-title p{margin:0;font-size:11px;line-height:1.45}
.rjdj-health-view .migration-health{gap:8px;margin-top:14px}
.rjdj-health-view .migration-health>div{padding:12px 15px;border-radius:13px;min-height:62px}
.rjdj-health-view .migration-health span{font-size:10px}
.rjdj-health-view .migration-health strong{margin-top:5px;font-size:19px;line-height:1.1}
.rjdj-health-view .migration-pass,.rjdj-health-view .migration-safety{margin-top:10px;padding:11px 14px;border-radius:12px}
.rjdj-health-view .migration-safety p{margin:3px 0 0;line-height:1.45}
.rjdj-health-view .migration-footer{margin-top:12px}
.rjdj-health-view .migration-footer button{height:40px;padding:0 16px}
@media(max-height:900px){
  .migration-main{padding-top:20px;padding-bottom:16px}
  .migration-main header{margin-bottom:8px}
  .migration-main header h1{font-size:25px;margin:4px 0}
  .migration-main header p{font-size:11px;line-height:1.35}
  .rjdj-health-view .migration-check-title{margin-top:5px}
  .rjdj-health-view .migration-check-title h2{font-size:22px}
  .rjdj-health-view .migration-health{margin-top:10px;gap:7px}
  .rjdj-health-view .migration-health>div{padding:10px 13px;min-height:56px}
  .rjdj-health-view .migration-health strong{font-size:18px}
  .rjdj-health-view .migration-pass,.rjdj-health-view .migration-safety{margin-top:8px;padding:9px 12px}
  .rjdj-health-view .migration-footer{margin-top:9px}
  .rjdj-health-view .migration-footer button{height:38px}
}


/* v8.24.16 inventory pagination + product dossier layout */
.inventory-gallery-pager{margin-top:8px;padding-bottom:12px}
.inventory-gallery{align-items:start}
.product-detail-modal{width:min(1040px,94vw)!important;max-height:88vh!important;padding:0!important;overflow:auto!important;position:relative}
.product-detail-modal .product-detail-top-actions{position:sticky;top:0;right:auto;display:flex;justify-content:flex-end;padding:14px 18px 0;background:linear-gradient(#fff 78%,rgba(255,255,255,0));z-index:8}
.product-detail-modal .product-detail-head{grid-template-columns:118px minmax(0,1fr);margin:0 26px 14px;padding:0 0 14px;gap:18px}
.product-detail-modal .product-detail-image{width:118px;height:118px}
.product-detail-summary{min-width:0}.product-detail-title-line{display:flex;align-items:center;gap:10px}.product-detail-title-line h3{margin:0;font-size:24px}.product-detail-title-line .status{font-size:11px}
.product-summary-metrics{display:flex;gap:22px;margin-top:14px;color:#777;font-size:13px}.product-summary-metrics strong{font-size:19px;color:#111;margin:0 3px}
.product-detail-modal .detail-section{margin:0 26px 14px}.product-stock-priority{padding:16px 18px!important;border-radius:15px!important}
.product-detail-sections{display:grid;gap:12px;margin:0 26px 88px}.product-detail-section{border:1px solid #ededed;border-radius:14px;padding:15px 16px;background:#fff}
.product-detail-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px}.product-detail-section-head strong{font-size:14px}.product-detail-section-head span{font-size:11px;color:#aaa}
.product-edit-grid.product-basic-grid{grid-template-columns:1.35fr 1fr 1fr 1fr;gap:10px 12px}.product-edit-grid.product-basic-grid .span-2{grid-column:span 2}.product-edit-grid.product-price-grid{grid-template-columns:1fr 1fr 1fr;gap:10px 12px}
.product-detail-modal .product-edit-grid label{font-size:11px}.product-detail-modal .product-edit-grid input,.product-detail-modal .product-edit-grid select{margin-top:5px;padding:9px 10px;min-height:38px}
.product-readonly-section{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:10px;background:#f7f7f5!important;border-color:#f0f0ee!important}.product-readonly-item{min-width:0;padding:2px 4px}.product-readonly-item span{display:block;font-size:10px;color:#999;margin-bottom:4px}.product-readonly-item strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-image-readonly{display:grid;grid-template-columns:1fr auto;align-items:end}.product-image-readonly span{grid-column:1/-1}.product-image-readonly .link-btn{font-size:12px;padding:0;color:#555}
.product-detail-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:13px 26px 16px;background:rgba(255,255,255,.96);border-top:1px solid #eee;backdrop-filter:blur(10px);z-index:7;margin-top:-72px}.product-detail-footer .btn{min-width:100px}
@media(max-width:1200px){.product-detail-modal{width:min(940px,94vw)!important}.product-edit-grid.product-basic-grid{grid-template-columns:1fr 1fr 1fr}.product-edit-grid.product-basic-grid .span-2{grid-column:span 2}.product-readonly-section{grid-template-columns:1fr 1.4fr 1fr}}
@media(max-width:900px){.product-detail-modal{width:96vw!important;max-height:92vh!important}.product-detail-modal .product-detail-head,.product-detail-modal .detail-section,.product-detail-sections{margin-left:16px;margin-right:16px}.product-edit-grid.product-basic-grid,.product-edit-grid.product-price-grid{grid-template-columns:1fr 1fr}.product-readonly-section{grid-template-columns:1fr 1fr}.product-detail-footer{padding-left:16px;padding-right:16px}}

/* v8.24.18 看图选款固定分页：避免无限滚动造成 DOM / 图片解析累积 */
.product-browser-scroll{display:flex;flex-direction:column;}
.product-browser-grid{flex:0 0 auto;}
.product-browser-pager{position:sticky;bottom:-18px;z-index:5;display:flex;align-items:center;justify-content:center;gap:14px;margin:14px -18px -18px;padding:12px 18px 14px;background:rgba(255,255,255,.98);border-top:1px solid var(--line);backdrop-filter:blur(12px);}
.product-browser-pager span{font-size:12px;color:#777;white-space:nowrap;}
.product-browser-pager .btn{min-width:74px;}
@media(max-width:720px){.product-browser-pager{gap:8px}.product-browser-pager span{font-size:11px}.product-browser-pager .btn{min-width:64px;padding-left:10px;padding-right:10px}}

/* v8.24.19 unified native-style pager */
.inventory-pager,.product-browser-pager{gap:10px!important;color:#999!important;font-variant-numeric:tabular-nums;}
.pos-pager-arrow{width:38px;height:38px;padding:0;border:0;border-radius:12px;background:#f4f4f2;color:#181818;font:400 25px/36px Arial,sans-serif;display:inline-grid;place-items:center;cursor:pointer;transition:background .16s ease,transform .12s ease,opacity .16s ease;}
.pos-pager-arrow:hover:not(:disabled){background:#eaeae7;}
.pos-pager-arrow:active:not(:disabled){transform:scale(.94);}
.pos-pager-arrow:disabled{opacity:.24;cursor:default;}
.pos-pager-page{display:inline-flex;align-items:baseline;gap:7px;min-width:68px;justify-content:center;font-size:12px;letter-spacing:.06em;color:#aaa;}
.pos-pager-page strong{font-size:14px!important;font-weight:650;color:#111!important;letter-spacing:.03em;}
.pos-pager-page i{font-style:normal;color:#d0d0cd;}
.pos-pager-total{font-size:11px!important;color:#aaa!important;white-space:nowrap;}
.product-browser-pager{padding:9px 18px 11px!important;border-top:1px solid rgba(0,0,0,.055)!important;background:rgba(255,255,255,.94)!important;}
.inventory-pager{padding:13px 12px 5px!important;}
@media(max-width:720px){.pos-pager-arrow{width:36px;height:36px;border-radius:11px}.pos-pager-total{display:none}.product-browser-pager{gap:8px!important}}


/* v8.24.22 Apple-like card depth: restrained shadow + subtle hover lift/scale */
.product-browser-card,
.inventory-gallery-card,
.transfer-product-card{
  border-color:rgba(0,0,0,.055)!important;
  box-shadow:0 2px 7px rgba(0,0,0,.025),0 10px 28px rgba(0,0,0,.035)!important;
  transform:translateZ(0) scale(1);
  transform-origin:center;
  transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s cubic-bezier(.2,.7,.2,1),border-color .22s ease!important;
  will-change:transform,box-shadow;
}
@media (hover:hover) and (pointer:fine){
  .product-browser-card:hover,
  .inventory-gallery-card:hover,
  .transfer-product-card:hover{
    transform:translateY(-3px) scale(1.018)!important;
    border-color:rgba(0,0,0,.075)!important;
    box-shadow:0 7px 18px rgba(0,0,0,.055),0 22px 48px rgba(0,0,0,.085)!important;
    z-index:2;
  }
  .product-browser-card:active,
  .inventory-gallery-card:active,
  .transfer-product-card:active{
    transform:translateY(-1px) scale(.995)!important;
    transition-duration:.09s!important;
  }
}
@media (hover:none), (pointer:coarse){
  .product-browser-card,
  .inventory-gallery-card,
  .transfer-product-card{
    box-shadow:0 2px 8px rgba(0,0,0,.035),0 10px 26px rgba(0,0,0,.03)!important;
    transform:none!important;
  }
  .product-browser-card:active,
  .inventory-gallery-card:active,
  .transfer-product-card:active{
    transform:scale(.992)!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .product-browser-card,.inventory-gallery-card,.transfer-product-card{transition:none!important}
}


/* v8.24.22 inventory table: tablet-safe paging + wrapped sizes + sticky header */
#page-inventory{overflow-x:hidden!important}
#page-inventory .card,#inventoryList{min-width:0!important;overflow-x:hidden!important}
.inventory-fixed-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.inventory-fixed-table thead th{position:sticky;top:0;z-index:8;background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);box-shadow:0 1px 0 rgba(0,0,0,.055)}
.inventory-size-strip{display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;align-content:flex-start!important;gap:5px 6px!important;overflow:visible!important;max-width:100%!important;padding:2px 0!important;scrollbar-width:none!important}
.inventory-size-strip::-webkit-scrollbar{display:none!important}
.inventory-sizes-cell{overflow:visible!important;vertical-align:middle!important}
.inventory-size-mini{flex:0 0 42px!important;min-width:42px!important;width:42px!important}
.inventory-size-mini span{font-size:10px!important;margin-bottom:2px!important;line-height:1.1!important}
.inventory-size-mini button,.inventory-size-mini strong{width:40px!important;height:30px!important;border-radius:9px!important;font-size:13px!important}
.inventory-fixed-table th:nth-child(1){width:23%!important}.inventory-fixed-table th:nth-child(2){width:10%!important}.inventory-fixed-table th:nth-child(3){width:9%!important}.inventory-fixed-table th:nth-child(4){width:34%!important}.inventory-fixed-table th:nth-child(5){width:7%!important}.inventory-fixed-table th:nth-child(6){width:10%!important}.inventory-fixed-table th:nth-child(7){width:7%!important}
.inventory-fixed-table td:nth-child(6) .status{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;line-height:1.35!important}
.inventory-fixed-table td:last-child,.inventory-fixed-table th:last-child{padding-right:10px!important}
.inventory-fixed-table .stock-edit-btn{white-space:nowrap!important;padding-left:10px!important;padding-right:10px!important}
.inventory-pager{position:relative!important;left:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:18px 12px 10px!important;border-top:1px solid rgba(0,0,0,.045)!important;color:#9a9a9a!important;overflow:hidden!important}
.inventory-pager .pos-pager-arrow{width:36px!important;height:36px!important;min-width:36px!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;font-size:25px!important;font-weight:300!important;line-height:1!important;color:#222!important;display:grid!important;place-items:center!important;padding:0 0 3px!important;transition:background .18s ease,transform .18s ease!important}
.inventory-pager .pos-pager-arrow:hover:not(:disabled){background:#f1f1ef!important;transform:scale(1.055)!important}
.inventory-pager .pos-pager-arrow:active:not(:disabled){transform:scale(.94)!important}
.inventory-pager .pos-pager-arrow:disabled{opacity:.22!important;cursor:default!important}
.inventory-pager .pos-pager-page{display:inline-flex!important;align-items:baseline!important;gap:6px!important;min-width:64px!important;justify-content:center!important;font-size:13px!important;letter-spacing:.01em!important;color:#999!important}
.inventory-pager .pos-pager-page strong{font-size:15px!important;font-weight:650!important;color:#111!important}
.inventory-pager .pos-pager-page i{font-style:normal!important;color:#c5c5c5!important}
.inventory-pager .pos-pager-total{margin-left:4px!important;font-size:12px!important;color:#aaa!important}
#inventoryList,.inventory-table,.inventory-pager{scrollbar-width:none!important}
#inventoryList::-webkit-scrollbar,.inventory-table::-webkit-scrollbar,.inventory-pager::-webkit-scrollbar{display:none!important}
@media(max-width:1100px){.inventory-fixed-table th:nth-child(1){width:22%!important}.inventory-fixed-table th:nth-child(2){width:10%!important}.inventory-fixed-table th:nth-child(3){width:8%!important}.inventory-fixed-table th:nth-child(4){width:35%!important}.inventory-fixed-table th:nth-child(5){width:7%!important}.inventory-fixed-table th:nth-child(6){width:11%!important}.inventory-fixed-table th:nth-child(7){width:7%!important}.inventory-size-mini{flex-basis:39px!important;min-width:39px!important;width:39px!important}.inventory-size-mini button,.inventory-size-mini strong{width:37px!important}}

/* v8.24.22 inventory table hardening: sticky header, reserved action column, no horizontal scroll */
#page-inventory.active{overflow:visible!important}
#page-inventory #inventoryList{overflow:visible!important;max-width:100%!important}
#page-inventory .inventory-fixed-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
#page-inventory .inventory-fixed-table thead{position:relative;z-index:12}
#page-inventory .inventory-fixed-table thead th{position:sticky!important;top:70px!important;z-index:15!important;background:rgba(255,255,255,.97)!important;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);box-shadow:0 1px 0 rgba(0,0,0,.06),0 8px 18px rgba(0,0,0,.025)!important}
#page-inventory .inventory-fixed-table th:nth-child(1){width:22%!important}
#page-inventory .inventory-fixed-table th:nth-child(2){width:12%!important}
#page-inventory .inventory-fixed-table th:nth-child(3){width:8%!important}
#page-inventory .inventory-fixed-table th:nth-child(4){width:34%!important}
#page-inventory .inventory-fixed-table th:nth-child(5){width:7%!important}
#page-inventory .inventory-fixed-table th:nth-child(6){width:10%!important}
#page-inventory .inventory-fixed-table th:nth-child(7){width:7%!important;min-width:92px!important}
#page-inventory .inventory-fixed-table td:last-child,#page-inventory .inventory-fixed-table th:last-child{padding-left:6px!important;padding-right:8px!important;text-align:right!important;overflow:visible!important}
#page-inventory .inventory-fixed-table .stock-edit-btn{max-width:100%!important;min-width:82px!important;padding:8px 9px!important;font-size:12px!important}
#page-inventory .inventory-sizes-cell{overflow:visible!important}
#page-inventory .inventory-size-strip{display:flex!important;flex-wrap:wrap!important;gap:5px!important;overflow:visible!important;width:100%!important;max-width:100%!important;padding:2px 0!important}
#page-inventory .inventory-size-mini{flex:0 0 40px!important;min-width:40px!important;width:40px!important}
#page-inventory .inventory-size-mini button,#page-inventory .inventory-size-mini strong{width:38px!important;height:32px!important;border-radius:9px!important}
#page-inventory .inventory-size-mini span{font-size:9px!important;margin-bottom:3px!important}
#page-inventory .inventory-pager{overflow:visible!important}
@media (min-width:1000px) and (max-width:1450px) and (orientation:landscape){#page-inventory .inventory-fixed-table thead th{top:54px!important}}

/* v8.24.22 quick stock adjustment */
.stock-delta-row{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:-1px 0 12px}
.stock-delta-row button,.stock-reason-presets button{border:1px solid #e4e4e4;background:#fff;border-radius:10px;min-height:36px;padding:7px 9px;cursor:pointer;font-weight:650;color:#333;transition:.16s ease}
.stock-delta-row button:hover,.stock-reason-presets button:hover{border-color:#bbb;background:#f7f7f5}
.stock-delta-row button:active,.stock-reason-presets button:active{transform:scale(.97)}
.stock-reason-presets{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 4px}
.stock-reason-presets button{font-size:12px;font-weight:550;min-height:32px;border-radius:999px;padding:5px 11px}
.stock-reason-presets .stock-reason-manage{border-style:dashed;color:#777;background:#fafafa}
@media(max-width:720px){.stock-delta-row{grid-template-columns:repeat(3,1fr)}}

/* v8.24.23 product profile editor: compact 3x2 information hierarchy */
.product-detail-modal{width:min(980px,92vw)!important;max-height:90vh!important}
.product-detail-sections{gap:10px!important;margin:0 24px 78px!important}
.product-detail-section{padding:13px 14px!important;border-radius:13px!important}
.product-detail-section-head{margin-bottom:9px!important}
.product-detail-section-head strong{font-size:14px!important;letter-spacing:-.01em}
.product-detail-section-head span{display:none!important}
.product-edit-grid.product-basic-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px 12px!important}
.product-edit-grid.product-basic-grid .span-2{grid-column:auto!important}
.product-edit-grid.product-price-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px 12px!important}
.product-detail-modal .product-edit-grid label{font-size:11px!important;color:#8a8a8a!important}
.product-detail-modal .product-edit-grid input,.product-detail-modal .product-edit-grid select{margin-top:5px!important;min-height:36px!important;padding:8px 10px!important;border-radius:9px!important}
.product-readonly-section{grid-template-columns:.85fr 1.55fr .8fr!important;gap:0!important;padding:0!important;overflow:hidden;background:#f7f7f5!important;border:0!important}
.product-readonly-item{padding:12px 15px!important;border-right:1px solid #e9e9e6;min-width:0;text-align:left;background:transparent;border-top:0;border-bottom:0;border-left:0;font:inherit;color:inherit}
.product-readonly-item:last-child{border-right:0}
.product-readonly-item span{font-size:10px!important;color:#999!important;margin-bottom:5px!important}
.product-readonly-item strong{font-size:13px!important;line-height:1.3}
.product-image-readonly{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;cursor:default}
.product-image-readonly span{grid-column:1/-1!important}
.product-image-readonly strong{grid-column:1!important}
.product-image-readonly i{grid-column:2!important;grid-row:2!important;font-style:normal;font-size:22px;line-height:1;color:#aaa;transition:transform .18s ease,color .18s ease}
.product-image-readonly.is-clickable{cursor:pointer}
.product-image-readonly.is-clickable:hover{background:#f1f1ef}
.product-image-readonly.is-clickable:hover i{transform:translateX(2px);color:#111}
.product-detail-footer{padding:11px 24px 13px!important;margin-top:-64px!important}
.product-detail-footer .btn{min-width:96px!important;min-height:36px!important}
@media(max-width:900px){.product-edit-grid.product-basic-grid,.product-edit-grid.product-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.product-readonly-section{grid-template-columns:1fr 1fr!important}.product-readonly-item:nth-child(2){border-right:0}.product-image-readonly{grid-column:1/-1;border-top:1px solid #e9e9e6}.product-detail-sections{margin-left:14px!important;margin-right:14px!important}}
\n\n/* v8.24.24 inventory density + inline custom stock reason + slower gallery hover */\n#page-inventory .inventory-fixed-table th:nth-child(1){width:23%!important}\n#page-inventory .inventory-fixed-table th:nth-child(2){width:12%!important}\n#page-inventory .inventory-fixed-table th:nth-child(3){width:8%!important}\n#page-inventory .inventory-fixed-table th:nth-child(4){width:36%!important}\n#page-inventory .inventory-fixed-table th:nth-child(5){width:5%!important}\n#page-inventory .inventory-fixed-table th:nth-child(6){width:8%!important}\n#page-inventory .inventory-fixed-table th:nth-child(7){width:8%!important;min-width:96px!important}\n#page-inventory .inventory-fixed-table td:nth-child(5),#page-inventory .inventory-fixed-table th:nth-child(5){text-align:center!important}\n#page-inventory .inventory-fixed-table td:last-child,#page-inventory .inventory-fixed-table th:last-child{padding-left:8px!important;padding-right:12px!important}\n.stock-reason-custom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:8px 0 10px;padding:9px;background:#f7f7f5;border-radius:11px}\n.stock-reason-custom[hidden]{display:none!important}\n.stock-reason-custom input{min-height:36px!important;margin:0!important;border-radius:9px!important}\n.stock-reason-custom button{height:36px;border:0;border-radius:9px;background:#111;color:#fff;padding:0 15px;font-weight:650;cursor:pointer}\n@media (hover:hover) and (pointer:fine){\n  .inventory-gallery-card{transition:transform .38s cubic-bezier(.22,.61,.36,1),box-shadow .38s cubic-bezier(.22,.61,.36,1),border-color .32s ease!important}\n  .inventory-gallery-card:hover{transform:translateY(-2px) scale(1.013)!important;box-shadow:0 6px 16px rgba(0,0,0,.045),0 20px 44px rgba(0,0,0,.075)!important}\n  .inventory-gallery-card:active{transition-duration:.14s!important}\n}\n
/* v8.24.25 商品档案：固定商品摘要头 + 中部独立滚动 + 固定底部操作 */
.product-detail-modal{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:0!important;
}
.product-detail-modal .product-detail-top-actions{
  position:absolute!important;
  top:14px!important;
  right:18px!important;
  padding:0!important;
  background:transparent!important;
  z-index:30!important;
}
.product-detail-modal .product-detail-head{
  position:sticky!important;
  top:0!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:22px 78px 18px 26px!important;
  background:rgba(255,255,255,.97)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  border-bottom:1px solid rgba(0,0,0,.065)!important;
  z-index:20!important;
  box-shadow:0 8px 24px rgba(0,0,0,0)!important;
}
.product-detail-modal .product-detail-head::after{
  content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;
  background:linear-gradient(to bottom,rgba(0,0,0,.035),rgba(0,0,0,0));
  opacity:.55;pointer-events:none;
}
.product-detail-modal .product-detail-head ~ .detail-section,
.product-detail-modal .product-detail-head ~ .product-detail-sections{
  flex:0 0 auto;
}
.product-detail-modal .product-stock-priority{margin-top:16px!important}
.product-detail-modal .product-detail-footer{
  position:sticky!important;
  bottom:0!important;
  flex:0 0 auto!important;
  margin-top:0!important;
  padding:12px 24px 14px!important;
  background:rgba(255,255,255,.97)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  border-top:1px solid rgba(0,0,0,.07)!important;
  box-shadow:0 -10px 24px rgba(0,0,0,.035)!important;
  z-index:20!important;
}
/* modal 本身作为滚动容器：sticky 头尾保持不动，只有中间内容穿过 */
.product-detail-modal{overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-gutter:stable}
@media(max-width:900px){
 .product-detail-modal .product-detail-head{padding:18px 66px 16px 16px!important}
 .product-detail-modal .product-detail-top-actions{right:12px!important;top:12px!important}
}

/* v8.24.26 商品档案头部对齐会员档案：固定头部文字关闭，底部仅保留保存 */
.product-detail-modal .product-detail-head{
  position:sticky!important;top:0!important;z-index:12!important;
  display:grid!important;grid-template-columns:118px minmax(0,1fr) auto!important;
  align-items:center!important;gap:18px!important;
  margin:0!important;padding:18px 24px 16px!important;
  background:rgba(255,255,255,.97)!important;
  border-bottom:1px solid #ededed!important;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.product-detail-modal .product-detail-head::after{display:none!important}
.product-detail-header-actions{align-self:start;display:flex;align-items:center;gap:10px;margin-left:12px}
.product-detail-header-actions .btn{min-width:70px;white-space:nowrap}
.product-detail-modal .product-detail-head ~ .detail-section{margin-top:16px!important}
.product-detail-modal .product-detail-footer{justify-content:flex-end!important}
.product-detail-modal .product-detail-footer .btn.primary{min-width:126px!important}
.product-detail-modal .product-detail-top-actions{display:none!important}
@media(max-width:900px){
  .product-detail-modal .product-detail-head{grid-template-columns:92px minmax(0,1fr) auto!important;padding:14px 16px!important;gap:12px!important}
  .product-detail-modal .product-detail-image{width:92px!important;height:92px!important}
  .product-detail-header-actions .btn{min-width:60px;padding-left:10px!important;padding-right:10px!important}
}

/* v8.24.27 去可见滑杆 + 一屏图片管理 */
.product-detail-modal{overflow:hidden!important;scrollbar-gutter:auto!important}
.product-detail-modal .product-detail-head{position:relative!important;top:auto!important}
.product-detail-modal .product-detail-footer{position:relative!important;bottom:auto!important}
.product-detail-modal .product-detail-head ~ .detail-section:first-of-type{margin-top:0!important}
.product-detail-modal{display:flex!important;flex-direction:column!important}
.product-detail-modal .product-detail-head{flex:0 0 auto!important}
.product-detail-modal .product-detail-footer{flex:0 0 auto!important}
.product-detail-modal .product-detail-sections{overflow-y:auto!important;overscroll-behavior:contain!important;scrollbar-width:none!important}
.product-detail-modal .product-detail-sections::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.product-detail-modal .product-stock-priority{flex:0 0 auto!important}

.image-viewer-modal{width:min(1120px,94vw)!important;height:min(820px,92vh)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;padding:0!important}
.image-viewer-head{flex:0 0 auto!important;align-items:center!important;padding:18px 24px 14px!important;border-bottom:1px solid #eee;background:#fff}
.image-viewer-head h3{margin:0 0 5px!important}.image-viewer-head .btn{min-width:70px}
.image-viewer-stage{position:relative!important;flex:1 1 auto!important;min-height:0!important;height:auto!important;margin:0!important;border-radius:0!important;background:#f7f7f7!important;overflow:hidden!important}
.image-viewer-stage img{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important}
.image-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.88);box-shadow:0 4px 18px rgba(0,0,0,.10);font-size:30px;line-height:38px;cursor:pointer;opacity:0;transition:opacity .22s ease,transform .22s ease}.image-viewer-stage:hover .image-nav{opacity:1}.image-nav:hover{transform:translateY(-50%) scale(1.05)}.image-nav.prev{left:18px}.image-nav.next{right:18px}
.image-viewer-bottom{flex:0 0 auto!important;display:flex;align-items:center;gap:14px;padding:10px 18px 12px;background:#fff;border-top:1px solid #eee;min-height:82px}
.image-viewer-thumbs{flex:1;min-width:0;display:flex;gap:8px;overflow-x:auto!important;scrollbar-width:none!important;padding:2px!important}.image-viewer-thumbs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.image-viewer-thumbs button{position:relative;flex:0 0 58px;width:58px!important;height:58px!important;border-radius:10px!important}.image-viewer-thumbs button span{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.72);color:#fff;border-radius:999px;padding:2px 5px;font-size:9px;line-height:1.2}.image-viewer-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.image-viewer-actions .danger{color:#c33}
@media(max-width:760px){.image-viewer-bottom{align-items:flex-end;flex-direction:column}.image-viewer-thumbs{width:100%}.image-viewer-actions{width:100%;justify-content:flex-end}.image-nav{opacity:.8}}


/* v8.24.28 商品档案：固定头尾，仅中间内容滚动；隐藏可见滑杆但保留滚动能力 */
.product-detail-modal{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  max-height:min(92vh,860px)!important;
}
.product-detail-modal .product-detail-head{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto!important;
}
.product-detail-modal .product-detail-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
  padding:0 0 8px!important;
}
.product-detail-modal .product-detail-body::-webkit-scrollbar{
  width:0!important;height:0!important;display:none!important;
}
.product-detail-modal .product-detail-footer{
  position:relative!important;
  bottom:auto!important;
  flex:0 0 auto!important;
  z-index:20!important;
}
.product-detail-modal .product-detail-sections{
  overflow:visible!important;
  flex:0 0 auto!important;
}
.product-detail-modal .product-stock-priority{
  flex:0 0 auto!important;
  margin-top:16px!important;
}


/* v8.24.30 商品档案滚动链路硬修复：父容器确定高度，头尾固定，中部唯一滚动 */
.product-detail-modal{
  height:min(90vh,820px)!important;
  max-height:min(90vh,820px)!important;
  min-height:560px!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:0!important;
}
.product-detail-modal .product-detail-head{
  flex:0 0 auto!important;
  position:relative!important;
  top:auto!important;
  margin:0!important;
}
.product-detail-modal .product-detail-body{
  flex:1 1 0!important;
  min-height:0!important;
  height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  scrollbar-width:none!important;
  scrollbar-gutter:auto!important;
}
.product-detail-modal .product-detail-body::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}
.product-detail-modal .product-detail-footer{
  flex:0 0 auto!important;
  position:relative!important;
  bottom:auto!important;
  margin:0!important;
}
.product-detail-modal .product-detail-sections{
  overflow:visible!important;
  min-height:auto!important;
  margin-bottom:18px!important;
}
@media(max-width:900px){
  .product-detail-modal{height:92vh!important;max-height:92vh!important;min-height:0!important}
}

/* v8.24.30 unified icon language — same rounded stroke as XMBB select chevron */
.xmbb-ui-icon{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 auto;line-height:0;vertical-align:middle;color:currentColor}
.xmbb-ui-icon svg{width:100%;height:100%;display:block;overflow:visible}
.xmbb-ui-icon path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.xmbb-ui-icon.is-success{width:34px;height:34px}
button .xmbb-ui-icon{pointer-events:none}
.pos-pager-arrow{font-size:0!important;padding:0!important;display:inline-grid!important;place-items:center!important}
.pos-pager-arrow .xmbb-ui-icon{width:20px;height:20px;margin:0!important;transform:none!important}
.image-nav{display:grid!important;place-items:center!important;padding:0!important;font-size:0!important;line-height:0!important}
.image-nav .xmbb-ui-icon{width:24px;height:24px;margin:0!important;transform:none!important}
.xmbb-control-close{display:grid!important;place-items:center!important;font-size:0!important;line-height:0!important;padding:0!important}
.xmbb-control-close .xmbb-ui-icon{width:20px;height:20px}
.xmbb-option b{display:grid!important;place-items:center!important;width:24px;height:24px;font-size:0!important}
.xmbb-option b .xmbb-ui-icon{width:18px;height:18px}
.member-verify-btn.verified{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}
.member-verify-btn.verified .xmbb-ui-icon{width:16px;height:16px}
.product-image-readonly i{display:inline-grid!important;place-items:center!important;width:22px;height:22px;font-style:normal!important}
.product-image-readonly i .xmbb-ui-icon{width:17px;height:17px}
.migration-footer button>.xmbb-ui-icon,.migration-open-btn>.xmbb-ui-icon,.onboarding-next-v2>.xmbb-ui-icon{width:17px;height:17px;margin-left:7px}
.register-simple .btn.primary .xmbb-ui-icon{width:16px;height:16px;margin-left:6px}
/* static startup/onboarding icons use same geometry without injecting JS */
.static-chevron-right,.static-chevron-left,.static-close-icon{position:relative;display:inline-block;width:18px;height:18px;vertical-align:middle;flex:0 0 auto}
.static-chevron-right::before,.static-chevron-left::before{content:"";position:absolute;width:7px;height:7px;top:50%;left:50%;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;border-radius:.5px;transform-origin:center}
.static-chevron-right::before{transform:translate(-62%,-50%) rotate(-45deg)}
.static-chevron-left::before{transform:translate(-38%,-50%) rotate(135deg)}
.static-close-icon::before,.static-close-icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.8px;background:currentColor;border-radius:99px;transform-origin:center}
.static-close-icon::before{transform:translate(-50%,-50%) rotate(45deg)}
.static-close-icon::after{transform:translate(-50%,-50%) rotate(-45deg)}
.inventory-search-clear{display:grid!important;place-items:center!important;font-size:0!important;padding:0!important}
.inventory-search-clear .static-close-icon{width:17px;height:17px}
/* success check is an icon, not a font glyph, centered optically */
.pos-success-check{display:grid!important;place-items:center!important;line-height:0!important}
.modal-x,.image-viewer-close{display:grid!important;place-items:center!important;font-size:0!important;line-height:0!important;padding:0!important}
.modal-x .xmbb-ui-icon,.image-viewer-close .xmbb-ui-icon{width:20px;height:20px;margin:0!important}
.sold-product-metrics i{display:inline-grid!important;place-items:center!important;font-style:normal!important;line-height:0!important}
.sold-product-metrics i .xmbb-ui-icon{width:17px;height:17px}
.purchase-order-amount span{display:inline-flex!important;align-items:center!important;gap:4px!important}
.purchase-order-amount span .xmbb-ui-icon{width:14px;height:14px}
.migration-pass>.xmbb-ui-icon,.rjdj-checks p>.xmbb-ui-icon,.rjdj-file-card>span>.xmbb-ui-icon,.migration-audit-row span>.xmbb-ui-icon{width:15px;height:15px;margin-right:5px;vertical-align:-2px}
.icon-btn{display:grid!important;place-items:center!important;line-height:0!important;padding:0!important}
.icon-btn .xmbb-ui-icon{width:18px;height:18px}
.migration-head-close{display:grid!important;place-items:center!important;font-size:0!important;line-height:0!important;padding:0!important}
.migration-head-close .xmbb-ui-icon{width:20px;height:20px;margin:0!important}

/* v8.24.31 商品图片浏览控制器：底部居中左右箭头 + 圆点胶囊 */
.image-viewer-stage{position:relative!important;padding-bottom:64px!important}
.image-viewer-controls{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:12px;z-index:6;pointer-events:auto}
.image-control-arrow{width:42px;height:42px;border:0;border-radius:999px;background:rgba(232,232,235,.90);color:#5d5d62;display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:none;transition:background .22s ease,transform .22s ease,color .22s ease}
.image-control-arrow:hover{background:rgba(220,220,224,.96);color:#262629;transform:scale(1.035)}
.image-control-arrow:active{transform:scale(.97)}
.image-control-arrow .xmbb-ui-icon{width:21px;height:21px;margin:0!important;transform:none!important}
.image-dot-pill{height:42px;min-width:94px;padding:0 15px;border-radius:999px;background:rgba(220,220,225,.90);display:flex;align-items:center;justify-content:center;gap:12px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.image-dot{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:#8e8e93;opacity:.78;cursor:pointer;transition:transform .22s ease,background .22s ease,opacity .22s ease}
.image-dot:hover{opacity:1;transform:scale(1.12)}
.image-dot.active{background:#202024;opacity:1;transform:scale(1.08)}
/* 旧的两侧浮动箭头彻底停用，防止与新控制器重复 */
.image-nav{display:none!important}
@media(max-width:760px){.image-viewer-controls{bottom:12px;gap:10px}.image-control-arrow{width:40px;height:40px}.image-dot-pill{height:40px;min-width:88px;padding:0 13px;gap:10px}.image-dot{width:7px;height:7px}}

/* v8.24.32 商品图片详情：3:4 竖图优先的左右双栏版式 */
.image-viewer-modal.image-viewer-modal-split{
  width:min(1240px,95vw)!important;
  height:min(820px,90vh)!important;
  max-height:90vh!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:0!important;
}
.image-viewer-modal-split .image-viewer-head{
  flex:0 0 auto!important;
  padding:18px 24px 14px!important;
  border-bottom:1px solid #ececea!important;
  background:#fff!important;
}
.image-viewer-layout{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 250px;
  background:#f7f7f7;
  overflow:hidden;
}
.image-viewer-modal-split .image-viewer-stage{
  position:relative!important;
  min-width:0;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:22px 28px 78px!important;
  border-radius:0!important;
  background:#f7f7f7!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.image-viewer-modal-split .image-viewer-stage>img{
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.055);
}
.image-viewer-modal-split .image-viewer-controls{
  left:50%!important;
  bottom:18px!important;
}
.image-viewer-rail{
  min-height:0;
  display:flex;
  flex-direction:column;
  background:#fff;
  border-left:1px solid #ececea;
  overflow:hidden;
}
.image-viewer-rail-head{
  flex:0 0 auto;
  padding:18px 16px 12px;
  border-bottom:1px solid #f0f0ee;
}
.image-viewer-rail-head>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.image-viewer-rail-head strong{font-size:15px}
.image-viewer-rail-head span{font-size:12px;color:#999}
.image-viewer-thumbs-vertical{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  align-content:start!important;
  gap:10px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:12px 14px!important;
  scrollbar-width:none!important;
}
.image-viewer-thumbs-vertical::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.image-viewer-thumbs-vertical button{
  width:100%!important;
  height:auto!important;
  aspect-ratio:3/4!important;
  flex:none!important;
  border-radius:11px!important;
  border:1px solid transparent!important;
  background:#f4f4f3!important;
  overflow:hidden;
  padding:0!important;
  box-shadow:0 3px 12px rgba(0,0,0,.035);
}
.image-viewer-thumbs-vertical button.active{
  border-color:#111!important;
  box-shadow:0 0 0 1px #111 inset,0 4px 14px rgba(0,0,0,.06)!important;
}
.image-viewer-thumbs-vertical button img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}
.image-viewer-thumbs-vertical button span{left:5px!important;bottom:5px!important}
.image-viewer-rail-footer{
  flex:0 0 auto;
  padding:12px 14px 14px;
  border-top:1px solid #f0f0ee;
  background:#fff;
}
.image-viewer-actions-vertical{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  width:100%!important;
}
.image-viewer-actions-vertical .btn{
  width:100%;
  min-height:40px;
  justify-content:center;
}
.image-viewer-actions-vertical .btn.primary{background:#111;color:#fff;border-color:#111}
.image-viewer-actions-vertical .btn[disabled]{opacity:.42;cursor:default}
.image-viewer-actions-vertical .danger{color:#c33!important;border-color:#efd4d4!important;background:#fff!important}
@media(max-width:820px){
  .image-viewer-modal.image-viewer-modal-split{width:96vw!important;height:92vh!important}
  .image-viewer-layout{grid-template-columns:minmax(0,1fr) 210px}
  .image-viewer-modal-split .image-viewer-stage{padding:16px 16px 70px!important}
  .image-viewer-thumbs-vertical{grid-template-columns:1fr!important}
}


/* v8.24.35 商品图片左右栏强制生效 + 库存工具栏单行自适应 */
.image-viewer-modal.image-viewer-modal-split{width:min(1240px,95vw)!important;height:min(820px,90vh)!important;max-height:90vh!important;padding:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
.image-viewer-modal-split .image-viewer-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 260px!important;flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
.image-viewer-modal-split .image-viewer-stage{grid-column:1!important;grid-row:1!important;min-width:0!important;min-height:0!important;margin:0!important;border-radius:0!important;padding:18px 24px 76px!important;overflow:hidden!important;background:#f7f7f7!important}
.image-viewer-modal-split .image-viewer-rail{grid-column:2!important;grid-row:1!important;width:260px!important;min-width:260px!important;max-width:260px!important;min-height:0!important;display:flex!important;flex-direction:column!important;border-left:1px solid #ececea!important;background:#fff!important;overflow:hidden!important}
.image-viewer-modal-split .image-viewer-bottom{display:none!important}
.image-viewer-modal-split .image-viewer-thumbs:not(.image-viewer-thumbs-vertical){display:none!important}
.image-viewer-modal-split .image-viewer-stage>img{max-width:calc(100% - 24px)!important;max-height:100%!important;width:auto!important;height:auto!important;object-fit:contain!important}

#page-inventory .inventory-toolbar{display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important;width:100%!important;min-width:0!important}
#page-inventory .inventory-search-wrap{flex:1 1 360px!important;width:auto!important;min-width:240px!important;max-width:none!important}
#page-inventory .inventory-toolbar select{flex:0 1 auto!important;width:auto!important;min-width:0!important;max-width:150px!important;padding-left:14px!important;padding-right:34px!important;white-space:nowrap!important}
#page-inventory #inventorySizeFilter{max-width:128px!important}
#page-inventory #inventoryCategoryFilter{max-width:136px!important}
#page-inventory #inventoryBrandFilter{max-width:136px!important}
#page-inventory #stockFilter{max-width:132px!important}
#page-inventory #inventorySearchBtn{flex:0 0 auto!important;min-width:58px!important;padding-left:14px!important;padding-right:14px!important}
#page-inventory .inventory-view-switch{flex:0 0 auto!important;white-space:nowrap!important}
#page-inventory .inventory-view-switch .btn{min-width:58px!important;padding-left:13px!important;padding-right:13px!important}
#page-inventory #syncProductsBtn{flex:0 0 auto!important;white-space:nowrap!important;min-width:auto!important;padding-left:16px!important;padding-right:16px!important}
@media(max-width:1220px){
  #page-inventory .inventory-toolbar{gap:6px!important}
  #page-inventory .inventory-toolbar select{max-width:120px!important;font-size:13px!important}
  #page-inventory #inventorySizeFilter{max-width:112px!important}
  #page-inventory #inventoryCategoryFilter,#page-inventory #inventoryBrandFilter{max-width:118px!important}
  #page-inventory #stockFilter{max-width:112px!important}
  #page-inventory .inventory-view-switch .btn{min-width:52px!important;padding-left:10px!important;padding-right:10px!important}
  #page-inventory #syncProductsBtn{padding-left:12px!important;padding-right:12px!important}
}
@media(max-width:980px){
  #page-inventory .inventory-toolbar{overflow-x:auto!important;scrollbar-width:none!important}
  #page-inventory .inventory-toolbar::-webkit-scrollbar{display:none!important}
  #page-inventory .inventory-search-wrap{min-width:220px!important}
}

/* v8.24.35 商品图片详情收窄：更适合 3:4 竖图 + 右侧 3×3 缩略图 */
.image-viewer-modal.image-viewer-modal-split{
  width:min(980px,92vw)!important;
  height:min(720px,86vh)!important;
  max-height:86vh!important;
}
.image-viewer-modal-split .image-viewer-head{
  padding:16px 20px 12px!important;
}
.image-viewer-modal-split .image-viewer-layout{
  grid-template-columns:minmax(0,1fr) 320px!important;
}
.image-viewer-modal-split .image-viewer-stage{
  padding:18px 22px 66px!important;
  background:#f7f7f7!important;
}
.image-viewer-modal-split .image-viewer-stage>img{
  width:auto!important;
  height:auto!important;
  max-width:min(72%,420px)!important;
  max-height:calc(100% - 4px)!important;
  object-fit:contain!important;
  border-radius:12px!important;
  box-shadow:0 8px 24px rgba(0,0,0,.045)!important;
}
.image-viewer-modal-split .image-viewer-controls{
  bottom:12px!important;
}
.image-viewer-modal-split .image-viewer-rail{
  width:320px!important;
  min-width:320px!important;
  max-width:320px!important;
}
.image-viewer-rail-head{
  padding:15px 14px 10px!important;
}
.image-viewer-thumbs-vertical{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  padding:10px 12px!important;
  align-content:start!important;
}
.image-viewer-thumbs-vertical button{
  aspect-ratio:3/4!important;
  border-radius:9px!important;
  box-shadow:none!important;
}
.image-viewer-thumbs-vertical button.active{
  box-shadow:0 0 0 1px #111 inset!important;
}
.image-viewer-rail-footer{
  padding:10px 12px 12px!important;
}
.image-viewer-actions-vertical{
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
}
.image-viewer-actions-vertical .btn{
  min-height:38px!important;
  padding:8px 10px!important;
  font-size:13px!important;
}
.image-viewer-actions-vertical .btn.primary,
.image-viewer-actions-vertical .danger{
  grid-column:1/-1!important;
}
@media(max-width:900px){
  .image-viewer-modal.image-viewer-modal-split{width:94vw!important;height:88vh!important}
  .image-viewer-modal-split .image-viewer-layout{grid-template-columns:minmax(0,1fr) 260px!important}
  .image-viewer-modal-split .image-viewer-rail{width:260px!important;min-width:260px!important;max-width:260px!important}
  .image-viewer-thumbs-vertical{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .image-viewer-modal-split .image-viewer-stage>img{max-width:min(82%,360px)!important}
}

/* v8.24.37 商品图片详情：真正紧凑版，桌面端固定窄宽 + 3x3 图片墙 */
@media(min-width:901px){
  .image-viewer-modal.image-viewer-modal-split{
    width:min(820px,88vw)!important;
    height:min(620px,82vh)!important;
    max-width:820px!important;
    max-height:620px!important;
  }
  .image-viewer-modal-split .image-viewer-head{padding:14px 18px 10px!important;min-height:64px!important}
  .image-viewer-modal-split .image-viewer-layout{grid-template-columns:minmax(0,1fr) 270px!important}
  .image-viewer-modal-split .image-viewer-stage{padding:14px 18px 58px!important}
  .image-viewer-modal-split .image-viewer-stage>img{
    max-width:min(68%,330px)!important;
    max-height:440px!important;
    width:auto!important;height:auto!important;
  }
  .image-viewer-modal-split .image-viewer-rail{width:270px!important;min-width:270px!important;max-width:270px!important}
  .image-viewer-thumbs-vertical{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;padding:8px 10px!important;overflow-y:auto!important}
  .image-viewer-thumbs-vertical button{aspect-ratio:3/4!important;min-width:0!important;width:100%!important;height:auto!important}
  .image-viewer-rail-head{padding:12px 10px 8px!important}
  .image-viewer-rail-footer{padding:8px 10px 10px!important}
  .image-viewer-actions-vertical{grid-template-columns:1fr 1fr!important;gap:6px!important}
  .image-viewer-actions-vertical .btn{min-height:34px!important;padding:6px 7px!important;font-size:12px!important}
  .image-viewer-actions-vertical .btn.primary,.image-viewer-actions-vertical .danger{grid-column:auto!important}
}

/* v8.24.37 商品档案：吊牌原图留档 + 品牌尺码模板 / 单品尺码覆盖 */
.product-readonly-item.product-size-readonly,.product-readonly-item.product-tag-readonly{appearance:none;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:default}
.product-readonly-item.is-clickable{cursor:pointer;transition:background .18s ease}
.product-readonly-item.is-clickable:hover{background:rgba(0,0,0,.025)}
.product-readonly-item>i{margin-left:auto;display:grid;place-items:center;color:#999}
.product-readonly-item>i .xmbb-ui-icon{width:17px;height:17px}
.product-size-readonly span{display:flex;align-items:center;gap:8px}
.product-size-readonly span em{font-style:normal;font-size:10px;line-height:1;padding:4px 7px;border-radius:999px;background:#f1f1ef;color:#888}
.product-size-readonly strong,.product-tag-readonly strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.size-template-modal{width:min(620px,92vw)!important}
.size-template-editor{display:flex;flex-direction:column;gap:16px}
.size-template-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.size-template-head h3{margin:0 0 5px}
.size-template-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:16px;border-radius:16px;background:#f6f6f4}
.size-template-card>span{grid-column:1/-1;font-size:12px;color:#999}
.size-template-card>strong{font-size:15px;line-height:1.5}
.size-template-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.size-template-mode button{min-height:48px;border:1px solid #e4e4e1;border-radius:14px;background:#fff;font-size:14px;cursor:pointer}
.size-template-mode button.active{background:#111;color:#fff;border-color:#111}
.size-template-mode button:disabled{opacity:.38;cursor:not-allowed}
.size-template-input{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#777}
.size-template-input input{height:50px;border:1px solid #dededb;border-radius:14px;padding:0 14px;font-size:15px;color:#111;background:#fff}

.tag-image-modal{width:min(920px,92vw)!important;height:min(720px,88vh)!important;padding:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
.tag-image-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px;border-bottom:1px solid #eee;background:#fff}
.tag-image-head h3{margin:0 0 4px}
.tag-image-layout{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 210px;background:#f7f7f5}
.tag-image-stage{min-width:0;min-height:0;display:grid;place-items:center;padding:18px}
.tag-image-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.05)}
.tag-image-thumbs{min-height:0;overflow-y:auto;scrollbar-width:none;border-left:1px solid #ececea;background:#fff;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px}
.tag-image-thumbs::-webkit-scrollbar{display:none;width:0;height:0}
.tag-image-thumbs button{appearance:none;border:1px solid transparent;background:#f6f6f4;border-radius:10px;overflow:hidden;aspect-ratio:3/4;padding:0;cursor:pointer}
.tag-image-thumbs button.active{border-color:#111;box-shadow:0 0 0 1px #111 inset}
.tag-image-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:760px){.tag-image-layout{grid-template-columns:minmax(0,1fr) 150px}.tag-image-thumbs{grid-template-columns:1fr}}

/* v8.24.38 color-aware inventory */
.product-stock-grid.is-color-grouped{display:block!important}.product-color-stock-group{padding:14px 0;border-top:1px solid #ececec}.product-color-stock-group:first-child{border-top:0;padding-top:0}.product-color-stock-title,.batch-color-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:700}.product-color-stock-title span,.batch-color-head span{font-size:13px;color:#999;font-weight:500}.product-color-stock-group .product-stock-grid{display:flex!important;flex-wrap:wrap;gap:10px}.batch-color-groups{display:grid;gap:14px;margin:14px 0}.batch-color-group{padding:14px 16px;border:1px solid #eee;border-radius:16px;background:#fafafa}.variant-stock-edit-modal .modal{max-width:900px}

/* v8.24.39 日进斗金类别/折扣迁移映射 */
.migration-map-toolbar{display:flex;gap:10px;margin:16px 0}.migration-map-list{display:grid;gap:10px;max-height:46vh;overflow:auto;padding-right:4px}.migration-map-row{display:grid;grid-template-columns:minmax(180px,1.2fr) 150px minmax(180px,1fr) 190px;gap:12px;align-items:center;padding:14px 16px;border:1px solid #e8e8e8;border-radius:16px;background:#fff}.migration-map-old{display:flex;flex-direction:column;gap:5px}.migration-map-old small{color:#929292}.migration-map-row select,.migration-map-row input{height:44px;border:1px solid #dedede;border-radius:12px;padding:0 12px;background:#fff;font:inherit}.migration-discount-check{display:flex;align-items:center;gap:8px;font-size:14px}.migration-discount-check input{width:18px;height:18px}@media(max-width:900px){.migration-map-row{grid-template-columns:1fr 1fr}.migration-discount-check{grid-column:1/-1}}

/* v8.24.42 — 库存中心顶部恢复双排布局，避免窄屏横向挤压 */
#page-inventory .inventory-toolbar{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) repeat(4,max-content) max-content max-content!important;
  align-items:center!important;
  gap:10px!important;
  overflow:visible!important;
}
#page-inventory .inventory-search-wrap{grid-column:1;min-width:280px!important;width:auto!important;max-width:none!important}
#page-inventory .inventory-toolbar select{width:auto!important;min-width:112px!important;max-width:150px!important}
#page-inventory #inventorySearchBtn{grid-column:auto}
#page-inventory .inventory-view-switch{grid-column:auto}
#page-inventory #syncProductsBtn{grid-column:1 / -1;grid-row:2;justify-self:start;margin:2px 0 0!important}
@media(max-width:1250px){
  #page-inventory .inventory-toolbar{grid-template-columns:minmax(250px,1fr) repeat(4,max-content) max-content!important}
  #page-inventory .inventory-view-switch{grid-row:2;grid-column:auto;justify-self:start}
  #page-inventory #syncProductsBtn{grid-row:2;grid-column:auto;justify-self:start}
}
@media(max-width:900px){
  #page-inventory .inventory-toolbar{display:flex!important;flex-wrap:wrap!important;overflow:visible!important}
  #page-inventory .inventory-search-wrap{flex:1 1 100%!important;min-width:100%!important}
  #page-inventory #syncProductsBtn{order:20!important}
}

/* v8.24.42 — 库存工具栏固定两排；表格列向左收紧，确保操作列完整 */
#page-inventory .inventory-toolbar{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:8px!important;
  width:100%!important;
  overflow:visible!important;
}
#page-inventory .inventory-toolbar-row{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important}
#page-inventory .inventory-toolbar-row-primary{width:100%!important}
#page-inventory .inventory-toolbar-row-secondary{width:auto!important;align-self:flex-start!important;gap:8px!important;margin-top:0!important}
#page-inventory .inventory-search-wrap{flex:1 1 340px!important;min-width:260px!important;max-width:none!important}
#page-inventory .inventory-toolbar-row-primary select{flex:0 0 auto!important;width:auto!important;min-width:112px!important;max-width:138px!important}
#page-inventory #inventorySearchBtn{flex:0 0 auto!important;min-width:58px!important}
#page-inventory .inventory-view-switch{flex:0 0 auto!important;margin:0!important}
#page-inventory #syncProductsBtn{flex:0 0 auto!important;margin:0!important;white-space:nowrap!important}
@media(max-width:1050px){
  #page-inventory .inventory-toolbar-row-primary{flex-wrap:wrap!important}
  #page-inventory .inventory-search-wrap{flex:1 1 100%!important;min-width:100%!important}
}

/* 收紧库存表横向空间，操作列不再被挤出 */
#page-inventory .inventory-table{table-layout:fixed!important;width:100%!important;min-width:0!important}
#page-inventory .inventory-table th,#page-inventory .inventory-table td{padding-left:7px!important;padding-right:7px!important}
#page-inventory .inventory-table th:nth-child(1),#page-inventory .inventory-table td:nth-child(1){width:21%!important;min-width:0!important}
#page-inventory .inventory-table th:nth-child(2),#page-inventory .inventory-table td:nth-child(2){width:11%!important}
#page-inventory .inventory-table th:nth-child(3),#page-inventory .inventory-table td:nth-child(3){width:13%!important}
#page-inventory .inventory-table th:nth-child(4),#page-inventory .inventory-table td:nth-child(4){width:29%!important}
#page-inventory .inventory-table th:nth-child(5),#page-inventory .inventory-table td:nth-child(5){width:8%!important;text-align:center!important}
#page-inventory .inventory-table th:nth-child(6),#page-inventory .inventory-table td:nth-child(6){width:9%!important;text-align:center!important}
#page-inventory .inventory-table th:nth-child(7),#page-inventory .inventory-table td:nth-child(7){width:9%!important;text-align:right!important}
#page-inventory .inventory-product{min-width:0!important;gap:10px!important;width:100%!important}
#page-inventory .inventory-thumb-wrap{width:56px!important;height:56px!important;flex:0 0 56px!important}
#page-inventory .inventory-product-info strong{max-width:130px!important}
#page-inventory .inventory-sizes-cell{min-width:0!important;overflow:hidden!important}
#page-inventory .inventory-size-strip{display:flex!important;gap:6px!important;max-width:100%!important;overflow:hidden!important}
#page-inventory .inventory-size-mini{flex:0 0 auto!important}
#page-inventory .inventory-brand-category strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-inventory .inventory-brand-category .item-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
#page-inventory .stock-edit-btn{padding:7px 10px!important;font-size:12px!important;white-space:nowrap!important}


/* v8.24.42 — 商品列与款号列贴近：不缩商品内容，只重新分配列宽 */
#page-inventory .inventory-table th:nth-child(1),#page-inventory .inventory-table td:nth-child(1){width:17%!important}
#page-inventory .inventory-table th:nth-child(2),#page-inventory .inventory-table td:nth-child(2){width:10%!important;padding-left:2px!important}
#page-inventory .inventory-table th:nth-child(3),#page-inventory .inventory-table td:nth-child(3){width:13%!important}
#page-inventory .inventory-table th:nth-child(4),#page-inventory .inventory-table td:nth-child(4){width:33%!important}
#page-inventory .inventory-table th:nth-child(5),#page-inventory .inventory-table td:nth-child(5){width:8%!important}
#page-inventory .inventory-table th:nth-child(6),#page-inventory .inventory-table td:nth-child(6){width:10%!important}
#page-inventory .inventory-table th:nth-child(7),#page-inventory .inventory-table td:nth-child(7){width:9%!important}
#page-inventory .inventory-product-info strong{max-width:112px!important}

/* v8.24.43 — 库存表最终紧凑：款号更贴近商品；尺码固定5个/行；保留盘点操作空间 */
#page-inventory .inventory-table th,#page-inventory .inventory-table td{padding-left:5px!important;padding-right:5px!important}
#page-inventory .inventory-table th:nth-child(1),#page-inventory .inventory-table td:nth-child(1){width:15.5%!important;padding-right:1px!important}
#page-inventory .inventory-table th:nth-child(2),#page-inventory .inventory-table td:nth-child(2){width:9.5%!important;padding-left:0!important;padding-right:4px!important}
#page-inventory .inventory-table th:nth-child(3),#page-inventory .inventory-table td:nth-child(3){width:12%!important}
#page-inventory .inventory-table th:nth-child(4),#page-inventory .inventory-table td:nth-child(4){width:31%!important}
#page-inventory .inventory-table th:nth-child(5),#page-inventory .inventory-table td:nth-child(5){width:8%!important}
#page-inventory .inventory-table th:nth-child(6),#page-inventory .inventory-table td:nth-child(6){width:11%!important}
#page-inventory .inventory-table th:nth-child(7),#page-inventory .inventory-table td:nth-child(7){width:13%!important;min-width:98px!important;padding-left:8px!important;padding-right:8px!important}
#page-inventory .inventory-product{gap:7px!important}
#page-inventory .inventory-thumb-wrap{width:52px!important;height:52px!important;flex:0 0 52px!important}
#page-inventory .inventory-product-info strong{max-width:100px!important}
#page-inventory .inventory-sizes-cell{overflow:visible!important}
#page-inventory .inventory-size-strip{display:grid!important;grid-template-columns:repeat(5,40px)!important;grid-auto-rows:auto!important;gap:5px!important;width:max-content!important;max-width:100%!important;overflow:visible!important;align-items:start!important;justify-content:start!important}
#page-inventory .inventory-size-mini{width:40px!important;min-width:40px!important;max-width:40px!important;margin:0!important}
#page-inventory .inventory-size-mini button,#page-inventory .inventory-size-mini strong{width:38px!important;min-width:38px!important;height:30px!important}
#page-inventory .inventory-size-mini span{font-size:9px!important;line-height:1.05!important;margin-bottom:2px!important}
#page-inventory .stock-edit-btn{min-width:84px!important;max-width:none!important;padding:7px 9px!important}


/* v8.24.56 — 注册窗口紧凑居中；库存尺码单排尽量完整显示 */
#modalHost .modal.register-account-modal{
  width:min(500px,calc(100vw - 40px))!important;
  max-width:500px!important;
  padding:24px 26px!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
#modalHost .register-account-modal .register-simple{width:100%!important;max-width:none!important;margin:0!important;box-sizing:border-box!important}
#modalHost .register-account-modal .register-simple>label{margin-top:13px!important}
#modalHost .register-account-modal .register-simple input{width:100%!important;box-sizing:border-box!important}
#modalHost .register-account-modal .modal-actions{margin-top:18px!important}
#modalHost .register-error{margin:12px 0 2px;padding:9px 11px;border-radius:9px;background:#fff4f2;color:#b23b2b;font-size:12px;line-height:1.45}
#modalHost .register-error.hidden{display:none!important}

#page-inventory .inventory-table th,#page-inventory .inventory-table td{padding-left:4px!important;padding-right:4px!important}
#page-inventory .inventory-table th:nth-child(1),#page-inventory .inventory-table td:nth-child(1){width:14.5%!important}
#page-inventory .inventory-table th:nth-child(2),#page-inventory .inventory-table td:nth-child(2){width:9%!important}
#page-inventory .inventory-table th:nth-child(3),#page-inventory .inventory-table td:nth-child(3){width:11%!important}
#page-inventory .inventory-table th:nth-child(4),#page-inventory .inventory-table td:nth-child(4){width:36%!important}
#page-inventory .inventory-table th:nth-child(5),#page-inventory .inventory-table td:nth-child(5){width:7.5%!important}
#page-inventory .inventory-table th:nth-child(6),#page-inventory .inventory-table td:nth-child(6){width:10%!important}
#page-inventory .inventory-table th:nth-child(7),#page-inventory .inventory-table td:nth-child(7){width:12%!important;min-width:92px!important}
#page-inventory .inventory-sizes-cell{overflow:hidden!important;padding-left:2px!important;padding-right:2px!important}
#page-inventory .inventory-size-strip{display:flex!important;flex-flow:row nowrap!important;align-items:flex-start!important;gap:4px!important;width:100%!important;max-width:100%!important;overflow:hidden!important;padding:2px 0!important}
#page-inventory .inventory-size-mini{flex:0 0 34px!important;width:34px!important;min-width:34px!important;max-width:34px!important;margin:0!important}
#page-inventory .inventory-size-mini button,#page-inventory .inventory-size-mini strong{width:32px!important;min-width:32px!important;height:29px!important;border-radius:8px!important;font-size:12px!important}
#page-inventory .inventory-size-mini span{font-size:8.5px!important;line-height:1!important;margin-bottom:2px!important;white-space:nowrap!important}
#page-inventory .inventory-product{gap:6px!important}
#page-inventory .inventory-thumb-wrap{width:50px!important;height:50px!important;flex:0 0 50px!important}
#page-inventory .inventory-product-info strong{max-width:96px!important}
#page-inventory .stock-edit-btn{min-width:80px!important;padding:7px 8px!important}

/* v8.24.56 — inventory assets collapse + operating cost ledger */
.inventory-assets-panel .inventory-assets-head{margin-bottom:0}.inventory-assets-panel .inventory-assets-body{margin-top:16px}.inventory-assets-panel.collapsed .inventory-assets-body{display:none}.inventory-assets-panel.collapsed{padding-bottom:20px}.inventory-assets-head{align-items:center}.inventory-assets-head .btn{flex:0 0 auto}.operating-cost-panel{margin-top:0}.operating-cost-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.operating-cost-chip{padding:9px 12px;border-radius:999px;background:#f4f4f4;font-size:13px;color:#555}.operating-cost-chip strong{color:#111}.operating-cost-table td:last-child,.operating-cost-table th:last-child{text-align:right}.operating-cost-table .cost-delete{color:#c83d3d}.data-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.data-cost-modal .form-grid{grid-template-columns:1fr 1fr}.data-cost-modal .cost-full{grid-column:1/-1}@media(max-width:1100px){.data-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.data-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.data-cost-modal .form-grid{grid-template-columns:1fr}}

/* v8.24.56 — order table width + migration handoff */














.migration-takeover-list{display:grid;gap:10px;margin:20px 0}.migration-takeover-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid #ececea;border-radius:14px;background:#fff}.migration-takeover-row>div{display:grid;gap:4px}.migration-takeover-row small{color:#8a8a86}.migration-takeover-state{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f2f2ef;color:#888}.migration-takeover-state.ok{background:#eaf7ef;color:#1d8b50}.migration-takeover-state svg{width:15px;height:15px}.migration-record-card{margin-top:16px;padding:14px 16px;border-radius:14px;background:#f6f6f3;display:flex;align-items:center;justify-content:space-between;gap:16px}.migration-record-card>div{display:grid;gap:4px}.migration-record-card span,.migration-record-card small{color:#8a8a86;font-size:12px}

/* v8.24.57 — 订单表格标题与列间距精调 */












/* v8.24.63 — 订单列收窄，其他列间距均衡 */















/* v8.24.59 — 会员/支付列加宽，操作列保留“补打小票” */









/* v8.24.60 — 数据中心表格化、自然日范围、年度固定成本 */
#page-data .data-range-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#page-data .data-range-toolbar #dataRange{min-width:150px}
#page-data .data-custom-range{display:flex;align-items:center;gap:8px}
#page-data .data-custom-range input{min-width:148px}
#page-data .panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.business-summary-table{table-layout:fixed;width:100%}
.business-summary-table th,.business-summary-table td{padding:14px 12px;text-align:left;white-space:nowrap}
.business-summary-table th{font-size:12px;color:#777;font-weight:600;background:#fafafa}
.business-summary-table td{font-size:14px}
.business-summary-table td strong{font-size:16px;color:#111}
.operating-cost-table{table-layout:fixed;width:100%}
.operating-cost-table th:nth-child(1){width:14%}.operating-cost-table th:nth-child(2){width:13%}.operating-cost-table th:nth-child(3){width:16%}.operating-cost-table th:nth-child(4){width:30%}.operating-cost-table th:nth-child(5){width:15%}.operating-cost-table th:nth-child(6){width:12%}
.operating-cost-table th,.operating-cost-table td{padding:13px 12px;vertical-align:middle}
.operating-cost-table td:nth-child(5) small{display:block;margin-top:3px;color:#999;font-size:11px}
.operating-cost-table tfoot td{background:#fafafa;border-top:1px solid #e9e9e9;font-weight:600}
.operating-cost-table tfoot td:nth-child(5){font-size:16px}
.operating-cost-table td:last-child{white-space:nowrap}
.cost-type-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#111;color:#fff;font-size:11px;line-height:1}
.cost-type-badge.normal{background:#f1f1f1;color:#555}
.fixed-cost-row{background:#fcfcfc}
.empty-cell{text-align:center!important;color:#999;padding:28px!important}
@media(max-width:1050px){.business-summary-table{min-width:920px}.operating-cost-table{min-width:860px}}

/* v8.24.61 看图选款：分页移至右上角，搜索缩短，增加颜色筛选 */
.product-browser-head-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex:0 0 auto}
.product-browser-pager-top{position:static!important;bottom:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;backdrop-filter:none!important;display:flex;align-items:center;justify-content:flex-end;gap:7px!important;min-height:38px}
.product-browser-pager-top .pos-pager-page{min-width:60px}
.product-browser-tools{grid-template-columns:minmax(260px,.72fr) 170px 170px!important;justify-content:start!important}
.product-browser-tools input{max-width:520px}
.member-name-link{appearance:none;border:0;background:transparent;padding:0;margin:0;color:inherit;font:inherit;font-weight:700;line-height:1.3;text-align:left;cursor:pointer;border-bottom:1px solid transparent}
.member-name-link:hover{border-bottom-color:currentColor}
.member-name-link:focus-visible{outline:2px solid #111;outline-offset:3px;border-radius:3px}
@media(max-width:900px){.product-browser-head{align-items:flex-start!important}.product-browser-head-actions{gap:6px}.product-browser-tools{grid-template-columns:minmax(180px,1fr) 150px 150px!important}.product-browser-pager-top .pos-pager-page{min-width:54px}}


/* v8.24.63 — 收银快捷按钮与订单支付筛选 */
#page-cashier .member-entry-btn{min-height:48px!important;padding:10px 12px!important;justify-content:center!important}
#page-cashier .member-entry-btn strong{font-size:14px!important;line-height:1.25}
#page-cashier .cashier-order-actions{display:flex!important;align-items:center!important;gap:8px!important}
#page-cashier .cashier-top-btn{height:36px;border-radius:9px;padding:0 12px;border:1px solid #dedede;background:#fff;color:#333;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
#page-cashier .cashier-held-btn{background:#f6f6f6}
#page-cashier .cashier-held-btn span{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;margin-left:3px;border-radius:999px;background:#e8e8e8;font-size:11px}
#page-cashier .cashier-hold-btn{border-color:#cfcfcf;background:#fff}
#page-cashier .cashier-clear-btn{border-color:#f1caca;background:#fff6f6;color:#cf3d3d}
#page-orders .order-toolbar{display:grid!important;grid-template-columns:minmax(260px,1.7fr) minmax(140px,.55fr) minmax(130px,.55fr) minmax(150px,.62fr) 92px 118px auto;gap:10px!important;align-items:center!important;flex-wrap:nowrap!important}
#page-orders .order-toolbar #orderKeyword{min-width:0!important;width:100%!important;flex:none!important}
#page-orders .order-toolbar input,#page-orders .order-toolbar select,#page-orders .order-toolbar .btn{height:46px!important;box-sizing:border-box!important}
#page-orders .order-toolbar #orderStatus,#page-orders .order-toolbar #orderPayment{min-width:0!important;width:100%!important}
#page-orders .order-query-btn{min-width:92px!important;padding-left:22px!important;padding-right:22px!important;font-weight:600}
#page-orders .order-sync-btn{min-width:118px!important}
#page-orders .order-sync-meta{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1200px){#page-orders .order-toolbar{grid-template-columns:minmax(220px,1.4fr) 132px 122px 142px 88px 112px}.order-sync-meta{grid-column:1/-1}}

/* v8.24.63 — 平板滚动边界：订单只允许纵向，收银台固定一屏 */
body.cashier-mode{height:100vh;height:100dvh;overflow:hidden!important;overscroll-behavior:none}
body.cashier-mode .main{height:100vh;height:100dvh;overflow:hidden!important}
body.cashier-mode #page-cashier.active{height:calc(100vh - 70px);height:calc(100dvh - 70px);box-sizing:border-box;overflow:hidden!important}
body.cashier-mode #page-cashier .cashier-grid{height:100%!important;min-height:0!important}
body.cashier-mode #page-cashier .cart-panel,body.cashier-mode #page-cashier .checkout-panel{height:100%!important;max-height:100%!important;overflow:hidden!important}
body.cashier-mode #page-cashier .cart-list{overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;touch-action:pan-y}
body.cashier-mode #page-cashier .checkout-scroll{overflow:hidden!important}
@media (min-width:901px){body.cashier-mode .topbar{position:relative!important;top:auto!important}}


/* v8.24.89 — 订单页宽度根因修复：删除 v8.24.56/57/59/63 多轮互相覆盖的列宽规则，订单页只保留一套几何约束。 */
@media (min-width:901px){.app,.main,#page-orders{min-width:0;max-width:100%}#page-orders{width:100%;max-width:100%;box-sizing:border-box;touch-action:pan-y;overscroll-behavior-x:none}#page-orders .order-toolbar,#page-orders .stats-row,#page-orders>.panel{width:100%;max-width:100%;min-width:0;box-sizing:border-box}}
#page-orders .order-toolbar{grid-template-columns:minmax(0,1.45fr) 132px 126px 146px 96px 118px!important}#page-orders .order-toolbar>*{min-width:0;max-width:100%;box-sizing:border-box}#page-orders .order-sync-meta{grid-column:1/-1;justify-self:end;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#page-orders>.panel{min-width:0;max-width:100%;contain:inline-size}#page-orders #orderList{width:100%;max-width:100%;min-width:0}#page-orders #orderList .data-table{width:100%!important;max-width:100%!important;table-layout:fixed!important}#page-orders #orderList .data-table th,#page-orders #orderList .data-table td{min-width:0!important;max-width:0;overflow:hidden;padding:10px 12px!important;text-align:left!important;box-sizing:border-box!important}#page-orders #orderList .data-table th:nth-child(1),#page-orders #orderList .data-table td:nth-child(1){width:25%}#page-orders #orderList .data-table th:nth-child(2),#page-orders #orderList .data-table td:nth-child(2){width:13%}#page-orders #orderList .data-table th:nth-child(3),#page-orders #orderList .data-table td:nth-child(3){width:11%}#page-orders #orderList .data-table th:nth-child(4),#page-orders #orderList .data-table td:nth-child(4){width:10%}#page-orders #orderList .data-table th:nth-child(5),#page-orders #orderList .data-table td:nth-child(5){width:12%}#page-orders #orderList .data-table th:nth-child(6),#page-orders #orderList .data-table td:nth-child(6){width:10%}#page-orders #orderList .data-table th:nth-child(7),#page-orders #orderList .data-table td:nth-child(7){width:19%}#page-orders #orderList .item-meta{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:5px}#page-orders #orderList .status{display:inline-flex!important;max-width:100%;white-space:nowrap!important;word-break:keep-all!important}#page-orders #orderList .order-op-btns{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-width:0;max-width:100%;gap:6px!important;flex-wrap:nowrap!important;white-space:nowrap!important}#page-orders #orderList .order-op-btns .link-btn{min-width:0!important;padding:3px 0!important;font-size:11px!important;white-space:nowrap}.order-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 0 0;min-height:48px}.order-pager .pager-summary{margin-right:auto;color:#888;font-size:12px}.order-pager .btn{min-width:74px;height:36px;padding:0 12px}.order-pager .pager-page{min-width:72px;text-align:center;font-size:12px;color:#555}.order-pager .btn:disabled{opacity:.42;cursor:default}@media(max-width:1200px){#page-orders .order-toolbar{grid-template-columns:minmax(0,1.35fr) 124px 116px 134px 88px 108px!important;gap:8px!important}#page-orders .order-query-btn,#page-orders .order-sync-btn{min-width:0!important;padding-left:12px!important;padding-right:12px!important}}

/* v8.24.68 收银台平板摄像头连续扫码 */
.cashier-camera-scan-btn{white-space:nowrap;font-weight:700;border-color:#111;background:#111;color:#fff}.cashier-camera-scan-btn:hover{background:#222;color:#fff}.scan-row .cashier-camera-scan-btn{flex:none}

/* v8.24.69 快速找货 */
.warehouse-zone-list{display:grid;gap:10px;margin-top:12px}.warehouse-zone-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:12px;border:1px solid #e8e8e8;border-radius:12px}.warehouse-zone-row div{min-width:0}.warehouse-zone-row strong,.warehouse-zone-row span{display:block}.warehouse-zone-row span{font-size:12px;color:#777;margin-top:4px}.warehouse-location-editor{display:grid;gap:8px;max-height:46vh;overflow-y:auto;margin:12px 0}.warehouse-location-editor label{display:grid;grid-template-columns:minmax(0,1fr) 90px;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #eee}.warehouse-location-editor input{text-align:center}.size-pick-btn span{white-space:normal;line-height:1.35}.stock-edit-btn+ .stock-edit-btn{margin-left:6px}

/* v8.24.71 订单页：同步订单移至第二排 */
#page-orders .order-toolbar #syncOrdersBtn{
  grid-column:1 / span 1!important;
  grid-row:2!important;
  justify-self:start!important;
}
#page-orders .order-toolbar #orderSyncMeta{
  grid-column:2 / -1!important;
  grid-row:2!important;
  justify-self:start!important;
}
@media(max-width:1200px){
  #page-orders .order-toolbar #syncOrdersBtn{grid-column:1 / span 1!important;grid-row:2!important}
  #page-orders .order-toolbar #orderSyncMeta{grid-column:2 / -1!important;grid-row:2!important}
}

/* v8.24.75 轻量仓储 SOP */
.warehouse-sop-actions{display:flex;gap:8px;flex-wrap:wrap}.warehouse-sop-search{display:flex;gap:8px;margin:14px 0}.warehouse-sop-search input{flex:1}.warehouse-product-results{display:grid;gap:8px;max-height:55vh;overflow:auto}.warehouse-product-result{border:1px solid var(--line,#e8e8e8);background:#fff;border-radius:12px;padding:12px 14px;text-align:left;display:flex;justify-content:space-between;gap:12px}.warehouse-product-result span{color:#777;font-size:12px}.warehouse-find-list,.warehouse-sku-action-list{display:grid;gap:8px;margin:14px 0;max-height:55vh;overflow:auto}.warehouse-find-list>div,.warehouse-sku-action{display:grid;grid-template-columns:minmax(140px,1fr) 100px minmax(180px,1.4fr) auto;gap:10px;align-items:center;border-bottom:1px solid #eee;padding:10px 0}.warehouse-sku-action{grid-template-columns:1fr 120px 100px}.warehouse-sku-action input{width:90px}.inventory-loc-mini{border:0;background:transparent;font-size:10px;color:#777;padding:1px 3px;cursor:pointer}.warehouse-settings-panel{margin-top:12px}

/* v8.24.75 库存列表直接显示/修改整款库位 */
.inventory-location-cell{min-width:150px;max-width:220px}
.inventory-location-btn{border:0;background:transparent;padding:7px 8px;border-radius:8px;font:inherit;font-weight:650;text-align:left;cursor:pointer;line-height:1.35;max-width:100%;white-space:normal}
.inventory-location-btn.has-location:hover{background:#f1f2f4}
.inventory-location-btn.is-empty{color:#777;border:1px dashed #d7d9dd;background:#fafafa}
.inventory-location-btn.is-empty:hover{color:#111;border-color:#999;background:#f5f5f5}
.inventory-location-text{font-weight:600;color:#555}

/* v8.24.76 库存列表横向紧凑：主要收紧左右列间距，保证库位/操作完整可见 */
#page-inventory .inventory-fixed-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
#page-inventory .inventory-fixed-table th,#page-inventory .inventory-fixed-table td{padding-left:7px!important;padding-right:7px!important}
#page-inventory .inventory-fixed-table th:nth-child(1){width:14%!important}
#page-inventory .inventory-fixed-table th:nth-child(2){width:9%!important}
#page-inventory .inventory-fixed-table th:nth-child(3){width:11%!important}
#page-inventory .inventory-fixed-table th:nth-child(4){width:35%!important}
#page-inventory .inventory-fixed-table th:nth-child(5){width:12%!important}
#page-inventory .inventory-fixed-table th:nth-child(6){width:6%!important}
#page-inventory .inventory-fixed-table th:nth-child(7){width:7%!important}
#page-inventory .inventory-fixed-table th:nth-child(8){width:6%!important;min-width:0!important}
#page-inventory .inventory-fixed-table td:last-child,#page-inventory .inventory-fixed-table th:last-child{padding-left:4px!important;padding-right:4px!important;text-align:center!important}
#page-inventory .inventory-product{min-width:0!important;gap:8px!important}
#page-inventory .inventory-thumb-wrap{width:48px!important;height:48px!important;flex:0 0 48px!important;border-radius:9px!important}
#page-inventory .inventory-product-info strong{max-width:105px!important}
#page-inventory .inventory-location-cell{min-width:0!important;max-width:none!important;padding-left:5px!important;padding-right:5px!important}
#page-inventory .inventory-location-btn{padding:6px 5px!important;font-size:12px!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
#page-inventory .stock-edit-btn{min-width:0!important;width:auto!important;padding:7px 6px!important;font-size:11px!important}
#page-inventory .inventory-sizes-cell{padding-left:5px!important;padding-right:5px!important}
#page-inventory .inventory-size-strip{gap:5px!important}
@media(max-width:1350px){
 #page-inventory .inventory-fixed-table th:nth-child(1){width:15%!important}
 #page-inventory .inventory-fixed-table th:nth-child(2){width:9%!important}
 #page-inventory .inventory-fixed-table th:nth-child(3){width:10%!important}
 #page-inventory .inventory-fixed-table th:nth-child(4){width:34%!important}
 #page-inventory .inventory-fixed-table th:nth-child(5){width:13%!important}
 #page-inventory .inventory-fixed-table th:nth-child(6){width:6%!important}
 #page-inventory .inventory-fixed-table th:nth-child(7){width:7%!important}
 #page-inventory .inventory-fixed-table th:nth-child(8){width:6%!important}
}

/* v8.24.78 库存列表：尺码库存按实际内容收窄，释放空间给库位与右侧信息 */
#page-inventory .inventory-fixed-table th:nth-child(1){width:15%!important}
#page-inventory .inventory-fixed-table th:nth-child(2){width:9%!important}
#page-inventory .inventory-fixed-table th:nth-child(3){width:12%!important}
#page-inventory .inventory-fixed-table th:nth-child(4){width:25%!important}
#page-inventory .inventory-fixed-table th:nth-child(5){width:17%!important}
#page-inventory .inventory-fixed-table th:nth-child(6){width:6%!important}
#page-inventory .inventory-fixed-table th:nth-child(7){width:8%!important}
#page-inventory .inventory-fixed-table th:nth-child(8){width:8%!important}
#page-inventory .inventory-sizes-cell{padding-left:4px!important;padding-right:4px!important}
#page-inventory .inventory-size-strip{width:max-content!important;max-width:100%!important;gap:4px!important;justify-content:flex-start!important}
@media(max-width:1350px){
 #page-inventory .inventory-fixed-table th:nth-child(1){width:15%!important}
 #page-inventory .inventory-fixed-table th:nth-child(2){width:9%!important}
 #page-inventory .inventory-fixed-table th:nth-child(3){width:11%!important}
 #page-inventory .inventory-fixed-table th:nth-child(4){width:27%!important}
 #page-inventory .inventory-fixed-table th:nth-child(5){width:16%!important}
 #page-inventory .inventory-fixed-table th:nth-child(6){width:6%!important}
 #page-inventory .inventory-fixed-table th:nth-child(7){width:8%!important}
 #page-inventory .inventory-fixed-table th:nth-child(8){width:8%!important}
}


/* v8.24.78 库位保存即时回显 + 状态列加宽 */
#page-inventory .inventory-fixed-table th:nth-child(1){width:15%!important}
#page-inventory .inventory-fixed-table th:nth-child(2){width:9%!important}
#page-inventory .inventory-fixed-table th:nth-child(3){width:12%!important}
#page-inventory .inventory-fixed-table th:nth-child(4){width:24%!important}
#page-inventory .inventory-fixed-table th:nth-child(5){width:15%!important}
#page-inventory .inventory-fixed-table th:nth-child(6){width:6%!important}
#page-inventory .inventory-fixed-table th:nth-child(7){width:11%!important;min-width:108px!important}
#page-inventory .inventory-fixed-table th:nth-child(8){width:8%!important}
#page-inventory .inventory-fixed-table td:nth-child(7){padding-left:6px!important;padding-right:6px!important}
#page-inventory .inventory-fixed-table td:nth-child(7) .status{white-space:nowrap!important;max-width:100%!important}
@media(max-width:1350px){
 #page-inventory .inventory-fixed-table th:nth-child(1){width:15%!important}
 #page-inventory .inventory-fixed-table th:nth-child(2){width:9%!important}
 #page-inventory .inventory-fixed-table th:nth-child(3){width:11%!important}
 #page-inventory .inventory-fixed-table th:nth-child(4){width:25%!important}
 #page-inventory .inventory-fixed-table th:nth-child(5){width:15%!important}
 #page-inventory .inventory-fixed-table th:nth-child(6){width:6%!important}
 #page-inventory .inventory-fixed-table th:nth-child(7){width:11%!important;min-width:100px!important}
 #page-inventory .inventory-fixed-table th:nth-child(8){width:8%!important}
}

/* v8.24.79 仓库库位：可视化真实货架，上层在上、A1 在最下层，点击即保存 */
.warehouse-shelf-row{align-items:stretch;gap:10px}
.warehouse-shelf-summary{flex:1;min-width:0}
.warehouse-shelf-summary>strong{display:block;font-size:15px;margin-bottom:2px}
.warehouse-shelf-summary>span{font-size:12px;color:var(--muted)}
.warehouse-shelf-mini{width:min(420px,100%);margin-top:10px;border:1px solid var(--line);border-bottom:4px solid #c9c9c9;border-radius:10px 10px 4px 4px;overflow:hidden;background:#fff}
.warehouse-shelf-mini-floor{display:grid;grid-template-columns:38px 1fr;min-height:38px;border-bottom:1px solid var(--line);align-items:center}
.warehouse-shelf-mini-floor:last-child{border-bottom:0}.warehouse-shelf-mini-floor>span{text-align:center;font-size:11px;color:var(--muted)}
.warehouse-shelf-mini-floor>div{display:flex;gap:6px;padding:6px;border-left:1px solid var(--line)}
.warehouse-shelf-mini-floor b{font-size:12px;font-weight:650;background:#f7f7f7;border:1px solid #e6e6e6;border-radius:7px;padding:4px 8px}
.warehouse-shelf-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.warehouse-floor-editor{margin:10px 0 4px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fafafa}
.warehouse-floor-hint{text-align:center;color:var(--muted);font-size:11px;margin:0 0 7px}.warehouse-floor-hint.bottom{margin:7px 0 0}
.warehouse-floor-config{display:grid;grid-template-columns:90px 180px 1fr;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-bottom:0;padding:9px 12px}
.warehouse-floor-config:first-of-type{border-radius:10px 10px 0 0}.warehouse-floor-config:nth-last-child(2){border-bottom:1px solid var(--line);border-radius:0 0 10px 10px}
.warehouse-floor-name strong{font-size:15px}.warehouse-floor-name span{display:block;font-size:10px;color:var(--muted)}
.warehouse-floor-config label{margin:0;display:grid;grid-template-columns:auto 90px;gap:8px;align-items:center;font-size:12px;color:var(--muted)}
.warehouse-floor-config select{height:34px;padding:0 8px}
.warehouse-floor-preview{display:flex;gap:6px;min-width:0}.warehouse-floor-preview span{flex:1;min-width:58px;text-align:center;padding:7px 8px;border:1px solid #ddd;border-radius:7px;font-weight:650;background:#f8f8f8}
.warehouse-picker-note{font-size:12px;color:var(--muted);margin:12px 0 8px}
.warehouse-shelf-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:54vh;overflow:auto;padding:2px 3px 4px}
.warehouse-shelf-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;min-width:0}
.warehouse-shelf-card>header{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.warehouse-shelf-card>header strong{font-size:16px}.warehouse-shelf-card>header span{font-size:11px;color:var(--muted)}
.warehouse-shelf-physical{border:2px solid #bdbdbd;border-bottom-width:7px;border-radius:8px 8px 3px 3px;overflow:hidden;background:#fafafa}
.warehouse-shelf-top,.warehouse-shelf-ground{text-align:center;font-size:10px;color:#999;padding:4px;background:#f2f2f2}.warehouse-shelf-ground{border-top:1px solid #ccc}
.warehouse-shelf-floor{display:grid;grid-template-columns:48px 1fr;min-height:62px;border-top:1px solid #cfcfcf;align-items:stretch}.warehouse-shelf-floor:first-of-type{border-top:0}
.warehouse-shelf-floor-label{display:flex;align-items:center;justify-content:center;font-weight:700;color:#666;border-right:1px solid #d8d8d8;background:#f5f5f5}
.warehouse-shelf-cells{display:flex;gap:7px;padding:8px;align-items:stretch;min-width:0}
.warehouse-slot-btn{flex:1;min-width:0;min-height:44px;border:1px solid #d7d7d7;border-radius:9px;background:#fff;font-weight:700;font-size:14px;cursor:pointer}
.warehouse-slot-btn:hover{background:#f5f5f5}.warehouse-slot-btn.active{border:2px solid #111;background:#111;color:#fff}
.warehouse-legacy-slots{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.warehouse-legacy-slots>span{font-size:11px;color:var(--muted);width:100%}.warehouse-legacy-slots .warehouse-slot-btn{flex:0 0 auto;padding:0 16px}
@media(max-width:1100px){.warehouse-shelf-picker{grid-template-columns:1fr}.warehouse-floor-config{grid-template-columns:75px 150px 1fr}.warehouse-shelf-form{grid-template-columns:1fr 1fr}}


/* v8.24.81 库位选择：简约灰色拟物货架，单货架切换；去掉重复的小字货架名 */
.warehouse-rack-tabs{display:flex;gap:8px;align-items:center;margin:10px 0 12px;overflow-x:auto;padding-bottom:2px}
.warehouse-rack-tab{height:40px;padding:0 20px;border:1px solid #dedede;border-radius:10px;background:#fff;color:#555;font-size:14px;font-weight:650;white-space:nowrap;cursor:pointer}
.warehouse-rack-tab.active{background:#111;color:#fff;border-color:#111}
.warehouse-shelf-picker{display:block!important;max-height:56vh;overflow:auto;padding:0 2px 4px}
.warehouse-shelf-card{display:none;border:1px solid #e2e2e2;border-radius:14px;background:#fff;padding:14px;min-width:0}
.warehouse-shelf-card.active{display:block}
.warehouse-rack-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 12px}
.warehouse-rack-title strong{font-size:18px;font-weight:720}.warehouse-rack-title span{font-size:12px;color:#929292}
.warehouse-shelf-physical{position:relative;border:0!important;border-radius:10px!important;overflow:hidden!important;background:#f6f6f6!important;padding:14px 24px 8px;box-shadow:inset 0 0 0 1px #e4e4e4}
.warehouse-rack-upright{position:absolute;top:10px;bottom:8px;width:10px;border-radius:3px;background:linear-gradient(90deg,#b9b9b9,#dedede 45%,#aaa);z-index:2}
.warehouse-rack-upright.left{left:10px}.warehouse-rack-upright.right{right:10px}
.warehouse-rack-upright:after{content:'';position:absolute;inset:8px 3px;background:repeating-linear-gradient(to bottom,transparent 0 12px,#f6f6f6 12px 17px);border-radius:2px;opacity:.75}
.warehouse-shelf-floor{position:relative;display:grid!important;grid-template-columns:68px 1fr!important;min-height:78px!important;border:0!important;align-items:stretch!important;padding:0 0 8px;z-index:3}
.warehouse-shelf-floor:after{content:'';position:absolute;left:58px;right:0;bottom:7px;height:8px;border-radius:2px;background:linear-gradient(#d5d5d5,#bcbcbc);box-shadow:0 2px 3px rgba(0,0,0,.08)}
.warehouse-shelf-floor-label{border:0!important;background:transparent!important;display:flex!important;flex-direction:column;align-items:center!important;justify-content:center!important;color:#444!important;font-weight:700!important;line-height:1.1}
.warehouse-shelf-floor-label b{font-size:15px}.warehouse-shelf-floor-label small{font-size:10px;color:#999;font-weight:500;margin-top:4px}
.warehouse-shelf-cells{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px!important;padding:7px 8px 15px!important;align-items:stretch!important;min-width:0}
.warehouse-slot-btn{position:relative;z-index:4;min-height:48px!important;border:1px solid #d8d8d8!important;border-radius:9px!important;background:linear-gradient(#fff,#f3f3f3)!important;color:#222;font-weight:700!important;font-size:14px!important;box-shadow:0 2px 4px rgba(0,0,0,.04);cursor:pointer}
.warehouse-slot-btn:hover{background:#eeeeee!important}.warehouse-slot-btn.active{border-color:#111!important;background:#111!important;color:#fff!important;box-shadow:none}
.warehouse-shelf-ground{position:relative;z-index:3;margin:0 58px 0 0;padding:5px 0 0!important;border-top:5px solid #bcbcbc!important;background:transparent!important;text-align:center!important;font-size:10px!important;color:#999!important}
.warehouse-shelf-card>header{display:none!important}
@media(max-width:900px){.warehouse-shelf-physical{padding-left:18px;padding-right:18px}.warehouse-shelf-floor{grid-template-columns:54px 1fr!important}.warehouse-shelf-floor:after{left:46px}.warehouse-shelf-cells{grid-template-columns:repeat(2,minmax(80px,1fr));gap:8px!important}.warehouse-rack-tab{padding:0 14px}}

/* v8.24.81 库位选择：缩小拟物货架，强调快速点选，不占满弹窗 */
#modalHost .modal.warehouse-location-picker-modal{width:min(860px,92vw)!important;max-width:860px!important;padding:18px 20px!important}
.warehouse-location-picker-modal .stock-edit-product{padding:10px 12px!important;margin:6px 0 10px!important}
.warehouse-location-picker-modal .warehouse-picker-note{margin:8px 0 6px!important}
.warehouse-location-picker-modal .warehouse-rack-tabs{margin:6px 0 8px!important;gap:6px!important}
.warehouse-location-picker-modal .warehouse-rack-tab{height:34px!important;padding:0 14px!important;border-radius:8px!important;font-size:13px!important}
.warehouse-location-picker-modal .warehouse-shelf-picker{max-height:58vh!important;overflow:auto!important;padding:0 1px 2px!important}
.warehouse-location-picker-modal .warehouse-shelf-card{padding:9px 10px!important;border-radius:11px!important}
.warehouse-location-picker-modal .warehouse-rack-title{margin:0 0 7px!important}
.warehouse-location-picker-modal .warehouse-rack-title strong{font-size:15px!important}
.warehouse-location-picker-modal .warehouse-rack-title span{font-size:11px!important}
.warehouse-location-picker-modal .warehouse-shelf-physical{width:min(620px,100%)!important;margin:0 auto!important;padding:9px 18px 5px!important;border-radius:8px!important}
.warehouse-location-picker-modal .warehouse-rack-upright{top:7px!important;bottom:5px!important;width:7px!important}
.warehouse-location-picker-modal .warehouse-rack-upright.left{left:7px!important}.warehouse-location-picker-modal .warehouse-rack-upright.right{right:7px!important}
.warehouse-location-picker-modal .warehouse-rack-upright:after{inset:6px 2px!important;background:repeating-linear-gradient(to bottom,transparent 0 9px,#f6f6f6 9px 13px)!important}
.warehouse-location-picker-modal .warehouse-shelf-floor{grid-template-columns:48px 1fr!important;min-height:52px!important;padding:0 0 5px!important}
.warehouse-location-picker-modal .warehouse-shelf-floor:after{left:42px!important;bottom:4px!important;height:5px!important}
.warehouse-location-picker-modal .warehouse-shelf-floor-label b{font-size:13px!important}
.warehouse-location-picker-modal .warehouse-shelf-floor-label small{font-size:9px!important;margin-top:2px!important}
.warehouse-location-picker-modal .warehouse-shelf-cells{grid-template-columns:repeat(4,minmax(70px,1fr))!important;gap:6px!important;padding:5px 6px 9px!important}
.warehouse-location-picker-modal .warehouse-slot-btn{min-height:36px!important;border-radius:7px!important;font-size:13px!important;box-shadow:none!important}
.warehouse-location-picker-modal .warehouse-shelf-ground{margin-right:42px!important;padding-top:3px!important;border-top-width:4px!important;font-size:9px!important}
.warehouse-location-picker-modal>.tiny{margin-top:8px!important}
.warehouse-location-picker-modal>.modal-actions{margin-top:10px!important;padding-top:10px!important}
@media(max-width:760px){
 #modalHost .modal.warehouse-location-picker-modal{width:94vw!important;padding:14px!important}
 .warehouse-location-picker-modal .warehouse-shelf-physical{width:100%!important;padding-left:14px!important;padding-right:14px!important}
 .warehouse-location-picker-modal .warehouse-shelf-cells{grid-template-columns:repeat(2,minmax(72px,1fr))!important}
}

/* v8.24.83 仓库货架：轻拟物 3D + 可动态层数/格数 */
.warehouse-location-picker-modal .warehouse-shelf-physical{background:linear-gradient(180deg,#fafafa,#f1f2f3)!important;box-shadow:inset 0 0 0 1px #e2e3e4,0 10px 24px rgba(0,0,0,.045)!important}
.warehouse-location-picker-modal .warehouse-rack-upright{background:linear-gradient(90deg,#9da2a7 0,#d5d8db 30%,#b8bdc2 56%,#8f959a 100%)!important;box-shadow:inset 1px 0 rgba(255,255,255,.7),2px 0 4px rgba(0,0,0,.08)!important}
.warehouse-location-picker-modal .warehouse-shelf-floor:after{height:9px!important;background:linear-gradient(180deg,#d8dbde 0,#aeb4b9 48%,#8f969b 100%)!important;box-shadow:0 3px 5px rgba(0,0,0,.12),inset 0 1px rgba(255,255,255,.8)!important}
.warehouse-location-picker-modal .warehouse-slot-btn{overflow:visible!important;border:1px solid #d2d5d7!important;border-radius:7px 7px 10px 10px!important;background:linear-gradient(180deg,#fff 0,#f4f5f6 44%,#e6e8ea 100%)!important;box-shadow:inset 0 2px rgba(255,255,255,.9),0 3px 6px rgba(0,0,0,.09)!important;transform:perspective(180px) rotateX(-1deg)}
.warehouse-location-picker-modal .warehouse-slot-btn:before{content:'';position:absolute;left:5%;right:5%;top:-4px;height:7px;border:1px solid #cfd2d4;border-radius:6px 6px 3px 3px;background:linear-gradient(#fff,#e8eaeb);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.warehouse-location-picker-modal .warehouse-slot-btn:after{content:'';position:absolute;left:8%;right:8%;bottom:-3px;height:4px;border-radius:0 0 8px 8px;background:#c9cdd0;opacity:.5}
.warehouse-location-picker-modal .warehouse-slot-btn.active{background:linear-gradient(#202020,#0d0d0d)!important;border-color:#111!important;box-shadow:inset 0 1px rgba(255,255,255,.12),0 3px 7px rgba(0,0,0,.15)!important}
.warehouse-location-picker-modal .warehouse-slot-btn.active:before{background:linear-gradient(#333,#151515);border-color:#111}.warehouse-location-picker-modal .warehouse-slot-btn.active:after{background:#111}

.warehouse-shelf-editor-modal{width:min(780px,92vw)!important;max-width:780px!important}
.warehouse-shelf-editor-modal .warehouse-shelf-form{grid-template-columns:minmax(220px,1fr) auto;align-items:end;margin:12px 0 10px}
.warehouse-floor-stepper{display:flex;align-items:center;gap:8px;height:42px}.warehouse-floor-stepper>span{font-size:12px;color:var(--muted);margin-right:4px}.warehouse-floor-stepper button,.warehouse-floor-count-stepper button{width:32px;height:32px;border:1px solid #d9d9d9;border-radius:8px;background:#fff;font-size:18px;line-height:1;cursor:pointer}.warehouse-floor-stepper strong{min-width:24px;text-align:center;font-size:16px}
.warehouse-shelf-editor-modal .warehouse-floor-editor{border:0!important;background:transparent!important;padding:0!important;margin-top:8px!important}
.warehouse-editor-rack-cap{display:flex;align-items:baseline;justify-content:space-between;margin:0 10px 7px}.warehouse-editor-rack-cap span{font-size:16px;font-weight:720}.warehouse-editor-rack-cap small{color:var(--muted);font-size:11px}
.warehouse-editor-rack{position:relative;padding:10px 20px 5px;background:linear-gradient(180deg,#f9f9f9,#f0f1f2);border:1px solid #e1e2e3;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.warehouse-editor-upright{position:absolute;top:8px;bottom:6px;width:8px;border-radius:3px;background:linear-gradient(90deg,#969ca1,#d4d7da 40%,#9aa0a5);z-index:1;box-shadow:1px 0 3px rgba(0,0,0,.08)}.warehouse-editor-upright.left{left:8px}.warehouse-editor-upright.right{right:8px}
.warehouse-floor-config{position:relative;display:grid!important;grid-template-columns:58px minmax(0,1fr) 112px!important;gap:10px!important;align-items:center!important;background:transparent!important;border:0!important;padding:5px 8px 13px!important;min-height:64px;z-index:2}
.warehouse-floor-config:after{content:'';position:absolute;left:58px;right:112px;bottom:8px;height:8px;border-radius:2px;background:linear-gradient(180deg,#d9dcdf,#9ea4a9);box-shadow:0 3px 5px rgba(0,0,0,.1),inset 0 1px rgba(255,255,255,.8);z-index:-1}
.warehouse-floor-name{display:flex;flex-direction:column;align-items:center;justify-content:center}.warehouse-floor-name strong{font-size:14px}.warehouse-floor-name span{font-size:9px;color:#999;margin-top:2px}
.warehouse-floor-boxes{display:grid;grid-template-columns:repeat(var(--floor-count,4),minmax(52px,1fr));gap:7px;min-width:0;padding-bottom:7px}
.warehouse-editor-bin{position:relative;display:flex;align-items:center;justify-content:center;height:36px;border:1px solid #d1d4d6;border-radius:6px 6px 8px 8px;background:linear-gradient(#fff,#e6e8ea);font-size:12px;font-weight:700;box-shadow:inset 0 1px #fff,0 2px 4px rgba(0,0,0,.08)}
.warehouse-editor-bin:before{content:'';position:absolute;left:6%;right:6%;top:-3px;height:5px;border:1px solid #ced1d3;border-radius:5px;background:linear-gradient(#fff,#e8eaeb)}
.warehouse-floor-count-stepper{display:flex;justify-content:flex-end;align-items:center;gap:6px}.warehouse-floor-count-stepper b{width:38px;text-align:center;font-size:11px;color:#666}
.warehouse-editor-ground{margin:0 54px 0 50px;border-top:5px solid #9da3a8;text-align:center;padding-top:4px;font-size:10px;color:#999}
@media(max-width:760px){.warehouse-shelf-editor-modal .warehouse-shelf-form{grid-template-columns:1fr}.warehouse-floor-config{grid-template-columns:48px minmax(0,1fr)!important;padding-right:4px!important}.warehouse-floor-count-stepper{grid-column:2;justify-content:flex-start}.warehouse-floor-config:after{left:48px;right:0}.warehouse-editor-ground{margin-left:42px;margin-right:0}}

/* v8.24.83 库位选择：货架轻拟物、库位扁平化，降低视觉复杂度 */
.warehouse-location-picker-modal .warehouse-shelf-physical{
  background:#f7f7f7!important;
  box-shadow:inset 0 0 0 1px #e6e6e6!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright{
  background:linear-gradient(90deg,#b8bcc0,#d8dadd 48%,#afb3b7)!important;
  box-shadow:inset 1px 0 rgba(255,255,255,.65)!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor:after{
  height:6px!important;
  background:linear-gradient(180deg,#d8dadd,#bfc3c6)!important;
  box-shadow:0 2px 2px rgba(0,0,0,.07),inset 0 1px rgba(255,255,255,.7)!important;
}
.warehouse-location-picker-modal .warehouse-slot-btn{
  overflow:hidden!important;
  border:1px solid #dedede!important;
  border-radius:7px!important;
  background:#fbfbfb!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important;
  transform:none!important;
}
.warehouse-location-picker-modal .warehouse-slot-btn:before,
.warehouse-location-picker-modal .warehouse-slot-btn:after{content:none!important;display:none!important}
.warehouse-location-picker-modal .warehouse-slot-btn:hover{background:#f1f1f1!important}
.warehouse-location-picker-modal .warehouse-slot-btn.active{
  background:#111!important;
  color:#fff!important;
  border-color:#111!important;
  box-shadow:none!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor-label{opacity:.9}
.warehouse-location-picker-modal .warehouse-shelf-floor-label small{display:none!important}
.warehouse-location-picker-modal .warehouse-shelf-floor:last-of-type .warehouse-shelf-floor-label small{display:block!important}

/* v8.24.84 库位选择：层板与立柱连体，层号外置，取消地面横梁 */
.warehouse-location-picker-modal .warehouse-shelf-physical{
  padding-left:22px!important;
  padding-right:22px!important;
  overflow:visible!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright.left{left:58px!important}
.warehouse-location-picker-modal .warehouse-rack-upright.right{right:10px!important}
.warehouse-location-picker-modal .warehouse-shelf-floor{
  display:block!important;
  min-height:52px!important;
  padding:0 0 5px!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor-label{
  position:absolute!important;
  left:0!important;
  top:0!important;
  bottom:5px!important;
  width:42px!important;
  z-index:5!important;
  align-items:flex-end!important;
  padding-right:5px!important;
  color:#505050!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor-label b{font-size:13px!important}
.warehouse-location-picker-modal .warehouse-shelf-floor-label small{font-size:8px!important;margin-top:2px!important;white-space:nowrap}
.warehouse-location-picker-modal .warehouse-shelf-cells{
  margin-left:62px!important;
  margin-right:12px!important;
  padding:5px 6px 9px!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor:after{
  left:58px!important;
  right:10px!important;
  bottom:4px!important;
  height:6px!important;
  border-radius:1px!important;
  z-index:3!important;
}
.warehouse-location-picker-modal .warehouse-shelf-ground{
  margin:0!important;
  padding:2px 12px 0 58px!important;
  border-top:0!important;
  background:transparent!important;
  text-align:center!important;
  font-size:9px!important;
  color:#aaa!important;
}
@media(max-width:760px){
 .warehouse-location-picker-modal .warehouse-rack-upright.left{left:48px!important}
 .warehouse-location-picker-modal .warehouse-shelf-floor-label{width:34px!important;padding-right:3px!important}
 .warehouse-location-picker-modal .warehouse-shelf-cells{margin-left:51px!important;margin-right:10px!important}
 .warehouse-location-picker-modal .warehouse-shelf-floor:after{left:48px!important;right:8px!important}
 .warehouse-location-picker-modal .warehouse-shelf-ground{padding-left:48px!important}
}

/* v8.24.85 库位选择：弹窗收窄；层号与立柱拉开；层板与立柱真正连体；立柱直角 */
#modalHost .modal.warehouse-location-picker-modal{
  width:min(720px,90vw)!important;
  max-width:720px!important;
  padding:16px 18px!important;
}
.warehouse-location-picker-modal .warehouse-shelf-physical{
  width:min(560px,100%)!important;
  margin:0 auto!important;
  padding-left:18px!important;
  padding-right:18px!important;
  overflow:visible!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright{
  top:6px!important;
  bottom:5px!important;
  width:7px!important;
  border-radius:0!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright:after{
  border-radius:0!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright.left{left:78px!important}
.warehouse-location-picker-modal .warehouse-rack-upright.right{right:10px!important}
.warehouse-location-picker-modal .warehouse-shelf-floor-label{
  left:0!important;
  width:42px!important;
  padding-right:0!important;
  align-items:flex-end!important;
}
.warehouse-location-picker-modal .warehouse-shelf-cells{
  margin-left:88px!important;
  margin-right:12px!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor:after{
  left:78px!important;
  right:10px!important;
  border-radius:0!important;
  z-index:2!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright{z-index:4!important}
.warehouse-location-picker-modal .warehouse-shelf-ground{
  padding-left:78px!important;
  border-top:0!important;
}
@media(max-width:760px){
  #modalHost .modal.warehouse-location-picker-modal{width:92vw!important;max-width:92vw!important;padding:13px!important}
  .warehouse-location-picker-modal .warehouse-shelf-physical{width:100%!important}
  .warehouse-location-picker-modal .warehouse-rack-upright.left{left:62px!important}
  .warehouse-location-picker-modal .warehouse-shelf-cells{margin-left:72px!important;margin-right:10px!important}
  .warehouse-location-picker-modal .warehouse-shelf-floor:after{left:62px!important;right:8px!important}
  .warehouse-location-picker-modal .warehouse-shelf-ground{padding-left:62px!important}
}

/* v8.24.86 库位货架骨架重构：层板与立柱使用同一坐标容器，杜绝视觉断开 */
#modalHost .modal.warehouse-location-picker-modal{
  width:min(690px,88vw)!important;
  max-width:690px!important;
}
.warehouse-location-picker-modal .warehouse-shelf-physical{
  width:min(540px,100%)!important;
  padding:7px 12px 3px 64px!important;
  overflow:visible!important;
  background:#f7f7f7!important;
}
.warehouse-location-picker-modal .warehouse-rack-body{
  position:relative;
  width:100%;
  min-width:0;
  padding:0 8px;
}
.warehouse-location-picker-modal .warehouse-rack-upright{
  top:0!important;
  bottom:5px!important;
  width:7px!important;
  border-radius:0!important;
  z-index:5!important;
}
.warehouse-location-picker-modal .warehouse-rack-upright.left{left:0!important}
.warehouse-location-picker-modal .warehouse-rack-upright.right{right:0!important}
.warehouse-location-picker-modal .warehouse-shelf-floor{
  position:relative!important;
  display:block!important;
  min-height:52px!important;
  padding:0 0 5px!important;
  z-index:3!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor-label{
  position:absolute!important;
  left:-58px!important;
  top:0!important;
  bottom:5px!important;
  width:44px!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  z-index:6!important;
}
.warehouse-location-picker-modal .warehouse-shelf-cells{
  margin:0!important;
  padding:5px 10px 9px!important;
  position:relative!important;
  z-index:4!important;
}
.warehouse-location-picker-modal .warehouse-shelf-floor:after{
  content:''!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:4px!important;
  height:6px!important;
  border-radius:0!important;
  background:linear-gradient(180deg,#d8dadd,#bfc3c6)!important;
  box-shadow:0 2px 2px rgba(0,0,0,.07),inset 0 1px rgba(255,255,255,.7)!important;
  z-index:4!important;
}
.warehouse-location-picker-modal .warehouse-shelf-ground{
  margin:0!important;
  padding:2px 0 0!important;
  border:0!important;
  background:transparent!important;
  text-align:center!important;
  font-size:9px!important;
  color:#aaa!important;
}
@media(max-width:760px){
  #modalHost .modal.warehouse-location-picker-modal{width:92vw!important;max-width:92vw!important}
  .warehouse-location-picker-modal .warehouse-shelf-physical{width:100%!important;padding-left:55px!important}
  .warehouse-location-picker-modal .warehouse-shelf-floor-label{left:-50px!important;width:38px!important}
  .warehouse-location-picker-modal .warehouse-shelf-cells{grid-template-columns:repeat(2,minmax(72px,1fr))!important}
}

/* v8.24.87 库存顶部精简 + 货架编辑器与库位选择器统一骨架 */
.inventory-toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* 编辑货架：去掉箱体/箱盖视觉，只保留轻拟物立柱、连体层板和扁平库位 */
.warehouse-shelf-editor-modal{width:min(700px,90vw)!important;max-width:700px!important}
.warehouse-shelf-editor-modal .warehouse-editor-rack{
  position:relative;
  padding:10px 126px 4px 72px!important;
  background:#f7f7f7!important;
  border:1px solid #e5e5e5!important;
  border-radius:10px!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)!important;
  overflow:visible!important;
}
.warehouse-shelf-editor-modal .warehouse-editor-upright{
  top:8px!important;
  bottom:8px!important;
  width:7px!important;
  border-radius:0!important;
  background:linear-gradient(90deg,#b8bcc0,#d9dcde 50%,#adb1b4)!important;
  box-shadow:inset 1px 0 rgba(255,255,255,.65)!important;
  z-index:5!important;
}
.warehouse-shelf-editor-modal .warehouse-editor-upright.left{left:72px!important}
.warehouse-shelf-editor-modal .warehouse-editor-upright.right{right:126px!important}
.warehouse-shelf-editor-modal .warehouse-floor-config{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 112px!important;
  gap:10px!important;
  min-height:58px!important;
  padding:4px 0 11px!important;
  z-index:3!important;
}
.warehouse-shelf-editor-modal .warehouse-floor-name{
  position:absolute!important;
  left:-62px!important;
  top:0!important;
  bottom:10px!important;
  width:46px!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  z-index:6!important;
}
.warehouse-shelf-editor-modal .warehouse-floor-name strong{font-size:14px!important}
.warehouse-shelf-editor-modal .warehouse-floor-name span{font-size:9px!important;margin-top:2px!important}
.warehouse-shelf-editor-modal .warehouse-floor-boxes{
  position:relative!important;
  z-index:4!important;
  display:grid!important;
  gap:7px!important;
  padding:4px 10px 8px!important;
  min-width:0!important;
}
.warehouse-shelf-editor-modal .warehouse-editor-bin{
  height:34px!important;
  border:1px solid #d8d8d8!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#222!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:700!important;
}
.warehouse-shelf-editor-modal .warehouse-editor-bin:before{display:none!important}
.warehouse-shelf-editor-modal .warehouse-floor-config:after{
  content:''!important;
  position:absolute!important;
  left:0!important;
  right:112px!important;
  bottom:6px!important;
  height:6px!important;
  border-radius:0!important;
  background:linear-gradient(180deg,#d8dadd,#bfc3c6)!important;
  box-shadow:0 2px 2px rgba(0,0,0,.06),inset 0 1px rgba(255,255,255,.75)!important;
  z-index:4!important;
}
.warehouse-shelf-editor-modal .warehouse-floor-count-stepper{position:relative!important;z-index:6!important}
.warehouse-shelf-editor-modal .warehouse-editor-ground{
  margin:0!important;
  padding:2px 126px 0 72px!important;
  border-top:0!important;
  text-align:center!important;
  font-size:9px!important;
  color:#aaa!important;
}
@media(max-width:760px){
  .warehouse-shelf-editor-modal{width:94vw!important;max-width:94vw!important}
  .warehouse-shelf-editor-modal .warehouse-editor-rack{padding-left:58px!important;padding-right:8px!important}
  .warehouse-shelf-editor-modal .warehouse-editor-upright.left{left:58px!important}
  .warehouse-shelf-editor-modal .warehouse-editor-upright.right{right:8px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-config{grid-template-columns:minmax(0,1fr)!important;padding-bottom:44px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-name{left:-50px!important;width:38px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-config:after{right:0!important;bottom:39px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-count-stepper{grid-column:1!important;justify-content:flex-end!important}
  .warehouse-shelf-editor-modal .warehouse-editor-ground{padding-left:58px!important;padding-right:8px!important}
}
/* v8.24.88 库位二维码盘点 */
.location-audit-modal{width:min(760px,92vw)!important;max-width:760px!important}.location-audit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:8px 0 14px}.location-audit-scan{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.location-audit-scan input{min-width:0}.location-audit-camera{margin-top:10px;padding:10px;border:1px solid var(--line,#e5e5e5);border-radius:10px}.location-audit-camera video{display:block;width:100%;max-height:260px;object-fit:cover;border-radius:8px;background:#111}.location-audit-result{margin-top:14px;min-height:180px;border:1px solid #e8e8e8;border-radius:12px;padding:12px}.audit-summary{padding:4px 2px 10px;border-bottom:1px solid #eee}.audit-items{display:grid;gap:6px;margin-top:8px;max-height:300px;overflow:auto}.audit-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;background:#f7f7f7;border-radius:8px}.audit-item>div:first-child{min-width:0}.audit-item strong,.audit-item span{display:block}.audit-item span{font-size:12px;color:#777;margin-top:2px}.audit-item>div:last-child{text-align:right;white-space:nowrap}.audit-item small,.audit-item b{display:block}.audit-item b{margin-top:2px}.inventory-view-switch #inventoryLocationAuditBtn{margin-left:4px}@media(max-width:760px){.location-audit-scan{grid-template-columns:1fr 1fr}.location-audit-scan input{grid-column:1/-1}.location-audit-head{flex-direction:column}.location-audit-head .btn{align-self:flex-start}}


/* v8.24.90 订单中心重构：独立纵向画布，不再使用可撑宽的 table / 历史 order-toolbar 网格 */
body.orders-mode{overflow-x:hidden!important;overscroll-behavior-x:none}
body.orders-mode .app{width:100vw;max-width:100vw;overflow-x:hidden}
body.orders-mode .main{max-width:calc(100vw - 112px);min-width:0;overflow-x:hidden}
body.orders-mode #page-orders.active{width:100%;max-width:100%;min-width:0;overflow-x:hidden;touch-action:pan-y;overscroll-behavior-x:none}
.orders-shell{width:100%;max-width:100%;min-width:0;display:flex;flex-direction:column;gap:14px;overflow-x:hidden}
.order-filter-panel{width:100%;max-width:100%;min-width:0}
.order-filter-row{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(150px,.62fr) minmax(138px,.56fr) minmax(150px,.62fr) 96px;gap:10px;align-items:center;width:100%;max-width:100%;min-width:0}
.order-filter-row>*{min-width:0;max-width:100%;box-sizing:border-box}
.order-filter-row input,.order-filter-row select,.order-filter-row .xmbb-date-trigger,.order-filter-row .xmbb-select-trigger,.order-filter-row .btn{width:100%;height:46px;margin:0}
.order-filter-row input{border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none;background:#fff}
.order-sync-row{display:flex;align-items:center;gap:12px;min-width:0;margin-top:10px}
.order-sync-row .order-sync-btn{flex:0 0 auto;height:46px}
.order-sync-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#888;font-size:12px}
.order-stats{width:100%;min-width:0;margin:0}
.order-list-panel{width:100%;max-width:100%;min-width:0;overflow:hidden;padding:0 18px 14px}
.order-list{width:100%;max-width:100%;min-width:0;overflow:hidden}
.order-list-head,.order-list-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.05fr) minmax(0,.85fr) minmax(0,.78fr) minmax(0,.98fr) minmax(0,.78fr) minmax(0,1.35fr);column-gap:12px;align-items:center;width:100%;min-width:0}
.order-list-head{height:54px;border-bottom:1px solid var(--line);color:#888;font-size:12px;padding:0 12px}
.order-list-body{width:100%;min-width:0}
.order-list-row{min-height:86px;padding:12px;border-bottom:1px solid #f0f0f0}
.order-list-row:last-child{border-bottom:0}
.order-list-row:hover{background:#fafafa}
.order-cell{min-width:0;max-width:100%;font-size:13px;overflow:hidden}
.order-cell>*{max-width:100%}
.order-cell-label{display:none;color:#999;font-size:10px;margin-bottom:4px}
.order-id-btn{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#222}
.order-id-btn strong{font-size:13px}
.order-item-summary{margin-top:5px;color:#999;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.order-cell-time>span:last-child{display:block;white-space:normal;line-height:1.45}
.order-cell-member>span:last-child,.order-cell-pay>span:last-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.order-cell-amount strong{display:block;white-space:nowrap}.order-cell-amount small{display:block;color:#999;margin-top:4px;white-space:nowrap}
.order-cell-status{overflow:visible}.order-cell-status .status{display:inline-flex;white-space:nowrap}
.order-cell-actions{overflow:visible}
.order-cell-actions .order-op-btns{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;white-space:normal;min-width:0}
.order-cell-actions .link-btn{padding:3px 0;white-space:nowrap;font-size:11px}
.order-pager{width:100%;max-width:100%;min-width:0;flex-wrap:wrap}

/* 订单详情完全绑定真实 viewport；关闭按钮不再参与横向 flex 计算 */
#modalHost.viewport-modal-host{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;z-index:20000!important;overflow:hidden!important}
#modalHost.viewport-modal-host .modal-backdrop{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:100%!important;overflow:hidden!important;padding:18px!important;box-sizing:border-box!important;place-items:center!important}
#modalHost.viewport-modal-host .modal{max-width:calc(100vw - 36px)!important;max-height:calc(100dvh - 36px)!important;box-sizing:border-box!important}
#modalHost.viewport-modal-host .order-detail-modal{width:min(1040px,calc(100vw - 36px))!important;padding:0!important;overflow:hidden!important}
.order-detail-shell{position:relative;width:100%;max-width:100%;height:min(840px,calc(100dvh - 36px));min-width:0;overflow:hidden}
.order-detail-fixed-header{position:relative;display:block!important;padding:20px 70px 16px 22px!important;min-width:0}
.order-detail-title{width:100%;min-width:0;padding-right:6px}
.order-detail-title .item-meta{white-space:normal;overflow-wrap:anywhere}
.order-detail-header-actions{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;flex-wrap:wrap!important;white-space:normal!important;margin-top:12px;min-width:0;max-width:100%}
.order-detail-header-actions .btn{max-width:100%;white-space:nowrap}
.order-detail-close{position:absolute!important;right:18px!important;top:18px!important;z-index:8!important;margin:0!important}
.order-detail-scroll{width:100%;max-width:100%;min-width:0;overflow-x:hidden!important;overflow-y:auto!important}
.order-detail-summary{width:100%;min-width:0}
.order-detail-products{width:100%;max-width:100%;min-width:0;margin-top:10px;border-top:1px solid #eee}
.order-detail-product-head,.order-detail-product-row{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(52px,.45fr) minmax(80px,.65fr) minmax(92px,.75fr) minmax(70px,.6fr);gap:12px;align-items:center;width:100%;min-width:0}
.order-detail-product-head{padding:10px 10px;color:#888;font-size:12px;border-bottom:1px solid #eee}
.order-detail-product-row{padding:11px 10px;border-bottom:1px solid #eee;font-size:13px}
.order-detail-product-row>div{min-width:0;max-width:100%}
.order-detail-product-row [data-label]{white-space:nowrap}
.order-product-cell{min-width:0}.order-product-cell>div:last-child{min-width:0}.order-product-cell strong,.order-product-cell .item-meta{overflow:hidden;text-overflow:ellipsis;max-width:100%}

@media(max-width:1100px){
  body.orders-mode .main{max-width:calc(100vw - 94px)}
  .order-filter-row{grid-template-columns:minmax(190px,1.4fr) minmax(138px,.7fr) minmax(128px,.62fr) minmax(138px,.68fr) 84px;gap:8px}
  .order-list-head{display:none}
  .order-list-row{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr);grid-template-areas:"id id time status" "member pay amount action";row-gap:12px;min-height:110px;padding:14px 12px}
  .order-cell-label{display:block}
  .order-cell-id{grid-area:id}.order-cell-time{grid-area:time}.order-cell-member{grid-area:member}.order-cell-pay{grid-area:pay}.order-cell-amount{grid-area:amount}.order-cell-status{grid-area:status}.order-cell-actions{grid-area:action}
  .order-cell-actions .order-op-btns{gap:7px}
}
@media(max-width:820px){
  .order-filter-row{grid-template-columns:1fr 1fr}.order-filter-keyword{grid-column:1/-1}.order-filter-row .order-query-btn{grid-column:2}
  .order-list-row{grid-template-columns:1fr 1fr;grid-template-areas:"id id" "time status" "member pay" "amount action"}
  .order-detail-fixed-header{padding-left:16px!important;padding-right:62px!important}
  .order-detail-scroll{padding-left:16px!important;padding-right:16px!important}
  .order-detail-product-head{display:none}
  .order-detail-product-row{grid-template-columns:1fr 1fr;gap:8px 12px}
  .order-detail-product-row>.order-product-cell{grid-column:1/-1}
  .order-detail-product-row [data-label]:before{content:attr(data-label)' ';display:block;color:#999;font-size:10px;margin-bottom:3px}
}
\n/* v8.24.91 设置页彻底锁定 viewport，标签打印机独立布局 */\nhtml,body{max-width:100%;overflow-x:hidden}\nbody.settings-mode .main,body.settings-mode .page,body.settings-mode #page-settings,body.settings-mode .settings-layout,body.settings-mode .settings-content,body.settings-mode .settings-grid,body.settings-mode .panel{min-width:0!important;max-width:100%!important}\nbody.settings-mode #page-settings{overflow-x:hidden!important}\n.settings-layout{width:100%;max-width:100%;grid-template-columns:190px minmax(0,1fr)!important}\n.settings-content,.settings-grid{width:100%;max-width:100%;overflow-x:hidden}\n.receipt-settings-grid{width:100%!important;max-width:100%!important;grid-template-columns:minmax(0,1fr) minmax(280px,340px)!important;gap:18px!important}\n.receipt-preview-column{min-width:0!important;max-width:100%!important;overflow:hidden}\n#androidPrinterPanel{max-width:100%!important;min-width:0!important;overflow:hidden!important}\n#androidPrinterPanel>div{max-width:100%;min-width:0}\n#btPrinterSelect{min-width:0!important;width:100%!important;max-width:100%!important}\n.receipt-paper-shell{max-width:100%!important;overflow:hidden!important}\n.label-printer-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:18px;align-items:start;min-width:0;max-width:100%}\n.label-printer-form,.label-printer-device-card{min-width:0;max-width:100%}\n.label-printer-device-card{border:1px solid #e5e5e5;border-radius:14px;padding:16px;overflow:hidden}\n.label-printer-device-card select{width:100%;max-width:100%;min-width:0;margin:10px 0}\n.label-printer-actions,.label-size-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}\n.label-print-modal{width:min(880px,calc(100vw - 36px))!important;max-width:calc(100vw - 36px)!important;max-height:calc(100vh - 36px)!important;overflow:auto!important}\n.label-print-modal .modal-close-fixed{position:sticky;top:0;z-index:5;float:right;margin:-2px 0 8px 12px}\n.label-print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;clear:both}\n.label-print-card{border:1px solid #ddd;border-radius:10px;padding:10px;text-align:center;min-width:0}.label-print-card img{width:104px;height:104px;max-width:100%;object-fit:contain}.label-print-card b{display:block;font-size:24px;margin:4px 0}.label-print-card small{display:block;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n@media(max-width:1180px){body.settings-mode .main{left:94px!important}.settings-layout{grid-template-columns:170px minmax(0,1fr)!important}.receipt-settings-grid,.label-printer-settings-grid{grid-template-columns:1fr!important}.receipt-preview-column,.label-printer-device-card{max-width:100%!important}.receipt-paper-shell{min-height:auto!important}}\n@media(max-width:900px){.settings-layout{grid-template-columns:1fr!important}.settings-subnav{position:relative!important;top:auto!important}.settings-subnav{display:flex;flex-wrap:wrap;gap:6px}.settings-subnav-title{width:100%}.settings-tab{width:auto!important}.receipt-settings-grid,.label-printer-settings-grid{grid-template-columns:1fr!important}}\n
/* v8.24.92 库位标签分页网格 + 扫码操作台状态 */
.label-print-modal{width:min(1040px,calc(100vw - 32px))!important;max-width:calc(100vw - 32px)!important;height:min(760px,calc(100vh - 32px));max-height:calc(100vh - 32px)!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
.label-print-head{flex:0 0 auto}.label-print-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.label-print-toolbar select{height:38px;border:1px solid #ddd;border-radius:8px;padding:0 10px;background:#fff}
.label-print-grid{flex:1 1 auto;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:10px;padding:2px 2px 10px}
.label-print-card{padding:9px}.label-print-card img{width:90px;height:90px}.label-print-card b{font-size:22px}.label-print-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.label-print-card-top small{text-align:left}.tiny-btn{padding:4px 8px!important;min-height:28px!important;font-size:12px!important}
.label-print-pager{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #eee;padding:10px 2px 4px}.label-print-pager>div{display:flex;align-items:center;gap:8px}
.label-print-modal .modal-actions{flex:0 0 auto;margin-top:4px}
@media(max-width:1100px){.label-print-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:820px){.label-print-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* v8.24.93 库位纯扫码 + 小票设置 50/50 紧凑布局 */
.location-audit-launch{display:flex;align-items:center;gap:12px;margin:12px 0}.location-audit-launch .btn{min-width:180px}.location-audit-scan{display:none!important}
body.settings-mode .receipt-settings-panel{overflow:hidden!important}
body.settings-mode .receipt-settings-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important;width:100%!important;max-width:100%!important;min-width:0!important;align-items:start!important}
body.settings-mode .receipt-settings-form,body.settings-mode .receipt-preview-column{width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}
body.settings-mode .receipt-settings-form .form-grid{gap:10px 12px!important}
body.settings-mode .receipt-settings-form .settings-subtitle{margin:16px 0 8px!important;font-size:16px!important}
body.settings-mode .receipt-settings-form .check-grid{gap:7px 12px!important;padding:10px 12px!important}
body.settings-mode .receipt-settings-form .check-grid label{min-height:24px!important;font-size:13px!important}
body.settings-mode .receipt-settings-form input:not([type=checkbox]):not([type=range]):not([type=file]),body.settings-mode .receipt-settings-form select{height:38px!important;padding:7px 10px!important}
body.settings-mode .receipt-settings-form textarea{min-height:68px!important;padding:8px 10px!important}
body.settings-mode .receipt-tuning-grid{padding:10px!important;gap:6px!important}
body.settings-mode #androidPrinterPanel{margin-bottom:10px!important;padding:12px!important}
body.settings-mode .receipt-preview-column>.receipt-paper-shell{width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:auto!important}
@media(max-width:900px){body.settings-mode .receipt-settings-grid{grid-template-columns:1fr!important}}

/* v8.24.94 scanner session result + QR/Code128 label preview */
.audit-complete-card{display:flex;align-items:center;gap:14px;padding:22px;border:1px solid #cfe8d8;background:#f4fbf6;border-radius:14px}.audit-complete-card>div:last-child{display:flex;flex-direction:column;gap:5px}.audit-complete-card strong{font-size:20px}.audit-complete-card span{color:#647067}.audit-complete-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#15803d;color:#fff;font-size:24px;font-weight:800}.label-code128-preview{height:34px;width:88%;margin:4px auto 2px;background:repeating-linear-gradient(90deg,#111 0 2px,#fff 2px 3px,#111 3px 6px,#fff 6px 8px,#111 8px 9px,#fff 9px 12px)}

/* v8.24.97 库位扫码盘点：新手引导 + 实时明细 */
.location-audit-head-actions{display:flex;gap:8px;flex-wrap:wrap}.location-audit-intro{margin:12px 0 14px;padding:14px 16px;border:1px solid #dcefe3;background:#f4fbf6;border-radius:12px}.location-audit-intro.hidden{display:none}.location-audit-intro-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.location-audit-intro p{margin:10px 0 0;color:#4b5563;font-size:13px;line-height:1.6}.audit-intro-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.audit-intro-flow span{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.audit-intro-flow span b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#111;color:#fff;font-size:12px}.audit-intro-flow i{font-style:normal;color:#9ca3af}.audit-live-summary{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:7px 11px;border-radius:8px;background:#e9f8ee;color:#157347;font-weight:700}.audit-live-summary b{font-size:17px}.audit-detail-list{display:flex;flex-direction:column;gap:8px}.audit-detail-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid #ececec;border-radius:10px;background:#fff}.audit-product-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.audit-product-copy strong{font-size:14px}.audit-product-copy span,.audit-product-copy small{color:#666;white-space:normal;overflow-wrap:anywhere}.audit-stepper{display:flex;align-items:center;gap:8px;flex:0 0 auto}.audit-stepper button{width:34px;height:34px;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:21px;line-height:1}.audit-stepper b{min-width:28px;text-align:center;font-size:18px}.audit-complete-card{padding:18px;border:1px solid #bfe3ca;background:#f1fbf4;border-radius:12px;display:flex;gap:12px;align-items:flex-start}.audit-complete-card>div:last-child{display:flex;flex-direction:column;gap:5px}.audit-complete-mark{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#198754;color:#fff;font-weight:900}

/* v8.24.98 库位盘点实时商品明细 */
.audit-product-main{display:flex;align-items:center;gap:12px;min-width:0}.audit-product-thumb{width:54px;height:54px;object-fit:cover;border-radius:8px;background:#f2f2f2;flex:none}.audit-unresolved{border:1px solid #f1c7c7;background:#fff8f8}.audit-unresolved strong{color:#b42318}.audit-complete-card span{display:block;margin-top:4px}


/* v8.24.99 库位盘点分阶段使用指南 + 原生尺码选择 */
.location-audit-intro-head>div{display:flex;flex-direction:column;gap:3px}
.location-audit-intro-head small{color:#667085;font-size:12px;font-weight:500}
.audit-stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.audit-stage{border:1px solid #e5e7eb;background:#fff;border-radius:12px;padding:13px;min-width:0}
.audit-stage.current{border-color:#9dd7b1;background:#f4fbf6}
.audit-stage.done{border-color:#cae7d4;background:#f8fcf9}
.audit-stage.locked{opacity:.64;background:#f8f8f8}
.audit-stage em{font-style:normal;font-size:11px;font-weight:800;color:#198754}
.audit-stage h4{margin:5px 0 6px;font-size:15px}
.audit-stage p{margin:0!important;font-size:12px!important;line-height:1.55!important;color:#5f6670!important}
.audit-stage-flow{margin:9px 0;padding:7px 9px;border-radius:8px;background:#f3f4f6;font-size:12px;font-weight:700;color:#333}
.audit-stage-actions{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}
.audit-stage>small{display:block;color:#667085;font-size:11px;line-height:1.45}
.audit-first-setup{margin:16px 0;padding:18px;border:1px solid #cfe8d8;border-radius:12px;background:#f4fbf6}
.audit-first-setup strong{font-size:17px}.audit-first-setup p{color:#667085;line-height:1.6}
.audit-variant-card{padding:12px;border:1px solid #f0d58a;background:#fffaf0;border-radius:10px;display:flex;flex-direction:column;gap:6px}
.audit-variant-card>span,.audit-variant-card>small{color:#666;font-size:12px}
.audit-variant-options{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}
@media(max-width:860px){.audit-stage-grid{grid-template-columns:1fr}}


/* v8.25.03 库位盘点入口：只保留指南 / 打印 / 开始，不承载盘点数据 */
.location-audit-entry-modal .modal-content,
.location-audit-entry-modal{max-width:900px!important}
.audit-entry-head h3{margin:0 0 6px;font-size:22px}
.audit-entry-head p{margin:0;color:#73777f;font-size:13px}
.audit-guide-simple{margin-top:18px;border:1px solid #e4e6ea;border-radius:14px;background:#fff;padding:18px}
.audit-guide-title{display:flex;align-items:baseline;gap:12px;padding-bottom:13px;border-bottom:1px solid #eee}
.audit-guide-title strong{font-size:17px}.audit-guide-title span{color:#777;font-size:12px}
.audit-guide-steps{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.audit-guide-steps section{display:flex;gap:11px;padding:13px;border:1px solid #eceef1;border-radius:11px;background:#fafafa}
.audit-guide-steps section>b{width:25px;height:25px;border-radius:8px;background:#111;color:#fff;display:grid;place-items:center;flex:none;font-size:12px}
.audit-guide-steps section>div{min-width:0}.audit-guide-steps strong{display:block;font-size:14px;margin-bottom:4px}
.audit-guide-steps p{margin:0;color:#686c73;font-size:12px;line-height:1.55}
.audit-guide-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f3f8f4;color:#39704b;font-size:12px;line-height:1.55}
.audit-guide-state{margin-top:10px;color:#777;font-size:12px}
.audit-entry-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.audit-entry-actions .btn{min-width:140px}
@media(max-width:760px){.audit-guide-steps{grid-template-columns:1fr}}


.location-audit-entry-modal{position:relative!important}
.location-audit-entry-modal .audit-entry-close{
  position:absolute;right:18px;top:16px;z-index:8;width:38px;height:38px;border:0;border-radius:10px;
  background:#f2f3f5;color:#222;font-size:26px;font-weight:300;line-height:36px;text-align:center;cursor:pointer;
}
.location-audit-entry-modal .audit-entry-close:hover{background:#e8e9eb}
.location-audit-entry-modal .audit-entry-head{padding-right:56px}

/* v8.27.04 · SMS Register */
.login-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#f3f3f3;border-radius:12px;padding:4px;margin:20px 0 8px}.login-mode-tabs button{border:0;background:transparent;border-radius:9px;padding:9px 10px;color:#777;cursor:pointer}.login-mode-tabs button.active{background:#fff;color:#111;font-weight:650;box-shadow:0 1px 5px #0000000d}.sms-code-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px;align-items:end}.sms-code-row input{min-width:0}.sms-code-row .btn{height:43px;margin-top:7px;padding:0 10px;white-space:nowrap}.login-card #smsLoginBtn,.login-card #loginBtn{margin-top:14px}

/* v8.27.08 · 短信验证首次点击与身份透传修复 */
.register-verify-btn{width:100%;margin-top:8px}
.register-verified-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:6px 0 14px;padding:13px 14px;border:1px solid #d7e9dc;background:#f4faf6;border-radius:12px}
.register-verified-card>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.register-verified-card strong{font-size:15px;color:#111}
.register-verified-card span{font-size:12px;color:#348554}
.register-verified-card .btn{flex:0 0 auto}
.register-simple input:disabled{background:#f6f6f6;color:#999;cursor:not-allowed}

/* Final welcome: one message and one deliberate action. */
#onboardingLaunchDone{background:#f7f6f2;color:#171715;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;text-align:center;overflow:auto;gap:0}
#onboardingLaunchDone .chapter-brand{margin-bottom:64px;font-size:22px;letter-spacing:3px}
#onboardingLaunchDone h2{font-size:clamp(28px,4.2vw,64px);line-height:1.65;letter-spacing:.025em;font-weight:600;margin:0;animation:none}
#startNewChapter{margin-top:60px;min-height:54px;padding:15px 38px;border:0;border-radius:14px;background:#171715;color:#fff;font:inherit;font-size:18px;cursor:pointer}
#startNewChapter:disabled{opacity:.55;cursor:wait}
@media(max-height:600px){#onboardingLaunchDone .chapter-brand{margin-bottom:24px}#startNewChapter{margin-top:28px}}

/* v8.27.36 — 搬家中心统一登录模板：直连登录首屏固定，文件搬家加大为第二入口 */
.migration-file-fallback{
  width:100%;min-height:88px;margin-top:8px;padding:17px 18px;border:1px solid #e4e2dc;border-radius:14px;
  background:#f7f6f2;color:#171715;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;cursor:pointer;
}
.migration-file-fallback>span{display:flex;flex-direction:column;gap:4px;min-width:0}
.migration-file-fallback strong{font-size:15px;font-weight:750;line-height:1.25}
.migration-file-fallback small{font-size:12px;color:#8b8881;line-height:1.45;font-weight:400}
.migration-file-fallback>i{flex:0 0 auto;color:#777;font-style:normal}
.migration-file-fallback:hover{border-color:#cbc8c0;background:#f3f2ed}
.migration-file-mode-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:6px 0 18px}
.migration-file-mode-head>div>span{font-size:10px;letter-spacing:.14em;color:#999}
.migration-file-mode-head h2{font-size:24px;margin:5px 0 5px;letter-spacing:-.03em}
.migration-file-mode-head p{margin:0;color:#888;font-size:11px;line-height:1.55}
.migration-file-mode-head>button{height:38px;padding:0 14px;border:1px solid #dedbd4;border-radius:10px;background:#fff;color:#666;font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}
.migration-file-mode-head+.migration-drop{margin-top:0;height:260px}
@media(max-height:800px) and (min-width:851px){
  .migration-file-fallback{min-height:76px;padding:13px 15px}
  .migration-file-fallback strong{font-size:14px}
  .migration-file-fallback small{font-size:11px}
}

/* v8.27.37 — grouped debug polish */
/* Detail dialogs: keep them visually as dialogs, not full pages. */
.member-profile-modal{
  width:min(1000px,calc(100vw - 72px))!important;
  max-width:1000px!important;
  max-height:88vh!important;
}
#modalHost.viewport-modal-host .order-detail-modal{
  width:min(960px,calc(100vw - 72px))!important;
  max-width:960px!important;
}
.order-detail-shell{height:min(780px,calc(100dvh - 72px))!important}
@media(max-width:900px){
  .member-profile-modal{width:calc(100vw - 30px)!important;max-width:none!important}
  #modalHost.viewport-modal-host .order-detail-modal{width:calc(100vw - 30px)!important;max-width:none!important}
  .order-detail-shell{height:calc(100dvh - 30px)!important}
}

/* Shelf editor: controls stay inside the dialog and bins shrink with the available row. */
.warehouse-shelf-editor-modal{width:min(760px,92vw)!important;max-width:760px!important}
.warehouse-shelf-editor-modal .warehouse-editor-rack{
  padding:10px 18px 5px 64px!important;
  overflow:hidden!important;
}
.warehouse-shelf-editor-modal .warehouse-editor-upright.left{left:64px!important}
.warehouse-shelf-editor-modal .warehouse-editor-upright.right{right:18px!important}
.warehouse-shelf-editor-modal .warehouse-floor-config{
  grid-template-columns:minmax(0,1fr) 92px!important;
  gap:8px!important;
  padding:4px 8px 11px 0!important;
  min-width:0!important;
}
.warehouse-shelf-editor-modal .warehouse-floor-name{left:-54px!important;width:42px!important}
.warehouse-shelf-editor-modal .warehouse-floor-boxes{gap:5px!important;padding:4px 8px 8px!important;min-width:0!important}
.warehouse-shelf-editor-modal .warehouse-editor-bin{
  min-width:0!important;width:auto!important;padding:0 5px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  font-size:11px!important;
}
.warehouse-shelf-editor-modal .warehouse-floor-config:after{right:92px!important}
.warehouse-shelf-editor-modal .warehouse-floor-count-stepper{min-width:0!important;gap:5px!important;justify-content:flex-end!important}
.warehouse-shelf-editor-modal .warehouse-floor-count-stepper .btn,
.warehouse-shelf-editor-modal .warehouse-floor-count-stepper button{width:32px!important;min-width:32px!important;height:32px!important;padding:0!important}
.warehouse-shelf-editor-modal .warehouse-floor-count-stepper b{font-size:11px!important;white-space:nowrap!important}
.warehouse-shelf-editor-modal .warehouse-editor-ground{padding:2px 18px 0 64px!important}
@media(max-width:760px){
  .warehouse-shelf-editor-modal{width:94vw!important;max-width:94vw!important}
  .warehouse-shelf-editor-modal .warehouse-editor-rack{padding-left:52px!important;padding-right:8px!important;overflow:hidden!important}
  .warehouse-shelf-editor-modal .warehouse-editor-upright.left{left:52px!important}
  .warehouse-shelf-editor-modal .warehouse-editor-upright.right{right:8px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-config{grid-template-columns:minmax(0,1fr)!important;padding-right:0!important;padding-bottom:42px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-name{left:-46px!important;width:36px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-config:after{right:0!important;bottom:37px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-count-stepper{grid-column:1!important;justify-content:flex-end!important}
  .warehouse-shelf-editor-modal .warehouse-editor-ground{padding-left:52px!important;padding-right:8px!important}
}

/* Data: keep one continuous reading flow; cost management belongs to the toolbar. */
.data-range-toolbar{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important}
.data-range-toolbar .data-cost-entry{margin-left:auto!important;display:inline-flex!important;align-items:center!important;gap:10px!important;min-width:154px!important;justify-content:space-between!important}
.data-range-toolbar .data-cost-entry strong{font-size:12px;font-weight:650}
.data-summary-panel{margin-bottom:14px!important}
.data-sold-panel{margin-top:0!important}
.data-cost-manager-modal{width:min(900px,calc(100vw - 48px))!important;max-width:900px!important}
.data-cost-manager{display:flex;flex-direction:column;min-height:360px;max-height:82vh}
.data-cost-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.data-cost-manager-head h3{margin:4px 0 4px}.data-cost-manager-head p{margin:0}
.data-cost-manager-actions{display:flex;gap:8px;justify-content:flex-end;padding:14px 0 10px}
.data-cost-manager-table{overflow:auto;min-height:220px}
.operating-cost-table tfoot td{background:#fafafa;font-weight:650}
@media(max-width:760px){
  .data-range-toolbar{flex-wrap:wrap!important}.data-range-toolbar .data-cost-entry{margin-left:0!important;width:100%!important}
  .data-cost-manager-modal{width:94vw!important}.data-cost-manager-actions{justify-content:stretch;flex-wrap:wrap}.data-cost-manager-actions .btn{flex:1}
}

/* Lightweight attendance inside the shift page. */
.attendance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.attendance-head h2{margin:3px 0 0}.attendance-kicker{font-size:10px;letter-spacing:.16em;color:#999;text-transform:uppercase}
.attendance-status{border:1px solid #ececec;background:#fafafa;border-radius:12px;padding:15px;margin-bottom:10px;min-height:104px}
.attendance-live,.attendance-off{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.attendance-live>div,.attendance-off>div{display:grid;gap:5px}.attendance-live span,.attendance-off span,.attendance-month-mini span{font-size:11px;color:#8d8d8d}
.attendance-live strong,.attendance-off strong{font-size:16px}.attendance-elapsed{text-align:right}.attendance-elapsed strong{font-variant-numeric:tabular-nums;font-size:24px;letter-spacing:-.02em}
.attendance-month-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #ececec}
.attendance-month-mini>div{display:grid;gap:4px}.attendance-month-mini b{font-size:14px;font-weight:650}
.attendance-clock-btn{width:100%;min-height:44px}.attendance-clock-btn.danger{background:#fff4f2!important;color:#d74a3b!important;border-color:#f0c9c4!important}
.shift-section-divider{height:1px;background:#ececec;margin:20px 0}
.attendance-summary-sheet{width:min(920px,calc(100vw - 48px))!important;max-width:920px!important}
.attendance-summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.attendance-period-row{display:flex;align-items:end;gap:10px;padding:14px 0;border-bottom:1px solid #eee;flex-wrap:wrap}
.attendance-period-row label{display:grid;gap:5px;color:#777;font-size:11px}.attendance-period-row input{height:38px}
.attendance-summary-table-wrap{margin-top:12px}.attendance-summary-table td,.attendance-summary-table th{white-space:nowrap}
.attendance-record-groups{display:grid;gap:12px;margin-top:14px;max-height:360px;overflow:auto}
.attendance-record-groups section{border:1px solid #ececec;border-radius:10px;overflow:hidden}
.attendance-record-title{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:#fafafa;border-bottom:1px solid #eee}.attendance-record-title span{font-size:11px;color:#777}
.attendance-record-row{display:grid;grid-template-columns:1.1fr .8fr 22px .8fr 1fr;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid #f1f1f1;font-size:12px}.attendance-record-row:last-child{border-bottom:0}.attendance-record-row strong{text-align:right}
.attendance-error{padding:20px;color:#b44336;background:#fff5f3;border-radius:10px}
@media(max-width:760px){
  .attendance-head{flex-direction:column}.attendance-head .btn{align-self:flex-start}.attendance-month-mini{grid-template-columns:1fr}.attendance-elapsed{text-align:left}
  .attendance-summary-sheet{width:94vw!important}.attendance-period-row label{flex:1;min-width:130px}.attendance-record-row{grid-template-columns:1fr 1fr}.attendance-record-row span:nth-child(3){display:none}.attendance-record-row strong{grid-column:1/-1;text-align:left}
}

/* Final onboarding: thinner, quieter, more premium typography. */
#onboardingLaunchDone .chapter-brand{margin-bottom:56px!important;font-size:20px!important;letter-spacing:.14em!important;font-weight:420!important}
#onboardingLaunchDone .chapter-brand b{font-weight:560!important}
#onboardingLaunchDone .chapter-brand span{font-weight:300!important}
#onboardingLaunchDone h2{
  font-size:clamp(28px,3.35vw,52px)!important;
  line-height:1.78!important;
  letter-spacing:.055em!important;
  font-weight:420!important;
}
#startNewChapter{margin-top:52px!important;min-height:46px!important;padding:12px 30px!important;border-radius:12px!important;font-size:14px!important;font-weight:450!important;letter-spacing:.04em!important}


/* v8.27.39 — second debug batch */
/* Shelf editor: the physical right upright separates bins from editing controls. */
.warehouse-shelf-editor-modal .warehouse-editor-rack{padding-right:16px!important;overflow:visible!important}
.warehouse-shelf-editor-modal .warehouse-editor-upright.right{right:112px!important}
.warehouse-shelf-editor-modal .warehouse-floor-config{grid-template-columns:minmax(0,1fr) 100px!important;gap:14px!important;padding-right:0!important}
.warehouse-shelf-editor-modal .warehouse-floor-config:after{right:112px!important}
.warehouse-shelf-editor-modal .warehouse-floor-count-stepper{grid-column:2!important;justify-content:center!important;gap:6px!important;padding-left:4px!important}
.warehouse-shelf-editor-modal .warehouse-editor-ground{padding-right:112px!important}
@media(max-width:760px){
  .warehouse-shelf-editor-modal .warehouse-editor-rack{padding-right:8px!important;overflow:hidden!important}
  .warehouse-shelf-editor-modal .warehouse-editor-upright.right{right:8px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-config{grid-template-columns:minmax(0,1fr)!important;padding-bottom:42px!important}
  .warehouse-shelf-editor-modal .warehouse-floor-config:after{right:0!important}
  .warehouse-shelf-editor-modal .warehouse-floor-count-stepper{grid-column:1!important;justify-content:flex-end!important;padding-left:0!important}
  .warehouse-shelf-editor-modal .warehouse-editor-ground{padding-right:8px!important}
}

/* Data toolbar: equal-height controls, clearer operating-cost entry, visible refresh state. */
.data-range-toolbar .data-refresh-btn,.data-range-toolbar .data-cost-entry{height:42px!important;min-height:42px!important;border-radius:11px!important}
.data-refresh-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-width:94px!important}
.data-refresh-icon{display:inline-block;font-size:18px;line-height:1;transform-origin:50% 50%}
.data-refresh-btn.is-refreshing .data-refresh-icon{animation:xmbb-data-refresh-spin .78s linear infinite}
.data-refresh-btn.is-refreshing{color:#666;background:#f7f7f5}
@keyframes xmbb-data-refresh-spin{to{transform:rotate(360deg)}}
.data-range-toolbar .data-cost-entry{background:#171715!important;color:#fff!important;border-color:#171715!important;box-shadow:0 5px 16px rgba(0,0,0,.08)!important;padding:0 14px!important}
.data-range-toolbar .data-cost-entry:hover{background:#292825!important}
.data-range-toolbar .data-cost-entry strong{color:#fff!important;font-size:13px!important;font-weight:650!important}

/* Attendance summary: one clean filter row, summary first, expandable employee detail second. */
.attendance-summary-sheet{width:min(860px,calc(100vw - 56px))!important;max-width:860px!important}
.attendance-summary-head{padding-bottom:14px;border-bottom:1px solid #eee}
.attendance-summary-head h3{font-size:22px;margin:5px 0 5px}.attendance-summary-head p{margin:0;line-height:1.55}
.attendance-period-row{display:grid!important;grid-template-columns:minmax(170px,210px) 28px minmax(170px,210px) auto!important;align-items:end!important;gap:10px!important;padding:16px 0!important;flex-wrap:nowrap!important}
.attendance-period-row label{min-width:0!important}.attendance-period-row .xmbb-date-trigger,.attendance-period-row input{height:40px!important}
.attendance-period-sep{align-self:end;height:40px;display:grid;place-items:center;color:#777;font-size:12px}
.attendance-stat-btn{height:40px!important;min-width:76px!important}
.attendance-summary-table-wrap{margin-top:4px!important;border:1px solid #ececec;border-radius:12px;overflow:hidden}
.attendance-summary-table th{background:#fafafa}.attendance-summary-table tbody tr:last-child td{border-bottom:0}
.attendance-record-groups{gap:9px!important;margin-top:12px!important;max-height:340px!important}
.attendance-record-group{border:1px solid #e9e9e9;border-radius:12px;background:#fff;overflow:hidden}
.attendance-record-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fafafa}
.attendance-record-group>summary::-webkit-details-marker{display:none}
.attendance-record-group>summary>div{display:grid;gap:3px}.attendance-record-group>summary span{font-size:11px;color:#777}.attendance-record-group>summary>b{font-size:11px;font-weight:600;color:#777}
.attendance-record-list{border-top:1px solid #eee}
.attendance-record-row{grid-template-columns:92px minmax(150px,1fr) 20px minmax(150px,1fr) 90px!important;padding:10px 14px!important}
.attendance-record-row>span:not(.attendance-record-arrow){display:grid;gap:2px}.attendance-record-row small{font-size:9px;color:#aaa}.attendance-record-arrow{text-align:center;color:#aaa}.attendance-record-row strong.is-running{color:#a26700}
@media(max-width:760px){.attendance-summary-sheet{width:94vw!important}.attendance-period-row{grid-template-columns:1fr 20px 1fr!important}.attendance-stat-btn{grid-column:1/-1;width:100%}.attendance-record-row{grid-template-columns:1fr 1fr!important}.attendance-record-date{grid-column:1/-1}.attendance-record-arrow{display:none}.attendance-record-row strong{grid-column:1/-1!important}}

/* Terminal lock. */
.terminal-lock-settings-panel .terminal-lock-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:13px 14px;border:1px solid #ececec;border-radius:12px;background:#fafafa}
.terminal-lock-actions>div{display:grid;gap:3px}.terminal-lock-actions span{font-size:11px;color:#888}.terminal-lock-actions strong{font-size:14px}
.terminal-lock-overlay{position:fixed;inset:0;z-index:20000;background:#f3f2ee;display:grid;place-items:center;padding:24px;user-select:none}
.terminal-lock-card{width:min(390px,92vw);text-align:center;display:flex;flex-direction:column;align-items:center}
.terminal-lock-brand{display:flex;align-items:baseline;gap:8px;letter-spacing:.12em;margin-bottom:26px}.terminal-lock-brand b{font-size:20px;letter-spacing:.14em}.terminal-lock-brand span{font-size:18px;font-weight:300;letter-spacing:.1em}
.terminal-lock-clock{font-size:52px;line-height:1;font-weight:380;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.terminal-lock-store{margin-top:9px;color:#888;font-size:12px}
.terminal-lock-card h2{font-size:21px;margin:34px 0 6px;font-weight:560}.terminal-lock-card>p{margin:0;color:#8d8d8d;font-size:12px}
.terminal-lock-dots{display:flex;gap:15px;margin:23px 0 18px}.terminal-lock-dots i{width:11px;height:11px;border:1.5px solid #9a9a96;border-radius:50%;background:transparent}.terminal-lock-dots i.filled{background:#111;border-color:#111}
.terminal-lock-msg{min-height:18px;font-size:11px;color:#777;margin-bottom:8px}.terminal-lock-msg.error{color:#c24c3f}
.terminal-lock-keypad{width:270px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.terminal-lock-keypad button{height:58px;border:1px solid #deddd8;background:#fff;border-radius:14px;font:inherit;font-size:20px;cursor:pointer}.terminal-lock-keypad button:active{transform:scale(.97);background:#ecebe6}.terminal-lock-keypad button.subtle{font-size:13px;color:#777}
.terminal-lock-logout{margin-top:20px;border:0;background:transparent;color:#8b8a86;font-size:11px;cursor:pointer;padding:8px}
/* Lock screen theme is scoped to the overlay; the POS page stays light. */
.terminal-lock-theme{position:absolute;right:24px;top:20px;z-index:1;border:1px solid #d9d8d4;border-radius:10px;background:#fff;color:#242424;padding:9px 15px;font:inherit;font-size:13px;cursor:pointer}
.terminal-lock-overlay.dark{background:#141414;color:#f4f4f4}
.terminal-lock-overlay.dark .terminal-lock-store,.terminal-lock-overlay.dark .terminal-lock-card>p,.terminal-lock-overlay.dark .terminal-lock-msg,.terminal-lock-overlay.dark .terminal-lock-logout{color:#aaa}
.terminal-lock-overlay.dark .terminal-lock-dots i{border-color:#929292}
.terminal-lock-overlay.dark .terminal-lock-dots i.filled{background:#f4f4f4;border-color:#f4f4f4}
.terminal-lock-overlay.dark .terminal-lock-keypad button{background:#292929;border-color:#414141;color:#f4f4f4}
.terminal-lock-overlay.dark .terminal-lock-keypad button:active{background:#424242}
.terminal-lock-overlay.dark .terminal-lock-keypad button.subtle{color:#b8b8b8}
.terminal-lock-overlay.dark .terminal-lock-msg.error{color:#ff8d81}
.terminal-lock-overlay.dark .terminal-lock-theme{background:#292929;color:#f4f4f4;border-color:#414141}
body.terminal-locked{overflow:hidden!important}
.lock-pin-editor .lock-pin-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.lock-pin-editor label{font-size:12px;color:#777}.lock-pin-editor input{width:100%;margin-top:6px;border:1px solid #ddd;border-radius:10px;padding:11px 12px;font-size:18px;letter-spacing:.25em;text-align:center}
@media(max-width:600px){.terminal-lock-clock{font-size:44px}.terminal-lock-keypad{width:250px}.terminal-lock-keypad button{height:54px}.lock-pin-editor .lock-pin-fields{grid-template-columns:1fr}}

/* v8.27.39 — fast-open migration architecture */
.migration-fast-note{background:#f3f7f4;border:1px solid #e2eee6}
.migration-history-pending{font-size:16px!important;color:#8b6a24!important;font-weight:650!important}
.rjdj-resume-note{margin-top:0;margin-bottom:18px}
.rjdj-history-pill{position:fixed;right:22px;bottom:22px;z-index:15050;min-width:220px;border:1px solid #deded8;border-radius:14px;background:#11110f;color:#fff;box-shadow:0 14px 40px #0003;padding:11px 14px;display:grid;grid-template-columns:1fr auto;gap:2px 12px;text-align:left;cursor:pointer;font:inherit}
.rjdj-history-pill span{font-size:12px;font-weight:700}.rjdj-history-pill b{font-size:14px;align-self:center}.rjdj-history-pill small{grid-column:1/-1;color:#aaa;font-size:10px}.rjdj-history-pill.paused{background:#fff;color:#8a5c19;border-color:#e8d8bd}.rjdj-history-pill.paused small{color:#a68c68}.rjdj-history-pill.done{min-width:auto;display:flex;align-items:center;gap:7px;background:#eef8f1;color:#28784a;border-color:#d6eadc;cursor:default}.rjdj-history-pill.done .xmbb-ui-icon{width:16px;height:16px}
@media(max-width:850px){.rjdj-history-pill{right:14px;bottom:14px;min-width:200px}}

.migration-steps-v2{gap:14px;margin-top:36px}.migration-steps-v2 b{font-size:11px}

/* v8.29.0 门店运营工作台：只围绕客流、成交、留资、回访、素材与复盘。 */
.operations-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:20px 22px}.operations-hero h2{margin:4px 0 5px;font-size:22px}.operations-kicker{font-size:10px;letter-spacing:1.4px;color:#999;font-weight:700}.operations-hero-actions{display:flex;align-items:center;gap:10px}.operations-date{font-size:13px;color:#666;font-weight:650}.operations-sales-stats{grid-template-columns:repeat(5,minmax(130px,1fr))}.operations-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:14px;margin-bottom:14px}.operations-execution-panel,.operations-advice-panel{min-height:420px}.operations-completion{font-size:28px}.operations-check-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 14px}.operations-check{border:1px solid #e7e7e7;border-radius:13px;padding:13px;display:flex;align-items:flex-start;gap:10px;cursor:pointer;background:#fff}.operations-check input{width:18px;height:18px;margin-top:1px}.operations-check span{display:grid;gap:3px}.operations-check b{font-size:14px}.operations-check small{color:#888;font-size:11px}.operations-counter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.operations-counter{border:1px solid #e9e9e9;border-radius:14px;padding:14px;background:#fafafa}.operations-counter>span{display:block;color:#777;font-size:12px}.operations-counter>strong{display:block;font-size:30px;line-height:1;margin:10px 0 12px}.operations-counter>div{display:grid;grid-template-columns:42px 1fr;gap:7px}.operations-counter button{height:34px;border:1px solid #dedede;background:#fff;border-radius:9px;cursor:pointer;font-weight:700}.operations-counter button:last-child{background:#111;color:#fff;border-color:#111}.operations-counter small{display:block;color:#999;font-size:10px;margin-top:9px}.operations-note-label{display:block;margin-top:16px;color:#666;font-size:12px}.operations-note-label textarea{width:100%;margin-top:7px;border:1px solid #e3e3e3;border-radius:12px;padding:11px 12px;resize:vertical;outline:none;background:#fff;font:inherit}.operations-note-label textarea:focus{border-color:#999}.operations-note-actions{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.operations-note-actions .bad{color:#c23b32}.operations-advice-list{display:grid;gap:9px}.operations-advice-item{border:1px solid #ececec;border-radius:13px;padding:13px 14px;display:grid;gap:5px;background:#fafafa}.operations-advice-item b{font-size:13px}.operations-advice-item span{font-size:12px;line-height:1.6;color:#666}.operations-advice-item.is-focus{background:#111;color:#fff;border-color:#111}.operations-advice-item.is-focus span{color:#ddd}.operations-advice-item.is-warn{background:#fff8e8;border-color:#f1dfb5}.operations-advice-item.is-good{background:#eef8f1;border-color:#d8ecdd}.operations-funnel{display:flex;align-items:center;justify-content:space-between;gap:7px;border-top:1px solid #eee;margin-top:15px;padding-top:15px}.operations-funnel>div{flex:1;text-align:center;background:#f7f7f7;border-radius:11px;padding:10px 7px}.operations-funnel span{display:block;color:#888;font-size:10px}.operations-funnel strong{display:block;font-size:20px;margin-top:3px}.operations-funnel i{font-style:normal;color:#bbb}.operations-store-panel{margin-bottom:16px}.operations-store-table strong{white-space:nowrap}
@media(max-width:1250px){.operations-sales-stats{grid-template-columns:repeat(3,minmax(130px,1fr))}.operations-grid{grid-template-columns:1fr}.operations-counter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.operations-hero{align-items:flex-start;flex-direction:column}.operations-sales-stats{grid-template-columns:repeat(2,minmax(120px,1fr))}.operations-check-row,.operations-counter-grid{grid-template-columns:1fr}}
.operations-followup-panel{margin-bottom:14px}.operations-followup-hint{font-size:11px;color:#888}.operations-followup-list{display:grid}.operations-followup-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(140px,.7fr) minmax(240px,1.4fr) auto;gap:16px;align-items:center;padding:13px 4px;border-bottom:1px solid #f0f0f0}.operations-followup-row:last-child{border-bottom:0}.operations-followup-person,.operations-followup-history{display:grid;gap:4px}.operations-followup-person strong{font-size:14px}.operations-followup-person span,.operations-followup-history small{font-size:11px;color:#888}.operations-followup-history span{font-size:12px;font-weight:650}.operations-followup-reason{font-size:12px;color:#666;line-height:1.5}.operations-followup-actions{display:flex;gap:7px;justify-content:flex-end}.btn.small{padding:7px 10px;font-size:11px;border-radius:8px}
@media(max-width:1050px){.operations-followup-row{grid-template-columns:1fr 1fr}.operations-followup-reason{grid-column:1/2}.operations-followup-actions{grid-column:2/3}}

/* v8.31.2 · XMBB STAFF schedule + dynamic QR attendance */
.attendance-pos-guide{display:grid;gap:12px}.attendance-pos-guide>div:first-child{display:grid;gap:4px}.attendance-pos-guide>div:first-child span{font-size:11px;color:#999}.attendance-pos-guide>div:first-child strong{font-size:20px}.attendance-pos-guide p{margin:0;color:#666;line-height:1.65;font-size:12px}.attendance-pos-guide-actions{display:flex;gap:8px;flex-wrap:wrap}
.attendance-qr-sheet{width:min(500px,calc(100vw - 40px))!important;max-width:500px!important}.attendance-qr-modal{text-align:center;position:relative;padding:4px 6px 2px}.attendance-qr-modal h3{font-size:24px;margin:7px 0 5px}.attendance-qr-modal>.muted{margin:0 0 16px}.attendance-qr-frame{width:min(360px,78vw);height:min(360px,78vw);margin:0 auto;position:relative;border:1px solid #e7e7e7;border-radius:28px;background:#fff;padding:18px;display:grid;place-items:center;box-shadow:0 16px 50px rgba(0,0,0,.07)}.attendance-qr-frame canvas{width:100%!important;height:100%!important;display:block}.attendance-qr-loading{position:absolute;inset:18px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.94);font-size:12px;color:#777}.attendance-qr-loading.hidden{display:none}.attendance-qr-meta{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:15px 0 4px}.attendance-qr-meta strong{font-size:24px;font-variant-numeric:tabular-nums}.attendance-qr-meta span{font-size:11px;color:#999}.attendance-qr-note{font-size:11px;color:#888;line-height:1.65;margin:0 auto 14px;max-width:390px}
.staff-schedule-settings-panel{overflow:hidden}.schedule-admin-toolbar{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin:14px 0}.schedule-admin-toolbar>div{margin-right:auto;display:flex;align-items:baseline;gap:4px}.schedule-admin-toolbar>div strong{font-size:15px}.schedule-admin-board{border:1px solid #e9e9e9;border-radius:14px;overflow:hidden;background:#fff}.schedule-admin-scroll{overflow:auto}.schedule-admin-table{width:100%;border-collapse:collapse;min-width:920px}.schedule-admin-table th,.schedule-admin-table td{padding:8px;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;vertical-align:middle}.schedule-admin-table th:last-child,.schedule-admin-table td:last-child{border-right:0}.schedule-admin-table tr:last-child td{border-bottom:0}.schedule-admin-table th{background:#fafafa;font-weight:500;color:#777;font-size:10px}.schedule-admin-table th span,.schedule-admin-table th b{display:block}.schedule-admin-table th b{font-size:11px;color:#333;margin-top:3px}.schedule-admin-table .schedule-staff-col{position:sticky;left:0;z-index:2;background:#fff;text-align:left;min-width:148px}.schedule-admin-table thead .schedule-staff-col{background:#fafafa;z-index:3}.schedule-admin-table .schedule-staff-col strong,.schedule-admin-table .schedule-staff-col span{display:block}.schedule-admin-table .schedule-staff-col strong{font-size:12px}.schedule-admin-table .schedule-staff-col span{font-size:10px;color:#999;margin-top:3px}.schedule-cell{width:100%;min-height:58px;border:0;border-radius:10px;background:#f7f7f7;display:grid;place-items:center;align-content:center;gap:3px;cursor:pointer;padding:6px 4px;transition:.15s}.schedule-cell:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.06)}.schedule-cell strong{font-size:14px}.schedule-cell span{font-size:9px;color:#888;font-variant-numeric:tabular-nums}.schedule-cell.early{background:#f3f7ff}.schedule-cell.late{background:#f7f4ff}.schedule-cell.off{background:#f4f4f4;color:#999}.schedule-cell.custom{background:#f5f8f5}.schedule-cell.empty{background:#fbfbfb;color:#aaa;border:1px dashed #e3e3e3}.attendance-rule-settings{margin-top:18px;padding-top:18px;border-top:1px solid #eee}.attendance-rule-settings h3{margin:0 0 12px}.attendance-rule-settings .panel-actions{margin-top:12px}.schedule-editor h3{font-size:22px;margin:5px 0 4px}.schedule-editor>.muted{margin-top:0}.schedule-preset-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.schedule-editor-sheet{width:min(620px,calc(100vw - 44px))!important;max-width:620px!important}
@media(max-width:760px){.attendance-head .panel-actions{width:100%;display:flex;gap:8px;flex-wrap:wrap}.schedule-admin-toolbar{align-items:stretch;flex-wrap:wrap}.schedule-admin-toolbar>div{width:100%;order:-1}.attendance-qr-frame{border-radius:24px}}

/* v8.31.2 · attendance consistency + editable shift presets */
.schedule-template-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.schedule-template-head>div{display:grid;gap:3px}.schedule-template-head strong{font-size:13px}.schedule-template-head span{font-size:10px;color:#999}
.schedule-template-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.schedule-template-chip{border:1px solid #e5e5e5;background:#fff;border-radius:12px;padding:9px 12px;display:grid;gap:2px;text-align:left;cursor:pointer}.schedule-template-chip:hover{border-color:#bbb;background:#fafafa}.schedule-template-chip b{font-size:12px}.schedule-template-chip span{font-size:9px;color:#888;font-variant-numeric:tabular-nums}
.schedule-special-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px;padding-top:13px;border-top:1px solid #eee}.schedule-edit-grid input:disabled{background:#f5f5f5;color:#aaa}.attendance-rule-lock{border:1px solid #e7e7e7;border-radius:10px;padding:10px 12px;display:grid;gap:4px;background:#fafafa}.attendance-rule-lock span{font-size:10px;color:#888}.attendance-rule-lock strong{font-size:12px;font-weight:600}


/* v8.31.2 · compact staff schedule grid */
.schedule-admin-table th,.schedule-admin-table td{padding:5px 6px!important}
.schedule-admin-table th{height:42px!important}
.schedule-admin-table .schedule-staff-col{min-width:138px!important}
.schedule-admin-table .schedule-staff-col strong{font-size:12px;line-height:1.2}
.schedule-admin-table .schedule-staff-col span{font-size:9px;margin-top:2px;line-height:1.2}
.schedule-cell{height:46px!important;min-height:46px!important;padding:4px 3px!important;border-radius:9px!important;gap:1px!important}
.schedule-cell strong{font-size:13px!important;line-height:1.1}
.schedule-cell span{font-size:9px!important;line-height:1.1}
.schedule-cell.unassigned{background:#fbfbfb;color:#aaa;border:1px dashed #e3e3e3}
.attendance-rule-settings{margin-top:14px!important;padding-top:14px!important}
.schedule-admin-toolbar{margin:10px 0!important}

/* v8.31.3 employee public profile */
.staff-person-cell{display:flex;align-items:center;gap:10px;min-width:190px}.staff-avatar{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#111;color:#fff;font-weight:800;flex:0 0 auto}.staff-avatar.table{width:38px;height:38px;border-radius:12px}.staff-avatar.editor{width:78px;height:78px;border-radius:24px;font-size:28px}.staff-avatar img{width:100%;height:100%;object-fit:cover;display:block}.staff-avatar.fallback{background:#111;color:#fff}.staff-public-profile-editor{display:flex;align-items:center;gap:16px;margin:4px 0 18px;padding:14px;background:#f7f7f5;border:1px solid #ececea;border-radius:20px}.staff-avatar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0}.staff-avatar-actions strong,.staff-avatar-actions .item-meta{width:100%}.staff-avatar-actions input[type=file]{max-width:260px;font-size:12px}

/* v8.32 mobile order queue */
.mobile-orders-btn span{display:inline-flex;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#111;color:#fff;align-items:center;justify-content:center;font-size:11px;margin-left:4px}.mobile-order-queue{min-width:min(760px,86vw)}.mobile-order-queue-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 4px;border-bottom:1px solid var(--line,#e8e8e5)}.mobile-order-queue-card>div{display:grid;gap:4px}.mobile-order-queue-card strong{font-size:16px}.mobile-order-queue-card span,.mobile-order-queue-card small{color:#777}.mobile-order-queue-card>div:last-child{justify-items:end}.mobile-order-queue-card b{font-size:20px}.mobile-order-queue-actions{display:flex!important;grid-auto-flow:column;gap:8px;align-items:center}.mobile-order-queue-actions .btn{white-space:nowrap}

/* v8.32 mini program operations */
.mini-ops-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0 24px}.mini-ops-summary>div{padding:16px;border:1px solid #ececea;border-radius:16px;background:#fafaf8;display:grid;gap:5px}.mini-ops-summary span,.mini-ops-summary small{color:#888}.mini-ops-summary strong{font-size:15px}

/* v8.33 unified member */
.member-mini-badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;background:#eef7f1;color:#217a49;font-size:11px;font-weight:600;vertical-align:1px}.member-mini-badge.muted{background:#f2f2f2;color:#8a8a8a}

/* v8.33.1 customer mini-program tenant binding */
.mini-tenant-binding{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;margin:14px 0 18px;border:1px solid #e8e8e8;border-radius:16px;background:#fafafa}.mini-tenant-binding>div{display:grid;gap:3px}.mini-tenant-binding span{font-size:12px;color:#777}.mini-tenant-binding strong{font-size:16px}.mini-tenant-binding small{color:#888}


/* v8.35.0 platform public product master catalog */
.platform-catalog-modal,.platform-adopt-modal{padding:2px 2px 10px}.platform-catalog-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.platform-catalog-head h3{margin:4px 0 6px;font-size:26px}.platform-catalog-search{display:grid;grid-template-columns:1fr auto;gap:10px;margin:22px 0 10px}.platform-catalog-search input{height:48px;border:1px solid #d9d9d5;border-radius:14px;padding:0 16px;font-size:16px}.platform-catalog-stats{display:flex;gap:22px;flex-wrap:wrap;color:#777;font-size:13px;margin:8px 0 18px}.platform-catalog-stats b{color:#111}.platform-catalog-results{display:grid;gap:12px}.platform-catalog-card{display:grid;grid-template-columns:118px 1fr;gap:16px;padding:14px;border:1px solid #e3e3df;border-radius:18px;background:#fff}.platform-catalog-cover{width:118px;height:118px;border-radius:14px;background:#f4f4f1;overflow:hidden;display:grid;place-items:center;color:#999;font-size:12px}.platform-catalog-cover img{width:100%;height:100%;object-fit:cover}.platform-catalog-copy{display:flex;justify-content:space-between;gap:18px;align-items:center}.platform-catalog-copy strong{display:block;margin:7px 0 2px;font-size:15px}.platform-catalog-copy h4{font-size:20px;margin:0 0 4px}.platform-catalog-copy p,.platform-catalog-copy small{display:block;color:#888;margin:0 0 4px}.platform-catalog-empty{padding:32px;border:1px dashed #d8d8d4;border-radius:18px;text-align:center}.platform-catalog-empty strong,.platform-catalog-empty span{display:block;margin-bottom:6px}.platform-adopt-product{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#f6f6f3;border-radius:14px;margin:16px 0}.platform-adopt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:52vh;overflow:auto}.platform-adopt-grid label{display:grid;grid-template-columns:1fr auto;grid-template-areas:'title qty' 'code qty';gap:2px 12px;align-items:center;padding:12px 14px;border:1px solid #e4e4df;border-radius:14px}.platform-adopt-grid label span{grid-area:title;font-weight:700}.platform-adopt-grid label small{grid-area:code;color:#999}.platform-adopt-grid input{grid-area:qty;width:72px;height:40px;border:1px solid #ddd;border-radius:10px;text-align:center;font-size:18px}@media(max-width:760px){.platform-catalog-card{grid-template-columns:88px 1fr}.platform-catalog-cover{width:88px;height:88px}.platform-catalog-copy{align-items:flex-start;flex-direction:column}.platform-adopt-grid{grid-template-columns:1fr}}

/* v8.34 platform master catalog */
.platform-master-form{display:grid;gap:12px;margin-top:14px}.platform-master-form label{display:grid;gap:6px;font-size:12px;font-weight:700}.platform-master-form input,.platform-master-form textarea{border:1px solid #ddd;border-radius:12px;padding:11px 12px;background:#fff;font:inherit}.platform-master-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.platform-stock-mode{display:flex!important;align-items:center;gap:8px!important;font-size:12px;color:#666;margin:10px 0}.platform-catalog-stats .btn.small{margin-left:auto;padding:6px 10px;font-size:11px}

/* v8.35.0 · Product and inventory boundaries */
.merchant-products-hero{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;margin-bottom:14px}.merchant-products-hero h2{margin:5px 0 6px}.merchant-products-hero .btn{min-width:126px}.merchant-products-toolbar{display:flex;gap:10px}.merchant-products-toolbar input{flex:1;min-width:280px}.merchant-product-cell{display:flex;align-items:center;gap:12px}.merchant-product-cell img,.merchant-product-noimg{width:52px;height:52px;border-radius:10px;object-fit:cover;background:#f0f0ee}.merchant-product-noimg{display:grid;place-items:center;color:#aaa;font-size:10px}.merchant-product-cell small{display:block;color:#999;margin-top:4px}.merchant-add-result{margin-top:14px}.merchant-match-title{font-size:12px;color:#777;margin:8px 0}.merchant-match-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #eee}.merchant-match-card>img,.merchant-match-card>.merchant-product-noimg{width:72px;height:72px;border-radius:12px;object-fit:cover}.merchant-match-card strong,.merchant-match-card small{display:block}.merchant-match-card strong{margin-top:5px}.merchant-match-card small{color:#888;margin-top:5px}.merchant-unmatched{padding:28px;border:1px dashed #d9d9d5;border-radius:14px;text-align:center}.merchant-unmatched p{color:#888;line-height:1.7}.merchant-manual-form{display:grid;gap:12px;padding-top:12px}.merchant-manual-form label{display:grid;gap:6px;font-size:12px;color:#666}.merchant-manual-form input{border:1px solid #ddd;border-radius:10px;padding:11px 12px}.merchant-manual-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(max-width:900px){.merchant-products-hero{align-items:flex-start;gap:12px;flex-direction:column}.merchant-manual-grid{grid-template-columns:1fr}.merchant-match-card{grid-template-columns:58px 1fr}.merchant-match-card .btn{grid-column:1/-1}.merchant-match-card>img,.merchant-match-card>.merchant-product-noimg{width:58px;height:58px}}


/* v8.35.2 · PLATFORM official image matching */
.official-image-section{grid-column:1/-1}
.official-image-loading,.official-image-empty{min-height:86px;border:1px dashed #deded9;border-radius:14px;padding:18px;background:#fafaf8;color:#888;display:flex;align-items:center}
.official-image-empty>div{display:flex;flex-direction:column;gap:5px}.official-image-empty strong{color:#222}.official-image-empty span{font-size:13px}
.official-image-match-card{border:1px solid #e7e7e2;border-radius:16px;padding:16px;background:#fafaf8;display:grid;gap:14px}
.official-match-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.official-match-top>div:first-child{display:grid;gap:5px}.official-match-top strong{font-size:15px}.official-match-top small{color:#8a8a8a}.official-match-actions{display:flex;gap:8px;flex-wrap:wrap}
.official-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.official-compare>div>span{display:block;font-size:12px;color:#888;margin:0 0 6px}.official-compare-image{height:200px;border-radius:14px;overflow:hidden;background:#f0f0ed;display:grid;place-items:center}.official-compare-image img{width:100%;height:100%;object-fit:contain;background:#fff}.official-compare-image em{font-style:normal;color:#aaa}
.official-thumb-rail{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.official-thumb-rail::-webkit-scrollbar{display:none}.official-image-thumb{width:70px;height:70px;flex:0 0 70px;border:2px solid transparent;border-radius:10px;padding:0;background:#fff;overflow:hidden;cursor:pointer}.official-image-thumb.active{border-color:#111}.official-image-thumb img{width:100%;height:100%;object-fit:cover}
.official-match-reasons{margin:0;padding-left:18px;color:#666;font-size:12px;display:flex;flex-wrap:wrap;gap:6px 24px}.official-image-warning{padding:10px 12px;border-radius:10px;background:#fff6e6;color:#9a6300;font-size:12px}
.official-batch-modal .modal-card{width:min(1500px,94vw)!important;max-width:1500px!important;height:min(880px,92vh)!important;display:flex!important;flex-direction:column!important}.official-batch-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.official-batch-head h3{margin:2px 0 6px}.official-batch-head p{margin:0;color:#888}.official-batch-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}.official-batch-stats button{border:1px solid #e7e7e2;background:#fff;border-radius:14px;padding:12px 14px;text-align:left;cursor:pointer}.official-batch-stats span{display:block;color:#999;font-size:12px}.official-batch-stats strong{display:block;font-size:24px;margin-top:3px}.official-batch-toolbar{display:flex;gap:8px;justify-content:flex-end;padding:10px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.official-batch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px 2px 24px;overflow:auto}.official-batch-card{border:1px solid #e8e8e3;border-radius:16px;padding:10px;background:#fff;display:grid;gap:5px;position:relative;cursor:pointer}.official-batch-card>input{position:absolute;top:14px;left:14px;z-index:3;width:18px;height:18px}.official-batch-card.unmatched{opacity:.64}.official-batch-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px}.official-batch-pair>div{position:relative;height:150px;border-radius:11px;overflow:hidden;background:#f3f3f0;display:grid;place-items:center}.official-batch-pair img{width:100%;height:100%;object-fit:cover}.official-batch-pair small{position:absolute;bottom:5px;left:5px;padding:3px 6px;border-radius:6px;background:rgba(0,0,0,.62);color:#fff;font-size:10px}.official-batch-card strong{font-size:14px;margin-top:3px}.official-batch-card b{font-size:12px}.official-batch-card>span{font-size:12px;color:#777}.official-batch-card .status{justify-self:start}.official-batch-card p{margin:0;font-size:11px;line-height:1.45;color:#999;min-height:32px}.official-batch-loading{padding:34px;display:grid;justify-items:center;gap:10px;text-align:center}.official-batch-loading h3{margin:0}.official-batch-loading p{margin:0;color:#888}.official-batch-progress{width:min(520px,72vw);height:5px;border-radius:999px;background:#ecece8;overflow:hidden;margin-top:4px}.official-batch-progress span{display:block;height:100%;width:0;background:#111;border-radius:inherit;transition:width .2s ease}
@media(min-width:1700px){.official-batch-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1100px){.official-batch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.official-batch-stats{grid-template-columns:repeat(3,1fr)}.official-compare-image{height:160px}}@media(max-width:820px){.official-batch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.official-batch-stats{grid-template-columns:repeat(2,1fr)}.official-compare{grid-template-columns:1fr}}

/* v8.35.2 · official image CloudBase URL resolver + graceful fallback */
.official-image-fallback{width:100%;height:100%;min-height:70px;display:grid;place-items:center;text-align:center;padding:10px;box-sizing:border-box;color:#aaa;font-size:12px;background:#f4f4f1}
.official-compare-image>.official-image-fallback{min-height:200px}
.official-batch-pair .official-image-fallback{min-height:150px}
.official-image-thumb .official-image-fallback{min-height:66px;font-size:10px;padding:4px}

/* v8.36.1 Mobile POS: same business system, phone-first navigation */
.mobile-pos-nav,.mobile-more-sheet{display:none}@media(max-width:760px){body{padding-bottom:72px}.sidebar{display:none!important}.app-shell,.main-shell,.content,.main-content{margin-left:0!important;width:100%!important;max-width:none!important}.topbar,.header{padding-left:14px!important;padding-right:14px!important}.page{padding:12px!important}.mobile-pos-nav{position:fixed;z-index:850;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom));padding:6px 8px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid #e5e5e5}.mobile-pos-nav button{border:0;background:transparent;font-size:12px;font-weight:700;color:#777}.mobile-pos-nav button.active{color:#111}.mobile-more-sheet:not(.hidden){display:block;position:fixed;z-index:900;inset:0;background:rgba(0,0,0,.35)}.mobile-more-card{position:absolute;left:12px;right:12px;bottom:calc(74px + env(safe-area-inset-bottom));background:#fff;border-radius:20px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-more-card button{height:48px;border:0;border-radius:13px;background:#f3f3f1;font-weight:800}.mobile-more-card #mobileMoreClose{grid-column:1/-1;background:#111;color:#fff}.table-wrap{overflow:auto}.cards{grid-template-columns:1fr 1fr!important}.inventory-toolbar,.toolbar,.filter-row{flex-wrap:wrap}.modal-card,.dialog-card{width:calc(100vw - 20px)!important;max-height:90vh!important}.cashier-layout{grid-template-columns:1fr!important}.cashier-side{position:static!important}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* v1.0.15 migration review flow */
.migration-main{position:relative;}
#migrationBody{min-height:0;}
.migration-review-page{padding-bottom:96px;}
.migration-footer-sticky{position:sticky;bottom:0;z-index:30;margin:18px -4px 0;padding:16px 4px 6px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 28%,#fff);border-top:1px solid rgba(15,15,15,.06);}
.migration-footer-sticky button:not(.secondary){min-width:230px;}
.migration-review-pass{margin:16px 0;}
.rjdj-health .migration-metric-note{display:block;margin-top:4px;font-size:11px;font-weight:500;color:#999;}
@media (max-width:900px){.migration-footer-sticky{padding-bottom:10px}.migration-footer-sticky button{flex:1;min-width:0!important}}

/* v1.0.23 R4 migration form isolation + runtime diagnostics */
.rjdj-auto-login{position:relative;z-index:2;pointer-events:auto!important}.rjdj-auto-login label,.rjdj-auto-login label>span,.rjdj-auto-login input{position:relative;z-index:3;pointer-events:auto!important}.rjdj-auto-login input{user-select:text!important;-webkit-user-select:text!important}.migration-runtime-badge{display:inline-flex;align-items:center;min-height:24px;margin:2px 0 6px;padding:0 9px;border-radius:999px;background:#f1f0eb;color:#777;font-size:10px;font-weight:600;letter-spacing:.01em}


/* v1.0.23 R4: migration forms own keyboard focus; scanner sink is completely dormant */
body.migration-input-mode #scannerSink,body.scanner-suspended #scannerSink{display:none!important;visibility:hidden!important;pointer-events:none!important}
body.migration-input-mode .migration-center{pointer-events:auto!important}
body.migration-input-mode .rjdj-auto-login input[data-migration-credential="1"]{pointer-events:auto!important;user-select:text!important;-webkit-user-select:text!important;caret-color:#111!important;cursor:text!important;touch-action:auto!important}
body.migration-input-mode .rjdj-auto-login input[data-migration-credential="1"]:focus{border-color:#111!important;box-shadow:0 0 0 2px rgba(17,17,17,.06)!important}

/* v1.0.23-R6 · 97% 提交恢复修复 */
.simple-close-store{margin-top:18px;padding:16px 18px;border:1px solid #e6e1d8;border-radius:14px;background:#faf8f3;display:flex;gap:12px;align-items:flex-start}.simple-close-store .xmbb-ui-icon{width:18px;height:18px;flex:0 0 auto;margin-top:2px}.simple-close-store div{display:grid;gap:4px}.simple-close-store b{font-size:13px}.simple-close-store span{font-size:11px;line-height:1.65;color:#777}.simple-range-card{margin-top:18px;padding:20px;border:1px solid #e7e5df;border-radius:16px;background:#fff}.simple-range-card>b{font-size:14px}.simple-range-card>small{display:block;margin-top:12px;color:#949189;font-size:10px;line-height:1.6}.simple-range-options{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.simple-range-options label{position:relative;cursor:pointer}.simple-range-options input{position:absolute;opacity:0;pointer-events:none}.simple-range-options span{height:38px;min-width:96px;padding:0 13px;border:1px solid #dedbd4;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:11px;background:#faf9f6}.simple-range-options input:checked+span{background:#171715;color:#fff;border-color:#171715}.simple-range-options em{font-size:8px;font-style:normal;margin-left:5px;opacity:.65}.simple-progress{margin-top:22px;padding:20px;border:1px solid #e7e5df;border-radius:16px;background:#fff}.simple-progress-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.simple-progress-head b{font-size:14px}.simple-progress-head strong{font-size:16px}.simple-progress-track{height:8px;margin-top:14px;border-radius:999px;background:#efeee9;overflow:hidden}.simple-progress-track i{display:block;height:100%;border-radius:inherit;background:#171715;transition:width .35s ease}.simple-progress small{display:block;margin-top:10px;color:#888;font-size:10px}.simple-review-grid{grid-template-columns:repeat(3,1fr)}.simple-image-note{margin-top:16px;padding:16px 18px;border-radius:14px;background:#f4f7f3;border:1px solid #dfe8dc}.simple-image-note b{font-size:12px}.simple-image-note p{margin:6px 0 0;color:#687565;font-size:11px;line-height:1.7}.simple-migration-pill{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:15080;border:1px solid #ddd9d0;border-radius:999px;background:#11110f;color:#fff;box-shadow:0 8px 28px #0002;height:36px;padding:0 14px;display:flex;align-items:center;gap:8px;font:inherit;cursor:pointer;white-space:nowrap}.simple-migration-pill>i{width:7px;height:7px;border-radius:50%;background:#62d785;box-shadow:0 0 0 4px #62d78522}.simple-migration-pill span{font-size:11px;font-weight:700}.simple-migration-pill b{font-size:10px;color:#cfcfc9;font-weight:500}.simple-migration-pill small{font-size:9px;color:#806d49}.simple-migration-pill.done{background:#eef8f1;color:#28784a;border-color:#d4e8da;cursor:default}.simple-migration-pill.failed{background:#fff8eb;color:#8a5c19;border-color:#ead9b7}.rjdj-history-pill{top:12px;right:22px;bottom:auto;min-width:200px;padding:8px 12px;border-radius:999px}.rjdj-history-pill small{display:none}@media(max-width:850px){.simple-review-grid{grid-template-columns:1fr 1fr}.simple-range-options span{min-width:82px}.simple-migration-pill{top:8px;max-width:calc(100vw - 24px);overflow:hidden}.simple-migration-pill b{overflow:hidden;text-overflow:ellipsis}.rjdj-history-pill{top:8px;right:8px;bottom:auto}}

/* v1.0.33 · lightweight physical-store verification */
.onboarding-field-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.onboarding-locate-btn{border:0;background:#f2f3f5;border-radius:999px;padding:7px 12px;font-size:12px;color:#222;cursor:pointer}.onboarding-locate-btn:disabled{opacity:.55;cursor:wait}.onboarding-field input::placeholder{color:#a7a9ad;opacity:1}.register-role-box{margin:14px 0 16px;padding:14px;border:1px solid #e8e8e8;border-radius:16px;background:#fafafa}.register-role-box>strong{display:block;margin-bottom:10px;font-size:13px}.register-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.register-role-grid button,.register-employee-link{border:1px solid #dedede;background:#fff;border-radius:12px;padding:11px 12px;text-align:left;cursor:pointer;font-size:13px}.register-role-grid button.selected{border-color:#111;background:#111;color:#fff}.register-employee-link{margin-top:8px;width:100%;color:#666}.register-role-box small{display:block;margin-top:8px;color:#888;line-height:1.5}.store-verify-desktop{text-align:center;max-width:480px;margin:0 auto}.store-verify-eyebrow,.store-verify-phone-kicker{font-size:11px;letter-spacing:.14em;color:#999;text-transform:uppercase}.store-verify-desktop h3{font-size:24px;margin:8px 0}.store-verify-desktop>p{color:#666;line-height:1.65}.store-verify-qr{width:240px;height:240px;margin:20px auto;padding:12px;border:1px solid #ededed;border-radius:22px;background:#fff;display:flex;align-items:center;justify-content:center}.store-verify-qr canvas{width:216px!important;height:216px!important}.store-verify-warning{margin:10px 0;padding:10px 12px;border-radius:10px;background:#fff7e8;color:#9b6514;font-size:12px;line-height:1.55;text-align:left}.store-verify-poll{margin:12px 0 2px;font-size:13px;color:#555}.store-verify-mobile{position:fixed;z-index:1000000;inset:0;background:#f4f5f7;overflow:auto;padding:18px 14px 48px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#111}.store-verify-phone-card{max-width:520px;margin:0 auto;background:#fff;border-radius:24px;padding:24px 20px;box-shadow:0 12px 40px rgba(0,0,0,.06)}.store-verify-phone-brand{font-size:18px;font-weight:800;letter-spacing:.08em}.store-verify-phone-card h2{font-size:25px;line-height:1.28;margin:8px 0 8px}.store-verify-phone-card .muted{color:#777;line-height:1.55}.store-verify-block{margin-top:22px}.store-verify-block>strong,.store-verify-row-title>strong{display:block;font-size:14px;margin-bottom:10px}.store-role-pills{display:grid;grid-template-columns:1fr;gap:8px}.store-role-pills button{border:1px solid #dedede;border-radius:13px;background:#fff;padding:12px;text-align:left;font-size:14px}.store-role-pills button.active{background:#111;color:#fff;border-color:#111}.store-verify-check{display:flex;gap:9px;align-items:flex-start;font-size:14px;line-height:1.5}.store-verify-block small{display:block;color:#929292;font-size:12px;line-height:1.5;margin-top:7px}.store-verify-row-title{display:flex;align-items:center;justify-content:space-between}.store-verify-locate{border:0;border-radius:999px;background:#f1f2f4;padding:7px 11px;font-size:12px}.store-verify-region{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.store-verify-region select,.store-verify-block input[type=text],#svAddress{width:100%;box-sizing:border-box;border:1px solid #dedede;border-radius:12px;padding:12px;background:#fff;font-size:15px;outline:none}.store-photo-picker{display:block;border:1px dashed #bbb;border-radius:14px;padding:16px;text-align:center;cursor:pointer;background:#fafafa}.store-photo-picker input{display:none}.store-photo-preview{display:block;margin-top:10px;width:100%;max-height:280px;object-fit:cover;border-radius:14px}.store-verify-submit{width:100%;margin-top:22px;border:0;border-radius:14px;background:#111;color:#fff;padding:15px;font-weight:700;font-size:15px}.store-verify-submit:disabled{opacity:.6}.store-verify-privacy{text-align:center;color:#aaa;font-size:11px;margin:12px 0 0}.store-verify-done{text-align:center;padding-top:64px;padding-bottom:64px}.store-verify-checkmark{margin:26px auto 10px;width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#111;color:#fff;font-size:30px}@media(max-width:560px){.register-role-grid{grid-template-columns:1fr}.store-verify-phone-card{border-radius:20px;padding:22px 16px}}

.register-store-check{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font-size:13px;line-height:1.45}.register-store-check input{margin-top:2px}


/* v1.0.34 · Auth viewport layout / registration gate / historical discount */
.login-view{
  min-height:100dvh!important;
  height:auto!important;
  padding:clamp(14px,3vh,28px)!important;
  overflow:auto!important;
}
.login-card{
  width:min(430px,100%)!important;
  max-width:430px!important;
  margin:auto!important;
  padding:clamp(26px,4vh,42px)!important;
}
#modalHost .modal-backdrop{
  overflow:auto!important;
  padding:12px!important;
}
#modalHost .modal.register-account-modal,
#modalHost .modal.password-reset-modal{
  padding:0!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  width:min(640px,calc(100vw - 24px))!important;
  max-width:640px!important;
  max-height:calc(100dvh - 24px)!important;
  box-sizing:border-box!important;
}
#modalHost .modal.password-reset-modal{
  width:min(590px,calc(100vw - 24px))!important;
  max-width:590px!important;
}
#modalHost .register-account-modal .register-simple,
#modalHost .password-reset-modal .register-simple{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  max-height:calc(100dvh - 24px)!important;
  margin:0!important;
}
#modalHost .register-account-modal .auth-form-scroll,
#modalHost .password-reset-modal .auth-form-scroll{
  min-height:0!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  padding:24px 28px 18px!important;
}
#modalHost .register-account-modal .auth-form-footer,
#modalHost .password-reset-modal .auth-form-footer{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(120px,.72fr) minmax(180px,1.28fr)!important;
  gap:10px!important;
  align-items:center!important;
  margin:0!important;
  padding:14px 28px 16px!important;
  border-top:1px solid #ececec!important;
  background:#fff!important;
  box-shadow:0 -8px 24px rgba(0,0,0,.025)!important;
}
#modalHost .auth-form-footer .btn{
  width:100%!important;
  min-height:44px!important;
  margin:0!important;
}
#modalHost .register-account-modal .register-simple>label,
#modalHost .password-reset-modal .register-simple>label{margin-top:0!important}
#modalHost .register-simple .auth-form-scroll>label,
#modalHost .register-simple .register-password-grid>label{
  display:block!important;
  margin-top:13px!important;
  font-size:13px!important;
}
#modalHost .register-simple .auth-form-scroll>label input,
#modalHost .register-simple .register-password-grid>label input{
  width:100%!important;
  margin-top:7px!important;
  box-sizing:border-box!important;
}
#modalHost .register-simple h3{
  margin:0 0 8px!important;
  font-size:clamp(25px,3vw,29px)!important;
}
#modalHost .register-simple .muted{
  margin:0!important;
  line-height:1.5!important;
  font-size:13px!important;
}
.register-password-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  margin-top:2px!important;
}
.register-role-box{
  margin:14px 0 12px!important;
  padding:14px!important;
}
.register-step-heading{
  display:flex!important;
  align-items:flex-start!important;
  gap:10px!important;
  margin:0 0 10px!important;
}
.register-step-heading>span{
  flex:0 0 26px!important;
  width:26px!important;
  height:26px!important;
  border-radius:8px!important;
  display:grid!important;
  place-items:center!important;
  background:#111!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
}
.register-step-heading>div{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:2px!important;
}
.register-step-heading strong{font-size:13px!important;line-height:1.3!important}
.register-step-heading small{font-size:11px!important;color:#929292!important;line-height:1.4!important}
.register-store-step{
  margin-top:13px!important;
  padding-top:13px!important;
  border-top:1px solid #ececec!important;
}
.register-role-grid button,
.register-employee-link{
  min-height:44px!important;
}
.register-employee-link.selected{
  border-color:#bd3b3b!important;
  background:#fff3f3!important;
  color:#a92c2c!important;
}
.register-store-check{
  width:100%!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:9px!important;
  margin-top:8px!important;
}
#modalHost .register-store-check input{
  width:16px!important;
  height:16px!important;
  flex:0 0 16px!important;
  margin:2px 0 0!important;
}
.register-phone-gate{
  margin-top:12px!important;
  padding:14px!important;
  border:1px solid #e6e6e6!important;
  border-radius:16px!important;
  background:#fff!important;
  transition:opacity .18s ease,background .18s ease!important;
}
.register-phone-gate.is-locked{
  background:#f7f7f7!important;
  opacity:.62!important;
}
.register-phone-gate.is-locked .register-step-heading>span{background:#a7a7a7!important}
.register-phone-gate label{
  display:block!important;
  margin-top:11px!important;
  font-size:13px!important;
}
.register-phone-gate label input{
  width:100%!important;
  margin-top:7px!important;
}
.register-phone-gate input:disabled,
.register-phone-gate button:disabled{
  cursor:not-allowed!important;
}
.register-password-grid input:disabled{
  background:#f5f5f5!important;
  color:#aaa!important;
}
.order-paid-amount{
  font-variant-numeric:tabular-nums!important;
}
.order-approx-discount{
  display:block!important;
  margin-top:3px!important;
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:500!important;
  color:#8d8d8d!important;
  white-space:nowrap!important;
}
.order-approx-discount.summary{
  margin-top:4px!important;
  text-align:right!important;
  color:#777!important;
}
.onboarding-view{
  min-height:100dvh!important;
  padding:12px!important;
}
.onboarding-shell{
  height:min(720px,calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
}
.onboarding-main{min-height:0!important}
.onboarding-body{min-height:0!important}
@media(max-width:620px){
  #modalHost .modal.register-account-modal,
  #modalHost .modal.password-reset-modal{
    width:min(100%,calc(100vw - 16px))!important;
    max-height:calc(100dvh - 16px)!important;
    border-radius:16px!important;
  }
  #modalHost .register-account-modal .auth-form-scroll,
  #modalHost .password-reset-modal .auth-form-scroll{padding:20px 18px 14px!important}
  #modalHost .register-account-modal .auth-form-footer,
  #modalHost .password-reset-modal .auth-form-footer{
    grid-template-columns:1fr 1.35fr!important;
    padding:12px 18px 14px!important;
  }
  .register-role-grid,.register-password-grid{grid-template-columns:1fr!important}
}
@media(max-height:760px){
  #modalHost .register-account-modal .auth-form-scroll,
  #modalHost .password-reset-modal .auth-form-scroll{padding-top:18px!important;padding-bottom:12px!important}
  #modalHost .register-simple .register-eyebrow{margin-bottom:7px!important}
  #modalHost .register-simple h3{font-size:24px!important;margin-bottom:6px!important}
  .register-role-box{margin-top:10px!important;margin-bottom:8px!important;padding:11px!important}
  .register-role-grid button,.register-employee-link{min-height:39px!important;padding-top:8px!important;padding-bottom:8px!important}
  .register-store-step{margin-top:10px!important;padding-top:10px!important}
  .register-phone-gate{margin-top:8px!important;padding:11px!important}
  #modalHost .register-account-modal .auth-form-footer,
  #modalHost .password-reset-modal .auth-form-footer{padding-top:10px!important;padding-bottom:10px!important}
}


/* v1.0.39 Auth Clean Layout: compact, one-screen registration/reset */
#modalHost .modal.register-account-modal{
  width:min(1040px,calc(100vw - 40px))!important;
  max-width:1040px!important;
  max-height:calc(100dvh - 40px)!important;
}
#modalHost .modal.password-reset-modal{
  width:min(820px,calc(100vw - 40px))!important;
  max-width:820px!important;
  max-height:calc(100dvh - 40px)!important;
}
#modalHost .register-account-modal .register-simple,
#modalHost .password-reset-modal .register-simple{
  max-height:none!important;
}
#modalHost .register-account-modal .auth-form-scroll,
#modalHost .password-reset-modal .auth-form-scroll{
  overflow:visible!important;
  overscroll-behavior:auto!important;
  padding:30px 34px 24px!important;
}
#modalHost .register-account-modal .auth-form-footer,
#modalHost .password-reset-modal .auth-form-footer{
  grid-template-columns:auto minmax(220px,320px)!important;
  justify-content:space-between!important;
  padding:14px 34px 18px!important;
  box-shadow:none!important;
}
#modalHost .auth-form-footer .auth-back-btn{
  width:auto!important;
  min-width:104px!important;
  padding-left:18px!important;
  padding-right:18px!important;
  background:#fff!important;
}
#modalHost .auth-form-footer .btn.primary{
  min-width:240px!important;
}
.auth-title-row{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:24px!important;
  margin-bottom:22px!important;
}
.auth-title-row .muted{margin-top:6px!important}
.auth-security-note{
  flex:0 0 auto!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  background:#f4f4f4!important;
  color:#777!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.register-two-column{
  display:grid!important;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important;
  gap:34px!important;
  align-items:start!important;
}
.register-side{min-width:0!important}
.register-side-right{
  padding-left:34px!important;
  border-left:1px solid #ececec!important;
}
.register-section-title{
  margin:0 0 11px!important;
  color:#151515!important;
  font-size:14px!important;
  font-weight:700!important;
  letter-spacing:-.01em!important;
}
.register-store-title{margin-top:25px!important}
.register-role-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
}
.register-role-grid button,
.register-employee-link{
  min-height:46px!important;
  border-radius:12px!important;
}
.register-employee-link{
  width:100%!important;
  margin-top:9px!important;
}
.register-store-check{
  min-height:42px!important;
  align-items:center!important;
  margin:0!important;
  padding:10px 0!important;
  font-size:13px!important;
}
#registerRoleHint{
  display:block!important;
  margin-top:3px!important;
  color:#9a9a9a!important;
  font-size:11px!important;
}
.register-phone-gate{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.register-phone-gate.is-locked{
  background:transparent!important;
  opacity:.46!important;
}
.register-phone-gate>.register-section-title{display:inline-block!important;margin-right:10px!important}
#registerEligibilityHint{
  display:inline-block!important;
  color:#999!important;
  font-size:11px!important;
}
.register-phone-gate label{
  margin-top:10px!important;
  font-size:13px!important;
}
.register-phone-gate label input{
  margin-top:6px!important;
  height:44px!important;
}
.register-phone-gate #regPhone{
  width:min(100%,330px)!important;
}
#modalHost .register-account-modal .sms-code-row{
  grid-template-columns:minmax(160px,220px) 118px!important;
  justify-content:start!important;
}
#modalHost .register-account-modal .register-verify-btn{
  width:338px!important;
  max-width:100%!important;
  min-height:42px!important;
  margin-top:10px!important;
}
#modalHost .register-account-modal .register-password-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:16px!important;
}
#modalHost .register-account-modal .register-password-grid input{
  height:44px!important;
}
.register-verified-card{margin-top:10px!important}

/* Reset password uses the same visual language, without a long form. */
#modalHost .password-reset-modal .auth-title-row{margin-bottom:18px!important}
.reset-password-layout{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)!important;
  gap:14px!important;
  align-items:end!important;
}
.reset-password-layout>label,
.reset-password-grid>label{
  margin:0!important;
  font-size:13px!important;
}
.reset-password-layout input,
.reset-password-grid input{
  height:44px!important;
  margin-top:7px!important;
}
#modalHost .password-reset-modal .sms-code-row{
  grid-template-columns:minmax(0,1fr) 118px!important;
}
#modalHost .password-reset-modal .reset-password-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  margin-top:16px!important;
}
#modalHost .password-reset-modal .register-error{margin:0 0 14px!important}

@media(max-width:760px){
  #modalHost .modal.register-account-modal,
  #modalHost .modal.password-reset-modal{
    width:min(100%,calc(100vw - 16px))!important;
    max-height:calc(100dvh - 16px)!important;
  }
  #modalHost .register-account-modal .auth-form-scroll,
  #modalHost .password-reset-modal .auth-form-scroll{
    overflow:auto!important;
    padding:20px 18px 14px!important;
  }
  .register-two-column,
  .reset-password-layout{grid-template-columns:1fr!important;gap:14px!important}
  .register-side-right{padding-left:0!important;border-left:0!important;padding-top:18px!important;border-top:1px solid #ececec!important}
  #modalHost .register-account-modal .auth-form-footer,
  #modalHost .password-reset-modal .auth-form-footer{
    grid-template-columns:1fr 1.35fr!important;
    padding:12px 18px 14px!important;
  }
  .auth-security-note{display:none!important}
}
@media(min-width:761px) and (max-height:720px){
  #modalHost .register-account-modal .auth-form-scroll,
  #modalHost .password-reset-modal .auth-form-scroll{padding-top:22px!important;padding-bottom:18px!important}
  .auth-title-row{margin-bottom:14px!important}
  .register-store-title{margin-top:18px!important}
  #modalHost .register-account-modal .register-password-grid{margin-top:10px!important}
}

/* v1.0.39 Auth Compact Fields: user requested smaller one-screen dialog + shorter fields */
@media(min-width:761px){
  #modalHost .modal.register-account-modal{width:min(900px,calc(100vw - 40px))!important;max-width:900px!important}
  #modalHost .modal.password-reset-modal{width:min(720px,calc(100vw - 40px))!important;max-width:720px!important}
  #modalHost .register-account-modal .auth-form-scroll{padding:26px 30px 20px!important}
  #modalHost .register-account-modal .auth-form-footer{padding:13px 30px 16px!important}
  .register-two-column{grid-template-columns:360px minmax(0,1fr)!important;gap:28px!important}
  .register-side-right{padding-left:28px!important}
  .register-role-grid{grid-template-columns:170px 170px!important;justify-content:start!important}
  .register-employee-link{width:349px!important;max-width:100%!important}
  .register-phone-gate #regPhone{width:300px!important;max-width:100%!important}
  #modalHost .register-account-modal .sms-code-row{grid-template-columns:180px 112px!important}
  #modalHost .register-account-modal .register-verify-btn{width:300px!important;max-width:100%!important}
  #modalHost .register-account-modal .register-password-grid{grid-template-columns:210px 210px!important;justify-content:start!important}
  #modalHost .register-account-modal .register-password-grid input{width:210px!important}
  #modalHost .register-account-modal .auth-form-footer{grid-template-columns:auto 280px!important}
  #modalHost .register-account-modal .auth-form-footer .btn.primary{min-width:280px!important;width:280px!important}
  #modalHost .password-reset-modal .auth-form-scroll{padding:26px 30px 20px!important}
  #modalHost .password-reset-modal .reset-password-layout{grid-template-columns:260px 330px!important;justify-content:start!important}
  #modalHost .password-reset-modal .reset-password-grid{grid-template-columns:230px 230px!important;justify-content:start!important}
  #modalHost .password-reset-modal .auth-form-footer{grid-template-columns:auto 280px!important;padding:13px 30px 16px!important}
}


/* v1.0.39 Auth Proportions: tighter commercial layout, one-screen, no redundant verify button */
@media(min-width:761px){
  #modalHost .modal.register-account-modal{width:min(920px,calc(100vw - 40px))!important;max-width:920px!important}
  #modalHost .register-account-modal .auth-form-scroll{padding:24px 30px 16px!important}
  #modalHost .register-account-modal .auth-form-footer{padding:11px 30px 14px!important}
  #modalHost .register-account-modal .auth-title-row{margin-bottom:16px!important}
  .register-two-column{grid-template-columns:400px minmax(0,1fr)!important;gap:26px!important}
  .register-side-right{padding-left:26px!important;border-left-color:#f0f0f0!important}
  .register-role-grid{display:grid!important;grid-template-columns:118px 142px 132px!important;gap:8px!important;justify-content:start!important}
  .register-role-grid button,.register-employee-link{width:auto!important;min-width:0!important;min-height:42px!important;margin:0!important;padding:8px 10px!important;font-size:12px!important;white-space:nowrap!important}
  .register-store-title{margin-top:20px!important}
  .register-store-check{min-height:36px!important;padding:6px 0!important}
  #registerRoleHint{margin-top:1px!important}
  .register-phone-gate label{margin-top:8px!important}
  .register-phone-gate #regPhone{width:360px!important;max-width:100%!important}
  #modalHost .register-account-modal .sms-code-row{grid-template-columns:176px 116px!important;gap:10px!important}
  #modalHost .register-account-modal .register-verify-btn{display:none!important}
  .register-auto-verify-hint{display:block!important;margin-top:7px!important;color:#9a9a9a!important;font-size:11px!important}
  #modalHost .register-account-modal .register-password-grid{grid-template-columns:220px 220px!important;gap:12px!important;margin-top:14px!important}
  #modalHost .register-account-modal .register-password-grid input{width:220px!important}
  #modalHost .register-account-modal .auth-form-footer{grid-template-columns:auto 270px!important}
  #modalHost .register-account-modal .auth-form-footer .btn.primary{min-width:270px!important;width:270px!important}
  .auth-security-note{display:none!important}
}


/* v1.0.39 Reset Password Alignment: compact two-column grid */
@media(min-width:761px){
  #modalHost .modal.password-reset-modal{width:min(700px,calc(100vw - 40px))!important;max-width:700px!important}
  #modalHost .password-reset-modal .auth-form-scroll{padding:24px 30px 18px!important;overflow:visible!important}
  #modalHost .password-reset-modal .auth-title-row{margin-bottom:18px!important;align-items:flex-start!important}
  #modalHost .password-reset-modal .reset-security-text{margin-top:5px!important;color:#9a9a9a!important;font-size:11px!important;font-weight:400!important;white-space:nowrap!important;background:none!important;border:0!important;padding:0!important}
  #modalHost .password-reset-modal .reset-form-grid{display:grid!important;grid-template-columns:300px 300px!important;column-gap:14px!important;row-gap:16px!important;align-items:start!important;justify-content:start!important}
  #modalHost .password-reset-modal .reset-form-grid>label{margin:0!important;font-size:13px!important;min-width:0!important}
  #modalHost .password-reset-modal .reset-form-grid input{width:100%!important;height:44px!important;margin-top:7px!important}
  #modalHost .password-reset-modal .reset-form-grid .sms-code-row{display:grid!important;grid-template-columns:174px 116px!important;gap:10px!important;width:300px!important}
  #modalHost .password-reset-modal .reset-form-grid .sms-code-row input{width:174px!important}
  #modalHost .password-reset-modal .reset-form-grid .sms-code-row .btn{width:116px!important;min-width:116px!important;height:44px!important;margin-top:7px!important}
  #modalHost .password-reset-modal .reset-code-hint{display:block!important;height:12px!important;margin-top:5px!important;color:#aaa!important;font-size:10px!important;line-height:12px!important}
  #modalHost .password-reset-modal .auth-form-footer{grid-template-columns:auto 270px!important;padding:11px 30px 14px!important}
  #modalHost .password-reset-modal .auth-form-footer .btn.primary{width:270px!important;min-width:270px!important}
}
@media(max-width:760px){
  #modalHost .password-reset-modal .reset-form-grid{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
  #modalHost .password-reset-modal .reset-code-hint{display:block!important;margin-top:5px!important;color:#aaa!important;font-size:10px!important}
  #modalHost .password-reset-modal .reset-security-text{display:none!important}
}


/* v1.0.39 Register Grid Fix: remove fixed-width overflow and keep all fields inside modal */
@media(min-width:761px){
  #modalHost .modal.register-account-modal{
    width:min(920px,calc(100vw - 40px))!important;
    max-width:920px!important;
  }
  #modalHost .register-account-modal .register-two-column{
    display:grid!important;
    grid-template-columns:400px minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    align-items:start!important;
  }
  #modalHost .register-account-modal .register-side{
    min-width:0!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-side-left{
    padding-right:28px!important;
  }
  #modalHost .register-account-modal .register-side-right{
    min-width:0!important;
    padding-left:28px!important;
    border-left:1px solid #f0f0f0!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-side-right label,
  #modalHost .register-account-modal .register-side-right .sms-code-row,
  #modalHost .register-account-modal .register-password-grid{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-phone-gate #regPhone{
    width:min(360px,100%)!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .sms-code-row{
    display:grid!important;
    grid-template-columns:minmax(0,176px) 116px!important;
    gap:10px!important;
    width:min(302px,100%)!important;
    justify-content:start!important;
  }
  #modalHost .register-account-modal .sms-code-row input,
  #modalHost .register-account-modal .sms-code-row .btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-password-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    justify-content:stretch!important;
  }
  #modalHost .register-account-modal .register-password-grid>label{
    min-width:0!important;
    width:auto!important;
  }
  #modalHost .register-account-modal .register-password-grid input{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .auth-form-footer{
    grid-template-columns:auto 270px!important;
    min-width:0!important;
  }
  #modalHost .register-account-modal .auth-form-footer .btn.primary{
    width:270px!important;
    max-width:100%!important;
  }
}
@media(min-width:761px) and (max-width:960px){
  #modalHost .register-account-modal .register-two-column{
    grid-template-columns:minmax(0,44%) minmax(0,56%)!important;
  }
  #modalHost .register-account-modal .register-side-left{padding-right:22px!important}
  #modalHost .register-account-modal .register-side-right{padding-left:22px!important}
}


/* v1.0.40 Store Verify LAN: show the actual phone-reachable local address */
.store-verify-lan-ok{max-width:520px;margin:16px auto 0;padding:12px 16px;border:1px solid #dce8df;border-radius:12px;background:#f4f8f5;color:#31533a;font-size:14px;line-height:1.55;text-align:left}
.store-verify-lan-ok strong{font-weight:700;color:#173c22;word-break:break-all}.store-verify-lan-ok small{color:#6d7e70}
\n\n/* v1.0.43 Migration V5 + Auth 2x2 alignment */
.simple-progress-track i{background:#35a85b!important;box-shadow:0 0 0 1px rgba(53,168,91,.05)!important}
@media(min-width:761px){
  #modalHost .register-account-modal .register-phone-code-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;width:100%!important;align-items:start!important}
  #modalHost .register-account-modal .register-phone-code-grid>label{min-width:0!important;width:auto!important;margin-top:8px!important}
  #modalHost .register-account-modal .register-phone-code-grid #regPhone{width:100%!important;max-width:none!important}
  #modalHost .register-account-modal .register-phone-code-grid .sms-code-row{display:grid!important;grid-template-columns:minmax(0,1fr) 108px!important;gap:8px!important;width:100%!important;max-width:none!important}
  #modalHost .register-account-modal .register-password-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;width:100%!important;margin-top:14px!important}
  #modalHost .register-account-modal .register-password-grid input{width:100%!important;max-width:none!important}
  #modalHost .register-account-modal .register-auto-verify-hint{margin-top:5px!important;white-space:nowrap!important}
}

/* v1.0.44 Migration V6: live timing + clear green progress */
.simple-progress-track i{background:#35a85b!important;box-shadow:0 0 0 1px rgba(53,168,91,.05)!important}
.migration-timing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px;margin-bottom:18px}
.migration-timing-grid>div{min-width:0;border:1px solid #e7e5df;border-radius:14px;background:#fff;padding:14px 15px;display:grid;gap:5px}
.migration-timing-grid span{font-size:10px;color:#8b8881}
.migration-timing-grid strong{font-size:17px;line-height:1.2;color:#1c1c1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.migration-timing-grid small{font-size:9px;color:#aaa69d;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.migration-timing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v1.0.49 Migration V6.3 Upsert Conflict Fix: keep role buttons and 2x2 auth grid inside columns */
@media(min-width:761px){
  #modalHost .register-account-modal .register-two-column{
    grid-template-columns:392px minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
  }
  #modalHost .register-account-modal .register-side-left{
    min-width:0!important;
    padding-right:24px!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-side-right{
    min-width:0!important;
    padding-left:24px!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-role-grid{
    display:grid!important;
    grid-template-columns:minmax(0,.82fr) minmax(0,1.02fr) minmax(0,1.16fr)!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  #modalHost .register-account-modal .register-role-grid button,
  #modalHost .register-account-modal .register-employee-link{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:8px 6px!important;
    box-sizing:border-box!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  #modalHost .register-account-modal .register-phone-code-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  #modalHost .register-account-modal .register-phone-code-grid>label,
  #modalHost .register-account-modal .register-password-grid>label{
    min-width:0!important;
    width:auto!important;
    max-width:100%!important;
  }
  #modalHost .register-account-modal .register-phone-code-grid #regPhone,
  #modalHost .register-account-modal .register-password-grid input{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-phone-code-grid .sms-code-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 104px!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-phone-code-grid .sms-code-row input,
  #modalHost .register-account-modal .register-phone-code-grid .sms-code-row .btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #modalHost .register-account-modal .register-password-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
  }
  #modalHost .register-account-modal .register-auto-verify-hint{
    white-space:normal!important;
  }
}
@media(min-width:761px) and (max-width:960px){
  #modalHost .register-account-modal .register-two-column{
    grid-template-columns:minmax(0,44%) minmax(0,56%)!important;
  }
  #modalHost .register-account-modal .register-side-left{padding-right:18px!important}
  #modalHost .register-account-modal .register-side-right{padding-left:18px!important}
  #modalHost .register-account-modal .register-role-grid{gap:6px!important}
  #modalHost .register-account-modal .register-role-grid button,
  #modalHost .register-account-modal .register-employee-link{font-size:11px!important;padding-left:5px!important;padding-right:5px!important}
  #modalHost .register-account-modal .register-phone-code-grid,
  #modalHost .register-account-modal .register-password-grid{gap:10px!important}
  #modalHost .register-account-modal .register-phone-code-grid .sms-code-row{grid-template-columns:minmax(0,1fr) 96px!important;gap:6px!important}
}


/* v1.0.49 Migration V6.3 Upsert Conflict Fix */
.login-wordmark .side-brand .welcome-wordmark-v3 .chapter-brand #assetRecovery .recovery-logo 
/* v1.0.50 BrowserIconOnly: custom X mark is favicon only; no in-page icon injection. */


/* v1.0.51 Migration UX Trust: truthful stage ETA, split progress, live health */

/* v1.0.54: one progress bar only.  Stage completion remains as text. */
.migration-stage-progress{display:none!important}
.migration-progress-meta{margin-top:10px;display:flex;justify-content:space-between;gap:16px;align-items:center;color:#888;font-size:10px;line-height:1.45}
.migration-progress-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.migration-progress-meta b{color:#6f6c65;font-weight:650;white-space:nowrap}
.migration-stage-progress{display:grid;grid-template-columns:auto minmax(100px,1fr) 42px;gap:10px;align-items:center;margin-top:11px;padding-top:10px;border-top:1px solid #f0eee8;font-size:10px;color:#8b8881}.migration-stage-progress>div{height:4px;background:#efeee9;border-radius:999px;overflow:hidden}.migration-stage-progress i{display:block;height:100%;background:#35a85b;border-radius:inherit;transition:width .35s ease}.migration-stage-progress b{text-align:right;color:#5f5c56;font-variant-numeric:tabular-nums}
.migration-live-status{margin:-4px 0 18px;padding:10px 13px;border-radius:11px;display:flex;align-items:center;gap:8px;font-size:10px;border:1px solid #dfe8dc;background:#f4f8f3;color:#477053}.migration-live-status i{width:7px;height:7px;border-radius:50%;background:#35a85b;box-shadow:0 0 0 4px rgba(53,168,91,.10)}.migration-live-status b{font-size:10px}.migration-live-status span{margin-left:auto;color:#7b8b7d}.migration-live-status.slow,.migration-live-status.warn{border-color:#ecdcb9;background:#fff9ed;color:#8c6424}.migration-live-status.slow i,.migration-live-status.warn i{background:#d59a35;box-shadow:0 0 0 4px rgba(213,154,53,.12)}.migration-live-status.slow span,.migration-live-status.warn span{color:#a48757}
.migration-stat-pending{font-style:normal;font-size:13px;font-weight:600;color:#a19d94;white-space:nowrap}.simple-migration-pill.slow{background:#2d2518;border-color:#5a4728}.simple-migration-pill.slow>i{background:#d59a35;box-shadow:0 0 0 4px rgba(213,154,53,.13)}
@media(max-width:900px){.migration-progress-meta{align-items:flex-start;flex-direction:column;gap:4px}.migration-stage-progress{grid-template-columns:auto minmax(80px,1fr) 38px}.migration-live-status{flex-wrap:wrap}.migration-live-status span{margin-left:0;width:100%}}

/* R9: only the overall migration progress bar is visible. */
.migration-stage-progress{display:none!important}


/* R17 sidebar state fix: only route-active item may use the white selected block.
   Mouse hover/focus must never look like a second active menu item. */
.sidebar .nav-btn:hover:not(.active),
.sidebar .nav-btn:focus:not(.active),
.sidebar .nav-btn:focus-visible:not(.active){
  background:rgba(255,255,255,.075)!important;
  color:#d7d7d7!important;
  outline:none!important;
  box-shadow:none!important;
}
.sidebar .nav-btn.active,
.sidebar .nav-btn.active:hover,
.sidebar .nav-btn.active:focus,
.sidebar .nav-btn.active:focus-visible{
  background:#fff!important;
  color:#111!important;
}

/* R18 Sync Center */
.side-foot{cursor:pointer;user-select:none}.side-foot:hover{opacity:.86}
.sync-center-overlay{position:fixed;inset:0;z-index:12000;background:rgba(0,0,0,.38);display:grid;place-items:center;padding:24px}
.sync-center-overlay.hidden{display:none}
.sync-center-card{width:min(620px,calc(100vw - 36px));max-height:min(720px,calc(100vh - 48px));overflow:auto;background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.24);color:#111}
.sync-center-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid #eee}
.sync-center-head>div{display:grid;gap:5px}.sync-center-head strong{font-size:20px}.sync-center-head span{font-size:12px;color:#777}
.sync-center-close{border:0;background:#f3f3f3;width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer}
.sync-center-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px 24px}
.sync-center-stats>div{background:#f7f7f5;border-radius:13px;padding:14px}.sync-center-stats span{display:block;font-size:12px;color:#777;margin-bottom:7px}.sync-center-stats strong{font-size:20px}
.sync-center-rows{padding:0 24px}.sync-center-row{display:flex;align-items:center;justify-content:space-between;padding:13px 2px;border-top:1px solid #eee}.sync-center-row span{font-size:14px}.sync-center-row b{font-size:13px;font-weight:650}.sync-center-ok{color:#168447}.sync-center-warn{color:#b06a00}.sync-center-bad{color:#c62d2d}
.sync-center-error{margin:14px 24px 0;padding:11px 13px;border-radius:10px;background:#fff2f1;color:#b62929;font-size:12px;line-height:1.5}
.sync-center-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px 24px}.sync-center-foot span{font-size:12px;color:#888}.sync-center-foot .btn{min-width:108px}
@media(max-width:700px){.sync-center-stats{grid-template-columns:1fr}.sync-center-foot{align-items:flex-end;flex-direction:column}.sync-center-foot .btn{width:100%}}


/* R42 receipt: MUJI-like hierarchy, order QR, prominent kidswear specs */
.rp-order-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.rp-order-info{min-width:0;flex:1}.rp-order-qr{width:17mm;height:17mm;object-fit:contain;flex:0 0 auto}.rp-item-spec{font-size:11px!important;font-weight:800!important;color:#111!important;line-height:1.35!important;margin-top:2px}.rp-transfer{font-size:10px;font-weight:800;border:1px solid #111;padding:2px 4px;margin:2px 0}.paper-58 .rp-order-qr{width:15mm;height:15mm}.paper-58 .rp-item-spec{font-size:9.5px!important}.paper-58 .rp-transfer{font-size:8.8px}.rp-footer .rp-extra{text-align:left;line-height:1.4}

/* R47 receipt: compact retail hierarchy based on physical receipt reference */
.rp-order-barcode{display:block;width:88%!important;height:9mm!important;object-fit:fill;margin:5px auto 0!important}.rp-receipt-notice{text-align:center;font-size:9px;margin:1px 0 4px}.rp-order-no{text-align:center;font-size:9px!important;margin:0 0 5px!important;letter-spacing:.2px}.rp-order-meta{font-size:9.2px;line-height:1.3}.rp-item-brand{font-size:9.2px;font-weight:700;line-height:1.25;margin-bottom:1px}.rp-item-name{font-size:10.2px!important;font-weight:700!important;line-height:1.25}.rp-item-meta{font-size:9px!important;font-weight:400!important;color:#111!important;line-height:1.28!important}.rp-item-price{margin-top:2px!important;align-items:baseline!important}.rp-item-price strong{font-size:10.5px}.rp-total-rule{margin-bottom:3px!important}.rp-footer{text-align:left}.rp-footer .rp-contact{font-size:8.8px!important}.paper-58 .rp-order-barcode{height:8mm!important;width:90%!important}.paper-58 .rp-item{padding:4px 0!important}.paper-58 .rp-item-brand{font-size:8.7px}.paper-58 .rp-item-name{font-size:9.6px!important}.paper-58 .rp-item-meta{font-size:8.5px!important}.paper-58 .rp-total{font-size:14.5px!important}.paper-58 .rp-qr{width:21mm!important;height:21mm!important}

/* R47 receipt: transaction-correct sample, readable barcode, complete preview */
.rp-order-barcode{width:96%!important;height:11mm!important;margin:5px auto 1px!important;object-fit:fill!important}.paper-58 .rp-order-barcode{width:96%!important;height:10.5mm!important}.rp-receipt-notice{text-align:center;font-size:9px;margin:1px 0 4px}.rp-order-no{margin:0 0 6px!important}.rp-item-brand{font-weight:500!important;color:#333!important}.rp-item-name{font-weight:800!important}.rp-item-price{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;column-gap:8px!important}.rp-item-price strong{font-weight:800!important}.receipt-preview-column>.receipt-paper-shell{overflow:auto!important;padding-bottom:28px!important}.receipt-paper-shell{overflow:auto!important}.receipt-paper{height:max-content!important;min-height:max-content!important;flex:0 0 auto!important}

/* R48 顾客待取货 / 德佟 P0 */
.customer-label-printer-panel .label-printer-device-card{min-height:180px}.customer-label-printer-panel select{min-height:42px}.transfer-status{white-space:nowrap}
.marketing-candidates{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 10px}.marketing-candidates button{border:1px solid #d9d8d4;background:#f8f8f6;border-radius:8px;padding:7px 9px;color:#222;cursor:pointer}.promotion-card .promotion-actions{display:flex;gap:8px;margin-top:10px}


/* R71 · refresh/sync feedback */
#syncOrdersBtn[aria-busy="true"],.data-refresh-btn[aria-busy="true"]{transform:none!important;opacity:.82}
.data-refresh-btn{min-width:82px!important}.data-refresh-btn .action-spinner{margin-right:7px!important}
.data-refresh-btn:active,#syncOrdersBtn:active{transform:scale(.97)!important}

/* R79 · inventory gallery async image hydration */
.inventory-thumb-empty.is-loading{display:grid!important;position:relative;overflow:hidden;color:#aaa;background:#f3f3f1}
.inventory-thumb-empty.is-loading:before{content:"";width:24px;height:24px;border:2px solid #deded9;border-top-color:#777;border-radius:50%;animation:xmbbInventorySpin .75s linear infinite;margin-bottom:6px}
@keyframes xmbbInventorySpin{to{transform:rotate(360deg)}}

/* 1.0.57-R4 · native receipt bitmap preview: same raster as Android printing */
.receipt-native-preview{width:100%;display:flex;justify-content:center;align-items:flex-start;background:transparent}
.receipt-native-preview img{display:block;height:auto;max-width:100%;background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.08)}
.receipt-native-preview.paper-58 img{width:58mm}
.receipt-native-preview.paper-80 img{width:80mm}
.receipt-modal-paper-shell .receipt-native-preview{min-height:0}
.receipt-paper-shell:has(.receipt-native-preview){align-items:flex-start}

/* v1.0.57-R4 — cloud receipt profile / branding / QR modules */
.receipt-config-card{border:1px solid #e9e9e9;border-radius:14px;padding:14px 15px;margin:0 0 14px;background:#fff}
.receipt-config-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.receipt-config-card-head>div{display:grid;gap:3px}.receipt-config-card-head strong{font-size:15px}.receipt-config-card-head span{font-size:11px;color:#999}
.receipt-cloud-badge,.receipt-local-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:40px;height:22px;padding:0 8px;border-radius:999px;font-size:11px!important;font-weight:700;white-space:nowrap}
.receipt-cloud-badge{background:#eef6ff;color:#1677ff!important}.receipt-local-badge{background:#f3f3f3;color:#555!important}
.receipt-upload-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:14px;align-items:end}.receipt-upload-label{margin:0!important}
.receipt-logo-thumb{height:76px;border:1px dashed #ccc;border-radius:10px;background:#fafafa;display:grid;place-items:center;color:#999;font-size:12px;overflow:hidden}.receipt-logo-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}
.receipt-qr-config{display:grid;gap:10px}.receipt-qr-config>.receipt-config-card-head{margin-bottom:2px}.receipt-qr-block{border:1px solid #eee;border-radius:12px;padding:12px;background:#fafafa;position:relative}.receipt-qr-block+.receipt-qr-block{margin-top:2px}.receipt-qr-block>.check-line{font-weight:650;margin-bottom:10px!important}.receipt-qr-block .mini-code-thumb{margin-top:8px}.receipt-api-status{margin-top:8px;min-height:20px}.receipt-api-ok{color:#178447!important}.receipt-api-warn{color:#a46800!important}
.receipt-device-card{background:#fcfcfc}.receipt-left-text,.rp-extra,.rp-return-policy,.rp-contact-block{text-align:left!important;white-space:pre-wrap;word-break:break-word}.rp-contact-block{font-size:10px;line-height:1.38}.paper-58 .rp-contact-block{font-size:8.8px}.rp-logo{display:block;max-width:70%;max-height:22mm;object-fit:contain;margin:0 auto 4px}.paper-58 .rp-logo{max-height:18mm}.rp-qr-block{text-align:center;margin:7px 0}.rp-qr-caption{text-align:center}.rp-qr-title{font-weight:700;text-align:center;margin-top:2px}
@media(max-width:900px){.receipt-upload-row{grid-template-columns:1fr}.receipt-logo-thumb{width:110px}.receipt-config-card{padding:12px}.receipt-qr-block .form-grid{grid-template-columns:1fr}}
