```mermaid
---
title: 9.代理充值流程
---
flowchart TD
    开始((开始))
    --> 登录系统[代理或平台账号登录]

    登录系统 --> 权限判断{是否具备代理充值权限?}
    权限判断 -->|否| 无权限结束[无权限 流程终止]
    权限判断 -->|是| 填写充值信息[填写目标店铺 金额 备注]

    填写充值信息 --> 线下权限判断{是否允许线下充值?}
    线下权限判断 -->|否| 无权限结束
    线下权限判断 -->|是| 创建线下单[创建线下充值单]

    subgraph 线下充值链路
        创建线下单 --> 线下审核[平台核对线下打款信息]
        线下审核 --> 线下审核结果{审核是否通过?}
        线下审核结果 -->|否| 线下驳回[驳回并说明原因]
        线下审核结果 -->|是| 超级密码确认[输入超级密码确认到账]
        超级密码确认 --> 超密校验{校验是否通过?}
        超密校验 -->|否| 超密失败[校验失败 返回重试]
        超密失败 --> 超级密码确认
        超密校验 -->|是| 线下到账[充值金额入主钱包]
    end

    线下到账 --> 充值验收
    线下驳回 --> 充值验收

    subgraph 验收阶段
        充值验收 --> 核对充值记录[核对充值状态与金额]
        核对充值记录 --> 核对钱包余额[核对主钱包余额变更]
        核对钱包余额 --> 验收结果{验收是否通过?}
        验收结果 -->|否| 异常处理[记录异常并返回充值流程处理]
        异常处理 --> 填写充值信息
        验收结果 -->|是| 结束([流程结束])
    end

    %% ==================== 样式美化 ====================
    style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px
    style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px
    style 无权限结束 fill:#FFCDD2,stroke:#D32F2F
    style 线下驳回 fill:#FFCCBC,stroke:#E64A19
    style 超密失败 fill:#FFCCBC,stroke:#E64A19
    style 异常处理 fill:#FFCCBC,stroke:#E64A19

    classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px
    class 权限判断,线下权限判断,线下审核结果,超密校验,验收结果 decision
```
