/* ============================================================
 *  详情页通用样式：顶部红条 + 返回 + 卡片布局
 *  设计基准：375 × 812（移动端）；1rem = min(100vw, 480px) / 37.5
 * ============================================================ */
html { font-size: calc(min(100vw, 480px) / 37.5); }
*, *::before, *::after { box-sizing: border-box; }
html, body {
    margin: 0; padding: 0;
    background: #fbe7c2;
    font-family: "PingFang SC", "Noto Sans SC", "Microsoft YaHei", Arial, sans-serif;
    color: #2a1308;
}
body {
    min-height: 100vh;
    display: flex; justify-content: center; align-items: flex-start;
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }

.phone {
    position: relative;
    width: 37.5rem;
    min-height: 100vh;
    background: #fbe7c2;
    padding: 0 0 4rem;
}

/* ===== 顶部红条 + 返回 + 标题 ===== */
.dh-hero {
    position: relative;
    height: 8.6rem;
    padding: 3rem 4.4rem 0;
    background: linear-gradient(180deg, #d8131c 0%, #b00b13 100%);
    color: #fff;
    text-align: center;
    box-shadow: 0 0.4rem 1.2rem rgba(150, 8, 16, 0.25);
}
.dh-hero__back {
    position: absolute;
    left: 1rem; top: 3rem;
    width: 3.6rem; height: 3.6rem;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
}
.dh-hero__back:active { background: rgba(255, 255, 255, 0.3); }
.dh-hero__title {
    font-size: 1.7rem; font-weight: 700;
    letter-spacing: 0.15rem;
    line-height: 3.6rem;
}
.dh-hero__sub {
    margin-top: 0.2rem;
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.85);
    letter-spacing: 0.05rem;
}

/* ===== 主卡片：白底圆角 ===== */
.dh-card {
    margin: 1.4rem 1.2rem 0;
    padding: 1.6rem 1.6rem 1.8rem;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 0.3rem 0.8rem rgba(140, 0, 0, 0.06);
}
.dh-card__title {
    margin: 0 0 1.2rem;
    font-size: 1.55rem;
    font-weight: 700;
    color: #d8131c;
    letter-spacing: 0.05rem;
}
.dh-card__desc {
    margin: 0 0 1.2rem;
    color: #6b3a0d;
    font-size: 1.2rem;
    line-height: 1.7;
}

