/* ============================================================
   css/chat/chat-finance.css — 管钱界面 + 财务泡泡卡样式
   跟随主题变量，无硬编码颜色
   ============================================================ */

/* ===== Money Overlay ===== */
/* ★ 2028-09 第 4 窗口：管钱面板重做成「一屏一动作」——
   面板本体只留头 + 可滚内容 + 底部主按钮，里面的零件（金额/动作/更多/小窗）
   全部搬去 css/chat/money-ui.css 的 .mny-*；这里只保留外壳与还在共用的旧按钮。
   ★ 顺带修掉一个真实的坑：这个全屏层原来挂在小窝面板（#tab-nest）里，
     而那是个 overflow:auto 的滚动容器 → 全屏层会被裁在面板那一格里（手机上尤其明显）。
     现在它直接挂在 #app 里（index.html 已挪），position:fixed 才是真的铺满手机框。 */
.money-overlay {
    position: fixed; inset: 0; z-index: var(--z-money-base);
    background: var(--money-bg);
    color: var(--money-ink);
    font-family: var(--money-font);
    display: none; flex-direction: column;
    padding-top: var(--safe-top);
    height: 100vh;            /* iOS 独立运行(加到主屏)时 100% 只撑到可视区（长期规则 #35）*/
}
.money-overlay.open { display: flex; }
@media (min-width: 481px) {
    .money-overlay { left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; box-shadow: var(--money-shadow-lg); }
}

.money-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 6px 14px; flex-shrink: 0;
    background: var(--money-surface-solid);
    border-bottom: 0.5px solid var(--money-divider);
}
.money-back-btn {
    width: var(--money-tap); height: var(--money-tap); border: none; background: none;
    cursor: pointer; padding: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--money-ink);
    margin-left: -8px;
    border-radius: var(--money-radius-btn);
    -webkit-tap-highlight-color: transparent;
    transition: background var(--money-duration-fast) var(--money-ease),
                color var(--money-duration-fast) var(--money-ease);
}
.money-back-btn svg { width: 20px; height: 20px; }
.money-back-btn:active { color: var(--money-accent-strong); background: var(--money-surface-soft); }
.money-title { font-size: var(--money-fs-title); font-weight: 600; color: var(--money-ink); }

/* ===== Money Content（旧表单用到的格子仍在别处复用，保留） ===== */
.money-field { display: flex; flex-direction: column; gap: 6px; }
.money-label {
    font-size: 11.5px; color: var(--money-ink-soft);
    font-weight: 500; letter-spacing: 0.02em;
}
.money-input {
    padding: 14px 15px;
    border: 1px solid var(--money-line);
    border-radius: var(--money-radius-input);
    font-family: inherit; font-size: 15px;
    background: var(--money-surface-solid);
    color: var(--money-ink); outline: none;
    box-shadow: none;
    -webkit-appearance: none; appearance: none;
    transition: border-color var(--money-duration-base) var(--money-ease),
                box-shadow var(--money-duration-base) var(--money-ease);
}
.money-input:focus {
    border-color: var(--money-accent);
    box-shadow: 0 0 0 3px var(--money-accent-soft);
}
.money-input::placeholder { color: var(--money-faint); }

/* ===== 管钱那几个全屏小表单的共用外壳（新建卡 / 卡间挪钱）=====
   第 4 窗口统一：不再写行内样式，头部三格 + 底部按钮行都走类名。 */
.money-form-cancel,
.money-form-title,
.money-form-space { flex: 0 0 auto; }
.money-form-cancel {
    min-height: var(--money-tap); padding: 0 2px;
    border: none; background: none;
    font-family: inherit; font-size: 14px;
    color: var(--money-muted); cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color var(--money-duration-base) var(--money-ease);
}
.money-form-cancel:active { color: var(--money-accent-strong); }
.money-form-title { flex: 1 1 auto; text-align: center; font-size: 15px; font-weight: 600; color: var(--money-ink); }
.money-form-space { width: var(--money-tap); }
.money-form-actions { display: flex; gap: 8px; margin-top: 14px; }
.money-form-actions .money-submit-btn { flex: 1 1 50%; }
.money-submit-btn.is-ghost {
    background: transparent;
    color: var(--money-ink-soft);
    border: 1px solid var(--money-line);
    box-shadow: none;
}

