:root{
  --bg:#f1f4f9; --panel:#ffffff; --ink:#232f3e; --mut:#46556a; --mut2:#8a96a6;
  --line:#e2e8f2; --cardline:#e5ebf4; --field:#f8fafd; --field-line:#e2e8f2;
  --pri:#3057c9; --pri-bg:#eef2fd; --pri-soft:#c7d4f4;
  --exp:#12805c; --exp-bg:#e7f4ee; --exp-bg2:#eef7f2; --exp-soft:#8fc3ac; --exp-track:#e6eef0;
  --con:#b23b3b; --con-bg:#f7e9e7; --con-bg2:#faf0ee; --con-soft:#e0a58a; --con-track:#f0e7e6;
  --err:#b00020;
  --r-card:16px; --r-sm:11px; --r-btn:12px; --r-pill:999px;
  --shadow:0 1px 3px rgba(23,37,63,.05); --shadow-lg:0 6px 24px rgba(23,37,63,.08);
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Noto Sans SC","PingFang SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  line-height:1.6;font-size:14px;-webkit-font-smoothing:antialiased}
a{color:var(--pri);text-decoration:none}
button{font-family:inherit;cursor:pointer}

/* ===== 顶栏 ===== */
.appbar{position:sticky;top:0;z-index:20;background:rgba(241,244,249,.82);
  backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--cardline)}
