/* 只作用于候选模块，保持与现有总后台白卡、蓝色主按钮的视觉一致性。 */
.dsl-ps-page { color: #172033; font: 14px/1.65 -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif; }
/* 统一模块内部盒模型，避免输入框连同内边距突破列宽。 */
.dsl-ps-page *, .dsl-ps-page *::before, .dsl-ps-page *::after { box-sizing: border-box; }
/* 页头允许窄屏换行，使候选状态始终可见。 */
.dsl-ps-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 20px; }
/* 保持标题层级清晰，金额配置以正文为主而非巨大数字。 */
.dsl-ps-page h1 { margin: 0; font-size: 25px; line-height: 1.45; }
/* 卡片标题与表格工具栏保持相同基线。 */
.dsl-ps-page h2 { margin: 0 0 12px; font-size: 18px; line-height: 1.5; }
/* 明细子标题弱于卡片标题。 */
.dsl-ps-page h3 { margin: 20px 0 8px; font-size: 15px; }
/* 说明文字采用适度灰度并控制段间距。 */
.dsl-ps-page p { margin: 6px 0 12px; color: #526179; }
/* 候选标记独立成胶囊，区别于成功或已经启用状态。 */
.dsl-ps-badge { flex-shrink: 0; padding: 5px 12px; border: 1px solid #fed7aa; border-radius: 999px; background: #fff7ed; color: #9a3412; font-weight: 700; }
/* 资金边界说明使用蓝色底色，并保留清晰段落层次。 */
.dsl-ps-notice { margin: 0 0 18px; padding: 13px 16px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; color: #1e40af !important; }
/* 说明卡的最后段落不额外留白。 */
.dsl-ps-notice p:last-child { margin-bottom: 0; color: #415e88; }
/* 白卡承载一个完整操作，所有边框和圆角使用一致规格。 */
.dsl-ps-card { margin-bottom: 18px; padding: 20px; border: 1px solid #e2e8f0; border-radius: 10px; background: #fff; box-shadow: 0 3px 10px rgb(15 23 42 / 3%); }
/* 规则优先级允许自然换行，避免横向挤出页面。 */
.dsl-ps-priority { color: #1d4ed8 !important; font-weight: 700; overflow-wrap: anywhere; }
/* 表格和账本工具栏在同一行对齐标题与只读刷新动作。 */
.dsl-ps-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
/* 工具栏内部标题取消重复底边距。 */
.dsl-ps-toolbar h2 { margin: 0; }
/* 规则版本用于核对乐观锁状态，不突出为业务金额。 */
.dsl-ps-toolbar small { margin-left: 8px; color: #64748b; font-size: 12px; font-weight: 500; }
/* 桌面字段三列布局，标签始终置于输入框之上。 */
.dsl-ps-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; }
/* 字段标签采用一致的文本高度与控件间距。 */
.dsl-ps-page label { display: grid; min-width: 0; gap: 6px; color: #475569; font-size: 13px; font-weight: 600; }
/* 三项微信收款关系表单在后台宽度下独立分列，避免把审核和登记混成同一个动作。 */
.dsl-ps-page [data-wechat-platform-admission-form], .dsl-ps-page [data-wechat-platform-register-form], .dsl-ps-page [data-wechat-rider-register-form] { display: grid; align-content: start; gap: 12px; min-width: 0; }
/* 收件管理分节标题清晰标明对象，操作按钮保持完整宽度。 */
.dsl-ps-page [data-wechat-platform-admission-form] h3, .dsl-ps-page [data-wechat-platform-register-form] h3, .dsl-ps-page [data-wechat-rider-register-form] h3 { margin: 0 0 2px; }
/* 日期控件沿用后台统一字号和可见焦点样式。 */
.dsl-ps-page input[type="date"] { font: inherit; font-weight: 400; }
/* 控件高度保持可点击，数字文本与后台同风格。 */
.dsl-ps-page input, .dsl-ps-page select { width: 100%; min-width: 0; height: 40px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; color: #172033; font: inherit; font-weight: 400; }
/* 提示文字与输入值区分，仍保持可读对比度。 */
.dsl-ps-page input::placeholder { color: #7c889b; font-size: 12px; }
/* 键盘焦点使用明显外圈，便于无鼠标操作。 */
.dsl-ps-page input:focus, .dsl-ps-page select:focus, .dsl-ps-page button:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; border-color: #2563eb; }
/* 不适用范围字段明确禁用，防止误把它当作零值配置。 */
.dsl-ps-page input:disabled, .dsl-ps-page select:disabled { background: #f1f5f9; color: #94a3b8; cursor: not-allowed; }
/* 字段组仅用于请求互斥，不额外画原生边框。 */
.dsl-ps-page fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
/* 主次按钮统一点击面积，窄屏仍可点击。 */
.dsl-ps-page button { min-height: 38px; padding: 7px 14px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; color: #334155; font: inherit; font-weight: 600; cursor: pointer; }
/* 普通按钮悬停仅改变底色，不改变尺寸。 */
.dsl-ps-page button:hover { background: #f8fafc; }
/* 唯一主操作使用后台蓝色。 */
.dsl-ps-page button.primary { border-color: #2563eb; background: #2563eb; color: #fff; }
/* 主按钮悬停加深显示明确交互反馈。 */
.dsl-ps-page button.primary:hover { background: #1d4ed8; }
/* 删除配置使用红色文字，与付款及确认成功状态无关。 */
.dsl-ps-page button.danger { color: #b91c1c; border-color: #fecaca; }
/* 请求期间禁用按键，仍保留原有文本便于识别动作。 */
.dsl-ps-page button:disabled, .dsl-ps-page fieldset:disabled button { opacity: .5; cursor: not-allowed; }
/* 操作区右对齐并允许换行。 */
.dsl-ps-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 18px; }
/* 次要说明与表单主内容分离。 */
.dsl-ps-muted { margin-top: 15px !important; font-size: 12px; }
/* 可读状态区持续占据少量高度，避免回执出现时布局跳动。 */
.dsl-ps-page [role="status"] { min-height: 24px; margin-top: 10px; color: #475569; overflow-wrap: anywhere; }
/* 表格横向滚动仅发生在自身容器。 */
.dsl-ps-table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 7px; }
/* 规则表保留足够列宽，不把金额挤成多行。 */
.dsl-ps-page table { width: 100%; min-width: 800px; border-collapse: collapse; text-align: left; }
/* 数据单元格上下留白与其他后台账本表一致。 */
.dsl-ps-page th, .dsl-ps-page td { padding: 11px 12px; border-bottom: 1px solid #eef2f7; white-space: nowrap; }
/* 表头采用弱色背景。 */
.dsl-ps-page th { background: #f8fafc; color: #64748b; font-size: 12px; }
/* 最后一行不重复画底边框。 */
.dsl-ps-page tr:last-child td { border-bottom: 0; }
/* 执行异常行保持逐列金额可读，不把风险涂成已到账状态。 */
.dsl-ps-page tr.dsl-ps-attention td { background:#fff7ed; }
/* 只读异常过滤采用原生可访问复选框，避免套用金额输入框宽度。 */
.dsl-ps-page .dsl-ps-filter { display:flex;align-items:center;gap:8px; }
/* 原生复选框有足够点击面积，不撑开工具栏。 */
.dsl-ps-page .dsl-ps-filter input { width:18px;height:18px; }
/* 表格操作按钮压缩边距但保留足够点击高度。 */
.dsl-ps-page td button { min-height: 32px; margin-right: 6px; padding: 4px 10px; font-size: 12px; }
/* 商品明细每行包含金额、品类与移除按钮。 */
.dsl-ps-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 14px; margin-bottom: 12px; }
/* 后端结果用两列对齐，不重新计算金额。 */
.dsl-ps-result-row { display: grid; grid-template-columns: minmax(150px, 30%) minmax(0, 1fr); gap: 12px; padding: 7px 0; border-bottom: 1px solid #f1f5f9; }
/* 嵌套结果缩进但不改变层级信息。 */
.dsl-ps-result-row .dsl-ps-result-row { font-size: 12px; }
/* 数字展示使用等宽数字，方便金额逐行核对。 */
.dsl-ps-result-row > div { min-width: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
/* 中等屏幕采用两列字段。 */
@media (max-width: 900px) { .dsl-ps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 手机布局降低留白并将嵌套结果和表单转成单列。 */
@media (max-width: 600px) {
  .dsl-ps-header { flex-direction: column; gap: 10px; }
  .dsl-ps-page h1 { font-size: 22px; }
  .dsl-ps-card { padding: 16px; }
  .dsl-ps-grid { grid-template-columns: 1fr; }
  .dsl-ps-toolbar { align-items: flex-start; flex-wrap: wrap; }
  .dsl-ps-item { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .dsl-ps-item button { grid-column: 1 / -1; justify-self: end; }
  .dsl-ps-result-row { grid-template-columns: 1fr; gap: 2px; }
  .dsl-ps-result-row .dsl-ps-result-row { padding-left: 10px; }
}