/* ===== Submit button =====
   ★ 2028-09 第 5 窗口：这一处实现已收进 css/money-components.css（钱那一块唯一一处）。
     原来这里还写过一遍（深玫瑰渐变 + 白字 700 + 重阴影），与新的统一色/字重冲突，
     整块删掉；只留「这一行按钮平分宽度」这条**排布**规则（排布不属于组件长相）。
     还在用它的地方：小金库 / 家规 / 目标 / 转账 —— 长相一律由组件层说了算。 */
.money-form-actions .money-submit-btn { flex: 1 1 50%; }

/* ===== Finance Card Bubbles (in chat) ===== */
.finance-card-bubble {
    background: transparent !important;
    padding: 0 !important;
    border-radius: var(--radius-md) !important;
    overflow: hidden; max-width: 260px;
    box-shadow: var(--shadow-md) !important;
}
.finance-card { padding: 16px 18px; border-radius: var(--radius-md); text-align: center; }

/* ★ 2028-09 第 5 窗口：下面那六种卡面的颜色**原来的写法整段删掉了**。
   原因有两层：
     ① 同一批类名（.finance-card.income / .expense_approved / …）在
        css/chat/chat-payment.css 里已经有一份**用 --money-* 令牌写的**实现，
        这里再写一遍＝同一件事两处定义（长期规则 #194 的反面：改一处不生效）；
     ② 这里写的还是硬编码色（#eaf2e8 / #3a5a2a / #f8f6f0…），一进深色模式
        整块卡会突然发亮，且不会跟着她挑的主题走。
   现在**唯一实现**在 chat-payment.css 的「财务泡泡卡」那一节；这一份删掉。
   下面这两条是**排布**（不属于颜色/长相），保留。 */
.fc-title { font-size: 11px; font-weight: 600; margin-bottom: 6px; opacity: 0.65; letter-spacing: 0.5px; }
.fc-amount { font-size: 28px; font-weight: 700; margin-bottom: 4px; letter-spacing: -0.5px; }
.fc-reason { font-size: 13px; opacity: 0.7; margin-bottom: 6px; }
.fc-split { font-size: 11px; opacity: 0.5; line-height: 1.5; margin-top: 6px; padding-top: 8px; border-top: 1px solid rgba(0,0,0,0.06); }
.fc-reject-reason { font-size: 12px; font-style: italic; opacity: 0.6; margin-top: 6px; padding-top: 8px; border-top: 1px solid rgba(0,0,0,0.06); }

/* ===== Numpad（旧的 #money-numpad 已被金额小窗取代，样式一并删掉；见 money-ui.css 的 .mny-*）===== */

