/* crm-asset-bundle */
/* tokens.css */
/* 客情维护 CRM Design Tokens（方向 A：精炼靛蓝）
   主色沿用现有 #4F46E5。组件禁止再写离散色值和常规字号。 */
:root{
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",sans-serif;
  --fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--fs-num:28px;
  --lh:1.5;--lh-t:1.3;--fw-r:400;--fw-m:500;--fw-s:600;--fw-b:700;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;
  --r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:999px;
  --h-ctl:36px;--h-sm:32px;--h-lg:44px;--h-md:36px;--th-h:40px;--td-py:12px;--td-px:12px;
  --p:#4F46E5;--p-h:#4338CA;--p2:#6366F1;--pl:#EEF2FF;--pb:#C7D2FE;--pd:#3730A3;
  --bg:#F5F6FA;--card:#FFFFFF;--tx:#0F172A;--tx2:#334155;--mu:#64748B;--mu2:#94A3B8;
  --bd:#E5E7EB;--bd2:#F1F5F9;--fill:#F8FAFC;--fill2:#F1F5F9;
  --ok:#15803D;--okl:#DCFCE7;--wn:#B45309;--wnl:#FEF3C7;--er:#DC2626;--erl:#FEE2E2;
  --sh:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.06);
  --sh-lg:0 16px 40px rgba(15,23,42,.16);
  --side-w:220px;--side-collapsed:64px;--content-max:1600px;--gap:var(--s4);
  --danger:var(--er);--warn:var(--wn);--muted:var(--mu);--border:var(--bd);
  --line:var(--bd);--text:var(--tx2);--primary:var(--p);--r:var(--r-md);
  --focus:0 0 0 3px rgba(99,102,241,.28);
}


