/* 私域销转 · 三套主题（对齐 8770：冷酷黑/柔亮白/商务蓝） */
:root{--bg:#10131a;--bg2:#181d27;--card:#181d27;--red:#ff6b6b;--red2:#ff8a8a;
  --gold:#e0c072;--gold2:#f0d79a;--txt:#e7ecf5;--sub:#8b97ad;--line:#2a3142;
  --blue:#4aa8ff;--ink:#e7ecf5;--blue-rgb:74,168,255;--red-rgb:255,107,107;--gold-rgb:224,192,114;}
html[data-theme="soft"]{--bg:#f4f6fb;--bg2:#ffffff;--card:#ffffff;--red:#c8102e;--red2:#e23a50;
  --gold:#b8860b;--gold2:#d9a52e;--txt:#1b2230;--sub:#6b7488;--line:#e2e7f0;
  --blue:#2979ff;--ink:#1b2230;--blue-rgb:41,121,255;--red-rgb:200,16,46;--gold-rgb:184,134,11;}
html[data-theme="blue"]{--bg:#0e1830;--bg2:#13233f;--card:#152540;--red:#ff5a7a;--red2:#ff859b;
  --gold:#ffab3d;--gold2:#ffc46b;--txt:#e8eefb;--sub:#93a4c4;--line:#213a5e;
  --blue:#28e0ff;--ink:#e8eefb;--blue-rgb:40,224,255;--red-rgb:255,90,122;--gold-rgb:255,171,61;}
*{box-sizing:border-box;}
body{margin:0;font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",Arial,sans-serif;
  background:var(--bg);color:var(--txt);font-size:14px;line-height:1.6;}
a{color:var(--blue);}
header{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);
  background:var(--bg2);position:sticky;top:0;z-index:20;}
header h1{font-size:17px;margin:0;font-weight:700;letter-spacing:1px;}
header .spacer{flex:1;}
.btn{background:var(--red);color:#fff;border:none;border-radius:8px;padding:6px 14px;
  font-size:13px;cursor:pointer;transition:.15s;}
.btn:hover{filter:brightness(1.1);}
.btn.ghost{background:transparent;color:var(--sub);border:1px solid var(--line);}
.btn.blue{background:var(--blue);color:#06222b;}
.btn.gold{background:var(--gold);color:#1b1500;}
.btn.sm{padding:3px 10px;font-size:12px;}
.tabs{display:flex;gap:8px;padding:10px 18px 0;}
.tab{padding:6px 16px;border-radius:8px 8px 0 0;cursor:pointer;color:var(--sub);
  border:1px solid transparent;border-bottom:none;font-size:13px;user-select:none;}
.tab.on{color:var(--txt);background:var(--card);border-color:var(--line);font-weight:600;}
main{padding:14px 18px 40px;max-width:1180px;margin:0 auto;}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px;margin-bottom:16px;}
.metric{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;}
.metric .n{font-size:24px;font-weight:800;color:var(--red);line-height:1.2;}
.metric .l{font-size:12px;color:var(--sub);margin-top:3px;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;}
.card:hover{border-color:var(--blue);}
.card.overdue{border-color:var(--red);}
.tag{display:inline-block;padding:1px 9px;border-radius:999px;font-size:11px;margin-right:5px;
  border:1px solid var(--line);color:var(--sub);}
.tag.p{background:rgba(var(--blue-rgb),.14);border-color:var(--blue);color:var(--blue);}
.tag.e{background:rgba(var(--gold-rgb),.14);border-color:var(--gold);color:var(--gold);}
.tag.h{background:rgba(var(--red-rgb),.14);border-color:var(--red);color:var(--red);}
.tag.m{background:rgba(var(--gold-rgb),.14);border-color:var(--gold);color:var(--gold);}
.tag.l{color:var(--sub);}
.tag.d{background:rgba(var(--blue-rgb),.16);border-color:var(--blue);color:var(--blue);}
.cname{font-size:15px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:6px;}
.cwant{font-size:13px;color:var(--sub);margin:6px 0;max-height:42px;overflow:hidden;}
.cmeta{font-size:12px;color:var(--sub);display:flex;flex-wrap:wrap;gap:4px 12px;}
.nt{font-weight:700;}
.nt.over{color:var(--red);}
.ops{margin-top:8px;display:flex;gap:6px;}
.empty{text-align:center;color:var(--sub);padding:40px 0;}
/* 详情 / 弹窗 */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;display:flex;
  align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;}
.box{background:var(--bg2);border:1px solid var(--line);border-radius:14px;width:560px;max-width:100%;
  padding:18px;box-shadow:0 12px 40px rgba(0,0,0,.4);}
.box h3{margin:0 0 12px;font-size:16px;}
.field{margin:8px 0;}
.field label{display:block;font-size:12px;color:var(--sub);margin-bottom:3px;}
.field input,.field select,.field textarea{width:100%;background:var(--bg);color:var(--txt);
  border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:13px;outline:none;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);}
.row{display:flex;gap:8px;flex-wrap:wrap;}
.row>*{flex:1;min-width:120px;}
.log{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px;}
.logitem{font-size:12.5px;color:var(--sub);padding:5px 0;border-bottom:1px dashed var(--line);}
.logitem b{color:var(--txt);}
.bar2{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.close{float:right;cursor:pointer;color:var(--sub);font-size:18px;}
.hint{font-size:12px;color:var(--sub);margin-top:6px;}
/* 配色切换器（右上角） */
.theme-switch{display:flex;gap:6px;align-items:center;background:var(--bg);border:1px solid var(--line);
  border-radius:999px;padding:4px 8px;}
.thdot{width:15px;height:15px;border-radius:50%;cursor:pointer;border:2px solid transparent;display:inline-block;}
.thdot[data-th="cool"]{background:#10131a;}
.thdot[data-th="soft"]{background:#f4f6fb;}
.thdot[data-th="blue"]{background:#0e1830;border-color:var(--blue);}
.thdot.on{border-color:var(--gold);}
/* F256：阶段 / 漏斗 / 费用 */
.tag.st{background:rgba(var(--gold-rgb),.16);border-color:var(--gold);color:var(--gold);}
.stagebar{display:flex;gap:3px;margin:6px 0;}
.stagebar i{flex:1;height:6px;border-radius:3px;background:var(--line);transition:.2s;}
.stagebar i.on{background:var(--gold);}
.stagename{font-size:12px;color:var(--sub);margin-left:6px;}
.gold-n{color:var(--gold);font-weight:700;}
.sub{font-size:12px;color:var(--sub);font-weight:400;margin-left:6px;}
.funnel{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;}
.fcol{flex:1;min-width:230px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;}
.fh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--line);}
.ft{font-weight:700;font-size:14px;}
.fc{font-size:12px;color:var(--sub);}
.flist{display:flex;flex-direction:column;gap:10px;}
.empty.sm{padding:14px 0;font-size:12px;}
.exp{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px;}
.expitem{font-size:12.5px;color:var(--sub);padding:5px 0;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.expitem b{color:var(--txt);}
/* F257：费用批量录入 + 批次小计 */
.expbatch{margin:6px 0;padding:7px 9px;background:var(--card);border:1px solid var(--line);border-radius:9px;}
.expbatch-h{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--sub);padding-bottom:5px;margin-bottom:5px;border-bottom:1px dashed var(--line);}
.expbatch-sub b{color:var(--gold);}
.exp-row{display:flex;align-items:center;gap:6px;margin:6px 0;}
.exp-row .exp-cat{width:88px;flex:none;background:var(--bg);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:7px 6px;font-size:13px;}
.exp-row .exp-pur{flex:1 1 auto;min-width:0;background:var(--bg);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:13px;}
.exp-row .exp-amt{width:100px;flex:none;background:var(--bg);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:13px;}
.exp-subtotal{margin-left:auto;font-size:13px;color:var(--sub);}
.exp-subtotal b{color:var(--gold);font-size:14px;}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;line-height:1.7;color:#fff;white-space:nowrap;}
.cat-travel{background:#3b82f6;}
.cat-meal{background:#ef4444;}
.cat-gift{background:#a855f7;}
.cat-other{background:#94a3b8;}
.cat-c1{background:#0ea5e9;}
.cat-c2{background:#f59e0b;}
.cat-c3{background:#10b981;}
.cat-c4{background:#ec4899;}
.cat-c5{background:#6366f1;}
.cat-c6{background:#14b8a6;}
.linktag{font-size:10.5px;color:var(--sub);border:1px solid var(--line);border-radius:8px;padding:0 6px;margin-left:2px;}
/* F258：客户台账（按最近联系倒序）+ 子页联系记录时间线 */
.ledger-note{font-size:12px;color:var(--sub);margin-bottom:10px;}
.ledger{display:flex;flex-direction:column;gap:10px;}
.lrow{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--card);
  border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;transition:.15s;}
.lrow:hover{border-color:var(--blue);}
.lmain{flex:1;min-width:0;}
.lname{font-size:15px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.lmeta{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--sub);}
.lcell{display:inline-flex;align-items:center;gap:5px;}
.lcell i{font-style:normal;color:var(--sub);font-size:11.5px;}
.lc-lt{color:var(--txt);font-weight:700;}
.muted{color:var(--sub);opacity:.7;}
.lright{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--sub);}
.box.wide{width:680px;}
.cinfo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 14px;margin-top:12px;
  background:var(--card);border:1px solid var(--line);border-radius:11px;padding:12px;}
.cinfo-full{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:10px;}
.cif label{display:block;font-size:11.5px;color:var(--sub);margin-bottom:2px;}
.cif>div{font-size:13px;color:var(--txt);}
@media(max-width:560px){ .cinfo-grid,.cinfo-full{grid-template-columns:1fr 1fr;} }
.clog-wrap{margin-top:8px;border:1px solid var(--line);border-radius:11px;overflow:hidden;}
.clog{border-bottom:1px solid var(--line);}
.clog:last-child{border-bottom:none;}
.clog-h{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer;transition:.15s;}
.clog-h:hover{background:var(--card);}
.cavatar{flex:none;width:32px;height:32px;border-radius:50%;background:var(--gold);color:#1b1500;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;}
.cbody{flex:1;min-width:0;}
.cmeta-line{font-size:12.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cname2{color:var(--txt);font-weight:600;}
.cnext{font-size:11px;color:var(--blue);border:1px solid var(--blue);border-radius:8px;padding:0 6px;}
.cpreview{font-size:13px;color:var(--sub);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cexpand{flex:none;color:var(--sub);font-size:13px;width:18px;text-align:center;transition:.15s;}
.clog-body{padding:0 12px 12px 54px;border-top:1px dashed var(--line);}
.clog-full{font-size:13px;color:var(--txt);white-space:pre-wrap;line-height:1.7;margin-top:8px;}
.clog-exp{font-size:12px;color:var(--sub);margin-top:8px;padding:7px 9px;background:var(--card);
  border:1px solid var(--line);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.clog-actions{margin-top:8px;}

/* F260：云同步状态条 + 登录弹窗 + 错误提示 */
.syncbar{display:none;align-items:center;justify-content:space-between;gap:12px;
  margin:0 0 10px;padding:8px 12px;background:var(--card);border:1px solid var(--line);
  border-radius:11px;font-size:12.5px;color:var(--sub);}
.syncbar .sb-txt b{color:var(--txt);}
@media(max-width:560px){ .syncbar{flex-direction:column;align-items:stretch;gap:6px;} }
.loginbox{width:300px;}
.hint.err{color:#ff6b6b;border:1px solid #ff6b6b44;background:#ff6b6b14;border-radius:8px;padding:7px 9px;margin-bottom:8px;}
