/* 04-pages.css — 应用层增量（管理规则 / 确认卡提案 / 消歧失败） */
.login-actions .btn{
  width:100%;margin-top:12px;height:46px;border-radius:var(--r-md);
  font-size:14.5px;font-weight:600;font-family:inherit;cursor:pointer;
  display:grid;place-items:center;
}
.login-actions .btn.btn-primary{border:none}
.login-actions .btn.btn-ghost{background:transparent}

.body > .pad:not(.appt-page):not(.cust-page){padding-bottom:72px}

.portrait-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 4px}
.portrait-chips .tag{font-weight:600}

.rule-row{display:flex;align-items:center;gap:11px;min-height:var(--tap);padding:12px 14px;cursor:pointer}
.rule-row + .rule-row{border-top:1px solid var(--line)}
.rule-row:active{background:var(--bg)}
.rule-row .q-icon{width:34px;height:34px;border-radius:10px}
.rule-k{flex:1;min-width:0}
.rule-k b{display:block;font-size:14.5px}
.rule-k span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:3px}
.rule-v{flex:none;font-size:13.5px;font-weight:700;color:var(--ink)}

.mgmt-id{display:flex;align-items:center;gap:12px;padding:14px;margin-bottom:12px}
.mgmt-id .row-name{font-size:16px;font-weight:700}
.mgmt-block{margin-bottom:18px}
.mgmt-add{min-height:var(--tap);padding:0 4px;cursor:pointer}
.staff-del{
  flex:none;min-height:var(--tap);padding:0 8px;margin-right:-4px;
  border:none;background:transparent;color:var(--danger);
  font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;
}
.body > .pad.mgmt{padding-bottom:120px}

#body:has(.cust-page){overflow:hidden;display:flex;flex-direction:column}
.cust-page{
  flex:1;min-height:0;display:flex;flex-direction:column;
  padding:14px 16px 8px;box-sizing:border-box;
}
.cust-page .sec-head[hidden]{display:none}
.cust-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding-bottom:56px}
.cust-list::-webkit-scrollbar{display:none}
.cust-hint{
  padding:22px 12px 0;text-align:center;font-size:13px;font-weight:500;color:var(--ink-3);line-height:1.55;
}
.cust-hint span{display:block;margin-top:6px;font-size:12px;font-weight:400}
.cust-more{
  display:block;width:100%;margin:4px 0 0;padding:14px 8px;
  border:none;background:transparent;font-family:inherit;
  font-size:12px;color:var(--ink-3);text-align:center;cursor:pointer;
}
.cust-more.is-end{cursor:default}
.cust-search{margin-bottom:10px}
.cust-search input{
  flex:1;min-width:0;height:100%;border:none;background:transparent;
  font:inherit;color:var(--ink);outline:none;
}
.cust-search input::placeholder{color:var(--ink-3)}
.cust-search input[type="search"]::-webkit-search-cancel-button{display:none}
.cust-q-x{
  flex:none;width:28px;height:28px;padding:0;border:none;background:transparent;
  color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer;
}
.cust-new{
  appearance:none;width:100%;margin:0 0 10px;font-family:inherit;
  text-align:left;cursor:pointer;box-sizing:border-box;
}
.cust-new:active{background:var(--bg)}
.cust-new .row-name{color:var(--primary)}
.avatar.add{
  background:transparent;border:1.5px dashed var(--line-strong);color:var(--primary);
}
.avatar.add svg{width:16px;height:16px}
.sheet .chips,.voice-sheet .chips{padding:0;flex-wrap:wrap;overflow:visible}
.sheet .chip,.voice-sheet .chip{cursor:pointer}

.voice-sheet .voice-quote{
  background:transparent;border:none;border-radius:0;
  padding:0 2px 12px;margin:2px 0 0;text-align:left;
  font-family:"Songti SC","STSong","Noto Serif SC","SimSun",serif;
  font-size:13.5px;line-height:1.65;color:var(--ink-3);
  max-height:88px;
}
.voice-sheet .field{margin-top:4px}
.facts{margin:0 0 14px;border-top:1px solid var(--line)}
.fact{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto;
  gap:4px 12px;align-items:start;padding:11px 2px;
  border-bottom:1px solid var(--line);
}
.fact:not(:has(.fact-s)){grid-template-columns:32px minmax(0,1fr)}
.fact-k{font-size:12px;color:var(--ink-3);line-height:1.45;padding-top:3px}
.fact-v{
  min-width:0;font-size:16px;font-weight:600;color:var(--ink);
  line-height:1.45;overflow-wrap:anywhere;
}
.fact-s{font-size:12px;color:var(--ink-3);line-height:1.45;padding-top:2px;white-space:nowrap}
.fact-s.ok{color:var(--success)}

