/* ============================================================
   充值账本 · 设计 token（单一主色 + 中性灰阶 + 状态色）
   ============================================================ */
:root{
  --bg:#0a0c10;             /* 页面背景 */
  --panel:#12151c;          /* 卡片 */
  --panel2:#191d26;         /* 次级面 / 输入框 */
  --line:#242a36;           /* 边框（中性，去灰蓝） */
  --text:#f1f4f9;
  --muted:#8a93a5;
  --mint:#34d399;           /* 主强调色（emerald）· 收入 */
  --mint-ink:#052e22;       /* 主色上的深色文字 */
  --blue:#5b8def;           /* 链接 / 聚焦 · 可用/支付宝 */
  --amber:#f5a524;          /* 待确认警示 · CDK 金 */
  --red:#ef6b7b;            /* 负值 / 删除 · 支出 */
  --purple:#a78bfa;         /* 买币 / 紫 */
  --cyan:#22d3ee;           /* 非CDK充值 / 青 */
  --pink:#f472b6;           /* 小红书 / 粉 */
  --radius-sm:10px;
  --radius:12px;
  --radius-lg:16px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.32);
  --shadow-md:0 10px 30px rgba(0,0,0,.36);
}

/* ============================================================
   基础
   ============================================================ */
*{box-sizing:border-box}
html,body{background:var(--bg)}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  line-height:1.45;
  font-variant-numeric:tabular-nums;      /* 金额等宽数字，不跳动 */
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus,input:focus,select:focus,textarea:focus{outline:none;-webkit-tap-highlight-color:transparent}
*{-webkit-tap-highlight-color:transparent}

/* 图标（Lucide SVG，stroke 继承 currentColor） */
.icon{display:inline-flex;width:20px;height:20px;flex:none;align-items:center;justify-content:center}
.icon svg{width:100%;height:100%;display:block}

/* ============================================================
   应用外壳
   ============================================================ */
.app-shell{width:min(100%,680px);margin:0 auto;min-height:100vh;padding:12px 18px 100px;padding-top:calc(12px + env(safe-area-inset-top,0px))}
.topbar{margin-bottom:14px}
.topbar h1{font-size:22px;margin:0;letter-spacing:-.3px;font-weight:750}
.eyebrow{margin:0 0 4px;color:var(--muted);font-size:11px;letter-spacing:1.3px;font-weight:700}
.close-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);width:38px;height:38px;border-radius:var(--radius-sm);font-size:21px;display:inline-flex;align-items:center;justify-content:center}
.close-btn:active{background:var(--panel2);color:var(--text)}

/* ============================================================
   Hero 卡片（总览主卡）
   ============================================================ */
.hero-card{
  display:flex;justify-content:space-between;align-items:stretch;padding:22px;
  border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(160deg,rgba(52,211,153,.09),rgba(52,211,153,0) 42%),var(--panel);
  box-shadow:var(--shadow-md);margin-bottom:14px;
  gap:16px;
}
.hero-left{flex:1;min-width:0;display:flex;flex-direction:column}
.hero-right{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;flex:none}
.today-cdk{text-align:right}
.today-cdk strong{display:block;font-size:30px;font-weight:800;letter-spacing:-.6px;color:var(--amber);line-height:1.1;font-variant-numeric:tabular-nums}
.today-cdk small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.muted{color:var(--muted);font-size:12px;margin:0}
#heroPending{margin-top:8px;font-size:13px;color:var(--muted)}
#heroPending .hp-num{font-size:18px;font-weight:800;color:var(--amber);letter-spacing:-.3px;font-variant-numeric:tabular-nums}
#heroPending .hp-num.positive{color:var(--amber)}
#heroPending .hp-num.profit{color:var(--purple)}
#heroPending b{font-weight:800}
.muted .icon{width:12px;height:12px;vertical-align:-2px}
.hero-number{display:block;font-size:34px;margin-top:4px;letter-spacing:-.8px}
.hero-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px}
.hero-top .muted{margin:0;font-size:11px}
.status-dot{font-size:11px;color:var(--mint);display:flex;align-items:center;gap:6px}
.status-dot i{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px rgba(52,211,153,.8)}

/* ============================================================
   统计卡片
   ============================================================ */
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}
.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:9px 12px;position:relative;overflow:hidden;min-height:72px;display:flex;flex-direction:column;justify-content:center}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--line)}
.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:10px}
.stat-card strong{display:block;font-size:17px;margin:3px 0 1px}
.stat-card.c-income::before{background:var(--mint)}
.stat-card.c-income strong{color:var(--mint)}
.stat-card.c-expense::before{background:var(--red)}
.stat-card.c-expense strong{color:var(--red)}
.stat-card.c-cdk::before{background:var(--blue)}
.stat-card.c-cdk strong{color:var(--blue)}
.stat-card.c-pending::before{background:var(--amber)}
.stat-card.c-pending strong{color:var(--amber)}

/* ============================================================
   区块标题 / 页头
   ============================================================ */
.section-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px}
.section-head h2{font-size:16px;margin:0}
.page-head{margin:10px 0 20px}

/* ============================================================
   文字按钮 / 筛选按钮
   ============================================================ */
.text-btn,.filter-btn{border:0;background:none;color:var(--mint);font-size:12px;padding:0}
.filter-btn{border:1px solid var(--line);padding:7px 11px;border-radius:var(--radius-sm);background:var(--panel);color:var(--text)}
.inventory-head{gap:12px;margin-bottom:16px}
.inventory-head>div:first-child{flex:1;min-width:0}
.inventory-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.inventory-actions>.filter-btn{white-space:nowrap;min-height:34px;padding:7px 10px;border-radius:10px;font-size:12px;background:var(--panel);color:var(--muted)}
.inventory-actions>.filter-btn:hover{color:var(--text);background:var(--panel2)}
.inventory-actions>.inventory-platform-btn{border-color:rgba(91,141,239,.25);background:rgba(91,141,239,.08);color:var(--blue)}
.inventory-controls{display:flex;align-items:center;gap:6px;margin:0 0 10px}
.inventory-controls>.filter-btn{min-height:32px;padding:6px 14px;border-radius:999px;font-size:12px;background:transparent;color:var(--muted)}
.inventory-controls>#inventoryFilter{color:var(--text);background:var(--panel2)}
.inventory-upstream-btn{border-color:rgba(52,211,153,.5);color:var(--mint)}
.inventory-info-btn{color:var(--muted);border:1px solid var(--line);background:var(--panel2)}
.inventory-info-btn:hover{color:var(--blue);background:rgba(91,141,239,.08)}
.sync-16688-title{display:flex;align-items:center;gap:7px}
.sync-16688-help-btn{flex:0 0 26px;width:26px;height:26px;border-radius:50%;padding:0}

/* ============================================================
   快速记录（三个主操作）
   ============================================================ */
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:28px}
.quick-btn{
  min-height:72px;text-align:left;border:1px solid var(--line);border-radius:var(--radius);
  padding:10px 12px;background:var(--panel);color:var(--text);
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  transition:border-color .15s ease,background .15s ease;
}
.quick-btn:hover,.quick-btn:active{border-color:var(--mint);background:var(--panel2)}
.quick-icon{width:18px;height:18px;color:var(--mint)}
.quick-icon svg{width:100%;height:100%;display:block}
.qi-income{color:var(--mint)}
.qi-noncdk{color:var(--cyan)}
.qi-coin{color:var(--purple)}
.qi-cdk{color:var(--amber)}
.quick-btn b{font-size:12px}
.quick-btn small{color:var(--muted);font-size:10px;line-height:1.2}

/* ============================================================
   记录列表 / 记录项
   ============================================================ */
.record-list{display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}
.record-item{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:13px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;
}
.record-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.rec-actions{display:flex;gap:4px}
.icon-mini{border:1px solid var(--line);background:var(--panel2);color:var(--muted);width:30px;height:30px;border-radius:9px;font-size:14px;display:inline-flex;align-items:center;justify-content:center}
.icon-mini .icon{width:15px;height:15px}
.icon-mini:active{background:var(--line);color:var(--text)}
.record-main{min-width:0}
.record-title{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-sub{font-size:11px;color:var(--muted);margin-top:3px}
.record-amount{text-align:right;white-space:nowrap;font-weight:700;font-size:14px}
.positive{color:var(--mint)}
.negative{color:var(--red)}
.profit{color:var(--purple)}
.profit-bg{color:var(--purple)}
#heroProfit{color:var(--purple)}

/* ============================================================
   标签（tag）
   ============================================================ */
.tag{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;border-radius:6px;font-size:10px;margin-left:5px;background:var(--panel2);color:var(--muted);vertical-align:1px}
.tag .icon{width:11px;height:11px}
.tag.pending{color:var(--amber);background:rgba(245,165,36,.14);font-weight:700}
.tag.available{color:var(--mint);background:rgba(52,211,153,.13)}
.tag.used{color:var(--muted)}
.tag.p-wechat{color:var(--mint);background:rgba(52,211,153,.12)}
.tag.p-alipay{color:var(--blue);background:rgba(91,141,239,.13)}
.tag.p-xhs{color:var(--pink);background:rgba(244,114,182,.12)}

/* ============================================================
   库存汇总 / 每日汇总
   ============================================================ */
.inventory-summary,.daily-summary{display:grid;gap:8px;margin-bottom:15px}
.inventory-summary{grid-template-columns:repeat(3,1fr)}
.daily-summary{grid-template-columns:repeat(3,1fr)}
.inventory-summary div,.daily-summary div{padding:13px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}
.inventory-summary span,.daily-summary span{display:block;color:var(--muted);font-size:11px}
.inventory-summary strong{display:block;font-size:19px;margin-top:3px}
.inventory-summary small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.inventory-summary .inv-avail strong{color:var(--mint)}
.inventory-summary .inv-used strong{color:var(--muted)}
.inventory-summary .inv-usdt strong{color:var(--blue)}
.daily-summary strong{display:block;font-size:19px;margin-top:3px}
.daily-summary small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.amber-txt{color:var(--amber)}
.mint-txt{color:var(--mint)}

/* ============================================================
   设置
   ============================================================ */
.settings-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px}
.settings-card h3{font-size:14px;margin:0 0 12px}
.rule-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;border-top:1px solid var(--line)}
.rule-row:first-of-type{border-top:0}
.rule-row b{font-size:13px}
.rule-row small{grid-column:1/-1;color:var(--muted);font-size:11px}
.outline-btn,.danger-btn{width:100%;border:1px solid var(--line);background:transparent;color:var(--text);padding:11px;border-radius:var(--radius-sm);margin-top:10px}
.danger-btn{color:var(--red);border-color:rgba(239,107,123,.4)}

/* ============================================================
   底部导航
   ============================================================ */
.bottom-nav{
  position:fixed;z-index:5;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);
  width:min(calc(100% - 30px),640px);display:grid;grid-template-columns:repeat(5,1fr);
  padding:7px;background:rgba(18,21,28,.92);backdrop-filter:blur(18px);
  border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow-md);
}
.nav-item{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0;border-radius:var(--radius-sm)}
.nav-item .icon{width:20px;height:20px}
.nav-item small{font-size:10px}
.nav-item.active{color:var(--mint-ink);background:var(--mint)}
.nav-item.active small{color:var(--mint-ink)}

/* ============================================================
   视图切换
   ============================================================ */
.view{display:none}
.active-view{display:block}

/* ============================================================
   弹窗
   ============================================================ */
.modal-backdrop{position:fixed;inset:0;z-index:10;background:rgba(3,5,9,.72);display:none;align-items:flex-end;padding:14px}
.modal-backdrop.open{display:flex}
.modal{width:min(100%,640px);margin:0 auto;background:#151a23;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow-md);max-height:90vh;overflow:auto}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
.modal h2{margin:0;font-size:20px}
.close-btn{border:0;background:var(--panel2);font-size:24px}
.close-btn .icon{width:18px;height:18px}
.modal label{display:block;color:var(--muted);font-size:12px;margin:13px 0}
.optional{float:right;color:#657185;font-size:10px}
.modal input,.modal select,.modal textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);background:#0f131c;color:var(--text);border-radius:var(--radius-sm);padding:12px;outline:0}
.modal textarea{resize:vertical;line-height:1.5}
.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--mint)}
.form-hint{color:var(--muted);font-size:11px;background:#10141d;border-radius:9px;padding:10px;margin:14px 0}
.primary-btn{width:100%;border:0;border-radius:var(--radius-sm);padding:13px;background:var(--mint);color:var(--mint-ink);font-weight:750;margin-top:8px}
.primary-btn:active{filter:brightness(1.08)}
.segmented-switch{display:flex;width:100%;gap:3px;padding:3px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel2)}
.segment-btn{flex:1;min-width:0;min-height:38px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:13px}
.segment-btn.active{background:var(--mint);color:var(--mint-ink);font-weight:700}

/* 16688 is always previewed before the explicit apply action. */
.sync-16688-preview{margin:14px 0}
.sync-16688-stock{margin-bottom:10px;border:1px solid rgba(91,141,239,.42);border-radius:var(--radius-sm);background:rgba(91,141,239,.07)}
.sync-16688-stock-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:10px 11px;font-size:12px}
.sync-16688-stock-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.sync-16688-stock-row strong{font-size:12px;color:var(--blue);white-space:nowrap}
.sync-16688-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sync-16688-summary > div{min-width:0;padding:10px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);text-align:center}
.sync-16688-summary span{display:block;color:var(--muted);font-size:10px}
.sync-16688-summary strong{display:block;margin-top:4px;font-size:17px}
.sync-16688-upload strong{color:var(--mint)}
.sync-16688-invalidate strong{color:var(--red)}
.sync-16688-sale strong{color:var(--blue)}
.sync-16688-attention strong{color:var(--amber)}
.sync-16688-baseline{margin:12px 0;padding:10px 12px;border:1px solid rgba(245,165,36,.42);border-radius:var(--radius-sm);background:rgba(245,165,36,.08);color:var(--amber);font-size:12px;line-height:1.55}
.sync-16688-list{margin-top:12px;border-top:1px solid var(--line)}
.sync-16688-list h3{margin:12px 0 7px;font-size:13px;color:var(--text)}
.sync-16688-list ul{margin:0;padding:0;list-style:none}
.sync-16688-list li{padding:8px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.sync-16688-list li:first-child{border-top:0}
.sync-16688-list .sync-16688-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--mint)}
.sync-16688-list.attention li{color:var(--amber)}
.sync-16688-manual-stock{margin-top:12px;padding:10px 11px;border:1px solid rgba(245,165,36,.42);border-radius:var(--radius-sm);background:rgba(245,165,36,.06)}
.sync-16688-manual-stock h3{margin:0 0 4px;font-size:13px;color:var(--text)}
.sync-16688-manual-stock p{margin:0 0 8px;color:var(--muted);font-size:12px;line-height:1.45}
.sync-16688-manual-stock-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:12px;cursor:pointer}
.sync-16688-manual-stock-row input{width:auto;margin:0}
.sync-16688-manual-stock-row .sync-16688-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--mint)}
.sync-16688-manual-invalidate-btn{margin-bottom:8px;border-color:rgba(239,107,123,.55);color:var(--red)}
.sync-16688-relist-stock{border-color:rgba(91,141,239,.48);background:rgba(91,141,239,.06)}
.sync-16688-manual-relist-btn{margin-bottom:8px;border-color:rgba(91,141,239,.58);color:var(--blue)}
.sync-16688-orders{margin-top:12px;border-top:1px solid var(--line)}
.sync-16688-orders h3{margin:12px 0 7px;font-size:13px;color:var(--text)}
.sync-16688-order-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.sync-16688-order-row:first-of-type{border-top:0}
.sync-16688-order-row div{display:grid;gap:4px;min-width:0;font-size:12px;overflow-wrap:anywhere}
.sync-16688-order-row .sync-16688-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--amber)}
.sync-16688-release-btn{flex:0 0 auto;border-color:rgba(239,107,123,.55);color:var(--red);font-size:12px;padding:7px 9px}
.sync-16688-apply-btn{background:var(--blue);color:#fff}
.sync-16688-config-rows{display:grid;gap:10px}
.sync-16688-config-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.sync-16688-config-row label{margin:0}
.sync-16688-config-row input{margin-top:5px;padding:9px}
.sync-16688-config-row .sync-16688-config-enabled{display:flex;align-items:center;gap:7px;color:var(--text);font-size:12px}
.sync-16688-config-row .sync-16688-config-enabled input{width:auto;margin:0}
.sync-16688-config-remove{width:100%;border:1px solid rgba(239,107,123,.48);border-radius:var(--radius-sm);background:rgba(239,107,123,.09);color:var(--red);padding:8px;font-size:12px}
.info-list{margin:14px 0 0;padding:0 0 0 19px;color:var(--muted);font-size:13px;line-height:1.7}
.info-list li{padding:5px 0}
@media (max-width:420px){.inventory-actions{gap:5px}.inventory-actions .filter-btn{padding:6px 8px}.sync-16688-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.sync-16688-stock-row{grid-template-columns:1fr 1fr}.sync-16688-stock-row span{grid-column:1/-1}}
@media (max-width:420px){.sync-16688-order-row{align-items:flex-start;flex-direction:column}.sync-16688-release-btn{width:100%}}

/* ============================================================
   CDK 详情
   ============================================================ */
.cdk-row{cursor:pointer}
.cdk-row:active{background:var(--panel2)}
.cdk-code-box{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#0f131c;margin-top:6px}
.cdk-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;line-height:1.6;color:var(--mint);word-break:break-all;user-select:all}
.copy-btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:var(--radius-sm);padding:9px 12px;font-size:12px}
.cdk-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px}
.cdk-meta > div{padding:11px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}
.cdk-meta span{display:block;color:var(--muted);font-size:11px}
.cdk-meta strong{display:block;font-size:14px;margin-top:3px}
.cdk-status-result{display:none;margin-top:10px;padding:11px 12px;border-radius:var(--radius-sm);font-size:13px}
.cdk-status-result.ok{display:block;color:var(--mint);background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.35)}
.cdk-status-result.err{display:block;color:var(--red);background:rgba(239,107,123,.12);border:1px solid rgba(239,107,123,.35)}
.cdk-status-result:empty{display:none}