/* ===== Web View ===== */
.webview-overlay {
    position: fixed; inset: 0; z-index: 450;
    background: var(--bg-chat); display: none; flex-direction: column;
}
.webview-overlay.open { display: flex; }
@media (min-width: 481px) {
    .webview-overlay { left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; }
}
.webview-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 8px; flex-shrink: 0;
    background: var(--surface-solid);
    border-bottom: 0.5px solid var(--divider);
    padding-top: calc(8px + env(safe-area-inset-top, 0px));
}
.webview-back-btn, .webview-open-btn {
    width: 36px; height: 36px; border: none; background: none;
    cursor: pointer; padding: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--text-primary);
}
.webview-back-btn svg, .webview-open-btn svg { width: 20px; height: 20px; }
.webview-title {
    font-size: 15px; font-weight: 600; color: var(--text-primary);
    max-width: 60%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.webview-container { flex: 1; position: relative; background: var(--bg-chat); }
.webview-container iframe { width: 100%; height: 100%; border: none; background: var(--surface-solid); }
.webview-fallback {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 16px; color: var(--text-muted); font-size: 14px;
}
.webview-fallback-btn {
    padding: 10px 24px; border: 1px solid var(--border); border-radius: var(--radius-md);
    background: var(--surface-solid); font-family: inherit; font-size: 14px;
    color: var(--text-primary); cursor: pointer;
}

/* ============================================================
   钱袋（管钱模块 V3 · 第 1 窗口）— 只换称呼，钱一分不动
   命名统一 --mp-* 前缀，避免与任何已有组件撞名。

   ★ 2028-09 第 5 窗口：四档动效/缓动**不再另写一套**，直接引 --money-*（手册 §J：
   同样的东西只设计一次）；颜色/圆角/阴影也一律换成 --money-* 令牌。
   类名一个都不改（有一份真浏览器量尺在盯 .mp-*）。
   ============================================================ */
.mp-shell, .mp-overlay {
    --mp-fast: var(--money-duration-fast);
    --mp-base: var(--money-duration-base);
    --mp-slow: var(--money-duration-slow);
    --mp-ease: var(--money-ease);
}

/* ---- 小金库里那一块 ---- */
.mp-shell {
    background: var(--money-surface-solid);
    border: 1px solid var(--money-line-faint);
    border-radius: var(--money-radius-surface);
    padding: 16px;
    box-shadow: var(--money-shadow-sm);
}
.mp-head {
    display: flex; align-items: center; justify-content: space-between;
    min-height: 24px;
}
.mp-en {
    font-family: var(--money-font-num);
    font-style: italic;
    font-size: var(--money-fs-en);
    letter-spacing: 0.06em;
    color: var(--money-warm);
    opacity: 0.85;
}
.mp-edit {
    min-height: 34px; padding: 2px 12px;
    border: 1px solid var(--money-line); border-radius: var(--money-radius-tag);
    background: transparent; color: var(--money-ink-soft);
    font-family: inherit; font-size: 12.5px; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), border-color var(--mp-base) var(--mp-ease), color var(--mp-base) var(--mp-ease);
}
.mp-edit:active { transform: scale(0.96); border-color: var(--money-accent-line); color: var(--money-on-accent-soft); }
.mp-sub {
    margin-top: 6px;
    font-size: var(--money-fs-sub); color: var(--money-muted);
}
.mp-sub b {
    font-family: var(--money-font-num);
    font-weight: 500;
    font-size: 16px;
    color: var(--money-ink);
    font-variant-numeric: tabular-nums;
    margin-left: 4px;
}
.mp-grid {
    display: flex; flex-wrap: wrap; gap: 8px;
    margin-top: 12px;
}
.mp-block {
    flex: 1 1 calc(50% - 4px);
    min-width: calc(50% - 4px);
    min-height: 60px;
    padding: 10px 12px;
    border: 1px solid var(--money-line-faint);
    border-radius: var(--money-radius-surface);
    background: var(--money-accent-soft);
    transition: transform var(--mp-fast) var(--mp-ease), border-color var(--mp-base) var(--mp-ease);
}
.mp-block.mp-renamable { cursor: pointer; }
.mp-block.mp-renamable:active { transform: scale(0.98); border-color: var(--money-accent-line); }
.mp-name {
    font-size: 13px; color: var(--money-ink-soft);
    display: flex; align-items: center; gap: 6px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mp-tag {
    flex-shrink: 0;
    font-size: 10.5px; line-height: 1;
    padding: 3px 6px;
    border-radius: var(--money-radius-tag);
    background: var(--money-surface-solid);
    color: var(--money-on-accent-soft);
}
.mp-amount {
    margin-top: 6px;
    font-family: var(--money-font-num);
    font-size: 19px; font-weight: 500;
    color: var(--money-ink);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mp-note {
    margin-top: 12px;
    min-height: var(--money-tap); display: flex; align-items: center;
    font-size: var(--money-fs-sub); color: var(--money-muted);
    border-top: 1px solid var(--money-line-faint);
    transition: color var(--mp-base) var(--mp-ease);
}
.mp-note:active { color: var(--money-on-accent-soft); }

/* ---- 全新账号的第一步 ---- */
.mp-welcome {
    margin-top: 12px;
    padding: 14px;
    border: 1px solid var(--money-line-faint);
    border-radius: var(--money-radius-surface);
    background: var(--money-surface-soft);
}
.mp-w-title { font-size: 15px; font-weight: 600; color: var(--money-ink); }
.mp-w-sub { margin-top: 6px; font-size: var(--money-fs-sub); color: var(--money-muted); line-height: 1.6; }
.mp-w-main {
    margin-top: 12px; width: 100%; min-height: var(--money-tap);
    border: none; border-radius: var(--money-radius-btn);
    background: var(--money-accent-strong); color: var(--money-on-accent);
    font-family: inherit; font-size: 14.5px; font-weight: 600; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), background var(--mp-base) var(--mp-ease);
}
.mp-w-main:active { transform: scale(0.98); background: var(--money-accent); }
.mp-w-alt {
    margin-top: 12px; min-height: var(--money-tap);
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; color: var(--money-muted);
    transition: color var(--mp-base) var(--mp-ease);
}
.mp-w-alt:active { color: var(--money-on-accent-soft); }

/* ---- 选一种用法（浮层） ---- */
.mp-overlay {
    position: fixed; inset: 0; z-index: var(--z-money-sheet);
    display: none; align-items: flex-end; justify-content: center;
    background: oklch(0.22 0.02 60 / 0.34);
    opacity: 0;
    transition: opacity var(--mp-base) var(--mp-ease);
    padding-top: var(--safe-top);
}
.mp-overlay.show { display: flex; opacity: 1; }
.mp-sheet {
    width: 100%; box-sizing: border-box;
    background: var(--money-bg);
    color: var(--money-ink);
    border-radius: var(--money-radius-card) var(--money-radius-card) 0 0;
    padding: 20px 16px calc(18px + var(--safe-bottom));
    box-shadow: var(--money-shadow-lg);
    transform: translateY(12px);
    transition: transform var(--mp-slow) var(--mp-ease);
    max-height: 88vh; overflow-y: auto;
    overscroll-behavior: contain;
}
.mp-overlay.show .mp-sheet { transform: translateY(0); }
.mp-s-en {
    font-family: var(--money-font-num); font-style: italic;
    font-size: var(--money-fs-en); letter-spacing: 0.06em;
    color: var(--money-warm); opacity: 0.85;
}
.mp-s-title {
    margin-top: 6px;
    font-size: var(--money-fs-title); font-weight: 600; color: var(--money-ink);
}
.mp-s-desc {
    margin-top: 8px;
    font-size: 13px; color: var(--money-muted); line-height: 1.65;
}
.mp-options { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.mp-opt {
    display: block; width: 100%; box-sizing: border-box; min-height: 56px; text-align: left;
    padding: 12px 14px;
    border: 1px solid var(--money-line-faint);
    border-radius: var(--money-radius-surface);
    background: var(--money-surface-solid);
    font-family: inherit; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), border-color var(--mp-base) var(--mp-ease), background var(--mp-base) var(--mp-ease);
}
.mp-opt:active { transform: scale(0.985); }
.mp-opt.on { border-color: var(--money-accent); background: var(--money-accent-soft); }
.mp-opt-t { display: block; font-size: 15px; font-weight: 600; color: var(--money-ink); }
.mp-opt-d { display: block; margin-top: 4px; font-size: var(--money-fs-sub); color: var(--money-muted); line-height: 1.55; }
.mp-s-note {
    margin-top: 14px;
    font-size: var(--money-fs-sub); color: var(--money-muted); line-height: 1.6;
}
.mp-s-close {
    margin-top: 16px; width: 100%; min-height: var(--money-tap);
    border: 1px solid var(--money-line); border-radius: var(--money-radius-btn);
    background: transparent; color: var(--money-ink-soft);
    font-family: inherit; font-size: 14px; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), background var(--mp-base) var(--mp-ease);
}
.mp-s-close:active { transform: scale(0.98); background: var(--money-surface-soft); }

