你是一名资深前端原型工程师。你的任务是：为“原型工程（/specs/prototypes/）”补齐做题/测评页面（Web + Mobile），用于演示“开始答题 → 作答 → 交卷 → 查看结果/解析”的闭环。

路由（必须）：
1. Web：
   - 做题页：`/quiz`（必须稳定可访问）
   - 结果页：`/quiz/result`（必须稳定可访问）
2. Mobile（前缀必须为 `/m/*`）：
   - 做题页：`/m/quiz`（必须稳定可访问）
   - 结果页：`/m/quiz/result`（必须稳定可访问）

做题页（必须）：
1. 题型覆盖（至少 3 种）：
   - 单选题（Radio）
   - 多选题（Checkbox）
   - 判断题（是/否）
   - 可选加分项：填空/简答（Textarea，占位即可但必须可输入并保存）
2. 选项呈现（必须）：
   - 选择题选项必须竖向排列（每个选项独占一行），禁止横向平铺导致阅读困难
   - 选择题选项必须带字母编号：A/B/C/D…（显示为 `A.` `B.` `C.` `D.`），并与选项文本一起作为可点击区域
   - Web 与 Mobile 必须一致
3. 页面结构（Web）：
   - 顶部信息区（必须）：试卷标题 + 总题目数 + 总分 + 限时/倒计时（mock）+ 当前进度（如 3/20）
   - 左侧/顶部：题目导航（必须展示全部题目序号列表 + 状态：已答/未答/标记；支持点击跳转）
   - 主体：题干 + 选项/输入区
   - 底部：上一题/下一题、标记（收藏/疑问）按钮、交卷按钮
4. 页面结构（Mobile）：
   - 顶部栏：返回 + 标题“测评”
   - 主体：题干 + 选项/输入区
   - 顶部或底部：题号进度（如“3/20”）+ 总题目数 + 倒计时（mock）+ “题号面板”入口（BottomSheet）
   - 底部吸底操作栏：上一题/下一题 + 交卷（Primary）
5. 关键交互（必须可演示）：
   - 作答后自动保存到 mock（切换题目后答案保留）
   - 支持“标记题目”（用于回看），在题号导航中有明显标识
   - 交卷前弹出确认（Modal/Drawer）
   - 支持“未答题提示”：交卷时若存在未答题，需提示未答数量，并可跳转到第一道未答题
6. 状态与反馈（必须）：
   - 加载态（Skeleton/Spin）
   - 交卷提交中 Loading，防重复提交
   - 错误态 + 重试（可与 config 失败注入联动或本页开关）

结果页（必须）：
1. 总览区：
   - 得分/正确率/用时/总题目数（mock）
   - 完成状态（如“已完成/未完成”）
2. 题目复盘：
   - 列表展示每题对错（Tag 颜色统一：对=绿，错=红，未答=灰）
   - 点击进入“题目解析”（可在同页展开 Collapse 或跳转到 `/quiz?review=1&index=...` 复用做题页只读模式）
3. 动作区（必须）：
   - “再做一次”（重置答案并回到做题页）
   - “返回首页/返回工具箱”（按原型导航约定跳转）

数据要求（必须）：
1. 数据来自 mock（例如 `mock.quiz`），至少包含：
   - `paper`：试卷信息（id、title、durationMinutes、totalScore）
   - `questions`：题目列表（id、type、stem、options、answer、analysis、score）
   - `answers`：用户答案（questionId、value、marked、answeredAt）
   - `result`：成绩与统计（score、correctCount、wrongCount、blankCount、timeUsedSeconds）
2. Web 与 Mobile 必须复用同一份题库与答案数据源。
3. 文案、题干、解析必须中文化（mock 中文文本即可）。

入口要求（必须）：
1. Web：必须能从左侧菜单或 Landing 快捷入口进入（按原型整体导航约定选择其一，需稳定可访问）。
2. Mobile：移动端 Landing 金刚区必须提供“做题/测评”入口，跳转到 `/m/quiz`。

考试发布与进场（命中则必须）：
1. 若需求语义包含“考试计划/考试通知/发布/报名/准考证/考试时间范围/考场/进入考场”等：
   - 必须体现“考试通知 → 进入考场 → 开始考试”的入口链路（可在 `/quiz` 内用步骤态实现，不强制新增路由）
   - 必须按时间窗口控制“进入考场/开始考试”按钮可用性：未到开始时间置灰并提示；超过结束时间禁止进入并提示
2. 若存在“发布需审批/计划需审批”语义：必须体现状态流转（草稿→待审批→已发布）与审批入口：
   - 审批入口必须来自列表 Action 的“审批”按钮，点击后用 Drawer 填写字段提交
   - 审批字段至少包含：审批结果（通过/驳回）、审批意见（必填）、生效时间范围（开始/结束，若业务适用）

学员端成绩/证书/补考（命中则必须）：
1. 若需求语义包含“成绩/证书/补考/不及格重考/缴费补考”等：
   - 必须提供“我的考试/我的成绩”入口（可放在 `/profile` 内的 Tab 或列表），可查看历史成绩与状态（通过/不及格/待补考）
   - 通过后必须展示证书入口，并在证书详情中提供“证书模板预览”（PDF 或截图图片）；模板文件必须来自输入材料（例如 `/docs/templates/` 或 `/docs/assets/`），禁止纯前端假画模板
   - 不及格时必须提供“补考/再次参加”入口；若业务要求补考缴费，则补考前必须走订单/支付占位流程
