/* 税伙伴 TaxBP · 业务人员傻瓜式前端样式（移动优先，无外部依赖） */
:root {
  --brand: #2b7cf6;
  --brand-soft: #eaf2ff;
  --ok: #0ca678;
  --ok-soft: #e6f7f1;
  --warn: #d98200;
  --warn-soft: #fff6e5;
  --danger: #d6336c;
  --danger-soft: #fff0f5;
  --ink: #1f2d3d;
  --sub: #7b8794;
  --line: #e8ebf0;
  --bg: #f4f6fa;
  --tech: #12b886;
  --grid: #2b7cf6;
  --rd: 16px;
  --shadow: 0 2px 10px rgba(31, 45, 61, .06);
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
  background: var(--bg); color: var(--ink); font-size: 15px; line-height: 1.65;
}
a { color: var(--brand); text-decoration: none; }
.wrap { max-width: 760px; margin: 0 auto; padding: 14px 14px 40px; }

/* ---------- 顶部：品牌 + 主体选择 ---------- */
.topbar { position: sticky; top: 0; z-index: 30; background: #fff; border-bottom: 1px solid var(--line); }
.topbar .inner { max-width: 760px; margin: 0 auto; padding: 10px 14px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.logo { font-weight: 700; font-size: 16px; white-space: nowrap; }
.logo em { color: var(--brand); font-style: normal; }
.picker { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.picker label { font-size: 12px; color: var(--sub); }
select#entitySel {
  max-width: 210px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px;
  background: #fff; font-size: 13px; color: var(--ink);
}
.brandbar { height: 6px; background: #cfd8e3; transition: background .25s; }
.brandbar.tech { background: var(--tech); }
.brandbar.grid { background: var(--grid); }

/* ---------- 主体信息条 ---------- */
.entity-strip { border-radius: var(--rd); padding: 12px 14px; margin: 14px 0 16px; background: #fff; box-shadow: var(--shadow); border-left: 6px solid #cfd8e3; }
.entity-strip.tech { border-left-color: var(--tech); background: linear-gradient(90deg, #f2fbf7 0%, #fff 60%); }
.entity-strip.grid { border-left-color: var(--grid); background: linear-gradient(90deg, #f2f7ff 0%, #fff 60%); }
.entity-strip .ename { font-size: 16px; font-weight: 700; }
.entity-strip .emeta { font-size: 12.5px; color: var(--sub); margin-top: 2px; }
.pill { display: inline-block; font-size: 11.5px; padding: 1px 8px; border-radius: 20px; margin-right: 6px; vertical-align: 1px; }
.pill.dept { background: var(--brand-soft); color: var(--brand); }
.pill.qual { background: #f0f2f5; color: #5e6d82; }
.strip-empty { color: var(--warn); font-size: 14px; }

/* ---------- 首页三入口 ---------- */
.hero { text-align: center; margin: 6px 0 18px; }
.hero h1 { font-size: 21px; margin: 6px 0 4px; }
.hero p { color: var(--sub); font-size: 13.5px; margin: 0; }
.entry-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 620px) { .entry-grid { grid-template-columns: repeat(3, 1fr); } }
.entry {
  display: block; background: #fff; border-radius: var(--rd); padding: 20px 18px;
  box-shadow: var(--shadow); border: 1px solid transparent; color: var(--ink);
}
.entry:active { border-color: var(--brand); }
.entry .ico {
  width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center;
  font-size: 19px; font-weight: 700; color: #fff; margin-bottom: 10px;
}
.entry .ico.a { background: linear-gradient(135deg, #4d97ff, #2b7cf6); }
.entry .ico.b { background: linear-gradient(135deg, #33c9a0, #12b886); }
.entry .ico.c { background: linear-gradient(135deg, #ffb44d, #f59f00); }
.entry h3 { font-size: 17px; margin: 0 0 4px; }
.entry p { margin: 0; font-size: 13.5px; color: var(--sub); }

/* ---------- 通用卡片/表单 ---------- */
.card { background: #fff; border-radius: var(--rd); box-shadow: var(--shadow); padding: 16px; margin-bottom: 14px; }
.card h2 { font-size: 16px; margin: 0 0 10px; }
.hint { font-size: 13px; color: var(--sub); }
textarea#desc, input#descInput, input#policyInput {
  width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px; font-size: 15px;
  font-family: inherit; color: var(--ink); background: #fbfcfe; resize: vertical;
}
textarea#desc { min-height: 84px; }
textarea#desc:focus, input:focus { outline: 2px solid var(--brand-soft); border-color: var(--brand); background: #fff; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 4px; }
.tag {
  border: 1px solid var(--line); background: #fff; color: #46536b; border-radius: 20px;
  padding: 6px 13px; font-size: 13px; cursor: pointer;
}
.tag:active { background: var(--brand-soft); border-color: var(--brand); color: var(--brand); }

/* ---------- 按钮 ---------- */
.btn {
  display: block; width: 100%; min-height: 48px; border: none; border-radius: 12px; cursor: pointer;
  font-size: 16px; font-family: inherit; font-weight: 600; color: #fff; background: var(--brand); margin-top: 12px;
}
.btn.secondary { background: #fff; color: var(--brand); border: 1px solid var(--brand); font-weight: 500; }
.btn.ok { background: var(--ok); }
.btn.warn { background: var(--warn); }
.btn.danger { background: var(--danger); }
.btn:disabled { opacity: .6; }

/* ---------- 结果卡片 ---------- */
.result { border-radius: var(--rd); background: #fff; box-shadow: var(--shadow); overflow: hidden; margin-bottom: 14px; }
.result .rhead { padding: 12px 14px; font-size: 13px; color: #fff; display: flex; align-items: center; gap: 8px; }
.result.ok .rhead { background: var(--ok); }
.result.warn .rhead { background: var(--warn); }
.result.danger .rhead { background: var(--danger); }
.result .rbody { padding: 14px; }
.itname { font-size: 19px; font-weight: 700; }
.itcode { font-size: 12.5px; color: var(--sub); word-break: break-all; margin-top: 2px; }
.rate-row { display: flex; gap: 10px; margin-top: 12px; }
.kv { flex: 1; background: #f8fafc; border-radius: 10px; padding: 9px 11px; }
.kv .k { font-size: 12px; color: var(--sub); }
.kv .v { font-size: 16px; font-weight: 700; margin-top: 2px; }
.badge { display: inline-block; font-size: 12px; padding: 2px 10px; border-radius: 20px; font-weight: 600; }
.badge.ok { background: var(--ok-soft); color: var(--ok); }
.badge.warn { background: var(--warn-soft); color: var(--warn); }
.badge.danger { background: var(--danger-soft); color: var(--danger); }
details.why { margin-top: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 2px 12px; background: #fcfdff; }
details.why summary { cursor: pointer; font-size: 14px; color: var(--brand); padding: 9px 0; list-style: none; }
details.why summary::-webkit-details-marker { display: none; }
details.why summary::before { content: "▸ "; color: var(--brand); }
details.why[open] summary::before { content: "▾ "; }
details.why .whybody { font-size: 13.5px; color: #46536b; padding-bottom: 10px; }
details.why .whybody b { color: var(--ink); }
.alert { border-radius: 12px; padding: 11px 13px; font-size: 13.5px; margin-top: 12px; }
.alert.warn { background: var(--warn-soft); color: #8a5b00; }
.alert.danger { background: var(--danger-soft); color: #a61e4d; }
.alert.ok { background: var(--ok-soft); color: #087f5b; }
.alert ul { margin: 6px 0 0 18px; padding: 0; }
.empty { text-align: center; color: var(--sub); font-size: 14px; padding: 26px 10px; }

/* ---------- 政策列表 ---------- */
.pol { border-bottom: 1px solid var(--line); padding: 12px 0; }
.pol:last-child { border-bottom: none; }
.pol .pn { font-size: 15.5px; font-weight: 600; }
.pol .pm { font-size: 12.5px; color: var(--sub); margin-top: 3px; }
.pol .pk { font-size: 13.5px; color: #46536b; margin-top: 6px; }

/* ---------- 页脚 ---------- */
.footer { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--sub); }
.footer b { color: #46536b; }
.footer .ver { margin-top: 6px; }
.backlink { display: inline-block; font-size: 13.5px; margin-bottom: 10px; color: var(--sub); }
.step { font-size: 13px; color: var(--sub); margin: 0 0 8px; }
.step b { color: var(--brand); }

/* ---------------- S3.1 查验工作台 ---------------- */
.vform { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px 14px; margin:10px 0 4px; }
.vform label { display:flex; flex-direction:column; font-size:12px; color:#6b7280; gap:4px; }
.vform input,.vform select { padding:7px 9px; border:1px solid #d8dde5; border-radius:6px; font-size:13px; }
.btnrow { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0 4px; }
.kv-row { display:flex; flex-wrap:wrap; gap:8px 20px; margin:10px 0 2px; }
.kv-row .kv { display:flex; gap:6px; align-items:baseline; font-size:13px; }
.kv-row .k { color:#6b7280; }
.kv-row .v { font-weight:600; }
table.vt { width:100%; border-collapse:collapse; font-size:13px; margin-top:8px; }
table.vt th,table.vt td { border-bottom:1px solid #eceff3; padding:7px 8px; text-align:left; vertical-align:top; }
table.vt th { background:#f7f9fc; color:#4b5563; font-weight:600; white-space:nowrap; }
table.vt tbody tr.vrow:hover { background:#f3f8ff; cursor:pointer; }
table.vt .tag { padding:1px 6px; border-radius:4px; font-size:12px; }
table.vt .tag.ok { background:#e6f7f1; color:#0ca678; }
table.vt .tag.warn { background:#fdf3e3; color:#d98200; }
table.vt .tag.danger { background:#fdeaef; color:#d6336c; }
table.vt .tag.tech { background:#e7f7f3; color:#0b7a63; }

/* ===================== S3.2 台账与预警工作台 ===================== */
.lg-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin:12px 0}
.lg-kpi{background:#f8fafc;border:1px solid #e6e9ef;border-radius:10px;padding:10px 12px}
.lg-kpi .k{font-size:12px;color:#667085}
.lg-kpi .v{font-size:18px;font-weight:600;margin:3px 0;color:#1d2939}
.lg-kpi .s{font-size:11px;color:#98a2b3}
.lg-bar{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.lg-bar select,.lg-bar input{padding:6px 8px;border:1px solid #d0d5dd;border-radius:8px;font-size:13px;background:#fff}
.lg-bar input{min-width:210px}
.lg-tabs{display:flex;gap:4px;border-bottom:1px solid #e6e9ef;margin:6px 0 10px}
.lg-tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;
  font-size:14px;color:#667085;cursor:pointer}
.lg-tabs button.on{color:#2b7cf6;border-bottom-color:#2b7cf6;font-weight:600}
.lg-tabs em{font-style:normal;font-size:11px;color:#d6336c;margin-left:2px}
.lg-tablewrap{overflow:auto;max-height:62vh;border:1px solid #eef1f5;border-radius:10px}
.lg-table{border-collapse:collapse;width:100%;font-size:13px}
.lg-table th{position:sticky;top:0;background:#f7f9fc;text-align:left;padding:8px;
  font-weight:600;white-space:nowrap;border-bottom:1px solid #e6e9ef;color:#475467}
.lg-table td{padding:7px 8px;border-bottom:1px solid #f0f2f5;vertical-align:top}
.lg-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.lg-table td.ell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-table td.mono,.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}
.nowrap{white-space:nowrap}
.lg-lv{display:inline-block;min-width:26px;text-align:center;font-size:11px;padding:1px 5px;
  border-radius:6px;color:#fff}
.lg-lv.P0{background:#d6336c}.lg-lv.P1{background:#d98200}
.lg-lv.P2{background:#2b7cf6}.lg-lv.none{background:#d0d5dd}
.lg-cnt{font-style:normal;font-size:11px;color:#98a2b3;margin-left:4px}
.lg-over{color:#d6336c;font-weight:600}
.lg-closed{opacity:.6}
.lg-editrow td{background:#fbfcfe}
.lg-editrow label{display:inline-flex;align-items:center;gap:4px;margin:0 10px 6px 0;
  font-size:12px;color:#475467}
.lg-editrow input,.lg-editrow select{padding:4px 6px;border:1px solid #d0d5dd;border-radius:6px;font-size:12px}
.btn.mini{padding:3px 8px;font-size:12px;line-height:1.5}
.lg-foot{margin-top:10px;min-height:18px;color:#475467;font-size:13px}
.lg-body .muted{color:#667085}

/* ===================== S3.3 经营看板 ===================== */
.kb-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:12px 0}
.kb-kpi{background:#fff;border:1px solid #e6e9ef;border-left:3px solid #2b7cf6;border-radius:10px;padding:10px 12px}
.kb-kpi.g{border-left-color:#0ca678}.kb-kpi.o{border-left-color:#d98200}.kb-kpi.r{border-left-color:#d6336c}
.kb-kpi .k{font-size:12px;color:#667085}
.kb-kpi .v{font-size:19px;font-weight:600;margin:3px 0;color:#1d2939;font-variant-numeric:tabular-nums}
.kb-kpi .s{font-size:11px;color:#98a2b3}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:12px}
.kb-panel{border:1px solid #eef1f5;border-radius:10px;padding:12px}
.kb-panel h3{margin:0 0 8px;font-size:14px;color:#1d2939}
.kb-bars{display:flex;align-items:flex-end;gap:8px;height:130px;margin:6px 0 4px}
.kb-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;min-width:26px}
.kb-bar i{display:block;width:100%;background:#2b7cf6;border-radius:4px 4px 0 0;min-height:2px}
.kb-bar i.p{background:#0ca678}
.kb-bar b{font-size:10px;color:#98a2b3;font-weight:400}
.kb-legend{font-size:11px;color:#98a2b3;display:flex;gap:12px}
.kb-legend em{font-style:normal;display:inline-flex;align-items:center;gap:4px}
.kb-dot{width:8px;height:8px;border-radius:2px;display:inline-block;background:#2b7cf6}
.kb-dot.p{background:#0ca678}
.kb-notes{margin-top:12px;padding:10px 12px;background:#f8fafc;border:1px dashed #d0d5dd;border-radius:10px;font-size:12px;color:#475467}
.kb-notes li{margin:2px 0}
.kb-rk{display:flex;flex-wrap:wrap;gap:10px}
.kb-rk div{flex:1;min-width:120px;border:1px solid #eef1f5;border-radius:8px;padding:8px 10px}
.kb-rk b{display:block;font-size:17px;color:#1d2939}
.kb-rk span{font-size:12px;color:#667085}

/* ===================== 全局业务导航（H5 入口中枢） ===================== */
.mainnav { background: #fff; border-bottom: 1px solid var(--line); }
.mainnav .inner { max-width: 760px; margin: 0 auto; padding: 0 8px; display: flex; gap: 2px; overflow-x: auto; }
.mainnav a { flex: 0 0 auto; padding: 10px 11px; font-size: 13.5px; color: #46536b; border-bottom: 2px solid transparent; white-space: nowrap; }
.mainnav a.on { color: var(--brand); font-weight: 600; border-bottom-color: var(--brand); }

/* ===================== 首页六入口补充色 ===================== */
.entry .ico.d { background: linear-gradient(135deg, #7f9cff, #5468ff); }
.entry .ico.e { background: linear-gradient(135deg, #ff9db1, #f06595); }
.entry .ico.f { background: linear-gradient(135deg, #8fd3f4, #4dabf7); }

/* ===================== M2 税率速查 / S2.5 工单留痕 ===================== */
.rc-note { font-size: 12px; color: var(--sub); margin-bottom: 6px; }
.rc-sub { font-size: 11.5px; color: var(--sub); margin-top: 2px; }
.rc-warn { font-size: 12px; color: var(--warn); margin-top: 2px; }

/* ===================== EFF 效率与治理提升（批量开票 / 收藏复用 / 工单回写 / 操作留痕） ===================== */
textarea#desc.batch-desc { min-height: 150px; }
.lg-table .tag { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px;
  border: 1px solid var(--line); cursor: default; white-space: nowrap; }
.lg-table .tag.ok { background: var(--ok-soft); color: var(--ok); border-color: transparent; }
.lg-table .tag.warn { background: var(--warn-soft); color: var(--warn); border-color: transparent; }
.lg-table .tag.danger { background: var(--danger-soft); color: var(--danger); border-color: transparent; }
.ops-lab { font-size: 12px; color: #667085; white-space: nowrap; }
.eff-meta { font-size: 12.5px; color: #667085; margin: 8px 0 2px; }
.app-role-note { font-size: 12px; color: var(--sub); margin: 4px 0 0; }

/* ===================== C-14/C-15/C-16 预警·阈值·风险看板 公共样式 ===================== */
.rb-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rb-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 620px; }
.rb-table th { text-align: left; font-weight: 600; color: #667085; background: #f7f9fc;
  border-bottom: 1px solid var(--line); padding: 8px 10px; white-space: nowrap; }
.rb-table td { border-bottom: 1px solid var(--line); padding: 8px 10px; vertical-align: top; }
.rb-table tr:last-child td { border-bottom: 0; }
.rb-table td.num, .rb-table th.num { text-align: right; white-space: nowrap; }
.rb-table td.nowrap { white-space: nowrap; }
.rb-kv { font-size: 13px; color: #46536b; line-height: 1.9; border-top: 1px dashed var(--line);
  margin-top: 10px; padding-top: 8px; }
.rb-kv b { color: #1f2937; margin-right: 4px; }
.rb-code { background: #0f172a; color: #d7e3ff; border-radius: 10px; padding: 10px 12px;
  font-family: Consolas, "Courier New", monospace; font-size: 12.5px; line-height: 1.8;
  white-space: pre-wrap; word-break: break-all; margin: 6px 0 2px; }
.rb-warn { background: var(--warn-soft); color: #8a5b00; border-radius: 10px; padding: 10px 12px;
  font-size: 12.5px; line-height: 1.8; margin: 4px 0 10px; }
.rb-warn code, .hint code { background: rgba(0,0,0,.06); border-radius: 4px; padding: 0 4px; }
.pill-st { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; white-space: nowrap; }
.pill-st.warn { background: var(--warn-soft); color: var(--warn); }
.pill-st.done { background: var(--ok-soft); color: var(--ok); }
.btn.mini { padding: 3px 10px; font-size: 12px; border-radius: 8px; }
.btn.secondary { background: #fff; color: #46536b; border: 1px solid var(--line); }
.lg-lv.P0 { background: var(--danger-soft); color: var(--danger); }
.lg-lv.P1 { background: var(--warn-soft); color: var(--warn); }
.lg-lv.P2 { background: #eef2ff; color: #3b5bdb; }


/* ==================== P0-07 统一状态组件（加载 / 空 / 失败 / 限流 / 权限 / 超时） ==================== */
.st { text-align: center; padding: 22px 14px; border-radius: var(--rd); background: #fff;
  box-shadow: var(--shadow); margin-bottom: 14px; }
.st-ico { font-size: 22px; line-height: 1.4; }
.st-t { font-size: 14.5px; font-weight: 600; margin-top: 4px; }
.st-d { font-size: 12.5px; color: var(--sub); margin-top: 4px; line-height: 1.7; }
.st .btn { display: inline-block; width: auto; min-height: 34px; padding: 5px 16px; margin-top: 10px;
  font-size: 13px; font-weight: 500; border-radius: 8px; }
.st-empty .st-t { color: var(--sub); }
.st-error, .st-timeout { border: 1px solid var(--line); }
.st-error .st-t, .st-timeout .st-t { color: var(--danger); }
.st-throttle .st-t, .st-perm .st-t { color: var(--warn); }
.st-noEntity .st-t { color: var(--brand); }

/* ==================== P0-08 结论卡（一句话结论 + 税率与依据 + 置信度人话 + 下一步） ==================== */
.concl { border-radius: var(--rd); background: #fff; box-shadow: var(--shadow); padding: 14px 16px;
  margin-bottom: 14px; border-left: 4px solid var(--brand); }
.concl.ok { border-left-color: var(--ok); }
.concl.warn { border-left-color: var(--warn); }
.cc-tag { display: inline-block; font-size: 11px; color: var(--sub); background: var(--brand-soft);
  border-radius: 8px; padding: 1px 8px; margin-bottom: 6px; }
.cc-main { font-size: 17px; font-weight: 700; line-height: 1.6; }
.concl.ok .cc-main { color: var(--ok); }
.concl.warn .cc-main { color: var(--warn); }
.cc-list { display: grid; grid-template-columns: 84px 1fr; gap: 4px 10px; margin-top: 10px;
  border-top: 1px dashed var(--line); padding-top: 8px; }
.cc-k { font-size: 12.5px; color: var(--sub); }
.cc-v { font-size: 13px; }

/* ==================== P0-08 「我该点哪个」口语分流引导 ==================== */
.pick { background: #fff; border-radius: var(--rd); box-shadow: var(--shadow); padding: 14px 16px; margin-bottom: 14px; }
.pick-t { font-size: 15px; font-weight: 700; }
.pick-d { font-size: 12.5px; color: var(--sub); margin-top: 2px; }
.pick-list { margin-top: 10px; display: grid; gap: 8px; }
.pick-item { display: flex; gap: 10px; align-items: baseline; border: 1px solid var(--line);
  border-radius: 12px; padding: 9px 12px; cursor: pointer; background: #fbfcfe; }
.pick-item:hover { border-color: var(--brand); background: var(--brand-soft); }
.pick-q { font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.pick-a { font-size: 12.5px; color: var(--sub); }
.pick-a b { color: var(--brand); }
