/* ── 客户页（易订客情）──  只作用于 #page-crm，其它页签的样式一概不动。
   设计取向：一本「订餐簿」——先人后数；本单备注 / 喜好 / 忌口用色块突出；电话一键拨。
   骨架沿用看板（楷体标题、蓝色强调、胶囊 chips、下划线页签），数字与电话用无衬线等宽数字保证清晰。 */
#page-crm{
  --c-ink:#1b1b1b;--c-ink2:#3b4252;--c-dim:#646b78;--c-faint:#7d8594;
  --c-line:#e6e8ee;--c-hair:#eff1f5;--c-soft:#f6f8fb;--c-canvas:#f4f5f7;
  --c-blue:var(--blue,#2f5bb7);--c-blue-bg:#eef3ff;
  --c-amber:#94560a;--c-amber-bg:#fff3dd;
  --c-green:#23804a;--c-green-bg:#e6f5ec;
  --c-red:#b83a32;--c-red-bg:#fdeeec;
  --c-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","HarmonyOS Sans SC","MiSans","Noto Sans SC","Microsoft YaHei",sans-serif;
  --c-top:48px;--c-pad:calc(54px + var(--tb-pad,0px) + env(safe-area-inset-bottom) + 12px);
  background:var(--c-canvas);min-height:calc(100vh - 48px);color:var(--c-ink);
  margin-bottom:calc(-1 * var(--c-pad));padding-bottom:var(--c-pad);   /* 灰底铺到底栏下面，盖住 .app 的白色留白；只作用于本页 */
}
#page-crm *{box-sizing:border-box}
#page-crm button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit;-webkit-tap-highlight-color:transparent}
#page-crm button:focus-visible,#page-crm a:focus-visible,#page-crm input:focus-visible{outline:2px solid var(--c-blue);outline-offset:2px;border-radius:6px}
#page-crm .num{font-family:var(--c-sans);font-variant-numeric:tabular-nums}

/* ── 吸顶：门店 + 视图 ── */
.crm-head{position:sticky;top:var(--c-top);z-index:4;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line,#e6e6e6)}
@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){.crm-head{background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}}
.crm-scroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.crm-scroll::-webkit-scrollbar{display:none}
.crm-stores{gap:5px;padding:8px 12px 2px}
#page-crm .crm-store{flex:1 0 auto;min-width:42px;padding:5px 0;border:1px solid #d5d5d5;border-radius:16px;font-size:13px;color:#333;background:#fff;text-align:center;white-space:nowrap;transition:background .18s,color .18s,border-color .18s}
#page-crm .crm-store.on{background:var(--c-blue);border-color:var(--c-blue);color:#fff}
#page-crm .crm-store.off{color:var(--c-faint);border-style:dashed}
#page-crm .crm-store.on.off{color:#fff;border-style:solid}
.crm-store small{font-family:var(--c-sans);font-size:10.5px;opacity:.7;font-variant-numeric:tabular-nums}
.crm-views{display:flex;gap:22px;padding:0 16px}
#page-crm .crm-view{position:relative;padding:8px 0 9px;font-size:14.5px;color:#333;white-space:nowrap}
#page-crm .crm-view.on{color:var(--c-blue);font-weight:600}
.crm-view.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px;background:var(--c-blue)}
.crm-view sup{font-family:var(--c-sans);font-size:10px;font-weight:600;color:var(--c-faint);margin-left:2px;vertical-align:6px;font-variant-numeric:tabular-nums}
.crm-view.on sup{color:var(--c-blue);opacity:.75}

