/* ============================================================
   专家后台 · 风格改版初稿（2026-10-23）
   目标：与官网 https://huiyaconsulting.com/ 视觉语言一致，便于将来并入官网。
   官网设计语言要点（取自 src/assets/style.css）：
     · 墨蓝 --ink #0b1f3a / --ink-2 #14315c / --ink-3 #24487f，金色 --gold #c8994a
     · 圆角 --radius 14px / --radius-sm 10px / --radius-lg 20px
     · 阴影 --shadow-1/2/3（柔和多层）
     · 卡片：白底 + 1px --line + radius 14 + shadow-1，hover 上浮 3px
     · 按钮：radius 10、weight 600、hover translateY(-1px)
     · 字体：Inter + PingFang SC / HarmonyOS Sans SC / 微软雅黑
   本文件是**叠加层**：不改动原有规则，只在末尾覆盖，保证可回退。
   ============================================================ */

/* ——— 1. 设计令牌：补齐官网变量（与官网同名同值） ——— */
:root {
  --ink-2: #14315c;
  --ink-3: #24487f;
  --gold-soft: #f7f0e2;
  --bg-soft: #f4f7fb;
  --bg-soft-2: #eaf0f7;
  --line-2: #cfd8e6;
  --text-3: #7c8a9e;
  --white: #ffffff;
  --ok: #1e8e5a;
  --radius: 14px;
  --radius-sm: 10px;
  --radius-lg: 20px;
  --shadow-1: 0 1px 2px rgba(11, 31, 58, .06), 0 4px 14px rgba(11, 31, 58, .06);
  --shadow-2: 0 8px 30px rgba(11, 31, 58, .1);
  --shadow-3: 0 18px 50px rgba(11, 31, 58, .16);
  --max: 1760px;
  --font: "Inter", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Hiragino Sans GB", "Noto Sans SC", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-num: "Inter", "SF Mono", ui-monospace, "Segoe UI", Roboto, sans-serif;
}