/* ---- 把这几处的钱重新分一遍（管钱 V3 · 第 3 窗口）----
   与「选一种用法」同一个底层浮层，只多一层 z（同一时间只让一个界面说话）。
   输入框是自己画的一条线，不用浏览器默认控件；窄屏不许横向溢出。
   触摸目标 ≥44px；数字一律等宽（tabular-nums），避免她打字时字宽跳动。 */
.mp-overlay-2 { z-index: calc(var(--z-money-sheet) + 2); }
.mp-re-inline {
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px dashed var(--money-line);
    border-radius: var(--money-radius-surface);
}
.mp-re-inline-tip {
    margin-top: 8px;
    font-size: 12px; color: var(--money-muted); line-height: 1.55;
}
.mp-re-entry-btn {
    width: 100%; min-height: var(--money-tap);
    border: 1px solid var(--money-accent-line);
    border-radius: var(--money-radius-btn);
    background: transparent; color: var(--money-on-accent-soft);
    font-family: inherit; font-size: 13.5px; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), background var(--mp-base) var(--mp-ease);
}
.mp-re-entry-btn:active { transform: scale(0.98); background: var(--money-accent-soft); }

/* 钱袋块下面那一行入口（只有「我自己来决定」才有） */
.mp-re-entry {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed var(--money-line-faint);
    font-size: var(--money-fs-sub); color: var(--money-on-accent-soft);
    text-align: center; cursor: pointer;
    transition: color var(--mp-base) var(--mp-ease);
}
.mp-re-entry:active { color: var(--money-accent); }

