:root { --rpx: calc(min(100vw, 560px) / 750); }
* { -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; background: #000; }
body { color: #F5F5F7; font-size: calc(28 * var(--rpx)); font-family: -apple-system, "PingFang SC", sans-serif; -webkit-text-size-adjust: 100%; max-width: 560px; margin: 0 auto; min-height: 100vh; }
#app { padding-top: calc(44px + env(safe-area-inset-top)); padding-bottom: env(safe-area-inset-bottom); }
.wx-view, .wx-picker, .wx-comp { display: block; }
.wx-comp { display: contents; }
.wx-text { display: inline; }
.wx-image { display: inline-block; width: 320px; height: 240px; object-fit: fill; overflow: hidden; }
.wx-image[data-mode=aspectFit] { object-fit: contain; }
.wx-image[data-mode=aspectFill] { object-fit: cover; }
.wx-image[data-mode=widthFix] { height: auto; }
.wx-image:not([src]) { visibility: hidden; }
.wx-input, .wx-textarea { display: block; border: 0; outline: 0; background: transparent; color: inherit; font: inherit; padding: 0; margin: 0; width: 100%; box-sizing: border-box; -webkit-appearance: none; border-radius: 0; font-size: max(16px, 1em); }
.wx-input::placeholder, .wx-textarea::placeholder { color: #5A5A5E; }
.wx-button { display: block; width: 100%; font: inherit; color: #F5F5F7; background: #1A1A1A; border: 1px solid #1D1D1F; border-radius: 10px; padding: 10px; margin-top: 8px; }
.wx-picker { position: relative; }
.wx-picker-sel { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; z-index: 2; font-size: 16px; -webkit-appearance: none; }
.wx-switch { position: relative; display: inline-block; width: 52px; height: 32px; flex: none; }
.wx-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; z-index: 2; width: 100%; height: 100%; }
.wx-switch i { position: absolute; inset: 0; border-radius: 16px; background: #39393D; transition: background .2s; }
.wx-switch i::after { content: ''; position: absolute; top: 2px; left: 2px; width: 28px; height: 28px; border-radius: 50%; background: #fff; transition: transform .2s; }
.wx-switch input:checked + i { background: #30D158; }
.wx-switch input:checked + i::after { transform: translateX(20px); }
.wx-switch input:disabled + i { opacity: .5; }

/* app.wxss */
/* 1.4.33：颜色取自 PC 端深色主题（Theme.Dark.xaml），圆角 / 按钮取自 Styles.xaml。1px ≈ calc(2 * var(--rpx))。 */
page { background: #000000; color: #F5F5F7; font-size: calc(28 * var(--rpx)); font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; }
.body { padding: calc(16 * var(--rpx)) calc(28 * var(--rpx)) calc(48 * var(--rpx)); }
.card { background: #111111; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(36 * var(--rpx)); padding: calc(28 * var(--rpx)); margin-top: calc(24 * var(--rpx)); }
.tip { background: #1A1A1A; border-radius: calc(24 * var(--rpx)); padding: calc(16 * var(--rpx)) calc(24 * var(--rpx)); font-size: calc(24 * var(--rpx)); color: #86868B; margin-top: calc(24 * var(--rpx)); line-height: 1.5; }
.muted { color: #86868B; }
.sm { font-size: calc(24 * var(--rpx)); }
.xs { font-size: calc(22 * var(--rpx)); }
.b { font-weight: 600; }
.row { display: flex; align-items: center; }
.wrap { flex-wrap: wrap; }
.between { justify-content: space-between; }
.grow { flex: 1; min-width: 0; }
.gap { width: calc(16 * var(--rpx)); height: calc(16 * var(--rpx)); flex: none; }
.mt8 { margin-top: calc(8 * var(--rpx)); } .mt12 { margin-top: calc(12 * var(--rpx)); } .mt16 { margin-top: calc(16 * var(--rpx)); } .mt24 { margin-top: calc(24 * var(--rpx)); }
.ellip { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 1.4.39（用户）：除活动名称 / 活动时间外都不许省略号——长的换行显示全（商品ID、SKU ID 这种长数字也能断行）。 */
.wrap { white-space: normal; word-break: break-all; overflow-wrap: anywhere; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: calc(72 * var(--rpx)); padding: 0 calc(36 * var(--rpx)); border-radius: calc(40 * var(--rpx)); font-size: calc(28 * var(--rpx)); white-space: nowrap; box-sizing: border-box; }
.btn-primary { background: #F5F5F7; color: #000000; }
.btn-sec { border: calc(2 * var(--rpx)) solid #1D1D1F; color: #F5F5F7; background: #111111; }
.btn-blue { background: #2997FF; color: #FFFFFF; }
.btn-green { background: #248A3D; color: #FFFFFF; }
.btn-red { border: calc(2 * var(--rpx)) solid #3A1A1A; color: #FF453A; }
.btn-small { display: inline-flex; align-items: center; justify-content: center; min-height: calc(52 * var(--rpx)); padding: 0 calc(22 * var(--rpx)); font-size: calc(24 * var(--rpx)); border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(40 * var(--rpx)); color: #F5F5F7; white-space: nowrap; box-sizing: border-box; }
.btn-hover { opacity: 0.7; }
.input { background: #0A0A0A; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(24 * var(--rpx)); height: calc(80 * var(--rpx)); padding: 0 calc(24 * var(--rpx)); color: #F5F5F7; font-size: calc(28 * var(--rpx)); box-sizing: border-box; }
.ph { color: #5A5A5E; }
.picker { background: #0A0A0A; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(24 * var(--rpx)); height: calc(80 * var(--rpx)); padding: 0 calc(24 * var(--rpx)); display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; }
.dot { width: calc(16 * var(--rpx)); height: calc(16 * var(--rpx)); border-radius: 50%; background: #48484A; display: inline-block; flex: none; }
.dot.on { background: #30D158; box-shadow: 0 0 calc(12 * var(--rpx)) rgba(48, 209, 88, 0.6); }
.link { color: #2997FF; text-decoration: underline; word-break: break-all; }
.thumb { width: calc(120 * var(--rpx)); height: calc(120 * var(--rpx)); background: #1A1A1A; border-radius: calc(24 * var(--rpx)); flex: none; }
.ib { width: calc(56 * var(--rpx)); height: calc(56 * var(--rpx)); border-radius: calc(16 * var(--rpx)); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ib .wx-image { width: calc(32 * var(--rpx)); height: calc(32 * var(--rpx)); }
.logo-sm { width: calc(32 * var(--rpx)); height: calc(32 * var(--rpx)); flex: none; margin-right: calc(10 * var(--rpx)); }
.badge { display: inline-flex; min-width: calc(40 * var(--rpx)); height: calc(40 * var(--rpx)); padding: 0 calc(12 * var(--rpx)); border-radius: calc(20 * var(--rpx)); background: #FF453A; color: #FFFFFF; font-size: calc(24 * var(--rpx)); align-items: center; justify-content: center; box-sizing: border-box; }
.lbl { color: #86868B; font-size: calc(24 * var(--rpx)); }
.exec { color: #FFB020; }
.cur { color: #30D158; }
.act { color: #FFD60A; }
.sug { color: #FF6A3D; }
.note { color: #FF9F0A; }
.err { color: #FF453A; }
.ok { color: #30D158; }
.tabs { display: flex; background: #1A1A1A; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(40 * var(--rpx)); padding: calc(6 * var(--rpx)); margin-top: calc(24 * var(--rpx)); }
.tabs .tab { flex: 1; height: calc(64 * var(--rpx)); border-radius: calc(34 * var(--rpx)); display: flex; align-items: center; justify-content: center; font-size: calc(26 * var(--rpx)); font-weight: 600; color: #86868B; }
.tabs .tab.on { background: #2997FF; color: #FFFFFF; }
.bar { height: calc(12 * var(--rpx)); border-radius: calc(6 * var(--rpx)); background: rgba(255, 255, 255, 0.1); overflow: hidden; }
.bar .fill { height: 100%; border-radius: calc(6 * var(--rpx)); }
/* 1.4.41（用户 t2114u）：额度条颜色同 PC 深色主题（QuotaHourBrush 绿 / QuotaDayBrush 蓝 / QuotaLowBrush 橙 / QuotaEmptyBrush 红）。 */
.q-hour { background: #30D158; } .q-day { background: #2997FF; } .q-low { background: #FF9F0A; } .q-empty { background: #FF453A; }
.tone-red { color: #E53935; } .tone-orred { color: #F4511E; } .tone-orange { color: #FB8C00; }
.sweep { height: calc(8 * var(--rpx)); border-radius: calc(4 * var(--rpx)); background: rgba(41, 151, 255, 0.25); overflow: hidden; margin-top: calc(16 * var(--rpx)); }
.sweep .fill { height: 100%; width: 40%; background: #2380D9; animation: sweep 1.4s ease-in-out infinite; }
/* 1.4.38：单店刷新 = 绿色（同 PC RefreshBarSelectedBrush），全部店铺 = 蓝色 */
.sweep.sweep-shop { background: rgba(31, 117, 52, 0.25); }
.sweep.sweep-shop .fill { background: #1F7534; }
@keyframes sweep { 0% { margin-left: -40%; } 100% { margin-left: 100%; } }
.groupline { display: flex; align-items: center; justify-content: space-between; margin: calc(28 * var(--rpx)) calc(4 * var(--rpx)) calc(4 * var(--rpx)); }
.empty { text-align: center; color: #86868B; padding: calc(60 * var(--rpx)) 0; font-size: calc(26 * var(--rpx)); }
.message { color: #86868B; font-size: calc(24 * var(--rpx)); margin-top: calc(16 * var(--rpx)); line-height: 1.5; }
.divider { height: calc(2 * var(--rpx)); background: #1D1D1F; margin: calc(20 * var(--rpx)) 0; }
.line-card { background: #0A0A0A; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(24 * var(--rpx)); padding: calc(20 * var(--rpx)); margin-top: calc(16 * var(--rpx)); }
.price-row { display: flex; flex-wrap: wrap; margin-top: calc(10 * var(--rpx)); font-size: calc(24 * var(--rpx)); }
.price-row .wx-view { margin-right: calc(24 * var(--rpx)); }
.list-item { display: flex; align-items: center; justify-content: space-between; min-height: calc(88 * var(--rpx)); border-bottom: calc(2 * var(--rpx)) solid #1D1D1F; }
.list-item:last-child { border-bottom: none; }
.list-item .wx-image.icon { width: calc(36 * var(--rpx)); height: calc(36 * var(--rpx)); margin-right: calc(16 * var(--rpx)); }
.chev { width: calc(28 * var(--rpx)); height: calc(28 * var(--rpx)); }
.section-title { font-size: calc(30 * var(--rpx)); font-weight: 600; }
.switch-row { display: flex; align-items: center; justify-content: space-between; padding: calc(16 * var(--rpx)) 0; }
/* 1.4.38：已处理（灰掉不隐藏）、按钮置灰、刷新进度颜色（选中店铺绿、全部店铺蓝）、店铺失败横幅。 */
.card.handled { filter: grayscale(100%); opacity: .6; }
.btn-off { opacity: .45; }
/* 1.4.41（用户 t2112u）：掉标 / 库存卡片左滑 → 右边露出和卡片等高的「标记已处理」/「取消已处理」（两页同一套样式）。 */
.swipe-wrap { position: relative; margin-top: calc(12 * var(--rpx)); border-radius: calc(24 * var(--rpx)); overflow: hidden; }
.swipe-wrap > .card.dense { margin-top: 0; }
.swipe-card { position: relative; z-index: 1; transition: transform .2s ease; }
.swipe-card.swipe-open { transform: translateX(calc(-180 * var(--rpx))); }
.swipe-act { position: absolute; top: 0; right: 0; bottom: 0; width: calc(180 * var(--rpx)); z-index: 0; display: flex; align-items: center; justify-content: center; background: #FF9F0A; color: #FFFFFF; font-size: calc(26 * var(--rpx)); font-weight: 600; }
.swipe-act.swipe-undo { background: #86868B; }
.sweep.sweep-green { background: rgba(31, 117, 52, 0.25); }
.sweep.sweep-green .fill { background: #1F7534; }
.sweep.sweep-blue { background: rgba(41, 151, 255, 0.25); }
.sweep.sweep-blue .fill { background: #2380D9; }
.failbar { margin-top: calc(8 * var(--rpx)); padding: calc(10 * var(--rpx)) calc(20 * var(--rpx)); border-radius: calc(16 * var(--rpx)); background: rgba(255, 69, 58, 0.15); color: #FF453A; }
/* 1.4.42（用户）：掉标「查询比价」白底黑字，细边框。 */
.btn-cmp { background: #FFFFFF; color: #000000; border: calc(2 * var(--rpx)) solid #D2D2D7; font-weight: 600; }

/* components/compare-progress/index.wxss */
/* 高 2px（calc(4 * var(--rpx))）、贴卡片底边、没有缝隙；轨道 = AccentBrush 15%，排队 33%；已完成段 85%；高光只在已完成段里扫。 */
.cp { position: absolute; left: 0; right: 0; bottom: 0; height: calc(4 * var(--rpx)); pointer-events: none; }
.cp-track { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: rgba(41, 151, 255, 0.15); }
.cp-track.q { background: rgba(41, 151, 255, 0.33); }
.cp-fill { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(41, 151, 255, 0.85); overflow: hidden; transition: width 0.3s ease-out; }
.cp-glow { position: absolute; top: 0; bottom: 0; width: 40%; left: -40%; background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.55) 50%, rgba(255, 255, 255, 0) 100%); animation: cpSweep 1.2s linear infinite; }
@keyframes cpSweep { from { left: -40%; } to { left: 100%; } }

/* components/compare-result/index.wxss */
.cr-line { position: relative; overflow: hidden; padding: calc(16 * var(--rpx)) calc(20 * var(--rpx)) calc(14 * var(--rpx)); margin-top: calc(12 * var(--rpx)); }
.thumb-s { width: calc(88 * var(--rpx)); height: calc(88 * var(--rpx)); border-radius: calc(16 * var(--rpx)); background: #1A1A1A; flex: none; }
.cr-head { display: flex; align-items: center; flex-wrap: wrap; }
.cr-tag { margin-left: calc(12 * var(--rpx)); padding: 0 calc(10 * var(--rpx)); border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(16 * var(--rpx)); color: #86868B; }
/* 1.4.39（用户）：除活动名称 / 活动时间外不许省略号——链接、状态、价格都换行显示全。 */
.cr-link { white-space: normal; word-break: break-all; text-decoration: underline; }
.cr-status { flex: none; margin-left: calc(12 * var(--rpx)); max-width: 45%; word-break: break-all; }
.cr-stage { color: #2997FF; }
/* 1.4.40（用户）：「展开 / 收起比价结果」不要蓝色链接字，恢复成以前「展开备选」那种文字框按钮（btn-small）。 */
.cr-fold { margin-top: calc(8 * var(--rpx)); }
.cr-blue { color: #2997FF; }
.svc { display: inline-flex; align-items: center; height: calc(48 * var(--rpx)); padding: 0 calc(16 * var(--rpx)); margin-left: calc(4 * var(--rpx)); border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(24 * var(--rpx)); font-size: calc(22 * var(--rpx)); color: #F5F5F7; }
.svc.on { border-color: #2997FF; color: #2997FF; }
.svc.off { opacity: 0.35; }
/* ★A：最底部一整行三等分：建议价格 | 活动价格 | 目标价格，没有值显示「—」 */
.pr3 { display: flex; margin-top: calc(12 * var(--rpx)); padding-top: calc(10 * var(--rpx)); border-top: calc(2 * var(--rpx)) solid #1D1D1F; }
.pr3 > .wx-view { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pr3 .lbl { font-size: calc(20 * var(--rpx)); }
.pr3 .v { font-size: calc(26 * var(--rpx)); font-weight: 600; word-break: break-all; }
/* 1.4.40（用户 t2105u–t2107u）：店铺归属方「编辑」+ 撒尿号确认框（照 PC）。 */
.cr-owner.row { align-items: center; }
.minw0 { min-width: 0; }
.om-btn { margin-left: calc(10 * var(--rpx)); min-height: calc(44 * var(--rpx)); padding: 0 calc(18 * var(--rpx)); flex: none; }
.om-pick { display: inline-flex; align-items: center; min-height: calc(44 * var(--rpx)); padding: 0 calc(16 * var(--rpx)); border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(22 * var(--rpx)); color: #F5F5F7; }
.om-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 900; background: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; }
.om-box { width: calc(620 * var(--rpx)); padding: calc(32 * var(--rpx)); background: #111111; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(24 * var(--rpx)); box-sizing: border-box; }
.om-title { font-size: calc(30 * var(--rpx)); }
.om-blue { color: #2997FF; word-break: break-all; }

/* components/risk-banner/index.wxss */
.risk-banner { background: #D93025; color: #fff; border-radius: calc(16 * var(--rpx)); padding: calc(24 * var(--rpx)); margin: 0 0 calc(24 * var(--rpx)) 0; }
.risk-title { font-weight: 600; font-size: calc(30 * var(--rpx)); }
.risk-text { font-size: calc(26 * var(--rpx)); margin-top: calc(8 * var(--rpx)); line-height: 1.5; }
.risk-btn { margin-top: calc(16 * var(--rpx)); background: #fff; color: #D93025; border-radius: calc(12 * var(--rpx)); text-align: center; padding: calc(16 * var(--rpx)) 0; font-weight: 600; }
.risk-btn-hover { opacity: 0.85; }

/* pages/about/about.wxss */
.about-head { display: flex; flex-direction: column; align-items: center; padding: calc(40 * var(--rpx)) 0 calc(24 * var(--rpx)); }
.about-logo { width: calc(144 * var(--rpx)); height: calc(144 * var(--rpx)); border-radius: calc(32 * var(--rpx)); }
.pair-card .btn { min-height: calc(96 * var(--rpx)); }
/* pages/accounts/accounts.wxss */
.kv { display: flex; font-size: calc(26 * var(--rpx)); }
.kv .lbl { width: calc(96 * var(--rpx)); }
.btn-sec, .btn-red { padding-left: calc(20 * var(--rpx)); padding-right: calc(20 * var(--rpx)); }
/* pages/alerts/alerts.wxss */
.wx-input { background: #111; color: #f5f5f5; margin-top: calc(12 * var(--rpx)); padding: calc(12 * var(--rpx)); }

/* pages/drops/drops.wxss */
/* 1.4.38：紧凑卡片（行高约原来的 60%）；卡片是进度条的宿主：position: relative; overflow: hidden。 */
/* 1.4.39（用户）：空白太多 → 内边距 / 间距压缩，内容约占卡片 90%（不截断：除活动名称 / 活动时间外都换行显示全）。 */
.card.dense { position: relative; overflow: hidden; padding: calc(12 * var(--rpx)) calc(18 * var(--rpx)); margin-top: calc(12 * var(--rpx)); border-radius: calc(24 * var(--rpx)); }
.card.focus { box-shadow: 0 0 0 calc(4 * var(--rpx)) #2997FF inset; }
/* 1.4.42（t2122u）：外层 dcard 是整张卡的外观（底色 / 边框 / 圆角）；里面上半是可左滑的商品卡，下半是不滑的比价结果区。 */
.dcard { position: relative; margin-top: calc(12 * var(--rpx)); background: #111111; border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(24 * var(--rpx)); overflow: hidden; }
.dcard.focus { border-color: #2997FF; box-shadow: 0 0 0 calc(2 * var(--rpx)) #2997FF; }
.dcard > .swipe-wrap { margin-top: 0; border-radius: 0; }
.dcard .swipe-card.card.dense { border: none; border-radius: 0; margin-top: 0; }
.dres { padding: 0 calc(18 * var(--rpx)); }
.dres.dres-on { padding-bottom: calc(12 * var(--rpx)); }
.dres.handled { filter: grayscale(100%); opacity: .6; }
.thumb-s { width: calc(112 * var(--rpx)); height: calc(112 * var(--rpx)); border-radius: calc(16 * var(--rpx)); background: #1A1A1A; flex: none; }
.gap8 { width: calc(12 * var(--rpx)); flex: none; }
.xxs { font-size: calc(22 * var(--rpx)); line-height: calc(34 * var(--rpx)); }
.tag { color: #FF9F0A; margin-right: calc(8 * var(--rpx)); }
.pgrid { display: flex; flex-wrap: wrap; align-items: center; margin-top: calc(8 * var(--rpx)); font-size: calc(26 * var(--rpx)); line-height: calc(46 * var(--rpx)); }
.pgrid > .wx-view { width: 33.33%; }
.pgrid > .wx-view.span2 { width: 66.66%; }
.pgrid > .wx-view.span3 { width: 100%; }
/* 1.4.41（用户 t2109u）：「查询比价」在右上（原「已处理」的位置），样式同以前（btn-xs）。 */
.exec { color: #FF9F0A; }
.gsync { margin-left: calc(16 * var(--rpx)); }
.btn-xs { display: inline-flex; align-items: center; min-height: calc(44 * var(--rpx)); padding: 0 calc(16 * var(--rpx)); font-size: calc(22 * var(--rpx)); border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(40 * var(--rpx)); }
.x { color: #86868B; font-size: calc(28 * var(--rpx)); padding: 0 calc(8 * var(--rpx)); }
.capfull { color: #FF9F0A; }

/* pages/find/find.wxss */
.fcard { position: relative; overflow: hidden; }
.fx { position: absolute; right: calc(16 * var(--rpx)); top: calc(12 * var(--rpx)); color: #86868B; font-size: calc(28 * var(--rpx)); padding: 0 calc(8 * var(--rpx)); z-index: 2; }
.undo { position: fixed; left: calc(32 * var(--rpx)); right: calc(32 * var(--rpx)); bottom: calc(48 * var(--rpx)); display: flex; justify-content: space-between; align-items: center; padding: calc(20 * var(--rpx)) calc(28 * var(--rpx)); border-radius: calc(24 * var(--rpx)); background: #1C1C1E; color: #F5F5F7; font-size: calc(26 * var(--rpx)); z-index: 10; }
.undo-btn { color: #2997FF; font-weight: 600; }

/* pages/index/index.wxss */
.head { padding: calc(20 * var(--rpx)) calc(8 * var(--rpx)) calc(8 * var(--rpx)); }
.logo { width: calc(96 * var(--rpx)); height: calc(96 * var(--rpx)); margin-right: calc(20 * var(--rpx)); border-radius: calc(22 * var(--rpx)); }
.title { font-size: calc(44 * var(--rpx)); font-weight: 600; }
.bind-card { padding: calc(24 * var(--rpx)) calc(28 * var(--rpx)); }
.grid { display: flex; flex-wrap: wrap; justify-content: space-between; }
.tile { width: calc(50% - calc(12 * var(--rpx))); min-height: calc(264 * var(--rpx)); position: relative; box-sizing: border-box; }
.tile-icon { width: calc(56 * var(--rpx)); height: calc(56 * var(--rpx)); display: block; }
.tile-badge { position: absolute; right: calc(28 * var(--rpx)); top: calc(28 * var(--rpx)); }
.tile-title { font-size: calc(34 * var(--rpx)); font-weight: 600; margin-top: calc(28 * var(--rpx)); }
.menu { padding: calc(8 * var(--rpx)) calc(28 * var(--rpx)); }
.icon-text { width: calc(36 * var(--rpx)); margin-right: calc(16 * var(--rpx)); text-align: center; font-weight: 700; }
.pair-card .btn { min-height: calc(96 * var(--rpx)); }
/* 1.4.38：主账号 + 今日定时一行。 */
.company-line { width: 100%; margin-top: calc(8 * var(--rpx)); text-align: center; }

/* pages/lookup/lookup.wxss */
.pair { margin-top: calc(8 * var(--rpx)); }
.shop { display: flex; align-items: center; margin-top: calc(16 * var(--rpx)); }
.shop-on { color: #fff; }
.dot { width: calc(16 * var(--rpx)); height: calc(16 * var(--rpx)); border-radius: calc(8 * var(--rpx)); background: #666; margin-right: calc(12 * var(--rpx)); }
.dot-on { background: #30d158; }
.link { user-select: text; word-break: break-all; }
.head, .ops { display: flex; gap: calc(16 * var(--rpx)); flex-wrap: wrap; }
.line { margin-top: calc(20 * var(--rpx)); padding-top: calc(16 * var(--rpx)); border-top: calc(1 * var(--rpx)) solid #333; }
.reline { font-size: calc(28 * var(--rpx)); }
.pair-input { margin-top: calc(20 * var(--rpx)); padding: calc(20 * var(--rpx)) calc(24 * var(--rpx)); background: #111; color: #f5f5f5; border-radius: calc(12 * var(--rpx)); font-size: calc(32 * var(--rpx)); letter-spacing: calc(4 * var(--rpx)); }

/* pages/push/push.wxss */
.gap { width: calc(24 * var(--rpx)); height: calc(24 * var(--rpx)); }
.fold { color: #9a9a9a; padding: calc(16 * var(--rpx)) 0 calc(8 * var(--rpx)); }

/* pages/server/server.wxss */
.set-item { padding: calc(20 * var(--rpx)) 0; }
.divider-top { border-top: calc(1 * var(--rpx)) solid #2C2C2E; }
.cust { padding: calc(18 * var(--rpx)) 0; }
/* pages/settings/settings.wxss */
.set-item { padding: calc(20 * var(--rpx)) 0; }
.divider-top { border-top: calc(1 * var(--rpx)) solid #2C2C2E; }
.owner-row { display: flex; align-items: center; }
.owner-pf { width: calc(150 * var(--rpx)); margin-right: calc(12 * var(--rpx)); }
.owner-in { flex: 1; margin-right: calc(12 * var(--rpx)); min-width: 0; }
/* pages/stock/stock.wxss */
/* 1.4.38：紧凑卡片（行高约原来的 60%），库存一行内联。 */
/* 1.4.39（用户）：空白太多 → 内边距 / 间距压缩，内容约占卡片 90%。 */
.card.dense { position: relative; overflow: hidden; padding: calc(12 * var(--rpx)) calc(18 * var(--rpx)); margin-top: calc(12 * var(--rpx)); border-radius: calc(24 * var(--rpx)); }
.mt6 { margin-top: calc(6 * var(--rpx)); }
.thumb-s { width: calc(112 * var(--rpx)); height: calc(112 * var(--rpx)); border-radius: calc(16 * var(--rpx)); background: #1A1A1A; flex: none; }
.gap8 { width: calc(12 * var(--rpx)); flex: none; }
.xxs { font-size: calc(22 * var(--rpx)); line-height: calc(34 * var(--rpx)); }
.big2 { font-size: calc(30 * var(--rpx)); font-weight: 600; }
.btn-xs { display: inline-flex; align-items: center; min-height: calc(44 * var(--rpx)); padding: 0 calc(16 * var(--rpx)); font-size: calc(22 * var(--rpx)); border: calc(2 * var(--rpx)) solid #1D1D1F; border-radius: calc(40 * var(--rpx)); }
.x { color: #86868B; font-size: calc(28 * var(--rpx)); padding: 0 calc(8 * var(--rpx)); }
/* 1.4.40（用户 t2104u）：店铺分组行（同掉标）、活动ID 显示全、「已处理」在底部库存行靠右。 */
.gsync { margin-left: calc(16 * var(--rpx)); }
.fold-mark { color: #86868B; font-size: calc(26 * var(--rpx)); width: calc(32 * var(--rpx)); flex: none; }
.minw0 { min-width: 0; }
.aline { display: flex; align-items: center; white-space: nowrap; overflow: hidden; }
.aid { flex: none; white-space: nowrap; }
.aname { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 1.4.41（用户 t2113u）：底行两项库存水平居中，间距 calc(56 * var(--rpx))。 */
.sbottom { align-items: center; justify-content: center; }
.sitem { display: inline-flex; align-items: baseline; flex: none; margin: 0 calc(28 * var(--rpx)); }

/* H5 外壳：导航栏、下拉刷新、toast、modal、action sheet */
#nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: #000; padding-top: env(safe-area-inset-top); height: 44px; display: flex; align-items: center; color: #fff; max-width: 560px; margin: 0 auto; }
#nav .nav-back { width: 44px; height: 44px; line-height: 40px; text-align: center; font-size: 34px; cursor: pointer; }
#nav .nav-title { flex: 1; text-align: center; font-size: 17px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#nav .nav-side { width: 44px; }
#pull { height: 0; overflow: hidden; margin-top: calc(44px + env(safe-area-inset-top)); display: flex; align-items: center; justify-content: center; color: #86868B; font-size: 12px; transition: height .2s; position: relative; z-index: 1; }
#pull + #app { padding-top: 0; }
#pull.ready span::after { content: '，松开刷新'; }
#pull.busy span { font-size: 0; }
#pull.busy span::after { content: '正在刷新…'; font-size: 12px; }
.wx-toast { position: fixed; z-index: 1000; left: 50%; top: 45%; transform: translate(-50%, -50%); background: rgba(40,40,40,.95); color: #fff; padding: 10px 16px; border-radius: 8px; font-size: 14px; max-width: 72vw; display: none; flex-direction: column; align-items: center; text-align: center; line-height: 1.45; pointer-events: none; }
.wx-toast.big { min-width: 120px; min-height: 100px; justify-content: center; }
.wx-toast.mask { pointer-events: auto; }
.wx-toast-icon { width: 36px; height: 36px; margin-bottom: 8px; }
.wx-toast-icon.success { border: 3px solid #fff; border-radius: 50%; box-sizing: border-box; position: relative; }
.wx-toast-icon.success::after { content: ''; position: absolute; left: 11px; top: 5px; width: 8px; height: 15px; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.wx-toast-icon.loading { border: 3px solid rgba(255,255,255,.25); border-top-color: #fff; border-radius: 50%; animation: wxspin .8s linear infinite; box-sizing: border-box; }
@keyframes wxspin { to { transform: rotate(360deg); } }
.wx-modal-mask { position: fixed; inset: 0; z-index: 900; background: rgba(0,0,0,.6); display: flex; align-items: center; justify-content: center; }
.wx-modal { width: 80vw; max-width: 320px; background: #1C1C1E; border-radius: 14px; overflow: hidden; color: #F5F5F7; text-align: center; }
.wx-modal-title { font-size: 17px; font-weight: 600; padding: 20px 20px 0; word-break: break-all; }
.wx-modal-content { padding: 12px 20px 20px; font-size: 15px; color: #AEAEB2; line-height: 1.5; white-space: pre-wrap; word-break: break-all; max-height: 50vh; overflow: auto; }
.wx-modal-input { display: block; width: calc(100% - 40px); margin: 14px 20px 20px; min-height: 64px; background: #0A0A0A; color: #F5F5F7; border: 1px solid #2C2C2E; border-radius: 8px; padding: 8px; font-size: 16px; box-sizing: border-box; }
.wx-modal-btns { display: flex; border-top: 1px solid #2C2C2E; }
.wx-modal-btn { flex: 1; height: 50px; line-height: 50px; font-size: 17px; color: #F5F5F7; cursor: pointer; }
.wx-modal-btn + .wx-modal-btn { border-left: 1px solid #2C2C2E; }
.wx-modal-btn.ok { color: #2997FF; font-weight: 600; }
.wx-modal-mask.sheet { align-items: flex-end; }
.wx-sheet { width: 100%; max-width: 560px; background: #1C1C1E; border-radius: 14px 14px 0 0; padding-bottom: env(safe-area-inset-bottom); }
.wx-sheet-item { height: 56px; line-height: 56px; text-align: center; font-size: 17px; border-bottom: 1px solid #2C2C2E; }
.wx-sheet-item.cancel { border-top: 8px solid #000; border-bottom: 0; }
/* H5 小调整（用户 2026-11-04）：除活动名称 / 活动时间外不省略；账号额度文字灰色（条带一绿一蓝不变）。 */
[data-route="pages/accounts/accounts"] .card > .row.between { align-items: flex-start; }
[data-route="pages/accounts/accounts"] .card > .row.between .ellip { white-space: normal; word-break: break-all; }
[data-route="pages/accounts/accounts"] .card > .row.between > .wx-text.sm { max-width: 55%; text-align: right; margin-left: 12px; }
[data-route="pages/accounts/accounts"] .card > .row.between .dot { margin-top: 0.45em; margin-right: 8px; }
[data-route="pages/accounts/accounts"] .card .mt16 > .xs { color: #86868B; }
/* 扫码层（对应 wx.scanCode 全屏相机） */
.wx-scan { position: fixed; inset: 0; z-index: 9999; background: #000; }
.wx-scan video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wx-scan-mask { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.wx-scan-box { width: 64vw; max-width: 300px; aspect-ratio: 1; box-shadow: 0 0 0 200vmax rgba(0,0,0,.45); position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.35); }
.wx-scan-box i { position: absolute; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, #2ea043, transparent); animation: wxscan 2s linear infinite; }
@keyframes wxscan { from { top: 0 } to { top: 100% } }
.wx-scan-tip { color: #fff; font-size: 14px; margin-top: 24px; opacity: .85; }
.wx-scan-close { position: absolute; left: 0; right: 0; bottom: calc(40px + env(safe-area-inset-bottom)); margin: auto; width: 120px; text-align: center; color: #fff; font-size: 17px; padding: 10px 0; }

/* 1.4.47 掉标店铺行折叠箭头 */
.fold-mark{color:#86868B;font-size:13px;width:16px;flex:none}
.groupline .row.grow{flex-wrap:wrap;align-items:center;row-gap:2px}
.groupline .section-title{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.groupline .gsync{white-space:nowrap;margin-left:8px}
/* 1.4.47 添加到桌面引导（只在首页） */
.zz-a2hs{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:900;display:flex;align-items:center;gap:10px;background:#1C1C1E;border:1px solid #2C2C2E;border-radius:16px;padding:10px 12px;color:#fff;box-shadow:0 6px 24px rgba(0,0,0,.45);font-size:13px}
.zz-a2hs img{width:36px;height:36px;border-radius:9px;flex:none}
.zz-a2hs .t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.zz-a2hs .t span{color:#86868B;font-size:12px;line-height:1.35}
.zz-a2hs .go{background:#0A84FF;color:#fff;border:0;border-radius:999px;padding:6px 14px;font-size:13px}
.zz-a2hs .x{background:transparent;color:#86868B;border:0;font-size:16px;padding:4px}