/* ── 视图容器 ── */
.crm-body{padding-bottom:18px;animation:crm-in .22s cubic-bezier(.2,.7,.2,1) both}
@keyframes crm-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.crm-bar{display:flex;align-items:baseline;gap:8px;padding:14px 14px 8px}
.crm-title{font-size:18px;font-weight:600;letter-spacing:.01em;line-height:1.2}
.crm-title small{font-size:12.5px;font-weight:400;color:var(--c-dim);margin-left:8px}
.crm-fresh{margin-left:auto;flex:none;display:flex;align-items:center;gap:6px;font-family:var(--c-sans);font-size:11.5px;color:var(--c-faint);font-variant-numeric:tabular-nums}
.crm-fresh i{width:6px;height:6px;border-radius:50%;background:var(--c-green,#2f9e5a);flex:none}
.crm-fresh i.run{background:var(--c-blue);animation:crm-pulse 1.1s ease-in-out infinite}
.crm-fresh i.bad{background:var(--c-red)}
@keyframes crm-pulse{50%{opacity:.25;transform:scale(.7)}}
#page-crm .crm-re{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:12px;border:1px solid #d9dce3;background:#fff;color:var(--c-ink2);font-size:11.5px;transition:transform .12s,background .18s}
#page-crm .crm-re:active{transform:scale(.96);background:var(--c-soft)}
#page-crm .crm-re[disabled]{opacity:.55;cursor:default}
.crm-re svg{width:12px;height:12px}
.crm-note-line{margin:0 14px 8px;font-size:12px;line-height:1.6;color:var(--c-dim)}

/* ── 今日：午 / 晚两块大卡，既是汇总也是切换 ── */
.crm-meals{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 12px}
#page-crm .crm-meal{display:block;padding:11px 13px 10px;border-radius:12px;border:1.5px solid transparent;background:#fff;box-shadow:0 1px 2px rgba(23,43,77,.05);transition:border-color .18s,box-shadow .18s,transform .12s}
#page-crm .crm-meal:active{transform:scale(.985)}
#page-crm .crm-meal.on{border-color:var(--c-blue);box-shadow:0 6px 18px -8px rgba(47,91,183,.45)}
.crm-meal .t{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-dim)}
.crm-meal.on .t{color:var(--c-blue);font-weight:600}
.crm-meal .t em{margin-left:auto;font-style:normal;font-family:var(--c-sans);font-size:10.5px;font-weight:600;color:#fff;background:var(--c-blue);border-radius:3px;padding:0 5px;line-height:16px}
.crm-meal .n{display:flex;align-items:baseline;gap:10px;margin-top:4px;font-family:var(--c-sans);font-variant-numeric:tabular-nums;line-height:1.1}
.crm-meal .n b{font-size:26px;font-weight:700;letter-spacing:-.01em}
.crm-meal .n b small{font-size:12px;font-weight:500;color:var(--c-dim);margin-left:2px;letter-spacing:0}
.crm-meal .s{margin-top:6px;font-size:11.5px;color:var(--c-dim);font-family:var(--c-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── 筛选条：营销经理 / 客人类型 ── */
.crm-filters{padding:9px 0 0}
.crm-frow{display:flex;align-items:center;padding:2.5px 0 2.5px 14px}
.crm-frow>label{flex:none;width:34px;font-size:11.5px;color:var(--c-faint);font-family:var(--c-sans)}
.crm-frow .crm-scroll{flex:1;padding-right:14px}
#page-crm .crm-pill{flex:none;display:inline-flex;align-items:baseline;gap:4px;padding:4px 11px;border-radius:15px;border:1px solid #dcdfe6;background:#fff;font-size:12.5px;color:#333;white-space:nowrap;transition:background .18s,color .18s,border-color .18s}
#page-crm .crm-pill.on{background:var(--c-blue);border-color:var(--c-blue);color:#fff}
#page-crm .crm-pill:active{opacity:.75}
.crm-pill b{font-family:var(--c-sans);font-size:11px;font-weight:600;opacity:.62;font-variant-numeric:tabular-nums}
.crm-pill.on b{opacity:.85}
.crm-search{margin:8px 12px 2px;position:relative}
#page-crm .crm-search input{width:100%;height:36px;border:1px solid #dcdfe6;border-radius:18px;padding:0 14px 0 34px;font:inherit;font-size:13.5px;background:#fff;color:var(--c-ink);-webkit-appearance:none;appearance:none}
#page-crm .crm-search input::placeholder{color:var(--c-faint)}
.crm-search svg{position:absolute;left:12px;top:10px;width:16px;height:16px;color:var(--c-faint)}
.crm-seg{display:flex;margin:0 12px;padding:3px;border-radius:10px;background:#e9ecf1}
#page-crm .crm-seg button{flex:1;padding:6px 4px;border-radius:8px;font-size:12.5px;color:var(--c-ink2);text-align:center;white-space:nowrap;transition:background .18s,box-shadow .18s,color .18s}
#page-crm .crm-seg button.on{background:#fff;color:var(--c-blue);font-weight:600;box-shadow:0 1px 3px rgba(23,43,77,.12)}
.crm-seg b{font-family:var(--c-sans);font-size:11px;font-weight:600;opacity:.6;margin-left:3px;font-variant-numeric:tabular-nums}
.crm-sort{display:flex;align-items:center;gap:14px;padding:8px 16px 0;font-size:12px;color:var(--c-dim)}
#page-crm .crm-sort button{color:var(--c-dim);padding:2px 0}
#page-crm .crm-sort button.on{color:var(--c-blue);font-weight:600}
.crm-sort span{margin-left:auto;font-family:var(--c-sans);color:var(--c-faint);font-variant-numeric:tabular-nums}

/* ── 订餐簿：按到店时间分组 ── */
.crm-list{display:flex;flex-direction:column;gap:10px;padding:4px 12px 0}
.crm-slot{display:flex;align-items:center;gap:8px;margin:10px 2px -2px;font-family:var(--c-sans);font-size:11.5px;color:var(--c-dim)}
.crm-slot b{font-size:15px;font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.crm-slot::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#dfe3ea,rgba(223,227,234,0))}

/* ── 客人卡 ── */
.crm-card{position:relative;background:#fff;border-radius:14px;padding:13px 14px 0;box-shadow:0 1px 2px rgba(23,43,77,.06),0 0 0 1px rgba(23,43,77,.04);overflow:hidden}
.crm-card.key::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--c-blue)}
.crm-card.key.gold::before{background:#c98a1b}
.crm-c-top{display:flex;align-items:flex-start;gap:10px}
.crm-who{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.crm-name{margin:0;font-size:18px;font-weight:600;line-height:1.3;letter-spacing:.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-name small{font-size:12.5px;font-weight:400;color:var(--c-dim);margin-left:3px}
.crm-tag{flex:none;font-family:var(--c-sans);font-size:10.5px;font-weight:600;line-height:17px;padding:0 5px;border-radius:4px;white-space:nowrap}
.crm-tag.reg{color:#fff;background:var(--c-blue)}
.crm-tag.ret{color:var(--c-blue);background:var(--c-blue-bg)}
.crm-tag.new{color:var(--c-green);background:var(--c-green-bg)}
.crm-tag.vip{color:var(--c-amber);background:var(--c-amber-bg)}
.crm-tag.back{color:var(--c-red);background:var(--c-red-bg)}
.crm-tag.bday{color:#a3327a;background:#fbeaf4}
.crm-tag.walk{color:#6b7280;background:#eef0f3}
.crm-seat{flex:none;max-width:46%;text-align:right;font-family:var(--c-sans);line-height:1.3}
.crm-seat b{display:block;font-size:14px;font-weight:600;color:var(--c-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-seat span{display:block;font-size:11.5px;color:var(--c-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:7px;font-family:var(--c-sans);font-size:12px;color:var(--c-dim)}
.crm-st{display:inline-flex;align-items:center;gap:5px;font-weight:500;color:var(--c-ink2)}
.crm-st::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--c-blue);background:#fff;flex:none}
.crm-st.s2::before{background:var(--c-green);border-color:var(--c-green)}
.crm-st.s3{color:var(--c-dim)}
.crm-st.s3::before{background:#c3c8d1;border-color:#c3c8d1}
.crm-st b{font-weight:600;color:var(--c-ink);font-variant-numeric:tabular-nums}
.crm-by{margin-left:auto;display:inline-flex;align-items:center;gap:4px;color:var(--c-blue);font-weight:500}
.crm-by svg{width:12px;height:12px;opacity:.8}

.crm-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:11px;padding:9px 0 8px;border-radius:10px;background:var(--c-soft)}
.crm-stats>div{padding:0 10px;border-left:1px solid #e3e7ee;min-width:0}
.crm-stats>div:first-child{border-left:0}
.crm-stats b{display:block;font-family:var(--c-sans);font-size:16.5px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.25;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-stats b small{font-size:11.5px;font-weight:500;color:var(--c-dim);margin-left:1px;letter-spacing:0}
.crm-stats span{display:block;font-size:11px;color:var(--c-dim);margin-top:1px;white-space:nowrap}
.crm-first{margin-top:8px;font-size:12.5px;color:var(--c-dim);line-height:1.5}
.crm-last{margin-top:9px;font-family:var(--c-sans);font-size:12.5px;color:var(--c-ink2)}
.crm-last .l{display:flex;align-items:baseline;gap:8px;padding:2.5px 0}
.crm-last .d{flex:none;min-width:64px;white-space:nowrap;color:var(--c-dim);font-variant-numeric:tabular-nums}
.crm-last .d em{font-style:normal;color:var(--c-faint);margin-right:4px;font-size:11px}
.crm-last .w{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-last .a{flex:none;font-weight:600;color:var(--c-ink);font-variant-numeric:tabular-nums}

.crm-notes{display:flex;flex-direction:column;gap:5px;margin-top:10px}
#page-crm .crm-note{display:flex;align-items:flex-start;gap:8px;width:100%;padding:7px 9px;border-radius:8px;background:var(--c-soft);font-size:13px;line-height:1.6;color:var(--c-ink);text-align:left}
.crm-note i{flex:none;font-style:normal;font-family:var(--c-sans);font-size:10.5px;font-weight:700;line-height:18px;padding:0 6px;border-radius:4px;margin-top:1.5px;background:#e8ebf0;color:#566073}
.crm-note .tx{flex:1;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word}
.crm-note.open .tx{-webkit-line-clamp:unset;line-clamp:unset;display:block}
.crm-note .tx em{font-style:normal;color:var(--c-dim);font-size:12px;margin-right:3px}
.crm-note.order{background:var(--c-blue-bg)}.crm-note.order i{background:var(--c-blue);color:#fff}
.crm-note.like i{background:var(--c-green-bg);color:var(--c-green)}
.crm-note.avoid{background:var(--c-red-bg)}.crm-note.avoid i{background:var(--c-red);color:#fff}
.crm-chips{display:flex;flex-wrap:wrap;gap:5px;padding-top:1px}
.crm-chips span,#page-crm .crm-chips button{font-size:12px;line-height:1.5;padding:2px 8px;border-radius:6px;background:#fff;border:1px solid #e1e4ea;color:var(--c-ink2)}
#page-crm .crm-chips button{color:var(--c-blue);border-style:dashed}

.crm-foot{display:flex;align-items:center;gap:10px;margin-top:10px;min-height:42px;border-top:1px solid var(--c-hair);font-family:var(--c-sans)}
.crm-tel{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;height:42px;color:var(--c-blue);font-size:14.5px;font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums;letter-spacing:.01em;-webkit-tap-highlight-color:transparent}
.crm-tel:active{opacity:.6}
.crm-tel svg{width:15px;height:15px;flex:none}
.crm-tel.none{color:var(--c-faint);font-weight:400;font-size:12.5px}
.crm-co{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:12px;color:var(--c-dim)}
.crm-co span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-co svg{width:12px;height:12px;flex:none;opacity:.7}

/* ── 榜单 / 休眠：紧凑排名行，点开看详情 ── */
.crm-hero{margin:0 12px 10px;padding:13px 14px 12px;border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(23,43,77,.06),0 0 0 1px rgba(23,43,77,.04)}
.crm-hero .k{font-size:12px;color:var(--c-dim)}
.crm-hero .v{display:flex;align-items:baseline;gap:14px;margin-top:3px;font-family:var(--c-sans);font-variant-numeric:tabular-nums}
.crm-hero .v b{font-size:26px;font-weight:700;letter-spacing:-.01em;line-height:1.15}
.crm-hero .v b small{font-size:12px;font-weight:500;color:var(--c-dim);margin-left:3px;letter-spacing:0}
.crm-hero .v b.red{color:var(--c-red)}
.crm-hero p{margin:7px 0 0;font-size:12px;line-height:1.6;color:var(--c-dim)}
.crm-rank{margin:10px 12px 0;border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(23,43,77,.06),0 0 0 1px rgba(23,43,77,.04);overflow:hidden}
.crm-row{border-top:1px solid var(--c-hair)}
.crm-row:first-child{border-top:0}
#page-crm .crm-row>button{display:block;width:100%;padding:11px 14px 10px;transition:background .15s}
#page-crm .crm-row>button:active{background:var(--c-soft)}
.crm-row .r1{display:flex;align-items:center;gap:7px}
.crm-no{flex:none;width:22px;height:22px;border-radius:50%;font-family:var(--c-sans);font-size:11.5px;font-weight:700;line-height:22px;text-align:center;color:#7a8290;background:#f0f2f5;font-variant-numeric:tabular-nums}
.crm-no.t{color:#fff;background:var(--c-blue)}
.crm-row .nm{min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-row .nm small{font-size:12px;font-weight:400;color:var(--c-dim);margin-left:2px}
.crm-row .val{margin-left:auto;flex:none;font-family:var(--c-sans);font-size:15.5px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.crm-row .val small{font-size:11.5px;font-weight:500;color:var(--c-dim);margin-left:1px}
.crm-row .val.red{color:var(--c-red)}
.crm-row .r2{display:flex;align-items:center;gap:0;margin:4px 0 0 29px;font-family:var(--c-sans);font-size:12px;color:var(--c-dim);white-space:nowrap;overflow:hidden}
.crm-row .r2 span+span::before{content:"·";margin:0 6px;color:#c3c8d1}
.crm-row .r2 .by{color:var(--c-blue)}
.crm-row .r2 .co{overflow:hidden;text-overflow:ellipsis}
.crm-row .r2 .chev{margin-left:auto;padding-left:8px;flex:none;color:#b8bec9;transition:transform .2s}
.crm-row .r2 .chev::before{display:none}
.crm-row .r2 .chev svg{width:14px;height:14px;display:block}
.crm-row.open .r2 .chev{transform:rotate(180deg)}
.crm-row .bar{display:block;height:3px;margin:8px 0 0 29px;border-radius:2px;background:#eef1f6;overflow:hidden}
.crm-row.flat .r2,.crm-row.flat .bar{margin-left:0}.crm-row.flat .crm-more{padding-left:14px}
.crm-row .bar i{display:block;height:100%;border-radius:2px;background:var(--c-blue);opacity:.5}
.crm-more{display:none;padding:0 14px 4px 43px;animation:crm-in .2s ease both}
.crm-row.open .crm-more{display:block}
.crm-more .crm-stats{margin-top:2px}
#page-crm .crm-morebtn{display:block;width:calc(100% - 24px);margin:12px 12px 0;padding:11px;border-radius:12px;border:1px dashed #cfd4dd;color:var(--c-blue);font-size:13px;text-align:center;background:rgba(255,255,255,.6)}
#page-crm .crm-morebtn:active{background:#fff}

/* ── 生日 ── */
.crm-bd{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--c-hair)}
.crm-bd:first-child{border-top:0}
.crm-bd .dt{flex:none;width:50px;padding:5px 0 4px;border-radius:10px;background:var(--c-soft);text-align:center;font-family:var(--c-sans);line-height:1.15}
.crm-bd .dt b{display:block;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.crm-bd .dt span{font-size:10.5px;color:var(--c-dim)}
.crm-bd.soon .dt{background:#fbeaf4}.crm-bd.soon .dt b{color:#a3327a}
.crm-bd .bi{flex:1;min-width:0}
.crm-bd .bi .n{font-size:16px;font-weight:600}
.crm-bd .bi .n small{font-size:12px;font-weight:400;color:var(--c-dim);margin-left:4px}
.crm-bd .bi .m{margin-top:2px;font-family:var(--c-sans);font-size:12px;color:var(--c-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-bd .dl{flex:none;font-family:var(--c-sans);font-size:12px;color:var(--c-dim);font-variant-numeric:tabular-nums}
.crm-bd.soon .dl{color:#a3327a;font-weight:600}
.crm-bd a{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--c-blue-bg);color:var(--c-blue)}
.crm-bd a svg{width:15px;height:15px}

/* ── 概况 ── */
.crm-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 12px}
.crm-tile{padding:12px 13px 11px;border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(23,43,77,.06),0 0 0 1px rgba(23,43,77,.04)}
.crm-tile b{display:block;font-family:var(--c-sans);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.2}
.crm-tile b small{font-size:12px;font-weight:500;color:var(--c-dim);margin-left:2px;letter-spacing:0}
.crm-tile span{display:block;margin-top:2px;font-size:12.5px;color:var(--c-ink2)}
.crm-tile em{display:block;margin-top:3px;font-style:normal;font-family:var(--c-sans);font-size:11px;color:var(--c-faint);line-height:1.45}
.crm-tile.warn b{color:var(--c-amber)}
.crm-tile.warn em{color:var(--c-amber);opacity:.85}
.crm-sec{margin:16px 12px 0}
.crm-sec h4{display:flex;align-items:baseline;gap:8px;margin:0 2px 8px;font-size:15px;font-weight:600}
.crm-sec h4 small{font-size:12px;font-weight:400;color:var(--c-dim)}
.crm-tbl{border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(23,43,77,.06),0 0 0 1px rgba(23,43,77,.04);overflow-x:auto;-webkit-overflow-scrolling:touch}
.crm-tbl table{width:100%;border-collapse:collapse;font-family:var(--c-sans);font-size:12.5px;font-variant-numeric:tabular-nums}
.crm-tbl th,.crm-tbl td{padding:9px 8px;text-align:right;white-space:nowrap;border-top:1px solid var(--c-hair)}
.crm-tbl thead th{border-top:0;font-size:11.5px;font-weight:500;color:var(--c-dim);background:#fafbfc}
.crm-tbl th:first-child,.crm-tbl td:first-child{text-align:left;padding-left:14px}
.crm-tbl th:last-child,.crm-tbl td:last-child{padding-right:14px}
.crm-tbl td:first-child{font-weight:600;color:var(--c-ink);font-family:inherit}
.crm-tbl td.g{color:var(--c-green)}.crm-tbl td.r{color:var(--c-red)}.crm-tbl td.m{color:var(--c-dim)}
.crm-tbl tr.tot td{font-weight:700;background:#fafbfc}
.crm-tbl .mb{display:block;height:3px;margin-top:4px;border-radius:2px;background:#eef1f6;overflow:hidden}
.crm-tbl .mb i{display:block;height:100%;background:var(--c-blue);opacity:.5;border-radius:2px}

/* ── 菜品：爱点 + 每次点了什么（贵德账单）──
   菜名跟备注一样用楷体，数量 / 次数用等宽数字；套餐、酒水、赠送都带字，不靠颜色认 */
#page-crm{--c-kai:"Kaiti SC","STKaiti","KaiTi","楷体","FZKai-Z03","AR PL UKai CN",-apple-system,"PingFang SC",sans-serif}
#page-crm .crm-fav{margin-top:10px;padding:0 1px;font-family:var(--c-kai);font-size:14px;line-height:23px;color:var(--c-ink)}
#page-crm .crm-fav>div{display:flex;align-items:center;gap:7px;margin-bottom:1px}
#page-crm .crm-fav i{flex:none;font-style:normal;font-family:var(--c-sans);font-size:10.5px;font-weight:700;line-height:18px;padding:0 6px;border-radius:4px;background:var(--c-amber-bg);color:var(--c-amber)}
#page-crm .crm-fav small{min-width:0;font-family:var(--c-sans);font-size:11px;color:var(--c-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-crm .crm-fav p{position:relative;display:flex;flex-wrap:wrap;gap:0 12px;margin:0;padding-left:32px}
#page-crm .crm-fav p em{position:absolute;left:0;top:0;font-style:normal;font-family:var(--c-sans);font-size:11px;color:var(--c-dim)}
#page-crm .crm-fav p>span{display:inline-flex;align-items:baseline;min-width:0;max-width:100%;font-weight:600;white-space:nowrap}   /* 菜名太长只截菜名，后面的次数任何宽度下都在 */
#page-crm .crm-fav .crm-fn{min-width:0;overflow:hidden;text-overflow:ellipsis}
#page-crm .crm-fav p b{flex:none;margin-left:3px;font-family:var(--c-sans);font-size:11.5px;font-weight:600;color:var(--c-amber);font-variant-numeric:tabular-nums}
#page-crm .crm-more .crm-fav{margin-top:9px}
#page-crm .crm-dw{margin:0 0 5px 3px;padding-left:10px;border-left:2px solid var(--c-line)}
#page-crm .crm-dl{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 15px;max-height:66px;overflow:hidden}   /* 22px 一行，最多三行；左边裁掉每行开头那个分隔点 */
#page-crm .crm-dl.open{max-height:none}
#page-crm .crm-dl.has,#page-crm .crm-dl.open{cursor:pointer}
#page-crm .crm-d{position:relative;display:inline-flex;align-items:baseline;gap:3px;min-width:0;max-width:100%;font-family:var(--c-kai);font-size:13.5px;line-height:22px;color:var(--c-ink2)}
#page-crm .crm-d[hidden],#page-crm .crm-dm[hidden]{display:none}
#page-crm .crm-d::before{content:"";position:absolute;left:-9px;top:10px;width:3px;height:3px;border-radius:50%;background:#cbd0d9}
#page-crm .crm-d>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-crm .crm-dl.open .crm-d>span{white-space:normal;word-break:break-word}
#page-crm .crm-d small{flex:none;font-family:var(--c-sans);font-size:11px;color:var(--c-dim);font-variant-numeric:tabular-nums}
#page-crm .crm-d i{flex:none;align-self:center;font-style:normal;font-family:var(--c-sans);font-size:10px;font-weight:600;line-height:15px;padding:0 4px;border-radius:3px;color:var(--c-blue);background:var(--c-blue-bg)}
#page-crm .crm-d i.w{color:var(--c-amber);background:var(--c-amber-bg)}
#page-crm .crm-d i.g{color:var(--c-dim);background:none;box-shadow:inset 0 0 0 1px #d3d8e0}
#page-crm .crm-d.p{font-weight:600;color:var(--c-ink)}
#page-crm .crm-d.g{color:var(--c-dim)}
#page-crm .crm-dm{flex:none;font-family:var(--c-sans);font-size:11.5px;line-height:22px;color:var(--c-blue);white-space:nowrap}
#page-crm .crm-dt{display:none;flex:0 0 100%;font-family:var(--c-sans);font-size:11.5px;line-height:20px;color:var(--c-faint);font-variant-numeric:tabular-nums}
#page-crm .crm-dl.open .crm-dt{display:block}
#page-crm .crm-dt.bad{color:var(--c-red)}
#page-crm .crm-dt button{margin-left:8px;padding:1px 9px;border-radius:11px;border:1px solid currentColor;color:var(--c-blue);font-size:11.5px;line-height:18px;white-space:nowrap}
#page-crm .crm-dsk{display:flex;flex-direction:column;gap:7px;margin-top:11px}
#page-crm .crm-dsk .crm-sk{height:13px;border-radius:6px}
#page-crm .crm-dtip{margin:8px 0 0;font-family:var(--c-sans);font-size:12px;line-height:1.6;color:var(--c-dim)}
#page-crm .crm-dtip.bad{color:var(--c-red)}
#page-crm .crm-dtip button{margin-left:8px;padding:1px 9px;border-radius:11px;border:1px solid currentColor;color:var(--c-blue);font-size:11.5px;white-space:nowrap}
#page-crm .crm-tile.crm-wide{grid-column:1/-1}

/* ── 空 / 错 / 载入 ── */
.crm-empty{margin:14px 12px 0;padding:26px 20px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px rgba(23,43,77,.04);text-align:center}
.crm-empty svg{width:34px;height:34px;color:#c3c8d1}
.crm-empty h5{margin:8px 0 4px;font-size:15px;font-weight:600}
.crm-empty p{margin:0;font-size:12.5px;line-height:1.7;color:var(--c-dim)}
#page-crm .crm-empty button{margin-top:12px;padding:7px 18px;border-radius:16px;border:1px solid var(--c-blue);color:var(--c-blue);font-size:13px}
.crm-sk{border-radius:12px;background:linear-gradient(90deg,#eceef2 25%,#e3e6eb 37%,#eceef2 63%);background-size:400% 100%;animation:crm-sh 1.3s ease infinite}
@keyframes crm-sh{0%{background-position:100% 50%}100%{background-position:0 50%}}
.crm-foot-note{margin:18px 16px 0;font-size:11.5px;line-height:1.75;color:var(--c-faint);text-align:center}

@media (max-width:359px){.crm-name{font-size:17px}.crm-stats b{font-size:15px}.crm-meal .n b{font-size:23px}.crm-views{gap:18px}}
@media (prefers-reduced-motion:reduce){.crm-body,.crm-more{animation:none}#page-crm *{transition:none!important}.crm-sk,.crm-fresh i.run{animation:none}}

/* ── 补录客情 / 分给主管（2026-10-20 分级权限）── */
.crm-note.ours{background:#f3f0ff}.crm-note.ours i{background:#ebe5ff;color:#5b45b8}
.crm-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 0 10px;border-top:1px dashed var(--c-hair);font-family:var(--c-sans)}
.crm-card .crm-tools{margin:0 -14px;padding:8px 14px 10px;background:var(--c-soft)}
#page-crm .crm-tools button{padding:4px 11px;border-radius:13px;border:1px solid #d9dce3;background:#fff;font-size:12.5px;color:var(--c-ink2);transition:transform .12s,background .18s}
#page-crm .crm-tools button:active{transform:scale(.96);background:var(--c-soft)}
.crm-own{display:inline-flex;align-items:center;gap:4px;margin-right:auto;font-size:12.5px;color:var(--c-blue);min-width:0}
.crm-own svg{width:13px;height:13px;flex:none}.crm-own small{color:var(--c-faint);font-size:11px;margin-left:4px}
.crm-tarea:empty{display:none}
.crm-card .crm-tarea{margin:0 -14px;padding:0 14px 12px;background:var(--c-soft)}
.crm-xf{display:flex;flex-direction:column;gap:8px;padding:10px 0 4px;font-family:var(--c-sans);font-size:13px}
.crm-xh{font-weight:600;color:var(--c-ink2)}.crm-xh small{font-weight:400;color:var(--c-faint);margin-left:6px;font-size:11.5px}
.crm-xd{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.9fr);gap:6px}
#page-crm .crm-xf input,#page-crm .crm-xf select,#page-crm .crm-xf textarea{width:100%;min-width:0;font:inherit;font-size:14px;padding:7px 8px;border:1px solid #d5d9e0;border-radius:8px;background:#fff;color:var(--c-ink);-webkit-appearance:none;appearance:none}
#page-crm .crm-xf select{background-image:linear-gradient(45deg,transparent 50%,#8a91a0 50%),linear-gradient(135deg,#8a91a0 50%,transparent 50%);background-position:calc(100% - 13px) 50%,calc(100% - 9px) 50%;background-size:4px 4px;background-repeat:no-repeat;padding-right:22px}
#page-crm .crm-xf textarea{resize:vertical;line-height:1.5}
#page-crm .crm-xadd{align-self:flex-start;color:var(--c-blue);font-size:12.5px;padding:2px 0}
.crm-xl{display:flex;flex-direction:column;gap:4px}.crm-xl span{font-weight:600;color:var(--c-ink2)}
.crm-xb{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#page-crm .crm-xb button{padding:6px 14px;border-radius:15px;border:1px solid #d9dce3;background:#fff;font-size:13px}
#page-crm .crm-xb .crm-xok{background:var(--c-blue);border-color:var(--c-blue);color:#fff;font-weight:600}
#page-crm .crm-xb button[disabled]{opacity:.55}
.crm-xm{font-size:12px;color:var(--c-dim)}.crm-xm.bad{color:var(--c-red)}
.crm-ys{margin:1px 2px 0;font-family:var(--c-sans);font-size:11.5px;line-height:1.5;color:var(--c-faint)}.crm-ys.warn{color:var(--c-amber)}.crm-ys.bad{color:var(--c-red)}
.crm-xby{margin:0;font-size:11.5px;color:var(--c-faint);line-height:1.6}
