/* ============ 设计规范（Design Tokens）============
 字号：12 / 13 / 14 / 16 / 20 / 24（大数字 28）  行高：1.5 正文，1.3 标题
 字重：400 / 500 / 600 / 700   间距：4 的倍数   圆角：6 / 8 / 12 / 16
 控件高度：36（默认）/ 28（小）/ 44（大）   表格：表头 40，单元格 12×12
 字体：系统中文字体栈；数字统一等宽（tabular-nums） */
: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:28px;--h-lg:44px;--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:#fff;--tx:#1e293b;--tx2:#334155;--mu:#64748b;--mu2:#94a3b8;--bd:#e5e7eb;--bd2:#f1f5f9;--fill:#f8fafc;--fill2:#f1f5f9;
 --ok:#16a34a;--okl:#dcfce7;--wn:#d97706;--wnl:#fef3c7;--er:#dc2626;--erl:#fee2e2;
 --sh:0 1px 2px rgba(16,24,40,.04),0 2px 8px rgba(16,24,40,.06);--sh-lg:0 20px 60px #0f172a40;
 --side-w:220px;--content-max:1600px;--gap:var(--s4)}
*{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{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{border-color:var(--p2);box-shadow:0 0 0 3px #6366f126}
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(--mu)}
.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:#fff;border-right:1px solid var(--bd);display:flex;flex-direction:column;padding:var(--s5) var(--s3)}
.sidebar .brand{padding:0 var(--s2) var(--s5)}.sidebar>*{position:sticky;top:var(--s5)}.sidebar nav{top:76px;display:grid;gap:var(--s1)}
.sidebar nav a{display:flex;gap:var(--s3);align-items:center;height:40px;padding:0 var(--s3);border-radius:var(--r-md);color:#475569;font-weight:var(--fw-m);font-size:var(--fs-md)}
.sidebar nav a i{font-style:normal;width:20px;text-align:center}.sidebar nav a:hover{background:var(--fill2)}.sidebar nav a.on{background:var(--pl);color:var(--p)}
.main{flex:1;min-width:0}
.topbar{position:sticky;top:0;z-index:10;height:64px;background:#ffffffe6;backdrop-filter:blur(8px);border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;padding:0 var(--s6)}
.topbar h1{font-size:var(--fs-xl)}.crumb{color:var(--mu);font-size:var(--fs-xs)}
.user{display:flex;align-items:center;gap:var(--s2);padding-left:var(--s3);border-left:1px solid var(--bd);font-size:var(--fs-md)}
.avatar{width:32px;height:32px;border-radius:50%;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}.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}
@media(max-width:600px){.filter-fold>:not(:first-child):not(:nth-child(2)):not(.filter-more){display:none}.filter-fold.filters-open>:not(.hidden):not(.filter-more){display:revert}.filter-fold>.filter-more{display:block}.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 select,.fi input[type=date]{width:160px}.fi .search input{width:260px}
.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}
.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:#fafbff}.tbl tr.sel td{background:#f5f7ff}
.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.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.sm{width:min(400px,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;max-height:calc(100vh - 48px)}
.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)}
.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:"*";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 i{font-style:normal;width:24px;text-align:center}
/* toast */
.toast .lnk{margin-left:12px;color:inherit}
#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)}#toasts:not(:popover-open){display:none}
.toast{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));animation:tin .2s}
.toast.ok::before{content:"✓ ";color:#4ade80}.toast.bad::before{content:"✕ ";color:#f87171}@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:10px}.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:1360px) 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:56px;padding:0 var(--s4)}.topbar [data-add],.user .btn,.hide-sm{display:none}.user{border:0}
 .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{grid-column:1/-1}.fi select,.fi input[type=date],.fi .search input{width:100%}
 .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 a{display:flex;flex-direction:column;align-items:center;font-size:var(--fs-xs);color:var(--mu)}.tabbar a i{font-style:normal;font-size:var(--fs-xl);line-height:24px}.tabbar a.on{color:var(--p)}
 .tabbar .fab i{width:44px;height:44px;border-radius:50%;background:var(--p);color:#fff;display:grid;place-items:center;margin-top:-20px;box-shadow:0 4px 12px #4f46e566;font-size:var(--fs-2xl)}
 .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:94vh}.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:#475569;font-weight:var(--fw-m);white-space:nowrap}
.set-nav a:hover{background:var(--fill2)}.set-nav a.on{background:var(--pl);color:var(--p)}
.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}.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;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(2,minmax(0,1fr));gap:var(--s3)}.todo-cards .stat{box-shadow:none;border:1px solid var(--bd);padding:var(--s3) var(--s4)}.todo-cards .sv{font-size:var(--fs-2xl)}
.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}
.pw-row{display:flex;gap:var(--s2)}.pw-row input{flex:1;min-width:0}.pw-row .btn{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)}
.autbl td.audet{max-width:520px;white-space:normal;word-break:break-all;font-size:var(--fs-sm);line-height:1.6}
.au-rl{display:none}
#oTabs{margin-bottom:var(--s3)}
@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:break-all;line-height:1.6;margin-top:var(--s1)}
 #auF{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}.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(auto-fill,minmax(230px,1fr));gap:16px;align-items:start}