/* payment-costs.css */
.pc-fields{margin:18px 0;border:1px solid #d8ddea;border-radius:12px;padding:16px;min-width:0}.pc-fields legend{padding:0 6px;font-weight:600}.pc-fields .pc-opening{display:flex;align-items:center;gap:8px;margin-top:16px}.pc-fields input[type=checkbox]{width:auto}.pc-fields [hidden]{display:none!important}.pc-fields .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-fields input,.pc-fields select{min-width:0;max-width:100%}.pc-fields .field{min-width:0}@media(max-width:480px){.pc-fields{padding:12px}.pc-fields .grid{grid-template-columns:minmax(0,1fr)}}


/* service-order-form.css */
/* Service choices grow independently of the legacy three-column segments. */
#orderForm #bizSeg,#orderForm #seg{display:inline-flex;flex-wrap:nowrap;width:auto;max-width:100%;height:auto;min-height:var(--h-ctl);overflow-x:auto;vertical-align:top}
#orderForm #bizSeg button,#orderForm #seg button{flex:0 0 auto;min-width:86px;height:var(--h-ctl);padding:0 var(--s3);white-space:nowrap}
@media(max-width:600px){
 #orderForm #bizSeg,#orderForm #seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;overflow-x:visible}
 #orderForm #bizSeg button,#orderForm #seg button{min-width:0}
}
/* 录单就地新建：下拉末尾「＋ 新建…」与小弹层 */
#orderForm option.inline-create-opt{color:var(--p)}
.inline-create .modal-b{display:grid;gap:var(--s3)}
.inline-create .seg{display:inline-flex}
.inline-create .seg button:disabled{opacity:.45;cursor:not-allowed}


/* style.css */
/* Design Tokens 见 tokens.css（方向 A：精炼靛蓝）。本文件只写组件规则。 */
*{box-sizing:border-box}html,body{margin:0}
body{font-family:var(--font);font-size:var(--fs-md);line-height:var(--lh);background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;line-height:var(--lh-t);font-weight:var(--fw-s)}p{margin:0}
.hidden,[hidden]{display:none!important}a{cursor:pointer;text-decoration:none;color:inherit}a.u{text-decoration:underline}
.muted{color:var(--mu);font-size:var(--fs-sm)}.sub{color:var(--mu);font-size:var(--fs-xs)}
.row{display:flex;gap:var(--s3);align-items:center}.row.sb{justify-content:space-between}.row.end{justify-content:flex-end}
.num,.money,.sv{font-variant-numeric:tabular-nums}
.ell{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* controls */
input,select,textarea{font:inherit;font-size:var(--fs-md);color:inherit;width:100%;height:var(--h-ctl);padding:0 var(--s3);border:1px solid var(--bd);border-radius:var(--r-md);background:#fff;outline:none;transition:.15s}
textarea{height:auto;padding:var(--s2) var(--s3);resize:vertical;line-height:var(--lh)}
input:focus,select:focus,textarea:focus,.btn:focus-visible{border-color:var(--p2);box-shadow:var(--focus)}
input[type=checkbox]{width:16px;height:16px;flex:none;padding:0;accent-color:var(--p);cursor:pointer}
.btn{height:var(--h-ctl);padding:0 var(--s4);border:1px solid var(--bd);background:#fff;border-radius:var(--r-md);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-m);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);transition:.15s;color:var(--tx)}
.btn:hover{background:var(--fill)}.btn.primary{background:var(--p);border-color:var(--p);color:#fff}.btn.primary:hover{background:var(--p-h)}.btn.ghost{border-color:transparent;background:none;color:var(--tx2)}
.btn.sm{height:var(--h-sm);padding:0 var(--s3);font-size:var(--fs-sm)}.btn.lg{height:var(--h-lg);font-size:var(--fs-lg)}.btn.block{width:100%}
.btn.danger{color:var(--er);border-color:#fecaca}.btn.danger:hover{background:var(--erl)}.btn.danger-fill{background:var(--er);border-color:var(--er);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}
.lnk{background:none;border:0;color:var(--p);cursor:pointer;font:inherit;font-size:var(--fs-md);padding:2px var(--s1);border-radius:var(--r-sm);white-space:nowrap}.lnk:hover{background:var(--pl)}.lnk.del{color:var(--er)}.lnk.del:hover{background:var(--erl)}
.brand{display:flex;align-items:center;gap:var(--s3);font-weight:var(--fw-b);font-size:var(--fs-lg)}
.logo{width:32px;height:32px;border-radius:var(--r-md);background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:grid;place-items:center;font-size:var(--fs-lg)}
/* login */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login-side{background:linear-gradient(150deg,#4338ca,#6366f1 55%,#8b5cf6);color:#fff;padding:var(--s12);display:flex;flex-direction:column;justify-content:center;align-items:center}
.brand.big{font-size:var(--fs-2xl);gap:var(--s4)}.brand.big .logo{width:48px;height:48px;font-size:var(--fs-2xl);border-radius:var(--r-lg)}.login-side .logo{background:#ffffff26}
.login-main{display:grid;place-items:center;padding:var(--s6)}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:var(--s4)}.login-card h2{font-size:var(--fs-2xl)}.mobile-only{display:none}
/* layout */
.layout{display:flex;min-height:100vh}
.sidebar{width:var(--side-w);flex:none;background:var(--card);border-right:1px solid var(--bd);display:flex;flex-direction:column;padding:var(--s4) var(--s3)}
.sidebar .brand{padding:0 var(--s2) var(--s4);font-size:15px;font-weight:var(--fw-s);letter-spacing:0}.sidebar .logo{width:28px;height:28px;border-radius:var(--r-md);font-size:13px;background:var(--p)}.sidebar>*{position:sticky;top:var(--s4)}.sidebar nav{top:72px;display:grid;gap:2px}
.sidebar nav a{display:flex;gap:var(--s3);align-items:center;height:40px;padding:0 var(--s3);border-radius:var(--r-md);color:var(--tx2);font-weight:var(--fw-m);font-size:var(--fs-md)}
.sidebar nav a .nav-ic,.tabbar a .nav-ic,.more-list .nav-ic{width:20px;height:20px;flex:none;display:block}.sidebar nav a:hover{background:var(--fill2);color:var(--tx)}.sidebar nav a.on{background:var(--pl);color:var(--p);font-weight:var(--fw-s)}.sidebar nav a:focus-visible,.tabbar a:focus-visible,.more-list a:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.main{flex:1;min-width:0}
.topbar{position:sticky;top:0;z-index:10;height:56px;background:var(--card);backdrop-filter:none;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;padding:0 var(--s6);gap:var(--s3)}
.topbar .page-head{min-width:0;display:flex;flex-direction:column;gap:2px;justify-content:center}
.topbar .crumb-row{display:flex;align-items:baseline;gap:var(--s2);min-width:0}
.topbar .crumb-root{font-size:var(--fs-xs);color:var(--mu);font-weight:var(--fw-m);white-space:nowrap}
.topbar .crumb-sep{color:var(--mu2);font-size:var(--fs-xs)}
.topbar h1,.topbar .page-title{font-size:var(--fs-lg);font-weight:var(--fw-s);line-height:1.3;color:var(--tx);letter-spacing:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .page-meta,#today,.crumb{color:var(--mu);font-size:var(--fs-xs);line-height:1.3}
.user{display:flex;align-items:center;gap:var(--s2);padding-left:var(--s3);border-left:1px solid var(--bd);font-size:var(--fs-md)}
.pending-bell{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border:1px solid var(--bd);border-radius:var(--r-md);background:#fff;color:var(--tx);font:inherit;font-size:var(--fs-sm);cursor:pointer;position:relative;flex:none}
.pending-bell[hidden]{display:none!important}
.pending-bell-icon{width:18px;height:18px;display:block;flex:none}
.pending-bell.is-pending .pending-bell-icon{animation:pending-bell-shake 2.4s ease-in-out infinite;transform-origin:top center}
@keyframes pending-bell-shake{0%,14%,100%{transform:rotate(0deg)}2%{transform:rotate(14deg)}4%{transform:rotate(-12deg)}6%{transform:rotate(9deg)}8%{transform:rotate(-6deg)}10%{transform:rotate(3deg)}12%{transform:rotate(-1deg)}}
@media(prefers-reduced-motion:reduce){.pending-bell.is-pending .pending-bell-icon{animation:none}}
.pending-bell-count{color:var(--p);font-weight:var(--fw-s);font-variant-numeric:tabular-nums}
.pending-bell-badge{display:none;position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 var(--s1);border-radius:var(--r-full);background:var(--er);color:#fff;font-size:var(--fs-xs);line-height:18px;text-align:center}
@media(max-width:760px){.pending-bell{width:36px;height:36px;min-height:36px;padding:0;justify-content:center}.pending-bell-badge:not([hidden]){display:inline-block}}
.avatar{width:32px;height:32px;border-radius:50%;border:0;padding:0;cursor:pointer;background:var(--pl);color:var(--p);display:grid;place-items:center;font-weight:var(--fw-b);font-size:var(--fs-sm)}
.content{padding:var(--s6);width:100%;max-width:var(--content-max);margin:0 auto}.tabbar{display:none}
section>.panel+.panel,section>.panel+.stats,section>.stats+.panel{margin-top:var(--gap)}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin-bottom:var(--gap)}
.stat{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh);padding:var(--s5);display:flex;gap:var(--s4);align-items:center;min-width:0}
.si{width:44px;height:44px;border-radius:var(--r-lg);display:grid;place-items:center;font-size:var(--fs-xl);font-weight:var(--fw-b);flex:none}
.si.blue{background:var(--pl);color:var(--p)}.si.green{background:var(--okl);color:var(--ok)}.si.orange{background:var(--wnl);color:var(--wn)}.si.red{background:var(--erl);color:var(--er)}
.sl{color:var(--mu);font-size:var(--fs-sm)}.sl small{font-size:var(--fs-xs)}.sv{font-size:var(--fs-num);font-weight:var(--fw-b);line-height:var(--lh-t);white-space:nowrap}
.stat .sd{font-size:var(--fs-xs);color:var(--mu);margin-top:2px}.stat .sd .lnk,.dashboard-gap .lnk{white-space:normal;text-align:left;padding:0}.sv.neg{color:var(--er)}.sv.pos{color:var(--ok)}
.stat.link{cursor:pointer;transition:.15s;border:1px solid transparent}.stat.link:hover{border-color:var(--pb);transform:translateY(-1px)}
.stats7 .stat{padding:var(--s4)}.stats7 .sv{font-size:var(--fs-2xl)}
/* panel */
.panel{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh);padding:var(--s5);min-width:0}.panel.narrow{max-width:640px}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4);min-height:var(--h-ctl)}.panel-h.wrap{flex-wrap:wrap}
.panel-h h3{font-size:var(--fs-lg);display:flex;align-items:center;gap:var(--s2)}
.count{background:var(--fill2);color:var(--mu);font-size:var(--fs-xs);line-height:20px;padding:0 var(--s2);border-radius:var(--r-full);font-weight:var(--fw-m)}
.search input{padding-left:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 3 3'/%3E%3C/svg%3E") no-repeat 11px center}
/* filters / bulk */
.filter-more{display:none}
.filter-fold:not(.filters-open)>:not(.filter-primary):not(.filter-actions):not([data-a=reset]):not([data-source-reset]):not(.filter-more){display:none}
.filter-fold .filter-more{display:inline-flex}
.filter-fold:not(.filters-open) .filter-expanded-only{display:none}
@media(max-width:600px){.filter-fold .fi{min-width:0}.filter-fold .fi input{max-width:100%}.rp-filter .rng{display:none!important}.rp-filter:has(.filters-open) .rng{display:flex!important}}

.filters{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);align-items:flex-end;margin-bottom:var(--s4)}
.fi{display:flex;flex-direction:column;gap:var(--s1);font-size:var(--fs-xs);color:var(--mu);line-height:var(--lh)}
.fi>span,.fi .fi-head{min-height:calc(var(--fs-xs)*var(--lh))}
.fi .fi-head{display:flex;align-items:center;gap:var(--s1);min-width:0;max-width:100%}
.fi .fi-head>span:first-child{flex:none}
.fi .fi-head [data-a=customerClear]{margin-left:auto;max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);line-height:inherit;height:auto;padding:0;flex:none}
.fi select,.fi input[type=date],.fi input[type=text],.fi input:not([type]),.fi .search,.fi .search input{box-sizing:border-box;height:var(--h-ctl)}
.fi select,.fi input[type=date]{width:160px;line-height:normal;padding:0 var(--s3)}
.fi .search input{width:260px}
.date-shortcuts{display:inline-flex;align-items:stretch;height:var(--h-ctl);padding:2px;background:var(--fill2);border-radius:var(--r-md);width:auto;max-width:100%;box-sizing:border-box}
.date-shortcuts button{height:100%;padding:0 var(--s3);border:0;background:none;border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);color:var(--tx2);cursor:pointer;white-space:nowrap}
.date-shortcuts button:hover{background:#fff;color:var(--p)}
.filter-actions{justify-content:flex-end}
.filter-action-btns{display:flex;align-items:center;gap:var(--s3);height:var(--h-ctl)}
.filter-action-btns .btn{height:var(--h-ctl)}
.bulk{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;background:var(--pl);border:1px solid var(--pb);border-radius:var(--r-md);padding:var(--s2) var(--s3);margin-bottom:var(--s3);font-size:var(--fs-sm);color:var(--pd);min-height:44px}
.bulk .sp{flex:1}.bulk.off{opacity:.55}.bulk .sep{width:1px;height:16px;background:var(--pb)}.selall{font-size:var(--fs-sm);color:var(--pd)}
/* reminders (home) */
.rlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s3)}
.rc{border:1px solid var(--bd);border-radius:var(--r-md);padding:var(--s4);border-left:4px solid var(--wn);min-width:0}.rc.exp{border-left-color:var(--er);background:#fffafa}
.rc-h{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}.rc-h b{font-size:var(--fs-lg)}.rc .meta{color:var(--mu);font-size:var(--fs-sm);margin-bottom:var(--s2)}
.kv{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);min-height:28px;min-width:0}.kv>span:first-child{color:var(--mu);width:60px;flex:none}.rc .kv .cp{min-width:0}
.rc .acts{display:flex;gap:var(--s2);margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--bd)}.rc .acts .btn{flex:1}
.empty{color:var(--mu2);text-align:center;padding:var(--s8) 0;grid-column:1/-1;font-size:var(--fs-md)}
.ulist .ui{display:grid;grid-template-columns:minmax(80px,1fr) 2fr 1.4fr auto auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--s1);border-bottom:1px solid var(--bd2);font-size:var(--fs-md)}
.ulist .ui>*{min-width:0}.ulist .ui:last-child{border:0}.ulist .acts{display:flex;gap:var(--s1);justify-content:flex-end}
/* badges / copy */
.badge{display:inline-flex;align-items:center;gap:var(--s1);height:22px;padding:0 var(--s2);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-m);white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.ok{background:var(--okl);color:var(--ok)}.badge.soon{background:var(--wnl);color:var(--wn)}.badge.exp{background:var(--erl);color:var(--er)}.badge.warn7{background:#fef9c3;color:#a16207}.badge.refunding{background:var(--wnl);color:var(--wn)}.badge.refunded{background:var(--erl);color:var(--er)}
.ftag{display:inline-block;margin-top:var(--s1);font-size:var(--fs-xs);line-height:20px;padding:0 var(--s2);border-radius:var(--r-sm);background:var(--fill2);color:#475569;white-space:nowrap}
.ftag.renewed{background:var(--okl);color:#166534}.ftag.not_renew{background:#e2e8f0;color:var(--mu)}.ftag.contacted{background:#e0e7ff;color:var(--pd)}
.tag-off{font-size:var(--fs-xs);background:var(--fill2);color:var(--mu);padding:0 var(--s2);border-radius:var(--r-sm)}
.cp{display:inline-flex;align-items:center;gap:var(--s1);max-width:100%;min-width:0;vertical-align:middle}.cp .v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cp .tel{color:var(--p)}
.cpb{display:inline-grid;place-items:center;height:20px;border:0;background:none;color:var(--mu2);cursor:pointer;padding:0 var(--s1);font-size:var(--fs-sm);border-radius:var(--r-sm);flex:none}.cpb:hover{color:var(--p);background:var(--pl)}
.cprice{font-size:var(--fs-xs);color:var(--mu);white-space:nowrap}.cprice i{font-style:normal}.cprice b{color:var(--tx);font-weight:var(--fw-m)}.neg{color:var(--er)}
/* table */
.table-wrap{overflow-x:auto;border:1px solid var(--bd);border-radius:var(--r-md);-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-md)}
.tbl th{background:var(--fill);color:var(--mu);font-weight:var(--fw-m);font-size:var(--fs-sm);text-align:left;height:var(--th-h);padding:0 var(--td-px);border-bottom:1px solid var(--bd);white-space:nowrap}
.tbl td{padding:var(--td-py) var(--td-px);border-bottom:1px solid var(--bd2);vertical-align:middle;line-height:var(--lh);background:#fff}
.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:var(--fill)}.tbl tr.sel td{background:var(--pl)}
.tbl .r{text-align:right;white-space:nowrap}.tbl .num,.tbl .nw{white-space:nowrap}.tbl .num{font-variant-numeric:tabular-nums}
.tbl th.ck,.tbl td.ck{width:40px;padding-right:0}
.tbl td.cust{min-width:140px;max-width:220px}.tbl td.acc{max-width:220px}.tbl td.order-product .acct{font-size:var(--fs-sm);line-height:var(--lh);overflow-wrap:break-word;word-break:normal;white-space:normal;min-width:0}.tbl td.order-product .acct .cp,.tbl td.order-product .acct .cp .v{max-width:100%;white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:break-word;word-break:normal}.tbl td.note{max-width:320px}.tbl td.cust b{font-weight:var(--fw-s)}
.tbl td .line{display:flex;gap:var(--s1);align-items:center;white-space:nowrap;min-width:0}.tbl td .line .k{color:var(--mu2);font-size:var(--fs-xs);width:28px;flex:none}
.tbl .act{position:sticky;right:0;z-index:1;white-space:nowrap;box-shadow:inset 1px 0 0 var(--bd2)}.tbl th.act{background:var(--fill);z-index:2}
.tbl:not(.rtbl){min-width:880px}
.rtbl{min-width:720px}.rtbl td,.rtbl th{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rtbl td:first-child,.rtbl th:first-child{text-align:left}
.rtbl tfoot td{font-weight:var(--fw-s);background:var(--fill);border-top:1px solid var(--bd)}
th.sort{cursor:pointer;user-select:none}th.sort:hover{color:var(--tx)}th.sort .ar{opacity:.35;margin-left:2px}th.sort.on .ar{opacity:1;color:var(--p)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-top:var(--s4);color:var(--mu);font-size:var(--fs-sm)}.pager .pg{display:flex;gap:var(--s1)}.pager .left{display:flex;align-items:center;gap:var(--s3)}
.pager button{min-width:32px;height:32px;border:1px solid var(--bd);background:#fff;border-radius:var(--r-md);cursor:pointer;font:inherit;font-size:var(--fs-sm)}.pager button.on{background:var(--p);color:#fff;border-color:var(--p)}.pager button:disabled{opacity:.4;cursor:default}
.pager select{width:auto;height:32px;padding:0 var(--s2);font-size:var(--fs-sm)}
.cards{display:none}.rl{display:none}.mobile-logout{display:none}.loading{opacity:.55;pointer-events:none}
/* tabs / seg */
.tabs{display:flex;gap:var(--s1);border-bottom:1px solid var(--bd);margin:0 0 var(--s4);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs a{height:var(--th-h);padding:0 var(--s4);color:var(--mu);font-weight:var(--fw-m);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:var(--s2);align-items:center}
.tabs a.on{color:var(--p);border-bottom-color:var(--p)}.tabs a .count{font-weight:var(--fw-s)}.tabs a.on .count{background:var(--pl);color:var(--p)}.tabs a[data-t=expired] .count{background:var(--erl);color:var(--er)}
.seg{display:inline-grid;grid-template-columns:repeat(3,1fr);background:var(--fill2);border-radius:var(--r-md);padding:2px;width:min(360px,100%);height:var(--h-ctl)}
.seg button{border:0;background:none;height:100%;padding:0 var(--s3);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-md);color:var(--mu);cursor:pointer;white-space:nowrap}.seg button.on{background:#fff;color:var(--p);font-weight:var(--fw-s);box-shadow:0 1px 3px #0002}
.seg.mini{width:auto;display:inline-flex;height:var(--h-sm)}.seg.mini button{font-size:var(--fs-sm)}
/* report */
.rp-filter .seg.rng{width:auto;display:inline-flex;margin-bottom:var(--s4)}.rp-filter .filters{margin-bottom:var(--s2)}
.rp-note{font-size:var(--fs-sm);color:var(--mu);line-height:1.7}.rp-note .warn{color:var(--wn)}.chart-box{position:relative;height:300px}
/* settings */
.plist{list-style:none;padding:0;margin:var(--s4) 0 0;border:1px solid var(--bd);border-radius:var(--r-md)}
.plist li{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);min-height:48px;padding:var(--s2) var(--s4);border-bottom:1px solid var(--bd2)}.plist li:last-child{border:0}
.plist li .pm{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;min-width:0}.plist li>span:last-child{display:flex;gap:var(--s1);flex:none}
.pwf{display:grid;gap:var(--s1);max-width:360px}
/* modal */
.modal{border:0;border-radius:var(--r-xl);padding:0;width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:var(--sh-lg);color:var(--tx)}
.modal[open]{display:flex;flex-direction:column;overflow:hidden}
.modal.sm{width:min(460px,calc(100vw - 32px))}.modal.sm2{width:min(520px,calc(100vw - 32px))}.modal::backdrop{background:#0f172a73;backdrop-filter:blur(2px)}
.modal form{display:flex;flex-direction:column;flex:1;min-height:0;max-height:100%;overflow:hidden}
.modal-h{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s4) var(--s6);border-bottom:1px solid var(--bd);flex:none}.modal-h h3{font-size:var(--fs-lg)}
.x{border:0;background:none;font-size:var(--fs-lg);width:32px;height:32px;border-radius:var(--r-md);color:var(--mu);cursor:pointer}.x:hover{background:var(--fill2)}
.modal-b{padding:var(--s5) var(--s6);overflow:auto;min-height:0;flex:1}.modal-b.center{text-align:center;padding-top:var(--s8)}.modal-b.center h3{font-size:var(--fs-lg);margin-bottom:var(--s2)}
#cfMsg{max-width:100%;margin:0 auto;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}
#cfTypeWrap{text-align:left;margin:var(--s4) auto 0;max-width:100%}#cfTypeWrap input{width:100%;min-height:var(--h-ctl);font-size:16px}
.modal-f{display:flex;justify-content:flex-end;gap:var(--s3);padding:var(--s4) var(--s6);border-top:1px solid var(--bd);background:var(--fill);border-radius:0 0 var(--r-xl) var(--r-xl);flex:none}
.warn-ic{width:48px;height:48px;border-radius:50%;background:var(--erl);color:var(--er);display:grid;place-items:center;margin:0 auto var(--s3);font-weight:var(--fw-b);font-size:var(--fs-2xl)}
.group+.group{margin-top:var(--s5)}.gt{font-weight:var(--fw-s);font-size:var(--fs-md);margin-bottom:var(--s3);display:flex;align-items:center;gap:var(--s2)}.gt::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--p)}
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s1) var(--s5)}
.field{display:flex;flex-direction:column;gap:var(--s2);min-width:0}.field.full{grid-column:1/-1}.field label{font-size:var(--fs-sm);color:var(--tx2);font-weight:var(--fw-m);line-height:var(--lh)}
.field .seg{margin-bottom:var(--s4)}.addr-in{min-height:60px}
.req::before{content:"*";content:"*" / "";color:var(--er);margin-right:3px}.fe{color:var(--er);font-size:var(--fs-xs);min-height:20px;line-height:20px}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--er)}.hint{font-size:var(--fs-xs);color:var(--p);line-height:var(--lh)}
.ro{height:var(--h-ctl);display:flex;align-items:center;padding:0 var(--s3);border-radius:var(--r-md);background:var(--fill);border:1px dashed var(--bd);font-variant-numeric:tabular-nums}
.renew-tip{background:var(--pl);color:var(--pd);border-radius:var(--r-md);padding:var(--s2) var(--s3);margin-bottom:var(--s4);font-size:var(--fs-sm)}
.ptbl{width:100%;border-collapse:collapse}.ptbl th,.ptbl td{padding:var(--s1) var(--s2)}.ptbl thead th{font-size:var(--fs-sm);color:var(--mu);font-weight:var(--fw-m);text-align:left}.ptbl tbody th{text-align:left;width:56px;font-weight:var(--fw-m)}
.err{color:var(--er);font-size:var(--fs-sm);min-height:20px;margin:0}
.more-list{display:grid;gap:var(--s1)}.more-list a{display:flex;gap:var(--s3);align-items:center;height:48px;padding:0 var(--s3);border-radius:var(--r-md);font-size:var(--fs-lg)}.more-list a:hover{background:var(--fill2)}.more-list .nav-ic{width:22px;height:22px}
/* toast */
.toast .lnk{margin-left:0;color:inherit;min-height:44px;min-width:44px;padding:0 var(--s3);display:inline-flex;align-items:center;justify-content:center}
#toasts{position:fixed;inset:var(--s5) auto auto 50%;transform:translateX(-50%);margin:0;padding:0;border:0;background:none;overflow:visible;display:grid;gap:var(--s2);width:min(480px,calc(100vw - 32px));justify-items:center}#toasts:not(:popover-open){display:none}
.toast{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s2) var(--s3);background:var(--tx);color:#fff;padding:var(--s2) var(--s4);border-radius:var(--r-md);box-shadow:0 8px 24px #0003;font-size:var(--fs-md);line-height:var(--lh);max-width:min(480px,calc(100vw - 32px));width:100%;box-sizing:border-box;overflow-wrap:anywhere;animation:tin .2s}
.toast .toast-msg{flex:1 1 12rem;min-width:0;overflow-wrap:anywhere}
.toast .toast-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-left:auto}
.toast.ok::before{content:"✓ ";color:#4ade80}.toast.bad::before{content:"✕ ";color:#f87171}@keyframes tin{from{opacity:0;transform:translateY(-8px)}}
@media(prefers-reduced-motion:reduce){.toast{animation:none}}
.toast{cursor:pointer}
@media(max-width:760px){
  /* 避开顶栏、弹窗头和底部页签；可点关闭 */
  #toasts{inset:auto auto calc(88px + env(safe-area-inset-bottom, 0px)) 50%}
  @keyframes tin{from{opacity:0;transform:translateY(8px)}}
}
.ad-card{border:1px solid var(--bd);border-radius:var(--r-md);padding:var(--s3);display:grid;gap:var(--s1)}
/* responsive */
@media(max-width:1440px){.tbl{--td-px:var(--s2)}.tbl td.cust{min-width:120px;max-width:160px}.tbl td.acc{max-width:160px}.cprice{white-space:normal}.cprice .dot{display:none}.cprice span{display:block}}
@media(max-width:1199px) and (min-width:761px){:root{--side-w:64px}.sidebar{padding:var(--s5) var(--s2)}.sidebar .brand{justify-content:center;padding:0 0 var(--s5)}.sidebar .bt,.sidebar nav a span{display:none}.sidebar nav a{justify-content:center;padding:0}
 .content{padding:var(--s5)}.topbar{padding:0 var(--s5)}}
@media(max-width:1100px){.stats,.stats7{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 :root{--gap:var(--s3)}
 .login{grid-template-columns:1fr}.login-side{display:none}.login-main{background:linear-gradient(180deg,var(--pl),#fff 40%)}.mobile-only{display:flex;margin-bottom:var(--s3)}
 .sidebar{display:none}.main{padding-bottom:76px}.topbar{height:auto;min-height:56px;padding:0 var(--s4)}.topbar .crumb-root,.topbar .crumb-sep,.topbar .page-meta,#today{display:none}.topbar [data-add],.user .btn,.hide-sm{display:none}.user{border:0}.topbar .page-head{flex:1 1 auto;min-width:0}.topbar [data-tab=calc]{flex:none;white-space:normal;line-height:1.2;padding:6px 8px;max-width:42vw;text-align:center}
 .content{padding:var(--s3)}.stat{padding:var(--s3);gap:var(--s3)}.si{width:36px;height:36px;font-size:var(--fs-lg)}.sv,.stats7 .sv{font-size:var(--fs-xl)}.stats7 .stat{padding:var(--s3)}
 .panel{padding:var(--s4)}.panel-h{flex-direction:column;align-items:flex-start}#tab-home .panel-h,#tab-ads .panel-h{flex-direction:row;align-items:center}
 .filters{display:grid;grid-template-columns:1fr 1fr}.fi:first-child,.filters>.fi.order-shortcuts,.filters>.fi.filter-actions{grid-column:1/-1}.fi select,.fi input[type=date],.fi .search,.fi .search input,.date-shortcuts{width:100%}.date-shortcuts button{flex:1;min-width:0}.filter-action-btns{width:100%}.filter-action-btns .btn{flex:1}
 .bulk{gap:var(--s2)}.bulk .sp{display:none}
 .rlist{grid-template-columns:1fr}.table-wrap{display:none}.cards{display:grid;gap:var(--s3)}
 .oc{border:1px solid var(--bd);border-radius:var(--r-md);padding:var(--s4);min-width:0}.oc-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s2)}.oc-h label{display:flex;gap:var(--s2);align-items:center;min-width:0}
 .oc .kv{align-items:flex-start}.oc .kv>span:first-child{line-height:28px}.oc .kv{line-height:28px;word-break:break-all}
 .oc .acts{display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s2);padding-top:var(--s2);border-top:1px dashed var(--bd)}
 .pager{flex-direction:column;gap:var(--s2)}.pager .left{flex-wrap:wrap;justify-content:center}
 .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--bd);padding:var(--s2) 0 calc(var(--s2) + env(safe-area-inset-bottom));z-index:20}
 .tabbar{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
 .tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--mu);min-height:48px}
 .tabbar a .nav-ic{width:22px;height:22px;margin:0}
 .tabbar a.on{color:var(--p)}
 .tabbar .fab{align-items:center;position:relative}
 .tabbar .fab .nav-ic{width:44px;height:44px;padding:11px;box-sizing:border-box;border-radius:50%;background:var(--p);color:#fff;margin-top:-20px;box-shadow:0 4px 12px rgba(79,70,229,.4);display:block}
 .modal,.modal.sm2,.modal.sheet{width:100vw;max-width:100vw;max-height:94vh;margin:auto 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0}.modal form{max-height:100%}.modal.sm{margin:auto;width:calc(100vw - 32px);border-radius:var(--r-xl)}
 .grid{grid-template-columns:minmax(0,1fr)}.modal-b{padding:var(--s4)}.modal-h,.modal-f{padding:var(--s3) var(--s4)}.modal-f .btn{flex:1}.seg{width:100%}
 .ulist .ui{grid-template-columns:1fr auto;gap:var(--s1) var(--s2)}.ulist .ui .c2,.ulist .ui .c3{grid-column:1/-1;color:var(--mu)}.ulist .ui .acts{grid-column:1/-1;justify-content:flex-start}.ulist .ui>span:nth-child(4){grid-row:1;grid-column:2}
 .mobile-logout{display:block}.tabs a{padding:0 var(--s3)}
 .rl{display:block}.rl .ri{border-bottom:1px solid var(--bd2);padding:var(--s3) 0;font-size:var(--fs-md)}.rl .ri:last-child{border:0}.rl .r1{display:flex;justify-content:space-between;align-items:center;gap:var(--s2)}
 .rl .r1 label{display:flex;gap:var(--s2);align-items:center;font-weight:var(--fw-s);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .rl .r2{color:var(--mu);font-size:var(--fs-sm);margin:2px 0 0 var(--s6)}.rl .r3{display:flex;gap:var(--s3);margin:var(--s1) 0 0 var(--s6);flex-wrap:wrap}.rl .r4{display:flex;gap:var(--s2);margin:var(--s2) 0 0 var(--s6)}
 .rl .r4 .btn{height:var(--h-sm);padding:0 var(--s3);font-size:var(--fs-sm)}.renewals-cards{display:none!important}
 .rp-filter .seg.rng{display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:auto}.rp-filter .seg.rng button{height:32px}.chart-box{height:220px}
 .rc .acts .btn{height:var(--h-ctl)}}
@media(max-width:760px){#tab-report .table-wrap{display:block}.rtbl{min-width:640px}}

/* settings：左侧二级菜单 + 顶部 Tab + 居中横向表单 */
.set-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--gap);align-items:start}
.set-nav{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh);padding:var(--s2);display:grid;gap:var(--s1);position:sticky;top:80px}
.set-nav a{display:flex;align-items:center;height:40px;padding:0 var(--s4);border-radius:var(--r-md);color:var(--tx2);font-weight:var(--fw-m);white-space:nowrap}
.set-nav a:hover{background:var(--fill2);color:var(--tx)}.set-nav a.on{background:var(--pl);color:var(--p);font-weight:var(--fw-s)}
.set-main{min-height:420px}.set-main .tabs{margin-top:calc(-1 * var(--s1))}
.pane-desc{font-size:var(--fs-sm);color:var(--mu);margin-bottom:var(--s3)}
.hform{max-width:640px;margin:var(--s6) auto;display:grid;gap:var(--s5)}
.hrow{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--s4);align-items:start}
.hrow>label,.hrow>span{font-size:var(--fs-md);color:var(--tx2);font-weight:var(--fw-m);line-height:var(--h-ctl);text-align:left}
.hc{display:grid;gap:var(--s1);min-width:0}.help{font-size:var(--fs-xs);color:var(--mu2);line-height:var(--lh);margin:0;word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}.hc .fe{min-height:0}.hc .fe:empty{display:none}
.hc .btn{justify-self:start}.hc .ro{color:var(--tx2)}
.tbl.bk{min-width:480px}
@media(max-width:760px){.set-layout{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
 .set-nav{position:static;display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:var(--s1)}.set-nav::-webkit-scrollbar{display:none}.set-nav a{flex:none;height:36px;padding:0 var(--s4)}
 .hform{margin:var(--s4) 0}.hrow{grid-template-columns:minmax(0,1fr);gap:var(--s2)}.hrow>label{line-height:var(--lh)}.hrow>span{display:none}.hc .btn{justify-self:stretch}
 #tab-settings .table-wrap.show{display:block}.set-main{min-height:0}}
/* 工作台 */
.sec-h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3);min-height:var(--h-sm)}.sec-h h3{font-size:var(--fs-lg);display:flex;align-items:baseline;gap:var(--s2)}
.dash5{grid-template-columns:repeat(5,minmax(0,1fr))}.dash5 .stat{padding:var(--s4)}.dash5 .sv{font-size:var(--fs-2xl)}.min0{min-width:0}
.dl{font-size:var(--fs-xs);color:var(--mu);white-space:nowrap}.dl.up{color:var(--ok)}.dl.down{color:var(--er)}
.dash-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap);align-items:stretch}
.dash-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin-top:var(--gap);align-items:start}
.todo-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}.todo-cards .stat{box-shadow:none;border:1px solid var(--bd);padding:var(--s3);flex-direction:column;align-items:flex-start;gap:var(--s2);min-width:0}.todo-cards .si{width:32px;height:32px}.todo-cards .si .nav-ic{width:18px;height:18px}.todo-cards .stat>div:not(.si){min-width:0;width:100%}.todo-cards .sl,.todo-cards .sd{white-space:nowrap}.todo-cards .sv{font-size:var(--fs-2xl)}
#ungroupedCard{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);width:100%;text-align:left;font:inherit;color:inherit;background:var(--card,#fff);cursor:pointer}
#ungroupedCard.hidden{display:none}
.todo-cards .stat{order:2}
.todo-cards #ungroupedCard.is-urgent{order:1}
.todo-cards .stat.is-urgent{border-color:var(--er);background:#fef2f2}
.todo-cards .stat.is-zero{order:3;opacity:.65;border-style:dashed}
#dToday .sd,#dToday .dashboard-card-note,#dSum .dashboard-incomplete{white-space:normal;display:block;line-height:1.35}
#dToday .stat .min0{min-width:0}
.todo-cards #customersCard,.todo-cards #monthCard{order:4}
.todo-month-hint{color:var(--mu);font-size:var(--fs-xs);margin:var(--s2) 0 var(--s3)}
.todo-meta{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--mu);margin:var(--s3) 0}.todo-meta a:hover{color:var(--p)}.todo-meta b{color:var(--tx);font-variant-numeric:tabular-nums}
.sub-t{font-size:var(--fs-sm);font-weight:var(--fw-s);color:var(--tx2);padding-top:var(--s3);border-top:1px solid var(--bd2)}
.dash-todo .ulist .ui{grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s3)}.dash-todo .ulist .ui .c2,.dash-todo .ulist .ui .c3{grid-column:1/-1;color:var(--mu);font-size:var(--fs-sm)}
.dash-todo .ulist .ui>span:nth-child(4){grid-row:1;grid-column:2}.dash-todo .ulist .ui .acts{grid-column:1/-1;justify-content:flex-start}
.trend-sum{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:var(--fs-sm);color:var(--mu);margin-bottom:var(--s3)}.trend-sum b{color:var(--tx);font-weight:var(--fw-s)}
.dash-trend .chart-box{height:320px}.rtbl.mini{min-width:0}
@media(max-width:1440px){.dash5 .sv{font-size:var(--fs-xl)}.dash5 .si{width:36px;height:36px;font-size:var(--fs-lg)}.dash5 .stat{gap:var(--s3)}}
@media(max-width:1100px){.dash5{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid,.dash-2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.dash5{grid-template-columns:repeat(2,minmax(0,1fr))}.dash5 .stat[data-k=roi]{grid-column:1/-1}.dash-trend .chart-box{height:240px}.sec-h{flex-wrap:wrap}
 #tab-home .table-wrap.show{display:block}.rtbl.mini{min-width:360px}}
/* 业务类型 / 成品号 */
.seg.two{grid-template-columns:repeat(2,1fr);width:min(240px,100%)}
.tag-biz{display:inline-block;font-size:var(--fs-xs);line-height:20px;padding:0 var(--s2);border-radius:var(--r-sm);background:#fef3c7;color:#92400e;white-space:nowrap;flex:none}
.hint.mu{color:var(--mu)}.hint:empty{display:none}
.ro.sel{user-select:all;word-break:break-all;height:auto;min-height:var(--h-ctl);padding:var(--s2) var(--s3)}.ro.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.hform.tight{margin:var(--s2) 0;gap:var(--s4)}
@media(max-width:760px){.seg.two{width:100%}}
/* ============ 笔记工作台 ============ */
.nt-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);align-items:start}
.nt-tabs{border:0;margin:0}
.nt-tl{margin-top:var(--s1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nt-tl .nt-tag{margin-bottom:0}
.nt-title{display:flex;gap:var(--s2);align-items:center;min-width:0}.nt-title b{font-weight:var(--fw-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.nt-ex{color:var(--mu);font-size:var(--fs-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all;margin-top:2px}
.nt-pinb{flex:none;font-size:var(--fs-xs);line-height:20px;padding:0 var(--s2);border-radius:var(--r-sm);background:var(--wnl);color:#92400e}
.nt-cat{font-size:var(--fs-sm);color:var(--tx2);margin-right:var(--s1)}
.nt-tags{overflow:hidden}.nt-tag{display:inline-block;font-size:var(--fs-xs);line-height:20px;padding:0 var(--s2);margin:0 var(--s1) var(--s1) 0;border-radius:var(--r-full);background:var(--pl);color:var(--pd);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.nt-tag:hover{background:var(--pb)}
.ntck-all{display:flex;align-items:center;gap:var(--s2)}#ntBulk{opacity:1}#ntBulk.off [data-nb]{opacity:.5;cursor:not-allowed}
.nt-dt{font-size:var(--fs-lg);word-break:break-all}
.nt-meta{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-top:var(--s2)}.nt-dtags{margin-top:var(--s2)}
.nt-body{margin:0;white-space:pre-wrap;word-break:break-word;font:inherit;font-size:var(--fs-md);line-height:1.7;color:var(--tx);background:var(--fill);border:1px solid var(--bd2);border-radius:var(--r-md);padding:var(--s3) var(--s4);max-height:60vh;overflow:auto}
.nt-bl{display:flex;justify-content:space-between;align-items:baseline}#ntLen.over{color:var(--er)}
.nt-pin{display:flex!important;align-items:center;gap:var(--s2);cursor:pointer}
#ntBodyIn{min-height:240px;font-size:var(--fs-md)}
.nt-cadd{display:flex;gap:var(--s2)}.nt-cadd input{flex:1}.nt-cadd .btn{flex:none}
.nt-clist{list-style:none;margin:var(--s3) 0 0;padding:0}.nt-clist li{display:flex;gap:var(--s2);align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--bd2)}
.nt-clist li input{flex:1;min-width:0}.nt-cacts{display:flex;flex:none}
#ntView .modal-f{flex-wrap:wrap}
.nt-rl{display:none}
@media(max-width:760px){
 #tab-notes .panel-h{flex-direction:column;align-items:stretch}#tab-notes .panel-h .row .btn{flex:1}
 .nt-rl{display:block}.nt-ri{border-bottom:1px solid var(--bd2);padding:var(--s3) 0;cursor:pointer}.nt-ri:last-child{border:0}.nt-ri.sel{background:#f5f7ff}
 .nt-r1{display:flex;gap:var(--s2);align-items:center}.nt-ri .nt-ex{margin:var(--s1) 0 0 var(--s6)}.nt-r3{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;margin:var(--s1) 0 0 var(--s6)}
 .nt-r4{display:flex;gap:var(--s2);margin:var(--s2) 0 0 var(--s5)}
 .nt-clist li{flex-wrap:wrap}.nt-clist li input{flex-basis:100%}
 #ntView .modal-f .btn{flex:1 1 40%}.nt-body{max-height:none}}
/* ---- 多人/权限/回收站/操作日志/告警（2026-10-17）---- */
.permhint{color:var(--mu);font-size:var(--fs-xs)}
.btn:disabled{cursor:not-allowed}
.nop{cursor:help}
.res-cnt{display:flex;gap:var(--s4);font-size:var(--fs-md);margin-bottom:var(--s3)}.res-cnt .ok b{color:#16a34a}.res-cnt .sk b{color:#d97706}.res-cnt .fl b{color:#dc2626}
.res-list{margin:0;padding-left:var(--s5);max-height:280px;overflow:auto;font-size:var(--fs-sm);line-height:1.8;color:var(--tx)}
.note-ok,.note-warn{border-radius:var(--r-md);padding:var(--s3) var(--s4);margin-bottom:var(--s4);font-size:var(--fs-sm);line-height:1.7}
.note-ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.note-warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e}
.utbl .current-account{display:inline-flex;align-items:center;min-height:32px}
.utbl select{height:var(--h-sm);min-width:88px}.utbl tr.off td{color:var(--mu)}
.tag.ok{font-size:var(--fs-xs);background:#dcfce7;color:#166534;padding:0 var(--s2);border-radius:var(--r-sm)}
.tbl.autbl{min-width:0;width:100%}.autbl th:last-child,.autbl td:last-child{white-space:nowrap}.autbl td.audet{max-width:none;white-space:normal;word-break:keep-all;overflow-wrap:break-word;font-size:var(--fs-sm);line-height:1.6}
.au-rl{display:none}
#oTabs{margin-bottom:var(--s3)}
#auFilterToggle{display:none}
@media(max-width:760px){.au-rl{display:block}.au-rl .ri{border-bottom:1px solid var(--bd2);padding:var(--s3) 0}.au-rl .r1{display:flex;justify-content:space-between;gap:var(--s2)}
 .au-rl .r2{color:var(--mu);font-size:var(--fs-sm)}.au-rl .r3{font-size:var(--fs-sm);word-break:keep-all;overflow-wrap:break-word;line-height:1.6;margin-top:var(--s1)}
 #auFilterToggle{display:inline-flex}
 #auF{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
 #auF>.fi:first-child{grid-column:auto}
 #tab-settings #auF>.fi:has(input[type=date]){grid-column:auto}
 #auF:not(.filters-open)>:not(.filter-actions){display:none}
 #auF:not(.filters-open) .filter-actions{grid-column:1/-1;margin-bottom:var(--s2)}
 #auF:not(.filters-open) #auReset{display:none}
 #tab-settings{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 #tab-settings input,#tab-settings select{scroll-margin-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 .permhint{flex-basis:100%}}
#alForm .hc.row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
#alForm .ro{height:auto;min-height:var(--h-md, 36px);line-height:1.7;white-space:normal;padding-top:6px;padding-bottom:6px}

.utbl .gr{display:inline-flex;align-items:center;gap:4px;margin-right:var(--s3);font-size:var(--fs-sm);white-space:nowrap}
body.no-core .dash-grid{grid-template-columns:minmax(0,1fr)}
/* 录单提效：粘贴识别 / 常用单模板 */
.quick{border:1px dashed var(--bd,#d9d9d9);border-radius:var(--r-md);padding:var(--s3);margin-bottom:var(--s4);display:grid;gap:var(--s2)}
.quick .qrow{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.tplpick{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--tx2)}.tplpick select{min-width:180px;max-width:100%}
.pastebox{display:grid;gap:var(--s2)}.pastebox .pl{font-size:var(--fs-sm);color:var(--tx2);font-weight:var(--fw-m)}.pastebox textarea{width:100%;font-size:14px}
.parse-res .pr{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;font-size:var(--fs-sm)}
.parse-res li{display:flex;gap:6px;align-items:baseline;min-width:0}.parse-res li em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.parse-res li.ok b{color:#389e0d}.parse-res li.miss b,.parse-res li.miss em{color:#d48806}
.field.need input,.field.need select,.field.need textarea,.field.need .seg{border-color:#faad14;background:#fffbe6;box-shadow:0 0 0 2px rgba(250,173,20,.25)}
.field.need>label::after{content:"  未识别，请补充";color:#d48806;font-size:var(--fs-xs);font-weight:normal}
.hint.warn{color:#d4380d}
@media (max-width:640px){.quick .qrow>*{flex:1 1 100%}.tplpick select{flex:1;min-width:0}.parse-res .pr{grid-template-columns:1fr}}
.tplpick span{white-space:nowrap}

/* 便签工作台 */
#tab-notes .nt-layout{grid-template-columns:minmax(0,1fr)}
#tab-notes .nt-rl{display:block;padding:16px}
.nt-group h3{font-size:14px;margin:12px 0;color:#475569}
.nt-grid{display:grid;grid-template-columns:repeat(var(--note-columns,3),minmax(0,1fr));gap:16px;align-items:start}
#tab-notes .nt-card{border:1px solid #cbd5e1;border-radius:12px;padding:20px;min-width:0;height:330px;box-sizing:border-box;display:flex;flex-direction:column;color:#1e293b;cursor:pointer;overflow:hidden;overflow-wrap:anywhere}
#tab-notes .nt-card:hover,#tab-notes .nt-card:focus-visible{box-shadow:0 3px 10px #0002}
#tab-notes .nt-card .nt-title{min-width:0;overflow:hidden}.nt-card .nt-title b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;overflow-wrap:anywhere}
#tab-notes .nt-card .nt-ex{margin:12px 0;color:#334155;white-space:pre-wrap;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;line-height:1.65;overflow:hidden;min-height:0}
#tab-notes .nt-card .nt-r4{margin:auto 0 0;padding-top:8px;flex-shrink:0;display:flex;flex-wrap:wrap}
.nt-card time{font-size:12px;color:#475569}
@media(max-width:1400px){.nt-grid{grid-template-columns:repeat(min(var(--note-columns,3),2),minmax(0,1fr))}}
@media(max-width:760px){.nt-grid{grid-template-columns:minmax(0,1fr)}#tab-notes .panel-h{flex-wrap:wrap}#tab-notes .filters{min-width:0}#tab-notes .nt-rl{padding:12px}#tab-notes .pager{flex-wrap:wrap}#ntBulk{flex-wrap:wrap;gap:8px}#ntBulk .permhint{flex-basis:100%;order:2;white-space:normal}#ntBulk .sp{display:none}#ntBulk [data-nb]{margin-left:auto}}
.plist .pm a,.plist .pm .sub{overflow-wrap:anywhere;max-width:100%}
@media(max-width:600px){.plist li{flex-wrap:wrap}.plist li>span:last-child{flex-wrap:wrap;max-width:100%}.field,.hc{min-width:0}.field input,.field select,.hc input{max-width:100%;min-width:0}}
.plist-group{margin:0 0 var(--s4)}
.plist-h{margin:var(--s3) 0 var(--s2);font-size:13px;font-weight:600;color:var(--mu,#667)}
.plist-group .plist{margin-top:0}
.product-cat{max-width:132px;font-size:13px;height:var(--h-sm,32px);padding:0 6px}
.kb-products{margin:10px 0 0;padding:0;list-style:none;font-size:13px}
.kb-products li{display:flex;gap:8px;align-items:baseline;padding:2px 0}
.kb-kind{flex:none;color:var(--mu,#667);font-size:12px;min-width:3em}
.kb-products-empty{margin:8px 0 0;font-size:12px}
@media(max-width:600px){.product-cat{max-width:100%}}

#tab-baidu,#baiduBoard{min-width:0;max-width:100%}#baiduBoard .panel{margin-bottom:16px;min-width:0}#baiduBoard p{overflow-wrap:anywhere}.bd-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}.bd-scroll{max-width:100%;overflow-x:auto}.bd-scroll table{min-width:740px}.bd-scroll td{max-width:240px;overflow-wrap:anywhere}#baiduBoard input{max-width:100%}#baiduBoard .panel-h h3{white-space:nowrap;flex-shrink:0}@media(max-width:600px){.bd-stats{grid-template-columns:repeat(2,minmax(0,1fr))}#baiduBoard .panel-h{align-items:flex-start;flex-wrap:wrap}}

/* 充值平台 */
.kb-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.kb-tools input{flex:1;min-width:180px;font-size:var(--fs-lg);padding:var(--s3)}.kb-tools select{max-width:100%}.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px}.kb-card{padding:20px;border:1px solid var(--border,#ddd);border-radius:16px;background:var(--card,#fff);cursor:pointer;min-width:0;overflow-wrap:anywhere}.kb-card:focus{outline:2px solid var(--p)}.kb-heading{display:flex;align-items:center;gap:12px}.kb-icon{position:relative;display:inline-block;flex:none;width:48px;height:48px}.kb-avatar,.kb-logo{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:white;font-size:24px}.kb-logo{position:absolute;inset:0;object-fit:contain;background:white}.kb-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kb-status{padding:var(--s1) var(--s2);border-radius:var(--r-md);background:var(--fill2);color:var(--tx2);font-size:var(--fs-xs)}.kb-status.supported{background:var(--okl);color:var(--ok)}.kb-status.partial{background:var(--wnl);color:var(--wn)}.kb-status.unsupported{background:var(--erl);color:var(--er)}.kb-dialog{width:min(680px,95vw);max-width:95vw;overflow-wrap:anywhere}.kb-note{white-space:pre-wrap}.kb-actions{display:flex;gap:8px;flex-wrap:wrap}#kbPages{margin:20px 0}#kbForm textarea{width:100%;min-height:55px}#kbForm .field{display:block;margin-bottom:12px}#kbOrders{padding-left:20px}#kbHits{overflow-wrap:anywhere}@media(max-width:500px){.kb-tools{gap:8px}.kb-tools input{flex-basis:100%;width:100%}.kb-grid{grid-template-columns:1fr}.kb-card{padding:16px}.kb-dialog .modal-b{padding:16px}}

/* 充值平台：检索、卡片和详情 */
.kb-tools{padding:16px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:14px}
.kb-tools #kbSearch{flex-basis:100%;width:100%;font-size:var(--fs-lg);min-width:0}
.kb-filters{display:flex;gap:6px;flex-wrap:wrap}.kb-filters .btn{border-radius:999px;padding:6px 12px;font-size:13px}.kb-filters .on{background:var(--p,#2563eb);color:white;border-color:transparent}
#kbAdmin{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.kb-title{flex:1;min-width:0}.kb-heading h3{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-b);min-width:0;overflow-wrap:anywhere;line-height:1.5}.kb-heading .kb-status{display:inline-block;white-space:nowrap;margin-top:6px;font-size:var(--fs-xs)}.kb-card{transition:box-shadow .16s,transform .16s}.kb-card:hover{box-shadow:0 5px 18px #0f172a12;transform:translateY(-2px)}
.kb-avatar[hidden]{display:none}.kb-logo{border-radius:10px;position:static}.kb-url{margin:14px 0;color:#94a3b8;font-size:13px}.kb-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;font-size:12px;color:#64748b}.kb-meta b{font-weight:500;color:var(--text,#334155)}.kb-card>.sub{font-size:12px;margin-bottom:0}
.kb-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;margin:0 0 20px}.kb-fields>div{min-width:0}.kb-fields dt{font-size:12px;color:#64748b;margin-bottom:5px}.kb-fields dd{margin:0;font-size:14px;overflow-wrap:anywhere}.kb-fields>div:last-child{grid-column:1/-1}.kb-actions{padding:14px 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}
#kbOrders{list-style:none;padding:0}.kb-order{display:block;text-align:left;width:100%;padding:12px;border:0;border-bottom:1px solid #e2e8f0;background:transparent;color:var(--p,#2563eb);font:inherit;cursor:pointer;overflow-wrap:anywhere}.kb-order:hover{background:#eff6ff}.kb-order:focus-visible{outline:2px solid #2563eb}.kb-dialog .modal-h .kb-heading{flex:1;min-width:0;margin-right:8px}.kb-dialog .modal-h{align-items:flex-start}.kb-dialog .modal-h>button{flex:none}#kbForm input:not([type=checkbox]),#kbForm select{width:100%}#kbForm .field{display:flex;flex-direction:column;gap:6px}
@media(max-width:500px){.kb-tools{position:sticky;top:0;z-index:5;padding:10px}.kb-filters{gap:4px}.kb-filters .btn{padding:6px 10px}#kbAdmin{margin-left:0}.kb-fields{grid-template-columns:1fr;gap:14px}.kb-heading{gap:8px}.kb-dialog .modal-h .kb-heading{align-items:flex-start;margin-right:0}.kb-dialog .modal-h{padding:16px;gap:8px}.kb-dialog .modal-h>button{align-self:flex-start}}

/* Knowledge base empty state and result navigation. */
.kb-empty{grid-column:1/-1;text-align:center;padding:40px 24px}.kb-empty-icon{display:block;font-size:36px;color:var(--p);margin-bottom:12px}.kb-empty h3{margin-bottom:10px}.kb-empty p{max-width:480px;margin:0 auto 20px;line-height:1.8}#kbCount{margin:0 0 16px}#kbPages:not([hidden]){display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}
@media(max-width:760px){#tab-kb{padding-bottom:calc(88px + env(safe-area-inset-bottom))}}
/* 换算面板 */
.calc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 0;min-width:0}.calc-grid>label{display:flex;flex-direction:column;gap:6px;min-width:0}.calc-grid input,.calc-grid select{width:100%;min-width:0;min-height:44px;box-sizing:border-box}.calc-core.calc-grid,.calc-rates,.calc-source,.calc-error,.calc-result,.calc-grid>.calc-core{grid-column:1/-1}.calc-core[hidden]{display:none!important}.calc-result{font-size:var(--fs-xl);font-weight:var(--fw-b);color:var(--p-h);overflow-wrap:anywhere}.calc-details{white-space:pre-line;line-height:1.9;overflow-wrap:anywhere}.calc-error{color:var(--er)}.calc-source{font-size:var(--fs-xs);overflow-wrap:anywhere;color:var(--mu)}.calc-grid .btn{white-space:normal;min-height:44px}#orderCalcDetails summary{cursor:pointer;font-weight:600}#calcDlg{width:min(700px,calc(100% - 24px))}#calcDlg .modal-b{overflow:auto} @media(max-width:430px){.calc-grid{gap:10px}.calc-result{font-size:var(--fs-lg)}.topbar .row{gap:4px}.topbar .btn{padding-left:8px;padding-right:8px}}
#calcDlg[open]{display:flex;flex-direction:column}.calc-grid input[type=checkbox]{width:20px;min-height:20px;align-self:flex-start}

#shopList .pm{min-width:0;overflow-wrap:anywhere}#shopList li>span:last-child{display:flex;gap:8px;flex-wrap:wrap}#shopDlg input,#shopDlg select,#shopDlg textarea{max-width:100%;min-width:0}

/* 录单四项分段：桌面单行，手机两行且底框随内容增高。 */
#bizSeg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
#seg{grid-template-columns:repeat(3,1fr) max-content;width:max-content;max-width:100%;min-width:min(360px,100%)}
@media(max-width:600px){
 #bizSeg,#seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(var(--h-ctl),auto);height:auto;width:100%;min-width:0}
 #seg{grid-template-columns:repeat(3,minmax(0,1fr))}
 #seg [data-v=once]{grid-column:1/-1}
 #bizSeg button,#seg button{display:flex;align-items:center;justify-content:center;min-width:0;height:auto;min-height:var(--h-ctl);padding:var(--s1);white-space:normal;overflow-wrap:anywhere;line-height:var(--lh-t)}
}
/* Customer grouping and narrow-screen calculator output. */
.customer-tools{flex-wrap:wrap;margin-bottom:16px}.customer-tools input{min-width:0;max-width:100%;flex:1}.customer-card{padding:16px;margin:12px 0;border:1px solid #e2e8f0;border-radius:10px;overflow-wrap:anywhere}.customer-card .btn,.customer-form-field .btn{margin:4px;white-space:normal}.customer-card p{overflow-wrap:anywhere}.customer-dialog .field{display:flex;flex-direction:column;gap:6px}.customer-choice{display:block;white-space:normal;overflow-wrap:anywhere;width:100%;margin-top:8px}.customer-dialog{max-width:calc(100vw - 24px)}.modal[open]~.modal.customer-dialog{width:min(760px,calc(100vw - 32px))}.customer-dialog .modal-b{overflow-wrap:anywhere;min-width:0}.customer-form-field{grid-column:1/-1}.default-card{box-sizing:border-box;width:100%;margin:0 0 20px;padding:20px;background:white;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px}.default-card input{width:100px}.calc-result{display:block;white-space:normal;max-width:100%;min-width:0;line-height:1.6;word-break:break-word}
@media(max-width:430px){.customer-tools{align-items:stretch}.customer-tools>.btn{flex:1}.customer-card{padding:12px}.default-card{width:100%}.calc-result{font-size:16px}}
#orderForm .modal-f{flex-wrap:wrap}#orderForm .modal-f .btn{white-space:nowrap}#chainStatus,#chainNotice{overflow-wrap:anywhere}
@media(max-width:760px){
 #orderForm .modal-f{display:grid;grid-template-columns:minmax(max-content,1fr) minmax(max-content,1fr);padding-bottom:calc(var(--s3) + env(safe-area-inset-bottom, 0px))}
}

/* Compact order form: one scrolling body and a persistent action bar. */
#dlg{width:min(1120px,calc(100vw - 32px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);box-sizing:border-box}
#dlg[open]{display:flex;flex-direction:column;overflow:hidden}
#dlg #orderForm{flex:1 1 auto;min-height:0;max-height:100%;overflow:hidden}
#orderForm .group{border:0;background:transparent;padding:0;margin:0 0 10px}
#orderForm .gt{padding:5px 0;margin:0 0 8px;border-bottom:1px solid var(--bd);font-size:14px}
#orderForm .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;align-items:start}
#orderForm .field{min-width:0;margin:0;gap:3px}
#orderForm .field input,#orderForm .field select,#orderForm .field textarea{min-width:0;width:100%}
#orderForm .modal-b{padding:10px 20px;flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}
#orderForm .modal-f{flex:none;position:relative;z-index:2}
#orderForm .hint:empty,#orderForm .fe:empty,#chainStatus:empty,#chainNotice:empty,#chainError:empty{display:none}
#orderForm .quick{margin-bottom:8px;padding:8px}
#orderForm textarea{min-height:38px}
.customer-match{font-size:12px;overflow-wrap:anywhere;max-width:100%}
@media(min-width:601px) and (max-width:1100px){#orderForm .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:601px){#orderForm .field:has([name=platform]){grid-column:1 / span 2}#orderForm .field:has([name=platform_url]){grid-column:span 2}}
@media(max-width:760px){#dlg{width:100vw;max-width:100vw;max-height:calc(100vh - 8px);max-height:calc(100dvh - 8px);margin:auto 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0}}
@media(max-width:600px){#dlg{width:100vw}#orderForm .grid{grid-template-columns:minmax(0,1fr)}#orderForm .field:has([name=platform]),#orderForm .field:has([name=platform_url]){grid-column:1/-1}#orderForm .modal-b{padding:12px}#orderForm input[type=datetime-local],#orderForm select{min-width:0;width:100%;overflow:visible}}
#orderForm .field .seg{margin-bottom:0}
#orderForm .customer-form-field{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 12px}
#orderForm .customer-form-field .btn{margin:0 4px 0 0}
#orderForm .addr-in{min-height:36px;height:36px}
#orderForm .field-lab{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}
#orderForm .field-lab .lnk{flex:none;padding:0}
.fee-row{display:flex;align-items:center;gap:4px;min-width:0}#orderForm .fee-row input{width:0;min-width:0;flex:1}#orderForm .fee-row select{width:auto;min-width:84px;flex:none;padding-right:28px}

.cust-menu{position:relative;float:right}.cust-menu>summary{cursor:pointer;list-style:none;padding:6px 12px;font-size:20px}.cust-menu>div{position:absolute;right:0;z-index:2;display:grid;min-width:130px;padding:8px;background:var(--bg,#fff);border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #0002}
.cust-tabs{width:100%;height:auto;grid-template-columns:1fr 2fr 1fr}.cust-tabs button{white-space:normal;min-height:36px;padding:6px}

.cust-toolbar{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.cust-toolbar>.cust-tabs{flex:1;min-width:0;width:auto;margin-bottom:0;grid-template-columns:1fr 2fr}.cust-toolbar>.btn{flex-shrink:0;margin-left:auto}

/* Consistent order amounts; keep each label and amount together. */
@media(min-width:768px){
 #oList .tbl .act{min-width:120px;width:120px;white-space:normal}
 #oList .tbl th.order-status,#oList .tbl td.order-status{position:sticky;right:120px;z-index:1;background:#fff;box-shadow:inset 1px 0 0 var(--bd2);white-space:normal}
 #oList .tbl th.order-status{background:var(--fill);z-index:2}
#rList .tbl th.order-status,#rList .tbl td.order-status,#tbList .tbl th.order-status,#tbList .tbl td.order-status{position:sticky;right:120px;z-index:1;background:#fff;box-shadow:inset 1px 0 0 var(--bd2);white-space:normal}
#rList .tbl th.order-status,#tbList .tbl th.order-status{background:var(--fill);z-index:2}
#tbList .tbl .act{min-width:120px;width:120px;white-space:normal}
#tbList .tbl td.tb-item{overflow:visible;text-overflow:unset;white-space:normal;max-width:none;user-select:none}
#tbList .tb-item-line{display:flex;flex-direction:column;gap:1px;min-width:0;margin:2px 0}
#tbList .tb-sku{color:var(--tx);font-weight:var(--fw-m);white-space:normal;overflow-wrap:anywhere}
#tbList .tb-item-title{min-width:0;overflow-wrap:anywhere}
#tbList .src-card .tb-item{cursor:pointer;min-width:0}

 #oList .tbl td.order-status .badge,#oList .tbl td.order-status .sub{margin:2px 4px 0 0;vertical-align:middle}
 #oList .tbl th.order-product{white-space:nowrap}
 #oList .tbl td.order-product{max-width:160px;overflow:visible;white-space:normal;overflow-wrap:break-word;word-break:normal}
 #oList .order-product .sub{max-width:160px;white-space:normal;overflow-wrap:break-word;word-break:normal}
 #oList .tbl td.acc{max-width:120px}
 #oList .tbl td.acc .cp{max-width:120px}
 .tbl .order-price{text-align:right;font-variant-numeric:tabular-nums;min-width:148px}
 .order-price .cprice{white-space:normal}
 .order-price .cprice span{display:block;white-space:nowrap}
 .order-price .cprice .dot{display:none}
}
@media(min-width:768px) and (max-width:1440px){
 #oList .tbl{--td-px:6px}
 #oList .tbl td:nth-child(3){min-width:110px;max-width:160px}
 #oList .tbl td:nth-child(3) .line{white-space:normal}
 #oList .tbl td:nth-child(3) .cp{max-width:100%}
 #oList .tbl td.order-product,#oList .order-product .sub{max-width:140px}
 #oList .tbl .act{min-width:120px;width:120px;white-space:normal}
}
#oList .tbl td:nth-child(3),#oList .tbl td:nth-child(3) .line{white-space:normal;overflow-wrap:break-word;flex-wrap:wrap;min-width:0}
#oList .tbl td:nth-child(3) .cp{max-width:100%;min-width:0}
#oList .tbl td:nth-child(3) .cp .v{overflow:visible;text-overflow:unset;white-space:normal;overflow-wrap:break-word}
#tCnt:empty{display:none}
@media(max-width:767px){
 input,select,textarea{font-size:16px!important}
 a,button,select{min-height:36px}
 a,.lnk{display:inline-flex;align-items:center}
 .lnk{padding:4px;box-sizing:border-box}
 input[type=checkbox]{width:20px;height:20px;min-height:20px;box-sizing:border-box;padding:0;flex-shrink:0}
 label:has(>input[type=checkbox]){display:inline-flex;align-items:center;gap:6px;min-width:36px;min-height:36px;padding:8px;box-sizing:border-box;cursor:pointer}
 .bulk,.acts,.todo-meta{flex-wrap:wrap}
}

/* 淘宝订单 */
#agisoRoot { padding: 16px; }
#agisoRoot .card { padding: 16px; margin-bottom: 16px; }
.ag-flex { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0; }
#agFilter { display:grid; grid-template-columns:minmax(140px,2fr) repeat(2,minmax(125px,1fr)) minmax(110px,1fr) auto; }
#agFilter > * { min-width:0; width:100%; }
.ag-config-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ag-config label { display:flex; flex-direction:column; gap:4px; min-width:0; }
.ag-config-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:16px 0; }
.ag-config .ag-enabled { flex-direction:row; align-items:center; margin-right:auto; }
.ag-highlights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.ag-stat { padding:16px; background:var(--fill); border:1px solid var(--bd); border-radius:8px; font-size:14px; }
.ag-stat b { color:var(--p); font-size:var(--fs-lg); }
.ag-stat strong { font-size:24px; }
.ag-table-wrap { overflow-x:auto; }
.ag-days { width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
.ag-days th,.ag-days td { padding:8px 12px; text-align:left; border-bottom:1px solid var(--bd); }
.ag-order { padding:14px 0; border-bottom:1px solid var(--bd); overflow-wrap:anywhere; }
#agLogs { overflow-wrap:anywhere; font-size:12px; }
#agConvert .modal-b label { display:block; margin-top:12px; }
@media(max-width:600px) {
 #agisoRoot { padding:6px; }
 #agFilter { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #agFilter [name=q] { grid-column:1/-1; }
 .ag-config-fields { grid-template-columns:minmax(0,1fr); }
 .ag-config-actions .ag-enabled { flex-basis:100%; }
 .ag-stat { padding:10px; font-size:12px; }
}

.ag-config fieldset { min-width:0; margin:16px 0; padding:16px; border:1px solid var(--line, #ddd); border-radius:8px; }
.ag-config legend { padding:0 8px; font-weight:600; }

#tbList .table-wrap{display:block;overflow-x:auto}
#tbList .src-cards{display:none;flex-direction:column;gap:var(--s3);min-width:0}
#tbList .src-card{border:1px solid var(--bd);border-radius:var(--r);padding:var(--s3);background:var(--card,#fff);min-width:0}
#tbList .src-card-h{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}
#tbList td.tb-tid{white-space:normal;overflow-wrap:anywhere}
#tbList .tb-log{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--bd);border-radius:var(--r-sm);background:#fff;color:var(--tx2);cursor:pointer;vertical-align:middle}
#tbList .tb-log:hover{background:var(--pl);border-color:var(--pb);color:var(--p)}
#tbList td.act .tb-log{margin-top:4px}
#tbList .src-card-acts .tb-log{margin:0}
@media(max-width:760px){#tbList .tb-log{width:36px;height:36px}}
#tbList .src-card .kv{display:flex;gap:var(--s2);font-size:var(--fs-sm);margin:2px 0;min-width:0}
#tbList .src-card .kv>span:first-child{color:var(--mu);flex:none;width:6em}
#tbList .src-card-acts{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
@media(max-width:760px){#tbList .table-wrap{display:none}#tbList .src-cards{display:flex}.todo-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
#tbList .tbl{min-width:0;width:100%;table-layout:fixed}
#tbList .tbl th.order-shop,#tbList .tbl td.order-shop{min-width:200px}
#tbList .src-status-tabs{margin:0 0 var(--s3);gap:var(--s1)}
#tbList .src-status-tabs button{height:var(--th-h);padding:0 var(--s4);color:var(--mu);font:inherit;font-weight:var(--fw-m);border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;white-space:nowrap;display:flex;gap:var(--s2);align-items:center;cursor:pointer}
#tbList .src-status-tabs button.on{color:var(--p);border-bottom-color:var(--p)}
#tbList .src-status-tabs button.on .count{background:var(--pl);color:var(--p)}
@media(max-width:760px){#tbList .src-status-tabs button{min-height:36px;height:36px;padding:0 var(--s3)}}

/* 通用列宽拖拽与商品标题展开 */
#rList .tbl.resizable-cols,#oList .tbl.resizable-cols,#tList .tbl.resizable-cols,#tbList .tbl.resizable-cols{table-layout:fixed;min-width:0}
#tList .tbl th.order-shop,#tList .tbl td.order-shop{white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;overflow:hidden}
#tList .tbl td.order-shop .order-shop-main,#tList .tbl td.order-shop .order-shop-store,#tList .tbl td.order-shop .sub{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
#tList .tbl td.order-shop .cprice{white-space:normal}
#tList .tbl td.num{overflow:hidden}
.resizable-cols th{position:relative}
.col-rs{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;touch-action:none;user-select:none}
.col-rs:hover{background:var(--primary,#5684df)}
.tbl td.tb-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.tbl td.tb-item.open{white-space:normal;overflow-wrap:anywhere}

#tab-notes .nt-card .nt-tl{max-height:24px;overflow:hidden}#tab-notes .nt-card time{flex-shrink:0}@media(max-width:600px){#tab-notes .nt-card{height:auto;min-height:220px}}
.bd-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.bd-meta{font-size:12px;color:var(--mu);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* 广告投放渠道条有 5 项，不能套用 .seg 默认 3 列+固定高度，否则闲鱼/小红书被裁切 */
#bdChannels.seg{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px;width:auto;max-width:100%;height:auto;min-height:var(--h-ctl)}
#bdChannels.seg button{height:var(--h-ctl);flex:0 0 auto;padding:0 12px}

#tab-notes .nt-card .nt-r1{flex-shrink:0;max-height:44px;overflow:hidden}

/* 订单管理方案 A：渠道快捷芯片 + 平台原始单子 Tab */
.o-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 var(--s4)}
.o-chips:empty{display:none;margin:0;min-height:0}
.o-chips .chip{height:28px;padding:0 12px;border-radius:var(--r-full);border:1px solid var(--bd);background:#fff;color:var(--tx2);font:inherit;font-size:var(--fs-sm);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.o-chips .chip.on{background:var(--pl);border-color:var(--pb);color:var(--p);font-weight:var(--fw-s)}
.o-chips .chip .n{font-size:var(--fs-xs);color:var(--mu)}.o-chips .chip.on .n{color:var(--p)}
.o-plat-sub.seg{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px;width:auto;max-width:100%;height:auto;min-height:var(--h-sm);margin:0 0 var(--s4)}
.o-plat-sub.seg button{height:var(--h-sm);flex:0 0 auto;padding:0 14px;font-size:var(--fs-sm)}
/* E-08：窄屏抬高渠道芯片 / 平台子 Tab 触控高度到 ≥36px */
@media(max-width:760px){
 .o-chips .chip{height:36px;min-height:36px;padding:0 14px}
 .o-plat-sub.seg{min-height:36px}
 .o-plat-sub.seg button{height:36px;min-height:36px}
}

/* Platform filters must shrink to their panel; only the table scrolls horizontally. */
#tbList,#tbList .filters,#tbList .filters>.fi,#tbList .table-wrap{min-width:0;max-width:100%}
#tbList .filters input,#tbList .filters select{min-width:0;max-width:100%}
#tbList [hidden],.source-history [hidden]{display:none!important}
@media(max-width:600px){
 #tbList .filters{grid-template-columns:minmax(0,1fr)}
 #tbList .fi input,#tbList .fi select{width:100%}
}

/* Blank calculator: existing CRM tokens, no business data. */
.trial-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s4)}
.trial-section{min-width:0;padding:var(--s4);border:1px solid var(--bd);border-radius:var(--r-md);margin-top:var(--s4)}
.trial-header h2,.trial-section h3{margin:0 0 var(--s2)}
.trial-fields,.trial-rates{display:grid;gap:var(--s3);margin:var(--s3) 0}
.trial-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--s3)}
#calcPage label{display:flex;flex-direction:column;gap:var(--s2);min-width:0}
#calcPage input,#calcPage select{width:100%;min-width:0;min-height:44px;font-size:16px}
#calcPage button,#calcPage summary{min-height:44px;white-space:normal}
#calcPage summary{cursor:pointer;display:flex;align-items:center}
#calcPage output{display:block;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.trial-breakdown{margin:var(--s3) 0}.trial-breakdown>div{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--bd)}
.trial-breakdown dd{margin:0;text-align:right}.trial-net{font-size:var(--fs-lg);font-weight:700}
.trial-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}.trial-toolbar h3{margin:0;margin-right:auto}
.trial-rates{grid-template-columns:repeat(4,minmax(0,1fr))}.trial-fx p{overflow-wrap:anywhere}.trial-fx p[data-fx-status]{word-break:keep-all;overflow-wrap:break-word}
@media(max-width:760px){.trial-layout{grid-template-columns:1fr}.trial-rates{grid-template-columns:repeat(2,minmax(0,1fr))}.trial-section{padding:var(--s3)}#tab-calc{padding-bottom:var(--s4)}}

.channel-bar-skeleton{display:flex;gap:8px;flex-wrap:wrap;width:100%;min-height:40px}
.channel-bar-skeleton span{display:block;box-sizing:border-box;min-width:92px;height:40px;border-radius:var(--r-md,8px);background:var(--fill2,#eef2f6);flex:none}
@media (max-width:760px){.channel-bar-skeleton{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.channel-bar-skeleton span{min-width:0;width:100%}}
.channel-bar-error{display:inline-flex;align-items:center;margin:0 8px;color:var(--danger,#b42318);font-size:13px;line-height:40px;white-space:nowrap}
.brand-logo{display:inline-block;vertical-align:middle;object-fit:contain;flex:none;margin:0;background-color:var(--fill2,#eef2f6)}
.brand-logo-sm{width:16px;height:16px}
.brand-logo-md{width:22px;height:22px}
.brand-logo-ph{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#d0d5dd;color:#475467;font-size:var(--fs-xs);font-weight:600;line-height:1}
.brand-logo-md.brand-logo-ph{font-size:12px}
.brand-logo-text{vertical-align:middle}
/* 360 搜索白词标必须放在深色圆角底上，禁止反色 */
.brand-logo-ondark{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  box-sizing:border-box;background:#1f2329;border-radius:4px;padding:2px 3px;
  width:28px;height:16px;
}
.brand-logo-ondark img{width:100%;height:100%;object-fit:contain;display:block;filter:none}
.brand-logo-ondark-md,.kb-heading .brand-logo-ondark{width:36px;height:22px;border-radius:6px;padding:3px 4px}
.dashboard-scopes .brand-logo-ondark,#rpChannels .brand-logo-ondark,#adChannels .brand-logo-ondark,.o-plat-sub .brand-logo-ondark,.o-chips .brand-logo-ondark,#dCh .brand-logo-ondark,#oList .brand-logo-ondark,#tList .brand-logo-ondark,#tbList .brand-logo-ondark,.oc .brand-logo-ondark,.cs-table .brand-logo-ondark,.cs-card .brand-logo-ondark,.cs-toolbar .seg .brand-logo-ondark,#bdChannels .brand-logo-ondark,#rpCh .brand-logo-ondark,#adBody .brand-logo-ondark,#adCards .brand-logo-ondark,[data-funds-list] .brand-logo-ondark,[data-service-fees] .brand-logo-ondark,.cs-source-summary .brand-logo-ondark,.cs-detail .brand-logo-ondark{width:28px;height:16px}
.dashboard-scopes .btn,.o-plat-sub.seg button,.o-chips .chip,.cs-toolbar .seg button,#bdChannels.seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.dashboard-scopes .brand-logo,#rpChannels .brand-logo,#adChannels .brand-logo,.o-plat-sub .brand-logo,.o-chips .brand-logo,#dCh .brand-logo,#oList .brand-logo,#tList .brand-logo,#tbList .brand-logo,.oc .brand-logo,.cs-table .brand-logo,.cs-card .brand-logo,.cs-toolbar .seg .brand-logo,#bdChannels .brand-logo,#rpCh .brand-logo,#adBody .brand-logo,#adCards .brand-logo,[data-funds-list] .brand-logo,[data-service-fees] .brand-logo,.cs-source-summary .brand-logo,.cs-detail .brand-logo{width:16px;height:16px}
.kb-icon:has(.brand-logo){width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}
.kb-heading .brand-logo-md{width:22px;height:22px}
#dCh td .brand-logo-text,#rpCh td .brand-logo-text,#adBody td .brand-logo-text{vertical-align:middle}
#dCh td .order-shop-channel,#rpCh td .order-shop-channel,#adBody td .order-shop-channel,#adCards .order-shop-channel{display:inline-flex;align-items:center;vertical-align:middle}

/* 计算换汇页内标题降为 16px 小节，保留页名「计算换汇」 */
#calcPage .trial-header h2{font-size:var(--fs-lg);font-weight:var(--fw-s);color:var(--tx)}
#calcPage .trial-section h3{font-size:var(--fs-md);font-weight:var(--fw-s);color:var(--tx)}
#calcPage .trial-header{margin-bottom:var(--s2)}
.si .nav-ic{width:20px;height:20px;display:block}

/* 强制绑码：登录后只能先绑定二次验证 */
body.totp-enroll-only .sidebar nav a:not([data-tab="settings"]),
body.totp-enroll-only .tabbar a:not(#moreBtn),
body.totp-enroll-only .topbar [data-tab],
body.totp-enroll-only .topbar [data-add],
body.totp-enroll-only #pendingBell,
body.totp-enroll-only .set-nav a:not([data-set="security"]){display:none!important}
/* 窄屏（≤420px）：订单页签收紧间距，三个页签一屏放下；渠道排行在卡片内横滑，金额不截断 */
@media (max-width:420px){
 #oTabs a{padding:0 var(--s2);gap:4px;font-size:var(--fs-sm)}
 #oTabs{gap:0}
 #dCh{min-width:max-content}
 #dCh th,#dCh td{padding-left:8px;padding-right:8px}
}
/* 平台原始单：本次转入的行就地标记 */
#tbList .src-converted{display:inline-block;padding:0 6px;border-radius:999px;background:var(--okl,#dcfce7);color:var(--ok,#15803d);font-weight:600}
#tbList tr.src-row-converted td,#tbList .src-card.src-row-converted{background:var(--okl,#f0fdf4)}
/* 产品管理：平台下按「账号充值 / 额度充值」分组 */
.plist-kind{margin:0 0 var(--s2) var(--s3)}
.plist-kh{margin:var(--s2) 0 var(--s1);font-size:var(--fs-xs);font-weight:600;color:var(--mu)}
#productList .plist-group>.plist-h{font-size:var(--fs-md);color:var(--tx);border-bottom:1px solid var(--bd);padding-bottom:var(--s1)}
/* 广告投放表格：窄屏整表横滑，单元格不裁字 */
#baiduBoard .bd-scroll table{min-width:max-content;width:100%}
#baiduBoard .bd-scroll th,#baiduBoard .bd-scroll td{white-space:nowrap;overflow:visible;text-overflow:clip}

/* 顶栏头像账号菜单 */
.user{position:relative}
.user-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:200px;background:#fff;border:1px solid var(--bd);border-radius:var(--r-md);box-shadow:0 8px 24px #0002;padding:var(--s2);display:flex;flex-direction:column;gap:2px}
.user-menu[hidden]{display:none}
.user-menu-name{padding:var(--s2) var(--s3);color:var(--mu);font-size:var(--fs-sm);border-bottom:1px solid var(--bd);margin-bottom:2px;overflow-wrap:anywhere}
.user-menu-item{min-height:44px;text-align:left;background:none;border:0;border-radius:var(--r-sm,6px);padding:0 var(--s3);font:inherit;color:var(--tx);cursor:pointer}
.user-menu-item:hover,.user-menu-item:focus-visible{background:var(--fill)}
.user-menu-item.danger{color:#dc2626}
@media(max-width:760px){.avatar{width:44px;height:44px}}

/* 390：客户档案工具栏换行，页签整行横排；搜索框占满剩余宽度 */
@media(max-width:760px){
 .cust-toolbar{flex-wrap:wrap}
 .cust-toolbar>.cust-tabs{flex:1 1 100%;order:3}
 .cust-tabs button{white-space:nowrap}
 .customer-tools>.btn{flex:0 0 auto}
 .customer-tools input{flex:1 1 0;font-size:16px}
}
/* 390：工作台自定义日期两框各占一半、「查看」另起一行，年份不被日历图标挡 */
@media(max-width:760px){
 #dCustomRange label{flex:1 1 calc(50% - 6px)}
 #dCustomRange>.btn{flex:1 1 100%;min-height:44px}
 #dCustomRange input{padding-left:8px;padding-right:4px}
}
/* 390：平台原始单状态页签换行显示，数字不被遮罩或边缘裁掉 */
@media(max-width:760px){
 #tbList .src-tab-scroll{flex-wrap:wrap;overflow:visible;row-gap:var(--s1)}
 #tbList .src-status-tabs.has-overflow .src-tab-scroll{mask-image:none;-webkit-mask-image:none}
 #tbList .src-tab-edge{display:none}
}
/* 缺陷17/23：图标后带渠道名时留出间距；已用 flex gap 的按钮不再叠加 */
:is(.brand-logo,.brand-logo-ondark)+.brand-logo-text{margin-left:4px}
:is(.dashboard-scopes .btn,.o-plat-sub.seg button,.o-chips .chip,.cs-toolbar .seg button,#bdChannels.seg button) .brand-logo-text{margin-left:0}


/* ux.css */
/* Navigation and mobile interaction overrides; shared style.css stays untouched. */
@media (max-width:760px){
 .tabbar{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:1fr}
 .tabbar a.hidden{display:none}
 #setNav,#setTabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:4px;max-width:100%}
 #setNav a,#setTabs a{white-space:normal;justify-content:center;text-align:center;padding:6px 4px;height:auto;min-height:36px;margin:0}
 #setNav a.on,#setTabs a.on{background:var(--pl);color:var(--p);border-radius:var(--r-md)}
 .oc .cpb,.oc .acts button{min-width:44px;min-height:44px;height:auto;padding:10px;flex-shrink:0}
 .oc .cp{min-width:0;max-width:100%}
 .oc .acts{flex-wrap:wrap;gap:12px}
 .oc .acts [data-call=del]{margin-left:12px;color:var(--er);order:10}
 .bulk{flex-wrap:nowrap;overflow-x:auto;max-width:100%;min-width:0;scrollbar-width:thin}
 .bulk>*{flex-shrink:0}
 .bulk button{min-height:36px;height:auto}
 .bulk [data-a=bdel],.bulk [data-nb=delete],.bulk [data-nb=purge]{order:10;margin-left:16px;color:var(--er);border-color:var(--er)}
 /* 未勾选时只保留「共 N 条」，避免空操作条撑出横滑条；只作用于订单/回收站列表，不要藏掉广告费合计 */
 #oList .bulk.off,#tList .bulk.off,#rList .bulk.off{flex-wrap:wrap;overflow:visible;opacity:1}
 #oList .bulk.off>:not(.selinfo),#tList .bulk.off>:not(.selinfo),#rList .bulk.off>:not(.selinfo){display:none}
 #oList .bulk.off .selinfo,#tList .bulk.off .selinfo,#rList .bulk.off .selinfo{flex:none;white-space:normal}
 #rTabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow:visible}
 #rTabs a{padding:6px 4px;min-height:40px;height:auto;justify-content:center;white-space:normal;margin:0}
 #tab-home [data-go=report],#dRange button,#rpMetric button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;height:auto}
 #dRange{width:auto;flex-shrink:0}
 #tab-report .panel-h,#rpMetric{max-width:100%;min-width:0}
 #rpMetric button{padding:6px 8px}
}
@media (max-width:600px){
 #rpMetric{display:flex;flex-wrap:wrap}
 #rpMetric button{min-height:36px;height:auto;font-size:13px;min-width:0;white-space:normal}
 #moreDlg [data-tab=customers]{display:none}
 #orderForm .modal-b{display:flex;flex-direction:column}
 #orderForm .modal-b>*{flex-shrink:0}
 #orderForm .modal-f{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;min-height:0;height:auto;box-sizing:border-box}
 #orderForm .modal-f .btn{flex:1 1 calc(50% - 8px);min-width:0;min-height:40px;height:auto;padding:8px 6px;font-size:13px;white-space:normal}
 #orderForm .modal-f #saveBtn{font-size:14px}
 #orderForm .modal-f #chainExit{background:var(--fill);color:var(--mu);border-color:var(--bd)}
}

.fi input[aria-invalid=true]{border-color:var(--er)}

/* Keep native date segments and the calendar control readable on narrow filters. */
@media (max-width:600px){
 .filters>.fi:has(input[type=date]){grid-column:1/-1}
 .filters>.fi input[type=date]{width:100%;min-width:0}
}

/* 二次验证 */
.totp-switch{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;padding-inline:0}
#loginBack{margin-top:0}
.totp-qr{width:180px;height:180px;border:1px solid var(--bd);border-radius:var(--r-md);background:#fff;padding:8px}
.totp-qr img{width:100%;height:100%;display:block}
.totp-secret{word-break:break-all}
.totp-codes{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin:var(--s2) 0 0;padding:0}
.totp-codes li{list-style:none;padding:var(--s2) var(--s3);border:1px solid var(--bd);border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;min-height:44px;display:flex;align-items:center}
.totp-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
@media (max-width:760px){
 .totp-qr{width:132px;height:132px;padding:6px}
 .totp-codes{grid-template-columns:1fr}
 #totpPanel.hform{gap:var(--s3);margin:var(--s3) 0 0;padding-bottom:128px}
 #totpPanel .totp-cta{
  position:fixed;left:0;right:0;
  bottom:calc(76px + env(safe-area-inset-bottom,0px));
  z-index:21;margin:0;
  background:var(--card,#fff);
  border-top:1px solid var(--bd);
  padding:var(--s2) var(--s4) var(--s3);
  grid-template-columns:minmax(0,1fr);
 }
 #totpPanel .totp-cta .hc,#totpPanel .totp-cta .totp-actions{display:flex;gap:var(--s2);width:100%;margin:0}
 #totpPanel .totp-cta .btn{flex:1;min-height:44px}
}


/* agiso.css */
.ag-workspace{max-width:1000px;min-width:0;display:grid;gap:18px}
.ag-workspace p{line-height:1.65;overflow-wrap:anywhere}
.ag-shared{border:1px solid var(--bd);border-radius:12px;padding:14px 18px;background:var(--fill)}
.ag-shared>summary,.ag-advanced>summary{cursor:pointer;font-weight:600}
.ag-shared>summary .sub{margin-left:12px;font-weight:400}
.ag-shared form{padding-top:16px}
.ag-platform-tabs{display:flex;gap:8px;border-bottom:1px solid var(--bd);padding-bottom:10px}
.ag-platform-tabs [aria-selected=true]{background:var(--p);color:#fff;border-color:var(--p)}
.ag-platform-pane{min-width:0;border:1px solid var(--bd);border-radius:12px;padding:20px;background:var(--card,#fff)}
.ag-platform-pane[hidden],.ag-workspace [hidden]{display:none!important}
.ag-platform-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}
.ag-platform-heading h3{font-size:var(--fs-lg);margin:0 0 6px}
.ag-platform-heading>.btn{flex:none}
.ag-workspace .ag-config-fields{gap:14px}
.ag-workspace input:not([type=checkbox]){width:100%;min-width:0;box-sizing:border-box;min-height:42px}
.ag-workspace input[type=checkbox]{flex:none}
.ag-advanced{margin-top:14px}
.ag-advanced>label{margin-top:12px}
.ag-form-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:16px}
.ag-form-footer .ag-enabled{margin:0;flex-direction:row;align-items:center;gap:8px}
.ag-form-result{min-height:1.65em;font-size:13px;color:var(--mu);margin-top:8px}
.ag-operation-card{border-top:1px solid var(--bd);padding-top:18px;margin-top:18px}
.ag-operation-status{font-weight:600;line-height:1.7;overflow-wrap:anywhere}
.ag-operation-status[aria-busy=true]::before{content:' ';display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--p);margin-right:8px}
.ag-operation-card>.sub{margin-top:8px}
.ag-operation-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.ag-action-result{min-height:1.65em;margin-top:12px;white-space:pre-wrap}
.ag-pull-form{display:flex;gap:12px;align-items:flex-end;margin-top:18px}
.ag-pull-form>label{flex:1;min-width:0;display:grid;gap:6px}
.ag-pull-form>.btn{flex:none;min-height:42px}
.ag-workspace .btn{white-space:normal;min-height:40px}
.ag-workspace button:focus-visible,.ag-workspace summary:focus-visible,.ag-dialog button:focus-visible{outline:3px solid var(--p);outline-offset:3px}
.ag-dialog[open]{display:flex;flex-direction:column}
.ag-dialog .modal-b{overflow:auto;min-height:0;overflow-wrap:anywhere}
.ag-dialog .modal-b>label{display:grid;gap:8px}
.ag-dialog input{min-width:0;max-width:100%}
.ag-dialog .modal-b>.sub{margin:12px 0}
.ag-log-dialog{width:min(820px,calc(100vw - 32px))}
.ag-log-list{list-style:none;padding:0;margin:0}
.ag-log-list>li{padding:16px 0;border-bottom:1px solid var(--bd)}
.ag-log-list>li:last-child{border-bottom:0}
.ag-log-list p{margin:6px 0 0;line-height:1.6}
.ag-log-heading{display:flex;justify-content:space-between;gap:12px}
.ag-log-error{color:var(--danger,#b91c1c);overflow-wrap:anywhere}
.ag-account-picker{display:grid;gap:8px;margin-bottom:20px;max-width:560px}
.ag-account-picker select{width:100%;min-width:0;min-height:42px}
.ag-account-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.ag-account-summary>.btn{flex:none}
.ag-account-summary p{margin:6px 0;font-size:13px}
.ag-account-warning{color:var(--warn,#92400e)}
.ag-account-error{color:var(--danger,#b91c1c);min-height:1.6em}
.ag-dialog form{min-height:0;display:flex;flex-direction:column;max-height:85dvh}
.ag-dialog .modal-b>label{margin-bottom:14px}
.ag-dialog .ag-enabled{display:flex!important;align-items:center;gap:8px}
.ag-dialog .ag-enabled input{width:auto}
.ag-dialog .ag-advanced>label{display:grid;gap:8px}
.ag-pending-details{margin-top:20px;border-top:1px solid var(--bd);padding-top:14px}
.ag-pending-details ul{padding:0;list-style:none;margin:8px 0}
.ag-pending-details li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--bd)}
.ag-pending-details li>div{min-width:0;overflow-wrap:anywhere}.ag-pending-details li>.btn{flex:none}
.ag-pending-details p{margin:6px 0;font-size:13px}
@media(max-width:600px){
 .ag-account-summary,.ag-pending-details li{align-items:stretch;flex-direction:column}
 .ag-workspace{gap:14px}.ag-shared{padding:12px}.ag-platform-pane{padding:14px}
 .ag-platform-heading{flex-wrap:wrap;gap:10px}.ag-platform-heading>.btn{width:100%}
 .ag-platform-tabs>.btn{flex:1}.ag-form-footer{align-items:stretch}.ag-form-footer>.btn{width:100%}
 .ag-operation-actions>.btn{flex:1 1 45%}.ag-pull-form{flex-direction:column;align-items:stretch}
 .ag-log-dialog{width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0}
 .ag-log-heading{flex-wrap:wrap}.ag-dialog .modal-f{flex-wrap:wrap}
}
/* 平台原始单：同步健康与履约记录（2026-11-07） */
.sync-flag{display:inline-block;margin-left:var(--s1);padding:0 6px;border-radius:var(--r-sm);font-size:var(--fs-xs);line-height:20px;white-space:nowrap}
.sync-conflict,.sync-retrying,.sync-pending{background:var(--wnl);color:var(--wn)}
.sync-manual,.sync-error{background:var(--erl);color:var(--er)}
.src-acts{display:flex;flex-wrap:wrap;gap:var(--s1)}
.lnk.danger{color:var(--er)}.lnk.danger:hover{background:var(--erl)}
.lnk[disabled]{color:var(--mu2);cursor:not-allowed;background:none}
.src-mode{color:var(--mu)}
.mode-tag{display:inline-block;padding:0 6px;border-radius:var(--r-sm);font-size:var(--fs-xs);line-height:20px}
.mode-mock{background:var(--wnl);color:var(--wn)}.mode-live{background:var(--okl);color:var(--ok)}
.src-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s2) var(--s4);margin:0 0 var(--s4)}
.src-facts dt{color:var(--mu);font-size:var(--fs-sm)}.src-facts dd{margin:0;word-break:break-all}
.src-hist td,.src-hist th{white-space:nowrap;overflow:visible;text-overflow:unset}.src-hist td:last-child{white-space:normal}
.source-history .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.source-history .src-hist{width:max-content;min-width:100%}
.source-history .src-hist th:nth-child(1),.source-history .src-hist td:nth-child(1){width:1%;white-space:nowrap}
.source-history .src-hist th:nth-child(2),.source-history .src-hist td:nth-child(2){white-space:nowrap;min-width:7em;overflow:visible}
#cfMsg{white-space:pre-line}
@media (max-width:640px){.src-acts .lnk{min-height:44px}.src-facts{grid-template-columns:1fr}}


/* dashboard.css */
.dashboard-scopes{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.dashboard-period{margin:0 0 18px}
#dRange{display:flex;flex-wrap:wrap;width:fit-content;max-width:100%;height:auto;gap:4px}
#dRange button{min-height:40px;white-space:nowrap}
#dCustomRange:not([hidden]){display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-top:12px}
#dCustomRange label{display:grid;gap:6px;font-size:13px;color:var(--mu)}
#dRangeError{color:var(--er);font-size:13px}
@media(max-width:760px){#dRange{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}#dCustomRange label{flex:1;min-width:0}#dCustomRange input{width:100%;min-width:0}#dRangeError{flex-basis:100%}}
.dashboard-scopes .btn{min-width:92px;min-height:40px;background:var(--card,#fff)}
.dashboard-scope-skeleton{display:flex;gap:8px;flex-wrap:wrap;width:100%;min-height:40px}
.dashboard-scope-skeleton span{display:block;box-sizing:border-box;min-width:92px;height:40px;border-radius:var(--r-md,8px);background:var(--fill2,#eef2f6);flex:none}
.dashboard-scopes .btn.on{background:var(--p);border-color:var(--p);color:#fff}
.dashboard-scopes .btn:focus-visible{outline:3px solid var(--p);outline-offset:3px}
.dashboard-shop-filter{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:13px;color:var(--mu)}
.dashboard-shop-filter select{width:min(360px,100%);min-width:0}
.dashboard-notice{font-size:13px;line-height:1.7;color:var(--mu);margin-bottom:14px;overflow-wrap:anywhere}
.dashboard-notice p{margin:4px 0}
.dashboard-notice[hidden],.dashboard-load-state[hidden],.dashboard-chart-state[hidden]{display:none!important}
.dashboard-warning{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid #f2ce76;border-radius:10px;background:#fffbeb;color:#854d0e}
.dashboard-warning .btn{flex:none;background:#fff}
.dashboard-load-state{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--bd);padding:14px 16px;border-radius:10px;margin-bottom:16px;background:var(--fill);overflow-wrap:anywhere}
.dashboard-load-state p{line-height:1.6;margin:0}
.dashboard-card-note{display:block;font-size:var(--fs-xs);line-height:1.55;color:var(--mu);margin-top:4px;white-space:normal;overflow-wrap:anywhere}
.dashboard-chart-state{display:flex;align-items:center;justify-content:center;min-height:180px;padding:24px;color:var(--mu);text-align:center;line-height:1.7;overflow-wrap:anywhere}
#dToday[aria-busy=true] .sv{color:var(--mu)}
#dToday .sl{white-space:normal}
#dToday .sv{overflow-wrap:anywhere}
#dCh .money,#dPr .money{white-space:nowrap}
@media(max-width:760px){
 .dashboard-scopes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .dashboard-scopes .btn{min-width:0;padding-left:8px;padding-right:8px}
 .dashboard-scope-skeleton{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .dashboard-scope-skeleton span{min-width:0;width:100%}
 .dashboard-warning,.dashboard-load-state{flex-direction:column;align-items:stretch;gap:10px}
 .dashboard-warning .btn,.dashboard-load-state .btn{width:100%}
 .dashboard-notice{font-size:12px}
 .dashboard-shop-filter{align-items:stretch;flex-direction:column;gap:6px}
 .dashboard-shop-filter select{width:100%}
 #tab-home .sec-h h3{flex-wrap:wrap}
 #dRange{max-width:100%}
}

.dashboard-scopes .btn{display:inline-flex;align-items:center;justify-content:center;gap:4px}
.dashboard-scopes .brand-logo{width:16px;height:16px;flex:none}
.dashboard-scopes .brand-logo-text{min-width:0}
/* 待补成本：经营概况处唯一提示，醒目可点 */
.dashboard-gap{margin:0;padding:4px 10px;border-radius:999px;background:var(--wnl);color:var(--wn);font-size:var(--fs-sm);line-height:1.5;flex:1 1 auto;min-width:0}
.dashboard-gap .lnk{font-weight:600}


/* secret-input.css */
.secret-input-control{display:flex;align-items:stretch;position:relative;min-width:0;width:100%}
.secret-input-control>input{flex:1;min-width:0;width:100%;padding-right:48px!important;box-sizing:border-box}
.secret-input-toggle{position:absolute;right:2px;top:2px;bottom:2px;width:42px;min-height:32px;border:0;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--mu,#64748b);padding:0}
.secret-input-toggle svg{stroke:currentColor;stroke-width:1.7;fill:none}
.secret-input-toggle[aria-pressed=true]{color:var(--p,#4f46e5);background:var(--fill,#f1f5f9)}
.secret-input-toggle:focus-visible{outline:2px solid var(--p,#4f46e5);outline-offset:0}
.secret-input-control>input:disabled+.secret-input-toggle{opacity:.4;cursor:not-allowed}


/* kb-repair.css */
#kbDlg .kb-assessment{padding:12px;border-radius:8px;background:var(--bg,#f3f5f8);line-height:1.6}
#kbDlg .kb-fields dd{white-space:pre-wrap;overflow-wrap:anywhere}
#kbDlg textarea{min-height:76px;resize:vertical}
#kbDlg .modal-f{gap:8px}
#tab-kb .kb-card p{overflow-wrap:anywhere}
#tab-kb .kb-tools input{min-width:0}
#tab-kb #kbCards[aria-busy=true]{min-height:120px}
@media(max-width:600px){#kbDlg{width:calc(100vw - 20px);max-width:none}#kbDlg .kb-fields{grid-template-columns:1fr}#tab-kb .kb-tools{align-items:stretch}#tab-kb .kb-tools input{width:100%;flex-basis:100%}#tab-kb .kb-filters{flex-wrap:wrap}}

#tab-kb .kb-tools{align-items:end;gap:16px}
#tab-kb .kb-filter-field{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%;margin:0}
#tab-kb #kbStatus{flex-wrap:nowrap;overflow-x:auto;padding:2px;max-width:100%;min-height:48px;box-sizing:border-box}
#tab-kb #kbStatus .btn{flex:0 0 auto;white-space:nowrap;height:44px;min-height:44px}
#tab-kb #kbHistory{height:44px;min-height:44px;min-width:180px;margin:2px 0}
#tab-kb #kbAdmin{align-items:center;min-height:48px}
#tab-kb #kbAdmin .btn{height:44px;min-height:44px}
@media(max-width:760px){
 #tab-kb .kb-filter-field:first-of-type{width:100%}
 #tab-kb #kbAdmin{margin-left:0;gap:8px}
 #tab-kb .kb-tools{position:static}
}


/* order-source.css */
/* Store/account identity must remain readable in the existing channel column. */
#oList .tbl .order-shop,
#oList .tbl .order-shop > div {
  max-width: none;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

#oList .tbl .order-shop .order-shop-main,
#tList .order-shop-main,
#tbList .order-shop-main,
#tbList .src-card .order-shop-main,
.oc .order-shop-main,
.cs-table .order-shop-main,
.cs-card .order-shop-main,
.cs-detail .order-shop-main,
.cs-source-summary .order-shop-channel,
#rpCh .order-shop-channel,
#dCh .order-shop-channel,
#adBody .order-shop-channel,
#adCards .order-shop-channel {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex-wrap: wrap;
  white-space: normal;
  overflow-wrap: anywhere;
}
/* 渠道图标与店铺名同一行：图标不单独占行，店铺名在图标右侧换行，不出现行首圆点 */
:is(#oList, #tList, #tbList, body) .order-shop-main:has(> .order-shop-store) { display: inline; }
:is(#oList, #tList, #tbList, body) .order-shop-main:has(> .order-shop-store) > :not(.order-shop-store) { display: inline-flex; vertical-align: -4px; margin-right: 4px; }
#oList .tbl .order-shop { min-width: 168px; }
.order-target{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}
.order-target-logo{width:24px;height:24px;object-fit:contain;flex:none}
.order-platform{min-width:140px}
.order-product{min-width:160px;max-width:300px;white-space:normal;overflow-wrap:anywhere}

#oList .oc .kv>span:first-child{width:6em;white-space:nowrap;flex:none}
#oList .oc .kv{word-break:normal;overflow-wrap:anywhere;align-items:center}
/* 平台原始单：顶部「最后同步」钉在页签滚动区外，完整时间用悬停/点击层 */
#tbList .src-status-tabs{display:flex;align-items:stretch;overflow:visible;gap:var(--s1)}
#tbList .src-tab-scroller{flex:1 1 auto;min-width:0;display:flex;align-items:stretch;position:relative}
#tbList .src-tab-scroll{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--s1);overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
#tbList .src-status-tabs.has-overflow .src-tab-scroll{mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent)}
#tbList .src-tab-edge{flex:none;align-self:center;width:28px;min-width:28px;height:28px;padding:0;border:1px solid var(--bd);border-radius:var(--r-sm);background:#fff;color:var(--tx2);cursor:pointer;position:relative;z-index:1}
#tbList .src-tab-edge:disabled{opacity:.35;cursor:default}
#tbList .src-tab-edge::before{content:"";display:block;width:8px;height:8px;margin:auto;border:solid currentColor;border-width:0 2px 2px 0}
#tbList .src-tab-edge[data-src-tab-move="-1"]::before{transform:rotate(135deg);margin-left:10px}
#tbList .src-tab-edge[data-src-tab-move="1"]::before{transform:rotate(-45deg);margin-left:6px}
#tbList .src-last-sync-wrap{flex:none;position:relative;margin-left:auto;align-self:center;max-width:none}
#tbList .src-last-sync{margin:0;align-self:center;color:var(--mu);font:inherit;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 var(--s2);border:0;background:none;cursor:pointer;border-radius:var(--r-sm)}
#tbList .src-last-sync:hover,#tbList .src-last-sync:focus-visible{color:var(--tx);background:var(--fill2);outline:none}
#tbList .src-last-sync:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.src-last-sync-pop{position:fixed;z-index:40;min-width:200px;max-width:min(280px,calc(100vw - 16px));padding:var(--s3) var(--s4);background:#fff;color:var(--tx);border:1px solid var(--bd);border-radius:var(--r-md);box-shadow:var(--sh-lg,0 8px 24px #0002);font-size:var(--fs-sm);line-height:1.5}
.src-last-sync-pop[hidden]{display:none}
.src-last-sync-pop-k{margin:0;font-size:var(--fs-xs);color:var(--mu)}
.src-last-sync-pop-v{margin:2px 0 0;font-weight:var(--fw-m);font-variant-numeric:tabular-nums}
.src-last-sync-pop-s{margin:4px 0 0;font-size:var(--fs-xs);color:var(--mu)}
@media(max-width:760px){
 #tbList .src-status-tabs{flex-wrap:wrap;row-gap:var(--s1)}
 #tbList .src-tab-scroller{flex:1 1 100%}
 #tbList .src-last-sync-wrap{margin-left:auto}
 #tbList .src-tab-edge{width:36px;min-width:36px;height:36px;min-height:36px}
 #tbList .src-last-sync{min-height:36px}
}
/* 宽表在容器内横滑，避免把操作列挤窄 */
#tbList .tbl,#tbList .tbl.resizable-cols{min-width:976px}
#oList .tbl.resizable-cols,#tList .tbl.resizable-cols{min-width:960px}
.order-live-update[hidden]{display:none}
.ad-balances{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:6px 0 10px;font-size:13px}
.ad-balances[hidden]{display:none}
.ad-bal-h{color:var(--mu,#64748b)}
.ad-bal{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.ad-bal b.neg,.funds-modes .neg{color:#dc2626}
.ad-bal.warn em,.funds-warn{font-style:normal;font-size:12px;color:#b45309;white-space:normal}


/* customer-services.css */
.cs-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.cs-toolbar>.seg{margin-right:auto;display:flex;flex-wrap:wrap}.cs-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.cs-filters label{display:flex;flex-direction:column;gap:6px;min-width:140px;flex:1}.cs-filters label:first-child{flex:2;min-width:240px}.cs-filters input,.cs-filters select{width:100%;min-width:0}.cs-table-wrap{overflow:auto;width:100%} .tbl.cs-table{min-width:0;width:100%;table-layout:fixed}.cs-table td{vertical-align:top;max-width:260px;overflow-wrap:anywhere}.cs-note{white-space:pre-wrap;overflow-wrap:anywhere;max-width:220px}.cs-table .cs-note{max-height:100px}.cs-url{max-width:200px;overflow-wrap:anywhere}.cs-fees{display:flex;flex-direction:column;font-size:12px;gap:4px;margin-top:8px;color:var(--muted,#667085)}.cs-cards{display:none}.cs-renew-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.cs-detail{max-width:760px;width:calc(100vw - 32px)}.cs-detail .modal-b{overflow-wrap:anywhere}.cs-detail h4{margin:18px 0 10px}.cs-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.cs-card-edit{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #e5e7eb}.cs-card-edit label{display:flex;flex-direction:column;gap:6px;min-width:0}.cs-card-edit [name=number]{max-width:100%}.cs-detail textarea{min-height:85px;width:100%}.cs-card{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:white}.cs-card-head{display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}
@media(max-width:760px){.cs-table-wrap{display:none}.cs-cards{display:grid;gap:14px}.cs-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.cs-filters label,.cs-filters label:first-child{min-width:0}.cs-filters label:first-child{grid-column:1/-1}.cs-toolbar>.seg{width:100%;margin:0}.cs-toolbar .seg button{flex:1;white-space:nowrap}.cs-note{max-width:100%}.cs-detail{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);margin:8px auto}.cs-card-edit{display:grid;grid-template-columns:minmax(0,1fr)}.cs-card-edit input{width:100%;box-sizing:border-box}.cs-card-edit input[type=checkbox]{width:auto}.cs-actions .btn{white-space:normal}}

/* 去掉客户列后共 10 列。给销售额／利润和下单时间保底宽度，数字换行但不裁切、不叠到邻列；不够时由表外层横滑。 */
.cs-table col:nth-child(1){width:16%}
.cs-table col:nth-child(2){width:10%}
.cs-table col:nth-child(3),.cs-table col:nth-child(4){width:11%}
.cs-table col:nth-child(5){width:8%}
.cs-table col:nth-child(6){width:13%}
.cs-table col:nth-child(7){width:9%}
.cs-table col:nth-child(8){width:10%}
.cs-table col:nth-child(9){width:7%}
.cs-table col:nth-child(10){width:11%}
.cs-table th{white-space:normal}
.cs-table td.num{white-space:normal}
.cs-table th.order-price,.cs-table td.order-price{min-width:148px}
.cs-table th.num,.cs-table td.num{min-width:96px}
.cs-table .order-price .cprice{white-space:normal}
.cs-table .order-price .cprice span{display:block;white-space:nowrap}
.cs-table .order-shop-main{flex-wrap:wrap;white-space:normal;overflow-wrap:anywhere}
.cs-table td.cs-wechat{overflow-wrap:break-word;white-space:normal}
.cs-table-wrap:focus-visible{outline:2px solid var(--p);outline-offset:3px}
.cs-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px}
.cs-filters label,.cs-filters label:first-child{min-width:0;max-width:100%}
.cs-filters label:first-child{grid-column:span 2}
.cs-filter-actions{display:flex;flex-direction:column;gap:6px;justify-content:flex-end;min-width:0}
.cs-filter-spacer{min-height:calc(var(--fs-md)*var(--lh));line-height:var(--lh)}
.cs-filter-btns{display:flex;gap:12px;align-items:center;height:var(--h-ctl)}
.cs-filter-actions .btn{flex:1;height:var(--h-ctl)}
@media(min-width:1800px){.cs-filters{grid-template-columns:2fr repeat(5,minmax(140px,1fr)) auto}.cs-filters label:first-child{grid-column:auto}}
@media(max-width:760px){
 .cs-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cs-filters label:first-child,.cs-filters label:has(input[type=date]),.cs-filter-actions{grid-column:1/-1}
}

@media(min-width:768px){
 .cs-table th.act,.cs-table td.act{min-width:120px;width:12%;white-space:normal}
 .cs-table th.order-status,.cs-table td.order-status{min-width:110px;white-space:normal}
}
.cs-row-actions{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.cs-table td.act .cs-row-actions button{display:inline-flex;align-items:center;min-height:36px;white-space:normal;overflow-wrap:break-word;word-break:normal;margin:0;max-width:100%;text-align:left}


/* channel-bars.css */
/* Shared one-line platform navigation, with scrolling confined to each strip. */
#dScope,#rpChannels,#adChannels,#oChannelChips,#platSubTabs.seg,#bdChannels.seg,.cs-toolbar>.seg {
 display:flex; flex-wrap:nowrap; align-items:center; gap:6px;
 width:auto; min-width:0; max-width:100%; height:auto; min-height:44px;
 overflow-x:auto; overflow-y:hidden; padding:3px; scrollbar-width:thin;
}
#dScope>*,#rpChannels>*,#adChannels>*,#oChannelChips>*,#platSubTabs.seg>*,#bdChannels.seg>*,.cs-toolbar>.seg>* {
 flex:0 0 auto; white-space:nowrap; min-height:38px; height:auto;
}
.cs-toolbar>.seg{margin-right:auto}
.cs-toolbar:first-child>.seg{flex:1 1 260px}
.cs-toolbar>.btn{flex:0 0 auto}
@media(max-width:760px){
 #dScope{display:flex}
 .cs-toolbar:first-child>.seg{flex-basis:100%}
 .cs-toolbar>.seg{width:auto;margin:0 auto 0 0}
 .cs-toolbar .seg button{flex:0 0 auto}
 #dScope>*,#rpChannels>*,#adChannels>*,#oChannelChips>*,#platSubTabs.seg>*,#bdChannels.seg>*,.cs-toolbar>.seg>*{min-height:44px}
}
/* 广告投放渠道页签带渠道名后，手机上换行排列，不必横滑找渠道 */
@media(max-width:760px){
 #bdChannels.seg{flex-wrap:wrap;overflow:visible}
}


/* list-report-ui.css */
/* Shared list layout and report presentation, without financial calculations. */
.resizable-cols .col-rs:focus-visible{outline:2px solid var(--p);outline-offset:-2px;background:var(--pb)}
.platform-status{display:grid;gap:var(--s1);min-width:0}
.platform-status-tags{display:flex;flex-wrap:wrap;gap:var(--s1)}
.status-tag{display:inline-flex;align-items:center;max-width:100%;padding:3px 8px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-m);line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.status-success{color:var(--ok);background:var(--okl)}
.status-info{color:var(--pd);background:var(--pl)}
.status-warning{color:var(--wn);background:var(--wnl)}
.status-danger{color:var(--er);background:var(--erl)}
.status-muted{color:var(--mu);background:var(--fill2)}
.status-amount{font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}
.status-note{font-size:var(--fs-xs);color:var(--wn);white-space:normal}
#tbList .tbl td.source-status{white-space:normal;overflow-wrap:anywhere}
#tbList .tbl td.source-time{white-space:nowrap;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
#tbList .tbl td.tb-tid{overflow-wrap:anywhere;word-break:normal}
#tbList .src-card-h>.platform-status{flex-basis:100%}
#rpChannels,#adChannels{margin-bottom:var(--s3)}
#rpChannels>.btn,#adChannels>.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-width:88px}
#rpChannels>.btn.on,#adChannels>.btn.on{background:var(--p);border-color:var(--p);color:#fff}
#rpState{display:flex;align-items:center;gap:var(--s3);padding:var(--s5);margin-top:var(--s4);border-radius:var(--r-lg);background:var(--card)}
#rpState[hidden],#rpResults[hidden]{display:none!important}
#rpResults{display:contents}
#baiduBoard .bd-scroll table{width:100%}
#baiduBoard .bd-scroll th,#baiduBoard .bd-scroll td{padding:var(--s3);text-align:right;font-variant-numeric:tabular-nums}
#baiduBoard .bd-scroll th:first-child,#baiduBoard .bd-scroll td:first-child{text-align:left}
@media(max-width:760px){
 .filters .filter-action-btns{flex-wrap:wrap;height:auto;min-width:0;max-width:100%}
 .filters .filter-action-btns .btn{flex:1 1 auto;min-height:44px}
}


/* ad-funding.css */
[data-funds-form][hidden], [data-funds-new][hidden] { display: none !important; }
[data-funds-form] { display: block; margin-top: 16px; }
[data-funds-form] input, [data-funds-form] select, [data-funds-form] textarea { max-width: 100%; }
.ad-funds-modal .tbl { min-width: 0; table-layout: fixed; width: 100%; }
.ad-funds-modal .tbl td, .ad-funds-modal .tbl th { white-space: normal; overflow-wrap: anywhere; }
.ad-funds-modal .table-wrap { display: block !important; }
#adFundingOpen[hidden] { display: none !important; }
@media(max-width:760px) {
  #tab-ads .panel-h { flex-wrap: wrap; }
  #tab-ads .panel-h h3 { flex-basis: 100%; }
  #tab-ads .panel-h > .btn { flex: 1; min-width: 0; white-space: normal; }
}
.ad-funds-modal[open] { display: flex; flex-direction: column; overflow: hidden; }
[data-service-form][hidden], [data-service-new][hidden] { display: none !important; }
.ad-funds-modal [data-service-form] { display: block; max-height: none; margin-top: 16px; }
.ad-funds-modal .service-fee-filter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; max-height: none; }
.service-fee-filter label { display: flex; flex-direction: column; min-width: 0; }
.ad-funds-modal section { margin-top: 24px; border-top: 1px solid var(--line, #ddd); padding-top: 16px; }
.ad-funds-modal [data-service-fees], .ad-funds-modal .table-wrap { min-width: 0; max-width: 100%; }
.ad-funds-modal .tbl:not(.rtbl) { min-width: 0; }
.ad-funds-modal .table-wrap .btn { max-width: 100%; min-width: 0; white-space: normal; padding: 0 8px; height: auto; min-height: 44px; }
@media(max-width:760px) {
  .ad-funds-modal input, .ad-funds-modal select, .ad-funds-modal textarea { font-size: 16px; min-height: 44px; }
  .ad-funds-modal .btn { min-height: 44px; }
  .ad-funds-modal .service-fee-filter { grid-template-columns: minmax(0, 1fr); }
}

/* 广告费页：首屏完整展示合计与账户余额，工具栏/渠道/筛选不被裁成半截 */
#tab-ads .bulk,#tab-ads .bulk.off{display:flex;flex-wrap:wrap;align-items:flex-start;overflow:visible;opacity:1;max-width:100%;min-width:0}
#tab-ads .bulk>*{flex-shrink:1;min-width:0}
#tab-ads #adSum{flex:1 1 100%;white-space:normal;line-height:1.6;overflow-wrap:anywhere}
#tab-ads .ad-balances{flex:1 1 100%;margin:4px 0 0;max-width:100%}
#tab-ads .ad-bal{white-space:nowrap}
.ad-funds-modal .funds-modes{table-layout:auto}
.ad-funds-modal .funds-modes th:nth-child(2),
.ad-funds-modal .funds-modes td:nth-child(2){width:12.5em;min-width:12em}
.ad-funds-modal .funds-modes select{width:100%;min-width:11em;max-width:100%}
@media(max-width:760px){
  #tab-ads .panel-h{flex-wrap:wrap;gap:var(--s2);align-items:stretch}
  #tab-ads .panel-h h3{flex:1 1 100%}
  #tab-ads .panel-h>.btn{flex:1 1 100%;height:auto;min-height:44px;white-space:normal;line-height:1.3;padding:8px 12px}
  #adChannels{flex-wrap:wrap;overflow:visible;height:auto}
  #tab-ads .filter-action-btns{flex-wrap:wrap}
  #tab-ads .filter-action-btns .btn{flex:1 1 auto;height:auto;min-height:44px;white-space:normal;line-height:1.3;padding:8px 10px}
  .ad-funds-modal .funds-modes-wrap{overflow:visible}
  .ad-funds-modal .funds-modes thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .ad-funds-modal .funds-modes,.ad-funds-modal .funds-modes tbody,.ad-funds-modal .funds-modes tr,.ad-funds-modal .funds-modes td{display:block;width:100%;max-width:100%;box-sizing:border-box}
  .ad-funds-modal .funds-modes tr{border:1px solid var(--bd);border-radius:var(--r-md);padding:10px 12px;margin:0 0 10px;background:#fff}
  .ad-funds-modal .funds-modes td{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border:0;text-align:right;min-width:0}
  .ad-funds-modal .funds-modes td::before{content:attr(data-th);color:var(--mu);flex:none;text-align:left}
  .ad-funds-modal .funds-modes td[data-th="消耗来源"]{flex-wrap:wrap}
  .ad-funds-modal .funds-modes select{width:100%;min-width:0}
}
@media(min-width:761px){
  #tab-ads #adSum{flex:1 1 auto}
  #tab-ads .ad-balances{flex:1 1 auto;margin:0 0 0 auto}
}

/* 充值列表：日期/渠道/金额/平摊不折行，窄屏整表横滑；备注可换行。余额与提醒分行，金额不被拆开 */
.ad-funds-modal .tbl.funds-list{table-layout:auto;width:100%;min-width:max-content}
.ad-funds-modal .funds-list th,.ad-funds-modal .funds-list td:not(:last-child){white-space:nowrap;overflow-wrap:normal}
.ad-funds-modal .funds-list td:last-child{min-width:8em}
.ad-funds-modal .table-wrap:has(.funds-list){overflow-x:auto}
.ad-funds-modal .funds-num{white-space:nowrap}
@media(max-width:760px){
  .ad-funds-modal .funds-modes td{flex-wrap:wrap}
  .ad-funds-modal .funds-modes td .funds-warn{flex:1 1 100%;text-align:right}
  .ad-funds-modal .funds-modes td .brand-logo-text{white-space:nowrap}
}