/* ============================================================
   记录详情
   ============================================================ */
.record-detail-ref{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:#0f131c}
.record-detail-ref > div{min-width:0;display:flex;flex-direction:column;gap:3px}
.record-detail-ref span,.record-detail-field span{color:var(--muted);font-size:11px}
.record-detail-ref code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--mint);font-size:14px;overflow-wrap:anywhere}
.record-detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;margin:14px 0 2px;border-top:1px solid var(--line)}
.record-detail-field{min-width:0;padding:11px 0;border-bottom:1px solid var(--line)}
.record-detail-field strong{display:block;margin-top:4px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.record-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.record-detail-actions .outline-btn,.record-detail-actions .danger-btn{margin-top:10px}
.detail-action{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.detail-action .icon{width:15px;height:15px}
#recordDetailReceipt{color:var(--amber);border-color:rgba(245,165,36,.52);background:rgba(245,165,36,.12)}
#recordDetailReceipt:hover{border-color:rgba(245,165,36,.8);background:rgba(245,165,36,.2)}
#recordDetailDelete{color:var(--red);border-color:rgba(239,107,123,.62);background:rgba(239,107,123,.12)}
#recordDetailDelete:hover{border-color:rgba(239,107,123,.9);background:rgba(239,107,123,.2)}
@media (max-width:360px){.record-detail-fields{grid-template-columns:1fr}.record-detail-actions{grid-template-columns:1fr}}

/* ============================================================
   Toast / 空状态 / 内嵌网页
   ============================================================ */
.toast{
  position:fixed;z-index:20;left:50%;bottom:90px;transform:translate(-50%,15px);
  background:var(--panel2);color:var(--text);border:1px solid var(--line);
  padding:10px 14px;border-radius:var(--radius-sm);font-size:12px;
  box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:.2s;
}
.toast.show{opacity:1;transform:translate(-50%,0)}
.sync-conflict{position:fixed;inset:0;z-index:25;background:rgba(3,5,9,.78);display:flex;align-items:flex-end;padding:14px}
.sync-conflict[hidden]{display:none}
.sync-conflict-panel{width:min(100%,640px);margin:0 auto;background:#151a23;border:1px solid rgba(245,165,36,.55);border-radius:16px;padding:18px;box-shadow:var(--shadow-md)}
.sync-conflict-head{display:flex;align-items:center;gap:9px;color:var(--amber)}
.sync-conflict-head .icon{width:22px;height:22px;flex:0 0 auto}
.sync-conflict-head h2{margin:0;color:var(--text);font-size:19px}
.sync-conflict-panel p{margin:12px 0;color:var(--muted);font-size:13px;line-height:1.6}
.sync-conflict-actions{display:grid;gap:8px}
.sync-conflict-actions .primary-btn{margin-top:0}
.secondary-btn,.text-btn{width:100%;border-radius:var(--radius-sm);padding:12px;font-size:13px}
.secondary-btn{border:1px solid var(--line);background:var(--panel2);color:var(--text)}
.text-btn{border:0;background:transparent;color:var(--muted)}
.secondary-btn:active,.text-btn:active{background:var(--panel2);color:var(--text)}
.empty{padding:28px 14px;text-align:center;color:var(--muted);font-size:12px;background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}
.webview-overlay{position:fixed;inset:0;z-index:30;background:var(--bg);display:none}
.webview-overlay.open{display:block}
.webview-frame{position:absolute;inset:0;border:0;width:100%;height:100%}
.webview-back{position:absolute;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:31;width:60px;height:60px;border-radius:50%;border:1px solid var(--line);background:rgba(18,21,28,.94);color:var(--text);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center}
.webview-back .icon{width:26px;height:26px}
.webview-back:active{background:var(--panel2)}
.webview-warn{position:absolute;top:0;left:0;right:0;z-index:32;padding:10px 14px 10px 52px;background:rgba(245,165,36,.16);border-bottom:1px solid rgba(245,165,36,.4);color:var(--amber);font-size:12px;line-height:1.5}
.webview-external{position:absolute;left:16px;bottom:calc(34px + env(safe-area-inset-bottom));z-index:31;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(18,21,28,.94);color:var(--text);font-size:13px;box-shadow:var(--shadow-md)}
.webview-external:active{background:var(--panel2)}
.daily-nav{display:flex;gap:8px;align-items:center;margin-bottom:14px}
.daily-range{display:flex;gap:8px;margin-bottom:12px}
.range-btn{flex:1;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:var(--radius-sm);padding:8px 0;font-size:13px}
.range-btn.active{color:var(--mint);border-color:var(--mint);background:rgba(52,211,153,.08);font-weight:700}
.daily-nav .filter-btn{flex:0 0 auto;padding:7px 9px}
.daily-date-box{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);overflow:hidden;cursor:pointer;padding:0 6px}
.daily-date-label{font-size:13px;color:var(--text);white-space:nowrap;pointer-events:none}
.daily-date{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;background:transparent}
.daily-report{display:grid;gap:8px}
.daily-report .report-card{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.daily-report .report-card span{font-size:12px;color:var(--muted)}
.daily-report .report-card strong{font-size:16px}
.daily-report .report-note{font-size:11px;color:var(--muted);padding:2px 2px 0}

/* ============================================================
   周期切换 / 待确认 / 分组
   ============================================================ */
.period-switch{display:flex;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px;gap:2px}
.period-btn{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px}
.period-btn.active{background:var(--mint);color:var(--mint-ink)}

.confirm-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  border:1px solid rgba(245,165,36,.5);background:rgba(245,165,36,.1);
  color:var(--amber);font-size:12px;font-weight:700;padding:7px 10px;border-radius:var(--radius-sm);
}
.confirm-btn .icon{width:13px;height:13px}
.confirm-btn:active{filter:brightness(1.15)}

.record-item.pending{
  border-left:4px solid var(--amber);border-color:var(--amber);
  background:linear-gradient(90deg,rgba(245,165,36,.12),rgba(245,165,36,.02) 75%,transparent);
  box-shadow:inset 0 0 0 1px rgba(245,165,36,.14);
}

.record-amount.pending-amt{color:var(--amber);font-size:13px}

.group-label{font-size:12px;color:var(--muted);margin:16px 2px 8px;font-weight:700;letter-spacing:.3px;display:flex;align-items:center;gap:5px}
.group-label .icon{width:13px;height:13px}
.group-label:first-child{margin-top:0}
.group-label.warn{color:var(--amber)}
.group-block{display:grid;gap:8px}
.batch-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.batch-meta div{padding:11px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}
.batch-meta span{display:block;color:var(--muted);font-size:10px}
.batch-meta strong{display:block;font-size:15px;margin-top:2px}
.batch-edit{margin-bottom:6px}
.batch-card-row{cursor:pointer}
.dup-list{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.dup-item{font-size:11px;color:var(--amber);background:rgba(245,165,36,.08);border:1px solid rgba(245,165,36,.3);border-radius:6px;padding:4px 8px;font-variant-numeric:tabular-nums}
.dup-item.muted{color:var(--muted);background:transparent;border-color:var(--line)}
.sync-status{font-size:12px;color:var(--mint);margin:0 0 10px;padding:9px 11px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}
.plat-row{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px;margin-bottom:8px}
.plat-head{display:flex;align-items:center;gap:7px;font-size:13px}
.plat-dot{width:8px;height:8px;border-radius:50%;flex:none}
.plat-count{margin-left:auto;color:var(--muted);font-size:11px}
.plat-bar{height:8px;background:var(--panel2);border-radius:5px;margin:8px 0 5px;overflow:hidden}
.plat-fill{height:100%;border-radius:5px;transition:width .3s ease}
.plat-nums{display:flex;justify-content:space-between;font-size:13px}
.plat-profit{color:var(--purple);font-size:11px}
.device-name-form{margin-bottom:10px}
.device-name-form label{display:block;margin-bottom:6px}
.devices-list{display:grid;gap:8px;margin-top:10px}
.device-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}
.device-main{min-width:0}
.device-main b{font-size:13px;display:flex;align-items:center;gap:5px}
.device-main small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.auth-gate{position:fixed;inset:0;z-index:100;background:#0a0c10;display:flex;align-items:center;justify-content:center;padding:24px}
.auth-card{max-width:340px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px;text-align:center}
.auth-card h2{font-size:18px;margin:0 0 12px}
.auth-card p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 12px}
.auth-device{font-size:11px;color:var(--amber);word-break:break-all}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.strip-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 6px;text-align:center}
.strip-card span{display:block;color:var(--muted);font-size:10px;margin-bottom:2px}
.strip-card strong{display:block;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:clip;letter-spacing:-.3px}
.strip-card.c-income strong{color:var(--mint)}
.strip-card.c-expense strong{color:var(--red)}
.strip-card.c-cdk strong{color:var(--blue)}
.strip-card.c-pending strong{color:var(--amber)}
.home-trend{margin-top:2px}
.day-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.day-summary div{padding:11px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);text-align:center}
.day-summary span{display:block;color:var(--muted);font-size:10px}
.day-summary strong{display:block;font-size:14px;margin-top:2px}
.bar-hit{cursor:pointer}
.bar-hit:hover{opacity:1 !important}
.trend-chart{position:relative}
.chart-tip{position:absolute;z-index:5;min-width:120px;background:rgba(24,28,37,.96);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.45);padding:9px 11px;pointer-events:none;transform:translateY(-6px);opacity:0;transition:opacity .18s ease,transform .18s ease;backdrop-filter:blur(4px)}
.chart-tip.show{opacity:1;transform:translateY(0)}
.chart-tip::after{content:'';position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--line)}
.chart-tip .tip-title{font-size:11px;color:var(--muted);margin-bottom:5px}
.chart-tip .tip-row{display:flex;justify-content:space-between;gap:14px;font-size:12px;padding:1px 0}
.chart-tip .tip-row b{font-weight:800}
.chart-tip .tip-row .up{color:var(--mint)}
.chart-tip .tip-row .dn{color:var(--red)}
.chart-tip .tip-row .cd{color:var(--blue)}
.chart-tip .tip-row .pr{color:var(--purple)}
.trend-block{margin-bottom:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:13px}
.trend-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.trend-modes{display:flex;gap:5px}
.tmode{flex:none;border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:7px;padding:4px 8px;font-size:11px}
.tmode.active{color:var(--mint);border-color:var(--mint);background:rgba(52,211,153,.08);font-weight:700}
.scale-btn{color:var(--amber);border-color:rgba(245,165,36,.35)}
.scale-btn.active{color:var(--amber);border-color:var(--amber);background:rgba(245,165,36,.1)}
.trend-chart{overflow-x:auto}
.trend-legend{display:flex;gap:16px;justify-content:center;margin-top:6px;font-size:11px;color:var(--muted)}
.trend-legend span{display:inline-flex;align-items:center;gap:5px}
.trend-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ============================================================
   计算器
   ============================================================ */
.calc-modal{width:min(330px,92%);padding:14px;padding-bottom:18px}
#calcModal{align-items:center}
.calc-screen{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-size:26px;font-weight:800;text-align:right;margin-bottom:10px;font-variant-numeric:tabular-nums;min-height:54px;word-break:break-all;color:var(--text)}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.calc-key{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:var(--radius-sm);padding:12px 0;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center}
.calc-key:active{background:var(--line)}
.calc-key.op{color:var(--mint);font-size:19px}
.calc-key.fn{color:var(--amber);font-size:13px}
.calc-key.eq{background:var(--mint);color:var(--mint-ink);border-color:var(--mint);font-size:20px}
.calc-key.zero{grid-column:span 2}
.input-calc-wrap{display:flex;gap:8px;align-items:center;width:100%}
.modal .input-calc-wrap input{flex:1;width:auto;margin-top:0}
.calc-trigger{flex:none;width:38px;height:38px;border:1px solid var(--line);background:var(--panel2);color:var(--mint);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}
.calc-trigger .icon{width:17px;height:17px}
.calc-trigger:active{background:var(--line)}

/* ============================================================
   响应式
   ============================================================ */
@media(max-width:420px){
  .app-shell{padding-left:14px;padding-right:14px}
  .quick-grid{gap:7px}
  .quick-btn{padding:9px 9px}
  .quick-btn b{font-size:11px}
  .hero-number{font-size:30px}
}