/* ===== 政策说明卡 ===== */
.policy-card {
    margin: 1.2rem 1.2rem 0;
    padding: 1.4rem 1.4rem 1.5rem;
    background: linear-gradient(180deg, #fff 0%, #fff8e6 100%);
    border: 0.08rem solid #f3d8a5;
    border-radius: 1rem;
    box-shadow: 0 0.3rem 0.8rem rgba(140, 0, 0, 0.06);
}
.policy-card__title {
    margin: 0 0 0.8rem;
    color: #d8131c;
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: 0.05rem;
}
.policy-card__text {
    margin: 0 0 1rem;
    color: #5c2c08;
    font-size: 1.18rem;
    line-height: 1.75;
    text-align: justify;
}
.policy-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.policy-card__list li {
    position: relative;
    padding: 0.75rem 0.9rem 0.75rem 3rem;
    background: rgba(216, 19, 28, 0.05);
    border: 0.05rem solid rgba(216, 19, 28, 0.12);
    border-radius: 0.7rem;
    color: #4a2206;
    font-size: 1.15rem;
    line-height: 1.65;
}
.policy-card__list li::before {
    content: counter(list-item);
    position: absolute;
    left: 0.85rem;
    top: 0.82rem;
    width: 1.45rem;
    height: 1.45rem;
    border-radius: 50%;
    background: linear-gradient(180deg, #ea1c25, #ad0810);
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.45rem;
    text-align: center;
}
.policy-card__foot {
    margin: 1rem 0 0;
    padding: 0.9rem 1rem;
    background: #fff0c6;
    border-radius: 0.7rem;
    color: #b14406;
    font-size: 1.16rem;
    font-weight: 700;
    line-height: 1.6;
}

/* ===== 通用表单字段 ===== */
.dh-field { margin-bottom: 1.4rem; }
.dh-field__label {
    display: block;
    color: #d8131c;
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 0.6rem;
    letter-spacing: 0.05rem;
}
.dh-field__input,
.dh-field__select {
    width: 100%;
    height: 3.6rem;
    padding: 0 1.2rem;
    background: #fffaee;
    border: 0.1rem solid #f3d8a5;
    border-radius: 0.5rem;
    color: #444;
    font-size: 1.4rem;
    -webkit-appearance: none;
    appearance: none;
}
.dh-field__input::placeholder,
.dh-field__select::placeholder { color: #c9a96a; }
.dh-field__input:focus,
.dh-field__select:focus { outline: none; border-color: #d8131c; }
.dh-field__static {
    padding: 0.8rem 1.2rem;
    background: #fffaee;
    border: 0.1rem dashed #f3d8a5;
    border-radius: 0.5rem;
    color: #6b3a0d;
    font-size: 1.3rem;
    line-height: 1.7;
}
.dh-field__hint {
    margin-top: 0.4rem;
    color: #b14406;
    font-size: 1.1rem;
}

/* ===== 大红按钮 / 透明按钮（统一垂直居中：flex + 适度 padding-top 补偿中文字体偏上） ===== */
.dh-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22rem; max-width: 100%;
    height: 4.4rem;
    margin: 1.4rem auto 0;
    padding: 0.5rem 1.6rem 0;            /* 上 0.5rem 让汉字视觉居中 */
    box-sizing: border-box;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, #ea1c25 0%, #ad0810 100%);
    color: #fff;
    font-size: 1.5rem; font-weight: 700;
    letter-spacing: 0.3rem;
    text-indent: 0.3rem;                 /* 抵消末字符 letter-spacing 让文字真居中 */
    line-height: 1;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 0.4rem 1rem rgba(180, 10, 16, 0.35);
    isolation: isolate;
}
.dh-btn:active {
    transform: translateY(0.1rem);
    box-shadow: 0 0.2rem 0.5rem rgba(180, 10, 16, 0.32);
}
.dh-btn--ghost {
    background: #fff;
    color: #d8131c;
    border: 0.1rem solid #d8131c;
    box-shadow: none;
}
.dh-btn--disabled {
    background: linear-gradient(180deg, #ccc, #aaa);
    box-shadow: none;
    cursor: not-allowed;
}

/* ===== 公户已激活成功面板（pa_apply.php） ===== */
.pa-activated {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1.2rem 0 0;
    padding: 1.2rem 1.3rem;
    background: linear-gradient(135deg, #eaf8ef 0%, #d6f3cb 100%);
    border: 0.1rem solid #b6e2b1;
    border-left: 0.32rem solid #2c8a16;
    border-radius: 0.7rem;
    box-shadow: 0 0.3rem 0.7rem rgba(30, 110, 50, 0.12);
}
.pa-activated__icon {
    flex: 0 0 auto;
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 50%;
    background: linear-gradient(180deg, #38a850, #1d6a14);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0.25rem 0.55rem rgba(30, 110, 50, 0.32),
                inset 0 0.08rem 0 rgba(255,255,255,.32);
}
.pa-activated__icon svg { width: 1.9rem; height: 1.9rem; }
.pa-activated__text {
    flex: 1;
    min-width: 0;
}
.pa-activated__title {
    font-size: 1.55rem;
    font-weight: 800;
    color: #1d6a14;
    letter-spacing: 0.1rem;
    line-height: 1.25;
    margin-bottom: 0.3rem;
}
.pa-activated__sub {
    font-size: 1.18rem;
    color: #2b5a18;
    line-height: 1.6;
    letter-spacing: 0.02rem;
}
.pa-activated__sub b,
.pa-activated__sub em {
    color: #c81222;
    font-style: normal;
    font-weight: 800;
    font-size: inherit;
    margin: 0 0.08rem;
}
.pa-activated__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9rem;
    margin-top: 1.2rem;
}
.pa-activated__actions .dh-btn { margin: 0; }

/* ===== 银行卡绑定信息卡（bank_card.php 已绑定状态） ===== */
.bind-info {
    margin: 1.4rem 1.2rem 0;
    background: #ffffff;
    border: 0.06rem solid #e8e3d7;
    border-radius: 1rem;
    box-shadow: 0 0.4rem 1.2rem rgba(168, 88, 12, 0.06);
    overflow: hidden;
}
.bind-info__head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.2rem 1.4rem;
    background: linear-gradient(135deg, #fff7e8 0%, #fef0d6 100%);
    border-bottom: 0.05rem solid #f1e2bf;
}
.bind-info__check {
    flex: 0 0 3.2rem;
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #34c66c, #1d8e44);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0.25rem 0.6rem rgba(29, 142, 68, 0.32);
}
.bind-info__check svg { display: block; }
.bind-info__head-text {
    flex: 1;
    min-width: 0;
}
.bind-info__title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #2a1308;
    line-height: 1.2;
}
.bind-info__sub {
    margin-top: 0.25rem;
    font-size: 1rem;
    color: #8a6a3a;
    line-height: 1.3;
}
.bind-info__badge {
    flex: 0 0 auto;
    padding: 0.25rem 0.7rem;
    border-radius: 0.7rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1d8e44;
    background: #e3f5e7;
    border: 0.06rem solid #b8e0bf;
    letter-spacing: 0.05rem;
}
.bind-info__list {
    list-style: none;
    margin: 0;
    padding: 0.5rem 1.4rem;
}
.bind-info__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.78rem 0;
    border-bottom: 0.05rem dashed #f0e6d2;
    font-size: 1.18rem;
}
.bind-info__row:last-child { border-bottom: 0; }
.bind-info__label {
    flex: 0 0 7.5rem;
    color: #a07845;
    font-weight: 600;
    letter-spacing: 0.04rem;
}
.bind-info__value {
    flex: 1;
    min-width: 0;
    text-align: right;
    color: #2a1308;
    font-weight: 700;
    word-break: break-all;
}
.bind-info__value--mono {
    font-family: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
    letter-spacing: 0.12rem;
    font-size: 1.22rem;
    color: #16243a;
}
.bind-info__value--time {
    color: #6a4d2a;
    font-weight: 600;
    font-size: 1.1rem;
}
.bind-info__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9rem;
    padding: 0.4rem 1.4rem 1.4rem;
}
.bind-info__actions .dh-btn {
    margin: 0;
    width: 20rem;
    max-width: 100%;
}

/* ===== 修改卡信息（折叠面板） ===== */
.bind-edit {
    margin-top: 1.2rem;
}
.bind-edit[hidden] {
    display: none !important;
}
.bind-edit__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9rem;
    margin-top: 1rem;
}
.bind-edit__actions .dh-btn {
    width: 20rem;
    max-width: 100%;
}

/* ===== 状态卡（已完成 / 警告 / 已锁） ===== */
.dh-status {
    display: flex; gap: 1rem;
    padding: 1.2rem 1.4rem;
    border-radius: 0.8rem;
    background: #fff7e6;
    border: 0.1rem solid #f3d8a5;
    margin-bottom: 1.4rem;
}
.dh-status__icon {
    flex: 0 0 3.4rem;
    width: 3.4rem; height: 3.4rem;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #ea1c25, #ad0810);
    color: #fff;
    font-size: 1.6rem; font-weight: 700;
}
.dh-status--ok    .dh-status__icon { background: linear-gradient(135deg, #2c8a16, #185f0e); }
.dh-status--warn  .dh-status__icon { background: linear-gradient(135deg, #ff8a18, #c95710); }
.dh-status__body { flex: 1; }
.dh-status__head {
    font-size: 1.4rem; font-weight: 700; color: #2a1308;
    margin-bottom: 0.4rem;
    display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
}
.dh-status__row {
    display: flex; justify-content: space-between;
    margin: 0.2rem 0;
    font-size: 1.15rem; color: #6b3a0d;
    line-height: 1.6;
    word-break: break-all;
}
.dh-status__row span { color: #999; flex: 0 0 9rem; }
.dh-status__row b { color: #2a1308; font-weight: 600; text-align: right; }
.dh-status__row b.amount { color: #d8131c; font-weight: 700; }
.dh-status__row b.mono { font-family: "SF Mono", Menlo, Consolas, monospace; letter-spacing: 0.04rem; }

.dh-badge {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    border-radius: 0.8rem;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.05rem;
}
.dh-badge--ok   { background: #c6f0c1; color: #1d6a14; }
.dh-badge--warn { background: #ffd9b3; color: #8a3e08; }
.dh-badge--gray { background: #eee;    color: #888; }

/* ===== 进度条（圆梦金 0/3 邀请进度等） ===== */
.dh-progress {
    margin: 1.4rem 0 1rem;
}
.dh-progress__head {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 0.6rem;
    font-size: 1.3rem; color: #6b3a0d;
}
.dh-progress__head b { color: #d8131c; font-size: 1.5rem; font-weight: 800; }
.dh-progress__bar {
    height: 1rem;
    background: #fff7e6;
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: inset 0 0.1rem 0.2rem rgba(180, 80, 0, 0.12);
}
.dh-progress__fill {
    height: 100%;
    background: linear-gradient(90deg, #ffb13a, #d8131c);
    border-radius: 0.5rem;
    transition: width 0.4s ease;
}

/* ===== Tabs ===== */
.dh-tabs {
    display: flex;
    margin: 1rem 1.2rem 0;
    background: #fff;
    border-radius: 5rem;
    padding: 0.35rem;
    box-shadow: 0 0.2rem 0.6rem rgba(150, 8, 16, 0.08);
    gap: 0.2rem;
    box-sizing: border-box;
}
.dh-tab {
    flex: 1 1 0;
    min-width: 0;
    height: 3.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 0.2rem;
    border: 0;
    border-radius: 5rem;
    background: transparent;
    color: #6b3a0d;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: 0.02rem;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease;
}
.dh-tab.is-active {
    background: linear-gradient(180deg, #ea1c25, #ad0810);
    color: #fff;
    box-shadow: 0 0.25rem 0.55rem rgba(180, 10, 16, 0.28);
}

/* ===== 流水列表 ===== */
.dh-tx-list { margin: 1.4rem 1.2rem 0; }
.dh-tx-empty {
    text-align: center;
    padding: 2.6rem 2rem 2.4rem;
    color: #b89880;
    font-size: 1.25rem;
    background: #fff;
    border-radius: 1rem;
    line-height: 1.6;
}
.dh-tx-empty__icon {
    font-size: 2.8rem;
    margin-bottom: 0.4rem;
    opacity: 0.6;
}
.dh-tx-empty__hint {
    margin-top: 0.3rem;
    font-size: 1.1rem;
    color: #c2a37b;
}
.dh-tx-item {
    display: flex; align-items: center;
    gap: 1.2rem;
    background: #fff;
    border-radius: 1rem;
    padding: 1.2rem 1.4rem;
    margin-bottom: 0.8rem;
    box-shadow: 0 0.2rem 0.6rem rgba(150, 8, 16, 0.05);
}
.dh-tx-item__icon {
    flex: 0 0 4rem;
    width: 4rem; height: 4rem;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #ffe6c4, #ffc78a);
    color: #d8131c;
    font-size: 1.6rem;
    font-weight: 700;
}
.dh-tx-item__icon--in  { background: linear-gradient(135deg, #c6f0c1, #76d36a); color: #1d6a14; }
.dh-tx-item__icon--out { background: linear-gradient(135deg, #ffd9b3, #ff8a18); color: #fff; }
.dh-tx-item__body { flex: 1; min-width: 0; }
.dh-tx-item__title {
    font-size: 1.4rem; font-weight: 700; color: #2a1308;
    margin-bottom: 0.3rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dh-tx-item__sub {
    font-size: 1.1rem; color: #999;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dh-tx-item__amt {
    flex: 0 0 auto;
    text-align: right;
    font-size: 1.5rem; font-weight: 800;
    color: #d8131c;
}
.dh-tx-item__amt--in  { color: #1d6a14; }
.dh-tx-item__amt--out { color: #d8131c; }
.dh-tx-item__bal {
    font-size: 1rem;
    color: #999;
    font-weight: 400;
}

/* ===== 余额卡（提现 / 圆梦金详情顶部用） ===== */
.dh-balance {
    position: relative;
    margin: 1rem 1.2rem 0;
    padding: 1.4rem 1.6rem 1.3rem;
    border-radius: 1rem;
    color: #fff;
    background: linear-gradient(135deg, #ea1c25 0%, #ad0810 100%);
    box-shadow: 0 0.4rem 1rem rgba(180, 10, 16, 0.25);
    overflow: hidden;
}
.dh-balance::after {
    /* 右侧装饰：花纹圆点 */
    content: '';
    position: absolute;
    right: -2rem; top: -2rem;
    width: 8rem; height: 8rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%);
    pointer-events: none;
}
.dh-balance__label {
    font-size: 1.15rem;
    opacity: 0.85;
    letter-spacing: 0.08rem;
    margin-bottom: 0.3rem;
}
.dh-balance__amount {
    font-size: 2.6rem;
    font-weight: 800;
    letter-spacing: 0.06rem;
    line-height: 1.05;
    margin-bottom: 0.5rem;
}
.dh-balance__sub {
    font-size: 1.1rem;
    opacity: 0.85;
    letter-spacing: 0.04rem;
}

/* ===== 提现页：账户状态紧凑卡（withdraw.php 专用） ===== */
.wd-state {
    margin: 1rem 1.2rem 0;
    padding: 1.5rem 1.4rem 1.6rem;
    background: #fff;
    border: 0.05rem solid #f3e6d2;
    border-radius: 1rem;
    box-shadow: 0 0.4rem 1rem rgba(140, 0, 0, 0.06);
    display: flex;
    gap: 1.1rem;
    align-items: flex-start;
    border-left: 0.4rem solid transparent;
    position: relative;
    overflow: hidden;
}
.wd-state--warn { border-left-color: #ff8a18; }
.wd-state--info { border-left-color: #2962d8; }
.wd-state--ok   {
    border-left-color: #2c8a16;
    background:
        radial-gradient(120% 80% at 100% 0%, rgba(46, 134, 70, 0.08), transparent 55%),
        #fff;
}

.wd-state__icon {
    flex: 0 0 4rem;
    width: 4rem; height: 4rem;
    border-radius: 0.72rem;
    display: flex;
    align-items: center; justify-content: center;
    color: #fff;
    font-size: 1.75rem;
    font-weight: 900;
    background: linear-gradient(180deg, #cf1f2b, #98141d);
    border: 0.1rem solid rgba(118, 12, 18, 0.28);
    box-shadow: 0 0.35rem 0.8rem rgba(90, 20, 10, 0.16);
}
.wd-state--warn .wd-state__icon { background: linear-gradient(180deg, #b9822a, #8a5617); box-shadow: 0 0.35rem 0.8rem rgba(120, 68, 12, 0.18); }
.wd-state--info .wd-state__icon { background: linear-gradient(180deg, #315f9f, #173d72); box-shadow: 0 0.35rem 0.8rem rgba(20, 55, 100, 0.18); }
.wd-state--ok   .wd-state__icon { background: linear-gradient(180deg, #2f7a45, #17552d); box-shadow: 0 0.35rem 0.8rem rgba(20, 86, 40, 0.18); }

.wd-state__body { flex: 1; min-width: 0; }

.wd-state__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
    flex-wrap: wrap;
}
.wd-state__title {
    margin: 0;
    color: #2a1308;
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: 0.05rem;
    line-height: 1.3;
}
.wd-state__badge {
    flex: 0 0 auto;
    display: inline-block;
    padding: 0.2rem 0.7rem;
    border-radius: 1rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.05rem;
    line-height: 1.4;
}
.wd-state__badge--ok   { background: #d6f3cb; color: #1d6a14; border: 0.05rem solid #b6e2b1; }
.wd-state__badge--warn { background: #ffe0c0; color: #b14406; border: 0.05rem solid #ffc78a; }
.wd-state__badge--gray { background: #eee;    color: #888;    border: 0.05rem solid #dedede; }

.wd-state__desc {
    margin: 0 0 1rem;
    color: #6b3a0d;
    font-size: 1.2rem;
    line-height: 1.65;
}

.wd-state__row {
    display: flex;
    align-items: baseline;
    gap: 0.8rem;
    padding: 0.3rem 0;
    font-size: 1.2rem;
    color: #6b3a0d;
    line-height: 1.6;
    border-top: 0.05rem dashed #f3d8a5;
}
.wd-state__row:first-of-type { border-top: 0; padding-top: 0.5rem; }
.wd-state__row span { flex: 0 0 auto; color: #999; min-width: 4.8em; }
.wd-state__row b {
    flex: 1;
    color: #2a1308;
    font-weight: 600;
    text-align: right;
    word-break: break-all;
}
.wd-state__row b.mono {
    font-family: "SF Mono", Menlo, Consolas, monospace;
    letter-spacing: 0.05rem;
}

.wd-state__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    min-width: 18rem;
    margin: 0.6rem auto 0;
    height: 4.4rem;
    padding: 0.5rem 3rem 0;           /* 上 0.5rem 让汉字视觉居中 */
    box-sizing: border-box;
    border-radius: 999px;
    background: linear-gradient(180deg, #ea1c25, #ad0810);
    color: #fff;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.2rem;
    text-indent: 0.2rem;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 0.4rem 0.9rem rgba(180, 10, 16, 0.32);
    isolation: isolate;
}
.wd-state__cta:active {
    transform: translateY(0.1rem);
    box-shadow: 0 0.2rem 0.5rem rgba(180, 10, 16, 0.32);
}

/* 进度条（嵌在 wd-state 内部） */
.wd-state__progress {
    margin: 0.4rem 0 1rem;
    padding: 0.8rem 0.9rem;
    background: linear-gradient(180deg, #fff8e0, #ffeebd);
    border: 0.05rem solid #f3d8a5;
    border-radius: 0.6rem;
}
.wd-state__progress-head {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 0.5rem;
    font-size: 1.15rem; color: #6b3a0d;
}
.wd-state__progress-head b {
    color: #d8131c; font-weight: 800; font-size: 1.4rem; margin: 0 0.1rem;
}
.wd-state__progress-bar {
    height: 0.8rem;
    background: rgba(255,255,255,0.7);
    border-radius: 0.4rem;
    overflow: hidden;
    box-shadow: inset 0 0.05rem 0.15rem rgba(180, 80, 0, 0.15);
}
.wd-state__progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #ffb13a, #d8131c);
    border-radius: 0.4rem;
    transition: width 0.4s ease;
}

/* ===== 提现：单余额行 ===== */
.dh-withdraw-row {
    display: flex; align-items: center; gap: 1.1rem;
    padding: 1.4rem 1.4rem;
    background: #fff;
    border: 0.05rem solid #f3e6d2;
    border-radius: 1rem;
    margin-bottom: 1rem;
    box-shadow: 0 0.4rem 1rem rgba(150, 8, 16, 0.05);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.dh-withdraw-row:last-child { margin-bottom: 0; }
.dh-withdraw-row:active {
    transform: translateY(0.05rem);
    box-shadow: 0 0.2rem 0.5rem rgba(150, 8, 16, 0.06);
}
.dh-withdraw-row__icon {
    flex: 0 0 5rem;
    width: 5rem; height: 5rem;
    border-radius: 1rem;
    display: flex; align-items: center; justify-content: center;
    position: relative;
    overflow: hidden;
    font-family: SimSun, "Songti SC", "Microsoft YaHei", serif;
    font-size: 1.85rem; font-weight: 900;
    color: #fff;
    letter-spacing: 0;
    border: 0.1rem solid rgba(120, 30, 10, 0.18);
    box-shadow:
        0 0.4rem 0.9rem rgba(120, 47, 8, 0.16),
        inset 0 0.08rem 0 rgba(255,255,255,.24);
}
.dh-withdraw-row__icon::before {
    content: '';
    position: absolute;
    inset: 0.46rem;
    border-radius: 50%;
    border: 0.08rem solid rgba(255,255,255,.42);
}
.dh-withdraw-row__icon::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, rgba(255,255,255,.22), transparent 38%),
        linear-gradient(315deg, rgba(0,0,0,.12), transparent 44%);
    pointer-events: none;
}
.dh-withdraw-row__icon { text-shadow: 0 0.1rem 0.18rem rgba(0,0,0,.22); }
.dh-withdraw-row__icon--pa {
    background: linear-gradient(180deg, #d81f2c 0%, #b1121c 56%, #7e0a12 100%);
}
.dh-withdraw-row__icon--pension {
    background: linear-gradient(180deg, #b98735 0%, #8a5818 56%, #6a3f10 100%);
}
.dh-withdraw-row__icon--chuangye {
    background: linear-gradient(180deg, #c69a41 0%, #9a6a24 56%, #765018 100%);
}
.dh-withdraw-row__icon--team {
    background: linear-gradient(180deg, #355faa 0%, #244e83 56%, #17345a 100%);
}
.dh-withdraw-row__body { flex: 1; min-width: 0; }
.dh-withdraw-row__name {
    font-size: 1.42rem; font-weight: 800; color: #2a1308;
    margin-bottom: 0.25rem;
    letter-spacing: 0.05rem;
}
.dh-withdraw-row .dh-tx-item__sub {
    font-size: 1.1rem;
    color: #a07a48;
    margin-bottom: 0.45rem;
    line-height: 1.45;
}
.dh-withdraw-row__balance {
    font-size: 1.78rem;
    font-weight: 800;
    color: #c81222;
    letter-spacing: 0.02rem;
    line-height: 1.15;
    font-feature-settings: "tnum" 1, "lnum" 1;
}
.dh-withdraw-row__btn {
    flex: 0 0 auto;
    height: 3.4rem;
    min-width: 6.6rem;
    padding: 0 1.5rem;
    border: 0.05rem solid rgba(120, 8, 16, 0.32);
    border-radius: 1.7rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0) 38%),
        linear-gradient(180deg, #f02934 0%, #c5121c 55%, #9c0810 100%);
    color: #fff;
    font-size: 1.28rem; font-weight: 800;
    letter-spacing: 0.18rem;
    text-indent: 0.18rem;
    cursor: pointer;
    box-shadow:
        0 0.3rem 0.7rem rgba(160, 10, 18, 0.32),
        inset 0 0.08rem 0 rgba(255,255,255,.35),
        inset 0 -0.1rem 0 rgba(0,0,0,.12);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.dh-withdraw-row__btn:active {
    transform: translateY(0.1rem);
    box-shadow:
        0 0.15rem 0.4rem rgba(160, 10, 18, 0.32),
        inset 0 0.08rem 0 rgba(255,255,255,.18);
}
.dh-withdraw-row__btn--ghost {
    background: linear-gradient(180deg, #f5f5f5, #e7e7e7);
    color: #999;
    border-color: #d8d8d8;
    box-shadow: inset 0 0.06rem 0 #fff;
}

/* ===== 银行卡 ===== */
.dh-card-image {
    margin: 1.4rem 1.2rem 0;
    padding: 1.8rem;
    background: linear-gradient(135deg, #1c2c54 0%, #213f7d 50%, #4d6dad 100%);
    border-radius: 1.2rem;
    color: #fff;
    box-shadow: 0 0.4rem 1.2rem rgba(28, 44, 84, 0.4);
    position: relative;
    overflow: hidden;
}
.dh-card-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 0.18), transparent 60%);
    pointer-events: none;
}
.dh-card-image__bank {
    font-size: 1.4rem; font-weight: 700;
    letter-spacing: 0.1rem;
    margin-bottom: 1.4rem;
}
.dh-card-image__no {
    font-size: 1.8rem; font-weight: 700;
    letter-spacing: 0.18rem;
    font-family: "SF Mono", Menlo, Consolas, monospace;
    margin-bottom: 0.8rem;
    word-break: break-all;
}
.dh-card-image__holder {
    font-size: 1.2rem;
    opacity: 0.85;
}

/* ===== 圆梦金：4 笔列表 ===== */
.dh-fund-list {
    display: flex; flex-direction: column;
    gap: 0.9rem;
}
.dh-fund-item {
    display: flex; align-items: center;
    padding: 1.2rem 1.4rem;
    background: linear-gradient(180deg, #fffaef 0%, #fff0c6 100%);
    border: 0.1rem solid #f5d9a3;
    border-radius: 0.8rem;
    gap: 1rem;
}
.dh-fund-item__info { flex: 1; }
.dh-fund-item__amount {
    color: #d8131c;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.05rem;
}
.dh-fund-item__desc {
    color: #6b3a0d;
    font-size: 1.1rem;
    margin-top: 0.3rem;
}
.dh-fund-item__btn {
    flex: 0 0 auto;
    min-width: 8.2rem;
    height: 3.4rem;
    padding: 0.25rem 1.4rem 0;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, #ea1c25, #a30810);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.12rem;
    text-indent: 0.12rem;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 0.3rem 0.6rem rgba(180, 10, 16, 0.3);
    text-align: center;
}
.dh-fund-item__btn--done {
    background: linear-gradient(180deg, #d6d6d6, #b6b6b6);
    color: #fff;
    box-shadow: none;
    cursor: not-allowed;
    letter-spacing: 0.18rem;
    text-indent: 0.18rem;
}

/* ===== 卡片右上角徽标（如"暂未开放"） ===== */
.dh-card--upcoming { position: relative; }
.dh-card--upcoming .dh-card__title { color: #8a6e35; }
.dh-card--upcoming .dh-fund-item__amount,
.dh-card--upcoming .dh-fund-item__desc { color: #998166; }
.dh-card--upcoming .dh-fund-item__desc b { color: #c0a25b; }
.dh-card__corner-tag {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.32rem 1rem 0.38rem;
    background: linear-gradient(135deg, #b9822a, #8a5617);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.16rem;
    text-indent: 0.16rem;
    border-bottom-left-radius: 0.8rem;
    border-top-right-radius: 1rem;
    box-shadow: 0 0.2rem 0.5rem rgba(120, 68, 12, 0.25);
    z-index: 2;
    pointer-events: none;
    white-space: nowrap;
}

/* ===== 银行汇款回执（领取圆梦金 & 提现成功用） ===== */
.dh-receipt {
    margin: 1.4rem 1.2rem 0;
    background: #fff;
    border: 0.15rem solid #d8131c;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 0.4rem 1.2rem rgba(150, 8, 16, 0.18);
    position: relative;
}
.dh-receipt::before {
    content: '';
    position: absolute;
    inset: 0.4rem;
    border: 0.05rem solid #f3a3a8;
    border-radius: 0.7rem;
    pointer-events: none;
}
.dh-receipt__head {
    padding: 1.6rem 1.6rem 1rem;
    text-align: center;
    border-bottom: 0.15rem dashed #f3a3a8;
}
.dh-receipt__bank {
    font-size: 1.5rem;
    color: #d8131c;
    font-weight: 700;
    letter-spacing: 0.15rem;
    margin-bottom: 0.3rem;
}
.dh-receipt__title {
    font-size: 1.9rem;
    color: #2a1308;
    font-weight: 800;
    letter-spacing: 0.4rem;
}
.dh-receipt__body {
    padding: 1.4rem 1.6rem;
}
.dh-receipt__row {
    display: flex; justify-content: space-between;
    padding: 0.5rem 0;
    font-size: 1.2rem;
    line-height: 1.7;
    color: #2a1308;
    border-bottom: 0.05rem dotted #f3d8a5;
    word-break: break-all;
}
.dh-receipt__row:last-child { border-bottom: 0; }
.dh-receipt__row span { color: #999; flex: 0 0 8.6rem; }
.dh-receipt__row b { font-weight: 600; text-align: right; }
.dh-receipt__row b.amount {
    color: #d8131c;
    font-size: 1.5rem;
    font-weight: 800;
}
.dh-receipt__stamp {
    position: absolute;
    right: 2rem; bottom: 1.4rem;
    width: 7rem; height: 7rem;
    border: 0.25rem solid #d8131c;
    border-radius: 50%;
    color: #d8131c;
    font-size: 1rem;
    font-weight: 700;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    transform: rotate(-12deg);
    opacity: 0.85;
    line-height: 1.2;
}
.dh-receipt__stamp::before {
    content: '★';
    font-size: 1.6rem;
    margin-bottom: 0.2rem;
}

/* ===== 中国银行回执单样式 ===== */
.dh-modal__panel--receipt,
.app-modal__panel--receipt {
    width: min(92vw, 36rem);
    max-width: 36rem;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}
.bank-receipt {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 2.4rem 2.2rem 2rem;
    background: linear-gradient(180deg, #fff 0%, #fff 72%, #fcfdff 100%);
    border-radius: 1.6rem;
    color: #141b2d;
    box-shadow: 0 1.2rem 3.2rem rgba(15, 23, 42, 0.18);
}
.bank-receipt__close {
    position: absolute;
    right: 0.8rem;
    top: 0.6rem;
    z-index: 3;
    width: 3.2rem;
    height: 3.2rem;
    border: 0;
    background: rgba(0, 0, 0, 0.35);
    color: #fff;
    border-radius: 50%;
    font-size: 2.2rem;
    line-height: 1;
}
.bank-receipt__top {
    text-align: center;
    padding-top: 0.2rem;
}
.bank-receipt__logo-img {
    display: block;
    width: 14rem;
    height: auto;
    margin: 0 auto;
}
.bank-receipt__logo {
    width: 5.2rem;
    height: 5.2rem;
    margin: 0 auto 0.65rem;
    border: 0.38rem solid #d71920;
    border-radius: 50%;
    position: relative;
    display: grid;
    place-items: center;
}
.bank-receipt__logo::before {
    content: '中';
    color: #d71920;
    font-family: SimHei, "Microsoft YaHei", Arial, sans-serif;
    font-size: 3rem;
    font-weight: 900;
    line-height: 1;
}
.bank-receipt__logo::after {
    content: '';
    position: absolute;
    left: 50%;
    top: -0.38rem;
    width: 0.42rem;
    height: 5.2rem;
    background: #d71920;
    transform: translateX(-50%);
    z-index: -1;
}
.bank-receipt__logo span { display: none; }
.bank-receipt__bank-cn {
    font-size: 1.9rem;
    font-weight: 900;
    color: #2b3141;
}
.bank-receipt__bank-en {
    margin-top: 0.2rem;
    font-size: 1.2rem;
    letter-spacing: 0.11rem;
    color: #c3c8d2;
}
.bank-receipt__amount-label {
    margin-top: 2.25rem;
    text-align: center;
    color: #8b95a7;
    font-size: 1.3rem;
}
.bank-receipt__amount {
    margin-top: 0.55rem;
    text-align: center;
    font-size: clamp(3.35rem, 9.2vw, 3.9rem);
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.04rem;
    color: #111827;
    white-space: nowrap;
}
.bank-receipt__success {
    margin-top: 1.25rem;
    text-align: center;
    font-size: 1.45rem;
    font-weight: 800;
    color: #18a45b;
}
.bank-receipt__divider {
    margin: 2.35rem 0 1.65rem;
    border-top: 0.1rem dashed #e6e9f0;
}
.bank-receipt__rows {
    display: flex;
    flex-direction: column;
    gap: 1.18rem;
}
.bank-receipt__row {
    display: grid;
    grid-template-columns: 8.2rem 1fr;
    gap: 0.9rem;
    align-items: start;
    font-size: 1.34rem;
    line-height: 1.48;
}
.bank-receipt__row span {
    color: #8b95a6;
    font-weight: 500;
}
.bank-receipt__row b {
    color: #3d4656;
    font-weight: 800;
    text-align: left;
    word-break: break-all;
}
.bank-receipt__row--wide b {
    line-height: 1.55;
}
.bank-receipt__row--progress b {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.66rem;
    padding-left: 1.65rem;
}
.bank-receipt__row--progress b::before {
    content: '';
    position: absolute;
    left: 0.43rem;
    top: 0.62rem;
    bottom: 0.62rem;
    width: 0.16rem;
    background: #dfe3eb;
}
.bank-receipt__row--progress em,
.bank-receipt__row--progress strong {
    position: relative;
    font-style: normal;
    font-weight: 700;
}
.bank-receipt__row--progress em::before,
.bank-receipt__row--progress strong::before {
    content: '';
    position: absolute;
    left: -1.6rem;
    top: 0.38rem;
    width: 0.86rem;
    height: 0.86rem;
    border-radius: 50%;
    background: #fff;
    border: 0.16rem solid #dfe3eb;
    box-sizing: border-box;
}
.bank-receipt__row--progress em:first-child::before,
.bank-receipt__row--progress strong::before {
    background: #e42b36;
    border-color: #e42b36;
    box-shadow: 0 0 0 0.25rem rgba(228, 43, 54, 0.12);
}
.bank-receipt__row--progress strong {
    color: #e42b36;
}
.bank-receipt__tag {
    display: inline-block;
    width: 1.9rem;
    height: 1.9rem;
    margin-right: 0.45rem;
    overflow: hidden;
    vertical-align: -0.35rem;
}
.bank-receipt__tag img {
    display: block;
    height: 1.9rem;
    width: auto;
    max-width: none;
}
.app-modal__panel--receipt .app-modal__close {
    right: -0.8rem;
    top: -1rem;
    color: #fff;
    background: rgba(17, 24, 39, 0.38);
    border-radius: 50%;
    width: 3rem;
    height: 3rem;
    font-size: 2rem;
}
.app-modal__panel--receipt .app-modal__actions {
    margin-top: 1.4rem !important;
}
.app-modal__panel--receipt .app-modal__actions--receipt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
}
.app-modal__panel--receipt .btn-ghost,
.app-modal__panel--receipt .btn-primary--sm {
    height: 3.8rem;
    border-radius: 999rem;
}
.app-modal__panel--receipt .app-modal__actions--receipt .btn-ghost {
    flex: none;
    width: min(22rem, 70vw);
}
.receipt-link {
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.25rem;
    font-weight: 700;
}

/* ===== 国内支付业务付款回单 ===== */
.dh-modal__panel--receipt,
.app-modal__panel--receipt {
    width: min(96vw, 64rem);
    max-width: 64rem;
}
.transfer-receipt {
    position: relative;
    width: 100%;
    padding: 1.1rem 1.6rem 1.05rem;
    background: #ffffff;
    border: 0.08rem solid #c9ccd2;
    color: #1b2432;
    font-family: SimSun, "Songti SC", "Microsoft YaHei", serif;
    box-shadow: 0 1.2rem 3.2rem rgba(15, 23, 42, 0.26);
    overflow: hidden;
}
.transfer-receipt__head {
    position: relative;
    display: grid;
    grid-template-columns: 16rem 1fr 8rem;
    align-items: center;
    gap: 0.8rem;
    padding-bottom: 0.55rem;
}
.transfer-receipt__logo {
    width: 13.2rem;
    height: auto;
}
.transfer-receipt__title {
    text-align: center;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 0.18rem;
    color: #111827;
}
.transfer-receipt__line {
    height: 0.15rem;
    margin: 0 0 0.95rem;
    background: #8f2434;
}
.transfer-receipt__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 1.8rem;
    padding: 0 0.2rem;
}
.transfer-receipt__item {
    display: flex;
    align-items: baseline;
    min-width: 0;
    font-size: 1.2rem;
    line-height: 1.32;
}
.transfer-receipt__item b {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.transfer-receipt__amount b,
.transfer-receipt__amount em,
.transfer-receipt__detail b {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}
.transfer-receipt__item--full {
    grid-column: 1 / -1;
}
.transfer-receipt__item span,
.transfer-receipt__detail span {
    flex: 0 0 auto;
    color: #1b2432;
    font-weight: 700;
}
.transfer-receipt__item b,
.transfer-receipt__detail b,
.transfer-receipt__foot b {
    color: #111827;
    font-weight: 700;
    word-break: break-all;
}
.transfer-receipt__item em {
    font-style: normal;
    font-size: 1.24rem;
    font-weight: 700;
}
.transfer-receipt__amount {
    align-items: flex-start;
    margin-top: 0.05rem;
}
.transfer-receipt__amount-body {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    line-height: 1.42;
}
.transfer-receipt__amount-cny {
    font-weight: 800;
    color: #111827;
}
.transfer-receipt__amount-cn {
    font-size: 1.16rem;
    font-weight: 700;
    color: #1b2432;
}
.transfer-receipt__amount-cn b {
    font-weight: 800;
}
.transfer-receipt__divider {
    height: 0.08rem;
    margin: 1rem 0 0.75rem;
    background: #9ea3ad;
}
.transfer-receipt__detail {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
    font-size: 1.18rem;
}
.transfer-receipt__detail > div {
    display: flex;
    align-items: baseline;
}
.transfer-receipt__stamp {
    position: absolute;
    right: 2.6rem;
    bottom: 1.6rem;
    width: 13.2rem;
    height: 5.7rem;
    border: 0.22rem solid rgba(143, 36, 52, 0.78);
    border-radius: 50%;
    color: rgba(143, 36, 52, 0.86);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.72;
    transform: none;
    pointer-events: none;
    z-index: 1;
}
.transfer-receipt__note {
    text-align: center;
    margin-top: 2.4rem;
    padding: 0 1rem;
    font-size: 1.1rem;
    color: #1b2432;
    letter-spacing: 0.02rem;
    position: relative;
    z-index: 0;
}
.transfer-receipt__foot {
    margin-top: 0.55rem;
    padding-bottom: 0.55rem;
    border-bottom: 0.08rem solid #6b7280;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #1b2432;
    font-size: 1.1rem;
    font-weight: 700;
    position: relative;
    z-index: 0;
}
.transfer-receipt__foot b {
    font-weight: 700;
    text-decoration: none;
}
@media (max-width: 560px) {
    .transfer-receipt {
        transform: scale(0.86);
        transform-origin: top center;
        margin-bottom: -4rem;
    }
}

/* ===== 注意事项 ===== */
.dh-tip {
    margin: 1.4rem 1.2rem 0;
    padding: 1.1rem 1.3rem 1.1rem 3.4rem;
    background: linear-gradient(180deg, #fffaef 0%, #fff2d4 100%);
    border: 0.05rem solid #f1cf86;
    border-left: 0.32rem solid #d8131c;
    border-radius: 0.7rem;
    color: #8a3905;
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.02rem;
    position: relative;
    box-shadow: 0 0.25rem 0.7rem rgba(180, 100, 20, 0.08);
}
.dh-tip::before {
    content: "!";
    position: absolute;
    left: 1rem; top: 50%;
    transform: translateY(-50%);
    width: 1.7rem; height: 1.7rem;
    background: linear-gradient(180deg, #ea3a32, #b81017);
    color: #fff;
    border-radius: 50%;
    text-align: center;
    line-height: 1.7rem;
    font-weight: 800;
    font-style: normal;
    font-size: 1.15rem;
    box-shadow: 0 0.15rem 0.4rem rgba(180, 16, 24, 0.32);
}
.dh-tip--center {
    font-size: 1.32rem;
    font-weight: 600;
    text-align: left;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}
.dh-tip--center b {
    color: #c81222;
    font-weight: 800;
    margin: 0 0.15rem;
}

/* ===== 模态：提现审核中 / 圆梦金转账中 ===== */
.dh-modal {
    position: fixed; inset: 0;
    background: rgba(20, 20, 20, 0.55);
    z-index: 10000;
    display: none;
    align-items: center; justify-content: center;
    padding: 2rem;
}
.dh-modal.is-open { display: flex; animation: dh-fade 0.2s ease; }
@keyframes dh-fade { from { opacity: 0; } to { opacity: 1; } }

.dh-modal__panel {
    width: 100%;
    max-width: 30rem;
    background: #fff;
    border-radius: 1.2rem;
    padding: 2rem 1.8rem 1.6rem;
    text-align: center;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.4);
}
.dh-modal__icon {
    width: 5rem; height: 5rem;
    border-radius: 50%;
    margin: 0 auto 0.8rem;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.4rem; font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, #ff8a18, #c95710);
}
.dh-modal__icon--ok { background: linear-gradient(135deg, #2c8a16, #185f0e); }
.dh-modal__icon--err { background: linear-gradient(135deg, #ea1c25, #ad0810); }
.dh-modal__title {
    font-size: 1.6rem;
    font-weight: 700;
    color: #2a1308;
    margin: 0 0 0.4rem;
}
.dh-modal__msg {
    font-size: 1.25rem;
    color: #6b3a0d;
    line-height: 1.7;
    margin: 0 0 1.4rem;
}
.dh-modal__actions {
    display: flex; gap: 0.8rem;
}
.dh-modal__actions .dh-btn { flex: 1; margin: 0; height: 3.6rem; font-size: 1.4rem; }

/* 全局 toast */
.pf-toast {
    position: fixed; left: 50%;
    bottom: 6rem;
    transform: translate(-50%, 0.6rem);
    max-width: 28rem;
    padding: 0.9rem 1.6rem;
    border-radius: 1.6rem;
    background: rgba(20, 20, 20, 0.86);
    color: #fff;
    font-size: 1.3rem;
    line-height: 1.4;
    text-align: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index: 200;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}
.pf-toast.is-show {
    opacity: 1;
    transform: translate(-50%, 0);
}