.bind{
  display:flex;align-items:center;gap:8px;margin-bottom:14px;
  padding:10px 12px;background:var(--warning-soft);border-radius:var(--r-sm);
  font-size:12.5px;color:var(--warning);
}
.bind b{flex:1;min-width:0;font-weight:600}
.bind.off{background:var(--surface-3);color:var(--ink-3);text-decoration:none}
.bind.off b{text-decoration:line-through;font-weight:500}
.bind.off span{flex:none;color:var(--ink-2);font-weight:600}
.bind-x{
  flex:none;border:none;background:transparent;color:var(--primary);
  font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;
  min-height:32px;padding:6px 0;
}

.pick{margin-bottom:14px}
.pick-row{
  display:flex;align-items:center;gap:11px;padding:12px 12px;
  border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:8px;cursor:pointer;
}
.pick-row.on{border-color:var(--primary);background:var(--primary-soft)}
.pick-row .row-sub{margin-top:2px}

.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 16px}
.type-grid .chip{height:36px;cursor:pointer;display:grid;place-items:center}
.type-grid .chip.off{opacity:.32;pointer-events:none;cursor:default}
.parse-wait{text-align:center;padding:18px 8px 8px;color:var(--ink-3);font-size:13px}

.note-card .demo-k{
  margin:0 0 4px;font-size:11px;color:var(--ink-3);
  letter-spacing:.2px;line-height:1.35;
}
.demo-tools{display:flex;flex-wrap:wrap;gap:8px}
.demo-tools button{
  height:30px;padding:0 12px;border:1px solid var(--line-strong);
  background:transparent;color:var(--ink-2);
  border-radius:999px;font-size:12px;font-weight:500;
  cursor:pointer;font-family:inherit;
}
.demo-tools button:hover{border-color:var(--primary);color:var(--primary)}
.demo-tools button.on{
  background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600;
}
.demo-tools button.on:hover{color:var(--on-primary)}

/* 工作台：本月概览（目标条 + 与报表相同的 6 项） */
.greet{padding:4px 2px 10px}
.mo-home{display:flex;flex-direction:column;gap:10px;padding:12px 14px;cursor:pointer}
.mo-home:active{background:var(--bg)}
.mo-rev{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  min-width:0;font-size:12px;color:var(--ink-3);
}
.mo-ring-wrap{display:flex;align-items:center;gap:7px;flex:none}
.mo-ring{width:32px;height:32px;flex:none;transform:rotate(-90deg)}
.mo-ring-bg,.mo-ring-fg{fill:none;stroke-width:4.2}
.mo-ring-bg{stroke:var(--line-strong)}
.mo-ring-fg{stroke:var(--primary);stroke-linecap:round}
.mo-rev-pct{
  font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.3px;
  font-variant-numeric:tabular-nums;line-height:1;
}
.mo-rev-kv{display:flex;align-items:baseline;gap:4px}
.mo-rev-kv span{color:var(--ink-3);flex:none}
.mo-rev-kv b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.mo-rev-kv.is-ok b{color:var(--success)}
.mo-home .mo-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px 6px;
  padding:10px 0 0;margin:0;border-top:1px solid var(--line);
  flex-direction:unset;align-items:unset;justify-content:unset;
}
.mo-home .mo-cell{
  min-width:0;min-height:var(--tap);padding:0;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;
}
.mo-home .mo-n{font-size:15px;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.mo-home .mo-t{margin:0;padding:0;font-size:11px}
.home-peek .appt-dot{display:none}
.home-peek .appt-main{padding-left:0}
.home-peek .appt-row{min-height:44px}
.home-peek .appt-act{min-height:32px;padding:0 10px;font-size:11.5px}