/* ===== 登录页 ===== */
.login-gate{position:fixed;inset:0;z-index:200;background:#0a0c10;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:100%;max-width:340px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg,16px);padding:24px;display:flex;flex-direction:column;gap:12px}
.login-card h2{margin:0 0 6px;font-size:19px;text-align:center}
.login-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.login-card input{padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel2,#161a22);color:var(--text,#f1f4f9);font-size:15px}
.login-error{color:var(--red,#ef6b7b);font-size:12px;min-height:16px;margin:0}
.login-card .primary-btn{width:100%;padding:12px}

.rule-row input.rule-price{background:var(--panel2,#161a22);border:1px solid var(--line);border-radius:7px;color:var(--text,#f1f4f9);font-size:13px;padding:4px 6px;width:64px;text-align:center}
.rule-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px}

.redeem-spinner{display:inline-block;width:22px;height:22px;border:3px solid rgba(52,211,153,.2);border-top-color:var(--mint,#34d399);border-radius:50%;animation:redeem-spin .8s linear infinite;vertical-align:-5px;margin-right:8px}
@keyframes redeem-spin{to{transform:rotate(360deg)}}
.redeem-progress{font-size:14px;color:var(--text,#f1f4f9)}
.redeem-terminal{font-size:13px;line-height:1.65}
.redeem-terminal-ok{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.08);color:var(--mint,#34d399)}
.redeem-terminal-error{border-color:rgba(239,107,123,.55);background:rgba(239,107,123,.08);color:var(--red,#ef6b7b)}
.redeem-terminal-warn{border-color:rgba(245,165,36,.55);background:rgba(245,165,36,.08);color:var(--amber,#f5a524)}
.redeem-result-title{font-size:14px;font-weight:800;margin-bottom:3px}
.redeem-result-body{color:var(--text,#f1f4f9);word-break:break-word}
.redeem-done{font-size:14px;font-weight:700}
.redeem-done.ok{color:var(--mint,#34d399)}
.redeem-done.fail{color:var(--red,#ef6b7b)}

.redeem-slider{position:relative;height:48px;border-radius:24px;background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.4);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}
.redeem-slider-track{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.redeem-slider-text{color:var(--mint,#34d399);font-size:14px;font-weight:600}
.redeem-slider-thumb{position:absolute;top:3px;left:3px;width:42px;height:42px;border-radius:50%;background:var(--mint,#34d399);color:#0a0c10;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;cursor:grab;z-index:2;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.redeem-slider-thumb:active{cursor:grabbing}
.redeem-slider.done .redeem-slider-thumb{background:var(--blue,#5b8def)}
.redeem-slider.done .redeem-slider-text{color:var(--blue,#5b8def)}
.redeem-slider.locked{opacity:.65;filter:saturate(.55)}
.redeem-slider.locked .redeem-slider-thumb{cursor:not-allowed}

/* ===== 充值弹窗 ===== */
.rd-card{display:flex;flex-wrap:wrap;gap:8px}
.rd-chip{flex:1 1 0;min-width:calc(50% - 4px);background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 11px}
.rd-chip span{display:block;color:var(--muted);font-size:10px;margin-bottom:3px}
.rd-chip b{font-size:13px;font-weight:700;word-break:break-all;line-height:1.35}
.rd-field{margin-top:14px}
.rd-field-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.rd-field-head span{color:var(--muted);font-size:11px}
.rd-link{background:none;border:0;color:var(--blue);font-size:11px;padding:2px 0;font-weight:600}
#redeemSession{width:100%;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);padding:11px;font-size:12px;line-height:1.55;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
#redeemSession:focus{outline:none;border-color:var(--blue)}
.rd-confirm{margin-top:16px;border:1px solid rgba(245,165,36,.35);background:rgba(245,165,36,.06);border-radius:var(--radius);padding:13px}
.rd-confirm-head{color:var(--amber);font-size:11px;font-weight:750;letter-spacing:.5px;margin-bottom:9px}
.rd-account{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px}
.rd-account .em{font-size:16px;font-weight:800;word-break:break-all;line-height:1.35;margin-bottom:6px}
.rd-account .row{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-top:5px}
.rd-account .row span{color:var(--muted);flex:0 0 auto}
.rd-account .row b{font-weight:600;word-break:break-all;text-align:right;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.rd-ghost{width:100%;background:transparent;border:1px dashed var(--line);color:var(--muted);font-size:12px;padding:9px;border-radius:var(--radius-sm);margin-bottom:12px}
.rd-ghost:active{color:var(--text);border-color:var(--blue)}
.rd-progress{margin-top:14px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;font-size:13px;line-height:1.6}
.upstream-stock-modal{max-width:560px}
.upstream-stock-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:11px;margin:-4px 0 12px}
.upstream-stock-state{border:1px dashed var(--line);border-radius:var(--radius-sm);padding:12px;color:var(--muted);font-size:12px;text-align:center}
.upstream-stock-state.error{border-color:rgba(239,107,123,.45);color:var(--red);text-align:left}
.upstream-stock-list{display:grid;gap:8px;margin-top:10px}
.upstream-stock-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.upstream-stock-row strong{display:block;font-size:13px;line-height:1.35}
.upstream-stock-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.45}
.upstream-stock-available{text-align:right;white-space:nowrap;min-width:54px}
.upstream-stock-available b{display:block;color:var(--mint);font-size:18px;line-height:1.1;font-variant-numeric:tabular-nums}
.upstream-stock-available small{margin-top:3px}
.redeem-task-details{margin-top:10px;padding:11px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:11.5px}
.redeem-task-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:7px;color:var(--muted);font-size:10px;letter-spacing:.4px}
.redeem-task-head strong{color:var(--text);font-size:12px;letter-spacing:0}
.redeem-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.redeem-task-row{min-width:0;padding:6px 7px;border:1px solid var(--line);border-radius:7px;background:rgba(10,12,16,.28)}
.redeem-task-row span{display:block;color:var(--muted);font-size:10px;margin-bottom:2px}
.redeem-task-row b{display:block;word-break:break-word;font-weight:650;line-height:1.35}
.redeem-task-stages{margin-top:8px;border-top:1px solid var(--line);padding-top:7px}
.redeem-task-stage{display:flex;justify-content:space-between;gap:8px;padding:4px 0;color:var(--muted)}
.redeem-task-stage b{color:var(--text);font-weight:600;text-align:right}
.redeem-task-unavailable{color:var(--muted);font-size:11px}
.rd-shot-overlay{position:fixed;inset:0;z-index:30;background:rgba(3,5,9,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:18px}
.rd-shot-overlay img{max-width:100%;max-height:74vh;border-radius:14px;box-shadow:var(--shadow-md)}
.rd-shot-tip{color:var(--muted);font-size:12px;text-align:center;line-height:1.6}
.rd-shot-close{background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:10px 26px;border-radius:var(--radius-sm);font-size:13px}

.rd-save{width:100%;border:0;border-radius:var(--radius-sm);padding:13px;background:var(--blue);color:#06121f;font-weight:750;font-size:14px;margin-bottom:12px;letter-spacing:.3px}
.rd-save:active{filter:brightness(1.1)}
.rd-save:disabled{opacity:.55}

/* 充值弹窗紧凑版 */
.rd-card{gap:6px}
.rd-chip{padding:7px 9px}
.rd-chip span{font-size:9px;margin-bottom:2px}
.rd-chip b{font-size:12px}
.rd-field{margin-top:10px}
#redeemSession{padding:9px;font-size:11.5px}
.rd-confirm{margin-top:10px;padding:11px}
.rd-confirm-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.rd-account{padding:10px;margin-bottom:8px}
.rd-account .em{font-size:15px;margin-bottom:4px}
.rd-account .row{font-size:11.5px;margin-top:4px}
.rd-save{padding:11px;font-size:13px;margin-bottom:9px}
.redeem-slider{height:46px}
.redeem-slider-thumb{width:40px;height:40px}
.rd-progress{margin-top:10px;padding:10px;font-size:12.5px}
.redeem-task-details{margin-top:8px;padding:9px}
#redeemPrepareBtn{margin-top:9px}

/* 充值弹窗高度：占屏更多，不再"只有一半" */
#redeemModal .modal{min-height:74vh}
#redeemModal .rd-card{flex:0 0 auto}
#redeemSession{min-height:132px}

/* 充值账号：横向窄条（不换行、不占高度） */
.cdk-redeem-line{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:6px 9px;background:var(--panel2);
  border:1px solid var(--line);border-radius:8px;font-size:11px;line-height:1.3;overflow:hidden}
.cdk-redeem-line span{color:var(--muted);flex:0 0 auto;font-size:10.5px}
.cdk-redeem-line b{flex:1 1 auto;min-width:0;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}
.cdk-redeem-line i{flex:0 0 auto;color:var(--muted);font-style:normal;font-size:10.5px}
.cdk-redeem-line:active{background:#1e2431}


/* 卡详情信息区（紧凑）：压缩4项，给账号腾空间 */
.cdk-meta{gap:6px;margin-top:12px}
.cdk-meta > div{padding:7px 10px}
.cdk-meta span{font-size:10px;letter-spacing:.2px}
.cdk-meta strong{font-size:13px;margin-top:2px}
/* 充值账号：占满整行，与上面同风格 */
.cdk-meta .cdk-acct{display:flex;align-items:baseline;gap:8px;margin-top:2px}
.cdk-meta .cdk-acct strong{font-size:12.5px;font-weight:650;margin-top:0;min-width:0;word-break:break-all;line-height:1.35}
.cdk-meta .cdk-acct i{font-style:normal;color:var(--muted);font-size:10.5px;flex:0 0 auto;white-space:nowrap}


/* 充值账号：与其他项同款框（标签+值都在框内），仅占满整行 */
.cdk-meta #cdkDetailAccountRow{grid-column:1/-1}
.cdk-meta #cdkDetailAccountRow .cdk-acct{display:flex;align-items:baseline;gap:8px;margin-top:3px}
.cdk-meta #cdkDetailAccountRow .cdk-acct strong{font-size:13px;font-weight:650;margin:0;min-width:0;word-break:break-all;line-height:1.35}
.cdk-meta #cdkDetailAccountRow .cdk-acct i{flex:0 0 auto;font-style:normal;color:var(--muted);font-size:10.5px;white-space:nowrap}

/* 记录页 v2：右侧统一 + 副行精简 + 操作收起 */
.record-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-sub2{font-size:10.5px;color:var(--muted);margin-top:1px;text-align:right;white-space:nowrap}
.record-amount.coin{color:var(--purple,#a78bfa)}
.record-amount.profit{color:var(--mint)}
.record-amount.negative{color:var(--red)}
.more-btn{background:none;border:0;color:var(--muted);font-size:17px;line-height:1;padding:0 6px;margin-top:2px;font-weight:700}
.more-btn:active{color:var(--text)}
.rec-actions{display:none;gap:6px;margin-top:4px;align-items:center}
.record-item.show-actions .rec-actions{display:inline-flex}
.record-item.show-actions .more-btn{display:none}
.record-item{position:relative}

/* 账号值内层：透明无框（防"框中框"） */
.cdk-meta #cdkDetailAccountRow .cdk-acct,
.cdk-meta .cdk-acct{
  background:none !important;border:0 !important;border-radius:0 !important;
  padding:0 !important;box-shadow:none !important;
  display:flex;align-items:baseline;gap:8px;margin-top:3px;
}
.cdk-meta .cdk-acct strong{font-size:13px;font-weight:650;margin:0;min-width:0;word-break:break-all;line-height:1.35}
.cdk-meta .cdk-acct i{flex:0 0 auto;font-style:normal;color:var(--muted);font-size:10.5px;white-space:nowrap}

/* 账号标签行：左标签、右时间；账号值单独一行 */
.cdk-meta #cdkDetailAccountRow > span.cdk-lbl{
  display:flex !important;align-items:center;justify-content:space-between;gap:10px;
  font-size:10px;color:var(--muted);letter-spacing:.2px;
}
.cdk-meta #cdkDetailAccountRow > span.cdk-lbl i{
  font-style:normal;font-weight:400;font-size:10px;color:var(--muted);
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap;
}
.cdk-meta #cdkDetailAccountRow .cdk-acct{display:block !important;margin-top:3px}
.cdk-meta #cdkDetailAccountRow .cdk-acct strong{
  font-size:13px;font-weight:650;line-height:1.35;word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}

/* 记录页 v3：待收货瘦身 + 账号标题 + 成本可见 */
.record-item.pending{
  border-left:3px solid var(--amber);border-color:var(--line);
  background:none;box-shadow:none;
}
.confirm-btn{padding:5px 9px;font-size:11px;gap:4px}
.confirm-btn .icon{width:12px;height:12px}
/* 副行不再截断，保证"成本"一定看得见 */
.record-sub{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.5}
/* 用账号当标题时用等宽小字 */
.record-title.is-acct{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.5px;font-weight:600}

/* 记录页 v4：待收货与已收货完全同款 */
.record-item.pending{border-left:0;border-color:var(--line);background:none;box-shadow:none}
.record-item{padding:12px 13px}
.record-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.rec-act-row{display:flex;align-items:center;gap:6px;margin-top:4px}
.more-btn{margin-top:0;font-size:16px;padding:0 4px}
.record-amount{font-size:15px;line-height:1.25}
.record-sub2{font-size:10.5px}
.confirm-btn{padding:4px 8px;font-size:11px}
.record-title{font-size:13px}
.record-title.is-acct{font-size:12.5px}

/* ⋯ 展开区里的「已收货」按钮 */
.recv-btn{border:1px solid rgba(52,211,153,.5);background:rgba(52,211,153,.12);color:var(--mint);
  font-size:11px;font-weight:700;padding:4px 9px;border-radius:8px;white-space:nowrap}
.recv-btn:active{filter:brightness(1.15)}

/* 记录页 v6：左滑操作 */
.record-item.swipe-row{display:block;padding:0;position:relative;overflow:hidden}
.swipe-row .swipe-body{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:12px 13px;background:var(--panel);border-radius:inherit;position:relative;z-index:2;
  transition:transform .18s ease;will-change:transform}
.swipe-row.swiped .swipe-body{transform:translateX(-180px)}
.swipe-row .swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:stretch;z-index:1}
.swipe-row .swipe-actions button{border:0;padding:0 15px;font-size:12px;font-weight:750;color:#0b0e13;white-space:nowrap}
.swipe-row .sw-recv{background:rgba(52,211,153,.9)}
.swipe-row .sw-edit{background:rgba(91,141,239,.9)}
.swipe-row .sw-del{background:rgba(239,107,123,.9)}

/* 记录页 v7：渠道配色（边框 + 低透明度填充，底色不透明所以滑动不透色） */
/* 滑动要顺滑；操作条严格位于下层，且行体不透明 */
.swipe-row .swipe-body{background-color:var(--panel);transition:transform .22s cubic-bezier(.22,.61,.36,1)}
.swipe-row .swipe-actions{pointer-events:auto}
.swipe-row:not(.swiped) .swipe-actions{pointer-events:none}

/* 记录页 v11：操作条与内容并排（同层一起滑，颜色不会再透上来） */
.record-item.swipe-row{display:block;padding:0;position:relative;overflow:hidden;background:transparent;touch-action:pan-y}
.swipe-row .swipe-body{display:flex;align-items:stretch;width:calc(100% + 94px);padding:0;gap:0;background:transparent;
  transition:transform .22s cubic-bezier(.22,.61,.36,1);will-change:transform}
.swipe-row.swiped .swipe-body{transform:translateX(-94px)}
.swipe-row .swipe-content{flex:0 0 calc(100% - 94px);box-sizing:border-box;display:flex;justify-content:space-between;
  align-items:center;gap:12px;padding:12px 13px;background-color:var(--panel)}
.swipe-row .swipe-content .record-main{flex:1 1 auto;min-width:0}
.swipe-row .swipe-actions{position:static;top:auto;right:auto;bottom:auto;left:auto;z-index:auto;
  flex:0 0 94px;display:flex;align-items:stretch}
.swipe-row .swipe-actions button{flex:1 1 auto;padding:0 6px;border:0;font-size:12px;font-weight:750;color:#0b0e13;white-space:nowrap}
.swipe-row .sw-detail{background:rgba(91,141,239,.9)}
/* 副行拆两行：第一行只放渠道标签 */
.record-sub .tag{margin-left:0}
.record-meta{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}

/* 记录页 v12：行内不放 ⋯；取消收货兜底按钮 */
.swipe-row .sw-unrecv{background:rgba(138,147,165,.85)}

/* 记录页 v13：待收货 → 行中间一枚琥珀徽章，天数挪到渠道标签那行 */
.record-item.rec-wait{border-color:rgba(245,165,36,.45)}
.record-item.rec-wait .swipe-content{background-color:#221d15}
.rec-mid{flex:0 0 auto;margin-left:auto;margin-right:auto;display:flex;align-items:center;justify-content:center}
.rec-badge{background:var(--amber);color:#20150a;font-size:12.5px;font-weight:800;padding:4px 11px;
  border-radius:9px;letter-spacing:.3px;white-space:nowrap}
.tag.rec-days{color:var(--amber);background:rgba(245,165,36,.15)}
.record-sub .tag + .tag{margin-left:5px}

/* 记录页 v14：待收货徽章竖排贴行最右 —— 位置恒定，不再被邮箱长度推着跑，邮箱也不再被切 */
.rec-mid{margin-left:auto;margin-right:0}
.rec-badge{font-size:10.5px;padding:7px 4px;border-radius:7px;letter-spacing:1.5px;writing-mode:vertical-rl}

/* 记录页 v15：右侧数字列永不压缩（利润/售价必须完整），让邮箱列去让位 */
.record-item.swipe-row .record-right{flex:0 0 auto}
.record-item.swipe-row.rec-wait .swipe-content{gap:10px}
.record-item.swipe-row .record-title.is-acct{font-size:12px}

/* 记录页 v16：根治"邮箱长→利润被裁" —— 内容层不许被 nowrap 邮箱撑宽 */
.swipe-row .swipe-content{min-width:0}
.swipe-row .swipe-content .record-main{min-width:0;overflow:hidden}
.swipe-row .swipe-content .record-title{min-width:0;max-width:100%}

/* 记录页 v26：待收货徽章可点（点了＝已收货） */
.rec-badge{border:0;appearance:none;cursor:pointer;font-family:inherit;line-height:1.35;
  -webkit-tap-highlight-color:transparent;user-select:none;touch-action:manipulation}
.rec-badge:active{filter:brightness(1.18)}

.tag.p-16688{color:var(--cyan);background:rgba(34,211,238,.12)}

.inv-search{margin:10px 0}
.inv-search input{width:100%;box-sizing:border-box;padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:14px;outline:none}
.inv-search input:focus{border-color:var(--blue)}

/* ===== 修复：标题被挤成两行 =====
   原规则 .secondary-btn,.text-btn{width:100%} 让标题行的按钮撑满整行，
   导致「最近记录」换行。这里把标题行的按钮还原成内容宽度。 */
.section-head .text-btn,
.section-head .secondary-btn{width:auto;flex:0 0 auto;padding:4px 6px}
.section-head h2{white-space:nowrap;flex:0 0 auto}

/* ============================================================
   充值页（独立页面）+ 顶栏齿轮
   追加到 styles.css 末尾；不改动任何原有规则
   ============================================================ */

/* --- 顶栏：标题 + 齿轮（设置入口）--- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gear-btn{
  width:34px;height:34px;flex:0 0 34px;padding:0;min-height:0;
  display:grid;place-items:center;border-radius:10px;
  border:1px solid var(--line);background:var(--panel);color:var(--muted);
}
.gear-btn .icon{width:16px;height:16px}
.gear-btn:active{background:var(--panel2);color:var(--text)}
/* 齿轮复用了 .nav-item 以便共用点击逻辑，但不要底部导航那种选中块 */
.gear-btn.active{background:var(--panel2);color:var(--text);border-color:var(--line2)}

/* --- 库存概览（可用 CDK / USDT）--- */
.recharge-stock{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.recharge-stock>div{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:10px 12px;
}
.recharge-stock span{display:block;font-size:10px;color:var(--muted);letter-spacing:.2px;margin-bottom:2px}
.recharge-stock strong{
  display:block;font-size:19px;font-weight:700;letter-spacing:-.4px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-variant-numeric:tabular-nums;
}
.recharge-stock>div:first-child strong{color:var(--blue)}
.recharge-stock>div:last-child strong{color:var(--cyan);font-size:15px}

/* --- 可选卡片列表 --- */
#rcList .cdk-row{cursor:pointer;transition:border-color .15s ease,background .15s ease}
#rcList .cdk-row:active{background:var(--panel2)}
#rcList .rc-avail{border-color:rgba(61,220,151,.28)}

/* --- 流程区：页面里比弹窗宽松，其余沿用原有 .rd-* 样式 --- */
#rcFlow{margin-top:2px}
#rcFlow #redeemSession{min-height:120px;font-size:13px;line-height:1.6}
#rcChangeCard{font-size:11.5px;min-height:34px;padding:7px 10px}
#view-recharge .section-head.page-head{margin-bottom:12px}

/* --- 窄屏微调 --- */
@media(max-width:360px){
  .recharge-stock{grid-template-columns:1fr}
  .recharge-stock>div:last-child strong{font-size:17px}
}



/* --- 齿轮图标（后加的，需要单独的尺寸规则）--- */
.gear-btn .icon svg{width:16px;height:16px;display:block}
.gear-btn .icon{display:grid;place-items:center}

/* ============================================================
   充值页：三个功能入口 + 面板
   追加到 styles.css 末尾
   ============================================================ */

/* 三个功能按钮 */
.rc-feat{display:flex;gap:8px;margin-bottom:14px}
.rc-feat-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:12px 4px;color:var(--muted);font-size:10.5px;font-weight:600;
  min-height:0;line-height:1.2;
}
.rc-feat-btn i{font-size:17px;font-style:normal;line-height:1}
.rc-feat-btn:active{background:var(--panel2)}
.rc-feat-btn.active{border-color:var(--mint);background:#0f1a16;color:var(--mint);font-weight:700}

/* 面板外壳 */
.rc-panel-body{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px;
}

/* 上游库存：复用原有 .upstream-stock-* 样式，这里只保证在页面里显示正常 */
#view-recharge .upstream-stock-list{display:grid;gap:8px}
#view-recharge .upstream-stock-state{
  font-size:11.5px;color:var(--muted);line-height:1.6;text-align:center;padding:10px 4px;
}
#view-recharge .upstream-stock-state.error{color:var(--red)}

/* 查卡状态的结果框（页面上给点留白，别贴着边） */
#view-recharge .batch-result{margin-bottom:10px}

.audit-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.audit-title-row h3{margin:0}
.audit-title-row .form-hint{margin:6px 0 0}
.audit-log-list{display:grid;gap:9px;margin-top:12px}
.audit-log-item{min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.audit-log-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;font-size:13px}
.audit-log-head strong{overflow-wrap:anywhere}
.audit-log-head span{flex:0 0 auto;color:var(--muted);font-size:11px}
.audit-log-meta{margin-top:5px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.audit-log-item details{margin-top:8px;border-top:1px solid var(--line);padding-top:7px}
.audit-log-item summary{color:var(--blue);font-size:12px;cursor:pointer}
.audit-log-item pre{max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:8px 0 0;color:var(--text);font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.audit-more-btn{width:100%;margin-top:10px}
.audit-more-btn[hidden]{display:none}
@media(max-width:420px){.audit-title-row{align-items:stretch;flex-direction:column}.audit-title-row .outline-btn{width:100%}}


.card-platform-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 18px}
.card-platform-stat,.card-platform-card,.card-platform-event{min-width:0;padding:13px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.card-platform-stat span,.card-platform-card small,.card-platform-event small{display:block;color:var(--muted);font-size:11px}
.card-platform-stat strong{display:block;margin-top:4px;font-size:18px;overflow-wrap:anywhere}
.card-platform-stat .cp-sub{margin-top:4px;color:var(--muted);font-size:10px}
.card-platform-stat.cp-total strong{color:var(--mint)}
.card-platform-card-list,.card-platform-event-list{display:grid;gap:8px;margin:10px 0 18px}
.card-platform-card-head,.card-platform-event-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.card-platform-card-head strong,.card-platform-event-head strong{font-size:13px}
.card-platform-card-meta,.card-platform-event-meta{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:8px;color:var(--muted);font-size:11px}
.card-platform-event-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}
.card-platform-event-actions select{min-width:0;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);padding:9px;font-size:12px}
.card-platform-event-actions button{white-space:nowrap;padding:8px 11px}
.cp-badge{display:inline-flex;padding:3px 7px;border-radius:7px;font-size:10px;background:var(--panel2);color:var(--muted)}
.cp-badge.cp-linked{color:var(--mint);background:rgba(52,211,153,.13)}
.cp-mode{margin-top:8px}
.cp-mode select{border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:6px;font-size:11px}
.cp-muted{color:var(--muted);font-size:11px;line-height:1.5}
.cp-error{color:var(--red)}
.cp-good{color:var(--mint)}
@media(min-width:520px){.card-platform-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* 手机应用外壳：仅当前内容区滚动 */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
.app-shell{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;padding-bottom:0;overflow:hidden}
.topbar{flex:0 0 auto;padding-bottom:8px;margin-bottom:5px}
.view.active-view{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 1px calc(105px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:100px}
.modal{max-height:90dvh;overscroll-behavior:contain}
.cp-sync-note{font-size:11px;color:var(--muted);margin:0 0 12px}
.cp-page-head{margin-bottom:5px}
.cp-overview{display:flex;align-items:center;gap:16px;border:1px solid rgba(52,211,153,.2);border-radius:18px;padding:20px;background:linear-gradient(135deg,rgba(52,211,153,.13),transparent 85%),var(--panel)}
.cp-overview-main{flex:1;min-width:0}
.cp-overview-main>span,.cp-overview-side>span{font-size:12px;color:var(--muted)}
.cp-overview-main>strong{display:block;font-size:34px;line-height:1.3;letter-spacing:-1px;color:var(--mint);margin:5px 0}
.cp-overview-main strong small{font-size:14px;letter-spacing:0}
.cp-overview-main p{margin:0;color:var(--muted);font-size:10px}
.cp-overview-side{border-left:1px solid var(--line);padding-left:15px;display:grid;gap:5px;flex-shrink:0}
.cp-overview-side strong{font-size:15px}.cp-overview-side small{font-size:10px;color:var(--muted)}
.cp-tabs{display:grid;grid-template-columns:1fr 1fr 1.3fr;background:var(--panel);border:1px solid var(--line);padding:4px;border-radius:12px;gap:4px;margin:18px 0 14px}
.cp-tabs button{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:10px 3px;font-size:12px}
.cp-tabs button.active{color:var(--text);background:var(--panel2);font-weight:700}
.cp-tabs button span{margin-left:3px;font-size:10px;color:var(--mint)}
.cp-business-list{display:grid;gap:12px}
.cp-business{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:16px}
.cp-business-top,.cp-business-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cp-product{font-size:12px;font-weight:700;letter-spacing:.2px}
.cp-status{font-size:10px;color:var(--amber);padding:4px 7px;border-radius:6px;background:rgba(245,165,36,.09)}
.cp-status.cp-linked{color:var(--mint);background:rgba(52,211,153,.1)}
.cp-business-account{font-size:14px;margin:12px 0 17px;overflow-wrap:anywhere}
.cp-business-bottom small{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}
.cp-business-bottom strong{font-size:20px}
.cp-business-bottom button{width:auto;padding:9px 14px;font-size:12px;margin:0}
.cp-business-meta{display:flex;gap:6px 12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:11px;margin-top:15px;font-size:10px;color:var(--muted)}
.cp-record-ref{font-size:10px;color:var(--mint);margin-top:7px}
.cp-empty{border:1px dashed var(--line);border-radius:16px;padding:30px 20px;text-align:center}
.cp-empty strong{font-size:15px}.cp-empty p{font-size:12px;line-height:1.7;color:var(--muted)}
.cp-funds[hidden],#cpBusinessPanel[hidden],#cpExistingFields[hidden],#cpNewFields[hidden],#cpCostModeLabel[hidden]{display:none!important}
.cp-ledger-section{border:1px solid var(--line);background:var(--panel);padding:14px;border-radius:12px;margin:10px 0}
.cp-ledger-section>summary{font-size:13px;font-weight:650;cursor:pointer}
.cp-ledger-section>summary small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:5px}
.cp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cp-booking-modal>label,.cp-booking-modal div>label:not(.cp-event-choice){display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:12px;color:var(--muted)}
.cp-booking-modal select,.cp-booking-modal input:not([type=checkbox]){width:100%;min-width:0;padding:11px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:var(--panel2)}
.cp-booking-modal input[readonly]{opacity:.65}
.cp-booking-section{margin-top:23px;margin-bottom:5px}
.cp-booking-section h3{font-size:13px}
.cp-event-choice{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;margin:9px 0;background:var(--panel2);cursor:pointer}
.cp-event-choice input{accent-color:var(--mint);width:18px;height:18px;flex:none}
.cp-event-choice strong{display:block;font-size:12px;color:var(--text)}
.cp-event-choice small{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.cp-booking-preview{margin:18px 0 8px;padding:14px;border:1px solid rgba(52,211,153,.2);border-radius:12px;background:rgba(52,211,153,.04)}
.cp-booking-preview>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:5px 0}
.cp-booking-preview>div span{color:var(--muted)}
.cp-booking-preview>.cp-profit{margin-top:6px;padding-top:10px;border-top:1px solid var(--line);color:var(--mint);font-size:15px}
.cp-booking-preview>small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:10px}
.cp-form-error{color:var(--red);font-size:12px;line-height:1.6}
.cp-record-tag{display:inline-block;font-size:10px;color:var(--mint);background:rgba(52,211,153,.09);padding:1px 5px;border-radius:4px}
@media(max-width:360px){.cp-overview{padding:15px;gap:10px}.cp-overview-main>strong{font-size:29px}.cp-overview-side{padding-left:10px}.cp-overview-side strong{font-size:13px}}

/* 原收入表单统一承接卡台履约 */
.unified-income{padding:22px;max-width:560px}
.unified-income .modal-head{margin-bottom:16px}
.income-source-switch{display:flex;gap:4px;padding:4px;background:var(--panel2);border-radius:11px;margin-bottom:18px}
.income-source-switch button{flex:1;border:0;padding:10px 6px;background:transparent;color:var(--muted);border-radius:8px;font-size:13px}
.income-source-switch button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.2);font-weight:650}
#cpNewFields[hidden],#cpOrderPicker[hidden],#cpIncomeCardFields[hidden],#cpIncomeCosts[hidden]{display:none!important}
.unified-income label{font-size:12px}
.unified-income label input,.unified-income label select{min-height:44px}
.income-order-context{display:grid;gap:5px;border-left:3px solid var(--mint);background:rgba(52,211,153,.06);padding:12px 14px;border-radius:0 10px 10px 0;margin:12px 0}
.income-order-context strong{font-size:12px}.income-order-context span{font-size:13px;overflow-wrap:anywhere}.income-order-context small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.income-booking-kind{display:flex;gap:20px;margin:16px 0 8px;border-bottom:1px solid var(--line)}
.income-booking-kind button{border:0;border-bottom:2px solid transparent;padding:8px 0 10px;background:transparent;color:var(--muted);font-size:12px}
.income-booking-kind button.active{color:var(--mint);border-bottom-color:var(--mint)}
.income-cost-detail{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:16px;background:var(--panel2)}
.income-cost-detail>summary{cursor:pointer;font-size:12px;line-height:1.8}.income-cost-detail>summary strong{float:right;font-size:11px;color:var(--mint);font-weight:550}
.income-cost-detail h3{font-size:12px;margin:16px 0 4px}
.income-cost-detail .cp-event-choice{background:var(--panel);margin:8px 0}
.income-advanced{margin:12px 0;font-size:11px;color:var(--muted)}.income-advanced>summary{cursor:pointer;padding:6px 0}
.income-total{padding:16px;border-radius:12px;background:rgba(52,211,153,.06);margin:18px 0 12px}
.income-preview-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px}
.income-preview-top>strong{font-size:25px;font-weight:750;color:var(--mint);letter-spacing:-.5px}
.income-preview-parts{display:flex;justify-content:space-between;gap:6px;margin-top:13px;padding-top:12px;border-top:1px solid rgba(52,211,153,.12)}
.income-preview-parts>span{display:grid;gap:4px;font-size:10px;color:var(--muted)}
.income-preview-parts b{color:var(--text);font-size:12px;font-weight:500}
.income-total>p{font-size:10px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.unified-income>#cpBookingSave{margin-top:4px;min-height:46px}
@media(max-width:420px){.unified-income{padding:18px}.income-cost-detail>summary strong{float:none;display:block;margin-left:15px}.income-preview-top>strong{font-size:23px}}

.cp-cost-inline{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:10px;font-size:11px;line-height:1.6;color:var(--muted)}
.cp-cost-inline span{white-space:nowrap}

.topbar-actions{display:flex;align-items:center;gap:8px}
.page-refresh-btn{display:flex;align-items:center;gap:5px;height:34px;min-height:0;padding:0 10px;margin:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--muted);font-size:12px;cursor:pointer}
.page-refresh-btn>span{font-size:19px;line-height:1}

/* Compact CDK redemption inbox. */
.notification-entry{position:relative}
.notification-badge{position:absolute;right:-5px;top:-6px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:#f47286;color:#fff;font-size:10px;font-weight:700;line-height:17px;box-shadow:0 0 0 2px var(--bg)}
.notification-badge[hidden]{display:none}
.notification-page-head{align-items:center}
.notification-page-head h2{margin:0}
.notification-read-all{width:auto;min-height:32px;margin:0;padding:6px 10px;font-size:12px}
.notification-read-all:disabled{opacity:.5;cursor:default}
.notification-inbox-list{display:grid;gap:8px}
.notification-item{padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.notification-item.is-unread{border-color:color-mix(in srgb,var(--blue) 48%,var(--line))}
.notification-item-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.notification-item-title{display:flex;align-items:center;gap:7px;min-width:0;font-size:13px;font-weight:650}
.notification-item-state{font-size:10px;color:var(--muted);white-space:nowrap}
.notification-item.is-unread .notification-item-state{color:var(--blue)}
.notification-item-message{margin-top:6px;font-size:12px;line-height:1.55;color:var(--text);overflow-wrap:anywhere}
.notification-item-time{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.notification-unread-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--blue)}
.notification-empty{padding:24px 14px;text-align:center;color:var(--muted);font-size:13px}
@media(max-width:390px){.topbar-actions{gap:5px}.page-refresh-btn{padding:0 7px}.notification-item{padding:11px 12px}}

/* Booked card orders share the ledger record amounts. */
.cp-booked-status{display:flex;gap:6px;flex:none}
.cp-booked-main{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}
.cp-booked-main .cp-business-account{margin:0;min-width:0;font-size:13px}
.cp-booked-profit{flex:none;text-align:right;color:var(--mint)}.cp-booked-profit small{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.cp-booked-profit strong{font-size:23px;letter-spacing:-.4px}.cp-booked-profit.is-negative{color:var(--red,#f87171)}
.cp-booked-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cp-booked-metrics span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.cp-booked-metrics strong{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.cp-booked-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.cp-booked-footer .cp-record-ref{margin:0}.cp-booked-footer small{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:3px}.cp-booked-footer button{width:auto;margin:0;padding:7px 10px;font-size:11px;flex:none}

/* Card platform funds: shared overview and compact, readable rows. */
#cpOverview.cp-overview{display:block;padding:17px 18px;background:var(--panel);border-color:var(--line);border-radius:16px}
.cp-fund-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.cp-fund-top>div>span{font-size:12px;color:var(--muted)}
.cp-fund-top>div>strong{display:block;color:var(--mint);font-size:30px;line-height:1.3;margin-top:4px;letter-spacing:-.7px}
.cp-fund-top strong small{font-size:13px;letter-spacing:0}
.cp-fund-caption{font-size:10px;line-height:1.7;text-align:right;color:var(--muted)}
.cp-fund-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 12px;padding-top:15px}
.cp-fund-metric{min-width:0;display:grid;gap:5px}
.cp-fund-metric>span{font-size:11px;color:var(--muted)}
.cp-fund-metric>strong{font-size:17px;white-space:nowrap}.cp-fund-metric strong small{font-size:10px;color:var(--muted)}
.cp-fund-metric>small{font-size:10px;color:var(--muted);line-height:1.5}
.cp-funds-heading{margin:22px 0 10px}.cp-funds-heading h3{font-size:14px;margin:0}.cp-funds-heading .cp-muted{font-size:10px}
.cp-simple-card,.cp-transfer-row{padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.cp-simple-card-top,.cp-simple-card-main,.cp-transfer-head,.cp-transfer-values,.cp-transfer-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cp-simple-card-top>strong,.cp-transfer-head>strong{font-size:12px}.cp-card-state{font-size:10px;color:var(--mint)}
.cp-simple-card-main{margin:10px 0 7px}.cp-simple-card-main>strong{font-size:22px}.cp-simple-card-main strong small{font-size:11px;color:var(--muted)}
.cp-simple-card-main>span,.cp-simple-card-foot{font-size:10px;color:var(--muted)}
.cp-transfer-head>span{font-size:10px;color:var(--muted)}.cp-transfer-values{margin:12px 0 10px;justify-content:flex-start;gap:24px;font-size:11px;color:var(--muted)}
.cp-transfer-values strong{color:var(--text);font-size:14px;margin-left:4px}.cp-transfer-foot{font-size:10px;color:var(--muted)}.cp-transfer-foot button{font-size:11px}
.cp-fee-note{padding:10px 12px;background:rgba(245,165,36,.07);color:var(--amber);border-radius:9px;font-size:11px;line-height:1.6;margin:10px 0}
.cp-fee-details{margin:10px 0 14px;font-size:12px}.cp-fee-details summary{cursor:pointer;padding:8px 0}.cp-fee-details summary small{font-size:10px;color:var(--muted);margin-left:8px}
@media(max-width:480px){.cp-fund-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.cp-transfer-values{gap:16px}}

#cpOverview .cp-fund-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}
@media(max-width:360px){#cpOverview .cp-fund-metric>strong{font-size:15px}}
.direct-head-actions{display:flex;align-items:center;gap:8px}
.direct-open-btn{display:inline-flex;align-items:center;gap:6px;color:var(--mint)}
.direct-page{width:100%;max-width:660px;margin:0 auto;padding:0 2px 30px;letter-spacing:0}
.direct-page-head{display:flex;align-items:center;gap:12px;padding:5px 0 22px}
.direct-page-head h2{font-size:16px;margin:0}
.direct-back-button,.direct-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text)}
.direct-back-button{font-size:23px}
.direct-icon-btn .icon{width:17px;height:17px}
.direct-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0 0 28px;gap:8px}
.direct-stepper li{display:flex;align-items:center;gap:7px;padding-bottom:12px;border-bottom:2px solid var(--line);color:var(--muted)}
.direct-stepper li>span{display:flex;align-items:center;justify-content:center;width:23px;height:23px;flex-shrink:0;border-radius:50%;background:var(--panel2);font-size:11px}
.direct-stepper b{font-size:12px;font-weight:500}
.direct-stepper .icon{width:14px;height:14px}
.direct-stepper .is-current{border-color:var(--mint);color:var(--text)}
.direct-stepper .is-current>span{background:var(--mint);color:var(--mint-ink);font-weight:700}
.direct-stepper .is-complete{color:var(--mint)}
.direct-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0 12px;min-height:25px}
.direct-section-title:first-child{margin-top:0}
.direct-section-title h3{font-size:15px;margin:0;font-weight:600}
.direct-mode{display:flex;width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px;margin-bottom:22px}
.direct-mode label{flex:1;position:relative;cursor:pointer}
.direct-mode span{display:block;text-align:center;padding:9px 6px;font-size:13px;border-radius:5px;color:var(--muted)}
.direct-mode input,.direct-plan-option input,.direct-card-option input,.direct-switch input{position:absolute;opacity:0;width:1px;height:1px}
.direct-mode input:checked+span{background:var(--panel);color:var(--text)}
.direct-mode input:focus-visible+span{outline:2px solid var(--mint)}
.direct-field{display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:12px;margin:18px 0}
.direct-field input,.direct-field select,.direct-field textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:13px;color:var(--text);font-size:14px}
.direct-field textarea{resize:vertical;min-height:155px;line-height:1.6}
.direct-field :focus{border-color:var(--mint)}
.direct-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:24px;margin-top:18px;border-top:1px solid var(--line)}
.direct-actions button{width:auto;min-width:0;height:46px;min-height:46px;flex:1 1 0;margin:0;padding:0 16px;font-size:14px;line-height:1;border-radius:var(--radius-sm)}
.direct-secondary,.direct-danger{padding:11px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--text)}
.direct-danger{color:var(--red);border-color:var(--red)}
.direct-page button:disabled{opacity:.45;cursor:default}
.direct-account-line{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:0 0 20px;border-bottom:1px solid var(--line)}
.direct-account-line>div{display:flex;gap:9px;align-items:flex-start;min-width:0}
.direct-account-line .icon{color:var(--mint);width:18px;height:18px;flex-shrink:0;margin-top:2px}
.direct-account-line strong{font-size:14px;overflow-wrap:anywhere;font-weight:500}
.direct-account-line>span{color:var(--muted);font-size:12px;flex-shrink:0}
.direct-plan-list{border-top:1px solid var(--line)}
.direct-plan-option{position:relative;display:flex;align-items:center;gap:12px;padding:16px 12px;min-height:57px;border-bottom:1px solid var(--line);cursor:pointer}
.direct-plan-option.is-selected{background:var(--panel)}
.direct-plan-option strong{font-size:14px;font-weight:500}
.direct-selection-dot{width:17px;height:17px;border:1px solid var(--muted);border-radius:50%;flex-shrink:0}
.is-selected .direct-selection-dot{border:5px solid var(--mint)}
.direct-plan-price{margin-left:auto;font-size:17px;font-weight:600;white-space:nowrap}
.direct-plan-price small,.direct-amount small,.direct-card-bottom small,.direct-balance-bar small{font-size:11px;color:var(--muted);font-weight:400}
.direct-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.direct-card-option{position:relative;display:flex;flex-direction:column;gap:17px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;min-width:0}
.direct-card-option.is-selected{border-color:var(--mint)}
.direct-card-top{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}
.direct-card-top .icon{width:17px;height:17px}
.direct-card-top .direct-selection-dot{margin-left:auto}
.direct-card-option>strong{font-size:17px;font-weight:500}
.direct-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}
.direct-card-bottom>span{font-size:11px;color:var(--muted)}
.direct-card-bottom b{font-size:16px;font-weight:600;overflow-wrap:anywhere}
.direct-balance-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 0;color:var(--muted);font-size:12px}
.direct-balance-bar strong{color:var(--text);font-size:16px}
.direct-topup{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.direct-topup summary{display:flex;align-items:center;gap:9px;padding:16px 0;list-style:none;cursor:pointer;font-size:13px}
.direct-topup summary::-webkit-details-marker{display:none}
.direct-topup summary .icon{width:18px;height:18px;color:var(--mint)}
.direct-topup summary b{margin-left:auto;font-size:18px;color:var(--muted)}
.direct-topup[open] summary b{transform:rotate(45deg)}
.direct-topup-body{padding:0 0 18px}
.direct-topup-body .direct-field{margin-top:3px}
.direct-topup-body>button{width:100%;margin-top:12px}
.direct-facts{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}
.direct-facts b{color:var(--text);margin-left:6px;font-weight:500}
.direct-switch{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0;font-size:13px;cursor:pointer}
.direct-toggle{width:38px;height:23px;border-radius:20px;background:var(--line);padding:3px;flex-shrink:0}
.direct-toggle:after{content:"";display:block;width:17px;height:17px;border-radius:50%;background:var(--muted);transition:transform .15s}
.direct-switch input:checked+.direct-toggle{background:var(--mint)}
.direct-switch input:checked+.direct-toggle:after{background:var(--mint-ink);transform:translateX(15px)}
.direct-switch input:focus-visible+.direct-toggle{outline:2px solid var(--text)}
.direct-fee-line{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}
.direct-fee-line strong{font-weight:500;color:var(--text)}
.direct-note,.direct-error{font-size:13px;line-height:1.6}
.direct-note{color:var(--muted)}
.direct-error{color:var(--red);margin:16px 0 0;overflow-wrap:anywhere}
.direct-review-list{margin:0}
.direct-review-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}
.direct-review-list dt{color:var(--muted);flex-shrink:0}
.direct-review-list dd{margin:0;text-align:right;overflow-wrap:anywhere;min-width:0}
.direct-amount{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:20px 0 28px}
.direct-amount>span{font-size:16px}
.direct-amount strong{font-size:30px;font-weight:600;overflow-wrap:anywhere;text-align:right}
.direct-result-header{text-align:center;padding:12px 0 28px}
.direct-result-symbol{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:50%;background:var(--panel2);color:var(--amber)}
.direct-result-symbol .icon{width:26px;height:26px}
.direct-result-header h3{font-size:20px;margin:0}
.direct-result-header p{color:var(--muted);font-size:12px;line-height:1.6;margin:10px 0 0;overflow-wrap:anywhere}
.direct-result-header.is-success .direct-result-symbol{color:var(--mint)}
.direct-result-header.is-failed .direct-result-symbol{color:var(--red)}
.direct-status-line{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;padding-top:16px}
.direct-status-line button{margin-left:auto}
.direct-status-dot{width:6px;height:6px;border-radius:50%;background:var(--amber)}
.direct-inline-confirm{border-left:2px solid var(--red);padding:14px 0 14px 14px;margin-top:16px;font-size:13px}
.direct-inline-confirm>div{display:flex;gap:10px;margin-top:12px}
.direct-tasks{margin:18px 0}
.direct-tasks h3{font-size:14px;margin:0}
.direct-task-list{border-top:1px solid var(--line)}
.direct-task{display:flex;align-items:center;gap:12px;width:100%;padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);text-align:left}
.direct-task-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--panel2);color:var(--muted)}
.direct-task-icon .icon{width:17px;height:17px}
.direct-task-main{min-width:0;flex:1}
.direct-task-main strong,.direct-task-main small{display:block;overflow-wrap:anywhere}
.direct-task-main strong{font-size:12px;font-weight:500}
.direct-task-main small{font-size:10px;color:var(--muted);margin-top:4px}
.direct-task>b{flex-shrink:0;font-size:11px;font-weight:500;color:var(--amber)}
.direct-task>b.is-success{color:var(--mint)}
.direct-loading{display:flex;justify-content:center;align-items:center;gap:10px;padding:40px 0;color:var(--muted);font-size:13px}
.direct-loading .icon{width:18px;height:18px}
@media(max-width:480px){.direct-stepper{gap:5px}.direct-stepper li{gap:5px;flex-direction:column;align-items:flex-start}.direct-stepper b{font-size:11px}.direct-card-option{padding:13px;gap:15px}.direct-card-bottom{align-items:flex-start;flex-direction:column;gap:3px}.direct-head-actions{gap:5px}.direct-head-actions button{padding:8px 9px;font-size:11px}.direct-page-head{padding-top:0}.direct-amount strong{font-size:27px}}

.direct-progress-detail{font-size:12px!important;color:var(--muted);margin:8px 0 0!important}.direct-inline-progress{border-top:1px solid var(--line);margin-top:18px;padding:14px 0;color:var(--muted);font-size:12px}.direct-inline-progress>div{display:flex;align-items:center;gap:8px}.direct-inline-progress strong{color:var(--text);font-size:13px}.direct-inline-progress small{display:block;margin-top:5px;color:var(--muted)}.direct-status-dot.is-done{background:var(--mint)}.direct-status-dot.is-bad{background:var(--red)}
.direct-timeline-window{max-height:240px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 12px;margin:12px 0 18px;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;-webkit-overflow-scrolling:touch}.direct-timeline-window::-webkit-scrollbar{width:5px}.direct-timeline-window::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.direct-timeline{list-style:none;margin:0;padding:8px 0 8px 18px;border-left:2px solid var(--line)}.direct-timeline-item{position:relative;padding:0 0 18px 14px;color:var(--muted)}.direct-timeline-item:last-child{padding-bottom:4px}.direct-timeline-item:before{content:"";position:absolute;left:-24px;top:4px;width:10px;height:10px;border:2px solid var(--panel);border-radius:50%;background:var(--amber)}.direct-timeline-item.is-success:before{background:var(--mint)}.direct-timeline-item.is-failed:before,.direct-timeline-item.is-failure:before{background:var(--red)}.direct-timeline-item time{display:block;font-size:11px;margin-bottom:5px}.direct-timeline-item>div{display:flex;align-items:center;gap:8px}.direct-timeline-item strong{font-size:13px;color:var(--text);font-weight:550}.direct-timeline-item span{font-size:10px;padding:2px 6px;border-radius:10px;background:var(--panel2)}.direct-timeline-item.is-success span{color:var(--mint)}.direct-timeline-item.is-review span,.direct-timeline-item.is-warning span{color:var(--amber)}.direct-timeline-item.is-failed span,.direct-timeline-item.is-failure span{color:var(--red)}.direct-timeline-item p{font-size:12px;line-height:1.5;margin:5px 0 0}

/* 旧CDK流程仅保留网页应急入口。 */
#view-recharge #rcPickWrap,#view-recharge #rcFlow{display:none!important}

/* Card platform balance overview and bank card selection. */
#cpOverview.cp-overview{padding:0;background:var(--panel);border:1px solid var(--line);border-radius:8px}
#cpOverview .cp-fund-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(105px,auto);gap:16px;padding:20px 20px 18px;border-bottom:1px solid var(--line)}
#cpOverview .cp-fund-wallet>span,#cpOverview .cp-fund-plus>span{display:block;font-size:12px;color:var(--muted)}
#cpOverview .cp-fund-wallet>strong{font-size:34px;line-height:1.2;letter-spacing:0;color:var(--text);font-weight:650;overflow-wrap:anywhere}
#cpOverview .cp-fund-plus{text-align:right;border-left:1px solid var(--line);padding-left:18px}
#cpOverview .cp-fund-plus>strong{font-size:30px;line-height:1.2;letter-spacing:0;color:var(--mint);margin-top:4px}
#cpOverview .cp-fund-top strong small{font-size:13px;font-weight:400}
#cpOverview .cp-fund-grid{padding:14px 20px 16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#cpOverview .cp-fund-metric>strong{font-size:16px}
.direct-card-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.direct-card-list:has(>.direct-card-option:only-child){grid-template-columns:minmax(0,1fr)}
.direct-card-option{position:relative;display:grid;grid-template-rows:28px 34px 1fr auto;gap:14px;min-height:218px;padding:20px;border:1px solid #b7ab8d;border-radius:8px;background:linear-gradient(115deg,#f5eedb,#e6d8b2);color:#272c29;cursor:pointer;min-width:0;box-shadow:inset 0 1px 0 #fff9ee;transition:box-shadow .15s,border-color .15s;letter-spacing:0}
.direct-card-option:hover{border-color:#7c896c}
.direct-card-option.is-selected{border-color:#34d399;box-shadow:inset 0 0 0 1px #34d399,0 0 0 2px rgba(52,211,153,.16)}
.direct-card-option:focus-within{outline:2px solid var(--mint);outline-offset:3px}
.direct-card-brand{display:flex;align-items:center;justify-content:space-between;gap:12px}
.direct-card-brand>strong{font-family:Georgia,serif;font-size:21px;font-weight:700}
.direct-card-brand>span{font-size:11px;font-style:italic;font-weight:700}
.direct-card-mid{display:flex;align-items:center;gap:9px}
.direct-chip{position:relative;width:40px;height:29px;flex:none;border:1px solid #ae883f;border-radius:6px;background:linear-gradient(125deg,#efcd7a,#c5993d,#f4d890);overflow:hidden}
.direct-chip:before{content:"";position:absolute;inset:8px 0;border-top:1px solid #ac8537;border-bottom:1px solid #ac8537}
.direct-chip:after{content:"";position:absolute;inset:0 12px;border-left:1px solid #ac8537;border-right:1px solid #ac8537;border-radius:5px}
.direct-card-state{display:flex;align-items:center;gap:5px;margin-left:auto;color:#34754f;font-size:11px}
.direct-card-state:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.direct-card-selected{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex:none;border:1px solid #aaa489;border-radius:50%;color:transparent}
.direct-card-selected .icon{width:13px;height:13px}
.direct-card-option.is-selected .direct-card-selected{border-color:#17885a;background:#17885a;color:white}
.direct-card-number{align-self:end;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15px;letter-spacing:0}
.direct-card-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}
.direct-card-bottom>div{min-width:0}
.direct-card-bottom span{display:block;font-size:10px;color:#727363;margin-bottom:3px}
.direct-card-bottom b{display:block;font-size:20px;font-weight:650;color:#272c29}
.direct-card-bottom small{font-size:10px;color:#686b5c;font-weight:400}
.direct-card-fit{text-align:right}
.direct-card-bottom.is-source b{font-size:15px;font-weight:600}
.direct-card-fit>strong{display:block;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.direct-card-fit>strong.is-ready{display:flex;align-items:center;justify-content:flex-end;gap:3px;color:#25663f}
.direct-card-fit .icon{display:inline-flex;width:13px;height:13px;margin:0;color:inherit}
@media(max-width:520px){
  .direct-card-list{grid-template-columns:minmax(0,1fr)}
  .direct-card-option{min-height:216px;padding:19px;gap:14px}
  .direct-card-number{font-size:15px}
  .direct-card-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}
  #cpOverview .cp-fund-top{padding:18px 16px 16px;gap:12px}
  #cpOverview .cp-fund-wallet>strong{font-size:30px}
  #cpOverview .cp-fund-plus>strong{font-size:28px}
  #cpOverview .cp-fund-plus{padding-left:12px}
  #cpOverview .cp-fund-grid{padding:13px 16px 15px}
}
@media(max-width:360px){
  #cpOverview .cp-fund-wallet>strong{font-size:26px}
  #cpOverview .cp-fund-plus>strong{font-size:24px}
  .direct-card-number{font-size:15px}
}

/* Fixed-height horizontal payment card picker. */
.direct-card-list{display:flex;gap:14px;height:204px;overflow-x:auto;overflow-y:hidden;padding:3px 4px 12px;scroll-snap-type:x mandatory;scroll-padding-inline:4px;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;-webkit-overflow-scrolling:touch}.direct-card-list::-webkit-scrollbar{height:5px}.direct-card-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.direct-card-list:empty{display:none}.direct-card-option{flex:0 0 calc((100% - 14px)/2);height:184px;min-height:0;grid-template-rows:26px 32px 1fr;gap:10px;padding:16px;scroll-snap-align:start}.direct-card-list:has(>.direct-card-option:only-child) .direct-card-option{flex-basis:100%}
@media(max-width:520px){.direct-card-list{height:202px;gap:12px}.direct-card-option{flex-basis:88%;height:182px;min-height:0;padding:15px}.direct-card-list:has(>.direct-card-option:only-child) .direct-card-option{flex-basis:100%}}

/* Compact colored cards and cost reference. */
#cardPlatformCards.card-platform-card-list{display:flex;flex-wrap:nowrap;gap:10px;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
#cardPlatformCards .cp-simple-card{padding:10px 12px;border:1px solid #b7ab8d;border-radius:10px;background:linear-gradient(115deg,#f5eedb,#e6d8b2);color:#272c29;min-height:104px;box-sizing:border-box}
#cardPlatformCards .cp-simple-card-top>strong{font-size:14px}
#cardPlatformCards .cp-simple-card-top>span{font-size:10px;font-style:italic;font-weight:650}
.cp-card-identity{display:flex;align-items:center;gap:7px;margin-top:0}
.cp-card-identity>strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:500;white-space:nowrap}
#cardPlatformCards .cp-card-state{margin-left:auto;color:#34754f;font-size:10px}
#cardPlatformCards .cp-simple-card-main{margin:7px 0 6px;align-items:center}
#cardPlatformCards .cp-simple-card-main>div>span{display:block;font-size:10px;color:#686b5c}
#cardPlatformCards .cp-simple-card-main strong{display:block;font-size:19px;line-height:1.2;color:#272c29}
#cardPlatformCards .cp-simple-card-main small,#cardPlatformCards .cp-simple-card-main>span,#cardPlatformCards .cp-simple-card-foot{color:#686b5c;font-size:10px}
#cardPlatformCards .direct-chip,.direct-card-option .direct-chip{width:23px;height:17px;border-radius:4px}
#cardPlatformCards .direct-chip:before,.direct-card-option .direct-chip:before{inset:5px 0}
#cardPlatformCards .direct-chip:after,.direct-card-option .direct-chip:after{inset:0 7px}
.direct-card-list{height:130px;gap:10px}
.direct-card-option{height:110px;min-height:0;padding:10px 12px;grid-template-rows:18px 20px auto;gap:6px;flex-basis:min(260px,calc((100% - 20px)/3));border-radius:10px}
.direct-card-brand>strong{font-size:14px}
.direct-card-brand>span,.direct-card-state{font-size:10px}
.direct-card-selected{width:18px;height:18px}
.direct-card-number{font-size:13px}
.direct-card-bottom{gap:8px}
.direct-card-bottom b{font-size:18px}
.direct-card-fit>strong{font-size:12px}
.direct-card-list:has(>.direct-card-option:only-child) .direct-card-option{flex-basis:min(100%,260px)}
#cardPlatformCards .cp-simple-card-main>.cp-card-identity{display:flex;align-items:center;gap:7px}
#cardPlatformCards .cp-simple-card-main>.cp-card-identity>strong{font-size:13px;white-space:nowrap}
#cardPlatformCards .cp-card-balance{text-align:right}
#cardPlatformCards .cp-simple-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
#cardPlatformCards .cp-simple-card{flex:0 0 200px;max-width:200px;scroll-snap-align:start}
#cpOverview .cp-cost-reference{display:flex;justify-content:space-between;gap:12px;padding:10px 20px;border-top:1px solid var(--line);font-size:12px}
.cp-cost-reference>span{color:var(--muted)}
.cp-cost-reference>strong{font-weight:550;color:var(--mint)}
#directPaymentFacts.direct-fee-line{display:flex;flex-wrap:wrap;gap:8px 18px}
#directPaymentFacts>div{display:flex;gap:8px;align-items:center}
.direct-card-mode{display:flex;gap:8px;margin:4px 0 18px}
.direct-card-mode label{position:relative;flex:1;min-width:0;cursor:pointer}
.direct-card-mode input{position:absolute;opacity:0;pointer-events:none}
.direct-card-mode span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--muted);font-size:12px}
.direct-card-mode input:checked+span{border-color:var(--mint);background:rgba(52,211,153,.08);color:var(--text)}
.direct-card-mode input:focus-visible+span{outline:2px solid var(--mint);outline-offset:2px}
.direct-open-settings{display:grid;gap:14px;margin:4px 0 16px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.direct-open-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}
.direct-open-meta b{color:var(--text);font-weight:550}
.direct-open-settings .direct-field{margin:0}
.direct-open-settings input{margin-top:6px}
.direct-open-settings .direct-facts{display:block;line-height:1.6}
.direct-card-fit small{display:block;margin-bottom:3px;color:#686b5c;font-size:9px;line-height:1.35}
.direct-recommend-btn{white-space:normal;line-height:1.4}
@media(max-width:520px){.direct-card-list{height:130px;gap:10px}.direct-card-option{height:110px;min-height:0;padding:10px 12px;gap:6px;flex-basis:min(75%,260px)}.direct-card-number{font-size:13px}#cpOverview .cp-cost-reference{padding-inline:16px}}

/* Card platform UI refresh: shared ledger tokens, signed combined balance, compact rows. */
#view-card-platform{
  --cp-surface:var(--panel);--cp-border:var(--line);--cp-muted:var(--muted);--cp-accent:var(--mint);
}
#view-card-platform .cp-page-head{margin:10px 0 12px}
#view-card-platform .cp-page-head h2{font-size:16px;letter-spacing:0}
#view-card-platform #cardPlatformSyncBtn{display:flex;align-items:center;gap:5px;height:34px;padding:0 12px;border-radius:var(--radius-sm);border-color:var(--cp-border);background:var(--cp-surface);color:var(--text)}
#view-card-platform .cp-sync-note{font-size:11px;color:var(--cp-muted);margin:0 0 14px}
#view-card-platform #cpOverview{position:relative;padding:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(160deg,rgba(52,211,153,.09),rgba(52,211,153,0) 42%),var(--panel);overflow:hidden;box-shadow:var(--shadow-md)}
#view-card-platform #cpOverview>div{position:relative;z-index:1}
#view-card-platform #cpOverview .cp-fund-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px 13px;border:0}
#view-card-platform #cpOverview .cp-fund-wallet{min-width:0}
#view-card-platform #cpOverview .cp-fund-wallet>span{font-size:12px;color:var(--muted)}
#view-card-platform #cpOverview .cp-fund-wallet>strong{font-size:34px;font-weight:650;letter-spacing:-.7px;line-height:1.25;margin-top:5px;color:var(--text);font-variant-numeric:tabular-nums}
#view-card-platform #cpOverview .cp-fund-wallet strong small{font-size:12px;color:var(--muted);font-weight:500;letter-spacing:0}
#view-card-platform #cpOverview .cp-capacity-badge{flex:none;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel2);color:var(--mint);font-size:10px;white-space:nowrap}
#view-card-platform #cpOverview .cp-capacity-badge b{font-size:12px;font-weight:600;margin:0 2px}
#view-card-platform #cpOverview .cp-cost-reference{display:block;text-align:left;border:0;padding:0 18px 11px;font-size:10px;line-height:1.5;color:var(--muted)}
#view-card-platform #cpOverview .cp-cost-reference>span{display:inline;margin-left:4px;color:var(--muted);font-size:10px;font-weight:400}
#view-card-platform #cpOverview .cp-fund-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 18px;padding:11px 0 12px;border-top:1px solid var(--line)}
#view-card-platform #cpOverview .cp-fund-metric{gap:4px}
#view-card-platform #cpOverview .cp-fund-metric+ .cp-fund-metric{border-left:1px solid var(--line);padding-left:16px}
#view-card-platform #cpOverview .cp-fund-metric>span{font-size:10px;color:var(--muted);white-space:nowrap}
#view-card-platform #cpOverview .cp-fund-metric>strong{font-size:15px;font-weight:600;color:var(--text)}
#view-card-platform #cpOverview .cp-fund-metric strong small{font-size:10px;color:var(--muted);font-weight:400}
#view-card-platform .cp-tabs{grid-template-columns:1fr 1fr 1.35fr;padding:4px;gap:4px;border-color:var(--cp-border);border-radius:var(--radius-sm);background:var(--panel2);margin:16px 0 12px}
#view-card-platform .cp-tabs button{min-height:38px;padding:8px 4px;font-size:12px;border-radius:7px;color:var(--cp-muted)}
#view-card-platform .cp-tabs button.active{background:var(--mint);color:var(--mint-ink);font-weight:700;box-shadow:none}
#view-card-platform .cp-tabs button span{display:inline-block;min-width:15px;font-size:10px;color:inherit;opacity:.8;margin-left:4px}
#view-card-platform .cp-business-list{gap:8px}
#view-card-platform .cp-business{border:1px solid var(--cp-border);border-radius:var(--radius);background:var(--cp-surface);padding:12px 13px;min-width:0;box-shadow:none}
#view-card-platform .cp-plan-plus{--cp-plan-color:var(--mint);--cp-plan-border:rgba(52,211,153,.2);--cp-plan-badge:rgba(52,211,153,.12)}
#view-card-platform .cp-plan-5x{--cp-plan-color:var(--purple);--cp-plan-border:rgba(167,139,250,.2);--cp-plan-badge:rgba(167,139,250,.12)}
#view-card-platform .cp-plan-20x{--cp-plan-color:var(--blue);--cp-plan-border:rgba(91,141,239,.2);--cp-plan-badge:rgba(91,141,239,.12)}
#view-card-platform .cp-plan-pro{--cp-plan-color:var(--amber);--cp-plan-border:rgba(245,165,36,.2);--cp-plan-badge:rgba(245,165,36,.12)}
#view-card-platform .cp-order-main{display:flex;align-items:center;justify-content:space-between;gap:14px}
#view-card-platform .cp-order-identity{flex:1;min-width:0}
#view-card-platform .cp-order-heading{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
#view-card-platform .cp-product{display:inline-flex;align-items:center;padding:4px 7px;border-radius:6px;font-size:10px;font-weight:600;letter-spacing:.2px;color:var(--cp-plan-color,var(--text));background:var(--cp-plan-badge,var(--panel2));border:1px solid var(--cp-plan-border,var(--cp-border))}
#view-card-platform .cp-business-account{font-size:13px;font-weight:600;margin:7px 0 0;line-height:1.45;overflow-wrap:anywhere;color:var(--text)}
#view-card-platform .cp-status{display:inline-flex;align-items:center;flex:none;padding:3px 7px;border-radius:6px;font-size:10px;line-height:1.4;font-weight:500;color:var(--amber);background:rgba(245,165,36,.14);white-space:nowrap}
#view-card-platform .cp-status.cp-linked{color:var(--cp-accent);background:rgba(52,211,153,.13)}
#view-card-platform .cp-status.cp-processing{color:var(--blue);background:rgba(91,141,239,.13)}
#view-card-platform .cp-order-amount{flex:none;text-align:right}
#view-card-platform .cp-order-amount small{display:block;font-size:10px;color:var(--cp-muted);margin-bottom:5px}
#view-card-platform .cp-order-amount strong{display:block;font-size:19px;letter-spacing:-.3px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.2}
#view-card-platform .cp-cost-inline{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;line-height:1.6;color:var(--cp-muted);margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--cp-border)}
#view-card-platform .cp-cost-inline span{white-space:nowrap}
#view-card-platform .cp-booked .cp-cost-inline{border:0;padding-top:0;margin-top:10px}
#view-card-platform .cp-order-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
#view-card-platform .cp-order-meta{display:flex;flex-wrap:wrap;align-items:center;gap:3px 9px;color:var(--cp-muted);font-size:10px;line-height:1.6;min-width:0}
#view-card-platform .cp-order-meta time{white-space:nowrap}
#view-card-platform .cp-order-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;width:auto;min-height:34px;margin:0;padding:7px 10px;border:1px solid var(--cp-border);border-radius:var(--radius-sm);background:var(--panel2);color:var(--text);font-size:11px;font-weight:550;white-space:nowrap}
#view-card-platform .cp-order-action span{font-size:15px;line-height:1}
#view-card-platform .cp-order-action.cp-action-primary{border-color:var(--mint);background:var(--mint);color:var(--mint-ink);box-shadow:none;font-weight:700}
#view-card-platform .cp-order-action:hover{border-color:var(--mint);background:var(--panel2)}
#view-card-platform .cp-order-action.cp-action-primary:hover{border-color:var(--mint);background:var(--mint);filter:brightness(1.08)}
#view-card-platform button:focus-visible{outline:2px solid var(--cp-accent);outline-offset:3px}
#view-card-platform .cp-booked-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0 0;padding:0;border:0}
#view-card-platform .cp-booked-metrics>div{min-width:0;padding:10px 9px;border-radius:var(--radius-sm);background:var(--panel2)}
#view-card-platform .cp-booked-metrics span{display:block;margin-bottom:5px;font-size:10px;color:var(--muted)}
#view-card-platform .cp-booked-metrics strong{display:block;font-size:17px;font-weight:600;letter-spacing:-.4px;line-height:1.2;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;color:var(--text)}
#view-card-platform .cp-booked-metrics>div:first-child strong{color:var(--mint)}
#view-card-platform .cp-booked-metrics .is-profit strong{color:var(--purple)}
#view-card-platform .cp-booked-metrics .is-negative strong{color:var(--red)}
#view-card-platform .cp-empty{padding:26px 16px;border:1px dashed var(--cp-border);border-radius:var(--radius);color:var(--cp-muted)}
#view-card-platform .cp-empty strong{font-size:12px;font-weight:500}
#view-card-platform .cp-funds-heading{margin:22px 0 10px;gap:12px;align-items:flex-start}
#view-card-platform .cp-funds-heading h3{font-size:13px;font-weight:600;white-space:nowrap}
#view-card-platform #cpTransferTotal{max-width:65%;text-align:right;line-height:1.6;font-size:10px;color:var(--cp-muted)}
#view-card-platform #cardPlatformCards{display:flex;flex-wrap:nowrap;gap:10px;margin:0 0 18px;padding:2px 0 8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:0;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--muted) transparent}
#view-card-platform #cardPlatformCards .cp-simple-card{flex:0 0 196px;max-width:196px;height:104px;min-height:104px;padding:10px 12px;border:1px solid #c1af86;border-radius:12px;background:linear-gradient(115deg,#f0e6ce,#dcca9f);color:#292b27;scroll-snap-align:start;box-shadow:inset 0 1px 0 #fff8}
#view-card-platform #cardPlatformCards .cp-simple-card-top>strong{font-size:12px;font-weight:650}
#view-card-platform #cardPlatformCards .cp-card-state{font-size:9px;font-style:normal;color:#406546}
#view-card-platform #cardPlatformCards .cp-simple-card-main{margin:8px 0 7px}
#view-card-platform #cardPlatformCards .cp-simple-card-main>.cp-card-identity>strong{font-size:12px;color:#353930}
#view-card-platform #cardPlatformCards .cp-card-balance strong{font-size:19px;font-weight:650}
#view-card-platform #cardPlatformCards .cp-card-balance>span{font-size:9px}
#view-card-platform #cardPlatformCards .cp-simple-card-foot{font-size:9px}
#view-card-platform .cp-transfer-row{padding:13px 14px;border-color:var(--cp-border);border-radius:var(--radius);background:var(--cp-surface)}
#view-card-platform .cp-transfer-head>strong{font-size:12px;font-weight:550}
#view-card-platform .cp-transfer-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0;font-size:10px}
#view-card-platform .cp-transfer-values strong{display:block;margin:4px 0 0;font-size:16px;font-weight:600;color:var(--text)}
#view-card-platform .cp-transfer-values>span:last-child strong{color:var(--cp-accent)}
#view-card-platform .cp-transfer-foot{border-top:1px solid var(--cp-border);padding-top:9px}
#view-card-platform .cp-ledger-section{padding:13px 14px;background:var(--cp-surface);border-color:var(--cp-border);border-radius:var(--radius)}
#view-card-platform .card-platform-event{border-color:var(--cp-border);background:var(--cp-surface);border-radius:var(--radius-sm);padding:12px}
@media(max-width:380px){
  #view-card-platform .cp-business{padding:13px 12px}
  #view-card-platform .cp-order-main{gap:10px}
  #view-card-platform .cp-order-amount strong{font-size:18px}
  #view-card-platform .cp-business-account{font-size:13px}
  #view-card-platform .cp-booked-metrics strong{font-size:16px}
  #view-card-platform .cp-order-meta{display:block}
  #view-card-platform .cp-order-meta span,#view-card-platform .cp-order-meta time{display:block}
}
@media(max-width:340px){
  #view-card-platform #cpOverview .cp-fund-top{padding:14px}
  #view-card-platform #cpOverview .cp-fund-grid{margin:0 14px;gap:12px}
  #view-card-platform #cpOverview .cp-capacity-badge{font-size:9px;padding:5px 6px}
  #view-card-platform .cp-order-main{align-items:flex-start}
  #view-card-platform .cp-order-amount strong{font-size:17px}
}

/* Card wallet actions: compact pages using the shared ledger tokens. */
.cp-wallet-actions{display:flex;gap:8px;margin:10px 0 14px}
.cp-wallet-actions button{flex:1;min-height:36px;padding:8px 10px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:var(--radius-sm);font-size:12px;font-weight:550}
#view-card-wallet .cw-page{padding:0 0 18px}
#view-card-wallet .cw-head{display:flex;align-items:center;gap:12px;margin:6px 0 18px}
#view-card-wallet .cw-head h2{font-size:16px;margin:0}
#view-card-wallet .cw-form{padding:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin:0 0 12px}
#view-card-wallet label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted)}
#view-card-wallet input,#view-card-wallet select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel2);padding:10px;color:var(--text);font:inherit;font-size:14px}
#view-card-wallet .cw-fields{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:14px 12px}
#view-card-wallet .cw-fields>label:first-child{grid-column:1/-1}
#view-card-wallet .cw-issue-form{padding:0 0 20px;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
#view-card-wallet .cw-issue-form input,#view-card-wallet .cw-issue-form select{min-width:0;min-height:44px;border-radius:8px}
#view-card-wallet .cw-issue-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}
#view-card-wallet .cw-issue-footer .cw-fee-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0;flex-shrink:0}
#view-card-wallet .cw-issue-footer .cw-fee-row strong{font-size:19px;font-weight:650}
#view-card-wallet .cw-issue-footer .cw-primary{width:auto;min-width:128px;min-height:42px;max-width:70%;margin:0;padding:10px 16px;border-radius:8px;white-space:normal;line-height:1.4}
#view-card-wallet #cwIssueConfirm{margin:12px 0 0}
#view-card-wallet #cwInventoryCount{margin-left:5px;font-size:11px;font-weight:400;color:var(--muted)}
#view-card-wallet .cw-fee-row{display:flex;justify-content:space-between;align-items:center;margin:18px 0;font-size:12px;color:var(--muted)}
#view-card-wallet .cw-fee-row strong{font-size:18px;color:var(--text);font-variant-numeric:tabular-nums}
#view-card-wallet .cw-primary{width:100%;min-height:42px;padding:10px;border:0;border-radius:var(--radius-sm);background:var(--mint);color:var(--mint-ink);font-size:13px;font-weight:750;margin-top:14px}
#view-card-wallet .cw-small{min-height:31px;padding:6px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel2);color:var(--text);font-size:11px;white-space:nowrap}
#view-card-wallet button:disabled{opacity:.5;cursor:default}
#view-card-wallet button:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
#view-card-wallet .cw-muted{color:var(--muted);font-size:11px;line-height:1.6}
#view-card-wallet .cw-operation:empty{display:none}
#view-card-wallet .cw-operation{padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:14px}
#view-card-wallet .cw-operation-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
#view-card-wallet .cw-operation-head span{font-size:11px;color:var(--mint)}
#view-card-wallet .cw-operation p{font-size:12px;color:var(--muted);line-height:1.6;margin:9px 0}
#view-card-wallet .cw-list-head{display:flex;align-items:center;justify-content:space-between;margin:23px 0 10px}
#view-card-wallet .cw-list-head h3{font-size:13px;margin:0}
#view-card-wallet .cw-stock-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}
#view-card-wallet .cw-stock-info{min-width:0}
#view-card-wallet .cw-stock-info strong{display:block;font-size:13px;font-weight:600;overflow-wrap:anywhere;margin-bottom:6px}
#view-card-wallet .cw-stock-info .cw-stock-status{display:inline-block;font-size:10px;line-height:1.5;padding:2px 6px;border-radius:4px;background:var(--panel2);color:var(--muted)}
#view-card-wallet .cw-stock-info .is-unused{background:color-mix(in srgb,var(--mint) 12%,transparent);color:var(--mint)}
#view-card-wallet .cw-stock-info .is-paid-unused{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber);font-weight:650;border:1px solid color-mix(in srgb,var(--amber) 35%,transparent)}
#view-card-wallet .cw-stock-row.is-paid-unused{border-left:2px solid var(--amber);padding-left:10px}
#view-card-wallet .cw-stock-info .is-pending{background:color-mix(in srgb,var(--purple) 12%,transparent);color:var(--purple)}
#view-card-wallet .cw-stock-info code{display:block;overflow-wrap:anywhere;font-size:11px;color:var(--muted);margin-top:6px}
#view-card-wallet .cw-stock-actions{display:grid;grid-template-columns:repeat(2,auto);gap:6px;max-width:136px}
#view-card-wallet .cw-stock-actions .cw-small{min-height:30px;border-radius:6px;background:transparent}
#view-card-wallet [data-cw-delivery]{grid-column:1/-1}
#view-card-wallet .cw-redeem{color:var(--mint)}
#view-card-wallet .cw-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:15px}
#view-card-wallet .cw-pagination span{font-size:10px;color:var(--muted)}
#view-card-wallet .cw-redemption-link{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 24px}
#view-card-wallet .cw-redemption-link .cw-small{min-height:38px;border-radius:8px;font-size:12px;background:var(--panel)}
#view-card-wallet #cwRedemptionOpen{color:var(--mint);border-color:color-mix(in srgb,var(--mint) 30%,var(--line))}
#view-card-wallet .cw-pagination[hidden]{display:none}
#view-card-wallet .cw-address-layout{display:flex;gap:15px;align-items:center;margin-top:17px}
#view-card-wallet .cw-qr{flex:0 0 112px;width:112px;height:112px;background:#fff;border-radius:8px;overflow:hidden}
#view-card-wallet .cw-qr svg{display:block;width:100%;height:100%}
#view-card-wallet .cw-address-info{min-width:0;flex:1}
#view-card-wallet .cw-address-info>span{display:block;font-size:12px;color:var(--mint)}
#view-card-wallet .cw-address-info code{display:block;overflow-wrap:anywhere;font-size:11px;color:var(--text);line-height:1.6;margin:7px 0;user-select:all}
#view-card-wallet .cw-address-actions{display:flex;flex-wrap:wrap;gap:6px}
#view-card-wallet .cw-address-info small{display:block;color:var(--muted);margin-top:9px;font-size:10px}
#view-card-wallet .cw-funding-row{display:flex;justify-content:space-between;align-items:center;width:100%;gap:12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:13px 0;font-size:11px;text-align:left}
#view-card-wallet .cw-funding-row strong{font-weight:500;color:var(--mint)}
@media(max-width:360px){#view-card-wallet .cw-address-layout{align-items:flex-start;gap:10px}#view-card-wallet .cw-qr{flex-basis:88px;width:88px;height:88px}#view-card-wallet .cw-fields{grid-template-columns:minmax(0,1fr) 82px}#view-card-wallet .cw-issue-footer{gap:10px}#view-card-wallet .cw-stock-row{gap:8px}}

/* The embedded page owns scrolling; the ledger header remains fixed. */
#view-card-redemption.active-view{display:flex;flex-direction:column;overflow:hidden}
#view-card-redemption .cr-head{display:flex;align-items:center;gap:12px;flex:0 0 auto;margin:6px 0 16px}
#view-card-redemption h2{font-size:16px;margin:0;flex:1}
#view-card-redemption .cr-reload{min-height:32px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel2);color:var(--text);font-size:12px}
#view-card-redemption .cr-reload:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
#view-card-redemption .cr-note{color:var(--muted);font-size:12px;margin:0 0 10px}
#view-card-redemption .cr-note[hidden]{display:none}
#view-card-redemption .cr-frame-area{flex:1;min-height:0}
#view-card-redemption iframe{display:block;width:100%;height:100%;border:0;background:var(--bg)}

#view-card-wallet .cw-stock-fee{display:inline-block;font-size:11px;line-height:1.5;color:var(--muted);margin-left:8px;white-space:nowrap}

/* Compact income modal, sharing the ledger palette. */
#incomeModal .unified-income{width:min(100%,560px);margin:0 auto;padding:18px;max-height:85vh;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--panel);border:1px solid var(--line);border-radius:18px}
#incomeModal .income-page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px}
#incomeModal .income-page-head h2{margin:0;font-size:18px}
#incomeModal #cpIncomeSourceSwitch[hidden],#incomeModal #cpManualCdkField[hidden],#incomeModal #cpIncomeExtras[hidden],#incomeModal #cpExistingFields[hidden],#incomeModal #cpCostModeLabel[hidden]{display:none!important}
#incomeModal .income-order-context{border:1px solid var(--line);border-left:0;border-radius:12px;background:var(--panel);padding:12px 14px;margin:0 0 16px;gap:7px}
#incomeModal .income-order-context>div{display:flex;justify-content:space-between;align-items:center;gap:10px}
#incomeModal .income-order-context strong{font-size:12px}
#incomeModal .income-order-context small{font-size:11px;color:var(--muted)}
#incomeModal .income-order-context>span{font-size:12px;color:var(--muted)}
#incomeModal .income-main-fields{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
#incomeModal .income-main-fields>label{display:block;color:var(--muted);font-size:12px;margin:0 0 14px}
#incomeModal .income-main-fields>label:last-child{margin-bottom:0}
#incomeModal .income-main-fields input,#incomeModal .income-main-fields select{margin-top:6px;min-height:44px;background:var(--panel2);border-radius:10px;color:var(--text)}
#incomeModal .income-sale-input{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:8px 0 12px;margin-bottom:4px}
#incomeModal .income-sale-input>span{font-size:23px;color:var(--muted)}
#incomeModal .income-sale-input input{border:0;background:transparent;padding:0;margin:0;border-radius:0;min-width:0;height:44px;font-size:32px;font-weight:650;box-shadow:none}
#incomeModal .income-total{background:var(--panel);border:1px solid var(--line);padding:15px 16px;margin:14px 0;border-radius:12px}
#incomeModal .income-amounts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#incomeModal .income-amounts>div{min-width:0;display:grid;gap:6px}
#incomeModal .income-amounts span{font-size:11px;color:var(--muted)}
#incomeModal .income-amounts strong{font-size:21px;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--text)}
#incomeModal .income-amounts .income-profit{border-left:1px solid var(--line);padding-left:16px}
#incomeModal .income-profit strong{color:var(--purple)}
#incomeModal .income-profit.is-negative strong{color:var(--red)}
#incomeModal .income-payment-fee{display:block;color:var(--muted);font-size:11px;margin-top:12px}
#incomeModal .income-extras{border-top:1px solid var(--line);margin:0 0 14px;color:var(--muted)}
#incomeModal .income-extras>summary{padding:13px 2px;font-size:12px;cursor:pointer}
#incomeModal .income-booking-kind{margin:0 0 14px;gap:20px}
#incomeModal .income-cost-detail{margin-top:12px;background:var(--panel);padding:12px}
#incomeModal .income-cost-detail>summary strong{float:none;display:block;margin:3px 0 0;font-size:11px}
#incomeModal .cp-form-error:empty{display:none}
#incomeModal #cpBookingSave{width:100%;min-height:46px;border-radius:10px;margin:0 0 6px}

#incomeModal .unified-income label{display:block;color:var(--muted);font-size:12px;margin:12px 0}
#incomeModal .unified-income input,#incomeModal .unified-income select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:10px;padding:12px;outline:0}
#incomeModal .unified-income input:focus,#incomeModal .unified-income select:focus{border-color:var(--mint)}
#incomeModal .income-main-fields>label:first-child{margin-top:0}
#incomeModal .unified-income .income-sale-input input{border:0;background:transparent;margin:0;padding:0;border-radius:0;min-height:44px}

/* In-page select menus for the income form. Native controls remain for FormData. */
#incomeModal select.income-native-select{display:none!important}
#incomeModal .income-select{position:relative;margin-top:6px}
#incomeModal .income-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}
#incomeModal .income-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#incomeModal .income-select-arrow{flex:none;font-size:14px;color:var(--muted);transition:transform .12s}
#incomeModal .income-select-trigger[aria-expanded="true"]{border-color:var(--mint)}
#incomeModal .income-select-trigger[aria-expanded="true"] .income-select-arrow{transform:rotate(180deg)}
#incomeModal .income-select-trigger:disabled{opacity:.5;cursor:default}
#incomeModal .income-select-menu{position:relative;max-height:240px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin-top:5px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
#incomeModal .income-select-menu[hidden]{display:none!important}
#incomeModal .income-select-option{display:block;width:100%;min-height:42px;padding:10px 9px;margin:0;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:12px;text-align:left;line-height:1.5;overflow-wrap:anywhere;cursor:pointer}
#incomeModal .income-select-option[aria-selected="true"]{background:color-mix(in srgb,var(--mint) 12%,transparent);color:var(--mint)}
#incomeModal .income-select-option:disabled{opacity:.4;cursor:default}
#incomeModal .income-select-option:hover:not(:disabled),#incomeModal .income-select-option:focus-visible{background:var(--panel);outline:1px solid var(--mint);outline-offset:-1px}
#incomeModal .income-select-trigger:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
#incomeModal .income-select-group{padding:8px 9px 4px;color:var(--muted);font-size:10px}

#incomeModal #incomeBack{order:1;font-size:24px;width:34px;height:34px;min-height:0;padding:0;border:0;background:transparent;color:var(--muted)}
#incomeModal .income-main-fields{padding:0;border:0;background:transparent}

/* Suppress native number spinners in the income dialog. */
#incomeModal input[type="number"]{-moz-appearance:textfield;appearance:textfield}
#incomeModal input[type="number"]::-webkit-inner-spin-button,
#incomeModal input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Three primary sections, with secondary entries inside their parent. */
.bottom-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:16px 0 12px}
.home-entry-grid button{display:flex;align-items:center;gap:10px;padding:14px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-align:left}
.home-entry-grid b{font-size:12px;font-weight:550;flex:1}
.home-entry-grid .icon{width:18px;height:18px;color:var(--muted)}
.home-entry-grid button>span:last-child{color:var(--muted)}
.home-record-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 22px}
.home-record-actions button{min-height:42px;margin:0;font-size:12px}
.ledger-subhead{display:flex;align-items:center;gap:10px;margin:0 0 16px;min-width:0}
.ledger-subhead h2{margin:0;font-size:16px}
.inventory-head .ledger-subhead{margin:0}
.ledger-filter-tabs{display:flex;gap:5px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px;margin:0 0 16px}
.ledger-filter-tabs button{flex:1;min-width:0;border:0;border-radius:7px;padding:9px 4px;background:transparent;color:var(--muted);font-size:12px}
.ledger-filter-tabs button.active{background:var(--panel2);color:var(--mint)}
.ledger-extra-actions{margin-top:16px;border-top:1px solid var(--line)}
.ledger-extra-actions summary{padding:14px 0;color:var(--muted);font-size:12px;cursor:pointer}
.cp-main-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 16px}
.cp-main-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:64px;padding:10px 3px;font-size:11px;white-space:nowrap}
.cp-main-actions .icon{height:18px;width:18px;color:var(--mint)}
.record-item.rec-income .swipe-content{display:block;padding:14px}
.record-income-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.record-income-head .record-sub{margin-top:6px}
.record-income-head .rec-badge{flex-shrink:0}
.record-income-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.record-income-metrics>div{display:grid;gap:5px;min-width:0}
.record-income-metrics span{font-size:10px;color:var(--muted)}
.record-income-metrics strong{font-size:15px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.record-item.rec-income .record-meta{margin-top:9px;font-size:10px;color:var(--muted)}
@media(max-width:420px){.record-income-metrics{gap:7px}.record-income-metrics strong{font-size:14px}.inventory-head{align-items:flex-start;flex-wrap:wrap}.inventory-actions{margin-left:auto}}

.record-income-head .rec-badge{writing-mode:horizontal-tb;letter-spacing:0;padding:6px 8px;font-size:10px}

/* User correction: compact card overview and two homepage actions. */
#view-card-platform #cpOverview{border-radius:12px}
#view-card-platform #cpOverview .cp-fund-top{padding:11px 14px 9px;gap:10px}
#view-card-platform #cpOverview .cp-fund-wallet>span{font-size:10px}
#view-card-platform #cpOverview .cp-fund-wallet>strong{font-size:26px;line-height:1.15;margin-top:3px}
#view-card-platform #cpOverview .cp-fund-grid{margin:0 14px;padding:8px 0;gap:10px}
#view-card-platform #cpOverview .cp-fund-metric{gap:3px}
#view-card-platform #cpOverview .cp-fund-metric>strong{font-size:14px}
#view-card-platform #cpOverview .cp-cost-reference{padding:0 14px 8px;font-size:9px}
.cp-main-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.cp-main-actions button{flex-direction:row;min-height:42px;padding:10px;gap:8px;font-size:12px}

/* Manual cost shares the ordinary income form. */
.home-record-actions{grid-template-columns:1fr}
#incomeModal #cpManualCostField[hidden]{display:none!important}
#incomeModal .income-cost-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 6px}
#incomeModal .income-cost-head label{margin:0}
#incomeModal .income-cost-unit{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
#incomeModal .income-cost-unit button{border:0;border-radius:5px;padding:5px 8px;background:transparent;color:var(--muted);font-size:10px}
#incomeModal .income-cost-unit button.active{background:var(--panel);color:var(--mint)}
#incomeModal .income-manual-cost{margin-bottom:14px}


/* Keep all four dashboard summary tiles visually uniform. */
.stat-strip{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.stat-strip>.strip-card{box-sizing:border-box;min-width:0;height:56px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.stat-strip>.strip-card>span{height:14px;line-height:14px;margin:0}
.stat-strip>.strip-card>strong{width:100%;height:18px;line-height:18px;font-size:14px!important;letter-spacing:0}


/* Keep all dashboard totals readable on narrow phone screens. */
@media(max-width:420px){.stat-strip>.strip-card>strong{font-size:12px!important}}

.record-category-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:0 0 10px;padding:4px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.record-category-tabs button{min-width:0;min-height:34px;padding:6px 4px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px}
.record-category-tabs button.active{background:var(--panel2);color:var(--mint);font-weight:600}
.records-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.records-toolbar>input{flex:1;min-width:0;width:0;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);font-size:13px}
.records-toolbar>label{display:flex;align-items:center;gap:5px;min-width:0;padding:0 7px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--muted);font-size:10px}
.records-toolbar>label input{width:125px;min-width:0;height:35px;border:0;background:transparent;color:var(--text);font:inherit;font-size:11px}
.record-item.rec-income .swipe-content{padding:9px 12px}
.record-income-head{margin-bottom:6px}
.record-income-metrics{padding:1px 0;gap:8px}
.record-income-metrics>div{gap:2px}
.rec-cdk{display:inline-flex;align-items:center;gap:4px;min-width:0;color:var(--muted);font-size:10px}
.rec-cdk>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-cdk button{min-height:24px;padding:2px 6px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--blue);font-size:10px}#view-card-platform .cp-tabs{grid-template-columns:1fr 1fr}
.period-switch{gap:1px}.period-btn{padding:4px 7px}

/* Three equal totals; combine U and its RMB estimate in the balance tile. */
#view-dashboard .stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
#view-dashboard .stat-strip>.strip-card{display:grid;grid-template-rows:14px 22px 12px;gap:2px;align-content:center;justify-items:center;padding:6px 4px;height:64px}
#view-dashboard .stat-strip>.strip-card>span{height:14px;line-height:14px}
#view-dashboard .stat-strip>.strip-card>strong{height:22px;font-size:clamp(14px,4.2vw,17px)!important;line-height:22px}
#view-dashboard .strip-card.c-assets strong{color:var(--purple)}
#view-dashboard .strip-card>small{max-width:100%;font-size:11px;line-height:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}

/* CDK replacement uses the existing inventory row and theme. */
#view-card-wallet .cw-replace-confirm{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);font-size:11px;color:var(--muted)}
#view-card-wallet .cw-replace-confirm strong{font-size:11px;color:var(--text);font-weight:500}
#view-card-wallet .cw-replace-confirm>div{display:flex;gap:6px;margin-left:auto}
#view-card-wallet .cw-replace-confirm .cw-replace-submit{border-color:var(--mint);color:var(--mint)}
#view-card-wallet .cw-small:disabled{opacity:.5}

/* Compact cards keep both footer labels in the card, including 0.125U/use. */
#view-card-platform #cardPlatformCards .cp-simple-card{height:110px;min-height:110px;display:grid;grid-template-rows:16px 1fr 13px;gap:5px;overflow:hidden}
#view-card-platform #cardPlatformCards .cp-simple-card-main{margin:0;min-height:0;gap:6px}
#view-card-platform #cardPlatformCards .cp-simple-card-foot{display:flex;align-items:center;justify-content:space-between;gap:4px;line-height:13px;min-width:0}
#view-card-platform #cardPlatformCards .cp-simple-card-foot>span{white-space:nowrap;font-size:9px}
.record-item.rec-income .swipe-content{padding:12px 14px}
.record-income-head{gap:8px;margin-bottom:9px}
.record-income-head time{font-size:10px;line-height:18px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.record-income-head .record-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:10px}
.rec-source{font-size:11px;color:var(--text)}
.rec-status{font-size:10px;color:var(--muted)}
.record-income-metrics{border:0;padding:3px 0 1px;gap:10px}
.record-income-metrics>div{gap:3px}
.record-item.rec-income .record-meta{margin-top:7px}
.record-income-head .record-title{font-size:13px;line-height:19px}
@media(max-width:380px){.record-income-head{flex-wrap:wrap;gap:4px}.record-income-head time{font-size:9px}.record-income-metrics strong{font-size:13px}}

.cp-order-cdk{display:flex;align-items:center;gap:8px;min-width:0;margin:9px 0 0;color:var(--muted);font-size:11px}
.cp-order-cdk>span{flex:none;font-size:10px}
.cp-order-cdk code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.cp-cdk-copy{flex:none;min-height:30px;padding:4px 9px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--blue);font-size:11px}
#incomeModal .income-order-context>.cp-order-cdk{justify-content:flex-start;gap:8px;margin:1px 0 0}
#incomeModal .income-order-context>.cp-order-cdk>span{font-size:10px;color:var(--muted)}

.record-income-head .rec-status.is-paid-unused{display:inline-block;padding:2px 6px;line-height:1.5;border-radius:4px;border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber);font-weight:650}

@media(max-width:380px){.records-toolbar{gap:5px}.records-toolbar>label{padding:0 5px}.records-toolbar>label input{width:112px}}

#view-card-platform #cardPlatformCards .cp-simple-card{height:136px;min-height:136px;grid-template-rows:16px 1fr 13px 24px}
#view-card-platform #cardPlatformCards .cp-card-actions{display:flex;justify-content:flex-end;min-height:0}
#view-card-platform #cardPlatformCards .cp-refund-button{min-height:23px;padding:2px 8px;border:1px solid rgba(39,44,41,.22);border-radius:5px;background:rgba(255,255,255,.34);color:#27322e;font-size:10px;font-weight:600}
#view-card-platform #cardPlatformCards .cp-refund-button:disabled{opacity:.55}

/* Preserve all record fields while tightening vertical spacing. */
.record-item.rec-income .swipe-content{padding:8px 10px}
.record-income-head{margin-bottom:4px}
.record-income-metrics{padding:0}
.record-income-metrics>div{gap:2px}
/* Compact the unified records list while keeping its existing fields visible. */
#view-records .record-list{gap:5px}
#view-records .record-item:not(.rec-income){padding:8px 10px}
#view-records .record-item.rec-income .swipe-content{padding:8px 10px}
#view-records .record-income-head{margin-bottom:4px}
#view-records .record-income-metrics{gap:7px}

/* Keep record timestamps aligned and prevent status labels changing row width. */
#view-records .record-item.swipe-row{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#view-records .record-income-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px}
#view-records .record-income-head>.record-main{width:100%;min-width:0;overflow:hidden}
#view-records .record-income-head time{grid-column:2;grid-row:1;white-space:nowrap}
#view-records .record-income-head .record-sub{min-width:0}
#view-records .record-income-head .rec-status{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* Keep the fulfillment status beside the title and CDKs on one shared metadata row. */
.record-income-head,#view-records .record-income-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:3px 8px}
.record-income-head>.record-main,#view-records .record-income-head>.record-main{display:contents}
.record-title-line{grid-column:1;grid-row:1;display:flex;align-items:center;gap:6px;min-width:0}
.record-title-line .record-title{min-width:0;flex:0 1 auto}
.record-title-line .rec-status,#view-records .record-title-line .rec-status{flex:0 0 auto;white-space:nowrap;font-size:9px}
.record-income-head time{grid-column:2;grid-row:1}
.record-income-head .record-sub,#view-records .record-income-head .record-sub{grid-column:1/-1;grid-row:2;flex-wrap:nowrap;min-width:0;margin-top:0}
.record-income-head .record-sub>.rec-source,.record-income-head .record-sub>.tag{flex:none}
.record-income-head .rec-cdk{flex:1;min-width:0}
.record-income-head .rec-cdk>span{min-width:0}
.record-income-head .rec-cdk button{flex:none;min-height:20px;padding:1px 5px}

/* Collection fees belong with the customer payment, without a separate footer. */
.record-paid-label{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.record-paid-label small{font-size:9px;line-height:1.3;color:var(--muted);white-space:nowrap;font-weight:400}

/* Compact record filters use the ledger palette instead of native popup menus. */
.records-filters{display:flex;align-items:center;gap:7px;margin:0 0 10px}
.records-filters details{position:relative;flex:1;min-width:0}
.records-filters summary{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:34px;padding:6px 10px;list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--muted);font-size:11px}
.records-filters summary::-webkit-details-marker{display:none}
.records-filters summary>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.records-filters details[open] summary{border-color:var(--mint);color:var(--text)}
.records-filter-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:4px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-md)}
.records-filter-menu button{display:block;width:100%;min-height:36px;padding:8px;border:0;border-radius:5px;background:transparent;color:var(--text);text-align:left;font-size:11px;cursor:pointer}
.records-filter-menu button[aria-pressed="true"]{background:color-mix(in srgb,var(--mint) 12%,transparent);color:var(--mint)}
.records-filter-menu button:hover,.records-filter-menu button:focus-visible{background:var(--panel);outline:1px solid var(--mint)}
#recordsFilterReset{flex:none;padding:6px 4px;border:0;background:transparent;color:var(--muted);font-size:11px}
#recordsFilterReset[hidden]{display:none}

/* Search/date/platform/status share identical column widths and control heights. */
.records-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 10px}
.records-controls .records-toolbar,.records-controls .records-filters{display:contents}
.records-controls .records-toolbar>input{box-sizing:border-box;width:100%;height:36px;margin:0;padding:7px 10px;font-size:11px}
.records-controls .records-toolbar>label{box-sizing:border-box;height:36px;margin:0;padding:0 9px;gap:5px;overflow:hidden}
.records-controls .records-toolbar>label>span{flex:none}
.records-controls .records-toolbar>label input{box-sizing:border-box;flex:1;width:0;min-width:0;height:34px;margin:0;padding:0;font-size:11px;color-scheme:dark}
.records-controls .records-filters summary{box-sizing:border-box;height:36px;min-height:36px;padding:7px 10px;font-size:11px}
.records-controls #recordsFilterReset{grid-column:1/-1;justify-self:end;margin:0;padding:2px 4px;line-height:16px}

.device-access-actions{display:flex;gap:8px;flex-wrap:wrap}.device-access-actions button{flex:1;min-width:110px}.login-card .device-access-actions{margin-top:8px}.login-card #loginDeviceStatus{margin:12px 0 0}
/* 设置页操作日志折叠 */
.settings-fold{padding:0}
.settings-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px}
.settings-fold>summary::-webkit-details-marker{display:none}
.settings-fold>summary h3{margin:0}
.settings-fold>summary::after{content:'▾';color:var(--muted);font-size:12px}
.settings-fold[open]>summary::after{content:'▴'}
.settings-fold-body{padding:0 16px 16px}
.settings-fold-body>.outline-btn{width:100%}
.settings-fold-body .audit-log-list{margin-top:12px}

#view-card-wallet .cw-stock-info .cw-stock-meta{display:block;margin-top:4px;font-size:10px;line-height:1.4;color:var(--muted)}