/* ——— 2. 基础：字体 / 容器 / 背景 ——— */
body html body{
  font-family: var(--font);
  font-size: 14.5px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background:
    radial-gradient(1200px 520px at 12% -8%, #ffffff 0%, rgba(255, 255, 255, 0) 62%),
    linear-gradient(180deg, #f6f9fc 0%, var(--bg) 42%, #eef3f9 100%);
  background-attachment: fixed;
  color: var(--text);
}
body #app{ max-width: var(--max); margin: 0 auto; padding: 22px 24px 64px; }

/* ——— 3. 顶部栏：官网同款 ———
   2026-10-24 用户要求：**不要浮动**（原来 position:sticky 滚动时挡住视线）→ 改成静态流 + 压缩成细条，
   退出入口仍保留。 */
body .topbar{
  position: static;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding: 7px 14px;
  margin-bottom: 14px;
}
body .topbar .brand{
  font-weight: 800; font-size: 16px; color: var(--ink);
  display: inline-flex; align-items: center; gap: 10px;
}
body .topbar .brand::before{
  content: none;
}
/* 顶栏用官网真 logo（assets/logo.jpg），不再用深蓝方块冒充 */
body .topbar-logo{
  height: 26px; width: auto; display: block; border-radius: 7px;
  background: #fff; padding: 2px 5px; box-shadow: 0 1px 4px rgba(11,31,58,.12);
}
body .topbar .who{ font-size: 13px; color: var(--text-3); }

/* ——— 4. 一级导航（客户档案 / 新建测评 / …）—— 官网胶囊风 ——— */
body .tabs{
  display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-1); padding: 8px;
}
body .tab{
  padding: 9px 15px; border-radius: 9px; background: transparent;
  border: 1px solid transparent; cursor: pointer;
  color: var(--text-2); font-size: 14px; font-weight: 500; transition: .18s;
}
body .tab:hover{ color: var(--ink); background: var(--bg-soft-2); }
body .tab.active{
  background: var(--ink); color: #fff; border-color: var(--ink);
  box-shadow: 0 2px 10px rgba(11, 31, 58, .18);
}

/* ——— 5. 主卡片 ——— */
body .card{
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 24px; margin-bottom: 18px; box-shadow: var(--shadow-1);
}
body .card h2{
  font-size: 20px; font-weight: 800; color: var(--ink);
  margin: 0 0 6px; letter-spacing: -.2px;
}
body .card > .muted{ color: var(--text-2); font-size: 14px; margin-top: 0; }

/* ——— 6. 工具卡片（标签页内的每个工具） ——— */
body .tool-card{
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px; box-shadow: var(--shadow-1); transition: .2s;
}
body .tool-card:hover{ border-color: var(--line-2); box-shadow: var(--shadow-2); }
body .tool-name{ font-size: 17px; font-weight: 700; color: var(--ink); }
body .tool-desc{ color: var(--text-2); line-height: 1.75; font-size: 14px; }

/* ——— 7. 按钮 ——— 官网同款 ——— */
body .btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 18px; border-radius: var(--radius-sm);
  font-size: 14px; font-weight: 600; border: 1px solid transparent;
  cursor: pointer; transition: .18s; white-space: nowrap;
  font-family: inherit;
}
body .btn:hover{ transform: translateY(-1px); }
body .btn-gold{ background: var(--gold); color: #2b1d05; box-shadow: 0 2px 10px rgba(200, 153, 74, .3); }
body .btn-gold:hover{ background: var(--gold2); color: #2b1d05; }
body .btn-mini{ padding: 5px 12px; font-size: 13px; }
body .btn:not(.btn-gold):not(.btn-mini){ border-color: var(--line-2); color: var(--ink); background: #fff; }
body .btn:not(.btn-gold):not(.btn-mini):hover{ border-color: var(--ink-3); background: var(--bg-soft); color: var(--ink); }

/* ——— 8. 顶部工具标签页（彩色）—— 统一圆角与阴影，呼应官网卡片 ——— */
body .main-tabs{
  display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-1); padding: 10px;
}
body .main-tab{
  padding: 11px 18px; border-radius: var(--radius-sm);
  border: 1px solid transparent; font-size: 14.5px; font-weight: 600;
  cursor: pointer; user-select: none; white-space: nowrap;
  transition: transform .16s, box-shadow .16s, filter .16s;
}
body .main-tab:hover{ transform: translateY(-1px); box-shadow: var(--shadow-1); filter: brightness(.98); }
/* 活动标签（2026-10-24 用户要求「做突出显示」）：反白 + 抬升 + 投影，一眼看出当前在哪一页。
   背景/文字色由 JS 按每个标签自己的主色写入 inline style，这里只补形状与强调。 */
body .main-tab.on{
  font-weight: 800; transform: translateY(-2px);
  border-color: currentColor !important;
  box-shadow: 0 8px 18px rgba(15, 27, 45, .22), inset 0 -3px 0 rgba(255, 255, 255, .35);
  letter-spacing: .3px;
}

/* ——— 9. 服务进度看板（黄底红字 + 放大） ——— */
body .remind-panel{
  margin: 0 0 20px; padding: 0; background: #fff;
  border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-1); overflow: hidden;
  border-left: 6px solid var(--gold);
}
body .remind-head{
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px; margin: 0; padding: 18px 22px;
  background: linear-gradient(180deg, #fbfcfe 0%, #ffffff 100%);
  border-bottom: 1px solid var(--line);
}
body .remind-title{
  font-size: 18px; font-weight: 800; color: var(--ink);
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  flex: 1 1 auto;   /* 占满剩余宽度，让倒计时能靠右 */
}
/* 倒计时徽章：推到标题行最右（用户 2026-10-23 要求，与标题同一行） */
body .remind-title #remind_due{
  margin-left: auto;
  align-self: center;
}
/* ★ 用户指定：黄底红字 + 放大（对齐红框标注的尺寸） */
body .remind-h1{
  display: inline-block; padding: 16px 34px; border-radius: 14px;
  background: linear-gradient(180deg, #ffe89a 0%, #f7cf5c 55%, #f2c04a 100%);
  color: #a81c12; font-size: 34px; font-weight: 900; letter-spacing: 3px;
  border: 2px solid #d9a92f; box-shadow: 0 6px 20px rgba(168, 28, 18, .28), inset 0 1px 0 rgba(255, 255, 255, .6);
  line-height: 1.1; text-shadow: 0 1px 0 rgba(255, 255, 255, .35);
}
body .remind-badge-ym{
  display: inline-block; padding: 5px 16px; border-radius: 14px;
  background: var(--ink); color: #fff; font-size: 15px; font-weight: 700;
  letter-spacing: .5px; box-shadow: 0 2px 8px rgba(11, 31, 58, .22);
}
body .remind-sub{ font-size: 13.5px; color: var(--text-3); font-weight: 400; }
body .remind-body{ padding: 18px 22px 6px; }

/* 账期下拉与倒计时徽章 */
body .remind-ymrow{ display: flex; align-items: center; gap: 14px; font-size: 13.5px; color: var(--text-2); flex-wrap: wrap; }
body .remind-ymrow > label{ white-space: nowrap; }
body .remind-cloudtag{ flex: 0 0 auto; }
body .remind-ymrow select{
  /* 2026-10-23 用户反馈：框太窄，「2026年10月」被裁切、下拉箭头压住旁边的「本机模式」标签 */
  width: auto; min-width: 160px; padding: 8px 34px 8px 13px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius-sm); font-size: 14px; background: #fff;
  color: var(--ink); font-weight: 600; font-family: inherit;
  box-shadow: var(--shadow-1);
}
body .remind-ymrow select:focus{ outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200, 153, 74, .16); }
body .remind-cloudtag{ font-size: 12px; padding: 3px 10px; border-radius: 10px; }
body .remind-cloudtag.ok{ background: #e8f6ee; color: var(--ok); }
body .remind-cloudtag.warn{ background: #fff4e5; color: #a8620a; }
body .remind-due{
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px;
  border-radius: 20px; font-size: 13.5px; font-weight: 700; border: 1px solid;
}
body .remind-due .dnum{ font-size: 19px; font-weight: 800; letter-spacing: .5px; }
body .remind-due.ok{ background: #eaf7ee; border-color: #9fd3ae; color: #1a7a44; }
body .remind-due.warn{ background: #fff4e3; border-color: #e8c489; color: #9a6308; }
body .remind-due.danger{ background: #fdecea; border-color: #f0b3ad; color: #b3271e; }

/* 公司卡片：白底 + 柔和阴影 + 状态色左边条 */
body .remind-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
body .remind-co{
  background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--line-2);
  border-radius: var(--radius-sm); padding: 14px 16px; box-shadow: var(--shadow-1);
  transition: .18s;
}
body .remind-co:hover{ box-shadow: var(--shadow-2); transform: translateY(-1px); }
body .remind-co.doing{ border-left-color: var(--gold); background: #fffdf8; }
body .remind-co.done-all{ border-left-color: var(--ok); background: #f8fdfa; }
body .remind-co-name{ font-weight: 800; color: var(--ink); font-size: 15.5px; }
body .remind-co-pool{ font-size: 12.5px; color: var(--text-3); white-space: nowrap; }
body .remind-co-pool b{ color: #a97c22; }
body .remind-co-cnt{ color: var(--text-3); margin-left: 6px; font-size: 11.5px; }

/* 七项进度胶囊 */
body .remind-tasks{ display: flex; flex-wrap: wrap; gap: 6px; }
body .remind-task{
  display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px;
  padding: 6px 11px; border: 1px solid var(--line-2); border-radius: 14px;
  background: #fff; color: var(--text-2); cursor: pointer; user-select: none; transition: .15s;
}
body .remind-task:hover{ border-color: var(--gold); color: var(--ink); }
body .remind-task.on{
  background: #e8f6ee; border-color: #9fd3ae; color: #146c3c; font-weight: 700;
  box-shadow: 0 1px 3px rgba(30, 142, 90, .16);
}
body .remind-task.auto{ background: #f1f9f4; border-color: #b6ddc6; color: #1a7a44; }
body .remind-task.auto i{ color: var(--ok); font-size: 13px; }
body .remind-task i{ font-style: normal; font-size: 11px; }
body .remind-hints{ margin-top: 9px; font-size: 12px; color: #a8620a; line-height: 1.5; }
body .remind-note{ margin: 0; font-size: 12.5px; color: var(--text-3); line-height: 1.65; }
body .remind-empty{ color: var(--text-3); font-size: 13.5px; padding: 10px 0; }
body .remind-fold{ cursor: pointer; user-select: none; margin-top: 12px; }

/* ——— 10. 云端状态条 / 凭证号说明条 ——— */
body #cloud_state_bar{
  border-radius: var(--radius-sm) !important; font-size: 13px !important;
  line-height: 1.75 !important; border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-1);
}
body .vchno-top{
  background: var(--gold-soft); border: 1px solid #e8dcc0;
  border-radius: var(--radius-sm); padding: 13px 16px; margin-bottom: 16px !important;
}
body .vchno-hint{ color: #6b5a33; font-size: 13.5px; line-height: 1.8; }
body .vchno-link{
  color: #9a6f16; text-decoration: underline; text-underline-offset: 3px;
  cursor: pointer; margin-left: 10px; font-weight: 600;
}
body .vchno-link:hover{ color: #6b4d0c; }
body .vchno-sep{ color: #c3ab7c; margin: 0 4px; }

/* ——— 11. 号池面板（公司标签页） ——— */
body .vch-report{ font-size: 13.5px; }
body .vch-report-title{ font-size: 16px; font-weight: 800; color: var(--ink); }
body .vch-report-note{ color: var(--text-3); line-height: 1.75; }
body .vch-tabs{
  display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 14px;
  border-bottom: 1px solid var(--line); padding-bottom: 10px;
}
body .vch-tab{
  padding: 8px 16px; border: 1px solid var(--line-2); border-radius: 9px;
  background: #fff; color: var(--text-2); font-size: 13.5px; font-weight: 600;
  cursor: pointer; user-select: none; white-space: nowrap; transition: .16s;
}
body .vch-tab:hover{ border-color: var(--gold); color: var(--ink); transform: translateY(-1px); }
body .vch-tab.on{
  background: var(--ink); border-color: var(--ink); color: #fff;
  box-shadow: 0 2px 10px rgba(11, 31, 58, .18);
}
body .vch-tab .dot{ display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--ok); margin-left: 6px; vertical-align: middle; }
body .vch-pane{ display: none; }
body .vch-pane.on{ display: block; }
body .vch-pool-co{
  font-size: 14px; font-weight: 800; color: var(--ink); margin: 4px 0 10px;
  display: flex; align-items: baseline; gap: 10px;
}
body .vch-pool-co span{ font-weight: 400; color: var(--text-3); font-size: 12.5px; }
body .vch-rep-item{
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 11px 14px; margin-bottom: 8px; box-shadow: var(--shadow-1);
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
body .vch-rep-cur{ border-left: 4px solid var(--gold); background: #fffdf8; }
body .vch-rep-ym{ font-weight: 700; color: var(--ink); font-size: 14px; }
body .vch-rep-now{
  margin-left: 6px; padding: 1px 8px; border-radius: 9px;
  background: var(--gold); color: #2b1d05; font-size: 11px; font-weight: 700;
}

/* ——— 12. 表单控件 ——— */
body .field label{ color: var(--text-2); font-weight: 600; font-size: 13px; }
body input[type="text"], body input[type="number"], body input:not([type]), body select, body textarea{
  border: 1px solid var(--line-2) !important; border-radius: var(--radius-sm) !important;
  font-family: inherit; font-size: 14px; color: var(--text);
  box-shadow: var(--shadow-1);
}
body input:focus, body select:focus, body textarea:focus{
  outline: none !important; border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(200, 153, 74, .16) !important;
}
body .muted{ color: var(--text-3); }
body .warn-banner{
  background: #fff4e5; border: 1px solid #f0dcae; color: #8a5a00;
  border-radius: var(--radius-sm); padding: 12px 16px; margin-bottom: 16px;
}

/* 数字用等宽字体（官网 --font-num），账目更整齐 */
body .bv-vt .c-amt, body .bv-vt .bv-num, body .bv-amount, body .amount, body td.num, body .vnum{
  font-family: var(--font-num); font-variant-numeric: tabular-nums;
}

/* ============================================================
   维度设置入口（2026-10-23 用户定稿：不再逐行报警告，改为按需设置）
   ============================================================ */
/* 低调的「维度」小按钮：贴在科目名后面，不喧宾夺主 */
body .bv-vt .bv-aux-cfg{
  display:inline-block; margin-left:8px; padding:1px 7px;
  font-size:11.5px; color:#8a97a8; text-decoration:none; cursor:pointer;
  border:1px dashed #d6dae0; border-radius:9px; background:transparent;
  vertical-align:baseline; transition:.15s; white-space:nowrap;
}
body .bv-vt .bv-aux-cfg:hover{ color:#1f5fa8; border-color:#1f5fa8; background:#f2f7fc; }
body .bv-vt .bv-aux-cfg.has{ color:#1a7a44; border-color:#9fd3ae; border-style:solid; background:#f2faf5; }

/* 展开的维度勾选面板 */
body .bv-vt .bv-aux-cfgbox{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px;
  margin-top:4px; padding:8px 11px; width:100%;
  background:#fbfcfe; border:1px solid #dfe4ec; border-radius:8px;
}
body .bv-vt .bv-aux-cfg-t{ font-size:12px; font-weight:700; color:#1f2d3d; }
body .bv-vt .bv-aux-cfg-hint{ font-weight:400; color:#8a94a6; font-size:11.5px; margin-left:6px; }
body .bv-vt .bv-aux-cfg-list{ display:flex; flex-wrap:wrap; gap:4px 10px; }
body .bv-vt .bv-new-dim-l{ display:inline-flex; align-items:center; gap:3px; font-size:12.5px; color:#47566b; cursor:pointer; }
body .bv-vt .bv-aux-cfg-ops{ display:inline-flex; align-items:center; gap:6px; margin-left:auto; }
body .bv-vt .bv-cfg-msg{ font-size:12px; color:#1a7a44; }

/* 补：app.js 内联样式里有、theme 里原先漏掉的规则 */
body .remind-co-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 9px; gap: 8px; }
body .remind-due .dnum { font-size: 19px; font-weight: 800; letter-spacing: .5px; }
body .remind-task i { font-style: normal; font-size: 11px; }
body .remind-task.auto i { color: var(--ok); font-size: 13px; }

/* ============================================================
   申报类进度项（2026-10-23 用户新增：4 项纯人工勾选的申报 checkpoint）
   —— 单独一行、虚线分隔、蓝色系，与工具产出类（绿/灰）区分
   ============================================================ */
body .remind-tasks-decl {
  margin-top: 7px; padding-top: 7px; border-top: 1px dashed var(--line-2);
}
body .remind-tasks-t {
  font-size: 11.5px; color: #8a94a6; font-weight: 700; letter-spacing: .5px;
  align-self: center; padding-right: 2px;
}
body .remind-task.decl { border-color: #c9d8ea; color: #5b7595; background: #f7fafe; }
body .remind-task.decl:hover { border-color: #4a7fb5; color: #1f5fa8; background: #eef5fc; }
body .remind-task.decl.on { background: #e4eefb; border-color: #7aa5d4; color: #14528c; font-weight: 700; }

/* ============================================================
   号段分布 + 来源 chips（2026-10-23 新增：号池面板逐月显示每段号来自哪个工具）
   ============================================================ */
body .vch-seg-wrap{ display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:3px; }
body .vch-chip{ display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1;padding:3px 9px;border-radius:999px;border:1px solid #d6dae0;background:#f6f8fa;color:#3b5b86;font-weight:600;white-space:nowrap; }
body .vch-chip i{ font-style:normal;color:#8a94a6;font-weight:400; }
body .vch-chip-bank{ background:#eef5fc;border-color:#bcd6f0;color:#1f5fa8; }
body .vch-chip-kingdee{ background:#f3eeff;border-color:#d8c9f3;color:#6a3fb0; }
body .vch-chip-purchase, body .vch-chip-sales, body .vch-chip-invoice, body .vch-chip-invoice_exp, body .vch-chip-invoice_dom{ background:#eafaf0;border-color:#bfe3cd;color:#1f7a45; }
body .vch-chip-manual{ background:#fff6ec;border-color:#f0d9b8;color:#a36a1c; }
body .vch-cov{ display:block;width:100%;font-size:11px;margin-top:5px; }
body .vch-cov.ok{ color:#1f9d57; }
body .vch-cov.gap{ color:#c0392b;background:#fff6f5;border:1px solid #f0d6d2;padding:4px 8px;border-radius:6px; }

/* ============================================================
   记忆徽标（2026-10-23）：预览表里标出「这行的科目不是这次选的，是上次记下来的」
   —— 只在科目单元格内显示，短标签 + title 说明完整依据，避免挤压表格
   ============================================================ */
body .bv-mem-badge, body .bv-vt .bv-mem-badge{
  display:inline-flex;align-items:center;gap:3px;margin-top:3px;
  font-size:10.5px;line-height:1;padding:2px 7px;border-radius:999px;
  background:#eef3fb;border:1px solid #c7d8ef;color:#2f5b96;font-weight:700;
  cursor:help;white-space:nowrap;
}
body .bv-mem-badge.fresh, body .bv-vt .bv-mem-badge.fresh{
  background:#eafaf0;border-color:#bfe3cd;color:#1f7a45;
}
/* 规则徽标（2026-10-24）：开票人邱炜 → 500103 这类硬规则带出的科目，与「记忆」明确区分 */
body .bv-mem-badge.rule, body .bv-vt .bv-mem-badge.rule{
  background:#fff4e2;border-color:#f0cf9a;color:#8a5307;
}

/* ⭐ A3（2026-10-29）：看板配置前台编辑器（增 / 改 / 隐藏 / 删除） */
body .remind-cfg-btn{
  margin-left:10px;padding:3px 10px;font-size:12px;font-weight:600;color:#3a6ea5;
  background:#eef3fb;border:1px solid #c7d8ef;border-radius:14px;cursor:pointer;
}
body .remind-cfg-btn:hover{background:#e3edfa;}
body .bv-modal-mask{
  display:none;position:fixed;inset:0;z-index:200;background:rgba(20,30,50,.45);
  align-items:center;justify-content:center;padding:20px;
}
body .bv-modal{
  width:min(680px,100%);max-height:86vh;display:flex;flex-direction:column;
  background:#fff;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.28);overflow:hidden;
}
body .bv-modal-h{
  display:flex;align-items:center;justify-content:space-between;padding:14px 18px;
  font-size:15px;font-weight:700;color:#1f2d3d;background:#f7f9fc;border-bottom:1px solid #eef1f5;
}
body .bv-modal-x{cursor:pointer;color:#8a97a8;font-size:18px;line-height:1;padding:2px 6px;border-radius:6px;}
body .bv-modal-x:hover{background:#eef1f5;}
body .bv-modal-b{padding:14px 18px;overflow:auto;}
body .bv-modal-f{display:flex;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid #eef1f5;background:#f7f9fc;}
body .bv-btn{padding:8px 18px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid #d6dae0;background:#fff;color:#1f2d3d;cursor:pointer;}
body .bv-btn:hover{background:#f3f5f8;}
body .bv-btn-p{background:#2f6bd6;border-color:#2f6bd6;color:#fff;}
body .bv-btn-p:hover{background:#285bc0;}
body .rc-co-pick{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:12.5px;color:#4a5b70;}
body .rc-co-pick label{font-weight:700;color:#3a6ea5;flex:0 0 auto;}
body .rc-co-pick select{flex:0 0 auto;min-width:210px;padding:6px 9px;border:1px solid #c9d2de;border-radius:8px;font-size:13px;background:#fff;color:#1f2d3d;font-weight:600;}
body .rc-tip{margin:0 0 12px;font-size:12px;line-height:1.6;color:#6b7686;background:#f7f9fc;border:1px solid #eef1f5;border-radius:8px;padding:8px 10px;}
body .rc-sec{margin-bottom:14px;}
body .rc-sec-t{font-size:12.5px;font-weight:700;color:#3a6ea5;margin-bottom:6px;}
body .rc-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid #eef1f5;border-radius:8px;margin-bottom:6px;background:#fff;}
body .rc-row.rc-hidden{opacity:.45;background:#fafbfc;}
body .rc-show{width:16px;height:16px;flex:0 0 auto;}
body .rc-label{flex:1 1 auto;min-width:120px;padding:5px 8px;border:1px solid #d6dae0;border-radius:6px;font-size:13px;}
body .rc-grp, body .rc-freq{padding:5px 6px;border:1px solid #d6dae0;border-radius:6px;font-size:12.5px;background:#fff;}
body .rc-tag{flex:0 0 auto;font-size:11px;color:#8a97a8;}
body .rc-tag-c{color:#b06a00;}
body .rc-del{flex:0 0 auto;padding:4px 10px;font-size:12px;border:1px solid #f0c9c9;border-radius:6px;background:#fff5f5;color:#c0392b;cursor:pointer;}
body .rc-del:hover{background:#fdeaea;}
body .rc-add{margin-top:4px;}
body .rc-add-btn{padding:6px 12px;font-size:12.5px;font-weight:600;color:#2f6bd6;background:#eef3fb;border:1px dashed #b9d2f2;border-radius:8px;cursor:pointer;}
body .rc-add-btn:hover{background:#e3edfa;}
body .rc-empty{font-size:12px;color:#9aa4b2;padding:4px 2px;}

/* ============================================================
   移动端适配（2026-10-29）
   目标：手机浏览器打开即能「看进度 / 勾任务」，不必等小程序。
   边界：**全部包在 @media (max-width:720px) 内** —— 桌面(≥721px)规则一条不改，
        媒体查询天然隔离，不参与桌面视觉与回归。
   ============================================================ */
@media (max-width: 720px) {
  /* 1. 容器：收紧留白，窄屏不浪费边距 */
  body #app { padding: 10px 12px 40px; }

  /* 2. 顶栏：允许换行，字号收敛 */
  body .topbar { flex-wrap: wrap; gap: 6px 10px; padding: 10px 12px; }
  body .topbar .brand { font-size: 15px; }
  body .topbar .who { font-size: 12px; }

  /* 3. 主标签：横向滑动（不换行、不压缩），滚动条隐藏 */
  body .tabs {
    overflow-x: auto; flex-wrap: nowrap; gap: 6px;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
    padding-bottom: 4px; margin-bottom: 12px;
  }
  body .tabs::-webkit-scrollbar { display: none; }
  body .tabs .tab { flex: 0 0 auto; padding: 9px 14px; font-size: 13.5px; }

  /* 4. 看板：标题竖排 + 公司卡单列 + 触控友好 */
  body .remind-panel { border-left-width: 4px; margin-bottom: 12px; }
  body .remind-head { flex-direction: column; align-items: stretch; gap: 8px; padding: 12px; }
  body .remind-title { gap: 6px; }
  body .remind-h1 { font-size: 17px; padding: 5px 12px; letter-spacing: .5px; }
  body .remind-badge-ym { font-size: 13px; padding: 3px 10px; }
  /* 长段副标题在手机上占掉半屏，隐藏；底部「图标含义」折叠区仍可查完整说明 */
  body .remind-sub { display: none; }
  body .remind-due { font-size: 12.5px; padding: 5px 10px; gap: 6px; }
  body .remind-due .dnum { font-size: 17px; }
  body .remind-ymrow { width: 100%; flex-wrap: wrap; gap: 6px; }
  body .remind-ymrow select { height: 40px; font-size: 15px; }
  /* ⚙ 看板配置按钮：原 padding 3px/10px 手机上难点，放大并不再让它挤在标题后 */
  body .remind-cfg-btn { margin-left: 0; min-height: 34px; padding: 6px 12px; font-size: 13px; }
  body .remind-body { padding: 10px 12px 4px; }
  body .remind-grid { grid-template-columns: 1fr; gap: 10px; }
  body .remind-co { padding: 10px 11px; }
  body .remind-co-name { font-size: 14.5px; }
  body .remind-tasks { gap: 8px; }
  /* 任务胶囊：最小 40px 高（原 padding 5px/10px 约 28px，手指难点中） */
  body .remind-task { min-height: 40px; padding: 8px 13px; font-size: 13px; border-radius: 12px; }
  body .remind-note { font-size: 12.5px; }

  /* 5. 看板配置弹窗：内边距收紧、行内控件允许换行，避免横向溢出 */
  body .bv-modal-b { padding: 12px; }
  body .bv-modal-f { padding: 10px 12px; }
  body .rc-row { flex-wrap: wrap; }
  body .bv-btn { padding: 9px 16px; }
}