#tab-notes .nt-card{border:1px solid #cbd5e1;border-radius:12px;padding:16px;min-width:0;color:#1e293b;cursor:pointer;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 b{white-space:normal;overflow-wrap:anywhere}
#tab-notes .nt-card .nt-ex{margin:12px 0;color:#334155;white-space:pre-wrap;-webkit-line-clamp:8}
#tab-notes .nt-card .nt-r4{margin:12px 0 0;display:flex;flex-wrap:wrap}
.nt-card time{font-size:12px;color:#475569}
.nt-quick{margin:16px auto;max-width:600px;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
#ntQuickFields:not([hidden]){display:grid;gap:10px;margin-top:12px}
#ntQuickBody{min-height:100px}
@media(max-width:600px){.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}.nt-quick{margin:12px}#tab-notes .pager{flex-wrap:wrap}}
.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}}
#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%}@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:18px;padding:14px}.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 #3978db}.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:4px 8px;border-radius:8px;background:#eef0f4;color:#475569;font-size:12px}.kb-status.supported{background:#dcfce7;color:#166534}.kb-status.partial{background:#fef3c7;color:#92400e}.kb-status.unsupported{background:#fee2e2;color:#991b1b}.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:18px;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:17px;font-weight:700;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:11px}.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:20px;font-weight:700;color:#4338ca;overflow-wrap:anywhere}.calc-details{white-space:pre-line;line-height:1.9;overflow-wrap:anywhere}.calc-error{color:#b91c1c}.calc-source{font-size:12px;overflow-wrap:anywhere;color:#64748b}.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:18px}.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}
 #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)}.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)}
}

/* Compact order form: one scrolling body and a persistent action bar. */
#dlg{width:min(1120px,calc(100vw - 32px))}
#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}
#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}
#orderForm .modal-f{position:sticky;bottom:0;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(max-width:600px){#dlg{width:100vw}#orderForm .grid{grid-template-columns:minmax(0,1fr)}#orderForm .modal-b{padding:12px}}
#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:has([name=price]){order:-3}
#orderForm .field:has([name=order_date]),#orderForm .field:has([name=expire_date]),#orderForm .field:has([name=shop_id]){order:-2}
#orderForm .field:has(#bizSeg){order:-5}
#orderForm .field:has([name=product]),#orderForm .field:has([name=account]){order:-4}
.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:70px;min-width:0}

.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 .order-product,#oList .tbl .order-shop{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #oList .order-product .sub,#oList .order-shop>div{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #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;padding-right:20px}
 .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.cust{min-width:80px;max-width:100px}
 #oList .tbl td:nth-child(3){max-width:100px}
 #oList .tbl td:nth-child(3) .cp{max-width:72px}
 #oList .tbl .order-product,#oList .tbl .order-shop,
 #oList .order-product .sub,#oList .order-shop>div{max-width:110px}
 #oList .tbl .act{min-width:120px;width:120px;white-space:normal}
}
#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:18px; }
.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; }
}