/* ---- ★ 管钱 V4：加一个钱袋 / 去掉一个（与「选用法」同一个弹层，换一套内容）
   三条约束：触摸目标 ≥44px（去掉那颗按钮也是）；名字输入框自己画线、绝不用浏览器默认框；
   窄屏 320 起不横向溢出（flex + min-width:0）。 */
.mp-dm-entry { margin-top: 10px; }
.mp-dm-list { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.mp-dm-row {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--money-line-faint);
    border-radius: var(--money-radius-surface);
    background: var(--money-surface-solid);
}
.mp-dm-i { flex: 1 1 auto; min-width: 0; }
.mp-dm-n {
    font-family: var(--font-serif, inherit); font-size: 14.5px; color: var(--money-ink);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mp-dm-a {
    margin-top: 2px; font-size: 12.5px; color: var(--money-muted);
    font-variant-numeric: tabular-nums;
}
.mp-dm-del {
    flex: 0 0 auto; min-height: var(--money-tap); padding: 0 14px;
    border: 1px solid var(--money-line); border-radius: var(--money-radius-btn);
    background: transparent; color: var(--money-muted);
    font-family: inherit; font-size: 13px; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), color var(--mp-base) var(--mp-ease);
}
.mp-dm-del:active { transform: scale(0.97); color: var(--money-ink); }
.mp-dm-keep {
    flex: 0 0 auto; font-size: 12px; color: var(--money-line);
    letter-spacing: 0.04em;
}
.mp-dm-add { margin-top: 14px; display: flex; align-items: center; gap: 10px; }
.mp-dm-input {
    flex: 1 1 auto; min-width: 0; min-height: var(--money-tap);
    padding: 0 2px;
    border: none; border-bottom: 1px solid var(--money-line);
    border-radius: 0; background: transparent;
    font-family: var(--font-serif, inherit); font-size: 15px; color: var(--money-ink);
    outline: none; -webkit-appearance: none; appearance: none;
    transition: border-color var(--mp-base) var(--mp-ease);
}
.mp-dm-input::placeholder { color: var(--money-line); }
.mp-dm-input:focus { border-bottom-color: var(--money-accent); }
.mp-dm-ok {
    flex: 0 0 auto; min-height: var(--money-tap); padding: 0 18px;
    border: 1px solid var(--money-accent-line); border-radius: var(--money-radius-btn);
    background: transparent; color: var(--money-on-accent-soft);
    font-family: inherit; font-size: 13.5px; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), background var(--mp-base) var(--mp-ease);
}
.mp-dm-ok:active { transform: scale(0.97); background: var(--money-accent-soft); }
/* 出错时那句人话（与「已满/暂不可用」同一档观感，不用红色警告框） */
.mp-notice {
    margin-top: 10px; font-size: 12.5px; color: var(--money-muted); line-height: 1.55;
}