.appbar .inner{max-width:1200px;margin:0 auto;padding:16px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:baseline;gap:10px;min-width:0}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--pri);flex:none;align-self:center}
.brand b{font-size:15px;font-weight:800;letter-spacing:.2px;white-space:nowrap}
.brand .crumb{color:var(--mut2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.navlinks{display:flex;align-items:center;gap:14px;font-size:13px;white-space:nowrap;flex:none}
.navlinks a{color:var(--mut);cursor:pointer}
.navlinks a:hover{color:var(--pri)}
.navlinks a.strong{color:var(--pri);font-weight:700}
.navlinks .step{color:var(--mut2)}
.navlinks .fbbadge{background:var(--con);color:#fff;border-radius:var(--r-pill);
  padding:0 7px;margin-left:5px;font-size:10.5px;font-weight:700}

.wrap{max-width:1200px;margin:0 auto;padding:26px 28px 72px}

/* ===== 标题/文案 ===== */
.hero{text-align:center;margin:22px 0 26px}
.hero h1{font-size:26px;font-weight:800;margin:0 0 8px;letter-spacing:.4px}
.hero p{color:var(--mut);font-size:13.5px;margin:0;line-height:1.7}
.sec-title{display:flex;align-items:center;gap:12px;margin:0 0 14px;flex-wrap:wrap}
.sec-title .bar{width:4px;height:19px;border-radius:2px;background:var(--pri);flex:none}
.sec-title h2{font-size:17px;font-weight:800;margin:0}
.sec-title .note{color:var(--mut2);font-size:12.5px;font-weight:400}

/* ===== 卡片/表单 ===== */
.card{background:var(--panel);border:1px solid var(--cardline);border-radius:var(--r-card);
  box-shadow:var(--shadow);padding:28px 30px;margin-bottom:16px}
.field{margin-bottom:18px}.field:last-child{margin-bottom:0}
.lab{display:flex;align-items:center;gap:9px;margin-bottom:9px;font-size:13.5px;font-weight:700}
.lab .tick{width:3px;height:15px;border-radius:2px;background:var(--pri);flex:none}
.lab .req{color:var(--err);font-size:11px;font-weight:700}
.lab .opt{color:var(--mut2);font-size:11px;font-weight:400}
.lab .count{margin-left:auto;color:var(--mut);font-size:12px;font-weight:400}
.lab .count b{color:var(--pri);font-weight:700}
input,textarea{width:100%;padding:13px 15px;border:1px solid var(--field-line);
  border-radius:var(--r-sm);font-size:13.5px;font-family:inherit;background:var(--field);
  color:var(--ink);transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:var(--mut2)}
input:focus,textarea:focus{outline:none;border-color:var(--pri-soft);box-shadow:0 0 0 3px var(--pri-bg)}
textarea{min-height:220px;resize:vertical;line-height:1.8}
/* 需求模式二选一开关：两种模式跑的是两套清单+两套公式，代价差异大，
   故用并排分段控件把选择摆在明面上，而不是藏进下拉框。 */
.modesw{display:flex;gap:8px;padding:4px;background:var(--field);
  border:1px solid var(--field-line);border-radius:var(--r-btn)}
.mode-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 12px;border:1px solid transparent;border-radius:var(--r-sm);
  background:transparent;color:var(--mut);font-size:13.5px;font-weight:700;
  transition:background .15s,color .15s,border-color .15s}
.mode-opt small{font-size:11px;font-weight:400;color:var(--mut2)}
.mode-opt:hover{color:var(--pri)}
.mode-opt.active{background:var(--panel);color:var(--pri);border-color:var(--pri-soft);
  box-shadow:var(--shadow)}
.mode-opt.active small{color:var(--pri)}

.hint{color:var(--mut2);font-size:11.5px;margin-top:7px}
.hint b{color:var(--mut)}
.hint input[type=file]{width:auto;display:inline;padding:3px;background:transparent;border:0;font-size:11.5px}
.actions{display:flex;gap:12px;align-items:center;margin-top:22px}
.btn{background:var(--pri);color:#fff;border:0;border-radius:var(--r-btn);
  padding:11px 26px;font-size:13.5px;font-weight:600;transition:filter .15s,transform .02s}
.btn:hover{filter:brightness(1.06)} .btn:active{transform:translateY(1px)}
.btn:disabled{background:#9aa6bb;cursor:not-allowed;filter:none}
.btn.ghost{background:#fff;color:var(--mut);border:1px solid var(--line);font-weight:400}
.btn.ghost:hover{color:var(--pri);border-color:var(--pri-soft);filter:none}
.btn.sm{padding:7px 15px;font-size:12.5px}
/* 终止类操作：不可逆，用收缩色描边区别于普通 ghost，但不做成刺眼的实心红 */
.btn.ghost.danger{color:var(--con);border-color:var(--con-bg)}
.btn.ghost.danger:hover{color:var(--con);border-color:var(--con);background:var(--con-bg)}
.msgbox{margin-top:14px;padding:11px 14px;border-radius:var(--r-sm);font-size:12.5px;display:none}
.msgbox.err{background:var(--con-bg);border:1px solid var(--con-soft);color:var(--con)}
.msgbox.ok{background:var(--exp-bg);border:1px solid var(--exp-soft);color:var(--exp)}

/* ===== 进度 ===== */
.prog-wrap{max-width:640px;margin:40px auto 0}
.prog-head{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;margin-bottom:14px}
.spin{width:15px;height:15px;border:2.5px solid var(--line);border-top-color:var(--pri);
  border-radius:50%;animation:rot .7s linear infinite;flex:none}
@keyframes rot{to{transform:rotate(360deg)}}
.pbar{height:8px;background:var(--exp-track);border-radius:var(--r-pill);overflow:hidden;position:relative;margin:6px 0 14px}
.pbar>i{display:block;height:100%;background:var(--pri);width:0;border-radius:var(--r-pill);transition:width .4s}
.pbar.run::after{content:'';position:absolute;top:0;left:-40%;height:100%;width:40%;
  background:linear-gradient(90deg,transparent,rgba(48,87,201,.35),transparent);animation:sweep 1.25s linear infinite}
@keyframes sweep{to{left:100%}}
.pstatus{font-size:13px;color:var(--ink);display:flex;align-items:center;gap:9px;margin-bottom:6px}
/* 状态行 + 终止按钮同一行，按钮靠右 */
.prog-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.prog-top .pstatus{margin-bottom:0;min-width:0}
.plist{margin-top:12px;font-size:12px;color:var(--mut);max-height:200px;overflow:hidden;
  border-top:1px dashed var(--line);padding-top:10px}
.plist div{padding:3px 0}

/* AI 实时动作流：最近 5 条往下滚，新行淡入——让人看得出系统是活的 */
.pact{display:flex;align-items:baseline;gap:7px;padding:4px 0;line-height:1.5;
  animation:actin .28s ease-out}
@keyframes actin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.pact-k{flex:none;color:var(--ink);font-weight:600}
.pact-c{flex:none;color:var(--pri);font-weight:600}
.pact-d{color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== 统计卡 ===== */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:26px}
@media(max-width:720px){.stats{grid-template-columns:1fr}}
.stat{background:var(--panel);border:1px solid var(--cardline);border-radius:var(--r-card);
  box-shadow:var(--shadow);padding:20px 24px}
.stat .k{color:var(--mut);font-size:13px;margin-bottom:8px}
.stat .v{font-size:26px;font-weight:700;line-height:1;color:var(--pri)}
.stat .v small{font-size:13px;font-weight:400;color:var(--mut);margin-left:6px}

/* ===== grade 五色（S/A/B/C/N） ===== */
.grade-s{background:#b91c1c;color:#fff}   /* 确定有需求 */
.grade-a{background:#ea580c;color:#fff}   /* 高概率有需求 */
.grade-b{background:#ca8a04;color:#fff}   /* 可能有需求 */
.grade-c{background:#0891b2;color:#fff}   /* 暂无明确需求 */
.grade-n{background:#64748b;color:#fff}   /* 无需求信号 */

/* pills */
.pill{font-size:11px;font-weight:600;border-radius:var(--r-pill);padding:2px 10px;white-space:nowrap;flex:none}

/* ===== 评分口径（可折叠卡：等级阈值 + 三通道证据条件） ===== */
.rubric-card{background:var(--panel);border:1px solid var(--cardline);border-radius:var(--r-card);
  box-shadow:var(--shadow);margin-bottom:26px;overflow:hidden}
.rubric-toggle{display:flex;align-items:center;gap:12px;width:100%;padding:16px 22px;
  background:none;border:0;text-align:left}
.rubric-toggle:hover{background:var(--field)}
.rubric-toggle .bar{width:4px;height:19px;border-radius:2px;background:var(--pri);flex:none}
.rubric-toggle h2{font-size:16px;font-weight:800;margin:0}
.rubric-toggle .note{color:var(--mut2);font-size:12.5px;font-weight:400}
.rubric-toggle .caret{margin-left:auto;color:var(--mut2);font-size:12px;transition:transform .2s}
.rubric-card.open .rubric-toggle .caret{transform:rotate(180deg)}
.rubric{padding:0 24px 22px;display:none}
.rubric-card.open .rubric{display:block}
.rubric .sys{font-size:14px;font-weight:700;margin:18px 0 12px;color:var(--pri)}
.rubric .sys:first-child{margin-top:4px}
.rubric .sys small{color:var(--mut2);font-weight:400;font-size:12px;margin-left:8px}
.mod{border:1px solid var(--cardline);border-radius:var(--r-sm);margin-bottom:12px;overflow:hidden}
.mod>.mh{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--pri-bg)}
.mbadge{font-size:10px;font-weight:700;color:var(--pri);background:#fff;border:1px solid var(--pri-soft);
  border-radius:6px;padding:1px 6px;flex:none}
.mh .mn{font-weight:700;font-size:13.5px}
.mh .mx{margin-left:auto;color:var(--mut);font-size:12.5px}
.mod .si{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--cardline);font-size:13px}
.mod .si .sn{flex:1;min-width:0}
.mod .si .sv{font-weight:700;color:var(--pri);width:26px;text-align:right}
.mod .si .src{color:var(--mut2);font-size:11.5px;width:88px;text-align:right;flex:none}
/* 购买因子行：分值形态是「≥30亿元 28 · ≥10亿元 22」这类长串，撑不进 .si 的定宽列，
   故独立成两行（名称+分值 / 来源），不与三通道条件行共用样式。 */
.mod .fi{padding:9px 14px;border-top:1px solid var(--cardline);font-size:13px}
.mod .fi-top{display:flex;align-items:baseline;gap:12px}
.mod .fi-name{flex:1;min-width:0}
.mod .fi-score{font-weight:700;color:var(--pri);text-align:right;font-variant-numeric:tabular-nums}
.mod .fi-src{color:var(--mut2);font-size:11.5px;margin-top:3px}

/* ===== 榜单 · 逐公司明细（单列） ===== */
.board-single{display:flex;flex-direction:column;gap:8px}
.pcard{background:var(--panel);border:1px solid var(--cardline);border-radius:var(--r-card);
  box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden;scroll-margin-top:88px}
.pcard>.hd{display:flex;align-items:center;gap:14px;padding:16px 22px;cursor:pointer}
.pcard>.hd:hover{background:var(--field)}
.pcard .rk{color:var(--mut2);font-size:14px;font-weight:700;width:16px;flex:none}
.pcard .meta{flex:1;min-width:0}
.pcard .meta .nm{font-weight:700;font-size:15px}
.pcard .meta .ind{color:var(--mut2);font-size:11.5px;font-weight:400;margin-left:8px}
.pcard .meta .sub{color:var(--mut2);font-size:12px;margin-top:2px}
.pcard .hd .sc{font-size:22px;font-weight:700;width:44px;text-align:right;flex:none;color:var(--pri)}
.pcard .hd .caret{color:var(--mut2);font-size:12px;flex:none;transition:transform .2s}
.pcard.open .hd .caret{transform:rotate(180deg)}
.pcard .body{display:none;padding:6px 22px 20px}
.pcard.open .body{display:block}
.judgment{background:#f6f8fc;border-left:3px solid var(--pri);border-radius:var(--r-sm);
  padding:12px 14px;font-size:13px;color:var(--mut);line-height:1.75;margin-bottom:18px}

/* ===== 总分构成 =====
   租赁: K-T+EX+T → 交叉验证 → 行业乘数 → 地域系数 → DII
   购买: (P+S+K-T−C) → 交叉验证 → 行业乘数 → 购买地域系数 → 生命周期乘数 → DII */
.dii-formula{margin:8px 0 18px;padding:10px 14px;border:1px solid var(--cardline);border-radius:var(--r-sm);font-size:13px}
.dii-formula .frow{display:flex;justify-content:space-between;gap:8px;padding:3px 0}
.dii-formula .frow small{color:var(--mut2);flex:1;text-align:right}

/* ===== 逐信号明细（按通道分组） ===== */
.chan{margin-top:8px}
.ch-h{font-weight:700;font-size:12.5px;color:var(--mut);margin:10px 0 4px}
.si{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;font-size:12.5px;color:var(--mut);
  padding:5px 2px;border-bottom:1px dashed var(--cardline)}
.si .sc-code{font-weight:700;color:var(--ink);font-family:ui-monospace,Consolas,monospace}
.si .sc-desc{flex:1;min-width:120px;color:var(--ink)}
.si .sc-score{font-weight:700;color:var(--pri)}

/* ===== 反馈榜单 · 按日期分区（每区内是与结果页同款的可展开公司卡） ===== */
.day{margin:0 0 30px}
.day:last-child{margin-bottom:0}
.day-h{display:flex;align-items:baseline;gap:10px;margin:0 0 12px;padding-bottom:9px;
  border-bottom:1px solid var(--cardline)}
.day-h .day-d{font-size:15px;font-weight:800;letter-spacing:.4px;
  font-variant-numeric:tabular-nums}
.day-h .day-n{color:var(--mut2);font-size:12.5px;font-weight:400}
.dropnote{color:var(--mut2);font-size:12.5px;padding:0 2px 16px}
/* 卡底反馈原文 */
.pill.fb-like{background:var(--exp-bg);color:var(--exp)}
.pill.fb-issue{background:var(--con-bg);color:var(--con)}
.fbtext{flex:1;min-width:0;color:var(--ink);line-height:1.7}

.fbrow{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:14px;
  border-top:1px dashed var(--line);font-size:12.5px;color:var(--mut)}
.fbrow.fb-editing{align-items:flex-start;flex-wrap:wrap}
.fbrow.fb-editing>span{padding-top:9px}
.fbrow .fb-input{flex:1 1 220px;min-height:0;min-width:180px;padding:8px 11px;
  font-size:12.5px;line-height:1.6;resize:vertical}
.fbrow .ok{color:var(--exp);font-weight:700}
.fail{color:var(--con)}
.empty{color:var(--mut2);font-size:13px;padding:22px;text-align:center}

/* ===== 历史执行记录 ===== */
.hist{max-width:920px;margin:18px auto 0;padding:0;overflow:hidden}
.hist-tabs{display:flex;align-items:baseline;gap:12px;padding:15px 22px;border-bottom:1px solid var(--cardline)}
.hist-tab{background:none;border:0;padding:0;font-size:14px;font-weight:800;color:var(--ink);
  cursor:default;position:relative}
.hist-tab.active::after{content:'';position:absolute;left:0;right:0;bottom:-15px;height:2.5px;
  background:var(--pri);border-radius:2px}
.hist-note{color:var(--mut2);font-size:12px}
.hrow{display:flex;align-items:center;gap:12px;padding:12px 22px;border-top:1px solid var(--cardline);font-size:13px}
.hrow:first-child{border-top:0}
.hrow.link{cursor:pointer}
.hrow.link:hover{background:var(--field)}
.hrow .ht{color:var(--mut);font-size:12px;flex:none;width:118px;
  font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.hrow .hc{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.hrow .hc small{color:var(--mut2);font-weight:400;margin-left:6px}
.hrow .arrow{color:var(--mut2);font-size:12px;flex:none}
.pill.h-done{background:var(--exp-bg);color:var(--exp)}
.pill.h-error{background:var(--con-bg);color:var(--con)}
.pill.h-running,.pill.h-queued{background:var(--pri-bg);color:var(--pri)}
.pill.h-cancelled{background:var(--panel-2,#eef1f6);color:var(--mut)}

.gate{position:fixed;inset:0;background:var(--bg);z-index:50;display:flex;align-items:center;justify-content:center}
.gate .card{width:340px;margin:0}
.gate h1{font-size:19px;font-weight:800;margin:0 0 6px}
.gate .g-sub{color:var(--mut);font-size:13px;margin-bottom:16px}
.gate .g-err{color:var(--err);font-size:11.5px;margin-top:8px;min-height:14px}
.hidden{display:none!important}

/* ============================================================
   结果卡 · 偏业务视图（去字母编号 / 去通道名 / 触发条件+得分 / 证据折叠）
   ============================================================ */
/* 评分构成折叠 */
details.breakdown{margin:2px 0 14px}
details.breakdown>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  font-size:12.5px;color:var(--pri);padding:4px 0}
details.breakdown>summary::-webkit-details-marker{display:none}
details.breakdown>summary .chev{display:inline-block;transition:transform .15s}
details.breakdown[open]>summary .chev{transform:rotate(90deg)}
.dii-formula .frow .fv{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.dii-formula .frow>span:first-child{color:var(--mut)}

/* 触发信号 小节头 */
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin:6px 0 2px;font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--mut2)}
.sec-h .toggleall{font-size:11.5px;font-weight:600;letter-spacing:0;color:var(--pri);cursor:pointer}
.siglist{display:flex;flex-direction:column}

/* 排除卡：没参与打分，分数位是「—」不是 0 —— 0 分意味着"算过了、需求很弱"，
   「—」意味着"根本没算"，对跟进决策含义完全不同。整卡压低存在感但不隐藏，
   否则误杀了没人发现（地产开发商关键词判定本就有误杀风险）。 */
.pcard.excluded{opacity:.72}
.pcard.excluded .nm{color:var(--mut)}
.pcard .sc.none{color:var(--mut2);font-weight:400}
.pill.grade-x{background:#e8ecf3;color:var(--mut)}
.exbox{background:var(--field);border:1px solid var(--cardline);
  border-radius:var(--r-sm);padding:12px 14px;margin:4px 0 12px}
.ex-top{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.ex-tag{font-size:10.5px;font-weight:700;color:var(--con);background:var(--con-bg2);
  border:1px solid var(--con-bg);border-radius:6px;padding:1px 7px}
.ex-label{font-weight:700;font-size:13.5px}
.ex-reason{font-size:13px;color:var(--mut)}
.ex-evi{font-size:11.5px;color:var(--mut2);margin-top:5px;line-height:1.6}

/* 单条信号：可展开 */
details.sig{border-radius:var(--r-sm)}
details.sig[open]{background:var(--field)}
details.sig>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
  padding:11px 8px;border-radius:var(--r-sm);border-top:1px solid var(--cardline)}
.siglist>details.sig:first-child>summary{border-top:0}
details.sig[open]>summary{border-bottom:1px solid var(--cardline)}
details.sig>summary::-webkit-details-marker{display:none}
details.sig>summary:hover{background:var(--field)}

.sig .dot{width:8px;height:8px;border-radius:50%;flex:none}
.sig.kind-oper .dot{background:var(--pri)}
.sig.kind-tech .dot{background:#7a4dd0}
.sig.kind-org  .dot{background:#c67f10}

.sig-main{flex:1;min-width:0}
.sig-top{display:flex;align-items:center;gap:9px;min-width:0}
.sig .kind{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;flex:none;white-space:nowrap}
.sig.kind-oper .kind{color:var(--pri);background:var(--pri-bg)}
.sig.kind-tech .kind{color:#6b3fc0;background:#f0eafb}
.sig.kind-org  .kind{color:#a5680b;background:#fbf1df}
.sig .cond{font-size:14px;color:var(--ink);font-weight:500;flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sig .when{font-size:12px;color:var(--mut2);margin-top:3px}
.sig-score{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;
  flex:none;min-width:46px;text-align:right;color:var(--pri)}
.sig .chev-r{color:var(--mut2);font-size:13px;flex:none;transition:transform .15s}
details.sig[open] .chev-r{transform:rotate(90deg)}

/* 展开区：证据原文 + 来源 */
.sig-body{padding:4px 10px 14px 32px}
.sig-body .evi{font-size:13px;color:var(--ink);line-height:1.7;background:var(--panel);
  border:1px solid var(--cardline);border-radius:var(--r-sm);padding:11px 13px}
.sig-body .evi .lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;
  color:var(--mut2);margin-bottom:5px}
.sig-body .metaline{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:10px;
  font-size:12px;color:var(--mut)}
.sig-body .metaline .calc{font-variant-numeric:tabular-nums}
.sig-body .metaline .src{font-weight:600;color:var(--pri)}
.sig-body .metaline .src:hover{text-decoration:underline}
.sig-body .metaline .src-none{color:var(--mut2);font-style:italic}

/* ---- 探迹联系方式查询 ---- */
.ct-lookup{display:flex;gap:8px;padding:12px 0}
.ct-lookup input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line,#d8dde5);
  border-radius:6px;font-size:14px}
.ct-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}
.ct-table th,.ct-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line,#eef1f5)}
.ct-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.ct-alt{margin:6px 0;font-size:12px;color:var(--muted,#6b7684)}
.ct-alt ul{margin:4px 0 0 16px}

/* ---- 结果页公司卡片下的联系方式条（横向可滑动） ---- */
.ct-strip{display:flex;gap:10px;overflow-x:auto;padding:6px 14px 8px 40px;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.ct-strip:empty{display:none}
.ct-strip::-webkit-scrollbar{height:5px}
.ct-strip::-webkit-scrollbar-thumb{background:var(--line,#d8dde5);border-radius:3px}
.ct-cell{flex:0 0 auto;display:flex;flex-direction:column;line-height:1.3;
  padding:3px 10px;border:1px solid var(--line,#e6eaf0);border-radius:6px;
  background:var(--card,#fff)}
.ct-cell b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:13px;font-weight:600;letter-spacing:.02em}
.ct-cell i{font-style:normal;font-size:11px;color:var(--muted,#8a94a3)}
.ct-cell.bad b{color:var(--muted,#9aa3b0);text-decoration:line-through}
.ct-none{font-size:12px;color:var(--muted,#8a94a3);padding:3px 0}
/* 「查号」：后端没抓到（或老任务没这字段）时手动补。点一次 = 解锁一条线索、
   扣一次企业点数，所以做成按钮而不是自动跑。 */
.ct-get{flex:0 0 auto;font-size:12px;padding:3px 10px;cursor:pointer;
  color:var(--pri);background:var(--card,#fff);
  border:1px solid var(--line,#e6eaf0);border-radius:6px}
.ct-get:hover{border-color:var(--pri)}