.mp-re-list { margin-top: 14px; display: flex; flex-direction: column; gap: 10px; }
.mp-re-row {
    padding: 10px 12px 12px;
    border: 1px solid var(--money-line-faint);
    border-radius: var(--money-radius-surface);
    background: var(--money-surface-solid);
}
.mp-re-row-top {
    display: flex; align-items: baseline; gap: 8px;
    min-width: 0;
}
.mp-re-row-name {
    flex: 1 1 auto; min-width: 0;
    font-size: 13.5px; color: var(--money-ink);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mp-re-row-now {
    flex: 0 0 auto;
    font-size: 11.5px; color: var(--money-muted);
    font-variant-numeric: tabular-nums;
}
.mp-re-row-chg {
    flex: 0 0 auto;
    font-size: 11.5px; color: var(--money-on-accent-soft);
    font-variant-numeric: tabular-nums;
    min-width: 42px; text-align: right;
}
.mp-re-row-input {
    display: flex; align-items: center; gap: 6px;
    margin-top: 6px;
    border-bottom: 1px solid var(--money-line);
    padding-bottom: 4px;
}
.mp-re-row-input:focus-within { border-bottom-color: var(--money-accent); }
.mp-re-cny {
    flex: 0 0 auto;
    font-family: var(--money-font-num);
    font-size: 14px; color: var(--money-muted);
}
.mp-re-input {
    flex: 1 1 auto; min-width: 0;
    border: 0; outline: 0; background: transparent;
    font-family: var(--money-font-num);
    font-size: 19px; color: var(--money-ink);
    font-variant-numeric: tabular-nums;
    padding: 2px 0;
    /* 关掉浏览器给数字框的各种默认外观（全站禁系统默认控件） */
    -webkit-appearance: none; appearance: none;
}
.mp-re-fill {
    flex: 0 0 auto;
    min-height: 34px; padding: 2px 10px;
    border: 1px solid var(--money-line); border-radius: var(--money-radius-tag);
    background: transparent; color: var(--money-muted);
    font-family: inherit; font-size: 11.5px; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), border-color var(--mp-base) var(--mp-ease);
}
.mp-re-fill:active { transform: scale(0.96); border-color: var(--money-accent-line); color: var(--money-on-accent-soft); }

.mp-re-sum {
    margin-top: 14px; padding-top: 12px;
    border-top: 1px solid var(--money-line-faint);
}
.mp-re-sum-line {
    display: flex; align-items: baseline; justify-content: space-between;
    font-size: var(--money-fs-sub); color: var(--money-muted);
    padding: 3px 0;
}
.mp-re-sum-line b {
    font-family: var(--money-font-num); font-weight: 500;
    font-size: 15px; color: var(--money-ink);
    font-variant-numeric: tabular-nums;
}
.mp-re-tip {
    margin-top: 6px;
    font-size: 12px; color: var(--money-on-accent-soft); line-height: 1.55;
    min-height: 18px;
}
.mp-re-tip.ok { color: var(--money-muted); }
.mp-re-acts { display: flex; gap: 8px; margin-top: 14px; }
.mp-re-acts .mp-s-close { flex: 1 1 50%; margin-top: 0; }
.mp-re-go {
    flex: 1 1 50%; min-height: var(--money-tap);
    border: 0; border-radius: var(--money-radius-btn);
    background: var(--money-accent-strong); color: var(--money-on-accent);
    font-family: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--mp-fast) var(--mp-ease), background var(--mp-base) var(--mp-ease), opacity var(--mp-base) var(--mp-ease);
}
.mp-re-go:active { transform: scale(0.98); background: var(--money-accent); }
.mp-re-go:disabled { opacity: 0.45; cursor: default; }

@media (min-width: 481px) {
    .mp-overlay { left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; }
}

/* 窄屏（<370px）：两块并排太挤时改成一列，数字不缩到看不清 */
@media (max-width: 369px) {
    .mp-block { flex: 1 1 100%; min-width: 100%; }
    .mp-amount { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    .mp-overlay, .mp-sheet, .mp-shell, .mp-block, .mp-edit, .mp-w-main, .mp-opt, .mp-s-close, .mp-note, .mp-w-alt,
    .mp-re-entry, .mp-re-entry-btn, .mp-re-fill, .mp-re-go, .mp-re-input {
        transition: none;
    }
}
