/* ==========================================================================
   建雄智能 · 电商经营工作台
   单层设计 token · 深矿物蓝品牌体系
   ========================================================================== */
:root{
  color-scheme:light;

  /* 表面层级：从页面底到浮层，语义明确不靠编号猜 */
  --bg:#f5f7fa;
  --surface:#ffffff;
  --surface-sunken:#eef2f7;
  --surface-raised:#f9fbfd;
  --surface-hover:#edf2f8;
  --surface-nav:#f7f9fb;

  /* 文字 */
  --text:#233247;
  --text-2:#3e4e62;
  --text-3:#596b7e;
  --text-on-accent:#ffffff;

  /* 描边 */
  --border:#d8e1eb;
  --border-strong:#c7d3e0;
  --border-hover:#b9c9d9;
  --border-active:#b7d2ea;
  --border-nav:#d8e1eb;

  /* 强调色：深矿物蓝，按钮与图表共用 */
  --accent:#2469a6;
  --accent-hover:#1e5c96;
  --accent-deep:#1e3a5f;
  --accent-soft:#e7f0f9;
  --accent-line:#b7d2ea;

  /* 语义色：每个都有 fill / text / line 三档 */
  --green:#39755f;--green-soft:#eaf6f1;--green-line:#d3e8de;
  --red:#bd3d4b;--red-soft:#fdecef;--red-line:#f6d6db;
  --amber:#8c681e;--amber-soft:#fdf3e0;--amber-line:#f2e2c4;
  --blue:#2469a6;--blue-soft:#e7f0f9;--blue-line:#b7d2ea;
  --neutral:#68778b;--neutral-soft:#eef1f5;--neutral-line:#dfe4ea;

  /* 圆角：只有四档 */
  --radius-xs:4px;
  --radius-sm:6px;
  --radius:8px;
  --radius-lg:12px;

  /* 阴影：冷炭蓝灰 */
  --shadow:0 5px 18px rgba(26,34,48,.06);
  --shadow-md:0 12px 30px rgba(26,34,48,.09);
  --shadow-lg:0 16px 40px rgba(26,34,48,.13);

  /* 焦点环：统一变量，不再散落硬编码 */
  --focus-ring:0 0 0 3px rgba(36,105,166,.28);
  --focus-outline:#2469a6;

  /* 动效：只有三档 */
  --ease:cubic-bezier(.16,1,.3,1);
  --t-fast:120ms var(--ease);
  --t-base:180ms var(--ease);
  --t-enter:260ms var(--ease);

  /* 字体 */
  /* 字体与字号见下方「v2 字体系统」，这里不再重复定义 */

  /* 字号 */

  /* 行高：数据、标题、控件、正文和长文五档 */
  --lh-data:1.15;--lh-heading:1.3;--lh-control:1.5;--lh-body:1.6;--lh-reading:1.7;

  /* 侧栏深色：导航/登录层专用 */
  --nav-deep:#1e2d43;
  --nav-deep-2:#18263a;
  --nav-text:#d4ddea;
  --nav-text-dim:#a5b3c4;
  --nav-active:#81b8e3;

  --sidebar-w:232px;

  --z-sidebar:50;--z-sticky:60;--z-popover:100;--z-modal:200;--z-toast:300;--z-gate:400;
}

/* 团队待办：把概况、筛选和结果做成清楚的三层工作区。 */
.team-center{display:grid;gap:1rem;min-width:0;width:100%;max-width:84rem;margin-inline:auto}
.team-heading,.team-pagination,.team-file-row,.team-detail-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.team-heading{justify-content:space-between;align-items:flex-end;padding:.125rem 0 .25rem}
.team-heading>div{min-width:0}.team-heading h1{font-size:var(--fs-xl);margin:0 0 .25rem;letter-spacing:-.025em;line-height:var(--lh-heading)}.team-heading p,.team-footnote{color:var(--text-2);font-size:var(--fs-sm)}
.team-heading>.btn{min-height:2.75rem;padding-inline:1rem}.team-heading>.btn [data-icon]{width:1rem;height:1rem}
.team-center .team-list-panel{padding:0;min-width:0;overflow:hidden}
.team-toolbar{display:grid;border-bottom:1px solid var(--border);background:var(--surface-raised)}
.team-toolbar-primary,.team-toolbar-secondary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem}
.team-toolbar-primary{border-bottom:1px solid var(--border)}
.team-tabs,.team-search,.team-layout-switch{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem}
.team-tab,.team-layout-button{min-height:2.25rem;padding:.375rem .75rem;border:1px solid transparent;border-radius:var(--radius-xs);color:var(--text-2);font-size:var(--fs-xs);font-weight:600;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.team-tab:hover,.team-layout-button:hover{background:var(--surface);color:var(--text)}
.team-tab[aria-pressed="true"],.team-layout-button[aria-pressed="true"]{background:var(--surface);border-color:var(--border-strong);color:var(--accent-deep);box-shadow:0 2px 7px rgba(26,34,48,.05)}
.team-tab-count{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;margin-left:.375rem;padding:0 .25rem;border-radius:999px;background:var(--surface-sunken);color:var(--text-2);font-family:var(--font-num);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}
.team-tab[aria-pressed="true"] .team-tab-count{background:var(--accent-soft);color:var(--accent-deep)}
.team-search input{min-width:12rem;width:min(19rem,28vw);height:2.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);padding:.5rem .75rem;background:var(--surface);color:var(--text);outline:none}
.team-search input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.team-search .btn,.team-search .icon-btn{min-height:2.5rem;height:2.5rem}.team-search .btn [data-icon]{width:.875rem;height:.875rem}
.team-result-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}
.team-result-heading strong{font-size:var(--fs-sm)}.team-result-heading span{color:var(--text-3);font-size:var(--fs-xs)}
.team-result{min-height:8rem;padding:0 1rem}
.team-rows{display:grid}.team-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 7rem 12rem;gap:1.25rem;align-items:center;padding:1rem .25rem;border:0;border-bottom:1px solid var(--border);text-align:left;color:var(--text);background:transparent;cursor:pointer;transition:background var(--t-fast),transform var(--t-fast)}
.team-row:hover{transform:translateX(.5rem);background:var(--surface-hover)}.team-row-main,.team-row-status,.team-row-due{display:grid;gap:.4375rem;min-width:0}.team-row-main strong{font-size:var(--fs-md);overflow-wrap:anywhere}.team-row small,.team-file-row small{font-size:var(--fs-xs);color:var(--text-2)}.team-row-due strong{font-size:var(--fs-body);font-weight:600}.team-row-status .status-pill{justify-self:start}
.team-pagination{justify-content:flex-end;padding:.75rem 1rem;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-2)}.team-pagination>span{margin-right:auto}
.team-empty{padding:1.5rem 1rem;text-align:center;color:var(--text-2)}.team-empty-state{display:grid;place-items:center;align-content:center;gap:.375rem;min-height:8rem}.team-empty-state strong{font-size:var(--fs-sm);color:var(--text)}.team-empty-state p{max-width:32rem;font-size:var(--fs-xs);line-height:var(--lh-body)}.team-empty-icon{width:1.5rem;height:1.5rem;margin-bottom:.125rem;color:var(--accent)}.team-empty-icon.is-loading{animation:refreshSpin .8s linear infinite}.team-empty-icon.is-error{color:var(--red)}.team-error{color:var(--red);overflow-wrap:anywhere}
.team-detail{font-size:var(--fs-body);line-height:var(--lh-reading);overflow-wrap:anywhere}.team-description,.team-activity p{white-space:pre-wrap}.team-detail small{color:var(--text-2)}
.team-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.team-section h3,.team-attachment-zone h3{font-size:var(--fs-md);margin:0 0 12px}.team-section p{margin:8px 0}.team-inline-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:12px 0}.team-inline-form label,.team-completion{display:grid;gap:8px;flex:1;min-width:0}.team-inline-form input,.team-completion textarea{width:100%;min-width:0;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-xs);padding:10px;color:var(--text)}
.team-completion{margin-top:12px}.team-file-picker{display:grid;gap:8px;padding:12px;border:1px dashed var(--border-strong);border-radius:var(--radius-xs);background:var(--surface-raised);margin:12px 0}.team-file-picker input{max-width:100%;width:100%;font-size:var(--fs-sm)}
.team-attachment-zone>small{line-height:var(--lh-reading);color:var(--text-2)}.team-attachment-zone ul{padding-left:18px;overflow-wrap:anywhere}.team-attachment-zone li{padding:6px 0}
.team-file-row{padding:12px 0;border-bottom:1px solid var(--border)}.team-file-row>div{display:grid;gap:4px;flex:1;min-width:0}.team-file-row strong{overflow-wrap:anywhere;font-weight:500}.team-file-row .text-btn{min-height:44px}
.team-activity{list-style:none;padding:0;margin:20px 0 0}.team-activity li{padding:12px 0;border-bottom:1px solid var(--border)}.team-activity li>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.team-activity time{font-size:var(--fs-xs);color:var(--text-2)}
#teamUploadStatus{padding-top:8px;color:var(--text-2)}
.team-toolbar-secondary{align-items:flex-end}.team-view-tools{display:flex;align-items:flex-end;gap:.625rem;flex-wrap:wrap}.team-view-tools label{display:grid;gap:.25rem;color:var(--text-2);font-size:var(--fs-2xs)}.team-view-tools select,.team-inline-form select{min-height:2.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);padding:.375rem 2.125rem .375rem .625rem;background:var(--surface);color:var(--text)}
.team-row-labels{display:flex;gap:.375rem;flex-wrap:wrap}.team-row-labels em{padding:.125rem .4375rem;border-radius:999px;background:var(--neutral-soft);color:var(--neutral);font-size:var(--fs-2xs);font-style:normal;font-weight:600}.team-row-labels .priority-urgent{background:var(--red-soft);color:var(--red)}.team-row-labels .priority-high{background:var(--amber-soft);color:var(--amber)}
.team-progress{display:block;width:min(280px,100%);height:5px;overflow:hidden;border-radius:999px;background:var(--surface-sunken)}.team-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:transform var(--t-base);transform-origin:left}.team-progress.large{width:100%;height:7px;margin:10px 0 14px}
.team-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:16px}.team-board .team-row{grid-template-columns:1fr auto;padding:18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}.team-board .team-row-main{grid-column:1/-1}.team-board .team-row-due{grid-column:1}.team-board .team-row-status{grid-column:2;justify-items:end}
.team-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.team-section-heading h3{margin:0}.team-subtask-list{display:grid;gap:8px}.team-subtask{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised)}.team-subtask-check{display:flex;align-items:center;gap:10px;min-width:0;flex:1;text-align:left}.team-subtask-check>span:first-child{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-on-accent)}.team-subtask.is-done .team-subtask-check>span:first-child{border-color:var(--green);background:var(--green)}.team-subtask.is-done .team-subtask-check>span:last-child{text-decoration:line-through;color:var(--text-2)}.team-subtask-check:disabled{cursor:default}.team-subtask-form label{flex:1}.team-muted{color:var(--text-2)}

/* 经营业务页：入口按业务场景组织，技术来源收进数据接入管理。 */
.business-page{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;min-width:0}.business-page-heading{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;min-width:0;padding:.125rem 0 .25rem}.business-page-heading>div{min-width:0}.business-page-heading h1{margin:0 0 .25rem;font-size:var(--fs-xl);letter-spacing:-.025em;line-height:var(--lh-heading)}.business-page-heading p{max-width:760px;color:var(--text-2);font-size:var(--fs-sm)}.business-page-heading .eyebrow{margin-bottom:.25rem}.business-page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.business-page-actions .btn{white-space:nowrap}
.business-entry-grid,.connector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.business-entry-card,.connector-card{min-width:0;padding:17px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}.business-entry-card h3,.connector-card h3{margin:12px 0 4px;font-size:var(--fs-md)}.business-entry-card p,.connector-card p{color:var(--text-2)}.business-entry-card small,.connector-card small{display:block;margin-top:10px;color:var(--text-2)}
.connector-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.connector-type{color:var(--text-2);font-family:var(--font-num);font-size:var(--fs-xs);overflow-wrap:anywhere}
.erp-channel-panel{min-width:0;padding:0}.erp-channel-panel>.panel-head{margin:0;padding:1rem 1.125rem;border-bottom:1px solid var(--border)}.erp-channel-panel>.panel-head p{margin:.25rem 0 0;color:var(--text-2);font-size:var(--fs-xs)}.erp-channel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.erp-channel-row{display:grid;align-content:start;gap:.625rem;min-width:0;padding:1rem 1.125rem}.erp-channel-row+.erp-channel-row{border-left:1px solid var(--border)}.erp-channel-name{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:var(--fs-sm)}.erp-channel-times{display:flex;flex-wrap:wrap;gap:.375rem 1.25rem;color:var(--text-2);font-size:var(--fs-xs)}.erp-channel-times span{display:flex;gap:.375rem;min-width:0}.erp-channel-times strong{color:var(--text);font-weight:600;overflow-wrap:anywhere}.erp-channel-row p{margin:0;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}.erp-channel-panel>.form-hint{margin:0;padding:.75rem 1.125rem;border-top:1px solid var(--border);background:var(--surface-raised)}
.sync-detail-list{display:grid;gap:.75rem}.sync-detail-row{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.sync-detail-row dl{display:grid;gap:.5rem;margin:0}.sync-detail-row dl>div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:.5rem;font-size:var(--fs-xs)}.sync-detail-row dt{color:var(--text-2)}.sync-detail-row dd{margin:0;font-weight:600;overflow-wrap:anywhere}.sync-detail-row p{margin:0;padding-top:.5rem;border-top:1px solid var(--border);color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.promotion-report{display:grid;gap:1rem;padding:1.125rem 1.25rem;min-width:0}
.promotion-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.promotion-head h2{margin:.25rem 0;font-size:var(--fs-lg);line-height:var(--lh-heading)}
.promotion-head p{color:var(--text-2);font-size:var(--fs-sm)}
.promotion-summary{display:grid;grid-template-columns:minmax(13rem,.8fr) minmax(0,2.4fr);gap:.75rem;min-width:0}
.promotion-spend{display:grid;align-content:center;gap:.35rem;padding:1.125rem;border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--accent-soft)}
.promotion-spend>span,.promotion-roi>span{color:var(--text-2);font-size:var(--fs-xs);font-weight:600}
.promotion-spend strong{color:var(--accent-deep);font-family:var(--font-num);font-size:1.5rem;font-variant-numeric:tabular-nums;line-height:var(--lh-data);overflow-wrap:anywhere}
.promotion-spend small{color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-control)}
.promotion-roi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;min-width:0}
.promotion-roi{display:grid;align-content:start;gap:.375rem;min-width:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}
.promotion-roi strong{font-family:var(--font-num);font-size:1.5rem;font-variant-numeric:tabular-nums;line-height:var(--lh-data)}
.promotion-roi p{font-size:var(--fs-xs);color:var(--text-2);line-height:var(--lh-body);overflow-wrap:anywhere}
.promotion-meta{display:flex;align-items:center;gap:.375rem 1.125rem;flex-wrap:wrap;padding:.125rem 0;color:var(--text-2);font-size:var(--fs-xs)}
.promotion-alert{padding:.75rem .875rem;border:1px solid var(--amber-line);border-radius:var(--radius-xs);background:var(--amber-soft);color:var(--amber);font-size:var(--fs-sm);line-height:var(--lh-control)}
.promotion-analysis-overview{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding:.625rem .875rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised);color:var(--text-2);font-size:var(--fs-xs)}
.promotion-analysis-overview strong{color:var(--text);font-family:var(--font-num);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.promotion-analysis-note{margin-top:-.5rem;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.promotion-candidate-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;min-width:0}
.promotion-candidate{display:grid;grid-template-columns:1.75rem minmax(0,1fr);align-content:start;gap:.75rem;min-width:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}
.promotion-candidate-rank{display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-xs);background:var(--accent-soft);color:var(--accent-deep);font-family:var(--font-num);font-size:var(--fs-sm);font-weight:700}
.promotion-candidate-body{min-width:0}.promotion-candidate-body h3{font-size:var(--fs-sm);line-height:var(--lh-control);overflow-wrap:anywhere}
.promotion-candidate-meta{margin:.25rem 0 .75rem;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body);overflow-wrap:anywhere}
.promotion-candidate-meta strong{color:var(--text);font-family:var(--font-num);font-variant-numeric:tabular-nums}
.promotion-clues{display:grid;gap:.375rem;padding-top:.625rem;border-top:1px solid var(--border)}
.promotion-clues p{color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}.promotion-clues strong{color:var(--text)}
.promotion-candidate-more{grid-column:1/-1;border-top:1px solid var(--border);padding-top:.75rem}.promotion-candidate-more summary{width:max-content;max-width:100%;color:var(--accent-deep);font-size:var(--fs-sm);font-weight:600;cursor:pointer}.promotion-candidate-more[open]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.promotion-candidate-more[open] summary{grid-column:1/-1}
.promotion-analysis-foot{display:grid;gap:.375rem;padding-top:.75rem;border-top:1px solid var(--border)}.promotion-analysis-foot p{color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}.promotion-analysis-foot summary{width:max-content;max-width:100%;color:var(--accent-deep);font-size:var(--fs-xs);font-weight:600;cursor:pointer}.promotion-analysis-foot details p{margin-top:.5rem}
@media(max-width:1100px){.promotion-candidate-list,.promotion-candidate-more[open]{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1200px){.promotion-summary{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.promotion-report{padding:.875rem}.promotion-head{flex-direction:column}.promotion-roi-grid{grid-template-columns:minmax(0,1fr)}.promotion-meta{display:grid;gap:.375rem}}
.business-secondary{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.business-secondary>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;cursor:pointer;font-weight:700}.business-secondary>summary span{color:var(--text-2);font-size:var(--fs-sm);font-weight:400}.business-secondary[open]>summary{border-bottom:1px solid var(--border)}.business-secondary>div:not([id]),.business-secondary-body{padding:16px}
@media(max-width:1000px){.business-entry-grid,.connector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.erp-channel-list{grid-template-columns:minmax(0,1fr)}.erp-channel-row+.erp-channel-row{border-left:0;border-top:1px solid var(--border)}}
@media(max-width:700px){
  .team-heading{align-items:flex-start}.team-heading h1{font-size:var(--fs-lg)}
  .team-heading>.btn{width:100%}
  .team-toolbar-primary,.team-toolbar-secondary{display:grid;grid-template-columns:minmax(0,1fr);padding:.75rem}
  .team-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.team-tabs::-webkit-scrollbar{display:none}.team-tab{flex:0 0 auto;min-height:2.75rem}
  .team-layout-switch{justify-self:start}.team-layout-button{min-height:2.75rem}
  .team-view-tools{display:grid;grid-template-columns:1fr 1fr;width:100%}.team-view-tools label select{width:100%}
  .team-search{width:100%;flex-wrap:nowrap}.team-search input{flex:1;width:6rem;min-width:0}.team-search .btn{padding-inline:.75rem}.team-search .icon-btn{flex:0 0 2.5rem}
  .team-result{padding:0 .75rem}.team-row{grid-template-columns:minmax(0,1fr) 6rem;gap:.75rem}.team-row-main{grid-column:1/-1}.team-row-due{grid-column:1;grid-row:2}.team-row-status{grid-column:2;grid-row:2}.team-board{grid-template-columns:1fr}
  .team-inline-form{display:grid;grid-template-columns:minmax(0,1fr)}.team-file-row{gap:.5rem}
  .business-page-heading{align-items:flex-start;flex-direction:column}.business-page-actions{width:100%}.business-page-actions .btn{flex:1}.business-entry-grid,.connector-grid{grid-template-columns:1fr}.business-secondary>summary{align-items:flex-start;flex-direction:column}.business-secondary>summary span{margin:0}
}

/* ===== Reset & Base ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{font-size:var(--fs-16);scroll-behavior:smooth;scroll-padding-top:6rem}
body{
  font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);
  background:var(--bg);color:var(--text);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden
}
button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:var(--fs-md)}
a{color:inherit;text-decoration:none}
::selection{background:#cfe2f8;color:var(--text)}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-xs)}
::-webkit-scrollbar-thumb:hover{background:var(--text-3)}

/* 数字统一等宽，避免列表中左右跳动 */
.num,.metric-card strong,.metric-main strong,.stat-card .value,
.daily-progress strong,.source-health strong,.chart-summary strong,
.login-signal>div>span,.ring span,.trend,.check-time,.timeline-time,
.nav-item em,.notification-btn b,.doc-card-foot,.module-stat{
  font-family:var(--font-num);font-variant-numeric:tabular-nums
}

/* 焦点可见性：统一走 token */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:var(--radius-xs)
}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}

/* ===== Icons (CSS mask) ===== */
[data-icon]{display:inline-block;width:18px;height:18px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;flex-shrink:0}
[data-icon="grid"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 3h8v8H3zm10 0h8v8h-8zM3 13h8v8H3zm10 0h8v8h-8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 3h8v8H3zm10 0h8v8h-8zM3 13h8v8H3zm10 0h8v8h-8z'/%3E%3C/svg%3E")}
[data-icon="database"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='M4 6c0-2 3.6-3 8-3s8 1 8 3-3.6 3-8 3-8-1-8-3Zm0 0v6c0 2 3.6 3 8 3s8-1 8-3V6M4 12v6c0 2 3.6 3 8 3s8-1 8-3v-6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='M4 6c0-2 3.6-3 8-3s8 1 8 3-3.6 3-8 3-8-1-8-3Zm0 0v6c0 2 3.6 3 8 3s8-1 8-3V6M4 12v6c0 2 3.6 3 8 3s8-1 8-3v-6'/%3E%3C/svg%3E")}
[data-icon="chart"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 20V10h4v10zm6 0V4h4v16zm6 0v-7h4v7z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 20V10h4v10zm6 0V4h4v16zm6 0v-7h4v7z'/%3E%3C/svg%3E")}
[data-icon="edit"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 17.25V21h3.75L17.8 9.94l-3.75-3.75zM20.7 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 17.25V21h3.75L17.8 9.94l-3.75-3.75zM20.7 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z'/%3E%3C/svg%3E")}
[data-icon="service"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2z'/%3E%3C/svg%3E")}
[data-icon="message"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h16v13H7l-3 3V4zm4 4v2h8V8H8zm0 4v2h5v-2H8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h16v13H7l-3 3V4zm4 4v2h8V8H8zm0 4v2h5v-2H8z'/%3E%3C/svg%3E")}
[data-icon="store"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 4H4v2h16zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6zM6 18v-4h6v4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 4H4v2h16zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6zM6 18v-4h6v4z'/%3E%3C/svg%3E")}
[data-icon="wallet"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M21 7H5V5h16v2zm-2-4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-1 10a2 2 0 1 1 0-4 2 2 0 0 1 0 4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M21 7H5V5h16v2zm-2-4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-1 10a2 2 0 1 1 0-4 2 2 0 0 1 0 4z'/%3E%3C/svg%3E")}
[data-icon="bell"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 22a2 2 0 0 0 2-2h-4a2 2 0 0 0 2 2zm6-6V11c0-3.07-1.63-5.64-4.5-6.32V4a1.5 1.5 0 0 0-3 0v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 22a2 2 0 0 0 2-2h-4a2 2 0 0 0 2 2zm6-6V11c0-3.07-1.63-5.64-4.5-6.32V4a1.5 1.5 0 0 0-3 0v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1z'/%3E%3C/svg%3E")}
[data-icon="alert"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z'/%3E%3C/svg%3E")}
[data-icon="external"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3zM19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3zM19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2z'/%3E%3C/svg%3E")}
[data-icon="menu"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z'/%3E%3C/svg%3E")}
[data-icon="search"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 5L20.49 19zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 1 0-.7.7l.27.28v.79l5 5L20.49 19zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E")}
[data-icon="refresh"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17.65 6.35A8 8 0 1 0 19.73 14h-2.08A6 6 0 1 1 12 6a5.93 5.93 0 0 1 4.22 1.78L13 11h7V4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17.65 6.35A8 8 0 1 0 19.73 14h-2.08A6 6 0 1 1 12 6a5.93 5.93 0 0 1 4.22 1.78L13 11h7V4z'/%3E%3C/svg%3E")}
[data-icon="target"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8zm0-4a4 4 0 1 1 4-4 4 4 0 0 1-4 4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8zm0-4a4 4 0 1 1 4-4 4 4 0 0 1-4 4z'/%3E%3C/svg%3E")}
[data-icon="spark"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l1.5 6L20 9.5 13.5 11 12 17l-1.5-6L4 9.5 10.5 8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l1.5 6L20 9.5 13.5 11 12 17l-1.5-6L4 9.5 10.5 8z'/%3E%3C/svg%3E")}
[data-icon="check"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2l-3.5-3.5L4 14.2 9 19.2 20 8.2l-1.5-1.5z'/%3E%3C/svg%3E")}
[data-icon="arrow"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E")}
[data-icon="settings"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19.14 12.94a7.14 7.14 0 0 0 .05-.94 7.14 7.14 0 0 0-.05-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.61-.22l-2.39.96a7 7 0 0 0-1.62-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54a7 7 0 0 0-1.62.94l-2.39-.96a.5.5 0 0 0-.61.22L2.7 8.48a.5.5 0 0 0 .12.64l2.03 1.58a7.14 7.14 0 0 0 0 1.88l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32a.5.5 0 0 0 .61.22l2.39-.96a7 7 0 0 0 1.62.94l.36 2.54a.5.5 0 0 0 .5.42h3.84a.5.5 0 0 0 .5-.42l.36-2.54a7 7 0 0 0 1.62-.94l2.39.96a.5.5 0 0 0 .61-.22l1.92-3.32a.5.5 0 0 0-.12-.64zM12 15.5A3.5 3.5 0 1 1 15.5 12 3.5 3.5 0 0 1 12 15.5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19.14 12.94a7.14 7.14 0 0 0 .05-.94 7.14 7.14 0 0 0-.05-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.61-.22l-2.39.96a7 7 0 0 0-1.62-.94l-.36-2.54a.5.5 0 0 0-.5-.42h-3.84a.5.5 0 0 0-.5.42l-.36 2.54a7 7 0 0 0-1.62.94l-2.39-.96a.5.5 0 0 0-.61.22L2.7 8.48a.5.5 0 0 0 .12.64l2.03 1.58a7.14 7.14 0 0 0 0 1.88l-2.03 1.58a.5.5 0 0 0-.12.64l1.92 3.32a.5.5 0 0 0 .61.22l2.39-.96a7 7 0 0 0 1.62.94l.36 2.54a.5.5 0 0 0 .5.42h3.84a.5.5 0 0 0 .5-.42l.36-2.54a7 7 0 0 0 1.62-.94l2.39.96a.5.5 0 0 0 .61-.22l1.92-3.32a.5.5 0 0 0-.12-.64zM12 15.5A3.5 3.5 0 1 1 15.5 12 3.5 3.5 0 0 1 12 15.5z'/%3E%3C/svg%3E")}
[data-icon="close"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E")}
[data-icon="doc"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm-1 7V3.5L18.5 9z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm-1 7V3.5L18.5 9z'/%3E%3C/svg%3E")}
[data-icon="clock"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.3 2.5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.3 2.5z'/%3E%3C/svg%3E")}
[data-icon="lock"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18 8h-1V6a5 5 0 0 0-10 0v2H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2zM9 6a3 3 0 0 1 6 0v2H9zm4 10.7V19h-2v-2.3a2 2 0 1 1 2 0z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18 8h-1V6a5 5 0 0 0-10 0v2H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2zM9 6a3 3 0 0 1 6 0v2H9zm4 10.7V19h-2v-2.3a2 2 0 1 1 2 0z'/%3E%3C/svg%3E")}

/* ===== Layout ===== */
.app-shell{display:flex;min-height:100dvh}
.main{flex:1;margin-left:var(--sidebar-w);min-width:0;display:flex;flex-direction:column;background:var(--bg)}
.content{padding:1.5rem 1.5rem 4rem;max-width:1560px;width:100%;margin-inline:auto}

/* ===== Sidebar ===== */
.sidebar{
  width:var(--sidebar-w);height:100dvh;position:fixed;z-index:var(--z-sidebar);
  display:flex;flex-direction:column;padding:1.375rem 1rem 1.125rem;
  background:var(--surface);color:var(--text-2);
  border-right:1px solid var(--border);
  transition:transform var(--t-base)
}


/* 口径说明收编组件：行内 footnote → 卡片头右侧 ⓘ，点击弹浮层（移动端友好） */
.info-dot{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:1.0625rem;height:1.0625rem;border-radius:999px;flex-shrink:0;
  border:1px solid var(--border-strong);background:var(--surface);
  color:var(--text-3);font-size:var(--fs-2xs);font-weight:700;font-family:var(--font-num);
  cursor:help;user-select:none;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)
}
.info-dot:hover,.info-dot[aria-expanded='true']{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
.info-pop{
  position:absolute;top:calc(100% + .5rem);right:0;z-index:var(--z-popover);
  width:min(21rem,72vw);padding:.75rem .875rem;border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--border);
  box-shadow:var(--shadow-md);color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-body);
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity var(--t-fast),transform var(--t-fast),visibility var(--t-fast)
}
.info-pop.open{opacity:1;visibility:visible;transform:none}
.info-pop strong{color:var(--text);display:block;margin-bottom:.25rem;font-size:var(--fs-body)}
.panel-head .info-dot{margin-left:auto}
/* ERP 型号参考图：完整显示产品，不裁切；缺图与加载失败使用明确占位。 */
.sku-thumb{width:40px;height:40px;flex:0 0 40px;border-radius:var(--radius-xs);object-fit:contain;background:var(--surface);display:block}
.sku-thumb-button{width:42px;height:42px;padding:0;flex:0 0 42px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);overflow:hidden;cursor:zoom-in;transition:border-color var(--t-fast),transform var(--t-fast)}
.sku-thumb-button:hover{border-color:var(--accent)}
.sku-thumb-button:active{transform:scale(.96)}
.sku-thumb-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sku-thumb-button:disabled{cursor:default;transform:none}
.sku-thumb-fallback{width:40px;height:40px;flex:0 0 40px;border-radius:var(--radius-xs);background:var(--surface-sunken);color:var(--text-3);display:grid;place-items:center}
.sku-thumb-fallback svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.4}
.product-image-dialog{width:min(48rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);margin:auto;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);overflow:auto}
.product-image-dialog::backdrop{background:rgba(15,23,42,.6)}
.product-image-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.product-image-heading>div{min-width:0}
.product-image-heading h2{font-size:var(--fs-lg);line-height:var(--lh-heading);margin:0;overflow-wrap:anywhere}
.product-image-heading p,.product-image-caption{font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--text-2);margin:.375rem 0 0;overflow-wrap:anywhere}
.product-image-heading>button{flex:none}
.product-image-stage{min-height:12rem;display:grid;place-items:center;margin:1rem 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}
.product-image-full{display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain}
.product-image-full[hidden]{display:none}
.product-image-status{padding:2rem;text-align:center;color:var(--text-2);font-size:var(--fs-body)}
@media(prefers-reduced-motion:reduce){.sku-thumb-button{transition:none}.sku-thumb-button:active{transform:none}}
.sku-thumb-cell{display:flex;align-items:center;gap:.625rem;min-width:0}
.sku-thumb-cell strong{display:block;overflow-wrap:anywhere}
.sku-thumb-cell small{display:block;color:var(--text-3);font-size:var(--fs-xs);overflow-wrap:anywhere}
/* 首页 TOP5 商品简卡 */
/* 首页广告账面板 */
/* 首页客服+异常双列 */

/* filter-bar 里的 ⓘ：右对齐并吃掉剩余空间，浮层依旧右开 */
.filter-bar .info-dot{margin-left:auto}

.brand{display:flex;align-items:center;gap:.75rem;padding:.125rem .375rem 1.5rem}
.brand-mark{
  width:2.75rem;height:2.75rem;border-radius:var(--radius-sm);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--accent);box-shadow:var(--shadow)
}
.brand-mark svg{display:block;width:100%;height:100%}
.brand-mark rect{fill:var(--accent)}
.brand-mark path{fill:#fff}
.brand-copy{min-width:0;line-height:var(--lh-heading)}
.brand strong{display:block;font-size:var(--fs-16);font-weight:700;color:var(--text);white-space:nowrap;letter-spacing:.01em}
.brand span{display:block;margin-top:.1875rem;font-size:var(--fs-2xs);color:var(--text-2);white-space:nowrap}
.nav-caption{padding:.5rem .75rem;font-size:var(--fs-2xs);font-weight:500;color:var(--text-2)}
.nav{display:flex;flex-direction:column;gap:.1875rem;flex:1;overflow-y:auto}
.nav-item{
  display:flex;align-items:center;gap:.6875rem;position:relative;
  min-height:2.75rem;padding:.625rem .75rem;border-radius:var(--radius-xs);
  font-size:var(--fs-body);font-weight:500;color:var(--text-2);text-align:left;
  transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)
}
.nav-item:hover{background:var(--surface-hover);color:var(--text)}
.nav-item.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}
.nav-item.active::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:1.125rem;border-radius:0 3px 3px 0;background:var(--nav-active)
}
.nav-icon{width:1.1875rem;height:1.1875rem;color:var(--text-2);transition:color var(--t-fast)}
.nav-item:hover .nav-icon{color:var(--text)}
.nav-item.active .nav-icon{color:var(--accent-deep)}
.nav-item em{
  margin-left:auto;padding:.125rem .5rem;border-radius:999px;
  font-size:var(--fs-2xs);font-style:normal;font-weight:600;
  background:var(--surface-sunken);color:var(--text-2)
}
.nav-item.active em{background:var(--surface);color:var(--accent-deep)}
.nav-item em.danger{background:var(--red-soft);color:var(--red)}
.sidebar-foot{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}
.source-link{
  display:flex;align-items:center;gap:.5rem;width:100%;min-height:2.5rem;
  padding:.5rem .75rem;border-radius:var(--radius-xs);
  font-size:var(--fs-sm);color:var(--text-2);transition:background var(--t-fast),color var(--t-fast)
}
.source-link:hover{background:var(--surface-hover);color:var(--text)}

/* ===== Settings ===== */
.settings-page{display:grid;gap:1rem;width:100%;max-width:86rem;margin-inline:auto}
.settings-shell{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:1rem;align-items:start;min-width:0}
.settings-navigation{position:sticky;top:5.25rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.settings-navigation-title{display:grid;gap:.125rem;padding:1rem;border-bottom:1px solid var(--border);background:var(--surface-raised)}
.settings-navigation-title strong{font-size:var(--fs-sm)}.settings-navigation-title small{overflow:hidden;color:var(--text-3);font-size:var(--fs-2xs);text-overflow:ellipsis;white-space:nowrap}
.settings-tabs{display:grid;gap:.25rem;padding:.5rem}
.settings-tabs button{display:grid;grid-template-columns:1.125rem minmax(0,1fr) .875rem;align-items:center;gap:.625rem;width:100%;min-height:3.5rem;padding:.625rem .75rem;border-radius:var(--radius-xs);color:var(--text-2);text-align:left;transition:background var(--t-fast),color var(--t-fast)}
.settings-tabs button>[data-icon]{width:1.125rem;height:1.125rem;color:var(--text-3)}
.settings-tabs button>span:nth-child(2){display:grid;gap:.0625rem;min-width:0}.settings-tabs button strong{font-size:var(--fs-sm);font-weight:600}.settings-tabs button small{font-size:var(--fs-2xs);color:var(--text-3)}
.settings-tabs button>span:last-child{width:.75rem;height:.75rem;opacity:0;transform:translateX(-3px);transition:opacity var(--t-fast),transform var(--t-fast)}
.settings-tabs button:hover{background:var(--surface-raised);color:var(--text)}
.settings-tabs button[aria-selected="true"]{background:var(--accent-soft);color:var(--accent-deep)}
.settings-tabs button[aria-selected="true"]>[data-icon]{color:var(--accent-deep)}
.settings-tabs button[aria-selected="true"]>span:last-child{opacity:1;transform:none}
.settings-body{min-width:0;animation:settingsBodyIn var(--t-base)}
@keyframes settingsBodyIn{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
.settings-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;align-items:start;max-width:52rem}
.settings-card{padding:1.25rem;min-width:0}.settings-body>.settings-card{max-width:68rem}
.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
.settings-form label,.settings-inline-form label{display:grid;gap:.375rem;font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}
.settings-form input,.settings-form select,.settings-inline-form input,.settings-inline-form select{width:100%;height:2.75rem;padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font:inherit}
.settings-form input[readonly]{background:var(--surface-sunken);color:var(--text-2)}
.settings-form .settings-key-field{grid-column:1/-1}
.settings-form .settings-check{grid-column:1/-1;display:flex;align-items:center;gap:.625rem;min-height:2.75rem}
.settings-check input{width:1.125rem;height:1.125rem;flex:0 0 auto}
.settings-actions,.settings-form>.form-hint,.settings-form>#aiSettingsStatus{grid-column:1/-1}
.settings-actions{display:flex;gap:.625rem;flex-wrap:wrap;padding-top:.25rem}
.settings-form>#aiSettingsStatus{min-height:1.25rem;color:var(--text-2)}
.settings-boundary{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.settings-boundary summary{display:grid;grid-template-columns:1.125rem minmax(0,1fr) 1rem;align-items:center;gap:.75rem;padding:.875rem 1rem;cursor:pointer;list-style:none;color:var(--text-2)}
.settings-boundary summary::-webkit-details-marker{display:none}.settings-boundary summary>[data-icon]{width:1.125rem;height:1.125rem;color:var(--text-3)}.settings-boundary summary>[data-icon]:last-child{transform:rotate(90deg);transition:transform var(--t-fast)}.settings-boundary[open] summary>[data-icon]:last-child{transform:rotate(-90deg)}
.settings-boundary summary>span:nth-child(2){display:grid;gap:.125rem}.settings-boundary summary strong{color:var(--text);font-size:var(--fs-sm)}.settings-boundary summary small{font-size:var(--fs-xs)}.settings-boundary-body{display:grid;gap:1rem;padding:1rem;border-top:1px solid var(--border)}.settings-boundary-body>.btn{justify-self:start}
.plain-list{display:grid;gap:.625rem;padding-left:1.25rem;color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-body)}
.form-hint{color:var(--text-3);font-size:var(--fs-xs);line-height:var(--lh-body)}
.settings-inline-form{display:grid;grid-template-columns:repeat(3,minmax(9rem,1fr)) auto auto;gap:.75rem;align-items:end;margin-bottom:1rem}
.settings-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:1rem}
.settings-stats>div{display:grid;gap:.375rem;padding:1rem;border-right:1px solid var(--border)}
.settings-stats>div:last-child{border-right:0}
.settings-stats span{font-size:var(--fs-xs);color:var(--text-2)}
.settings-stats strong{font-family:var(--font-num);font-size:var(--fs-20);font-variant-numeric:tabular-nums}
.settings-usage-table{max-height:34rem;overflow:auto}
.settings-usage-table .sku-table{min-width:62rem}
.settings-usage-table .sku-table th,.settings-usage-table .sku-table td{white-space:nowrap}
.settings-usage-table .sku-table{table-layout:auto}
.settings-usage-table th{position:sticky;top:0;z-index:1;background:var(--surface-raised)}
.settings-usage-table th:nth-child(4),.settings-usage-table td:nth-child(4){min-width:5.25rem;white-space:nowrap}
.settings-usage-table tbody tr{transition:background var(--t-fast)}
.settings-usage-table tbody tr:hover{background:var(--surface-hover)}
.settings-usage-table code{font-family:var(--font-num);font-size:var(--fs-2xs)}
.promotion-relative-analysis{margin-top:1rem}
.settings-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;margin-bottom:1.25rem}
.settings-kv>div{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.875rem 0;border-bottom:1px solid var(--border)}
.settings-kv span{color:var(--text-2);font-size:var(--fs-sm)}
.settings-kv strong{max-width:65%;text-align:right;font-size:var(--fs-sm);font-weight:600}
@media(max-width:900px){
  .settings-shell{grid-template-columns:1fr}.settings-navigation{position:static}.settings-navigation-title{display:none}
  .settings-tabs{display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}
  .settings-tabs button{flex:0 0 auto;width:auto;grid-template-columns:1rem auto;min-height:2.75rem}.settings-tabs button>span:nth-child(2){display:block}.settings-tabs button small,.settings-tabs button>span:last-child{display:none}
}
@media(max-width:620px){.settings-form{grid-template-columns:1fr}.settings-form .settings-key-field{grid-column:1}.settings-inline-form{grid-template-columns:1fr 1fr}.settings-inline-form label:last-of-type{grid-column:1/-1}.settings-stats{grid-template-columns:repeat(2,1fr)}.settings-stats>div:nth-child(2){border-right:0}.settings-stats>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.settings-kv{grid-template-columns:1fr}}
.sync-message{display:grid;gap:.25rem;padding:.875rem 0;border-bottom:1px solid var(--border)}
.sync-message:last-of-type{border-bottom:0}
.sync-message strong{font-size:var(--fs-sm)}
.sync-message span{color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.sync-message.failed strong,.sync-message.failed span{color:var(--danger)}
.mobile-more-list{display:grid}
.account-action-row{display:grid;grid-template-columns:1.5rem minmax(0,1fr) 1rem;align-items:center;gap:.75rem;width:100%;padding:1rem .25rem;border-bottom:1px solid var(--border);text-align:left}
.account-action-row>span:nth-child(2){display:grid;gap:.2rem}
.account-action-row small{color:var(--text-3)}

/* 同步状态：文字 + 图形双通道，不只靠颜色 */
.sync-mini{
  display:flex;align-items:center;gap:.625rem;
  padding:.75rem;margin-bottom:.5rem;border-radius:var(--radius-xs);
  background:var(--green-soft);border:1px solid var(--green-line)
}
.sync-mini strong{display:block;font-size:var(--fs-xs);color:var(--green)}
.sync-mini small{display:block;margin-top:.125rem;font-size:var(--fs-2xs);color:var(--text-3)}
.sync-mini.stale{background:var(--amber-soft);border-color:var(--amber-line)}
.sync-mini.stale strong{color:var(--amber)}
.sync-mini.stale .pulse{background:var(--amber)}
.sync-mini.stale .pulse::after{background:var(--amber)}
.pulse{width:.5rem;height:.5rem;border-radius:50%;background:var(--green);position:relative;flex-shrink:0}
.pulse::after{content:'';position:absolute;inset:0;border-radius:50%;background:var(--green);opacity:0}
@keyframes pulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(2.4);opacity:0}}

/* ===== Topbar ===== */
.topbar{
  display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:var(--z-sticky);
  min-height:4.25rem;padding:.875rem clamp(1rem,2.5vw,2rem);
  background:rgba(243,246,248,.92);backdrop-filter:blur(16px) saturate(120%);
  border-bottom:1px solid var(--border)
}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.sync-status{
  display:inline-flex;align-items:center;gap:.5rem;min-height:2.375rem;flex-shrink:0;
  padding:.4375rem .75rem;border-radius:var(--radius-xs);font-size:var(--fs-xs);white-space:nowrap;
  background:var(--surface);border:1px solid var(--border);transition:background var(--t-fast),border-color var(--t-fast)
}
.sync-status:hover{background:var(--surface-hover);border-color:var(--accent-line)}
.sync-status .pulse{display:none}
.sync-status span{color:var(--accent-deep);font-weight:600}
.sync-status small{max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.sync-status.stale{background:var(--amber-soft);border-color:var(--amber-line)}
.sync-status.stale span{color:var(--amber)}
.sync-status.stale .pulse{background:var(--amber)}
.sync-status.stale .pulse::after{background:var(--amber)}
.top-refresh{
  display:inline-flex;align-items:center;justify-content:center;gap:.4375rem;
  min-height:2.625rem;padding:.5rem .75rem;border:1px solid var(--border);
  border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2);
  font-size:var(--fs-sm);font-weight:600;transition:color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)
}
.top-refresh:hover{color:var(--accent-deep);border-color:var(--accent-line);box-shadow:var(--shadow)}
.top-refresh [data-icon]{width:1rem;height:1rem}
.top-refresh.is-refreshing [data-icon]{animation:refreshSpin .8s linear infinite}
@keyframes refreshSpin{to{transform:rotate(360deg)}}
.icon-btn{
  width:2.625rem;height:2.625rem;min-width:2.625rem;border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;position:relative;
  color:var(--text-2);transition:background var(--t-fast),color var(--t-fast)
}
.icon-btn:hover{background:var(--surface);color:var(--text);box-shadow:0 2px 10px rgba(26,34,48,.06)}
.icon-btn [data-icon]{width:1.125rem;height:1.125rem}
.notification-btn b{
  position:absolute;top:.25rem;right:.25rem;
  min-width:1.0625rem;height:1.0625rem;padding:0 .1875rem;border-radius:999px;
  display:flex;align-items:center;justify-content:center;
  background:var(--red);color:#fff;font-size:var(--fs-2xs);font-weight:700;
  border:2px solid var(--bg)
}
.avatar{
  width:2.625rem;height:2.625rem;border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  background:#e1edf8;color:#1e5f92;font-weight:600;font-size:var(--fs-15);
  border:1px solid var(--border-strong);transition:background var(--t-fast)
}
.avatar:hover{background:#c7dcea}
.mobile-menu{display:none}

/* ===== Animation entrance ===== */
[data-animate]{animation:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ===== Hero ===== */
.eyebrow{
  display:flex;align-items:center;gap:.4375rem;margin-bottom:.5rem;
  font-family:var(--font-num);font-size:var(--fs-2xs);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--accent-hover)
}
@keyframes blink{50%{opacity:.35}}

/* ===== Buttons ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:2.625rem;padding:.625rem 1.125rem;border-radius:var(--radius-xs);
  font-size:var(--fs-body);font-weight:600;border:1px solid transparent;
  transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)
}
.btn [data-icon]{width:1rem;height:1rem}
.btn.primary{background:#276fa5;color:var(--text-on-accent);box-shadow:0 6px 14px rgba(91,168,214,.16)}
.btn.primary:hover{background:#215e8d;box-shadow:0 8px 18px rgba(91,168,214,.2)}
.btn.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text-2)}
.btn.secondary:hover{background:var(--surface-raised);border-color:var(--border-strong);color:var(--text)}
.btn.small{min-height:2.125rem;padding:.4375rem .75rem;font-size:var(--fs-xs)}
.btn:disabled,.btn[aria-busy="true"]{opacity:.6;pointer-events:none}
:where(.btn,.icon-btn,.text-btn,.top-refresh,.team-tab,.team-layout-button,.settings-tabs button,.overview-presets button,.overview-tabs button,.segmented button,.filter-chip):active:not(:disabled){transform:translateY(1px) scale(.985)}
.text-btn{
  display:inline-flex;align-items:center;gap:.25rem;min-height:2.25rem;padding:0 .375rem;
  font-size:var(--fs-sm);font-weight:500;color:var(--text-2);
  border-radius:var(--radius-xs);transition:color var(--t-fast)
}
.text-btn:hover{color:var(--accent-hover)}
.text-btn [data-icon]{width:.9375rem;height:.9375rem}

/* ===== Data notice ===== */
.data-notice{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.125rem;margin-bottom:1.25rem;border-radius:var(--radius-sm);
  background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-hover)
}
.data-notice div{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;min-width:0}
.data-notice strong{font-size:var(--fs-sm)}
.data-notice span{font-size:var(--fs-xs);color:var(--text-2);line-height:var(--lh-body)}
.data-notice>.btn{flex:0 0 auto;white-space:nowrap}

/* ===== Metric grid：三级视觉层级 ===== */
.metric-card{
  display:flex;flex-direction:column;
  padding:1.25rem;border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--border);
  transition:border-color var(--t-base),box-shadow var(--t-base),transform var(--t-base)
}
.metric-card:hover{border-color:var(--border-active);box-shadow:var(--shadow)}
.metric-card[data-drilldown]{cursor:pointer;position:relative}
.metric-card[data-drilldown]::after{
  content:'查看明细 ›';position:absolute;right:1.25rem;bottom:1rem;
  font-size:var(--fs-2xs);font-weight:700;letter-spacing:.02em;color:var(--accent);
  opacity:0;transform:translateY(3px);transition:opacity var(--t-fast),transform var(--t-fast)
}
.metric-card[data-drilldown]:hover::after,
.metric-card[data-drilldown]:focus-visible::after{opacity:1;transform:none}
.metric-card:active{transform:scale(.99)}

/* 主指标卡：明亮蓝调，不用暗色 */
.metric-card strong,.metric-main strong{
  display:block;font-size:1.5rem;font-weight:800;letter-spacing:-.035em;line-height:var(--lh-data);
  color:var(--text)
}
.metric-card strong small{font-size:var(--fs-15);font-weight:500;color:var(--text-3);margin-left:.1875rem;letter-spacing:0}
.metric-card p{margin-top:auto;padding-top:.375rem;font-size:var(--fs-xs);color:var(--text-3);line-height:var(--lh-body)}
.trend{font-size:var(--fs-xs);font-weight:600;flex-shrink:0}
.trend.up{color:var(--red)}
.trend.down{color:var(--green)}
.trend.neutral{color:var(--text-3)}

/* 数据中心可视化看板 */
.metric-board{margin-bottom:0}
.metric-board .panel-head{margin-bottom:1rem}
.metric-board .wdt-board-head{display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem}
.wdt-board-title{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.wdt-board-title h2{margin:0;white-space:nowrap}
.wdt-board-title>span{color:var(--text-2);font-size:var(--fs-xs)}
.wdt-board-status{padding:.5rem 0 1rem;color:var(--text-3);font-size:var(--fs-sm)}
.wdt-range-bar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;width:100%;padding-bottom:.875rem;border-bottom:1px solid var(--border)}
.wdt-range-presets{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;min-width:0}
.wdt-range-bar .filter-chip{min-height:2.5rem;padding:.5rem .625rem;border-radius:var(--radius-xs);background:transparent;border-color:transparent;font-size:var(--fs-sm);white-space:nowrap}
.wdt-range-bar .filter-chip:hover{background:var(--surface-hover);border-color:var(--border)}
.wdt-range-bar .filter-chip.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-deep);box-shadow:none}
.wdt-range-bar .filter-chip:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
.wdt-range-more{position:relative;flex:0 0 auto}
.wdt-range-more>summary{display:flex;align-items:center;justify-content:center;gap:.5rem;list-style:none;cursor:pointer}
.wdt-range-more>summary::-webkit-details-marker{display:none}
.wdt-range-menu{position:absolute;right:0;top:calc(100% + .375rem);z-index:var(--z-popover);display:grid;gap:.25rem;min-width:8.5rem;padding:.375rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-md)}
.wdt-range-menu .filter-chip{width:100%;text-align:left}
.wdt-board-basis{margin-bottom:1rem;border:1px solid var(--amber-line);border-left:3px solid var(--amber)}
.metric-card-mini-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;margin-bottom:1.25rem
}
.metric-card-mini{
  min-width:0;padding:.875rem 1rem .75rem;border-radius:var(--radius-sm);
  background:var(--surface-raised);border:1px solid var(--border);
  border-top:1px solid var(--border);
  transition:border-color var(--t-base),transform var(--t-base),box-shadow var(--t-base)
}
.metric-card-mini:hover{border-color:var(--border-active);box-shadow:var(--shadow)}
.metric-card-mini-head{display:grid;align-content:start;gap:.375rem;min-width:0;margin-bottom:.25rem}
.metric-card-mini-head span{font-size:var(--fs-xs);color:var(--text-2)}
.metric-card-mini-head strong{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.metric-card-mini-delta{font-size:var(--fs-2xs);font-weight:600;margin-bottom:.25rem;line-height:var(--lh-control)}
.metric-card-mini .metric-chart{margin:0 -.5rem -.5rem}

.metric-rank-block{margin-bottom:1.25rem}
.metric-rank-block:last-child{margin-bottom:0}
.metric-rank-head{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:.875rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)
}
.metric-rank-head h3{font-size:var(--fs-15);font-weight:600}
.metric-rank-head span{font-size:var(--fs-2xs);color:var(--text-3)}

/* 排名条：店铺名独占一行完整显示，条形与数值在下方一行。
   名称不做截断——被省略号切掉的店铺名会让对比失去意义。 */
.rank-list{display:flex;flex-direction:column;gap:.25rem}
.rank-row{
  padding:.625rem .5rem;border-radius:var(--radius-xs);
  transition:background var(--t-fast)
}
.rank-row:hover{background:var(--surface-sunken)}
.rank-label{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.4375rem}
.rank-index{
  flex-shrink:0;width:1.25rem;height:1.25rem;border-radius:4px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface-sunken);color:var(--text-3);
  font-size:var(--fs-2xs);font-weight:700;font-variant-numeric:tabular-nums
}
.rank-row:nth-child(1) .rank-index{background:var(--blue-soft);color:var(--accent-deep)}
.rank-name{
  font-size:var(--fs-14);font-weight:500;color:var(--text);
  line-height:var(--lh-control);word-break:break-word
}
.rank-bar{
  display:grid;grid-template-columns:1fr auto auto;gap:.75rem;align-items:center;
  padding-left:1.75rem
}
.rank-track{height:.625rem;border-radius:4px;background:var(--surface-sunken);position:relative;min-width:3rem}
.rank-track i{
  display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent-hover));
  transition:none
}
.rank-value{
  font-size:var(--fs-15);font-weight:600;color:var(--text);text-align:right;
  font-variant-numeric:tabular-nums;min-width:5rem
}
.rank-delta{
  font-size:var(--fs-xs);font-weight:600;text-align:right;
  font-variant-numeric:tabular-nums;min-width:4.5rem
}

.metric-line-chart-scroll{
  width:100%;overflow-x:auto;overscroll-behavior-inline:contain;
  padding:.125rem 0 .25rem;scrollbar-width:thin
}
.metric-chart-canvas{position:relative;width:100%}
.metric-chart-plot{position:absolute;top:0;bottom:0;pointer-events:none}
.metric-chart-plot>svg{display:block;width:100%;height:100%}
.metric-line-chart-scroll .metric-chart{position:relative;display:block;max-width:none;margin-inline:0}
.metric-chart-grid{stroke:var(--border);stroke-width:1}
.metric-chart-axis{fill:var(--text-3);font-family:var(--font-num);font-size:var(--fs-13)}
.metric-chart-date{font-size:var(--fs-2xs)}
.metric-chart-point{fill:var(--surface);stroke:var(--point-color);stroke-width:2}
.metric-chart-point.latest{stroke-width:2.6}
.metric-chart-crosshair{position:absolute;top:1.375rem;bottom:2.375rem;width:1px;background:var(--accent-line);pointer-events:none}
.metric-chart-tooltip{position:absolute;top:.375rem;z-index:3;display:grid;gap:.125rem;min-width:8.5rem;padding:.5rem .75rem;transform:translateX(-50%);border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);box-shadow:var(--shadow-md);color:var(--text);font-size:var(--fs-xs);line-height:var(--lh-body);pointer-events:none;white-space:nowrap}
.metric-chart-tooltip strong{font-family:var(--font-num);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.metric-chart-tooltip[hidden],.metric-chart-crosshair[hidden]{display:none}
.wdt-trend{
  width:100%;max-width:none;margin:0;padding:1rem 1.125rem .625rem;
  border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)
}
.wdt-trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.25rem}
.wdt-trend-head h4,.wdt-trend>h4{font-size:var(--fs-sm);font-weight:600}
.wdt-trend-head p{margin-top:.1875rem;color:var(--text-3);font-size:var(--fs-2xs)}
.wdt-trend-head>div:last-child{display:grid;justify-items:end;gap:.125rem;flex-shrink:0}
.wdt-trend-head span{color:var(--text-3);font-size:var(--fs-2xs)}
.wdt-trend-head strong{font-family:var(--font-num);font-size:var(--fs-18);font-variant-numeric:tabular-nums}
.metric-chart{display:block;width:100%}
.sales-insight-grid{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(24rem,.85fr);
  gap:1rem;align-items:stretch;margin:1rem 0 1.25rem
}
.sales-insight-grid.single-series{grid-template-columns:minmax(0,1fr)}
.sales-insight-grid>.wdt-trend,.sales-rank-panel{min-width:0;height:100%}
.sales-rank-panel{
  padding:1rem 1.125rem;border:1px solid var(--border);
  border-radius:var(--radius-sm);background:var(--surface)
}
.sales-rank-panel .metric-rank-head{margin-bottom:.5rem}
.sales-rank-panel .rank-row{padding:.45rem .25rem}
.sales-rank-panel .rank-label{margin-bottom:.25rem}
.sales-rank-panel .rank-track{height:.375rem}
.wdt-trend-tabs{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}
.wdt-trend-tabs button{
  min-height:1.875rem;padding:.25rem .625rem;border-radius:var(--radius-xs);
  color:var(--text-2);font-size:var(--fs-xs);font-weight:600
}
.wdt-trend-tabs button:hover{background:var(--surface-sunken);color:var(--text)}
.wdt-trend-tabs button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-deep)}
.wdt-context-strip{
  display:flex;align-items:center;gap:.5rem 1.25rem;flex-wrap:wrap;
  margin:-.25rem 0 1rem;padding:.625rem .875rem;
  border:1px solid var(--border);border-radius:var(--radius-xs);
  background:var(--surface-raised);color:var(--text-2);font-size:var(--fs-xs)
}
.wdt-context-strip strong{color:var(--text);font-weight:600}
.wdt-context-strip details{margin-left:auto}
.wdt-context-strip summary{cursor:pointer;color:var(--accent-deep);font-weight:600}
.wdt-context-strip p{flex:1 0 100%;padding-top:.5rem;border-top:1px solid var(--border);line-height:var(--lh-body)}

/* 口径分组：不同口径的数字不能并列比较，视觉上必须分开 */
.metric-scope-warn{
  margin-bottom:1.25rem;padding:.75rem .875rem;border-radius:var(--radius-xs);
  background:var(--amber-soft);border-left:3px solid var(--amber);
  font-size:var(--fs-xs);color:var(--text-2);line-height:1.6
}
/* ===== SKU / 型号 / 组合查询面板 ===== */
.sku-panel .metric-rank-head{margin-bottom:.75rem}
.sku-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:.75rem;flex-wrap:wrap;margin-bottom:1rem
}
.sku-category-bar{padding-left:.625rem;border-left:1px solid var(--border)}
.sku-category-count{margin-left:.25rem;font-variant-numeric:tabular-nums;opacity:.75}
.sku-scope-filters{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;margin:.75rem 0;min-width:0}
.sku-scope-filters label{display:grid;gap:.25rem;font-size:var(--fs-sm);color:var(--text-2);min-width:8rem;max-width:100%}
.sku-scope-filters select{max-width:100%;min-height:2.5rem;padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font:inherit}
.sku-scope-filters>span{font-size:var(--fs-xs);color:var(--text-3);align-self:center}
.sku-record-scope{margin:.5rem 0 1rem;line-height:var(--lh-body)}
.sku-scope-filters select:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
@media(max-width:620px){
  .sku-panel .sku-toolbar,.sku-panel .sku-toolbar-filters{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
  .sku-panel .sku-category-bar{padding-left:0;border-left:0;max-width:100%;flex-wrap:wrap}
}
.sku-search{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}
.sku-search-input{
  box-sizing:border-box;
  min-height:2.5rem;min-width:16rem;
  padding:.5rem .75rem;
  border-radius:var(--radius-xs);
  border:1px solid var(--border-strong);background:var(--surface);
  font-size:var(--fs-sm);color:var(--text);
  transition:border-color var(--t-fast)
}
.sku-search-input::placeholder{color:var(--text-3)}
.sku-search-input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}
.sku-table-wrap{
  overflow:auto;border-radius:var(--radius-xs);
  background:var(--surface);border:1px solid var(--border)
}
.sku-panel .sku-table-wrap{max-height:34rem;overscroll-behavior:contain}
.after-sales-table-wrap{max-height:40rem;overscroll-behavior:contain}
.sku-table{width:100%;border-collapse:collapse;min-width:52rem;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.sku-table th,.sku-table td{
  padding:.6875rem .875rem;border-bottom:1px solid var(--border);
  text-align:left;vertical-align:top
}
.sku-table th{
  position:sticky;top:0;z-index:1;
  background:var(--surface-sunken);color:var(--text-2);
  font-weight:600;white-space:nowrap
}
.sku-table tr:last-child td{border-bottom:0}
.sku-table tbody tr{transition:background var(--t-fast)}
.sku-table tbody tr:hover{background:var(--surface-raised)}
.sku-table td strong{display:block;font-size:var(--fs-sm);font-weight:600}
.sku-table td small{
  display:block;margin-top:.1875rem;
  font-family:var(--font-num);font-size:var(--fs-2xs);color:var(--text-3)
}
.sku-panel .sku-items-table{min-width:70rem}
.sku-items-table th:first-child,.sku-items-table td:first-child{width:22rem;min-width:20rem;max-width:24rem}
.sku-items-table td:not(:first-child){white-space:nowrap}
.sku-items-table td.sku-model-name{min-width:10rem;max-width:14rem;white-space:normal;overflow-wrap:anywhere;line-height:var(--lh-body)}
.sku-product-identity{align-items:flex-start;max-width:100%}
.sku-product-details{flex:1;min-width:0;max-width:100%}
.sku-product-details>summary{display:block;list-style:none;cursor:pointer;border-radius:var(--radius-xs)}
.sku-product-details>summary::-webkit-details-marker{display:none}
.sku-product-details>summary:focus-visible{outline:2px solid var(--focus-outline);outline-offset:3px}
.sku-items-table .sku-product-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:var(--lh-body);font-weight:600}
.sku-product-details[open] .sku-product-name{display:block;-webkit-line-clamp:unset;overflow:visible}
.sku-product-toggle{display:inline-flex;align-items:center;gap:.25rem;min-height:1.75rem;margin-top:.1875rem;color:var(--accent);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}
.sku-product-toggle svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform var(--t-fast)}
.sku-product-collapse,.sku-product-details[open] .sku-product-expand{display:none}
.sku-product-details[open] .sku-product-collapse{display:inline}
.sku-product-details[open] .sku-product-toggle svg{transform:rotate(180deg)}
.sku-product-details>summary:hover .sku-product-toggle{text-decoration:underline;text-underline-offset:.2em}
.sku-product-code{display:grid;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-3);line-height:var(--lh-body)}
.sku-product-code code{font:inherit;font-family:var(--font-num);color:var(--text-2);overflow-wrap:anywhere;white-space:normal}
.sku-product-identity>.wdt-offline-tag{flex:none;margin-top:.125rem}
@media(prefers-reduced-motion:reduce){.sku-product-toggle svg{transition:none}}

/* ===== 物流 / 发货预警面板 ===== */
.ops-panel .metric-rank-head{margin-bottom:.75rem}
.ops-panel .metric-card-mini-grid{margin-bottom:1rem}
.ops-panel .filter-bar{margin-bottom:0}
.ops-panel .sku-toolbar{
  align-items:flex-start;justify-content:flex-start;
  gap:.75rem 1.25rem;margin-bottom:1rem
}
/* 类型筛选条上的计数徽标：恒为全量分布，故用中性色而非选中态色，避免误读成"当前筛选结果数" */
.ops-chip-count{
  display:inline-block;margin-left:.375rem;padding:0 .3125rem;
  border-radius:999px;background:var(--surface-sunken);
  font-family:var(--font-num);font-size:var(--fs-13);font-style:normal;
  color:var(--text-2);line-height:var(--lh-body);vertical-align:1px
}
.filter-chip.active .ops-chip-count{background:rgba(255,255,255,.22);color:var(--text-on-accent)}

/* 罚款代理信号：与真实指标视觉隔离，明确写"代理信号" */
.ops-penalty-proxy{
  margin-bottom:1rem;padding:.75rem .875rem;
  border-radius:var(--radius-xs);
  background:var(--surface-sunken);border:1px dashed var(--border-strong);
  font-size:var(--fs-xs);color:var(--text-2);line-height:1.6
}
.ops-penalty-proxy-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:.75rem;flex-wrap:wrap;margin-bottom:.25rem
}
.ops-penalty-proxy-head strong{font-size:var(--fs-sm);color:var(--text)}
.ops-penalty-proxy-head span{font-family:var(--font-num);font-weight:600;color:var(--text)}
.ops-penalty-proxy p{margin:0;font-size:var(--fs-2xs);color:var(--text-3)}

.ops-alert-table{min-width:64rem}
.ops-alert-tag{
  display:inline-block;padding:.125rem .4375rem;border-radius:var(--radius-xs);
  font-size:var(--fs-2xs);font-weight:600;white-space:nowrap
}
.ops-alert-tag.tone-danger{background:#fee2e2;color:#b91c1c}
.ops-alert-tag.tone-amber{background:#fef3c7;color:#b45309}
.ops-alert-tag.tone-info{background:#dbeafe;color:#1d4ed8}
.ops-alert-tag.tone-muted{background:var(--surface-sunken);color:var(--text-2)}
.ops-alert-table .ops-timing{font-family:var(--font-num);white-space:nowrap}

/* ===== 自然语言精确查询面板 ===== */
.nl-panel .metric-rank-head{margin-bottom:.5rem}
.nl-panel .nl-toolbar{
  display:grid;align-items:start;justify-content:stretch;
  gap:.5rem;margin-bottom:.5rem
}
.nl-panel{padding:1rem;border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--surface);margin:0;box-shadow:0 5px 16px rgba(26,34,48,.035)}
.nl-panel .nl-panel-head{align-items:center;padding-bottom:.5rem}
.nl-panel-title{display:flex;align-items:center;gap:.75rem;min-width:0}
.nl-panel-title>div{display:grid;gap:.125rem;min-width:0}
.nl-panel-title p{color:var(--text-2);font-size:var(--fs-xs)}
.nl-panel-icon{display:grid;width:1.125rem;height:1.125rem;color:var(--accent-deep);flex:0 0 auto}
.nl-panel .sku-search{display:flex;width:100%;flex-wrap:wrap}
.nl-panel .sku-search-input{flex:1 1 20rem;width:auto;min-width:0;max-width:none;min-height:2.75rem}
.nl-panel .btn{min-height:2.75rem}
.nl-examples summary{cursor:pointer;color:var(--text-2);font-size:var(--fs-xs);min-height:2rem;display:flex;align-items:center;gap:.5rem}
.nl-examples summary::after{content:'＋'}
.nl-examples[open] summary::after{content:'－'}
.nl-examples .filter-bar{margin-top:.5rem}
#nlQueryBody{min-height:2rem}
.nl-panel .metric-rank-head>span{font-size:var(--fs-xs)}
/* 解析结果回显块：查询前必须先让人看清「这句话被理解成了什么」 */
.nl-parsed{
  padding:.75rem .875rem;border-radius:var(--radius-xs);
  background:var(--surface-sunken);border:1px solid var(--border);
  margin-bottom:1rem
}
.nl-parsed-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem
}
.nl-parsed-head strong{font-size:var(--fs-sm);color:var(--text)}
.nl-parsed-head span{font-size:var(--fs-xs);color:var(--text-3);overflow-wrap:anywhere}
.nl-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.nl-chip{
  display:inline-flex;align-items:center;gap:.3125rem;
  padding:.1875rem .5rem;border-radius:999px;
  background:var(--surface-raised);border:1px solid var(--border);
  font-size:var(--fs-xs);color:var(--text-2)
}
.nl-chip em{
  font-style:normal;font-size:var(--fs-xs);letter-spacing:.02em;
  color:var(--text-3);text-transform:uppercase
}
.nl-parsed-foot{margin-top:.5rem;font-size:var(--fs-xs);color:var(--text-3)}
.nl-empty{padding:.25rem 0 0;color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-body)}

/* ===== 附属快照区（腾讯文档链路，已降级为次级入口） =====
   产品焦点是 ERP 直连经营数据；文档快照仅作日常待办与历史核对，
   因此默认收起，不占用主视线的版面。样式刻意弱化（灰底、虚线边、
   小字号），避免与主区面板竞争注意力。 */
@container (max-width:640px){
  .legacy-snapshot-hint{margin-left:0;width:100%;text-align:left}
}

/* 未纳入可视化的源：如实告知，不让用户以为图上就是全部 */
.metric-unparsed{
  margin-top:1.25rem;padding:.875rem 1rem;border-radius:var(--radius-xs);
  background:var(--surface-sunken);border:1px dashed var(--border-strong)
}
.metric-unparsed strong{font-size:var(--fs-14);font-weight:600;color:var(--text-2)}
.metric-unparsed p{margin:.375rem 0 .625rem;font-size:var(--fs-xs);color:var(--text-3);line-height:var(--lh-body)}
.metric-unparsed ul{
  display:flex;flex-wrap:wrap;gap:.375rem;list-style:none
}
.metric-unparsed li{
  padding:.1875rem .5rem;border-radius:var(--radius-xs);
  background:var(--surface);border:1px solid var(--border);
  font-size:var(--fs-2xs);color:var(--text-3)
}

/* 空状态里的原因清单：可能较长，允许换行 */

/* 合计被阻断时的分来源对照表：不合计，但绝不整块留白 */
.per-source-note{
  margin:.625rem 0 0;font-size:var(--fs-2xs);color:var(--text-3);line-height:1.6
}
.source-record-table{width:100%;min-width:44rem;border-collapse:collapse;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.source-record-table th,.source-record-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}
.source-record-table th{position:sticky;top:0;background:var(--surface-sunken);color:var(--text-2);font-weight:600}
.source-record-table th:first-child,.source-record-table td:first-child{text-align:left}
.source-record-table tr:last-child td{border-bottom:0}
.priority-data-panel{gap:1rem}
.priority-data-panel>.panel-head{margin-bottom:0}
.priority-drawer-toolbar{
  display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;
  margin-bottom:1rem;padding:.875rem;border:1px solid var(--border);
  border-radius:var(--radius-xs);background:var(--surface-raised)
}
.priority-drawer-toolbar label{display:grid;gap:.25rem;color:var(--text-2);font-size:var(--fs-xs)}
.priority-drawer-toolbar input{min-height:2.5rem;padding:.45rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface)}

/* 进度环与进度条 */
.ring{width:3.5rem;height:3.5rem;position:relative;flex-shrink:0}
.ring::before{content:'';position:absolute;inset:0;border-radius:50%;border:4px solid var(--border-strong)}
.ring::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:4px solid var(--accent);border-right-color:transparent;border-bottom-color:transparent;
  transform:rotate(var(--ring-rot,45deg));transition:transform var(--t-enter)
}
.ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600}
.progress{height:.3125rem;border-radius:4px;overflow:hidden;margin-bottom:.625rem;background:var(--surface-sunken)}
.progress i{display:block;height:100%;border-radius:4px;background:var(--accent)}

/* ===== Panels ===== */
.panel{
  padding:clamp(1.125rem,2vw,1.5rem);border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--border);
  display:flex;flex-direction:column;
  container-type:inline-size;
  transition:border-color var(--t-base),box-shadow var(--t-base)
}
.panel:hover{border-color:var(--border)}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.125rem}
.panel-head>div{min-width:0}
.panel-head h2{margin-top:.125rem;font-size:var(--fs-lg);font-weight:700;line-height:var(--lh-heading);letter-spacing:-.015em}
.daily-panel,.todo-panel{grid-row:span 1}

/* ===== Check list ===== */
.daily-progress{
  display:flex;align-items:center;gap:.875rem;
  margin-bottom:1.125rem;padding-bottom:1.125rem;border-bottom:1px solid var(--border)
}
.daily-progress>div:first-child{flex-shrink:0}
.daily-progress strong{display:block;font-size:var(--fs-20);font-weight:700}
.daily-progress span{font-size:var(--fs-sm);color:var(--text-3)}
.daily-progress .progress{flex:1;margin:0}

/* 事项待办汇总 */
.todo-summary-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem
}
.todo-summary-cell{
  padding:.875rem 1rem;border-radius:var(--radius-xs);
  background:var(--surface-sunken);
  display:flex;flex-direction:column;gap:.25rem;align-items:center
}
.todo-summary-cell strong{font-size:var(--fs-28);font-weight:700;letter-spacing:-.025em}
.todo-summary-cell span{font-size:var(--fs-xs);color:var(--text-3)}
.todo-summary-cell.red strong{color:var(--red)}

/* 事项待办：近期待办列表，填充面板剩余空间避免左高右空 */
.todo-upcoming-block{
  margin-top:.875rem;padding:.75rem .875rem;
  border:1px dashed var(--border-strong);border-radius:var(--radius-xs);
  background:var(--surface-raised);
  flex:1;min-height:0;display:flex;flex-direction:column;gap:.5rem
}
.todo-upcoming-head{
  display:flex;align-items:center;justify-content:space-between;
  font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.05em
}
.todo-upcoming-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:999px;
  background:var(--accent-soft);color:var(--accent-deep);
  font-family:var(--font-num);font-weight:600;font-size:var(--fs-2xs)
}
.todo-upcoming{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:.375rem;
  overflow:auto;max-height:9.5rem
}
.todo-upcoming li{
  display:flex;align-items:center;gap:.5rem;
  font-size:var(--fs-14);color:var(--text);
  padding:.375rem .5rem;border-radius:var(--radius-xs);
  background:var(--surface);border:1px solid var(--border)
}
.todo-upcoming li span:last-child{
  flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.due-tag{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:2.25rem;height:1.375rem;padding:0 .25rem;border-radius:var(--radius-xs);
  background:var(--accent-soft);color:var(--accent-deep);
  font-family:var(--font-num);font-size:var(--fs-2xs);font-weight:600
}
.todo-upcoming-empty{
  margin:0;font-size:var(--fs-xs);color:var(--text-3);line-height:1.5
}

/* 待办列表（抽屉内） */
.todo-actions{display:flex;gap:.5rem}
.check-item{
  display:flex;align-items:center;gap:.75rem;position:relative;
  min-height:4rem;padding:.875rem .375rem;
  border-bottom:1px solid var(--border);cursor:pointer;
  transition:background var(--t-fast),transform var(--t-fast)
}
.check-item:last-child{border-bottom:0}
.check-item:hover{background:var(--surface-raised);transform:translateX(.375rem)}
.check-item.done{
  padding-left:.75rem;padding-right:.75rem;border-radius:var(--radius-xs);
  background:var(--green-soft);border-bottom-color:transparent
}
.check-item.done .check-label{color:var(--text-3);text-decoration:line-through}
.check-item[aria-busy="true"]{opacity:.6;pointer-events:none}
.checkbox{
  width:1.5rem;height:1.5rem;flex-shrink:0;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--border-strong);
  transition:background var(--t-fast),border-color var(--t-fast)
}
.check-item:hover .checkbox{border-color:var(--accent)}
.check-item.done .checkbox{background:var(--green);border-color:var(--green);color:#fff}
.checkbox [data-icon]{width:.875rem;height:.875rem;opacity:0;transition:opacity var(--t-fast)}
.check-item.done .checkbox [data-icon]{opacity:1}
.check-info{flex:1;min-width:0}
.check-label{font-size:var(--fs-body);font-weight:500;line-height:var(--lh-control)}
.check-meta{margin-top:.125rem;font-size:var(--fs-xs);color:var(--text-3);line-height:var(--lh-control)}
.check-time{flex-shrink:0;font-size:var(--fs-xs);color:var(--text-3)}
.check-item.done .check-time{color:var(--green);font-weight:600}
.check-item.readonly{cursor:default}
.check-item.readonly:hover{background:transparent;transform:none}
.check-item.readonly:hover .checkbox{border-color:var(--border-strong)}
.check-item.summary-only{padding-left:0;padding-right:0}

/* ===== Timeline ===== */
.tag{
  display:inline-block;margin-left:.375rem;padding:.125rem .4375rem;
  border-radius:var(--radius-xs);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.02em;vertical-align:middle
}
.tag.risk{background:var(--red-soft);color:var(--red)}
.tag.new{background:var(--accent);color:#fff}
.tag.update{background:var(--blue-soft);color:var(--accent-deep)}

/* ===== Chart ===== */
#trendChart{width:100%;height:auto;display:block}
#trendChart[hidden]{display:none}
/* 图表区的状态块不再撑满整个面板高度，视觉重量与曲线接近 */
select{
  min-height:2.25rem;padding:0 .625rem;border-radius:var(--radius-xs);
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);
  font-size:var(--fs-sm);outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)
}
select:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}

/* ===== Module grid ===== */
.module-card{
  position:relative;width:100%;min-height:8.25rem;overflow:hidden;
  padding:1rem;text-align:left;cursor:pointer;
  border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  transition:background var(--t-base),transform var(--t-base)
}
.module-card:nth-child(2n){border-right:0}
.module-card:hover{background:#f4f8fd}
.module-card .module-icon{
  width:2rem;height:2rem;margin-bottom:1rem;border-radius:var(--radius-xs);
  display:flex;align-items:center;justify-content:center
}
.module-card .module-icon [data-icon]{width:1rem;height:1rem}
.module-card h3{margin-bottom:.25rem;font-size:var(--fs-body);font-weight:600;line-height:var(--lh-control)}
/* 健康度：颜色 + 形状 + 文字三通道 */

/* ===== View sections ===== */
.section-head{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  margin-bottom:1.5rem;padding-bottom:1.125rem;border-bottom:1px solid var(--border)
}
.section-head>div{min-width:0}
.section-head h2{font-family:var(--font-num);font-size:var(--fs-xl);font-weight:700;line-height:var(--lh-heading);letter-spacing:-.03em}
.section-head p{max-width:65ch;margin-top:.3125rem;font-size:var(--fs-body);color:var(--text-3);line-height:var(--lh-body)}
.filter-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.filter-chip{
  /* 统一尺寸：昨日/7天/30天……任何文字长度都用同一高度、同一内边距、同一最小宽度 */
  box-sizing:border-box;
  min-height:2.5rem;min-width:4.5rem;
  padding:.5rem .9375rem;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--radius-xs);
  border:1px solid var(--border-strong);background:var(--surface);
  font-size:var(--fs-sm);color:var(--text-2);
  line-height:1;white-space:nowrap;
  transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)
}
.filter-chip:hover{border-color:var(--accent);color:var(--accent-deep)}
.filter-chip.active{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:600}

.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1.5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.stat-card{padding:1.125rem 1.25rem;border-right:1px solid var(--border)}
.stat-card:last-child{border-right:0}
.stat-card .label{margin-bottom:.5rem;font-size:var(--fs-xs);color:var(--text-3)}
.stat-card .value{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.03em;line-height:var(--lh-data)}
.stat-card .value small{margin-left:.25rem;font-size:var(--fs-15);font-weight:400;color:var(--text-3)}

/* ===== Doc cards ===== */

/* ===== 状态文字：固定一行，小圆角，不压成圆形徽章 ===== */
.status-pill{
  display:inline-flex;align-items:center;justify-content:center;min-height:1.5rem;max-width:none;flex-shrink:0;
  padding:.1875rem .5rem;border-radius:var(--radius-xs);font-size:var(--fs-xs);font-weight:600;line-height:1.5;white-space:nowrap;word-break:normal
}
.status-pill::before{content:none}
.status-pill.success,.status-pill.verified{background:var(--green-soft);color:var(--green)}
.status-pill.pending,.status-pill.disabled{background:var(--amber-soft);color:var(--amber)}
.status-pill.pending::before{border-radius:4px}
.status-pill.failed,.status-pill.rejected{background:var(--red-soft);color:var(--red)}
.status-pill.failed::before{transform:rotate(45deg);border-radius:0}
.status-pill.neutral{background:var(--neutral-soft);color:var(--text-2)}

/* ===== Source health & coverage ===== */

/* ===== Tables ===== */
.source-table-wrap,.preview-table-wrap{
  overflow:auto;border-radius:var(--radius-xs);
  background:var(--surface);border:1px solid var(--border)
}
.source-table,.preview-table{width:100%;border-collapse:collapse;min-width:48rem;font-size:var(--fs-xs)}
.source-table th,.source-table td,.preview-table th,.preview-table td{
  padding:.75rem .875rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top
}
.source-table th,.preview-table th{
  position:sticky;top:0;z-index:1;
  background:var(--surface-sunken);color:var(--text-2);font-weight:600;white-space:nowrap
}
.source-table tr:last-child td,.preview-table tr:last-child td{border-bottom:0}

/* ===== Command palette ===== */
.command-palette{
  position:fixed;inset:0;z-index:var(--z-modal);display:none;
  align-items:flex-start;justify-content:center;padding-top:15vh;
  background:rgba(61,78,99,.28);backdrop-filter:blur(4px)
}
.command-palette.show{display:flex;animation:fadeIn var(--t-fast)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.command-box{
  width:100%;max-width:38rem;overflow:hidden;border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);
  animation:popIn var(--t-base)
}
@keyframes popIn{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}
.command-input{display:flex;align-items:center;gap:.625rem;min-height:3.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}
.command-input [data-icon]{width:1.125rem;height:1.125rem;color:var(--text-3)}
.command-input input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text)}
.command-input input:focus{box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}
.command-input input::placeholder{color:var(--text-3)}
.command-input kbd{
  padding:.1875rem .5rem;border-radius:var(--radius-xs);flex-shrink:0;
  background:var(--surface-sunken);color:var(--text-3);
  font-family:var(--font-num);font-size:var(--fs-2xs)
}
.command-results{max-height:20rem;overflow-y:auto}
.command-result{
  display:flex;align-items:center;gap:.75rem;width:100%;
  padding:.75rem 1.25rem;cursor:pointer;text-align:left;
  transition:background var(--t-fast)
}
.command-result:hover,.command-result.selected{background:var(--surface-hover)}
.command-result [data-icon]{width:1rem;height:1rem;color:var(--text-3);flex-shrink:0}
.command-result strong{min-width:0;font-size:var(--fs-body);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.command-result small{margin-left:auto;flex-shrink:0;font-size:var(--fs-xs);color:var(--text-3)}

/* ===== Toast：支持持久化失败态与重试 ===== */
.toast{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:var(--z-toast);
  display:flex;align-items:flex-start;gap:.75rem;max-width:min(24rem,calc(100vw - 3rem));
  padding:.875rem 1.125rem;border-radius:var(--radius-xs);
  background:var(--surface);color:var(--text);
  border:1px solid var(--border);box-shadow:var(--shadow-lg);
  transform:translateY(5rem);opacity:0;pointer-events:none;
  transition:transform var(--t-base),opacity var(--t-base)
}
.toast.show{transform:none;opacity:1;pointer-events:auto}
.toast>[data-icon]{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.125rem;color:var(--green)}
.toast>div{min-width:0;flex:1}
.toast strong{display:block;font-size:var(--fs-body);font-weight:600}
.toast small{display:block;margin-top:.125rem;font-size:var(--fs-xs);color:var(--text-2);line-height:var(--lh-control)}
.toast.error{border-color:var(--red-line);background:var(--red-soft)}
.toast.error>[data-icon]{color:var(--red)}
.toast.error strong{color:var(--red)}
.toast-retry{
  flex-shrink:0;align-self:center;min-height:2rem;padding:.375rem .75rem;
  border-radius:var(--radius-xs);border:1px solid var(--red-line);
  background:var(--surface);color:var(--red);font-size:var(--fs-xs);font-weight:600;
  transition:background var(--t-fast)
}
.toast-retry:hover{background:var(--red-soft)}
.toast-close{flex-shrink:0;align-self:flex-start;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;color:var(--text-3);border-radius:var(--radius-xs)}
.toast-close:hover{background:rgba(0,0,0,.05);color:var(--text)}
.toast-close [data-icon]{width:.875rem;height:.875rem}

/* ===== Drawer ===== */
.drawer{position:fixed;inset:0;z-index:var(--z-modal);display:none}
.drawer.show{display:block}
/* 2026-10-12：去掉背景模糊、减轻遮罩，打开详情时仍能看清背后的页面上下文 */
.drawer-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.22);animation:fadeIn var(--t-fast)}
.drawer aside{
  position:absolute;right:0;top:0;height:100%;width:min(max(40rem,44vw),94vw);
  display:flex;flex-direction:column;
  background:var(--surface);border-left:1px solid var(--border);
  box-shadow:var(--shadow-lg);
  transform:translateX(100%);transition:transform var(--t-enter)
}
.drawer.show aside{transform:none}
.drawer-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
  padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0
}
.drawer-head>div{min-width:0}
.drawer-head h2{margin-top:.125rem;font-family:var(--font-num);font-size:var(--fs-20);font-weight:700;line-height:var(--lh-heading);letter-spacing:-.02em}
/* Shared drawer containment only; business tables keep their own horizontal scrollers. */
#drawerBody{flex:1;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:1.5rem}
.drawer-head #closeDrawer{flex-shrink:0}
.drawer-head h2{overflow-wrap:anywhere;max-height:min(3.9em,25vh);overflow-y:auto}
#drawerBody>.drawer-note + .btn,
#drawerBody>.btn + .drawer-section,
#drawerBody .drawer-section>.btn + [aria-live]{margin-top:1rem}
#drawerBody .drawer-filter-toolbar button{min-height:2.625rem}
#drawerBody .sku-table-wrap,
#drawerBody .preview-table-wrap{max-width:100%;overscroll-behavior-x:contain}
.drawer-section{margin-bottom:1.5rem}
.drawer-section:last-child{margin-bottom:0}
.drawer-section h3{margin-bottom:.75rem;font-size:var(--fs-md);font-weight:600}
.drawer-note{
  padding:.875rem;border-radius:var(--radius-xs);font-size:var(--fs-xs);line-height:var(--lh-reading);
  background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-hover)
}
.sync-rule{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:.75rem;margin-bottom:1rem;padding:1rem;border:1px solid var(--green-line);border-radius:var(--radius-xs);background:var(--green-soft)}
.sync-rule>[data-icon]{width:2.25rem;height:2.25rem;padding:.55rem;border-radius:var(--radius-xs);background:var(--surface);color:var(--green)}
.sync-rule strong{display:block;font-size:var(--fs-sm);color:var(--text)}.sync-rule p{margin-top:.1875rem;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.drawer-note.warn{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}
.drawer-note.danger{background:var(--red-soft);border-color:var(--red-line);color:var(--red)}
/* 抽屉内的信息块：替代原先散落的行内 style，统一走 token */
.drawer-block{
  padding:.875rem;margin-bottom:1rem;border-radius:var(--radius-xs);
  background:var(--surface-sunken);border:1px solid var(--border);
  font-size:var(--fs-sm);line-height:var(--lh-reading);color:var(--text-2)
}
.drawer-block strong{color:var(--text)}
.drawer-kv{display:flex;justify-content:space-between;gap:1rem}
.drawer-kv + .drawer-kv{margin-top:.5rem}
.drawer-kv strong{font-family:var(--font-num);font-variant-numeric:tabular-nums}
.drawer-block.readonly-hint{
  background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber);
  font-size:var(--fs-xs);margin-bottom:1.25rem
}
.drawer-block.readonly-hint strong{color:var(--amber)}
.drawer-actions{display:flex;gap:.625rem;flex-wrap:wrap;margin-top:1rem}
.drawer-actions .btn{flex:1;min-width:8rem}
.detail-list{display:grid;gap:.625rem}
.detail-item{
  display:grid;grid-template-columns:6.875rem minmax(0,1fr);gap:1rem;
  padding:.75rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)
}
.detail-item:last-child{border-bottom:0}
.detail-item span{color:var(--text-3)}
.detail-item strong{font-weight:600;word-break:break-word}
.drilldown-list{display:grid;gap:.625rem}
.drilldown-item{
  padding:.875rem;border-radius:var(--radius-xs);cursor:pointer;
  background:var(--surface);border:1px solid var(--border);
  transition:border-color var(--t-fast),background var(--t-fast)
}
.drilldown-item:hover{border-color:var(--accent);background:var(--surface-raised)}
.drilldown-item-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}
.drilldown-item h3{font-size:var(--fs-body);font-weight:600;line-height:var(--lh-control)}
.drilldown-item p{margin-top:.3125rem;font-size:var(--fs-xs);color:var(--text-3);line-height:var(--lh-body)}
.drilldown-item small{display:block;margin-top:.5rem;font-size:var(--fs-2xs);color:var(--text-3)}

/* ===== Account popover ===== */
.account-popover{
  position:fixed;top:4rem;right:1.75rem;z-index:var(--z-popover);
  width:19.375rem;padding:.5rem;border-radius:var(--radius-sm);
  background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);
  animation:popIn var(--t-fast)
}
.account-popover[hidden]{display:none}
.account-popover button{
  display:flex;align-items:flex-start;gap:.75rem;width:100%;
  padding:.75rem;border-radius:var(--radius-xs);text-align:left;
  transition:background var(--t-fast)
}
.account-popover button:hover{background:var(--surface-hover)}
.account-popover button>[data-icon]{width:1.125rem;height:1.125rem;color:var(--text-3);flex-shrink:0;margin-top:.125rem}
.account-popover button>span:last-child{display:grid;gap:.125rem;min-width:0}
.account-popover strong{font-size:var(--fs-sm);font-weight:600}
.account-popover small{font-size:var(--fs-2xs);color:var(--text-3);line-height:var(--lh-control)}
.account-popover .danger-action strong,.account-popover .danger-action>[data-icon]{color:var(--red)}

/* ===== Forms ===== */
.security-form,.source-form{display:grid;gap:.875rem;margin-top:1rem}
.security-form label,.source-form label{display:grid;gap:.4375rem;font-size:var(--fs-xs);font-weight:600;color:var(--text-2)}
.security-form input,.security-form select,.source-form input,.source-form select{
  width:100%;height:2.75rem;padding:0 .75rem;border-radius:var(--radius-xs);
  background:var(--surface);color:var(--text);border:1px solid var(--border-strong);
  font-weight:400;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)
}
.security-form input:focus,.security-form select:focus,.source-form input:focus,.source-form select:focus,.source-form textarea:focus{
  border-color:var(--accent);box-shadow:var(--focus-ring)
}
/* 事项说明这类多行输入沿用同一套边框与聚焦样式，只放开高度 */
.source-form textarea{
  width:100%;min-height:5.5rem;padding:.625rem .75rem;border-radius:var(--radius-xs);
  background:var(--surface);color:var(--text);border:1px solid var(--border-strong);
  font-family:inherit;font-size:var(--fs-sm);font-weight:400;line-height:var(--lh-body);
  resize:vertical;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.password-rules{display:grid;grid-template-columns:1fr 1fr;gap:.375rem;font-size:var(--fs-2xs);color:var(--text-3)}
.password-rules span::before{content:'○';margin-right:.375rem}
.password-rules span.pass{color:var(--green)}
.password-rules span.pass::before{content:'●'}

/* ==========================================================================
   五态设计：加载 / 空（正常） / 空（异常） / 无权限 / 部分失败
   ========================================================================== */

/* 1. 加载中：骨架屏，保持布局稳定避免内容跳动 */
.skeleton{
  position:relative;overflow:hidden;border-radius:var(--radius-xs);
  background:var(--surface-sunken)
}
.skeleton::after{
  content:'';position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);
  animation:shimmer 1.5s infinite
}
@keyframes shimmer{to{transform:translateX(100%)}}
.sk-line{height:.75rem;margin-bottom:.5rem}
.sk-line.w40{width:40%}
.sk-line.w80{width:80%}
.sk-num{height:2rem;width:5rem;margin-bottom:.75rem}
.sk-row{display:flex;align-items:center;gap:.75rem;padding:.875rem 0;border-bottom:1px solid var(--border)}
.sk-row:last-child{border-bottom:0}
.sk-row>div{flex:1;min-width:0}

/* 2-5. 状态块统一骨架：图标 + 标题 + 说明 + 动作 */
.state-block{
  display:grid;place-items:center;gap:.75rem;
  min-height:14rem;padding:2.5rem 1.5rem;text-align:center;
  border-radius:var(--radius-sm);background:var(--surface);
  border:1px dashed var(--border-strong)
}
.state-block .state-icon{
  width:3rem;height:3rem;border-radius:var(--radius-sm);
  display:grid;place-items:center;
  background:var(--neutral-soft);color:var(--text-3)
}
.state-block .state-icon [data-icon]{width:1.5rem;height:1.5rem}
.state-block h3{font-size:var(--fs-md);font-weight:600;color:var(--text)}
.state-block p{max-width:34rem;font-size:var(--fs-sm);color:var(--text-3);line-height:var(--lh-reading)}
.state-block .state-actions{display:flex;gap:.625rem;flex-wrap:wrap;justify-content:center;margin-top:.25rem}
.state-block code{
  padding:.125rem .375rem;border-radius:var(--radius-xs);
  background:var(--surface-sunken);font-family:var(--font-num);font-size:var(--fs-xs)
}

/* 空（正常）：没有数据是预期结果 */
.state-block.empty .state-icon{background:var(--accent-soft);color:var(--accent-deep)}
/* 空（异常）：读取失败，和"没有数据"必须区分开 */
.state-block.failed{background:var(--red-soft);border-color:var(--red-line);border-style:solid}
.state-block.failed .state-icon{background:#fff;color:var(--red)}
.state-block.failed h3{color:var(--red)}
.state-block.failed p{color:var(--text-2)}
/* 无权限：说明缺什么权限、找谁申请 */
.state-block.denied{background:var(--amber-soft);border-color:var(--amber-line);border-style:solid}
.state-block.denied .state-icon{background:#fff;color:var(--amber)}
.state-block.denied h3{color:var(--amber)}
.state-block.denied p{color:var(--text-2)}
/* 等待中：链路已配置但尚无产出 */
.state-block.waiting .state-icon{background:var(--amber-soft);color:var(--amber)}

/* 部分失败：显示成功部分 + 标注失败项 */

/* 兼容旧类名 */
.empty-state{
  display:grid;place-items:center;min-height:10rem;padding:2rem;text-align:center;
  border-radius:var(--radius-xs);background:var(--surface-raised);
  border:1px dashed var(--border-strong);font-size:var(--fs-body);color:var(--text-3)
}

/* ===== Secure loading shell ===== */
.secure-loading{
  min-height:calc(100dvh - 7rem);
  display:grid;place-content:center;justify-items:center;gap:.625rem;
  padding:2.5rem;text-align:center;color:var(--text-2)
}
.secure-loading-mark{
  width:4rem;height:4rem;display:grid;place-items:center;
  border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-deep);
  font-family:var(--font-num);font-weight:700;letter-spacing:.06em
}
.secure-loading h1{margin:0;font-size:var(--fs-xl);color:var(--text)}
.secure-loading p{margin:0;max-width:30rem;line-height:var(--lh-reading);font-size:var(--fs-body)}

/* ===== Login gate ===== */
.login-gate{
  position:fixed;inset:0;z-index:var(--z-gate);
  display:grid;place-items:center;min-height:100dvh;padding:clamp(1rem,3vw,2.5rem);
  background:
    radial-gradient(circle at 14% 18%,rgba(91,168,214,.10),transparent 28rem),
    linear-gradient(135deg,#eef2f7,#f6f9fc)
}
.login-gate[hidden]{display:none}
.login-layout{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(25rem,.92fr);
  width:min(70rem,100%);min-height:min(42rem,calc(100dvh - 5rem));
  overflow:hidden;border-radius:var(--radius-lg);
  background:var(--surface);border:1px solid var(--border-strong);
  box-shadow:0 12px 30px rgba(26,34,48,.12)
}
.login-story{
  position:relative;display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(2rem,4vw,3.5rem);overflow:hidden;
  color:#fff;background:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    radial-gradient(circle at 88% 85%,rgba(91,168,214,.30),transparent 21rem),
    linear-gradient(145deg,var(--nav-deep-2),#223650);
  background-size:3rem 3rem,3rem 3rem,auto,auto
}
.login-story::after{
  content:'';position:absolute;right:2.75rem;top:2.75rem;width:5rem;height:1px;
  background:linear-gradient(90deg,rgba(255,255,255,.5),transparent)
}
.login-story>*{position:relative;z-index:1}
.login-story-brand{display:flex;align-items:center;gap:.75rem;color:#fff}
.login-story-brand>.brand-mark{width:2.625rem;height:2.625rem;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.login-story-brand>span:last-child{display:grid;gap:.125rem}
.login-story-brand strong{font-size:var(--fs-body);font-weight:700;letter-spacing:.04em}
.login-story-brand small{color:rgba(255,255,255,.72);font-size:var(--fs-2xs);letter-spacing:.08em}
.eyebrow.light{color:#7db4d8}
.login-story-copy h1{
  max-width:16ch;margin:.75rem 0 1.125rem;
  font-family:var(--font-num);font-size:clamp(2rem,3.35vw,3rem);
  font-weight:700;line-height:var(--lh-data);letter-spacing:-.045em;color:#fff
}
.login-story-copy>p:last-child{max-width:31rem;font-size:var(--fs-md);line-height:var(--lh-reading);color:rgba(255,255,255,.78)}
.login-signal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.16)}
.login-signal>div{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.625rem;padding:1rem .875rem 0 0}
.login-signal>div+div{padding-left:.875rem;border-left:1px solid rgba(255,255,255,.12)}
.login-signal>div>span{font-family:var(--font-num);font-size:var(--fs-2xs);color:#8fbede}
.login-signal p{display:grid;gap:.1875rem}
.login-signal strong{font-size:var(--fs-xs);color:#fff}
.login-signal small{font-size:var(--fs-2xs);color:rgba(255,255,255,.66);line-height:var(--lh-control)}
.login-card{align-self:center;width:min(28rem,100%);padding:clamp(2.25rem,4.5vw,4.25rem)}
.login-brand{display:none;padding:0 0 2.75rem}
.login-card h2{margin:.5rem 0 .625rem;font-family:var(--font-num);font-size:var(--fs-32);font-weight:700;line-height:var(--lh-heading);letter-spacing:-.04em}
.login-card>p:not(.eyebrow){margin-bottom:1.75rem;font-size:var(--fs-body);color:var(--text-2);line-height:var(--lh-reading)}
.login-card form{display:grid;gap:1rem}
.login-card label{display:grid;gap:.4375rem;font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}
.login-card input{
  width:100%;height:3rem;padding:0 .875rem;border-radius:var(--radius-xs);
  background:var(--surface);color:var(--text);border:1px solid var(--border-strong);
  font-weight:400;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)
}
.login-card input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}
.login-card .btn{width:100%;min-height:3.125rem;margin-top:.25rem}
.login-submit{display:flex;align-items:center;justify-content:center;gap:.5rem}
.login-submit [data-icon]{width:1rem;height:1rem;transition:transform var(--t-fast)}
.login-submit:hover [data-icon]{transform:translateX(3px)}
#loginError{min-height:1.125rem;font-size:var(--fs-xs);color:var(--red);text-align:center;line-height:var(--lh-control)}
.login-security{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.25rem;font-size:var(--fs-xs);color:var(--text-3)}
.login-security [data-icon]{width:.875rem;height:.875rem;color:var(--green)}

/* ===== A+ 经营总览 ===== */
.overview-presets button,.overview-tabs button{
  min-height:2.25rem;padding:.375rem .75rem;border-radius:var(--radius-xs);
  color:var(--text-2);font-size:var(--fs-xs);font-weight:500;
  transition:background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)
}
.overview-presets button:hover,.overview-tabs button:hover{color:var(--text)}
.overview-presets button[aria-pressed="true"],.overview-tabs button[aria-pressed="true"]{
  background:var(--surface);color:var(--accent-deep);font-weight:600;box-shadow:0 1px 3px rgba(26,34,48,.08)
}
#overviewFilterError:empty{display:none}
#overviewFilterError{display:block;grid-column:1/-1;width:100%;min-height:.875rem;color:var(--red);font-size:var(--fs-xs);line-height:var(--lh-control)}
.overview-scope{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  min-height:2.75rem;padding:.625rem .875rem;
  background:var(--accent-soft);color:var(--text-2);font-size:var(--fs-xs)
}
.overview-scope>span{display:flex;align-items:center;gap:.5rem;min-width:0}
.overview-scope .text-btn{min-height:1.75rem;color:var(--accent-deep)}
.overview-kpi{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;min-height:6rem;overflow:hidden;
  padding:.875rem clamp(1.125rem,2vw,1.5rem);border-right:1px solid var(--border);text-align:left;
  transition:background var(--t-fast),box-shadow var(--t-fast),color var(--t-fast)
}
.overview-kpi::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left}
.overview-kpi:last-child{border-right:0}
.overview-kpi:nth-child(4){border-right:0}
.overview-kpi:nth-child(-n+4){border-bottom:0}
.overview-kpi:nth-child(n+5){grid-column:span 2;min-height:5.75rem}
.overview-kpi:nth-child(n+5) strong{margin:.375rem 0;font-size:var(--fs-20)}
.overview-kpi:hover{background:var(--surface-raised)}
.overview-kpi:focus-visible{z-index:1}
.overview-kpi.is-activating{background:var(--accent-soft)}
.overview-kpi.is-activating::after{animation:kpiDetailSweep 180ms var(--ease) forwards}
.overview-kpi.is-activating>span [data-icon]{color:var(--accent-deep);transform:translateX(2px)}
@keyframes kpiDetailSweep{to{transform:scaleX(1)}}
.overview-kpi>span{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.375rem;color:var(--text-2);font-size:var(--fs-xs)}
.overview-kpi>span [data-icon]{width:.875rem;height:.875rem;color:var(--text-3)}
.overview-kpi strong{
  margin:.625rem 0 .375rem;font-family:var(--font-num);font-size:1.5rem;
  line-height:var(--lh-data);letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap
}
.overview-kpi>small{margin-top:auto;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-control)}
.overview-shop-table{max-height:none;overflow-x:auto}
.overview-shop-table .sku-table{min-width:42rem}
.overview-shop-table th:not(:first-child),.overview-shop-table td:not(:first-child){text-align:right;white-space:nowrap}
.overview-shop-table th{position:sticky;top:0;background:var(--surface-raised);z-index:1}
.money-summary{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(15rem,.65fr);gap:.75rem;margin-bottom:1rem}
.money-basis{height:100%;padding:1rem;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-xs);margin-bottom:1rem}
.money-summary .money-basis{margin-bottom:0}
.money-basis h3{font-size:var(--fs-body);margin-bottom:.375rem}
.money-equation{display:block;margin:.5rem 0;font-family:var(--font-num);font-size:var(--fs-lg);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.money-basis-note{color:var(--text-2);font-size:var(--fs-xs);margin-top:.5rem}
.money-detail-section{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.875rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.money-section-heading{display:grid;gap:.125rem}
.money-section-heading strong{font-size:var(--fs-sm)}
.money-section-heading span{color:var(--text-2);font-size:var(--fs-xs)}
.money-detail>.overview-tabs{margin:.75rem 0}
.money-detail-section>.overview-tabs{margin:0;flex:0 0 auto}
.money-toolbar,.money-pagination{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}
.money-toolbar button{min-width:2.75rem;min-height:2.75rem}
#nlQueryBody{scroll-margin-top:6rem}
.money-toolbar input{flex:1;min-width:10rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);padding:.5rem .75rem;background:var(--surface);font-size:var(--fs-body);height:2.75rem}
.money-reconcile{display:grid;gap:.25rem;padding:.75rem;background:var(--green-soft);border:1px solid var(--green-line);color:var(--green);border-radius:var(--radius-xs);font-size:var(--fs-sm)}
.money-mismatch{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}
.money-pagination{justify-content:flex-end;font-size:var(--fs-xs)}
.drawer.drawer-wide aside{width:min(68rem,94vw)}
.money-detail .sku-table-wrap{max-height:52vh;overflow:auto}
.money-detail .sku-table th{position:sticky;top:0;z-index:1;background:var(--surface-raised);white-space:nowrap}
.money-detail .sku-table td{vertical-align:top}
.overview-tabs{display:flex;align-items:center;gap:.1875rem;flex-wrap:wrap}
.overview-tabs button{min-height:2rem;padding:.25rem .625rem}
.overview-chart-total{display:flex;align-items:baseline;gap:.625rem;margin:.25rem 0 -.25rem}
.overview-chart-total strong{font-family:var(--font-num);font-size:var(--fs-24);font-variant-numeric:tabular-nums}
.overview-chart-total span{color:var(--text-3);font-size:var(--fs-2xs)}
.overview-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:.25rem}
.overview-chart{display:block;min-width:100%;height:15.5rem;margin-top:.25rem;color:var(--accent-deep)}
.overview-chart text{fill:var(--text-3);font-family:var(--font-num);font-size:var(--fs-13)}
.overview-chart circle{fill:var(--surface);stroke:currentColor;stroke-width:2}
.wdt-date-form{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:nowrap;margin-left:0}
.wdt-date-form label{display:grid;gap:.25rem;min-width:0;color:var(--text-2);font-size:var(--fs-xs);font-weight:500}
.wdt-date-form input{width:8.5rem;min-height:2.5rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);padding:.375rem .5rem;font-family:var(--font);font-size:var(--fs-sm)}
.wdt-date-form .btn{min-height:2.5rem;white-space:nowrap}
.wdt-date-form input:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
.after-sales-tabs{margin:.75rem 0;overflow-x:auto;justify-content:flex-start}
.after-sales-table td small{display:block;margin-top:.2rem;color:var(--text-3)}
/* 退款原因 TOP5 小卡（A 方案：结论前置，明细收折叠层） */
.refund-reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.625rem;margin:.875rem 0}
.refund-reason-row{display:grid;gap:.375rem;padding:.75rem .875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}
.refund-reason-label{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;min-width:0}
.refund-reason-label strong{min-width:0;overflow-wrap:anywhere;font-size:var(--fs-sm)}
.refund-reason-label span{min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.7;color:var(--accent-deep);font-family:var(--font-num);font-size:var(--fs-xs);font-weight:700;font-variant-numeric:tabular-nums}
.refund-reason-bar{display:block;height:5px;overflow:hidden;border-radius:999px;background:var(--surface-sunken)}
.refund-reason-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.refund-reason-row small{color:var(--text-3);font-size:var(--fs-xs)}
.refund-reason-more{margin:.25rem 0 .75rem;color:var(--text-2);font-size:var(--fs-xs)}
.refund-detail-toggle-row{margin:.5rem 0 .625rem}
.refund-detail-wrap[hidden]{display:none}
.refund-detail-wrap{margin:.25rem 0 .75rem}
.team-pending-files{margin-top:.75rem;padding:.75rem;border:1px dashed var(--amber-line,var(--border-strong));border-radius:12px;background:#fffaf0}
.team-pending-files h4{margin:0 0 .5rem;color:var(--amber)}
.team-file-row.pending{background:transparent}
.team-edit-block{margin:.875rem 0;border:1px solid var(--border);border-radius:12px;padding:.75rem}
.team-edit-block>summary{cursor:pointer;font-weight:700;color:var(--accent-deep)}
.overview-gridline{stroke:var(--border);stroke-width:1}
.overview-footnote{margin-top:auto;padding-top:.625rem;color:var(--text-3);font-size:var(--fs-2xs);line-height:var(--lh-body)}
.overview-rank{
  display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:center;gap:.625rem;
  width:100%;min-height:3rem;padding:.4375rem .25rem;border-bottom:1px solid var(--border);text-align:left;
  transition:background var(--t-fast)
}
.overview-rank:last-child{border-bottom:0}
.overview-rank:hover{background:var(--surface-raised)}
.overview-product-table{max-height:25rem;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-xs)}
.overview-product-table .sku-table{min-width:42rem}
.overview-product-table .sku-table th:not(:first-child),.overview-product-table .sku-table td:not(:first-child){text-align:right}
.overview-product-table .sku-table th:last-child,.overview-product-table .sku-table td:last-child{text-align:center}
.overview-empty{display:grid;place-items:center;align-content:center;gap:.375rem;min-height:14rem;padding:1.5rem;text-align:center;color:var(--text-3)}
.overview-empty.loading{min-height:8rem}
.overview-empty>[data-icon]{width:1.5rem;height:1.5rem;color:var(--accent)}
.overview-empty strong{color:var(--text-2);font-size:var(--fs-sm)}
.overview-empty p{max-width:28rem;font-size:var(--fs-xs);line-height:var(--lh-body)}
.overview-loading-value{color:var(--text-3);font-family:var(--font);font-size:var(--fs-xs);font-weight:500;letter-spacing:0}

/* 单一轮廓图标系统：统一 1.8px 线宽，继续沿用现有 data-icon 接口。 */
[data-icon]{-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
[data-icon="grid"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="database"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='6' rx='8' ry='3'/%3E%3Cpath d='M4 6v6c0 1.7 3.6 3 8 3s8-1.3 8-3V6M4 12v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="chart"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20V11M10 20V5M16 20v-7M22 20H2'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="edit"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l4-.8L19 8.2a2 2 0 0 0-2.8-2.8L5 16.6 4 20zM14.7 6.8l2.5 2.5'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="service"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-8 8H6l-4 2 1.5-4A9 9 0 1 1 21 12zM8 11h8M8 15h5'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="message"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v13H8l-4 3V4zM8 9h8M8 13h5'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="store"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9v11h16V9M3 9l2-5h14l2 5M3 9a3 3 0 0 0 5 2 3 3 0 0 0 4 0 3 3 0 0 0 4 0 3 3 0 0 0 5-2M9 20v-5h6v5'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="wallet"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='15' rx='2'/%3E%3Cpath d='M3 9h18M15 13h6v4h-6a2 2 0 0 1 0-4z'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="bell"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="alert"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3L2.5 20h19L12 3zM12 9v5M12 17.5v.1'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="external"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M19 13v7H4V5h7'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="menu"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E")}
[data-icon="search"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="filter"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3 5h18l-7 8v6l-4 2v-8L3 5z'/%3E%3C/svg%3E")}
[data-icon="refresh"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7v5h-5M4 17v-5h5M6.1 8A7 7 0 0 1 18.8 6L20 8M4 16l1.2 2A7 7 0 0 0 18 16'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="target"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="spark"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.5 5.5L19 10l-5.5 1.5L12 17l-1.5-5.5L5 10l5.5-1.5L12 3zM19 16v5M16.5 18.5h5'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="check"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E")}
[data-icon="arrow"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E")}
[data-icon="settings"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6L7 7M17 17l1.4 1.4M18.4 5.6L17 7M7 17l-1.4 1.4'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="close"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E")}
[data-icon="doc"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6V3zM14 3v5h4M9 12h6M9 16h6'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="clock"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/g%3E%3C/svg%3E")}
[data-icon="lock"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3M12 14v3'/%3E%3C/g%3E%3C/svg%3E")}

/* ==========================================================================
   Responsive
   ========================================================================== */
@container (max-width:42rem){
  .coverage-grid{grid-template-columns:1fr}
  .source-health-grid{grid-template-columns:1fr}
}

@media(max-width:1180px){
  .overview-kpi:nth-child(n){grid-column:auto;border-right:1px solid var(--border);border-bottom:0}
  .overview-kpi:nth-child(2n){border-right:0}
  .overview-kpi:nth-child(-n+2){border-bottom:1px solid var(--border)}
  .overview-kpi:nth-child(n+5){min-height:7.25rem}
  .daily-panel{grid-row:auto}
  .stat-row{grid-template-columns:1fr 1fr}
  .stat-card:nth-child(2){border-right:0}
  .stat-card:nth-child(-n+2){border-bottom:1px solid var(--border)}
  .metric-card-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sales-insight-grid{grid-template-columns:1fr}
}

@media(max-width:860px){
  :root{--sidebar-w:0px}
  /* 侧栏改为底部标签栏 */
  .sidebar{
    top:auto;bottom:0;left:0;width:100%;height:4.75rem;
    padding:.4375rem .5rem max(.4375rem,env(safe-area-inset-bottom));
    transform:none;border-right:0;border-top:1px solid var(--border);
    background:var(--surface);box-shadow:0 -2px 12px rgba(26,34,48,.05)
  }
  .sidebar .brand,.sidebar .nav-caption,.sidebar-foot{display:none}
  .nav{flex-direction:row;gap:.25rem;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav-item[data-view="promotionFees"],.nav-item[data-view="customerService"],.nav-item[data-view="documents"],.nav-item[data-view="businessAssistant"],.nav-item[data-view="dataConnections"],.nav-item[data-view="settings"]{display:none}
  .nav-item{
    flex:1 1 0;min-width:0;min-height:3.75rem;flex-direction:column;justify-content:center;
    gap:.1875rem;padding:.375rem .25rem;border-radius:var(--radius-xs);
    font-size:var(--fs-2xs);line-height:var(--lh-data);text-align:center
  }
  .nav-item:hover{transform:none}
  .nav-item.active::before{
    left:50%;top:.25rem;transform:translateX(-50%);
    width:1.25rem;height:2px;border-radius:4px}
  /* 徽标移到图标右上，避开触控区中心 */
  .nav-item em{position:absolute;top:.3125rem;right:.75rem;margin:0;padding:.0625rem .3125rem;font-size:var(--fs-xs);line-height:var(--lh-control)}
  .nav-icon{width:1.1875rem;height:1.1875rem}
  .main{margin-left:0;padding-bottom:4.75rem}
  .mobile-menu{display:none}
  .content{padding:1.125rem 1rem 2.5rem}
  .topbar{min-height:3.75rem;padding:.625rem 1rem;gap:.625rem}
  /* 同步状态不隐藏，改为紧凑呈现——数据新鲜度是核心信息 */
  .sync-status{padding:.375rem .5rem;min-height:2.75rem;min-width:3.5rem;gap:.375rem;white-space:nowrap;flex-shrink:0}
  .sync-status span,.sync-status small{display:none}
  .sync-status::after{content:'数据状态';font-size:var(--fs-2xs);font-weight:600;color:var(--accent-deep)}
  .sync-status.stale::after{content:'需核验';color:var(--amber)}
  .icon-btn,.avatar{width:2.5rem;height:2.5rem;min-width:2.5rem}
  .top-refresh{width:2.5rem;min-width:2.5rem;height:2.5rem;padding:0}.top-refresh>span:last-child{display:none}
  .login-gate{padding:0;background:var(--surface)}
  .login-layout{grid-template-columns:1fr;min-height:100dvh;border:0;border-radius:0}
  .login-story{min-height:18rem;padding:2rem}
  .login-story-copy h1{font-size:1.9rem}
  .login-story-copy>p:last-child{display:none}
  .login-signal{margin-top:2rem}
  .login-card{justify-self:center;width:min(31rem,100%);padding:2.5rem 2rem 3rem}
  .account-popover{top:3.5rem;right:.75rem;width:min(19.375rem,calc(100vw - 1.5rem))}
  .drawer aside{width:100vw}
  .drawer-head{padding:1.25rem}
  #drawerBody{padding:1.25rem}
  .toast{left:1rem;right:1rem;bottom:5.5rem;max-width:none}
  .overview-scope{align-items:flex-start}
  .overview-kpi,.overview-action{min-height:8rem}
  .money-summary{grid-template-columns:1fr}
}

@media(max-width:620px){
  .wdt-date-form{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-left:0}
  .wdt-date-form .btn{grid-column:1/-1;width:100%}
  .wdt-date-form input{width:100%;min-width:0}
  .wdt-range-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:.25rem}
  .wdt-range-presets .filter-chip{min-height:2.75rem}
  #overviewFilterForm:not(.filters-expanded) .overview-filter-fields label:nth-of-type(n+3),
  #overviewFilterForm:not(.filters-expanded) #overviewSaveFilter{display:none}
  .overview-scope>span{width:100%;justify-content:space-between}
  .overview-kpi:nth-child(n){grid-column:auto;min-height:6.5rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.75rem}
  .overview-kpi:nth-child(2n){border-right:0}
  .overview-kpi:nth-child(2n+1){border-right:1px solid var(--border)}
  .overview-kpi:nth-last-child(-n+2){border-bottom:0}
  .overview-kpi:last-child{border-right:0}
  .overview-kpi strong{font-size:var(--fs-18);letter-spacing:-.04em}
  .drawer.drawer-wide aside{width:100vw}
  .nl-panel{padding:1rem}
  .nl-panel .sku-search-input{flex-basis:100%;width:100%}
  .nl-panel .metric-rank-head{align-items:flex-start;gap:.375rem;flex-wrap:wrap}
  .nl-panel-title{align-items:flex-start}
  .nl-examples summary{min-height:2.75rem}
  .metric-card-mini-grid{grid-template-columns:1fr}
  .sales-insight-grid{gap:.75rem;margin:.75rem 0 1rem}
  .wdt-trend,.sales-rank-panel{padding:.875rem}
  .wdt-trend-head{align-items:stretch;flex-direction:column}
  .wdt-trend-head>div:last-child{display:flex;align-items:baseline;justify-content:space-between}
  .wdt-context-strip{align-items:flex-start;flex-direction:column}
  .wdt-context-strip details{margin-left:0}
  .priority-drawer-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .priority-drawer-toolbar input,.priority-drawer-toolbar .btn{width:100%}
  .priority-drawer-toolbar .btn{grid-column:1/-1}
  .money-detail-section{align-items:flex-start;flex-direction:column}
  .money-detail-section>.overview-tabs{width:100%}
  .overview-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .overview-tabs button{flex:0 0 auto;min-height:2.75rem}
  .overview-chart{min-width:100%;height:14rem}
  .metric-card{min-height:auto}
  .stat-row{grid-template-columns:1fr;border:0;gap:.5rem}
  .stat-card,.stat-card:nth-child(n){
    border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface)
  }
  .data-notice,.partial-banner{flex-direction:column;align-items:flex-start}
  .module-card,.module-card:nth-child(2n){border-right:0}
  .section-head{align-items:flex-start}
  .filter-bar{width:100%}
  /* 移动端：横向滚动条式筛选，不再挤压每个按钮，尺寸与PC端完全一致 */
  .filter-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;scrollbar-width:none}
  .filter-bar::-webkit-scrollbar{display:none}
  .filter-chip{flex:0 0 auto}
  /* SKU 面板：搜索框整行铺满，分组条仍走横向滚动，点按目标不小于 40px */
  .sku-toolbar{flex-direction:column;align-items:stretch;gap:.625rem}
  .sku-search{flex-wrap:nowrap}
  .sku-search-input{flex:1 1 auto;min-width:0;width:100%}
  .sku-search .btn{flex:0 0 auto;min-height:2.5rem}
  .sku-panel .filter-bar{width:100%}
  .form-grid,.password-rules{grid-template-columns:1fr}
  .detail-item{grid-template-columns:1fr;gap:.25rem}
  .drawer-actions .btn{min-width:100%}
  .login-story{min-height:12rem;padding:1.5rem}
  .login-story-copy h1{font-size:1.625rem;margin:0}.login-story-copy .eyebrow{display:none}
  .login-story-brand,.login-signal{display:none}
  .login-card{padding:2rem 1.25rem 2.5rem}.login-brand{display:flex;padding-bottom:1.75rem}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  [data-animate],.view-section,.pulse::after,.live-dot,.skeleton::after,.overview-kpi::after,.top-refresh [data-icon],.settings-body,.team-empty-icon{animation:none!important}
  .sidebar,.drawer aside,.toast,.command-box,.btn,.nav-item,.metric-card,.metric-card-mini,
  .doc-card,.module-card,.check-item,.overview-kpi,.overview-action,.overview-rank,
  .overview-presets button,.overview-tabs button,.top-refresh,.settings-tabs button{transition-duration:.01ms!important}
  .nav-item:hover,.metric-card:hover,.doc-card:hover,.module-card:hover,
  .coverage-card:hover,.btn.primary:hover,.check-item:hover{transform:none}
  :where(.btn,.icon-btn,.text-btn,.top-refresh,.team-tab,.team-layout-button,.settings-tabs button,.overview-presets button,.overview-tabs button,.segmented button,.filter-chip):active:not(:disabled){transform:none}
}

@media print{
  .sidebar,.topbar,.hero-actions,.account-popover,.toast,.drawer,.command-palette,.login-gate,.collector-health{display:none!important}
  .main{margin:0}
  .content{max-width:none;padding:0}
  .panel,.metric-card,.doc-card{break-inside:avoid;box-shadow:none;border-color:var(--border-strong)}
}

/* ===== Layout hardening =====
   浮层与底部导航不再争夺同一块右下角空间；长文本和动态卡片
   不得把网格撑出视口。 */
.main,.content,.dashboard-grid,.metric-grid,.panel,.hero,.metric-card{min-width:0}
.metric-card[data-drilldown]{padding-bottom:2.25rem}
.metric-card[data-drilldown]::after{right:1.125rem;bottom:.875rem;max-width:calc(100% - 2.25rem);white-space:nowrap}
.panel-head,.metric-scope-head,.section-head,.data-notice,.partial-banner{min-width:0}
.panel-head>*,.metric-scope-head>*,.section-head>*,.data-notice>*,.partial-banner>*{min-width:0}
.toast{bottom:max(1.5rem,env(safe-area-inset-bottom));right:max(1.5rem,env(safe-area-inset-right))}

/* 窄屏采用文档流：底部标签栏、提示条和内容区各自保留安全间距。 */
@media(max-width:860px){
  .main{padding-bottom:calc(4.75rem + env(safe-area-inset-bottom))}
  .content{padding-bottom:calc(2.5rem + env(safe-area-inset-bottom))}
  /* 手机端所有常用控件满足 44px 触控目标；沿用现有组件，不改变桌面密度。 */
  .icon-btn,.avatar{width:2.75rem;height:2.75rem;min-width:2.75rem}
  .btn,.btn.small,.btn.btn-small,.sku-search .btn,.text-btn,
  .filter-chip,.segmented button,select,.sku-search-input{min-height:2.75rem}
  .overview-scope .text-btn{min-height:2.75rem}
  .toast{
    left:1rem;right:1rem;
    bottom:calc(5.5rem + env(safe-area-inset-bottom));
    max-width:none;
  }
  .account-popover{top:calc(3.75rem + env(safe-area-inset-top));right:.75rem}
  .settings-grid{grid-template-columns:1fr}
  .settings-inline-form{grid-template-columns:1fr 1fr}
  .settings-inline-form label:last-of-type{grid-column:1/-1}
  .settings-stats{grid-template-columns:1fr 1fr}
  .settings-stats>div:nth-child(2){border-right:0}
  .settings-stats>div:nth-child(-n+2){border-bottom:1px solid var(--border)}
}
@media(max-width:620px){
  .metric-card[data-drilldown]{padding-bottom:2rem}
  .metric-card[data-drilldown]::after{right:1rem;bottom:.75rem}
  .panel{padding:1rem}
  .panel-head{align-items:flex-start;flex-wrap:wrap}
  .settings-form{grid-template-columns:1fr}
  .settings-form label,.settings-actions,.settings-form>.form-hint,.settings-form>#aiSettingsStatus{grid-column:1}
  .settings-inline-form{grid-template-columns:1fr}
  .settings-inline-form label:last-of-type{grid-column:1}
  .settings-kv{grid-template-columns:1fr}
  .settings-kv strong{max-width:58%}
}

/* 旺店通板块：线下店铺标记 */
.wdt-offline-tag{font-style:normal;font-size:var(--fs-2xs);color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 .375rem;margin-left:6px;vertical-align:1px}

/* truth-84：首页采集健康水位条（四条采集线新鲜度，只读展示） */

/* 双数据域与同步：复用当前 V2 色彩、字号和控件 token。 */
.document-source-list small,.sync-job small{color:var(--text-2);font-size:var(--fs-xs)}
.refund-comparison table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.refund-comparison th,.refund-comparison td{padding:1rem;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}
.refund-comparison th:first-child,.refund-comparison td:first-child{text-align:left;white-space:normal;min-width:200px}
.refund-comparison th{font-size:var(--fs-xs);background:var(--surface-raised);color:var(--text-2)}
.refund-comparison td small{display:block;color:var(--text-2);font-size:var(--fs-xs);margin-top:.375rem;max-width:380px}
.refund-context{display:flex;flex-wrap:wrap;gap:.75rem 2rem;padding:1rem 0;color:var(--text-2);font-size:var(--fs-xs)}
.data-quality-note{padding:.875rem 1rem;border-left:3px solid var(--amber);background:var(--amber-soft);color:var(--amber);font-size:var(--fs-xs);line-height:var(--lh-reading)}
.sync-source-actions,.sync-pdd-scope{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}
/* 同步抽屉专属布局：不改变全局 input / 表单 / 按钮规则。 */
.sync-center{display:grid;gap:1.25rem;min-width:0}
.sync-center>.drawer-note{margin:0}
.sync-center h3{margin:0;font-size:var(--fs-sm);line-height:var(--lh-heading)}
.sync-center .sync-center-actions{display:flex;flex-wrap:wrap;gap:.625rem}
.sync-center .btn{min-height:2.75rem;max-width:100%;white-space:normal}
.sync-center input[type="date"]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:2.75rem;padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);color-scheme:light}
.sync-center input[type="date"]:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px;border-color:var(--accent)}
.sync-center .sync-center-status{min-width:0}
.sync-center .sync-center-status-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:.875rem}
.sync-center .sync-job{min-width:0;overflow-wrap:anywhere}
.sync-center .sync-job>div{flex-wrap:wrap;gap:.5rem}
@media(max-width:620px){.sync-center .sync-center-actions>.btn{flex:1 1 8rem}.sync-center .sync-center-status-head{align-items:flex-start;flex-direction:column}}
.sync-executor{display:grid;gap:.375rem;padding:.875rem 1rem;border-radius:var(--radius-xs);background:var(--surface-sunken)}
.sync-executor span,.sync-job p,.sync-schedule{font-size:var(--fs-xs);color:var(--text-2)}
.sync-executor.is-offline{background:var(--amber-soft);color:var(--amber)}
.sync-executor.is-online strong{color:var(--green)}
.sync-schedule{padding:1rem 0}
.sync-job-list{display:grid;gap:.75rem;margin:1rem 0}
.sync-job{border:1px solid var(--border);padding:1rem;border-radius:var(--radius-sm)}
.sync-job>div{display:flex;justify-content:space-between;gap:1rem}
.sync-job p{margin:.5rem 0}
.sync-phase{display:flex;align-items:center;gap:.5rem;color:var(--accent-deep);font-size:var(--fs-sm)}
.sync-phase .loading-indicator{width:.8rem;height:.8rem;border:2px solid var(--accent-line);border-top-color:var(--accent);border-radius:50%;animation:refreshSpin .8s linear infinite}
@media(prefers-reduced-motion:reduce){.sync-phase .loading-indicator{animation:none}}
.overview-day-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 0}
.overview-day-summary>div{display:grid;gap:.5rem}
.overview-day-summary strong{font-size:var(--fs-32);font-family:var(--font-num);font-variant-numeric:tabular-nums;line-height:var(--lh-data)}
.overview-day-summary span,.overview-day-summary small,.overview-day-summary p{color:var(--text-2);font-size:var(--fs-sm)}
.overview-day-summary p{max-width:16rem}
@media(max-width:620px){
  .overview-day-summary{align-items:flex-start;flex-direction:column}
}
.sync-job .sync-error,.sync-error{color:var(--red)}
.sync-job .sync-recovery-actions{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}
.assistant-input{resize:vertical;min-height:3.5rem;line-height:var(--lh-body);padding:.625rem 1rem;font:inherit}
.assistant-history{display:grid;gap:.5rem;margin:1rem 0}
.assistant-turn{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised);overflow:hidden}
.assistant-turn>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;cursor:pointer;font-size:var(--fs-body)}
.assistant-turn>summary small{color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap}
.assistant-turn>div{padding:0 1rem 1rem}
.assistant-answer{line-height:var(--lh-reading);font-size:var(--fs-body);overflow-wrap:anywhere}
.assistant-response{margin:1rem 0;padding:1rem 1.125rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:0}
.assistant-response-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--text-2);font-size:var(--fs-xs)}
.assistant-response-head>span{font-weight:600}
.assistant-response .assistant-copy{min-height:2rem;flex:0 0 auto;padding:.25rem .5rem;font-size:var(--fs-xs);white-space:nowrap;border-radius:var(--radius-xs)}
.assistant-copy:disabled{opacity:.65;cursor:wait}
.assistant-response-context{margin:.125rem 0 .875rem;color:var(--text-2);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.assistant-response-content{max-width:80ch;color:var(--text);min-width:0}
.assistant-response-content p{margin:0 0 .875rem;white-space:pre-line;line-height:var(--lh-reading)}
.assistant-response-content .assistant-response-lead{font-size:var(--fs-md);font-weight:600;line-height:var(--lh-reading);color:var(--text);margin-bottom:1rem}
.assistant-response-content h4{font-size:var(--fs-body);line-height:var(--lh-heading);margin:1.125rem 0 .625rem;font-weight:600}
.assistant-response-content h4:first-child{margin-top:0}
.assistant-response-content ul,.assistant-response-content ol{display:grid;gap:.5rem;margin:.625rem 0 1rem;padding-left:1.5rem;list-style-position:outside}
.assistant-response-content ul{list-style-type:disc}.assistant-response-content ol{list-style-type:decimal}
.assistant-response-content li{padding-left:.125rem;white-space:pre-line}
.assistant-response-content li::marker{color:var(--accent-deep);font-variant-numeric:tabular-nums}
.assistant-response-content strong{font-weight:600}
.assistant-value{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.assistant-response-content code{font-family:var(--font-num);font-size:var(--fs-13);background:var(--surface-raised);padding:.125rem .25rem;border-radius:var(--radius-xs);overflow-wrap:anywhere}
.assistant-response-content pre{max-width:100%;overflow:auto;padding:.875rem;margin:.75rem 0;background:var(--surface-raised);border-radius:var(--radius-xs);white-space:pre-wrap}
.assistant-response-content pre code{padding:0;background:none}
.assistant-response-more{margin-top:.625rem;border-top:1px solid var(--border);padding-top:.5rem}
.assistant-response-more>summary{cursor:pointer;width:max-content;max-width:100%;min-height:2rem;line-height:2rem;color:var(--accent-deep);font-weight:500;font-size:var(--fs-sm)}
.assistant-response-more>div{padding-top:.75rem}
.assistant-more-open,.assistant-response-more[open]>summary .assistant-more-closed{display:none}
.assistant-response-more[open]>summary .assistant-more-open{display:inline}
.assistant-response-content>:last-child{margin-bottom:0}
.assistant-response-note,.assistant-copy-status{display:block;margin:.625rem 0 0;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.assistant-copy-status:empty{display:none}
.assistant-clipboard-fallback{position:fixed;left:-9999px;top:0;opacity:0}
.assistant-response-more>summary:focus-visible,.assistant-copy:focus-visible,.assistant-evidence>summary:focus-visible{outline:2px solid var(--focus-outline);outline-offset:3px;border-radius:var(--radius-xs)}
.assistant-evidence>summary small{font-weight:400;color:var(--text-2);font-size:var(--fs-xs);margin-left:.75rem}
.assistant-evidence>.sku-table-wrap{margin-top:.625rem}
.assistant-data-notes{margin:.625rem 0;font-size:var(--fs-xs);line-height:var(--lh-body)}
.assistant-verified-values{max-width:80ch;line-height:var(--lh-reading);margin:.75rem 0;font-size:var(--fs-body);font-variant-numeric:tabular-nums}
@media(max-width:620px){
  .assistant-response{padding:.875rem;margin:.875rem 0}
  .assistant-response-content .assistant-response-lead{font-size:var(--fs-md)}
  .assistant-evidence>summary small{display:block;margin:.25rem 0 0;line-height:var(--lh-body)}
  .assistant-response .assistant-copy{min-height:2.75rem}
}
.assistant-clarification{padding:1rem;background:var(--accent-soft);border-radius:var(--radius-sm);line-height:var(--lh-reading)}
.assistant-evidence{margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}
.assistant-evidence>summary{cursor:pointer;color:var(--accent-deep);font-weight:600;padding:.375rem 0}
@media(max-width:860px){
  .top-actions{gap:.375rem}
  .top-refresh{font-size:var(--fs-xs);min-height:44px;padding:.375rem .625rem}
  .refund-comparison .table-wrap{overflow:auto;max-width:100%}
}
@media(max-width:620px){
  .top-actions{width:100%;justify-content:flex-end}
  #globalSyncBtn{width:auto;min-width:4rem}
  #globalSyncBtn>span:first-child{display:none}
  #globalSyncBtn::after{content:'同步';font-weight:600}
}

/* graph-view-switch: local views reuse the same overview query result. */
.graph-view-switch{display:inline-flex;align-items:center;gap:.125rem;padding:.1875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);flex:0 0 auto}
.graph-view-switch button{min-height:2rem;padding:.3125rem .625rem;border:1px solid transparent;border-radius:var(--radius-xs);background:transparent;color:var(--text-2);font:inherit;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.graph-view-switch button:hover{color:var(--text);background:var(--surface-hover)}
.graph-view-switch button[aria-pressed="true"]{color:var(--accent-deep);border-color:var(--border-strong);background:var(--surface)}
.graph-view-switch button:active{transform:translateY(1px)}
.graph-view-switch button:focus-visible,.graph-view-daily:focus-visible,.overview-shop-table:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
.graph-view-daily{max-height:25rem;max-width:100%;overflow:auto;overscroll-behavior:contain;margin-top:.75rem}
.graph-view-daily .sku-table{min-width:30rem}
.graph-view-daily thead th{position:sticky;top:0;background:var(--surface-raised);z-index:1}
.graph-view-daily tbody th{font-weight:500;white-space:nowrap;text-align:left}
.graph-view-daily tbody th small{display:block;color:var(--text-3);font-size:var(--fs-xs);font-weight:400}
.graph-view-daily .sku-table td,.graph-view-daily thead th:not(:first-child){white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.graph-view-daily tfoot{background:var(--surface-raised);font-weight:600}
.graph-view-daily tfoot th{text-align:left;white-space:nowrap}
.graph-view-rank-table .sku-table{min-width:30rem}
.graph-view-rank-table td:first-child .text-btn{max-width:12rem;overflow-wrap:anywhere;text-align:left}
.overview-shop-scroll-hint{display:none;margin:.5rem 0 .375rem;color:var(--text-2);font-size:var(--fs-xs)}
.graph-view-note{margin:.75rem 0 0;font-size:var(--fs-xs);line-height:var(--lh-body);color:var(--text-2)}
.graph-view-bars{list-style:none;display:grid;gap:1rem;margin:.875rem 0 0;padding:0 .875rem 0 0;scrollbar-gutter:stable;max-height:25rem;overflow:auto;min-width:0}
.graph-view-bar-row{display:grid;gap:.4375rem;min-width:0;padding:0 .125rem .875rem;border-bottom:1px solid var(--border)}
.graph-view-bar-row:last-child{border-bottom:0;padding-bottom:.125rem}
.graph-view-bar-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.375rem .75rem;min-width:0}
.graph-view-bar-heading .text-btn{text-align:left;overflow-wrap:anywhere;min-width:0;max-width:100%;font-size:var(--fs-sm)}
.graph-view-bar-heading strong{font-size:var(--fs-sm);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.graph-view-track{position:relative;height:.4375rem;border-radius:var(--radius-xs);background:var(--surface-sunken);overflow:hidden}
.graph-view-track.is-unknown{background:transparent;border:1px dashed var(--border-strong)}
.graph-view-zero{position:absolute;top:0;bottom:0;width:1px;background:var(--border-strong)}
.graph-view-fill{position:absolute;height:100%;border-radius:inherit;background:var(--accent)}
.graph-view-fill.is-negative{background:var(--red)}
.graph-view-bar-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem 1rem;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.graph-view-bar-meta b{font-weight:500;font-variant-numeric:tabular-nums;color:var(--text)}
.graph-view-negative,.graph-view-bar-meta .graph-view-negative{color:var(--red)}
@media(max-width:620px){
  .graph-view-switch button{min-height:2.75rem}.graph-view-bars{max-height:30rem}
  .overview-shop-scroll-hint{display:block}
  .overview-shop-table .sku-table th:first-child,.overview-shop-table .sku-table td:first-child{position:sticky;left:0;z-index:1;width:10rem;min-width:10rem;max-width:10rem;background:var(--surface)}
  .overview-shop-table .sku-table th:first-child{z-index:2;background:var(--surface-raised)}
}
@media(prefers-reduced-motion:reduce){.graph-view-switch button{transition:none}.graph-view-switch button:active{transform:none}}

/* 总览：日期始终可见，筛选条件按可用宽度自然换行。 */
.graph-view-switch{min-width:9.5rem}
.graph-view-switch button{flex:1;min-width:4.5rem;text-align:center}

.overview-model-alerts{padding:1.25rem}
.overview-model-alerts .panel-head{margin-bottom:.75rem}
.overview-comparison-range{margin:0 0 .75rem;color:var(--text-2);font-size:var(--fs-sm)}
.overview-inline-state{display:grid;place-items:start;gap:.25rem;min-height:4.5rem;padding:1rem;border:1px dashed var(--border-strong);border-radius:var(--radius-xs);background:var(--surface-raised);color:var(--text-2);font-size:var(--fs-sm)}
.overview-inline-state strong{color:var(--text);font-size:var(--fs-body)}
.overview-alert-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.625rem}
.overview-alert-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;min-width:0;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface)}
.overview-alert-list article>div:nth-child(2){display:grid;justify-items:end;gap:.125rem;white-space:nowrap;color:var(--text-2);font-size:var(--fs-xs)}
.overview-alert-list article>div:nth-child(2) strong{color:var(--text);font-size:var(--fs-sm)}
.overview-alert-list article>em{padding:.25rem .5rem;border-radius:999px;background:var(--red-soft);color:var(--red);font-family:var(--font-num);font-size:var(--fs-xs);font-style:normal;font-weight:700;white-space:nowrap}
.overview-alert-list article[hidden]{display:none}
.overview-alert-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}
.overview-alert-actions>span{color:var(--text-2);font-size:var(--fs-sm)}
.overview-alert-actions .btn{white-space:nowrap}

.sku-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:.875rem;border-bottom:1px solid var(--border)}
.sku-panel-head>div:first-child{display:grid;gap:.25rem}
.sku-panel-head>div:first-child span{color:var(--text-2);font-size:var(--fs-sm)}
.sku-filter-surface{display:grid;gap:.875rem;margin-bottom:1rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised)}
.sku-filter-row{display:grid;grid-template-columns:minmax(25rem,1.05fr) minmax(25rem,1fr);align-items:start;gap:1.25rem}
.sku-filter-row+.sku-filter-row{padding-top:.875rem;border-top:1px solid var(--border)}
.sku-filter-field{display:grid;align-content:start;gap:.375rem;min-width:0}
.sku-filter-label{color:var(--text-2);font-size:var(--fs-sm);font-weight:600;line-height:1.25}
.sku-filter-field .filter-bar{justify-content:flex-start;min-height:2.5rem}
.sku-filter-field .sku-category-bar{padding-left:0;border-left:0}
.sku-date-form{display:grid;grid-template-columns:minmax(8.5rem,1fr) minmax(8.5rem,1fr) auto;align-items:end;gap:.5rem;padding:0;border:0;background:transparent}
.sku-date-form label{display:grid;gap:.1875rem;color:var(--text-2);font-size:var(--fs-xs);font-weight:600}
.sku-date-form input{width:8.5rem;height:2.25rem;padding:.25rem .5rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm)}
.sku-date-form input{width:100%;height:2.5rem}
.sku-filter-surface .sku-search{display:grid;grid-template-columns:minmax(12rem,1fr) auto auto;align-items:end;width:100%}
.sku-filter-surface .sku-search>label{display:grid;gap:.1875rem;min-width:0;color:var(--text-2);font-size:var(--fs-xs);font-weight:600}
.sku-filter-surface .sku-search-input{width:100%;min-width:0}
.sku-filter-surface .btn{height:2.5rem;min-height:2.5rem}
.sku-filter-surface .sku-scope-filters{display:grid;grid-template-columns:minmax(8rem,10rem) minmax(15rem,22rem) minmax(16rem,1fr);align-items:end;gap:1rem;margin:0;padding-top:.875rem;border-top:1px solid var(--border)}
.sku-filter-surface .sku-scope-filters>p{align-self:center;margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-body)}
.sku-record-scope{margin:.625rem 0 1rem;padding:.75rem .875rem;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text-2);font-size:var(--fs-body);line-height:var(--lh-body)}
.refund-detail-toggle-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}
.refund-detail-toggle-row>span{color:var(--text-3);font-size:var(--fs-xs)}
.sku-items-table tr[hidden]{display:none}
.drawer-filter-toolbar{display:grid;grid-template-columns:minmax(14rem,1fr) minmax(9rem,12rem) auto auto auto;align-items:center;gap:.625rem;margin:1rem 0}
.drawer-filter-toolbar input,.drawer-filter-toolbar select{width:100%;height:2.625rem;padding:0 .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm)}
.drawer-export-button{justify-self:end;white-space:nowrap}
.overview-detail-summary{display:flex;align-items:baseline;gap:.625rem;margin:.5rem 0;color:var(--text-2);font-size:var(--fs-sm)}
.overview-detail-summary strong{color:var(--text);font-family:var(--font-num);font-size:var(--fs-md)}
.overview-detail-product-table{max-height:58vh;overflow:auto}
.overview-detail-product-table .sku-table{min-width:52rem;table-layout:fixed}
.overview-detail-product-table .sku-table th:first-child{width:36%}
.overview-detail-product-table .sku-table th:not(:first-child){width:12.8%;white-space:normal}
.overview-detail-product-table .sku-table th:last-child,.overview-detail-product-table .sku-table td:last-child{text-align:right}
.overview-detail-product-table .sku-table td:not(:first-child){white-space:nowrap;font-variant-numeric:tabular-nums}
.overview-detail-product-table .sku-thumb-cell{min-width:0}
.overview-detail-product-table .sku-thumb-cell>span{min-width:0}
.overview-detail-product-table .sku-thumb-cell strong{overflow-wrap:anywhere}
.overview-detail-product-table .sku-thumb-cell small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.overview-detail-product-table th{position:sticky;top:0;z-index:2;background:var(--surface-raised)}
.drawer-product-heading{display:flex;align-items:center;gap:.875rem;margin-bottom:1rem;padding:.875rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised)}
.drawer-product-heading>div{display:grid;gap:.25rem}.drawer-product-heading strong{font-size:var(--fs-md)}.drawer-product-heading span{color:var(--text-2);font-size:var(--fs-sm)}

.settings-body{max-width:68rem}
.settings-grid{grid-template-columns:minmax(0,1fr);max-width:47.5rem;gap:.875rem;align-items:start}
.settings-grid>.settings-card,.settings-grid>.settings-boundary{margin:0;align-self:start}
.settings-grid>.settings-boundary summary{min-height:4.25rem;padding:1rem 1.25rem}

/* 中文标题统一使用正文中文字体；金额和数据继续使用等宽数字字体。 */
.business-page-heading h1,.team-heading h1,.panel-head h2,.section-head h2,.drawer-head h2,.login-card h2,.promotion-head h2,.metric-rank-head h3,.settings-card h2{font-family:var(--font)}

@media(max-width:1180px){
  .overview-alert-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sku-filter-row{grid-template-columns:1fr}
  .settings-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .sku-filter-surface .sku-scope-filters{grid-template-columns:1fr 1.5fr}
  .sku-filter-surface .sku-scope-filters>p{grid-column:1/-1}
  .drawer-filter-toolbar{grid-template-columns:1fr 1fr auto}
  .drawer-filter-toolbar input{grid-column:1/-1}
  .drawer-export-button{justify-self:start}
}
@media(max-width:620px){
  .overview-alert-list{grid-template-columns:1fr}
  .overview-alert-list article{grid-template-columns:minmax(0,1fr) auto}
  .overview-alert-list article>em{grid-column:2;grid-row:1}
  .overview-model-alerts{padding:1rem}
  .overview-alert-actions{align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
  .sku-date-form{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .sku-date-form input{width:100%;min-width:0}
  .sku-date-form .btn{grid-column:1/-1;width:100%}
  .sku-panel-head>.btn{width:100%}
  .sku-filter-surface .sku-search{grid-template-columns:1fr 1fr}
  .sku-filter-surface .sku-search>label{grid-column:1/-1}
  .sku-filter-surface .sku-search .btn{width:100%}
  .sku-filter-surface .btn{height:2.75rem;min-height:2.75rem}
  .sku-filter-surface .sku-scope-filters{grid-template-columns:1fr}
  .sku-filter-surface .sku-scope-filters>p{grid-column:1}
  .drawer-filter-toolbar{grid-template-columns:1fr 1fr}
  .drawer-filter-toolbar input,.drawer-export-button{grid-column:1/-1;width:100%}
}

/* 当前已显示记录的表格排序；横向滚动仍由原表格容器负责。 */
.assistant-question-library,.business-scenario{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-top:1rem;min-width:0}
.assistant-question-library>summary,.business-scenario>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;cursor:pointer;font-weight:600;list-style:none}
.assistant-question-library>summary span,.business-scenario summary small,.scenario-no-charge{font-size:var(--fs-xs);font-weight:400;color:var(--text-2)}
.business-scenario>summary>span:first-child{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.assistant-question-grid button:focus-visible,.business-scenario summary:focus-visible,.assistant-question-library summary:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
@media(max-width:700px){.assistant-question-library>summary,.business-scenario>summary{align-items:flex-start;flex-wrap:wrap}}
.table-interaction-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;position:sticky;left:0;max-width:100%;padding:.5rem .75rem;color:var(--text-2);background:var(--surface);font-size:var(--fs-xs);line-height:var(--lh-body);border-bottom:1px solid var(--border)}
.table-interaction-bar>span{min-width:0;flex:1 1 12rem;overflow-wrap:anywhere}
.table-interaction-reset{flex:0 0 auto;border:0;background:transparent;color:var(--accent-deep);font:inherit;padding:.375rem .5rem;min-height:2rem;border-radius:var(--radius-xs);cursor:pointer}
.table-interaction-reset:disabled{color:var(--text-3);opacity:.65;cursor:default}
.table-interaction th .table-interaction-sort{display:inline-flex;align-items:center;justify-content:flex-end;gap:.375rem;max-width:100%;padding:.375rem .25rem;margin:-.375rem -.25rem;border:0;border-radius:var(--radius-xs);font:inherit;color:inherit;background:transparent;cursor:pointer;text-align:inherit;white-space:nowrap;line-height:var(--lh-control)}
.table-interaction-arrow{font-size:var(--fs-sm);line-height:1;color:var(--text-3);min-width:.75rem}
.table-interaction th[aria-sort="ascending"] .table-interaction-sort,.table-interaction th[aria-sort="descending"] .table-interaction-sort,.table-interaction th[aria-sort="ascending"] .table-interaction-arrow,.table-interaction th[aria-sort="descending"] .table-interaction-arrow{color:var(--accent-deep)}
.table-interaction-sort:hover,.table-interaction-reset:enabled:hover{background:var(--accent-soft)}
.table-interaction-sort:active,.table-interaction-reset:enabled:active{background:var(--surface-hover)}
.table-interaction-sort:focus-visible,.table-interaction-reset:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
@media(max-width:620px){.table-interaction-reset,.table-interaction th .table-interaction-sort{min-height:2.75rem}.table-interaction-bar{gap:.375rem}}

/* 发货与物流：独立业务页，数据、筛选与共享明细抽屉保持一致。 */
[data-icon="truck"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3 5h11v12H3zM14 9h4l3 4v4h-7M14 13h7M7 17a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm11 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M3 5h11v12H3zM14 9h4l3 4v4h-7M14 13h7M7 17a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm11 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E")}
#logisticsFilterError{color:var(--red);line-height:var(--lh-body)}
#logisticsFilterError:empty{display:none}
#logisticsResults{display:grid;gap:1rem;min-width:0}
.logistics-read-status{display:flex;align-items:center;gap:.5rem;color:var(--text-2);font-size:var(--fs-sm)}
.logistics-data-heading{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.logistics-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.logistics-stat{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;min-width:0;padding:1.125rem;text-align:left;background:transparent;border:0;border-right:1px solid var(--border);color:var(--text);font:inherit}
.logistics-stat:last-child{border-right:0}
.logistics-stat>span{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;font-size:var(--fs-sm);color:var(--text-2)}
.logistics-stat>span i{width:.875rem;height:.875rem}
.logistics-stat>strong{font-family:var(--font-num);font-size:var(--fs-xl);line-height:var(--lh-data);font-weight:700}
.logistics-stat>small{font-size:var(--fs-xs);color:var(--text-2);line-height:var(--lh-body)}
.logistics-stat.is-overdue>strong{color:var(--red)}
button.logistics-stat{cursor:pointer;transition:background var(--t-fast)}
button.logistics-stat:hover{background:var(--accent-soft)}
button.logistics-stat:active{background:var(--surface-hover)}
button.logistics-stat:focus-visible{outline:2px solid var(--focus-outline);outline-offset:-3px}
.logistics-detail-panel .panel-head{align-items:flex-start;gap:1rem;flex-wrap:wrap}
.logistics-support{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
@media(max-width:1100px){.logistics-stat{padding:.875rem}}
@media(max-width:860px){.nav-item[data-view="logistics"]{display:none}}
@media(max-width:620px){.logistics-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.logistics-stat:nth-child(2){border-right:0}.logistics-stat:nth-child(-n+2){border-bottom:1px solid var(--border)}.logistics-stat>strong{font-size:var(--fs-lg)}.logistics-detail-panel .panel-head{display:grid}.logistics-detail-panel .graph-view-switch{justify-self:start}.logistics-support>.text-btn{white-space:normal;text-align:left}}

/* 财务分析：把收退款和出库成本分开呈现，费用未齐时不制造利润结论。 */
.finance-page{max-width:100%;overflow:clip}
#financeFilterError{color:var(--red);font-size:var(--fs-xs);line-height:var(--lh-body)}
#financeFilterError:empty{display:none}
#financeResults{display:grid;gap:1rem;min-width:0}
.finance-read-status{display:flex;align-items:center;gap:.5rem;margin:0;color:var(--text-2);font-size:var(--fs-sm)}
.finance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.finance-summary article{display:grid;align-content:start;gap:.5rem;min-width:0;padding:1rem 1.125rem;border-right:1px solid var(--border)}
.finance-summary article:nth-child(4n){border-right:0}
.finance-summary article:nth-child(-n+4){border-bottom:1px solid var(--border)}
.finance-summary span{color:var(--text-2);font-size:var(--fs-xs);font-weight:500}
.finance-summary strong{overflow-wrap:anywhere;color:var(--text);font-family:var(--font-num);font-size:1.5rem;line-height:var(--lh-data);font-weight:700;font-variant-numeric:tabular-nums}
.finance-summary small{color:var(--text-3);font-size:var(--fs-xs);line-height:var(--lh-body)}
.finance-boundary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-xs)}
.finance-boundary>div{display:grid;gap:.25rem;min-width:0}.finance-boundary strong{font-size:var(--fs-sm)}
.finance-boundary p{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-body)}
.finance-boundary>.status-pill{flex:0 0 auto}
.finance-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0}
.finance-chart-grid>.panel{min-width:0;margin:0;padding:1.125rem}
.finance-chart-grid .panel-head{align-items:flex-start;margin-bottom:.75rem}
.finance-chart-grid .panel-head p,.finance-reconcile .panel-head p{margin:.25rem 0 0;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body)}
.finance-chart-grid .metric-line-chart{min-height:15rem}
.finance-reconcile{min-width:0;margin:0;padding:1.125rem}
.finance-reconcile .sku-table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}
.finance-reconcile .finance-table{min-width:68rem}
.finance-table td .cell-flag{display:inline-block;margin-left:.375rem;padding:.125rem .375rem;border-radius:4px;background:var(--surface-hover,var(--surface));color:var(--text-2);font-size:var(--fs-13);line-height:1.4;white-space:nowrap;cursor:help}
.finance-reconcile .finance-table th:not(:first-child),.finance-reconcile .finance-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.finance-reconcile .finance-table td:first-child{max-width:18rem;overflow-wrap:anywhere}
.finance-data-note{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--border)}
.finance-data-note>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.375rem 1rem;align-content:start;padding:1rem 1.125rem;background:var(--surface)}
.finance-data-note strong{grid-row:1/span 3;color:var(--text);font-size:var(--fs-sm)}
.finance-data-note span{min-width:0;color:var(--text-2);font-size:var(--fs-xs);line-height:var(--lh-body);overflow-wrap:anywhere}
.money-detail .overview-footnote{margin:0 0 .75rem;padding:0;color:var(--text-2);font-size:var(--fs-xs)}
/* Legacy #8: only the promotion product browser; shared drawers unchanged. */
.promotion-products-entry{margin:1rem 0}.promotion-products-entry p{color:var(--text-2);font-size:var(--fs-sm)}
.promotion-products{min-width:0;max-width:100%;overflow-wrap:anywhere}
.promotion-products p{line-height:1.6;color:var(--text-2)}
.promotion-products form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin:1rem 0}
.promotion-products label{display:grid;gap:.375rem;flex:1 1 180px;min-width:0}
.promotion-products input,.promotion-products select{width:100%;min-width:0;min-height:40px}
.promotion-products-table{max-width:100%;overflow:auto;overscroll-behavior-x:contain}
.promotion-products table{border-collapse:collapse;min-width:1600px;width:100%}
.promotion-products th,.promotion-products td{padding:.75rem;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.promotion-products th:first-child,.promotion-products td:first-child{text-align:left;white-space:normal;min-width:220px;max-width:260px;overflow-wrap:anywhere}
.promotion-products-pager{display:flex;gap:.75rem;margin-top:1rem}.promotion-products button{min-height:40px}
@media(max-width:1280px){.finance-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1040px){.finance-chart-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:860px){.nav-item[data-view="financeAnalysis"]{display:none}.finance-data-note{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-summary article:nth-child(2n+1){border-right:1px solid var(--border)}.finance-summary article:nth-child(2n){border-right:0}.finance-summary article:nth-child(-n+6){border-bottom:1px solid var(--border)}.finance-summary article{padding:.875rem}.finance-boundary{align-items:flex-start;flex-direction:column}.finance-chart-grid>.panel,.finance-reconcile{padding:1rem}.finance-data-note>div{grid-template-columns:1fr;gap:.375rem}.finance-data-note strong{grid-row:auto}.finance-chart-grid .panel-head{display:grid}}

/* Sync operation: one source, one scope, one submit; evidence stays available. */
#syncRequestForm{display:grid;gap:12px;min-width:0}
#syncRequestForm h3{margin:0 0 4px}
#syncRequestForm label{display:grid;gap:8px;font-size:var(--fs-15);font-weight:600;min-width:0}
#syncRequestForm label[hidden]{display:none}
#syncRequestForm select,#syncRequestForm input{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}
#syncRequestForm .drawer-note{margin:0}
#syncRequestForm .sync-center-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#syncSubmitStatus{font-size:var(--fs-14);color:var(--text-2);overflow-wrap:anywhere}
.sync-history{margin-top:20px;border-top:1px solid var(--border);padding-top:12px;min-width:0}
.sync-history>summary{cursor:pointer;min-height:44px;line-height:1.6;font-size:var(--fs-15);font-weight:600;padding:10px 0;color:var(--text)}
.sync-history .sync-job-list{max-height:480px;overflow:auto;overscroll-behavior:contain;padding-right:4px}
.sync-job,.sync-job small{overflow-wrap:anywhere;min-width:0}
.sync-center-status h3{margin:0 0 12px}
#syncRequestForm :focus-visible,.sync-history summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:600px){#syncRequestForm .sync-center-actions{align-items:stretch;flex-direction:column}.sync-history .sync-job-list{max-height:360px}}

/* ==========================================================================
   v2 重构外壳与页面（经营 / 商品 / 待处理 / 更多）
   深色侧栏 + 全站一个时间选择 + 一个提问框；卡片白底细边，数字等宽。
   放在文件末尾：桌面规则在前，手机规则在后，避免被旧媒体查询覆盖。
   ========================================================================== */
:root{--v2-navy:#13263d;--v2-navy-2:#1b3352;--v2-accent:#1f5f99;--v2-bg:#f4f6f9;--v2-line:#e1e7ee;--v2-good:#2e7d55;--v2-bad:#c0392b;--v2-warn:#9a6a12;--sidebar-w:208px}
body{background:var(--v2-bg)}
.main{background:var(--v2-bg)}
.sidebar{background:var(--v2-navy);color:#c9d5e3;border-right:0}
.sidebar .brand strong{color:#fff}
.sidebar .brand span{color:#8fa3ba}
.sidebar .brand-mark,.sidebar .brand-mark rect{background:var(--v2-accent);fill:var(--v2-accent);box-shadow:none}
.sidebar .nav{gap:.25rem}
.sidebar .nav-item{color:#c9d5e3;min-height:2.75rem;font-size:var(--fs-15)}
.sidebar .nav-icon{color:#8fa3ba}
.sidebar .nav-item:hover{background:var(--v2-navy-2);color:#fff}
.sidebar .nav-item:hover .nav-icon{color:#fff}
.sidebar .nav-item.active{background:#24456b;color:#fff}
.sidebar .nav-item.active .nav-icon{color:#fff}
.sidebar .nav-item.active::before{background:#7fb3e6}
.sidebar .nav-item:focus-visible{outline:2px solid #7fb3e6;outline-offset:2px}
.nav-badge{margin-left:auto;min-width:1.375rem;height:1.375rem;padding:0 .375rem;border-radius:999px;background:var(--v2-bad);color:#fff;font:600 .75rem/1.375rem var(--font-num);text-align:center}
.nav-badge[hidden]{display:none}

.topbar{background:rgba(244,246,249,.94);gap:.875rem;flex-wrap:nowrap}
.topbar-title{margin:0;font-size:var(--fs-20);font-weight:700;color:var(--v2-navy);white-space:nowrap}
.global-range{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--v2-line);border-radius:var(--radius);background:#fff;flex-shrink:0}
.global-range[hidden]{display:none}
.global-range button{min-height:2.125rem;padding:0 .75rem;border-radius:8px;font-size:var(--fs-14);color:var(--ui-ink);white-space:nowrap}
.global-range button:hover{background:#eef2f6}
.global-range button[aria-pressed="true"]{background:var(--v2-navy);color:#fff;font-weight:600}
.global-range button:focus-visible{outline:2px solid var(--v2-accent);outline-offset:1px}
.top-actions{gap:.375rem}
.top-refresh.icon-only{width:2.625rem;min-width:2.625rem;padding:0}
.top-sync{font-size:var(--fs-14)}
.sync-status{border-radius:999px}
.sync-status .pulse{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--v2-good);position:static}
.sync-status .pulse::after{display:none}
.sync-status.stale .pulse{background:var(--v2-warn)}
.sync-status small{max-width:12rem}

.v2-page{display:grid;gap:1rem;min-width:0}
.v2-num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.v2-muted{color:var(--ui-ink-2);font-size:var(--fs-14);line-height:1.6;margin:0}
.v2-empty{padding:1.25rem 0;text-align:center}
.v2-good{color:var(--v2-good)}.v2-bad{color:var(--v2-bad)}
.v2-scope{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem}
.v2-scope-toggle{display:inline-flex;align-items:center;gap:.5rem;min-height:2.5rem;padding:0 .875rem;border:1px solid var(--v2-line);border-radius:999px;background:#fff;color:var(--ui-ink);font-size:var(--fs-15)}
.v2-scope-toggle:hover{border-color:#b9c9d9}
.v2-scope-toggle [data-icon]{width:.9375rem;height:.9375rem;color:var(--ui-ink-3)}
.v2-caret{font-size:var(--fs-13);color:var(--ui-ink-3)}
.v2-asof{font-size:var(--fs-14);color:var(--ui-ink-2)}
.v2-scope-form{flex-basis:100%;display:none;flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding:.875rem 1rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff}
.v2-scope-form label{display:grid;gap:.25rem;font-size:var(--fs-13);color:var(--ui-ink-2)}
.v2-scope-form input,.v2-scope-form select{height:2.5rem;padding:0 .625rem;border:1px solid var(--ui-line);border-radius:var(--radius);background:#fff;font-size:var(--fs-15);color:var(--text)}
.v2-scope-form small{flex-basis:100%;color:var(--v2-bad);font-size:var(--fs-14)}
.v2-scope-form small:empty{display:none}

.v2-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.v2-kpi{display:grid;gap:.375rem;align-content:start;padding:1rem 1.125rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff;min-width:0}
.v2-kpi-head{display:flex;align-items:center;gap:.375rem}
.v2-kpi-label{padding:0;font-size:var(--fs-14);color:var(--ui-ink-2);text-align:left}
button.v2-kpi-label:hover{color:var(--v2-accent);text-decoration:underline;text-underline-offset:3px}
.v2-kpi>strong{font-size:1.5rem;font-weight:700;line-height:1.15;color:var(--v2-navy);overflow-wrap:anywhere}
.v2-kpis-compact .v2-kpi>strong{font-size:var(--fs-24)}
.v2-delta{font-size:var(--fs-14);font-weight:600;color:var(--ui-ink-2)}
.v2-delta span{font-weight:400;color:var(--ui-ink-3)}
.v2-delta.good{color:var(--v2-good)}.v2-delta.bad{color:var(--v2-bad)}
.v2-kpi-sub{justify-self:start;padding:0;font-size:var(--fs-13);color:var(--v2-warn)}
.v2-kpi-sub:hover{text-decoration:underline}
.v2-kpi-split{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:var(--fs-13);color:var(--text-2);line-height:1.4;font-variant-numeric:tabular-nums}

.v2-strip{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.25rem;padding:.875rem 1.125rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff}
.v2-strip-head{display:flex;align-items:center;gap:.5rem}
.v2-strip h2,.v2-card h2{margin:0;font-size:var(--fs-15);font-weight:700;color:var(--v2-navy)}
.v2-formula{display:flex;align-items:baseline;flex-wrap:wrap;gap:.375rem .5rem;font-size:var(--fs-15);color:var(--ui-ink)}
.v2-formula i{font-style:normal;color:#8fa3ba}
.v2-formula b{color:var(--v2-navy)}
.v2-gross b{font-size:var(--fs-18)}
.v2-gross em{font-style:normal;color:var(--v2-good);font-weight:600}
.v2-strip .text-btn{margin-left:auto}
.v2-chip{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:999px;font-size:var(--fs-13);white-space:nowrap;background:#eef2f6;color:var(--ui-ink)}
.v2-chip.warn{background:#fbf3e3;color:#8a5d0f}
.v2-chip.risk{background:#fbe9e7;color:#b03a2e}

.v2-grid-2{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:.75rem}
.v2-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.v2-card{display:grid;gap:.75rem;align-content:start;padding:1rem 1.125rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff;min-width:0}
.v2-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.v2-card-head.v2-wrap{flex-wrap:wrap;justify-content:flex-start}
.v2-card-head.v2-wrap>.text-btn{margin-left:auto}
.v2-tabs{display:inline-flex;gap:2px;padding:3px;border-radius:8px;background:#eef2f6}
.v2-tabs button{min-height:2rem;padding:0 .75rem;border-radius:var(--radius-sm);font-size:var(--fs-14);color:var(--ui-ink);white-space:nowrap}
.v2-tabs button[aria-pressed="true"]{background:#fff;color:var(--v2-navy);font-weight:600;box-shadow:0 1px 2px rgba(19,38,61,.12)}
.v2-tabs-pill{background:transparent;padding:0;gap:.375rem;overflow-x:auto;scrollbar-width:none;max-width:100%}
.v2-tabs-pill button{min-height:2.25rem;padding:0 .875rem;border:1px solid var(--ui-line);border-radius:999px;background:#fff}
.v2-tabs-pill button[aria-pressed="true"]{background:var(--v2-navy);border-color:var(--v2-navy);color:#fff;box-shadow:none}
.v2-tabs-pill button b{margin-left:.25rem;font-weight:600}
.v2-push{margin-left:auto}
.v2-card-head.v2-wrap>.v2-push+.text-btn{margin-left:0}
.v2-card .graph-view-switch{border:0}

.v2-todo{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--radius);text-align:left;font-size:var(--fs-15);color:var(--ui-ink)}
.v2-todo:hover{background:#f4f6f9}
.v2-todo b{margin-left:auto;white-space:nowrap;color:var(--v2-navy)}
.v2-todo-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0;background:#8fa3ba}
.v2-dot.risk{background:var(--v2-bad)}.v2-dot.warn{background:#d39a2c}.v2-dot.info{background:var(--v2-accent)}

.v2-rank{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.v2-rank li{display:flex;align-items:center;gap:.625rem;min-height:2.25rem;font-size:var(--fs-15)}
.v2-rank-no{width:1.375rem;height:1.375rem;border-radius:var(--radius-sm);background:#eef2f6;color:var(--ui-ink-2);font:600 .75rem/1.375rem var(--font-num);text-align:center;flex-shrink:0}
.v2-rank li:first-child .v2-rank-no{background:var(--v2-navy);color:#fff}
.v2-rank-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-ink)}
.v2-rank small{min-width:3.25rem;text-align:right}

.v2-promo-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.v2-promo-grid>div>span{display:block;font-size:var(--fs-13);color:var(--ui-ink-2)}
.v2-promo-grid b{font-size:var(--fs-20);color:var(--v2-navy)}
.v2-meter-label{display:flex;justify-content:space-between;font-size:var(--fs-14);color:var(--ui-ink)}
.v2-meter{position:relative;height:.5rem;border-radius:999px;background:#eef2f6}
.v2-meter i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--v2-accent)}
.v2-meter em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--v2-navy)}
.v2-foot{margin:0;font-size:var(--fs-13);line-height:1.7;color:var(--ui-ink-3)}
.v2-foot .text-btn{font-size:var(--fs-13);margin-left:.25rem}

.v2-search{display:flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 .75rem;border:1px solid var(--ui-line);border-radius:8px;background:#fff;flex:1 1 14rem;max-width:22rem}
.v2-search [data-icon]{width:1rem;height:1rem;color:var(--ui-ink-3)}
.v2-search input{flex:1;min-width:0;border:0;background:transparent;font-size:var(--fs-15);outline:none}
.v2-search:focus-within{border-color:var(--v2-accent)}
.v2-table-wrap{overflow-x:auto;border:1px solid var(--v2-line);border-radius:var(--radius)}
.v2-table{width:100%;border-collapse:collapse;font-size:var(--fs-15)}
.v2-table th,.v2-table td{padding:.625rem .75rem;border-bottom:1px solid var(--ui-line);text-align:right;white-space:nowrap}
.v2-table thead th{background:#f7f9fb;color:var(--ui-ink-2);font-weight:600;font-size:var(--fs-14);position:sticky;top:0}
.v2-table th[scope="row"],.v2-table th:first-child,.v2-table td:nth-child(2):not(.v2-num){text-align:left}
.v2-table tbody th{font-weight:500;color:var(--ui-ink)}
.v2-table tbody tr:hover{background:#f9fbfd}
.v2-model{display:flex;align-items:center;gap:.625rem;max-width:22rem;white-space:normal}
.v2-model>span:last-child{display:grid;min-width:0}
.v2-model small{color:var(--ui-ink-3);font-size:var(--fs-13);overflow-wrap:anywhere}

.v2-grid-inbox{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(18rem,1fr);gap:.75rem;align-items:start}
.v2-stack{display:grid;gap:.75rem;align-content:start;min-width:0}
.v2-page>.panel{border:1px solid var(--v2-line);border-radius:var(--radius-lg);box-shadow:none}
.v2-page>.panel h2{font-size:var(--fs-15);color:var(--v2-navy)}
.v2-issue{display:grid;gap:.375rem;padding:.875rem 1rem;border:1px solid var(--v2-line);border-left:4px solid #d39a2c;border-radius:var(--radius-lg);background:#fff}
.v2-issue.risk{border-left-color:var(--v2-bad)}
.v2-issue-top{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-14)}
.v2-issue-top b{margin-left:auto;color:var(--v2-navy)}
.v2-issue h2{margin:0;font-size:var(--fs-15);color:var(--v2-navy)}
.v2-issue p{margin:0;font-size:var(--fs-14);color:var(--ui-ink)}
.v2-issue-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}
.btn.small{min-height:2.25rem;padding:0 .875rem;font-size:var(--fs-14)}
.v2-team-list{list-style:none;margin:0;padding:0;display:grid;gap:.125rem}
.v2-team-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.625rem;width:100%;padding:.5rem;border-radius:var(--radius);text-align:left;font-size:var(--fs-15);color:var(--ui-ink)}
.v2-team-row:hover{background:#f4f6f9}
.v2-team-row small{grid-column:2;font-size:var(--fs-13);color:var(--ui-ink-3)}

.v2-more-group{display:grid;gap:.625rem}
.v2-more-group h2{margin:0;font-size:var(--fs-14);font-weight:600;color:var(--ui-ink-2)}
.v2-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.625rem}
.v2-more-item{display:flex;align-items:center;gap:.75rem;min-height:4rem;padding:.75rem 1rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff;text-align:left}
.v2-more-item:hover{border-color:#b9c9d9;box-shadow:0 2px 8px rgba(19,38,61,.06)}
.v2-more-item>span:nth-child(2){flex:1;display:grid;gap:.125rem;min-width:0}
.v2-more-item strong{font-size:var(--fs-15);color:var(--v2-navy)}
.v2-more-item small{font-size:var(--fs-13);color:var(--ui-ink-3)}
.v2-more-item>[data-icon]:last-child{width:1rem;height:1rem;color:#8fa3ba}
@media(max-width:1180px){
  .v2-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2-grid-3>:last-child{grid-column:1/-1}
}
@media(max-width:1040px){
  .v2-grid-2,.v2-grid-inbox{grid-template-columns:minmax(0,1fr)}
  .v2-inbox-card{order:-1}
  .v2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  :root{--sidebar-w:0px}
  .sidebar{background:#fff;border-top:1px solid var(--v2-line);height:4.5rem}
  .sidebar .nav-item,.nav-item[data-view="promotionFees"]{display:flex;color:var(--ui-ink-2);font-size:var(--fs-13);background:transparent}
  .sidebar .nav-icon{color:var(--ui-ink-2)}
  .sidebar .nav-item.active{background:transparent;color:var(--v2-accent);font-weight:600}
  .sidebar .nav-item.active .nav-icon{color:var(--v2-accent)}
  .sidebar .nav-item:hover{background:transparent;color:var(--v2-navy)}
  .sidebar .nav-item.active::before{background:var(--v2-accent)}
  .nav{overflow:visible}
  .nav-badge{position:absolute;top:.25rem;left:calc(50% + .375rem);margin:0;min-width:1.125rem;height:1.125rem;font-size:var(--fs-13);line-height:1.125rem}
  .main{padding-bottom:4.5rem}
  .topbar{flex-wrap:wrap;row-gap:.5rem;padding-block:.5rem}
  .top-actions{width:auto;flex:0 0 auto}
  .topbar-title{font-size:var(--fs-18)}
  .global-range{order:5;flex-basis:100%;overflow-x:auto;scrollbar-width:none;border:0;background:transparent;padding:0;gap:.375rem}
  .global-range::-webkit-scrollbar{display:none}
  .global-range button{flex:0 0 auto;min-height:2.25rem;border:1px solid var(--ui-line);border-radius:999px;background:#fff}
  #globalSyncBtn,#searchBtn{display:none}
  .v2-grid-3{grid-template-columns:minmax(0,1fr)}
  .v2-strip .text-btn{margin-left:0}
}
@media(max-width:620px){
  .v2-kpi{padding:.875rem}
  .v2-kpi>strong{font-size:var(--fs-20)}
  .v2-asof{flex-basis:100%}
  .v2-scope-form label{flex:1 1 8rem}
  .v2-scope-form input,.v2-scope-form select{width:100%}
  .v2-issue-actions .btn{flex:1;min-height:2.75rem}
  .v2-more-grid{grid-template-columns:minmax(0,1fr)}
}

/* ===== v2 侧栏分组：经营明细单独成组（电脑）；手机收进“更多” ===== */
[data-icon="box"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round' d='M3.5 7.5 12 3l8.5 4.5v9L12 21l-8.5-4.5zM3.5 7.5 12 12l8.5-4.5M12 12v9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round' d='M3.5 7.5 12 3l8.5 4.5v9L12 21l-8.5-4.5zM3.5 7.5 12 12l8.5-4.5M12 12v9'/%3E%3C/svg%3E")}
[data-icon="trend"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' d='M3 17l5.5-5.5 4 4L21 7M15 7h6v6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' d='M3 17l5.5-5.5 4 4L21 7M15 7h6v6'/%3E%3C/svg%3E")}
.sidebar .nav-caption{display:block;margin:.875rem .75rem .25rem;padding:0;font-size:var(--fs-13);font-weight:600;letter-spacing:.04em;color:#7f93ab}
.sidebar .nav-divider{height:1px;margin:.625rem .75rem;background:rgba(255,255,255,.08)}
.sidebar .nav-item.nav-detail{min-height:2.5rem;font-size:var(--fs-15)}
.v2-more-detail{display:none}
.v2-more-item.is-mobile-only{display:none}
@media(min-width:861px){.sidebar .nav-item.nav-mobile-only{display:none!important}}
@media(max-width:860px){
  .v2-more-item.is-mobile-only{display:flex}
  .sidebar .nav-detail,.sidebar .nav-caption,.sidebar .nav-divider{display:none!important}
  .v2-more-detail{display:grid}
  .sidebar .nav-item.is-detail-parent{color:var(--v2-accent);font-weight:600}
  .sidebar .nav-item.is-detail-parent .nav-icon{color:var(--v2-accent)}
}

/* ===== v2 动效：只在用户未要求减少动态时启用 ===== */
@keyframes v2-page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes v2-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes v2-fade{from{opacity:0}to{opacity:1}}
@keyframes v2-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes v2-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes v2-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.15);opacity:1}100%{transform:scale(1)}}
@keyframes v2-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes v2-ring{0%{box-shadow:0 0 0 0 rgba(192,57,43,.45)}70%{box-shadow:0 0 0 6px rgba(192,57,43,0)}100%{box-shadow:0 0 0 0 rgba(192,57,43,0)}}
@media(prefers-reduced-motion:no-preference){
  #content.v2-enter{animation:v2-page-in .38s cubic-bezier(.2,.8,.2,1) both}
  /* 交互反馈 */
  .sidebar .nav-item{transition:background .2s ease,color .2s ease}
  .sidebar .nav-item .nav-icon{transition:transform .2s ease,color .2s ease}
  .sidebar .nav-item:hover .nav-icon{transform:scale(1.12)}
  .sidebar .nav-item.active::before{transition:height .25s ease}
  .global-range button,.v2-tabs button,.v2-scope-toggle,.v2-todo,.v2-team-row,.top-refresh,.icon-btn,.sync-status{transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .12s ease}
  .global-range button:active,.v2-tabs button:active,.btn:active,.v2-more-item:active,.top-refresh:active{transform:scale(.96)}
  .v2-card,.v2-strip,.v2-kpi,.v2-issue{transition:box-shadow .25s ease,border-color .25s ease}
  .v2-card:hover,.v2-strip:hover,.v2-kpi:hover,.v2-issue:hover{border-color:#cfd9e4;box-shadow:0 6px 18px rgba(19,38,61,.07)}
  .v2-more-item{transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,border-color .2s ease}
  .v2-more-item:hover{transform:translateY(-2px)}
  .v2-more-item>[data-icon]:last-child{transition:transform .2s ease}
  .v2-more-item:hover>[data-icon]:last-child,.v2-todo:hover b{transform:translateX(3px)}
  .v2-todo b{transition:transform .2s ease}
  .nav-badge:not([hidden]){animation:v2-pop .45s cubic-bezier(.2,.8,.2,1) both,v2-ring 1.6s ease-out .45s 2}
  .sync-status.stale .pulse{animation:v2-ring 1.8s ease-out infinite}
  .overview-loading-value{display:inline-block;min-width:6em;border-radius:var(--radius-sm);color:transparent!important;background:linear-gradient(90deg,#eef2f6 25%,#f7f9fb 50%,#eef2f6 75%);background-size:200% 100%;animation:v2-shimmer 1.4s linear infinite}
  /* 数据到达：数字上浮、条形生长、折线描出、列表依次进入（--v2-delay 为负值时接着上一次重绘继续播放） */
  [data-motion] .v2-kpi>strong,[data-motion] .v2-kpi .v2-delta{animation:v2-rise .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--v2-delay,0ms)}
  [data-motion] .v2-kpi:nth-child(2)>strong,[data-motion] .v2-kpi:nth-child(2) .v2-delta{animation-delay:calc(var(--v2-delay,0ms) + 60ms)}
  [data-motion] .v2-kpi:nth-child(3)>strong,[data-motion] .v2-kpi:nth-child(3) .v2-delta{animation-delay:calc(var(--v2-delay,0ms) + 120ms)}
  [data-motion] .v2-kpi:nth-child(4)>strong,[data-motion] .v2-kpi:nth-child(4) .v2-delta{animation-delay:calc(var(--v2-delay,0ms) + 180ms)}
  [data-motion] .v2-formula>span,[data-motion] .v2-formula>i{animation:v2-rise .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--v2-delay,0ms)}
  [data-motion] .v2-formula>:nth-child(n+3){animation-delay:calc(var(--v2-delay,0ms) + 90ms)}
  [data-motion] .v2-formula>:nth-child(n+5){animation-delay:calc(var(--v2-delay,0ms) + 180ms)}
  [data-motion] .v2-formula>:nth-child(n+7){animation-delay:calc(var(--v2-delay,0ms) + 270ms)}
  [data-motion] .overview-line{stroke-dasharray:1;animation:v2-draw .9s cubic-bezier(.45,0,.2,1) both;animation-delay:var(--v2-delay,0ms)}
  [data-motion] .overview-chart circle{animation:v2-fade .3s ease both;animation-delay:calc(var(--v2-delay,0ms) + 700ms)}
  [data-motion] .overview-chart-total strong{animation:v2-rise .5s ease both;animation-delay:var(--v2-delay,0ms)}
  [data-motion] .graph-view-fill,[data-motion] .v2-meter i{transform-origin:left center;animation:v2-grow .75s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--v2-delay,0ms) + 80ms)}
  [data-motion] .graph-view-fill.is-negative{transform-origin:right center}
  [data-motion] .v2-todo,[data-motion] .v2-rank li,[data-motion] .v2-issue,[data-motion] .v2-table tbody tr,[data-motion] .graph-view-bar-row,[data-motion] .graph-view-daily tbody tr,[data-motion] .v2-promo-grid>div{animation:v2-rise .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--v2-delay,0ms)}
  [data-motion] :is(.v2-todo,.v2-rank li,.v2-issue,.v2-table tbody tr,.graph-view-bar-row,.graph-view-daily tbody tr,.v2-promo-grid>div):nth-child(2){animation-delay:calc(var(--v2-delay,0ms) + 50ms)}
  [data-motion] :is(.v2-todo,.v2-rank li,.v2-issue,.v2-table tbody tr,.graph-view-bar-row,.graph-view-daily tbody tr):nth-child(3){animation-delay:calc(var(--v2-delay,0ms) + 100ms)}
  [data-motion] :is(.v2-todo,.v2-rank li,.v2-issue,.v2-table tbody tr,.graph-view-bar-row,.graph-view-daily tbody tr):nth-child(4){animation-delay:calc(var(--v2-delay,0ms) + 150ms)}
  [data-motion] :is(.v2-todo,.v2-rank li,.v2-issue,.v2-table tbody tr,.graph-view-bar-row,.graph-view-daily tbody tr):nth-child(5){animation-delay:calc(var(--v2-delay,0ms) + 200ms)}
  [data-motion] :is(.v2-todo,.v2-rank li,.v2-issue,.v2-table tbody tr,.graph-view-bar-row,.graph-view-daily tbody tr):nth-child(n+6){animation-delay:calc(var(--v2-delay,0ms) + 250ms)}
}

/* ==========================================================================
   v2 字体系统
   1) 全用系统字体：不再从 Google Fonts 下载（国内常超时，Noto Sans SC 体积数 MB）。
      苹果用苹方/San Francisco，Windows 用微软雅黑/Segoe UI，安卓用鸿蒙/MiSans/思源。
   2) 字号档位：13 / 14 / 15 / 16 / 20 / 24 / 32（+ 手机 KPI 26），最小 13px（2026-10-12 用户反馈小字太多，整体上调 1px）。
   3) 字重只用 400 / 500 / 600，大号金额 700；数字一律等宽对齐（tabular-nums）。
   ========================================================================== */
:root{
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",system-ui,sans-serif;
  --font-num:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","Roboto","Helvetica Neue",Arial,var(--font);
  /* 字号阶梯（名称 = 像素）：12 只给角标/序号，正文 15，说明 13–14，标题 16/20，指标 20/24/28 */
  --fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-15:.9375rem;--fs-16:1rem;--fs-18:1.125rem;--fs-20:1.25rem;--fs-24:1.5rem;--fs-28:1.75rem;--fs-32:2rem;
  /* 旧名保留为别名，避免遗漏处失效 */
  --t-12:var(--fs-13);--t-13:var(--fs-14);--t-14:var(--fs-15);--t-16:var(--fs-16);--t-20:var(--fs-20);--t-24:var(--fs-24);--t-32:var(--fs-32);
  /* 旧页面令牌并入同一刻度，避免 2xs 与 xs、sm 与 body 重复 */
  --fs-2xs:var(--fs-13);--fs-xs:var(--fs-14);--fs-sm:var(--fs-15);--fs-body:var(--fs-15);--fs-md:var(--fs-16);--fs-lg:var(--fs-20);--fs-xl:var(--fs-24);--fs-display:var(--fs-32);
  --lh-data:1.2;--lh-heading:1.35;--lh-control:1.45;--lh-body:1.6;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--font);font-size:var(--fs-15);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.v2-num,.v2-table td,.graph-view-bars strong,.overview-chart text,.sync-status small{font-family:var(--font-num);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}

/* 标题层级 */
.topbar-title{font-size:var(--fs-20);font-weight:600;letter-spacing:.01em}
.v2-card h2,.v2-strip h2,.v2-issue h2,.v2-page>.panel h2{font-size:var(--fs-16);font-weight:600;line-height:var(--lh-heading)}
.v2-more-group h2,.sidebar .nav-caption{font-size:var(--fs-13);font-weight:600;letter-spacing:.06em}
.v2-more-item strong{font-size:var(--fs-16);font-weight:600}

/* 正文与辅助 */
.v2-muted,.v2-asof,.v2-kpi-label,.v2-delta,.v2-todo-title,.v2-issue p,.v2-team-row,.v2-meter-label,.v2-formula{font-size:var(--fs-14)}
.v2-foot,.v2-chip,.v2-more-item small,.v2-team-row small,.v2-model small,.v2-promo-grid>div>span,.v2-kpi-sub{font-size:var(--fs-13)}
.v2-todo,.v2-rank li,.v2-table,.v2-scope-toggle,.ask-box input,.v2-search input,.sidebar .nav-item,.sidebar .nav-item.nav-detail{font-size:var(--fs-15)}
.v2-table thead th{font-size:var(--fs-14);font-weight:500}
.v2-tabs button,.global-range button,.top-sync{font-size:var(--fs-14);font-weight:500}
.v2-tabs button[aria-pressed="true"],.global-range button[aria-pressed="true"]{font-weight:600}
.v2-kpi-label{font-weight:500;color:var(--ui-ink-2)}

/* 数字层级：KPI 32 → 卡片主数 24 → 行内 14；¥ 与角分退后 */
.v2-kpi>strong{font-size:var(--fs-32);font-weight:700;line-height:1.1;letter-spacing:-.02em}
.v2-kpis-compact .v2-kpi>strong,.v2-promo-grid b,.overview-chart-total strong{font-size:var(--fs-24);font-weight:700;letter-spacing:-.01em}
.v2-gross b{font-size:var(--fs-20);font-weight:700}
.v2-cur{font-size:.6em;font-weight:600;margin-right:.08em;vertical-align:.12em;opacity:.75}
.v2-dec{font-size:.62em;font-weight:600;opacity:.55}
.v2-todo b,.v2-rank b,.v2-issue-top b{font-weight:600}

@media(max-width:1280px){.v2-kpi>strong{font-size:var(--fs-28)}}
@media(max-width:860px){
  .sidebar .nav-item{font-size:var(--fs-13)!important}
  .topbar-title{font-size:var(--fs-18)}
}
@media(max-width:620px){
  .v2-kpi>strong{font-size:1.5rem}
  .v2-muted,.v2-todo-title,.v2-issue p{font-size:var(--fs-15)}
}

/* ===== 团队知识库 ===== */
[data-icon="book"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round' d='M4 5.5A2.5 2.5 0 0 1 6.5 3H20v15H6.5A2.5 2.5 0 0 0 4 20.5zM4 20.5A2.5 2.5 0 0 0 6.5 23H20v-5M8 7h8M8 11h6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round' d='M4 5.5A2.5 2.5 0 0 1 6.5 3H20v15H6.5A2.5 2.5 0 0 0 4 20.5zM4 20.5A2.5 2.5 0 0 0 6.5 23H20v-5M8 7h8M8 11h6'/%3E%3C/svg%3E")}
.kb-ask{display:grid;gap:.625rem;padding:1.125rem 1.25rem;border:1px solid var(--v2-line);border-radius:12px;background:linear-gradient(135deg,#13263d 0%,#1f3d63 100%);color:#fff}
.kb-ask-label{font-size:var(--fs-16);font-weight:600}
.kb-ask-row{display:flex;gap:.5rem}
.kb-ask-row input{flex:1;min-width:0;height:2.75rem;padding:0 .875rem;border:0;border-radius:var(--radius);font-size:var(--fs-15);color:var(--text);background:#fff}
.kb-ask-row input:focus{outline:3px solid rgba(127,179,230,.6);outline-offset:0}
.kb-ask .btn.primary{min-height:2.75rem;padding:0 1.25rem;background:#7fb3e6;border-color:#7fb3e6;color:var(--ui-ink);font-weight:600}
.kb-answer{display:grid;gap:.625rem;padding:1rem 1.125rem;border-radius:var(--radius);background:#fff;color:var(--text)}
.kb-answer.is-error{border-left:4px solid var(--v2-bad)}
.kb-answer-body{font-size:var(--fs-15);line-height:1.75}
.kb-answer-body p{margin:.25rem 0}
.kb-cite{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;margin:0 .125rem;padding:0 .25rem;border-radius:var(--radius-sm);background:#e7f0f9;color:var(--v2-accent);font:600 var(--fs-13)/1 var(--font-num);vertical-align:.1em}
.kb-cite:hover{background:var(--v2-accent);color:#fff}
.kb-sources{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding-top:.5rem;border-top:1px solid var(--ui-line)}
.kb-sources>span{font-size:var(--fs-13);color:var(--ui-ink-3);margin-right:.25rem}
.kb-source{display:inline-flex;align-items:center;gap:.375rem;max-width:100%;padding:.25rem .625rem;border:1px solid var(--ui-line);border-radius:999px;font-size:var(--fs-14);color:var(--ui-ink);background:#fff}
.kb-source b{font:600 var(--fs-13) var(--font-num);color:var(--v2-accent)}
.kb-source em{font-style:normal;font-size:var(--fs-13);color:var(--v2-warn)}
.kb-source:hover{border-color:var(--v2-accent)}
.kb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}
.kb-search{max-width:24rem}
.kb-actions{display:flex;gap:.5rem;margin-left:auto}
.kb-layout{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:1rem;align-items:start}
.kb-filters{display:grid;gap:.25rem;position:sticky;top:5.5rem}
.kb-filters h2{margin:.5rem 0 .25rem;font-size:var(--fs-13);font-weight:600;letter-spacing:.06em;color:var(--ui-ink-3)}
.kb-filter{display:flex;justify-content:space-between;align-items:center;min-height:2.25rem;padding:0 .75rem;border-radius:var(--radius);font-size:var(--fs-15);color:var(--ui-ink);text-align:left}
.kb-filter b{font-size:var(--fs-13);font-weight:500;color:var(--ui-ink-3)}
.kb-filter:hover{background:#eef2f6}
.kb-filter[aria-pressed="true"]{background:#e7f0f9;color:var(--v2-accent);font-weight:600}
.kb-tags{display:flex;flex-wrap:wrap;gap:.375rem}
.kb-tag-btn{padding:.25rem .5rem;border-radius:999px;background:#eef2f6;font-size:var(--fs-13);color:var(--ui-ink-2)}
.kb-tag-btn[aria-pressed="true"]{background:var(--v2-navy);color:#fff}
.kb-count{margin-bottom:.5rem}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:.75rem}
.kb-card{display:grid;gap:.5rem;align-content:start;min-height:9.5rem;padding:1rem 1.125rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff;text-align:left}
.kb-card:hover{border-color:#b9c9d9;box-shadow:0 6px 18px rgba(19,38,61,.07)}
.kb-card-top{display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}
.kb-meta{padding:.125rem .5rem;border-radius:var(--radius-sm);background:#f2f5f9;font-size:var(--fs-13);color:var(--ui-ink-2)}
.kb-card-title{font-size:var(--fs-16);font-weight:600;color:var(--v2-navy);line-height:1.4}
.kb-card-summary{font-size:var(--fs-14);color:var(--ui-ink-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.kb-card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:auto}
.kb-card-foot small{margin-left:auto;font-size:var(--fs-13);color:#8394a7}
.kb-tag{font-size:var(--fs-13);color:var(--v2-accent)}
.kb-card.is-skeleton{min-height:9.5rem;background:linear-gradient(90deg,#f2f5f9 25%,#f8fafc 50%,#f2f5f9 75%);background-size:200% 100%;border-color:var(--ui-line)}
.kb-more{justify-self:center;margin-top:.75rem}
.kb-main{display:grid;min-width:0}
.kb-empty{justify-items:start;padding:1.5rem}
.kb-empty strong{font-size:var(--fs-16);color:var(--v2-navy)}
.kb-empty-actions{display:flex;gap:.5rem}
.kb-import{gap:.875rem}
.kb-drop{position:relative;display:grid;gap:.375rem;justify-items:center;padding:1.5rem 1rem;border:1.5px dashed #b9c9d9;border-radius:var(--radius-lg);background:#f8fafc;text-align:center;cursor:pointer}
.kb-drop strong{font-size:var(--fs-16);color:var(--v2-navy)}
.kb-drop span{max-width:42rem;font-size:var(--fs-14);color:var(--ui-ink-2);line-height:1.6}
.kb-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.kb-drop.is-over,.kb-drop:focus-within{border-color:var(--v2-accent);background:#eef5fc}
.kb-import-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.kb-import-row{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.625rem;align-items:center;padding:.5rem .625rem;border-radius:var(--radius);background:#f8fafc}
.kb-import-row small{grid-column:2;font-size:var(--fs-13);color:var(--ui-ink-2)}
.kb-import-row.is-failed small{color:var(--v2-bad)}
.kb-import-name{font-size:var(--fs-15);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-editor{display:grid;gap:.875rem}
.kb-editor label{display:grid;gap:.375rem;font-size:var(--fs-14);font-weight:500;color:var(--ui-ink)}
.kb-editor input:not([type="checkbox"]),.kb-editor select,.kb-editor textarea,.kb-import input:not([type]),.kb-import input[type="text"]{padding:.5rem .75rem;border:1px solid var(--ui-line);border-radius:var(--radius);font:inherit;font-size:var(--fs-15);color:var(--text);background:#fff}
.kb-editor textarea{resize:vertical;line-height:1.7}
.kb-editor-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;align-items:end}
.kb-import .kb-editor-row label{display:grid;gap:.375rem;font-size:var(--fs-14);color:var(--ui-ink)}
.kb-check{display:flex!important;align-items:center;gap:.5rem;font-weight:400!important}
.kb-check small{color:var(--v2-warn);font-size:var(--fs-13)}
.kb-warning{margin:0;padding:.5rem .75rem;border-radius:var(--radius);background:#fbf3e3;font-size:var(--fs-13);color:#8a5d0f}
.kb-detail{display:grid;gap:1rem}
.kb-detail-summary{margin:0;padding:.75rem 1rem;border-left:3px solid var(--v2-accent);background:#f4f8fc;font-size:var(--fs-15);color:var(--ui-ink)}
.kb-detail-body{font-size:var(--fs-15);line-height:1.8;color:var(--text);overflow-wrap:anywhere}
.kb-detail-body h3,.kb-detail-body h4,.kb-detail-body h5{margin:1rem 0 .375rem;font-size:var(--fs-16);color:var(--v2-navy)}
.kb-detail-body ul,.kb-detail-body ol{margin:.25rem 0 .5rem;padding-left:1.25rem}
.kb-detail-body code{padding:.0625rem .375rem;border-radius:var(--radius-xs);background:#eef2f6;font-size:var(--fs-13)}
.kb-table-wrap{overflow-x:auto;margin:.5rem 0;border:1px solid var(--v2-line);border-radius:var(--radius)}
.kb-table-wrap table{border-collapse:collapse;font-size:var(--fs-14);width:100%}
.kb-table-wrap th,.kb-table-wrap td{padding:.375rem .625rem;border-bottom:1px solid var(--ui-line);text-align:left;white-space:nowrap}
.kb-table-wrap th{background:#f7f9fb;font-weight:600}
.kb-detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}
.kb-detail-meta{display:grid;gap:.375rem;margin:0;padding:.75rem 1rem;border-radius:var(--radius);background:#f8fafc}
.kb-detail-meta div{display:grid;grid-template-columns:5rem minmax(0,1fr);font-size:var(--fs-14)}
.kb-detail-meta dt{color:var(--ui-ink-3)}.kb-detail-meta dd{margin:0;color:var(--ui-ink)}
.kb-files h3,.kb-history summary{font-size:var(--fs-15);font-weight:600;color:var(--v2-navy)}
.kb-history ol{margin:.5rem 0;padding-left:1.25rem;font-size:var(--fs-14);display:grid;gap:.25rem}
.kb-revision{margin-top:.5rem;padding:.75rem 1rem;border:1px dashed #b9c9d9;border-radius:var(--radius)}
@media(max-width:860px){
  .kb-layout{grid-template-columns:minmax(0,1fr)}
  .kb-filters{position:static;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:.375rem;scrollbar-width:none}
  .kb-filters h2,.kb-filters .kb-tags{display:none}
  .kb-filter{flex:0 0 auto;border:1px solid var(--ui-line);border-radius:999px;background:#fff}
  .kb-actions{margin-left:0;width:100%}.kb-actions .btn{flex:1}
  .kb-search{max-width:none;flex-basis:100%}
}
@media(max-width:620px){.kb-ask{padding:1rem}.kb-ask-row{flex-direction:column}.kb-ask-row input{flex:none}.kb-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:no-preference){
  .kb-card{transition:border-color .2s ease,box-shadow .2s ease,transform .2s cubic-bezier(.2,.8,.2,1)}
  .kb-card:hover{transform:translateY(-2px)}
  .kb-card.is-skeleton{animation:v2-shimmer 1.4s linear infinite}
  .kb-answer{animation:v2-rise .4s cubic-bezier(.2,.8,.2,1) both}
  [data-motion] .kb-card{animation:v2-rise .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--v2-delay,0ms)}
  [data-motion] .kb-card:nth-child(2){animation-delay:calc(var(--v2-delay,0ms) + 50ms)}
  [data-motion] .kb-card:nth-child(3){animation-delay:calc(var(--v2-delay,0ms) + 100ms)}
  [data-motion] .kb-card:nth-child(n+4){animation-delay:calc(var(--v2-delay,0ms) + 150ms)}
}
.v2-page{grid-template-columns:minmax(0,1fr)}
.v2-page>*,.kb-layout>*{min-width:0}
@media(max-width:860px){.kb-toolbar .v2-tabs-pill{flex:1 1 100%;min-width:0}}
.kb-answer-body ul,.kb-answer-body ol{margin:.25rem 0;padding-left:1.25rem}

/* ===== 团队事项单独入口 + 按角色调整导航 ===== */
.nav-badge.is-muted{background:#5d7390}
body[data-role="staff"] .nav-item[data-view="inbox"],body[data-role="staff"] .nav-item[data-view="products"]{display:none!important}
@media(max-width:860px){
  body[data-role="staff"] .sidebar .nav-item[data-view="teamTodos"]{display:flex!important}
}
.v2-flow{gap:.875rem}
.v2-flow-steps{list-style:none;margin:0;padding:0;display:grid;gap:.625rem;counter-reset:flow}
.v2-flow-steps li{display:grid;grid-template-columns:1.5rem minmax(0,1fr);column-gap:.625rem;counter-increment:flow}
.v2-flow-steps li::before{content:counter(flow);grid-row:span 2;width:1.5rem;height:1.5rem;border-radius:50%;background:#e7f0f9;color:var(--v2-accent);font:600 var(--fs-13)/1.5rem var(--font-num);text-align:center}
.v2-flow-steps b{font-size:var(--fs-15);color:var(--v2-navy)}
.v2-flow-steps span{font-size:var(--fs-13);color:var(--ui-ink-2);line-height:1.6}
.v2-flow-team{display:flex;align-items:baseline;gap:.375rem;padding:.75rem .875rem;border-radius:var(--radius);background:#f4f6f9;font-size:var(--fs-14);color:var(--ui-ink-2)}
.v2-flow-team>span{margin-right:auto;font-weight:600;color:var(--v2-navy)}
.v2-flow-team b{font-size:var(--fs-20);color:var(--v2-navy)}
.v2-flow-team small{margin-right:.5rem}
.v2-flow-actions{display:flex;flex-wrap:wrap;gap:.5rem}

/* ===== 抽屉（展开页）修整 ===== */
.drawer .eyebrow[hidden]{display:none}
.drawer-head h2{font-family:var(--font);font-size:var(--fs-20);font-weight:600;letter-spacing:0}
/* 两三列的键值表不需要横向滚动的最小宽度 */
#drawerBody .sku-table:not(:has(th:nth-child(4))){min-width:0}
#drawerBody .sku-table th,#drawerBody .sku-table td{vertical-align:top}
/* 原生文件选择框统一成按钮样式 */
.team-file-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:0 1rem;border:1px dashed #b9c9d9;border-radius:var(--radius);background:#f8fafc;color:var(--v2-accent);font-size:var(--fs-15);font-weight:600;cursor:pointer}
.team-file-picker:hover,.team-file-picker:focus-within{border-color:var(--v2-accent);background:#eef5fc}
.team-file-picker input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
@media(max-width:860px){#searchBtn{display:flex!important}}
/* 顶栏已经显示页面名称：旧页面自带的大标题和眉题不再重复 */
.business-page-heading h1,.business-page-heading .eyebrow,.team-heading h1,.team-heading .business-eyebrow{display:none}
.business-page-heading,.team-heading{padding-top:0}
.business-page-heading p,.team-heading p{margin:0;font-size:var(--fs-14);color:var(--ui-ink-2)}

/* ===== 成熟度整理（2026-10-10）：说明收起、对齐、展开页与旧版明细页统一 ===== */
/* 可展开的口径说明：默认只露出一个小链接 */
.v2-note{min-width:0;font-size:var(--fs-14);color:var(--ui-ink-2)}
.v2-note>summary{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;list-style:none;color:var(--v2-accent);font-weight:500;user-select:none;border-radius:var(--radius-xs)}
.v2-note>summary::-webkit-details-marker{display:none}
.v2-note>summary::before{content:'';width:.4rem;height:.4rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;margin-right:.125rem}
.v2-note[open]>summary::before{transform:rotate(45deg)}
.v2-note>summary:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px}
.v2-note-body{margin-top:.5rem;padding:.75rem .875rem;border-radius:var(--radius);background:#f5f8fb;border:1px solid var(--ui-line);line-height:1.65;max-width:min(100%,60rem)}
.v2-note-body p{margin:0}.v2-note-body p+p{margin-top:.375rem}
.v2-note-body h3{margin:0 0 .25rem;font-size:var(--fs-14);font-weight:600;color:var(--v2-navy)}
.v2-note-body section{all:unset;display:block}.v2-note-body section+section{margin-top:.5rem}
.v2-inline{display:inline-flex;align-items:center;gap:.75rem}
.v2-strip-head{position:relative}.v2-strip-head .info-pop{left:0;right:auto}
.v2-card-head{position:relative}
.panel-head h2 .info-dot{vertical-align:2px;margin-left:.25rem}
.panel-head h2{position:relative}.panel-head h2 .info-pop{left:0;right:auto;font-weight:400}

/* 表格：数字列右对齐、不折行 */
.sku-table th.num,.sku-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.money-detail .sku-table td,.money-detail .sku-table th{white-space:nowrap}

/* 顶栏：标题占固定宽度，切换页面时右侧控件不跳动 */
.topbar-title{min-width:5.25em}
@media(max-width:860px){.topbar-title{min-width:0}}

/* 经营页 */
.v2-shops .graph-view-bar-heading .text-btn{padding-left:0}
.v2-foot{display:flex;justify-content:flex-end}
.v2-flow-team{margin-top:.25rem}

/* 商品页：预警为 0 时只占一行 */
.overview-model-alerts.is-quiet{padding-block:.875rem}
.overview-model-alerts.is-quiet .panel-head{margin-bottom:.25rem}
.overview-model-alerts.is-quiet .v2-muted{margin:0}

/* 明细页统一：去掉彩色顶边、警示色说明条，空状态更紧凑 */

.business-page .wdt-board-basis{border:0;background:none;padding:0;margin:.25rem 0 .5rem}
.business-page .state-block,.drawer .state-block{min-height:0;padding:1.5rem 1rem;gap:.5rem;border-style:solid;border-color:#e6ecf2;background:#fafbfc}
.business-page .state-block .state-icon,.drawer .state-block .state-icon{width:2.25rem;height:2.25rem}
.business-page .state-block .state-icon [data-icon],.drawer .state-block .state-icon [data-icon]{width:1.125rem;height:1.125rem}
.business-page .state-block h3,.drawer .state-block h3{font-size:var(--fs-15)}
.business-page .state-block p,.drawer .state-block p{font-size:var(--fs-14);margin:0}
.finance-boundary{background:none;border:0;padding:0;justify-content:flex-start;gap:.75rem;align-items:center;flex-wrap:wrap}
.promotion-meta{gap:.375rem 1rem}
.promotion-meta .v2-note{flex-basis:100%}
.team-heading{justify-content:flex-end;padding:0}

/* 展开页：范围一行，口径收起，一致时不占大块 */
.money-summary{display:grid;gap:.5rem;margin-bottom:.75rem}
.money-scope-line{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:0;color:var(--ui-ink-2);font-size:var(--fs-14)}
.money-scope-line span:first-child{color:var(--v2-navy);font-weight:600}
.money-reconcile.is-ok{background:none;border:0;padding:0;display:flex;gap:.75rem;align-items:baseline;flex-wrap:wrap;color:#2f7a4b;font-size:var(--fs-14)}
.money-reconcile.is-ok strong{font-weight:600}
.money-reconcile.is-ok span{color:var(--ui-ink-2)}
#globalSyncBtn,.topbar .btn{white-space:nowrap}
.topbar-title{min-width:4.5em}
.v2-inbox-card{gap:.25rem}
.v2-inbox-card .v2-todo{min-height:2.5rem}
/* 经营走势：悬停/点按显示当天数值 */
.overview-chart-canvas{position:relative;touch-action:pan-x}
.overview-chart-canvas svg circle{transition:r .12s ease}
.overview-chart-canvas svg circle.is-active{r:6px;stroke:#fff;stroke-width:2}
.overview-end-label{font-size:var(--fs-13);font-weight:600;fill:var(--v2-navy);font-variant-numeric:tabular-nums}
.trend-crosshair{position:absolute;top:22px;height:184px;width:0;border-left:1px dashed #9fb2c6;pointer-events:none}
.trend-tip{position:absolute;top:0;transform:translateX(-50%);display:grid;gap:2px;padding:.4rem .625rem;border-radius:var(--radius);background:var(--v2-navy);color:#fff;font-size:var(--fs-13);line-height:1.4;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px rgba(19,38,61,.18);z-index:2}
.trend-tip span{opacity:.75}.trend-tip strong{font-size:var(--fs-14);font-variant-numeric:tabular-nums}.trend-tip small{opacity:.8;font-variant-numeric:tabular-nums}
.overview-chart-scroll:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px;border-radius:var(--radius-sm)}
.overview-chart-canvas svg circle.is-active{fill:var(--v2-navy);stroke:#fff;stroke-width:2.5}
.trend-tip{white-space:normal;max-width:min(17rem,80vw)}
.trend-tip strong,.trend-tip span{white-space:nowrap}
.ad-fee-line{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;padding:.25rem 0 .5rem}
.ad-fee-target{display:inline-flex;align-items:baseline;gap:.5rem;color:var(--ui-ink-2);font-size:var(--fs-14)}
.ad-fee-target strong{font-size:var(--fs-20);color:var(--v2-navy);font-variant-numeric:tabular-nums}
.promotion-analysis .v2-note{margin-bottom:.75rem}
/* 客服总览：数字做成整齐的小卡片 */
.promotion-analysis-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.625rem;padding:0;border:0;background:none}
.promotion-analysis-overview>span{display:grid;gap:.125rem;padding:.75rem .875rem;border:1px solid var(--v2-line);border-radius:var(--radius);background:#fff;color:var(--ui-ink-2);font-size:var(--fs-14)}
.promotion-analysis-overview>span strong{order:-1;font-size:var(--fs-20);font-weight:600;color:var(--v2-navy);font-variant-numeric:tabular-nums}
.promotion-analysis-overview>span small{font-size:var(--fs-13);color:var(--ui-ink-3)}
.promotion-analysis-foot p{margin:.5rem 0 .25rem;color:var(--ui-ink-2);font-size:var(--fs-14)}
/* 财务：三张趋势图同一行 */
@media(min-width:1180px){.finance-chart-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.team-heading{gap:.75rem;align-items:center}
@media(max-width:1180px){.topbar-title{min-width:0}.global-range button{padding-inline:.5rem}}
.v2-meter-label .v2-inline{position:relative;gap:.375rem}.v2-meter-label .info-pop{left:0;right:auto}
/* 商品表：名称列保底宽度，窄屏在表内横向滚动，不把名称挤成一字一行 */
.v2-table th[scope="row"]{min-width:11rem}
.v2-table .v2-model>span:last-child{min-width:6.5rem}
@media(max-width:700px){.v2-table{min-width:40rem}.v2-table th:first-child,.v2-table td:first-child{position:sticky;left:0;background:#fff;z-index:1}.v2-table thead th:first-child{background:#f7f9fb;z-index:2}}
/* 展开页“怎么算”紧跟范围一行 */
.money-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.375rem 1rem}
.money-summary .v2-note[open]{flex-basis:100%}
.finance-chart-grid .panel-head .text-btn,.finance-chart-grid .panel-head a{white-space:nowrap}
#restockCard .text-btn{white-space:nowrap}#restockCard .v2-inline{flex-wrap:wrap;justify-content:flex-end}

/* ===== 2026-10-11 视觉统一：一个时间范围、统一卡片标题与筛选、图表铺满卡片 ===== */
.topbar{position:sticky}
.global-custom{position:absolute;top:calc(100% - .25rem);left:7.5rem;z-index:40;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .625rem;padding:.75rem .875rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff;box-shadow:0 12px 32px rgba(19,38,61,.14)}
.global-custom[hidden]{display:none}
.global-custom label{display:flex;align-items:center;gap:.375rem;font-size:var(--fs-14);color:#4a5d72}
.global-custom input[type=date]{min-height:2.125rem;padding:0 .5rem;border:1px solid #d5dee8;border-radius:var(--radius);font:inherit;font-size:var(--fs-14);color:var(--v2-navy)}
.global-custom small{flex-basis:100%;color:var(--v2-bad);font-size:var(--fs-13)}
.global-custom small:empty{display:none}
/* 二级页面的卡片与标题和经营首页一致 */
.business-page .panel{border-radius:var(--radius-lg);border-color:var(--v2-line);padding:1rem 1.125rem}
.business-page .panel-head h2,.business-page .promotion-head h2,.business-page .wdt-board-title h2{font-size:var(--fs-16);font-weight:600;letter-spacing:0;color:var(--v2-navy)}
.business-page .panel-head p,.business-page .promotion-head p{margin-top:.25rem;font-size:var(--fs-14);color:var(--ui-ink-2);line-height:1.5}
.business-page .promotion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem;padding-bottom:0;border-bottom:0}
.business-page .promotion-head strong{color:var(--v2-navy);font-weight:600}
.wdt-range-label{margin:0;color:var(--ui-ink-2);font-size:var(--fs-14)}
/* 页面自身只剩平台/店铺等筛选：一行紧凑排列，选完即生效 */
.page-filters,.business-page #afterSalesFilterForm{padding:.75rem 1rem;border:1px solid var(--v2-line);border-radius:var(--radius-lg);background:#fff}
.page-filters label,.business-page #afterSalesFilterForm label{flex:0 1 13rem;min-width:9rem}
.business-page #afterSalesFilterForm label:has(#afterSalesQuery){flex:1 1 14rem}
/* 经营首页：两列卡片按内容高度，不再把“需要处理”撑出大片空白 */
.v2-grid-2>.v2-card{align-self:start}
.v2-meter.is-over i{background:var(--v2-warn)}
.v2-muted.is-over{color:var(--v2-warn)}
@media (max-width:860px){
  .global-custom{left:1rem;right:1rem;top:100%}
  .page-filters label,.business-page #afterSalesFilterForm label{flex:1 1 100%}
}
.wdt-trend-empty{align-self:start}
.wdt-trend-empty h4{margin:0 0 .375rem}
.wdt-trend-empty p{margin:0;color:var(--ui-ink-2);font-size:var(--fs-14)}
.finance-chart-hint{margin:0;padding:.875rem 1rem;border:1px dashed #d5dee8;border-radius:var(--radius-lg);color:var(--ui-ink-2);font-size:var(--fs-14);background:#fff}
/* 手机：标题和操作同一行；时间段一行横滑；图表日期隔一个显示，避免挤在一起 */
@media (max-width:620px){
  .topbar{flex-wrap:wrap}
  .topbar-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .top-actions{gap:.25rem}
  #dataStatusBtn small{display:none}
  #dataStatusBtn{min-width:2.25rem;padding:0 .625rem;justify-content:center}
  #searchBtn,#globalSyncBtn{display:none!important}

  .metric-card-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .metric-card-mini-head strong{font-size:var(--fs-18)}
  .finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .finance-summary strong{font-size:var(--fs-18)}
}
.promotion-meta{margin-top:.75rem}
.sales-insight-grid>.wdt-trend.wdt-trend-empty{height:auto;align-self:start}
/* 中等宽度（平板/小笔记本）：时间段换到第二行，标题和操作按钮留在第一行，避免顶栏挤出横向滚动 */
@media (max-width:1180px) and (min-width:861px){
  .topbar{flex-wrap:wrap;row-gap:.5rem}
  .topbar-title{flex:1 1 auto}
  .global-range{order:5}
  .global-custom{top:100%}
}
@media (max-width:620px){
  .v2-scope-toggle{max-width:100%;padding:0 .75rem;font-size:var(--fs-14);white-space:nowrap;overflow:hidden}
  .v2-card-head.v2-wrap>.v2-push+.text-btn{margin-left:auto}
}

.kb-review-hint{margin:.25rem 0 1rem;padding:.75rem 1rem;border:1px solid rgba(217,119,6,.35);border-left:4px solid #d97706;border-radius:var(--radius);background:rgba(251,191,36,.08);font-size:var(--fs-14);line-height:1.6}
.kb-review-hint ol{margin:.35rem 0 .25rem 1.2rem;padding:0}
.kb-review-hint small{color:var(--muted,#64748b)}

.v2-note-list{margin:0;padding-left:1.1rem;display:grid;gap:.3rem}
.v2-note-list b{color:var(--v2-navy,#0f2a44);font-weight:600}
.refund-comparison{min-width:0;overflow:hidden}
.refund-comparison .table-wrap{overflow-x:auto;max-width:100%}
.refund-formula{margin:.5rem 0 0}
.refund-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem;margin:1rem 0}
.refund-tile{display:flex;flex-direction:column;gap:.2rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised,#f8fafc)}
.refund-tile span{font-size:var(--fs-xs);color:var(--text-2)}
.refund-tile strong{font-size:var(--fs-18);font-variant-numeric:tabular-nums}
.refund-tile small{font-size:var(--fs-xs);color:var(--text-2)}

.v2-tree .v2-expand{all:unset;display:flex;align-items:center;gap:.5rem;cursor:pointer;border-radius:var(--radius-sm);max-width:100%}
.v2-tree .v2-expand:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px}
.v2-tree .v2-caret{flex:none;width:.45rem;height:.45rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;color:var(--ui-ink-3);margin-right:.15rem}
.v2-tree .v2-group-row.is-open .v2-caret{transform:rotate(45deg)}
.v2-tree .v2-group-row:hover{background:#f7fafc}
.v2-tree .v2-subrow{background:#fafcfe}
.v2-tree .v2-subrow>th{padding-left:2.4rem}
.v2-tree .v2-subrow .v2-model img,.v2-tree .v2-subrow .v2-model .sku-thumb{transform:scale(.85)}

.pdd-login{display:grid;gap:.75rem}
.pdd-login-msg{margin:0;padding:.6rem .85rem;border-radius:var(--radius);background:#eef4fb;color:#1d3f63;font-weight:600}
.pdd-login-msg[data-tone="good"]{background:#e8f6ee;color:var(--green)}
.pdd-login-msg[data-tone="bad"]{background:#fdeeee;color:var(--red)}
.pdd-login-screen{position:relative;border:1px solid var(--border,#dfe6ee);border-radius:var(--radius);overflow:hidden;background:#f3f6f9;aspect-ratio:1280/800;display:flex;align-items:center;justify-content:center}
.pdd-login-screen img{width:100%;height:100%;object-fit:contain;display:block;touch-action:none;cursor:pointer;user-select:none;-webkit-user-drag:none}
.pdd-login-wait{color:var(--ui-ink-2);text-align:center;line-height:1.8;padding:1rem}
.pdd-login-ghost{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pdd-login-msg[data-tone="warn"]{background:#fff6e5;color:var(--amber)}
.pdd-login-screen.is-busy img{pointer-events:none;cursor:progress}
.pdd-login-busy{position:absolute;top:.6rem;left:.6rem;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:999px;background:rgba(19,38,61,.82);color:#fff;font-size:var(--fs-13);font-weight:600;pointer-events:none}
.pdd-login-screen:not(.is-busy) .pdd-login-busy{display:none}
.pdd-login-busy .loading-indicator{width:.8rem;height:.8rem;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:refreshSpin .8s linear infinite}
@media(prefers-reduced-motion:reduce){.pdd-login-busy .loading-indicator{animation:none}}
.pdd-login-steps{margin:0;padding-left:1.2rem;display:grid;gap:.25rem;line-height:1.6}
.pdd-login-tip{margin:0;color:var(--ui-ink-2);font-size:var(--fs-15)}
.pdd-login-entry{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--border,#dfe6ee);border-radius:var(--radius);background:#fff}
.pdd-login-entry small{display:block;color:var(--ui-ink-2);margin-top:.15rem}
.form-hint.warn{color:#9a5b00}

/* 设置：模型输入与“读取可用模型”同一行，占满整行，提示在下方 */
.settings-form .settings-model-field{grid-column:1/-1;display:grid;gap:.375rem}
.settings-form .settings-model-field>label{font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}
.settings-model-row{display:flex;gap:.625rem;align-items:stretch}
.settings-model-row>input,.settings-model-row>select{flex:1;min-width:0}
.settings-model-row>.btn{flex:none;height:2.75rem;white-space:nowrap}
.settings-field-hint{color:var(--text-3);font-size:var(--fs-14);font-weight:400}
/* 商品树表：展开按钮与图片、名称同一行 */
.v2-tree .v2-tree-cell{display:flex;align-items:center;gap:.5rem;min-width:16rem}
.v2-tree .v2-expand{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;flex:none;border-radius:var(--radius-sm)}
.v2-tree .v2-expand:hover{background:#eef3f8}
.v2-tree .v2-expand-name{all:unset;display:grid;min-width:0;cursor:pointer;font-weight:500;color:var(--ui-ink);line-height:1.4}
.v2-tree .v2-expand-name small{font-weight:400}
.v2-tree .v2-subrow>th{padding-left:3rem}
/* 首页店铺卡：店铺不多，全部展开，不再出现被截断的半行 */
.v2-shops .graph-view-bars{max-height:none;overflow:visible;padding-right:0}
/* 知识库表格：长文字换行，不撑出抽屉 */
.kb-table-wrap th,.kb-table-wrap td{white-space:normal;vertical-align:top;min-width:6rem}
.kb-table-wrap td:first-child{min-width:7rem;max-width:14rem}

/* ==========================================================================
   v3 统一规范（2026-10-12 用户确认）：一套卡片、一套表格、一套按钮、8px 间距网格
   放在文件末尾，覆盖前面新旧两套写法。
   ========================================================================== */
:root{
  --ui-line:#e3e9f0;--ui-line-strong:#cfd9e4;--ui-ink:#17283b;--ui-ink-2:#4b5c6e;--ui-ink-3:#7b8a9a;
  --ui-card-r:12px;--ui-card-pad:20px;--ui-gap:16px;--ui-shadow:0 1px 2px rgba(16,24,40,.04);
  --ui-row-h:48px;--ui-btn-h:36px;--ui-btn-h-sm:32px;
}
.content{max-width:1440px;padding:24px 24px 64px}
.v2-page,.business-page,.settings-page{gap:var(--ui-gap)}
.v2-grid-2,.v2-grid-inbox,.v2-kpis,.v2-stack{gap:var(--ui-gap)}
/* 卡片 */
.v2-card,.v2-kpi,.v2-issue,.v2-strip,.panel,.settings-card,.kb-card,.metric-card-mini,.overview-filters{
  border-radius:var(--ui-card-r);border:1px solid var(--ui-line);box-shadow:var(--ui-shadow);background:#fff}
.v2-card,.panel,.settings-card{padding:var(--ui-card-pad)}
.v2-kpi{padding:18px var(--ui-card-pad)}
.v2-card:hover,.v2-strip:hover,.v2-kpi:hover,.v2-issue:hover,.panel:hover{border-color:var(--ui-line-strong);box-shadow:0 4px 12px rgba(19,38,61,.06)}
.v2-card-head h2,.panel-head h2,.v2-strip-head h2,.v2-card h2,.settings-card h2{font-size:var(--fs-16);font-weight:600;letter-spacing:0;color:var(--ui-ink);line-height:1.4;margin:0}
.panel-head{margin-bottom:16px;align-items:center}
.panel-head p,.v2-card-head p{color:var(--ui-ink-3);font-size:var(--fs-13);margin-top:2px}
/* 表格：一套 */
.v2-table,.sku-table,.refund-comparison table,.finance-table{font-size:var(--fs-14)}
.v2-table th,.v2-table td,.sku-table th,.sku-table td,.refund-comparison th,.refund-comparison td{padding:12px 14px;height:var(--ui-row-h);vertical-align:middle;border-bottom:1px solid var(--ui-line)}
.v2-table thead th,.sku-table thead th,.refund-comparison thead th{height:40px;background:#f7f9fb;color:var(--ui-ink-3);font-size:var(--fs-13);font-weight:500;letter-spacing:0}
.v2-table td,.sku-table td{font-variant-numeric:tabular-nums}
.v2-table tbody tr:last-child>*,.sku-table tbody tr:last-child>*{border-bottom:0}
.v2-table-wrap,.sku-table-wrap{border:1px solid var(--ui-line);border-radius:var(--radius);overflow-x:auto}
/* 按钮 */
.btn{min-height:var(--ui-btn-h);padding:0 16px;border-radius:var(--radius);font-size:var(--fs-14)}
.btn.small{min-height:var(--ui-btn-h-sm);padding:0 12px;font-size:var(--fs-13)}
.btn.primary{box-shadow:none}
/* 状态标签：红要处理 / 黄要关注 / 绿正常 / 灰中性 */
.v2-chip{border-radius:var(--radius-sm);font-size:var(--fs-13);font-weight:500;padding:2px 8px}
.v2-chip.bad{background:#fdecea;color:var(--red)}
.v2-chip.warn{background:#fdf3e1;color:var(--amber)}
.v2-chip.good{background:#e8f5ee;color:#1f6b45}
/* 首页：第二、三行左右等高；需要处理卡底部固定入口 */
.v2-grid-2{align-items:stretch}
.v2-inbox-card{display:flex;flex-direction:column}
.v2-inbox-card-body{display:grid;gap:4px;flex:1;align-content:start}
.v2-card-foot{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:10px 12px;border-radius:var(--radius);background:#f5f8fb;color:var(--v2-accent);font-size:var(--fs-13);font-weight:500;cursor:pointer}
.v2-card-foot:hover{background:#eaf1f8}
.v2-card-foot:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px}
.v2-scope{align-items:center}
.v2-scope-quality{margin-left:auto;font-size:var(--fs-13)}
/* 商品：顶部数字可点筛选 */
.v2-kpis-filter .v2-kpi{all:unset;box-sizing:border-box;display:grid;gap:6px;align-content:start;padding:18px var(--ui-card-pad);border:1px solid var(--ui-line);border-radius:var(--ui-card-r);background:#fff;box-shadow:var(--ui-shadow);cursor:pointer;min-width:0;text-align:left}
.v2-kpis-filter .v2-kpi[aria-pressed="true"]{border-color:var(--v2-accent);box-shadow:0 0 0 1px var(--v2-accent) inset}
.v2-kpis-filter .v2-kpi:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px}
.v2-kpi-hint{font-size:var(--fs-13);color:var(--ui-ink-3)}
/* 待处理：店铺切换 + 一个列表 */
.v2-inbox-shops{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.v2-inbox-label{font-size:var(--fs-13);color:var(--ui-ink-3);margin-right:4px}
.v2-shop-chip{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border:1px solid var(--ui-line-strong);border-radius:12px;background:#fff;font-size:var(--fs-14);color:var(--ui-ink);cursor:pointer;white-space:nowrap}
.v2-shop-chip:hover{border-color:var(--v2-accent)}
.v2-shop-chip[aria-pressed="true"]{border-color:var(--v2-accent);background:#eaf1f8;color:var(--v2-accent);font-weight:600}
.v2-shop-chip:focus-visible,.v2-shop-link:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px}
.v2-shop-chip b{font-weight:600;color:var(--ui-ink-3)}
.v2-inbox-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.v2-inbox-list{display:grid;gap:12px}
.v2-issue{padding:16px var(--ui-card-pad) 16px 20px;gap:6px}
.v2-issue h2{font-size:var(--fs-15);font-weight:600}
.v2-issue p{color:var(--ui-ink-2)}
.v2-issue-shops{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-13);color:var(--ui-ink-3)}
.v2-shop-link{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);background:#f2f5f9;color:var(--ui-ink);font-size:var(--fs-13)}
.v2-shop-link:hover{background:#e6eef7;color:var(--v2-accent)}
.v2-shop-link b{font-weight:600}
@media(max-width:700px){.content{padding:16px 16px 88px}.v2-scope-quality{margin-left:0}.v2-kpis-filter .v2-kpi{padding:14px 16px}}
.v2-issue{border-left:4px solid #d39a2c}
.v2-issue.risk{border-left-color:var(--v2-bad)}
.v2-grid-2>*{align-self:stretch;min-height:0}
.v2-grid-2>.v2-inbox-card{height:100%}
@media(max-width:700px){.v2-scope{flex-wrap:wrap;gap:8px}.v2-scope-quality{padding:0;min-height:auto}}

/* v3 · 第 1 批补丁：知识库横向筛选、说明对齐、财务口径栏、等高卡片、经营问答侧栏 */
[data-icon="ask"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v12H9l-5 3.5V5z'/%3E%3Cpath d='M9.8 9.2a2.3 2.3 0 1 1 3.2 2.1c-.6.3-1 .8-1 1.4'/%3E%3Cpath d='M12 15.2h.01'/%3E%3C/g%3E%3C/svg%3E")}
.kb-layout{grid-template-columns:minmax(0,1fr);gap:.875rem}
.kb-filters{position:static;display:grid;gap:.625rem;padding:.875rem 1rem;border:1px solid var(--ui-line,var(--ui-line));border-radius:var(--ui-card-r,12px);background:#fff}
.kb-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.kb-filter-label{flex:0 0 4.5rem;font-size:var(--fs-13);font-weight:600;letter-spacing:.04em;color:var(--ui-ink-3)}
.kb-filters .kb-filter{flex:0 0 auto;gap:.5rem;min-height:2rem;padding:0 .875rem;border:1px solid var(--ui-line);border-radius:999px;background:#fff;font-size:var(--fs-14)}
.kb-filters .kb-filter:hover{border-color:#b9c7d6;background:#f6f8fb}
.kb-filters .kb-filter[aria-pressed="true"]{border-color:var(--v2-accent);background:#e7f0f9}
.kb-filters .kb-tags{display:flex;flex-wrap:wrap;gap:.375rem;flex:1 1 0;min-width:0}
@media(max-width:760px){.kb-filters{padding:.75rem}.kb-filter-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.kb-filter-label{flex-basis:auto}.kb-filters .kb-tags{flex-wrap:nowrap}.kb-filters h2,.kb-filters .kb-tags{display:flex}}
.promotion-relative-body{display:grid;gap:.75rem}
.promotion-relative-body>.promotion-analysis-note{margin:0;padding:0}
.promotion-analysis-overview{align-items:stretch}
.promotion-analysis-overview>span{align-content:start;min-height:5.25rem}
.promotion-analysis-overview>span small{display:block}
.finance-data-note{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.finance-data-note>div{grid-template-columns:minmax(0,1fr);gap:.375rem;padding:1rem 1.25rem}
.finance-data-note strong{grid-row:auto;margin-bottom:.25rem;font-size:var(--fs-14);font-weight:600;color:var(--ui-ink)}
.finance-data-note span{position:relative;padding-left:.875rem}
.finance-data-note span::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;border-radius:50%;background:#9aabbd}
@media(max-width:860px){.finance-data-note{grid-template-columns:minmax(0,1fr)}}
.business-page-heading.has-actions{align-items:center;padding:.875rem 1rem;border:1px solid var(--ui-line,var(--ui-line));border-radius:var(--ui-card-r,12px);background:#fff}
.business-page-heading.has-actions>div:first-child{display:block}
/* 状态筛选统一为胶囊标签：选中态与未选中态同尺寸，切换时不跳位 */
.after-sales-detail .panel-head{margin-bottom:.75rem}
.after-sales-detail>.after-sales-tabs{display:flex;flex-wrap:wrap;margin:0 0 .875rem;overflow:visible}
.after-sales-detail>.after-sales-tabs button{min-height:2rem;font-size:var(--fs-14);font-weight:500}
.after-sales-detail>.after-sales-tabs button b{color:var(--ui-ink-3);font-weight:600}
.after-sales-detail>.after-sales-tabs button[aria-pressed="true"] b{color:#fff}
.after-sales-detail-body.is-loading{opacity:.55;pointer-events:none;transition:opacity .15s}
.overview-tabs{gap:.375rem}
.overview-tabs button{min-height:2rem;padding:0 .875rem;border:1px solid var(--ui-line);border-radius:999px;background:#fff;color:var(--ui-ink);font-size:var(--fs-14)}
.overview-tabs button:hover{border-color:#b9c7d6;background:#f6f8fb}
.overview-tabs button[aria-pressed="true"]{background:var(--v2-navy);border-color:var(--v2-navy);color:#fff;box-shadow:none}
@media(max-width:760px){.after-sales-detail>.after-sales-tabs{flex-wrap:nowrap;overflow-x:auto}}
.promotion-analysis-foot{margin-top:1rem}
.promotion-relative-body>.promotion-analysis-foot{margin-top:.25rem}
.pdd-login-entry+.drawer-note{margin:.75rem 0}
.promotion-products-entry{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0}
.promotion-products-entry p{margin:0;color:var(--ui-ink-2);font-size:var(--fs-14)}
.promotion-analysis-foot details>summary{display:inline-flex;align-items:center;gap:.25rem;list-style:none;color:var(--v2-accent);font-size:var(--fs-14);font-weight:500}
.promotion-analysis-foot details>summary::-webkit-details-marker{display:none}
.promotion-analysis-foot details>summary::before{content:'';width:.4rem;height:.4rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;margin-right:.125rem}
.promotion-analysis-foot details[open]>summary::before{transform:rotate(45deg)}
/* 商品型号/规格表：固定列宽，展开前后列位置不变 */
.v2-tree{table-layout:fixed;min-width:56rem}
.v2-tree th[scope="row"]{min-width:0;overflow:hidden}
.v2-tree .v2-tree-cell{min-width:0}
.v2-tree .v2-model{min-width:0;flex:1 1 auto}
.v2-tree .v2-expand-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
.v2-tree .v2-expand-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-tree .v2-expand-name.is-static{display:grid;cursor:default;font-weight:500;color:var(--ui-ink);line-height:1.4}
.v2-tree .v2-expand-spacer{flex:none;width:1.75rem;height:1.75rem}
.v2-tree .v2-subrow>th{padding-left:14px}
.v2-tree .v2-subrow .v2-tree-cell{padding-left:1.75rem}
.v2-tree .v2-subrow .v2-expand-name.is-static{font-weight:400;font-family:var(--font-num)}
.v2-tree .v2-act{text-align:right}
.v2-tree .v2-act .text-btn{white-space:nowrap}
.v2-tree .v2-expand-action{color:var(--v2-accent)}
.team-heading.has-actions{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:0;padding:.875rem 1rem;border:1px solid var(--ui-line,var(--ui-line));border-radius:var(--ui-card-r,12px);background:#fff}
.team-heading.has-actions>.btn{min-height:2.25rem}
@media(max-width:700px){.team-heading.has-actions{flex-direction:column;align-items:stretch}}
/* 首页核心指标卡：收紧尺寸，退款拆分两行对齐 */
.v2-kpi{padding:14px 16px;gap:.25rem}
.v2-kpis:not(.v2-kpis-compact) .v2-kpi>strong{font-size:var(--fs-28)}
@media(max-width:1280px){.v2-kpis:not(.v2-kpis-compact) .v2-kpi>strong{font-size:var(--fs-24)}}
.v2-kpi-split{display:grid;gap:2px;margin:.375rem 0 0;padding-top:.375rem;border-top:1px dashed var(--ui-line);font-size:var(--fs-13);line-height:1.5;color:var(--ui-ink-2)}
.v2-kpi-split>div{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;min-width:0}
.v2-kpi-split dt{flex:none;color:var(--ui-ink-3)}
.v2-kpi-split dd{margin:0;color:var(--ui-ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.v2-kpi-split dd span{margin-left:.375rem;color:var(--ui-ink-3)}
/* 经营问答：当前回答在上，之前的提问收在下面 */
.assistant-history{gap:.375rem;margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--ui-line)}
.assistant-history-title{display:flex;align-items:baseline;gap:.5rem;margin:0 0 .25rem;font-size:var(--fs-14);font-weight:600;color:var(--ui-ink)}
.assistant-history-title span{color:var(--ui-ink-3);font-weight:500}
.assistant-history-title small{margin-left:auto;font-weight:400;color:var(--ui-ink-3);font-size:var(--fs-13)}
.assistant-turn>summary{padding:.625rem .875rem;font-size:var(--fs-15);list-style:none}
.assistant-turn>summary::-webkit-details-marker{display:none}
.nl-explanation>.sku-toolbar,#nlQueryBody>.sku-toolbar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:.5rem .875rem;margin-top:.75rem}
.nl-explanation>.sku-toolbar .per-source-note,#nlQueryBody>.sku-toolbar .per-source-note{flex:1 1 20rem;margin:0;text-align:left;color:var(--ui-ink-3);font-size:var(--fs-13)}
/* 推广商品：拼多多主图缩略图 */
.promotion-product-cell{display:flex;align-items:flex-start;gap:.625rem;min-width:15rem;max-width:22rem;text-align:left;white-space:normal}
.promotion-product-cell>div{display:grid;gap:.125rem;min-width:0}
.promotion-product-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45;color:var(--ui-ink)}
.promotion-product-cell small{color:var(--ui-ink-3);font-size:var(--fs-13)}
.promotion-candidate-title{display:flex;align-items:center;gap:.625rem;min-width:0}
.promotion-candidate-title h3{margin:0;min-width:0}
/* 团队事项筛选：去掉上方小字标签（下拉首项已写明“全部分类 / 全部优先级”），与搜索框同高对齐 */
.team-toolbar-secondary{align-items:center}
.team-view-tools{align-items:center;gap:.5rem}
.team-view-tools label{position:relative;display:block;font-size:0;line-height:0;gap:0}
.team-view-tools select{height:2.5rem;min-width:9rem;padding:0 2rem 0 .75rem;border-radius:var(--radius);font-size:var(--fs-15);line-height:normal}
.team-search input,.team-search .btn{height:2.5rem}
/* 范围条：显示 0 销量开关 */
.v2-zero-toggle{display:inline-flex;align-items:center;gap:.375rem;margin-left:auto;font-size:var(--fs-14);color:var(--ui-ink-2);cursor:pointer;user-select:none}
.v2-zero-toggle input{width:1rem;height:1rem;accent-color:var(--v2-accent);margin:0}
.v2-zero-toggle+.v2-scope-quality{margin-left:.75rem}
.v2-inbox-shops{gap:.5rem}
/* 知识库：整页详情 */
.kb-page-detail{display:grid;gap:1rem;max-width:1280px}
.kb-detail-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--ui-line,var(--ui-line));border-radius:var(--radius-lg);background:rgba(255,255,255,.96);backdrop-filter:blur(6px)}
.kb-detail-bar [data-kb-back] [data-icon]{transform:rotate(180deg)}
.kb-detail-title{flex:1 1 auto;min-width:0;margin:0;font-size:var(--fs-18);font-weight:600;color:var(--v2-navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-detail-tools{display:flex;gap:.5rem;flex:none}
.btn.danger{border:1px solid #f1c4c0;background:#fff;color:var(--red)}
.btn.danger:hover{background:#fef3f2;border-color:#e59a93}
.kb-detail-page{padding:1.25rem 1.5rem;border:1px solid var(--ui-line,var(--ui-line));border-radius:var(--radius-lg);background:#fff}
.kb-detail-page .kb-detail-body{font-size:var(--fs-15)}
/* 表格：不再一字一行；横向可滚动，首列固定 */
.kb-table-wrap{max-width:100%;overflow-x:auto;margin:.75rem 0;border:1px solid var(--ui-line);border-radius:var(--radius)}
.kb-table-wrap table{width:max-content;min-width:100%;border-collapse:collapse;font-size:var(--fs-14);line-height:1.6}
.kb-table-wrap th,.kb-table-wrap td{min-width:6.5rem;max-width:26rem;padding:.5rem .75rem;border-bottom:1px solid var(--ui-line);border-right:1px solid #f1f4f8;text-align:left;vertical-align:top;white-space:normal;overflow-wrap:normal;word-break:normal}
.kb-table-wrap th{background:#f7f9fb;color:var(--ui-ink);font-weight:600;position:sticky;top:0}
.kb-table-wrap td:first-child,.kb-table-wrap th:first-child{position:sticky;left:0;background:#fbfcfd;z-index:1;min-width:8rem;font-weight:500}
.kb-table-wrap th:first-child{background:#f1f4f8;z-index:2}
.kb-table-wrap tr:hover td{background:#fafcff}
@media(max-width:700px){.kb-detail-bar{flex-wrap:wrap}.kb-detail-title{order:3;flex-basis:100%;white-space:normal}.kb-detail-page{padding:1rem}}

/* 拼多多扫码登录：选店列表 */
.pdd-login-shops{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pdd-login-shop{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.65rem .85rem;border:1px solid var(--line,var(--ui-line));border-radius:8px;background:#fff}
.pdd-login-shop-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdd-login-shop-state{font-size:var(--fs-14);padding:.15rem .55rem;border-radius:999px;white-space:nowrap;background:#f1f4f8;color:var(--ui-ink-2)}
.pdd-login-shop-state[data-tone="good"]{background:#e8f6ee;color:var(--green)}
.pdd-login-shop .btn{white-space:nowrap}
@media (max-width:560px){.pdd-login-shop{grid-template-columns:minmax(0,1fr) auto}.pdd-login-shop .btn{grid-column:1/-1}}

/* ===== 字体系统统一（v2-141）：字号只用 --fs-12…--fs-32 阶梯；字重只用 400/500/600/700 ===== */
/* 元素默认：没有专属样式的标题不再落到浏览器默认（17.55px 粗体等） */
h1{font-size:var(--fs-24);font-weight:700}
h2{font-size:var(--fs-16);font-weight:600}
h3{font-size:var(--fs-15);font-weight:600}
h4{font-size:var(--fs-15);font-weight:600}
strong,b{font-weight:700}
small{font-size:var(--fs-13)} /* 浏览器默认 smaller 会算出 12.5/11.67px */
/* 指标数字三档：首页主指标 28；卡片指标 24；卡内小计 20（不再随窗口宽度连续缩放出 23.76/24.48 等零碎字号） */
.metric-card-mini-head strong,.finance-summary strong,.logistics-stat strong{font-size:var(--fs-24)}
.refund-tile strong,.wdt-trend-head strong{font-size:var(--fs-20)}
@media(max-width:620px){.metric-card-mini-head strong,.finance-summary strong,.logistics-stat strong{font-size:var(--fs-20)}}
/* 卡片标题与角标 */
.connector-card h3{font-size:var(--fs-16);font-weight:600}
.promotion-candidate-title h3{font-weight:600}
.v2-chip,.v2-kpi-hint{font-size:var(--fs-13)}
.v2-shop-chip{font-size:var(--fs-14)}
.v2-shop-chip b{font-size:var(--fs-13)}
/* 知识库标签：窄屏不再一个字一行 */
.kb-tag-btn{white-space:nowrap;flex-shrink:0}
/* 口径说明在横排容器里展开时占满一行，避免正文被挤成几十像素宽 */
.v2-note[open]{flex:1 1 100%}
.v2-note-body{min-width:min(100%,18rem)}
/* 团队筛选：标签文字改为读屏可见（不再用 font-size:0 隐藏） */
.team-view-tools label{font-size:inherit;line-height:normal}

/* 小指标卡与其他页一致：名称在上、数字在下、补充说明最后 */
.promotion-analysis-overview>span strong{order:0}
.promotion-analysis-overview>span .ov-label{font-weight:500;color:var(--ui-ink-2);font-size:var(--fs-14)}

/* 执行者：侧栏不显示财务 */
body[data-finance="0"] .nav-item[data-view="financeAnalysis"]{display:none!important}

/* ===== 首次登录（执行者）===== */
.onboard-gate{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:16px;background:rgba(15,32,52,.55);backdrop-filter:blur(2px)}
.onboard-card{width:min(100%,30rem);padding:1.75rem 1.75rem 1.25rem;border-radius:12px;background:#fff;box-shadow:0 20px 60px rgba(15,32,52,.25)}
.onboard-step{margin:0 0 .25rem;color:var(--ui-ink-2);font-size:var(--fs-13)}
.onboard-card h2{margin:0 0 .75rem;font-size:var(--fs-20);font-weight:600;color:var(--v2-navy,#0f2a44)}
.onboard-desc{margin:.75rem 0;color:var(--ui-ink-2);font-size:var(--fs-14);line-height:1.6}
.onboard-form{display:grid;gap:.5rem}
.onboard-form input{height:2.75rem;padding:0 .875rem;border:1px solid var(--ui-line);border-radius:var(--radius);font:inherit;font-size:var(--fs-16)}
.onboard-form .btn{margin-top:.5rem;justify-self:start}
.onboard-list{margin:0;padding-left:1.25rem;display:grid;gap:.625rem;color:var(--ui-ink);font-size:var(--fs-15);line-height:1.6}
.onboard-code{display:inline-block;margin-left:.25rem;padding:.125rem .625rem;border-radius:var(--radius-sm);background:#eef3f9;color:var(--v2-navy,#0f2a44);font-family:var(--font-num);font-size:var(--fs-18);font-weight:700;letter-spacing:.06em;user-select:all}
.onboard-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem}
.onboard-error{min-height:1.25rem;margin:.75rem 0 0;color:var(--red);font-size:var(--fs-14)}

/* ===== 设置 · 成员 ===== */
.member-table-wrap{overflow-x:auto;border:1px solid var(--ui-line);border-radius:var(--radius)}
.member-table{width:100%;min-width:46rem;border-collapse:collapse;font-size:var(--fs-14)}
.member-table th{padding:.625rem .875rem;background:#f6f8fb;color:var(--ui-ink-2);font-weight:500;text-align:left;white-space:nowrap}
.member-table td{padding:.75rem .875rem;border-top:1px solid #eef1f5;vertical-align:middle}
.member-table td small{display:block;margin-top:.125rem;color:var(--ui-ink-3);font-size:var(--fs-13)}
.member-table .num{text-align:right}
.member-remark{width:100%;max-width:12rem;height:2.25rem;padding:0 .625rem;border:1px solid var(--ui-line);border-radius:var(--radius-sm);font:inherit}
.member-actions{white-space:nowrap}.member-actions>*+*{margin-left:.5rem}
.member-role{display:inline-block;padding:.125rem .5rem;border-radius:999px;background:#f1f4f8;color:var(--ui-ink-2);font-size:var(--fs-13)}
.member-role[data-tone="good"]{background:#e8f6ee;color:var(--green)}
.member-ok{color:var(--green);font-weight:500}.member-wait{color:var(--amber);font-size:var(--fs-13)}
.member-status{min-height:1.25rem;margin:.5rem 0 0;color:var(--ui-ink);font-size:var(--fs-14)}
.text-btn.danger{color:var(--red)}

/* ===== 团队事项 · 每日必做 ===== */
.team-mode{margin:0 0 1rem}
.team-daily-panel{padding:1rem 1.125rem}
.daily-datebar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem}
.daily-datebar label{display:inline-flex;align-items:center;gap:.5rem;color:var(--ui-ink-2);font-size:var(--fs-14)}
.daily-datebar input{height:2.25rem;padding:0 .5rem;border:1px solid var(--ui-line);border-radius:var(--radius-sm);font:inherit}
.daily-hint{color:var(--ui-ink-3);font-size:var(--fs-13)}
.daily-chip{flex-shrink:0;display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:var(--fs-13);font-weight:500;background:#f1f4f8;color:var(--ui-ink-3);white-space:nowrap}
.daily-chip[data-status="done"]{background:#e8f6ee;color:var(--green)}
.daily-chip[data-status="partial"]{background:#fff4e0;color:var(--amber)}
.daily-chip[data-status="undone"]{background:#fdecec;color:var(--red)}
.daily-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:.875rem}
.daily-person{border:1px solid var(--ui-line);border-radius:var(--radius);padding:.875rem 1rem;background:#fff}
.daily-person header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}
.daily-person header strong{font-size:var(--fs-16)}
.daily-progress{font-size:var(--fs-13);color:var(--ui-ink-3)}.daily-progress[data-tone="good"]{color:var(--green)}.daily-progress[data-tone="warn"]{color:var(--amber)}
.daily-person ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.daily-person li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem;align-items:start;padding-top:.5rem;border-top:1px solid #f0f2f5;font-size:var(--fs-14)}
.daily-person li p{margin:.125rem 0 0;color:var(--ui-ink-2)}
.daily-person li details summary{cursor:pointer;color:var(--v2-accent,#2469a6);font-size:var(--fs-13)}
.daily-person time{color:var(--ui-ink-3);font-size:var(--fs-13);white-space:nowrap}
.daily-empty{margin:0;color:var(--ui-ink-3);font-size:var(--fs-14)}
.daily-list{display:grid;gap:.875rem}
.daily-item{display:grid;gap:.75rem;padding:1rem 1.125rem;border:1px solid var(--ui-line);border-radius:var(--radius);background:#fff}
.daily-item header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.daily-item header strong{font-size:var(--fs-16)}
.daily-item header p{margin:.25rem 0 0;color:var(--ui-ink-2);font-size:var(--fs-14)}
.daily-status{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;border:0}
.daily-status label{position:relative}
.daily-status input{position:absolute;opacity:0;pointer-events:none}
.daily-status span{display:inline-flex;align-items:center;height:2.25rem;padding:0 1rem;border:1px solid var(--ui-line);border-radius:999px;cursor:pointer;font-size:var(--fs-14);background:#fff}
.daily-status input:checked+span{border-color:var(--v2-navy,#0f2a44);background:var(--v2-navy,#0f2a44);color:#fff}
.daily-status input:focus-visible+span{outline:2px solid var(--v2-accent,#2469a6);outline-offset:2px}
.daily-field{display:grid;gap:.375rem;color:var(--ui-ink-2);font-size:var(--fs-13)}
.daily-field input,.daily-field textarea{padding:.5rem .75rem;border:1px solid var(--ui-line);border-radius:var(--radius);font:inherit;font-size:var(--fs-15);color:var(--ui-ink);resize:vertical}
.daily-field input{height:2.5rem}
.daily-item footer{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.daily-item footer small{color:var(--ui-ink-3);font-size:var(--fs-13)}
.daily-msg{color:var(--red);font-size:var(--fs-14)}
.daily-manage h3{margin:1.25rem 0 .5rem;font-size:var(--fs-15)}
.daily-manage-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.daily-manage-list li{display:flex;justify-content:space-between;gap:1rem;padding:.625rem .75rem;border:1px solid #eef1f5;border-radius:var(--radius)}
.daily-manage-list li[data-tone="off"]{opacity:.6}
.daily-manage-list small{display:block;color:var(--ui-ink-3);font-size:var(--fs-13)}.daily-manage-list p{margin:.25rem 0 0;color:var(--ui-ink-2);font-size:var(--fs-14)}
@media(max-width:620px){.daily-board{grid-template-columns:1fr}.daily-person li{grid-template-columns:auto minmax(0,1fr)}.daily-person time{grid-column:2}}

.daily-form{display:grid;gap:.75rem}
.daily-form label{display:grid;gap:.375rem;color:var(--ui-ink-2);font-size:var(--fs-13)}
.daily-form input,.daily-form textarea{padding:.5rem .75rem;border:1px solid var(--ui-line);border-radius:var(--radius);font:inherit;font-size:var(--fs-15);color:var(--ui-ink)}
.daily-form input{height:2.5rem}
.daily-form .btn{justify-self:start}
.member-table{min-width:52rem}
.member-table th,.member-table td{white-space:nowrap}
.member-remark{width:10rem}
.daily-person header>*{margin:0;padding:0;border:0;background:none;box-shadow:none}
.daily-person header .member-wait{margin-left:auto}

.daily-form input:is([type=checkbox],[type=radio]){height:auto;width:auto;padding:0}
.member-table{min-width:0}
.member-table td{white-space:normal}
.member-role,.member-ok,.member-wait{white-space:nowrap}
.member-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.25rem .625rem}
.member-actions>*+*{margin-left:0}
.member-remark{width:9rem}

/* 待处理：可稍后看（不计入待处理数） */
.v2-inbox-later{margin-top:1rem}
.v2-inbox-later>summary{display:flex;align-items:baseline;gap:.5rem;cursor:pointer;padding:.5rem 0;color:var(--ui-ink);font-weight:600;font-size:var(--fs-15)}
.v2-inbox-later>summary small{color:var(--ui-ink-3);font-weight:400;font-size:var(--fs-13)}
.v2-issue.info{opacity:.92}
.v2-issue.info{border-left-color:#c5cfdb}
/* 财务「平台费用」卡片（v2-145）：与核心数据卡片同样式，单独类名避免选择器歧义 */
.finance-fees{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.finance-fees article{display:grid;align-content:start;gap:.5rem;min-width:0;padding:1rem 1.125rem;border-right:1px solid var(--border)}
.finance-fees article:nth-child(4n){border-right:0}
.finance-fees span{color:var(--text-2);font-size:var(--fs-xs);font-weight:500}
.finance-fees strong{overflow-wrap:anywhere;color:var(--text);font-family:var(--font-num);font-size:1.5rem;line-height:var(--lh-data);font-weight:700;font-variant-numeric:tabular-nums}
.finance-fees small{color:var(--text-3);font-size:var(--fs-xs);line-height:var(--lh-body)}
.finance-fees strong{font-size:var(--fs-24)}
@media(max-width:620px){.finance-fees{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-fees article:nth-child(2n){border-right:0}.finance-fees article:nth-child(-n+2){border-bottom:1px solid var(--border)}.finance-fees strong{font-size:var(--fs-20)}}
/* 口径说明展开框（v2-145 重做）：展开后占满所在容器宽度，左侧色条标示，段落间距清楚，避免一两个字单独折行 */
.v2-note[open]{width:100%}
.v2-note-body{max-width:none;width:100%;box-sizing:border-box;margin-top:.5rem;padding:.75rem 1rem .8rem;border:1px solid var(--ui-line);border-left:3px solid var(--v2-accent);border-radius:var(--radius);background:#f7f9fc;color:#4a5b6d;line-height:1.7;text-wrap:pretty}
.v2-note-body p{max-width:none}
.v2-note-body p+p{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--ui-line)}
.v2-note-body b,.v2-note-body strong{color:var(--v2-navy,#0f2a44);font-weight:600}
@media(max-width:620px){.v2-note-body{padding:.65rem .8rem;font-size:var(--fs-13)}}

/* 首页走势（v2-145）：区间切换 1/7/30/90 天；分时图前一天对比虚线 */
.v2-trend .overview-line-compare{stroke:#9fb3c8;stroke-width:1.6;stroke-dasharray:5 4}
.overview-compare-note{display:block;margin-top:.15rem;font-style:normal;color:var(--text-3,#7a8a9b);font-size:var(--fs-12)}

/* 知识库详情（v2-145）：宽表格只在表格内左右滑动，不撑破整页；表名、整行长文字、数字对齐 */
.kb-page-detail{grid-template-columns:minmax(0,1fr)}
.kb-page-detail>*{min-width:0}
.kb-detail-title{min-width:0;overflow-wrap:anywhere}
.kb-detail-bar{flex-wrap:wrap}
.kb-table-caption{position:sticky;left:0;padding:.55rem .75rem;border-bottom:1px solid var(--ui-line);background:#f1f4f8;color:var(--v2-navy,#0f2a44);font-weight:600;font-size:var(--fs-14)}
.kb-table-wrap table{font-size:var(--fs-13)}
.kb-table-wrap td.num,.kb-table-wrap th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:4.5rem}
.kb-table-wrap td.kb-td-wide{max-width:none;min-width:24rem;background:#fbfdff;color:var(--ui-ink);line-height:1.75}
.kb-table-wrap td:first-child{white-space:nowrap}
@media(max-width:620px){.kb-table-wrap td.kb-td-wide{min-width:16rem}.kb-table-wrap td:first-child,.kb-table-wrap th:first-child{min-width:6rem}}
.kb-table-wrap td.kb-td-wide{white-space:normal}
.kb-detail-page,.kb-detail{grid-template-columns:minmax(0,1fr)}
.kb-detail-page>*,.kb-detail>*{min-width:0}
.kb-wide-text{max-width:52rem;white-space:normal}

/* 推广页型号广告费率表（v2-146） */
.ad-fee-table td,.ad-fee-table th{vertical-align:top}
.ad-fee-goods{margin-top:.25rem;font-size:var(--fs-13);color:var(--text-2,#566779)}
.ad-fee-goods>summary{cursor:pointer;color:var(--v2-accent)}
.ad-fee-goods p{margin:.35rem 0 0;line-height:1.7}

/* 商品页型号利润（v2-147） */
.model-profit .v2-card-head h2{margin-right:.5rem}
.model-profit-sum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:.5rem 0 .9rem;border:1px solid var(--line,#e5e9ef);border-radius:12px;background:var(--surface-2,#f8fafc);color:var(--text-2,#566779);font-size:var(--fs-13)}
.model-profit-sum>span{display:flex;flex-direction:column;gap:4px;padding:10px 14px;min-width:0}
.model-profit-sum>span+span{border-left:1px solid var(--line,#e5e9ef)}
.model-profit-sum em,.model-profit-sum .v2-metric-label{font-style:normal;font-size:var(--fs-12);color:var(--text-2,#566779);font-weight:500;white-space:nowrap}
.model-profit-sum b{margin-left:0;color:var(--text,#16273a);font-size:var(--fs-16);font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}
@media(max-width:640px){.model-profit-sum{grid-template-columns:repeat(2,minmax(0,1fr))}.model-profit-sum>span+span{border-left:0}.model-profit-sum>span:nth-child(n+3){border-top:1px solid var(--line,#e5e9ef)}.model-profit-sum>span:nth-child(even){border-left:1px solid var(--line,#e5e9ef)}.model-profit-sum>span:last-child{grid-column:1/-1;border-left:0}}
.model-profit-sum b.v2-bad{color:var(--red)}
.model-profit-table th[scope="row"]{min-width:12rem;max-width:18rem;white-space:normal;font-weight:500}
.model-profit-table td{white-space:nowrap}
.model-profit-special th,.model-profit-special td{color:var(--text-3,#7a8a9b);background:#fafbfc}
.model-profit-more{margin-top:.5rem}

/* 待处理一键交办 */
.v2-issue-assigned{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:6px 10px;border-radius:var(--radius);background:#eef5ee;font-size:var(--fs-13)!important;color:#28553a!important}
.v2-issue-assigned .text-btn{font-size:var(--fs-13)}
.v2-assign{display:grid;gap:10px;margin-top:6px;padding:12px;border:1px solid var(--ui-line-strong);border-radius:var(--radius);background:#f7f9fc}
.v2-assign-row{display:grid;grid-template-columns:3em minmax(0,1fr);gap:8px;align-items:start}
.v2-assign-label{padding-top:6px;font-size:var(--fs-13);color:var(--ui-ink-3)}
.v2-assign-chips{display:flex;flex-wrap:wrap;gap:6px}
.v2-assign-detail textarea{width:100%;min-height:4.5em;padding:6px 8px;border:1px solid var(--ui-line-strong);border-radius:var(--radius);font:inherit;font-size:var(--fs-13);resize:vertical;box-sizing:border-box}
.v2-assign-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.v2-assign .team-error:empty{display:none}
@media (max-width:600px){.v2-assign-row{grid-template-columns:1fr}.v2-assign-label{padding-top:0}}

/* 售后页 · 退款原因 */
.refund-why-sum{margin:0 0 10px;font-size:var(--fs-14);color:var(--ui-ink-2);line-height:1.6}
.refund-why-bar{display:flex;height:12px;border-radius:var(--radius-sm);overflow:hidden;background:#eef1f5}
.refund-why-bar i{display:block;height:100%;min-width:2px}
.refund-why-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 14px;padding:0;list-style:none;font-size:var(--fs-13);color:var(--ui-ink-2)}
.refund-why-legend small{color:var(--ui-ink-3)}
.refund-why .dot{display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:50%;vertical-align:1px}
.refund-why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;align-items:start}
.refund-why-grid h3{margin:0 0 8px;font-size:var(--fs-14);color:var(--ui-ink)}
.refund-why-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.refund-why-list li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:start}
.refund-why-rank{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef1f5;font-size:var(--fs-12);font-weight:600;color:var(--ui-ink-2)}
.refund-why-reason{display:grid;gap:3px;min-width:0}
.refund-why-reason strong{font-size:var(--fs-14);color:var(--ui-ink)}
.refund-why-reason small{font-size:var(--fs-12);color:var(--ui-ink-3)}
.refund-why-meter{display:block;height:4px;border-radius:4px;background:#eef1f5;overflow:hidden}
.refund-why-meter i{display:block;height:100%;background:var(--v2-accent,#2f6fa8)}
.refund-why-list b{font-size:var(--fs-14);text-align:right;white-space:nowrap}
.refund-why-list b small{font-weight:400;color:var(--ui-ink-3)}
.refund-why-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.refund-why-table th,.refund-why-table td{padding:7px 8px;border-bottom:1px solid var(--ui-line,var(--ui-line));text-align:left;vertical-align:top}
.refund-why-table thead th{font-weight:500;color:var(--ui-ink-3);white-space:nowrap}
.refund-why-table tbody th{font-weight:500;color:var(--ui-ink);min-width:9em}
.refund-why-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.refund-why-table td small{color:var(--ui-ink-3)}
.refund-why-table td.warn{color:var(--v2-bad,#c8553d);font-weight:600}
.refund-why-top{display:flex;flex-wrap:wrap;gap:4px}
.refund-why-top span{padding:1px 6px;border-radius:var(--radius-xs);background:#f2f4f7;color:var(--ui-ink-2);white-space:nowrap}
@media (max-width:900px){.refund-why-grid{grid-template-columns:minmax(0,1fr)}}

/* 财务 · 月度损益 */
.finance-monthly{margin-top:16px}
.finance-monthly-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.finance-monthly-table th,.finance-monthly-table td{padding:8px 10px;border-bottom:1px solid var(--ui-line,var(--ui-line));white-space:nowrap}
.finance-monthly-table thead th{font-weight:500;color:var(--ui-ink-3);text-align:left;vertical-align:bottom}
.finance-monthly-table thead th small{display:block;font-weight:400;font-size:var(--fs-12)}
.finance-monthly-table tbody th{text-align:left;font-weight:600;color:var(--ui-ink)}
.finance-monthly-table tbody th small,.finance-monthly-table td small{display:block;font-weight:400;font-size:var(--fs-12);color:var(--ui-ink-3)}
.finance-monthly-table .num{text-align:right;font-variant-numeric:tabular-nums}
.finance-monthly-table .neg,.finance-monthly-table .neg b{color:var(--v2-bad,#c8553d)}
.finance-monthly-table tbody tr:hover{background:#f7f9fc}

/* 首页 · 本月目标 */
.v2-goal{display:grid;gap:10px;padding:14px var(--ui-card-pad,18px)}
.v2-goal-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.v2-goal-head h2{margin:0;font-size:var(--fs-15);color:var(--v2-navy,#14304f)}
.v2-goal-head small{color:var(--ui-ink-3)}
.v2-goal-head .text-btn{margin-left:auto}
.v2-goal-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 28px}
.v2-goal-metric{display:grid;gap:6px}
.v2-goal-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:var(--fs-13)}
.v2-goal-top>span:first-child{color:var(--ui-ink-2)}
.v2-goal-top b{font-size:var(--fs-18);color:var(--ui-ink)}
.v2-goal-top small{color:var(--ui-ink-3)}
.v2-goal-top .v2-push{margin-left:auto}
.v2-goal-bar{position:relative;height:10px;border-radius:4px;background:#eef1f5}
.v2-goal-bar i{display:block;height:100%;border-radius:4px;background:var(--v2-accent,#2f6fa8)}
.v2-goal-bar em{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:#14304f;border-radius:4px}
.v2-goal-metric p{margin:0;font-size:var(--fs-13);color:var(--ui-ink-2)}
.v2-goal-empty{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;color:var(--ui-ink-2);font-size:var(--fs-14)}
.v2-goal-empty .btn{margin-left:auto}
.v2-goal-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.v2-goal-form label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-13);color:var(--ui-ink-2)}
.v2-goal-form input{width:7em;height:32px;padding:0 8px;border:1px solid var(--ui-line-strong);border-radius:var(--radius);font:inherit}
.v2-goal-form .team-error:empty{display:none}
.v2-goal>.v2-muted{margin:0;font-size:var(--fs-13)}

/* 低价订单核对 */
.low-price-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.low-price-table th,.low-price-table td{padding:7px 8px;border-bottom:1px solid var(--ui-line,var(--ui-line));text-align:left;vertical-align:top}
.low-price-table thead th{font-weight:500;color:var(--ui-ink-3);white-space:nowrap}
.low-price-table td small{display:block;color:var(--ui-ink-3);font-size:var(--fs-12)}
.low-price-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.low-price-table .low-price-remark{color:#7a5a12}

/* ===== v2-148 页面调优：顶部范围统一、首页需要处理两行、财务公式条、新表格并入统一样式 ===== */
@media(min-width:1181px){.topbar-title{flex-shrink:0}}
/* 首页需要处理：每条两行（标题 + 涉及店铺/影响/交办状态） */
.v2-todo-2l{align-items:flex-start;padding-block:.5rem}
.v2-todo-2l .v2-dot{margin-top:.5rem}
.v2-todo-text{display:grid;gap:2px;min-width:0;flex:1}
.v2-todo-text small{font-size:var(--fs-13);color:var(--ui-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-todo-2l b{margin-top:1px}
.v2-trend-metrics{margin:-4px 0 4px}
/* 明细页顶部范围条 */
.page-scope{margin-bottom:0}
.sales-kpi-loading{margin:0;padding:12px 0}
.sales-sku-card .sku-panel-head{margin-top:0}
/* 售后：明细状态 4 个 + 其他状态；搜索放明细卡右侧 */
.after-sales-detail-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:12px}
.after-sales-detail-tools .after-sales-tabs{flex-wrap:wrap}
.after-sales-more select{height:32px;padding:0 28px 0 12px;border:1px solid var(--ui-line-strong);border-radius:12px;background:#fff;font:inherit;font-size:var(--fs-14);color:var(--ui-ink-2)}
.after-sales-more.is-active select{border-color:var(--v2-accent);background:#eaf1f8;color:var(--v2-accent);font-weight:600}
.after-sales-search{display:flex;gap:8px;align-items:center}
.after-sales-search input{height:32px;width:16em;max-width:100%;padding:0 10px;border:1px solid var(--ui-line-strong);border-radius:var(--radius);font:inherit;font-size:var(--fs-14);box-sizing:border-box}
.refund-quality{margin-top:8px}
.refund-comparison .table-wrap{overflow-x:auto;max-width:100%}
@media(max-width:700px){
  .after-sales-search{width:100%}.after-sales-search input{flex:1;width:auto}
  .refund-comparison table td:first-child,.refund-comparison table th:first-child{min-width:9em;white-space:normal}
}
/* 财务：毛利公式条 */
.finance-bridge-card .panel-head{margin-bottom:12px}
.finance-bridge{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;padding:0;border:0;background:none;box-shadow:none}
.finance-bridge+.finance-bridge{margin-top:12px;padding-top:12px;border-top:1px dashed var(--ui-line)}
.fb-item{flex:1 1 120px;display:grid;align-content:start;gap:4px;min-width:0;padding:12px 14px;border:1px solid var(--ui-line);border-radius:var(--radius);background:#fafbfd}
.fb-item span{font-size:var(--fs-13);color:var(--ui-ink-3)}
.fb-item strong{font-size:var(--fs-20);font-weight:600;color:var(--ui-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.fb-item small{font-size:var(--fs-13);color:var(--ui-ink-3);line-height:1.45}
.fb-result{background:#eef4fa;border-color:#c9daea}
.fb-result strong{color:var(--v2-accent)}
.fb-result.is-neg{background:#fdf1ef;border-color:#f1c9c2}.fb-result.is-neg strong{color:var(--v2-bad)}
.fb-op{flex:0 0 auto;align-self:center;font-style:normal;font-size:var(--fs-20);color:var(--ui-ink-3);width:14px;text-align:center}
@media(max-width:900px){.fb-item{flex-basis:calc(50% - 22px)}.fb-op{display:none}}
/* 新加的几张表并入统一表格样式（表头灰底 13px、行高 48、数字等宽右对齐） */
.refund-why-table,.finance-monthly-table,.low-price-table,.model-profit-table,.ad-fee-table{font-size:var(--fs-14);border-collapse:collapse;width:100%}
.refund-why-table th,.refund-why-table td,.finance-monthly-table th,.finance-monthly-table td,.low-price-table th,.low-price-table td{padding:10px 14px;height:var(--ui-row-h);border-bottom:1px solid var(--ui-line);vertical-align:middle}
.refund-why-table thead th,.finance-monthly-table thead th,.low-price-table thead th{height:40px;background:#f7f9fb;color:var(--ui-ink-3);font-size:var(--fs-13);font-weight:500}
.refund-why-table tbody tr:last-child>*,.finance-monthly-table tbody tr:last-child>*,.low-price-table tbody tr:last-child>*{border-bottom:0}
.refund-why .table-wrap,.finance-monthly .table-wrap{border:1px solid var(--ui-line);border-radius:var(--radius);overflow-x:auto}
/* 销售分析：商品明细筛选收成一行（关键词 · 查看方式 · 商品类型），平台店铺跟随顶部 */
@media(min-width:1181px){
  .sales-sku-card .sku-filter-surface{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 28px;padding:12px 16px}
  .sales-sku-card .sku-filter-row{display:contents}
  .sales-sku-card .sku-filter-row+.sku-filter-row{padding-top:0;border-top:0}
  .sales-sku-card .sku-filter-row-primary .sku-filter-field{flex:1 1 22rem}
  .sales-sku-card .sku-filter-row-options>div:empty{display:none}
}
/* 抽屉里的表单：底部操作按钮固定在抽屉底部，长表单不用滚到最下面才能提交 */
#drawerBody form>.sku-toolbar:has(button[type="submit"]){position:sticky;bottom:-1.5rem;z-index:3;margin:16px -1.5rem -1.5rem;padding:12px 1.5rem;background:#fff;border-top:1px solid var(--ui-line);box-shadow:0 -6px 12px rgba(19,38,61,.04)}
@media(max-width:700px){#drawerBody form>.sku-toolbar:has(button[type="submit"]){bottom:-1.25rem;margin:16px -1.25rem -1.25rem;padding:12px 1.25rem}}
#drawerBody form>.sku-toolbar:has(button[type="submit"])+small{display:block;margin-top:1.75rem}

/* ===== 首页核心数横条（2026-10-14 重做）：一张卡 4 栏，四栏结构一致、等高 ===== */
.v2-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0!important;padding:0;border:1px solid var(--ui-line);border-radius:var(--ui-card-r,12px);background:#fff;box-shadow:var(--ui-shadow);overflow:hidden}
.v2-kpi-strip .v2-kpi{display:grid;grid-template-rows:auto auto auto 1fr;gap:8px;align-content:start;padding:18px 22px 16px;border:0;border-radius:0;background:none;box-shadow:none;min-width:0}
.v2-kpi-strip .v2-kpi+.v2-kpi{border-left:1px solid var(--ui-line)}
.v2-kpi-strip .v2-kpi:hover{border-color:transparent;box-shadow:none;background:#fbfcfe}
.v2-kpi-strip .v2-kpi+.v2-kpi:hover{border-left-color:var(--ui-line)}
.v2-kpi-strip .v2-kpi-label{font-size:var(--fs-14);font-weight:500;color:var(--ui-ink-2)}
.v2-kpi-strip .v2-kpi-value{display:block;font-size:1.5rem;font-weight:600;line-height:1.1;letter-spacing:-.01em;color:var(--ui-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-kpi-strip .v2-kpi-value .v2-cur{font-size:.6em;font-weight:500;color:var(--ui-ink-3);margin-right:2px;vertical-align:.12em}
.v2-kpi-delta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:22px}
.v2-delta-chip{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:var(--radius-sm);font-size:var(--fs-13)!important;font-weight:600;font-variant-numeric:tabular-nums}
.v2-delta-chip.good{background:#e8f5ee;color:#1f6b45}
.v2-delta-chip.bad{background:#fdecea;color:var(--red)}
.v2-delta-chip.neutral{background:#f0f2f5;color:var(--ui-ink-2)}
.v2-kpi-vs{font-size:var(--fs-13);color:var(--ui-ink-3)}
.v2-kpi-meta{display:grid;gap:4px;margin:2px 0 0;padding-top:10px;border-top:1px solid #eef1f5;font-size:var(--fs-13);line-height:1.45}
.v2-kpi-meta>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}
.v2-kpi-meta dt{flex:none;color:var(--ui-ink-3)}
.v2-kpi-meta dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-ink-2);font-variant-numeric:tabular-nums;text-align:right}
.v2-kpi-meta .v2-kpi-sub{padding:0;font-size:var(--fs-13);color:var(--v2-warn)}
@media(max-width:1180px){.v2-kpi-strip .v2-kpi{padding:16px 16px 14px}.v2-kpi-strip .v2-kpi-value{font-size:1.5rem}}
@media(max-width:1180px){
  .v2-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2-kpi-strip .v2-kpi:nth-child(3){border-left:0}
  .v2-kpi-strip .v2-kpi:nth-child(n+3){border-top:1px solid var(--ui-line)}
}
@media(max-width:420px){.v2-kpi-strip .v2-kpi{padding:14px 12px 12px}.v2-kpi-strip .v2-kpi-value{font-size:var(--fs-20)}.v2-kpi-meta>div{flex-direction:column;align-items:flex-start;gap:0}.v2-kpi-meta dd{text-align:left}}

/* 首页「数据齐不齐」（2026-10-15）：一格一天，参考 Tremor Tracker */
.v2-coverage-sum{margin:.25rem 0 .75rem;font-weight:600;color:var(--ui-ink,#1d2939)}
.cov-table{display:grid;gap:.15rem}
.cov-row{display:grid;grid-template-columns:minmax(9rem,1.1fr) repeat(3,minmax(8.5rem,1fr)) minmax(12rem,1.6fr);align-items:center;gap:.75rem;padding:.55rem 0;border-top:1px solid var(--ui-line);font-size:var(--fs-14)}
.cov-head{border-top:0;padding-top:0;color:var(--ui-ink-2);font-size:var(--fs-13);font-weight:600}
.cov-shop{display:grid;gap:.1rem;font-weight:600;min-width:0}.cov-shop small{font-weight:400;color:var(--ui-ink-2);font-size:var(--fs-12)}
.cov-label{display:none}
/* 2026-11-14：店铺头像 + 按平台分组 */
.cov-shop[data-shop-id]{display:flex;align-items:center;min-width:0}.cov-shop-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cov-group{padding:.85rem 0 .3rem;border-top:1px solid var(--ui-line)}.cov-head+.cov-group{border-top:0;padding-top:.2rem}
.cov-group+.cov-row{border-top:0}
.v2-trend .overview-chart-scroll{overflow-x:hidden}.v2-trend .overview-chart-canvas{touch-action:pan-y}
.cov-track{display:inline-flex;gap:2px;vertical-align:middle}
.cov-track i,.cov-legend i{display:inline-block;width:.5rem;height:1.1rem;border-radius:4px;background:#d0d5dd}
.cov-legend i{height:.65rem;width:.65rem;margin:0 .2rem 0 .6rem;vertical-align:-1px}
i.cov-ok{background:#2f9e63}i.cov-miss{background:#d64545}i.cov-wait{background:repeating-linear-gradient(45deg,#c9d3df 0 2px,#eef2f6 2px 4px)}i.cov-none{background:#e4e7ec}i.cov-na{background:#f2f4f7;box-shadow:inset 0 0 0 1px #e4e7ec}
.cov-fix{line-height:1.5}.cov-fix.cov-good{color:var(--green)}.cov-fix.cov-bad{color:var(--red);font-weight:600}.cov-fix.cov-warn{color:var(--amber)}.cov-fix.cov-muted{color:var(--ui-ink-2)}
.cov-span{grid-column:span 3;color:var(--ui-ink-2)}
.cov-legend{margin:.6rem 0 0;color:var(--ui-ink-2);font-size:var(--fs-12)}.cov-legend i:first-child{margin-left:0}
@media(max-width:900px){
  .cov-head{display:none}
  .cov-row{grid-template-columns:1fr;gap:.35rem}
  .cov-label{display:inline-block;width:4.5em;font-style:normal;color:var(--ui-ink-2);font-size:var(--fs-12)}
  .cov-span{grid-column:auto}
  .cov-track i{width:.55rem}
}

/* 数据接入页「运行状态」（2026-10-15）：沿用「数据齐不齐」的一格一天 */
.job-status .cov-row.job-row{grid-template-columns:minmax(12rem,1.2fr) minmax(14rem,1.4fr) minmax(14rem,1.6fr)}
.job-status .cov-track i{width:.4rem}
i.cov-part{background:#e0a33a}
.job-worker{margin:.25rem 0 .5rem;font-weight:600}.job-worker.cov-good{color:var(--green)}.job-worker.cov-bad{color:var(--red)}
.job-group{margin:1rem 0 .25rem;font-size:var(--fs-14);font-weight:600;color:var(--ui-ink)}.job-group small{margin-left:.5rem;font-weight:400;color:var(--ui-ink-2)}
@media(max-width:900px){.job-status .cov-row.job-row{grid-template-columns:1fr}.job-status .cov-track i{width:.3rem}}

/* 首页「各店赚没赚钱」（2026-10-15） */
.v2-profit .v2-coverage-sum small{display:block;font-weight:400;color:var(--amber);font-size:var(--fs-13);margin-top:.15rem}
.v2-profit-table td,.v2-profit-table th{white-space:nowrap}
.v2-profit-table td:not(.v2-profit-note){text-align:right;font-variant-numeric:tabular-nums}
.v2-profit-table .v2-profit-note{white-space:normal;color:var(--amber);font-size:var(--fs-13);min-width:12rem}
.v2-profit-table tr.is-loss .v2-profit-op{color:var(--red);font-weight:700}
.v2-profit-table tbody tr:not(.is-loss) .v2-profit-op{color:var(--green);font-weight:700}
.v2-profit-table tfoot th,.v2-profit-table tfoot td{font-weight:700;border-top:2px solid var(--ui-line)}
.v2-profit .table-wrap{overflow-x:auto;max-width:100%}
.v2-profit-table{width:100%;border-collapse:collapse;font-size:var(--fs-14)}
.v2-profit-table th,.v2-profit-table td{padding:.5rem .6rem;border-bottom:1px solid var(--ui-line);text-align:left}
.v2-profit-table thead th{color:var(--ui-ink-2);font-weight:600;font-size:var(--fs-13)}
.v2-profit-table thead th:not(:first-child):not(:last-child){text-align:right}

/* 手机首页精简（2026-10-15 建议第 10 条）：只在窄屏收起，电脑上全部照常显示 */
.cov-toggle{display:none}
@media(max-width:640px){
  /* 2026-11-13：首页不再折叠走势（审查报告第 1 步），「展开更多」去掉 */
  /* 只针对首页「店铺经营利润」卡：手机上只留店铺、发货净额、经营利润、利润率（2026-11-07 改按列的 class 隐藏，列数随返利变化） */
  .v2-profit .v2-profit-table .v2-profit-opt{display:none}
  .v2-profit .v2-profit-col-shop{width:auto}
  .v2-profit-table{font-size:var(--fs-14)}.v2-profit-table th,.v2-profit-table td{padding:.45rem .35rem}
  .v2-profit > .v2-muted:last-child{display:none}
}

/* ==========================================================================
   v4 视觉基础（2026-10-15 字体、间距、图标审查）
   1) 文字只用三档中性色：--ui-ink 标题与数字、--ui-ink-2 正文、--ui-ink-3 说明（对白底 ≥ 4.5:1，原浅灰 3.5:1 偏淡）。
   2) 间距只用 4 的倍数：4 / 8 / 12 / 16 / 20 / 24 / 32；圆角只用 4 / 6 / 8 / 12。
   3) 图标两档：按钮与行内 16px，导航与工具按钮 18px；说明图标统一为圆圈 i。
   4) 指标说明：每个指标名旁的 ⓘ 点开同一种浮层（白话解释 + 怎么算 + 按哪天算）。
   ========================================================================== */
:root{
  --ui-ink-3:#64748b;
  --text:var(--ui-ink);--text-2:var(--ui-ink-2);--text-3:var(--ui-ink-3);--neutral:var(--ui-ink-3);
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
  --icon-sm:16px;--icon-md:18px;
  --icon-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.2' fill='none' stroke='%23000' stroke-width='1.7'/%3E%3Cpath d='M12 10.6v6' stroke='%23000' stroke-width='1.9' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7.3' r='1.2' fill='%23000'/%3E%3C/svg%3E");
}
.btn [data-icon],.text-btn [data-icon],.top-refresh [data-icon],.team-heading>.btn [data-icon]{width:var(--icon-sm);height:var(--icon-sm)}
.icon-btn [data-icon],.sidebar [data-icon],.settings-tabs button>[data-icon]{width:var(--icon-md);height:var(--icon-md)}

/* 说明图标：旧的方框 i 与新的指标说明统一成同一个圆圈 i */
.info-dot,.metric-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:20px;height:20px;padding:0;margin:0 0 0 2px;border:0;border-radius:999px;background:transparent;color:var(--ui-ink-3);font-size:0;line-height:0;cursor:help;vertical-align:middle;transition:color var(--t-fast),background var(--t-fast)}
.info-dot::before,.metric-tip::before{content:"";width:15px;height:15px;background:currentColor;-webkit-mask:var(--icon-info) center/contain no-repeat;mask:var(--icon-info) center/contain no-repeat}
.info-dot:hover,.info-dot[aria-expanded='true'],.metric-tip:hover,.metric-tip[aria-expanded='true']{color:var(--accent);background:var(--accent-soft);border-color:transparent}
.info-dot:focus-visible,.metric-tip:focus-visible{outline:2px solid var(--focus-outline);outline-offset:1px}
th .metric-tip{width:18px;height:18px;margin-left:2px}
th .metric-tip::before{width:14px;height:14px}
.info-pop{border-radius:var(--radius);border-color:var(--ui-line-strong);padding:12px 14px;font-size:var(--fs-14);color:var(--ui-ink-2)}
.info-pop strong{font-size:var(--fs-15);color:var(--ui-ink);font-weight:600}

/* 指标说明浮层：全站一个，按按钮位置摆放，不会被表格滚动区裁掉 */
.metric-pop{position:fixed;z-index:var(--z-popover);width:min(21rem,calc(100vw - 32px));padding:14px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--ui-line-strong);box-shadow:var(--shadow-md);font-size:var(--fs-14);line-height:1.65;color:var(--ui-ink-2);text-align:left;white-space:normal}
.metric-pop[hidden]{display:none}
.metric-pop h4{margin:0 0 6px;font-size:var(--fs-15);font-weight:600;line-height:1.4;color:var(--ui-ink)}
.metric-pop p{margin:0}
.metric-pop dl{display:grid;grid-template-columns:4.5em 1fr;gap:4px 8px;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--ui-line);font-size:var(--fs-13)}
.metric-pop dt{color:var(--ui-ink-3)}
.metric-pop dd{margin:0;color:var(--ui-ink-2)}
.metric-pop .metric-pop-all{display:inline-block;margin-top:10px;padding:0;border:0;background:none;color:var(--accent);font-size:var(--fs-13);cursor:pointer}
.metric-pop .metric-pop-all:hover{text-decoration:underline}

/* 指标说明总表（数据来源与口径里） */
.metric-glossary{display:grid;gap:var(--sp-5)}
.metric-glossary section h3{margin:0 0 var(--sp-2);font-size:var(--fs-15);font-weight:600;color:var(--ui-ink)}
.metric-glossary dl{margin:0;display:grid;grid-template-columns:minmax(7.5rem,10rem) 1fr;border:1px solid var(--ui-line);border-radius:var(--radius);overflow:hidden}
.metric-glossary dt,.metric-glossary dd{margin:0;padding:10px 14px;border-bottom:1px solid var(--ui-line);font-size:var(--fs-14);line-height:1.6}
.metric-glossary dt{background:#f7f9fb;color:var(--ui-ink);font-weight:600}
.metric-glossary dd{color:var(--ui-ink-2)}
.metric-glossary dd small{display:block;margin-top:2px;color:var(--ui-ink-3);font-size:var(--fs-13)}
.metric-glossary dl>:nth-last-child(-n+2){border-bottom:0}
.metric-glossary-search{width:100%;max-width:20rem;min-height:var(--ui-btn-h);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);font:inherit;font-size:var(--fs-14)}
@media(max-width:640px){.metric-glossary dl{grid-template-columns:1fr}.metric-glossary dt{border-bottom:0;padding-bottom:2px;background:none}.metric-glossary dd{padding-top:0}}

/* 标题与说明层级：卡片标题 16/600，副标题与说明 13–14 / 说明色；表头 13/500 */
.v2-card-head p,.panel-head p,.v2-muted,.v2-asof{color:var(--ui-ink-3)}
.v2-card-head{gap:var(--sp-3)}
.v2-profit-table th,.v2-profit-table td{padding:10px 12px;border-bottom:1px solid var(--ui-line)}
.v2-profit-table thead th{height:40px;background:#f7f9fb;color:var(--ui-ink-3);font-weight:500;font-size:var(--fs-13)}
.v2-profit-table tfoot th,.v2-profit-table tfoot td{font-weight:600;border-top:1px solid var(--ui-line-strong);border-bottom:0}
.v2-profit-table tr.is-loss .v2-profit-op,.v2-profit-table tbody tr:not(.is-loss) .v2-profit-op{font-weight:600}
.v2-profit .table-wrap{border:1px solid var(--ui-line);border-radius:var(--radius)}
.v2-profit .v2-coverage-sum,.v2-coverage .v2-coverage-sum{font-size:var(--fs-15);font-weight:600;color:var(--ui-ink)}
.v2-profit .v2-coverage-sum small{font-size:var(--fs-13);color:var(--ui-ink-3)}
.v2-profit-table .v2-profit-note{font-size:var(--fs-13);color:var(--amber)}
.v2-scope-quality+.v2-scope-quality{margin-left:12px}
/* 表头带 ⓘ 后不换行；首列（店铺/型号）保底宽度，列多时整表横向滚动，不把店名挤成竖排 */
.finance-table th,.model-profit-table th,.finance-monthly-table th,.v2-profit-table th{white-space:nowrap}
.finance-table td:first-child,.finance-table th:first-child{min-width:12rem}
.model-profit-table tbody th{min-width:9rem}
.finance-table td{white-space:nowrap}
.v2-compare-note{margin:0;font-size:var(--fs-13);color:var(--ui-ink-3)}
/* 待处理明细抽屉 */
.inbox-detail-table td small,.refund-items-line{display:block;margin-top:2px;color:var(--ui-ink-3);font-size:var(--fs-13);white-space:normal}
.inbox-detail-table td{vertical-align:top}
.inbox-detail-foot{margin:var(--sp-4) 0 0}
/* 发货页：超期订单直接列出 */
.logistics-overdue{margin-top:var(--ui-gap)}
.logistics-overdue .panel-head h2{display:flex;align-items:center;gap:var(--sp-2)}
.logistics-overdue.is-clear .panel-head{margin-bottom:0}
.logistics-overdue.is-clear h2::after{content:"✓ 正常";font-size:var(--fs-13);font-weight:500;color:var(--green)}
.logistics-detail-panel{margin-top:var(--ui-gap)}
/* 售后页：退款概况四格、对照表收起 */
.after-sales-kpis .v2-kpi-hint{display:block;margin-top:var(--sp-1);color:var(--ui-ink-3);font-size:var(--fs-13)}
.v2-num.v2-warn{color:var(--amber)}
.after-sales-reconcile{margin-top:var(--ui-gap)}
.after-sales-reconcile .refund-comparison{margin-top:var(--sp-3)}
.after-sales-table td[data-refund-items]{min-width:12rem;max-width:22rem;white-space:normal;color:var(--ui-ink-2)}
.after-sales-kpis{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))!important}
.sales-shop-change{margin-top:var(--ui-gap)}.sales-shop-change .v2-coverage-sum{margin:0 0 var(--sp-3)}
/* 推广、客服页顶部各店对比 */
.pdd-shop-overview{margin-bottom:var(--ui-gap)}
.pdd-shop-overview th[scope="row"] .text-btn{font-weight:600;padding:0;min-height:auto}
.pdd-shop-overview th[scope="row"] .text-btn.is-current{color:var(--ui-ink)}
.pdd-shop-overview th[scope="row"] small{display:block;font-weight:400;color:var(--accent);font-size:var(--fs-12)}
.pdd-shop-overview td{text-align:right}
.pdd-shop-overview thead th:not(:first-child){text-align:right}
.sales-shop-change .table-wrap,.pdd-shop-overview .table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--ui-line);border-radius:var(--radius)}
.sales-shop-change,.pdd-shop-overview{min-width:0;max-width:100%}
.pdd-shop-overview>p.v2-muted,.sales-shop-change>p.v2-muted{margin:var(--sp-3) 0 0}
/* 全站商品格：图 + 名称 + 编号（+ 明细） */
.model-cell{display:flex;align-items:center;gap:var(--sp-3);min-width:12rem}
.model-cell .sku-thumb-button,.model-cell .sku-thumb-fallback{flex:0 0 40px;width:40px;height:40px}
.model-cell.is-small{min-width:0;gap:var(--sp-2);padding:var(--sp-1) 0}
.model-cell.is-small .sku-thumb-button,.model-cell.is-small .sku-thumb-fallback{flex-basis:32px;width:32px;height:32px}
.model-cell-text{display:flex;flex-direction:column;min-width:0;flex:1}
.model-cell-text strong{font-weight:600;color:var(--ui-ink);white-space:normal;line-height:1.4}
.model-cell-text small{display:block;margin-top:2px;color:var(--ui-ink-3);font-size:var(--fs-12);font-weight:400;white-space:normal}
.model-cell-detail{flex:0 0 auto;padding:0 var(--sp-1);min-height:auto;font-size:var(--fs-13)}
th[scope="row"] .model-cell{font-weight:400}
.ad-fee-goods-list{display:grid;gap:var(--sp-1);margin-top:var(--sp-2)}
.v2-rank li .sku-thumb-button,.v2-rank li .sku-thumb-fallback{flex:0 0 32px;width:32px;height:32px}
/* 抽屉明细表：说明与表格之间留白，数字列右对齐 */
#drawerBody .drawer-note{margin-bottom:var(--sp-4)}
.inbox-detail-table th:not(:first-child),.inbox-detail-table td:not(:first-child){text-align:right;white-space:nowrap}
.inbox-detail-table td:first-child{min-width:14rem}
.inbox-detail-table .table-interaction-bar,.pdd-shop-overview .table-interaction-bar,.sales-shop-change .table-interaction-bar{font-size:var(--fs-12)}
/* 登录页封面（2026-10-15）：去掉网格底纹，换成产品示意图（抽象卡片，不含真实数字） */
/* 旧的深色登录封面背景（!important）2026-11-13 去掉：登录页改用工作台浅色配色，见第 86 节 */
.login-story::after{display:none}
.login-story-copy h1{max-width:12ch;font-size:clamp(2.125rem,3.4vw,3rem);letter-spacing:-.02em}
.login-visual{margin:var(--sp-6) 0 var(--sp-6);max-width:32rem}
.login-visual svg{display:block;width:100%;height:auto;overflow:visible}
.login-visual .lv-card>rect:first-child{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.16)}
.login-visual text{fill:rgba(255,255,255,.82);font-size:13px;font-weight:600;font-family:var(--font)}
.login-visual .lv-pill{fill:rgba(255,255,255,.06)}
.login-visual .lv-track{fill:rgba(255,255,255,.08)}
.login-visual .lv-bar-a{fill:#7db4d8}.login-visual .lv-bar-b{fill:#e98b8b}.login-visual .lv-bar-c{fill:#7fd1a8}
.login-visual .lv-line{fill:rgba(255,255,255,.18)}
.login-visual .lv-chip{fill:rgba(125,180,216,.35)}
.login-visual .lv-dot-red{fill:#e98b8b}.login-visual .lv-dot-amber{fill:#f2c46d}
@media(max-height:760px){.login-visual{display:none}}
.login-story-copy{margin-top:var(--sp-8)}
/* 客服服务页：客服人员表现、分时接待 */
.pdd-service-detail{margin-bottom:var(--ui-gap)}
.pdd-agent-table th[scope="row"] small{display:block;font-weight:400;color:var(--ui-ink-3);font-size:var(--fs-12)}
.pdd-agent-table td,.pdd-agent-table thead th:not(:first-child){text-align:right}
.hour-chart{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:4px;align-items:end;height:160px;padding:var(--sp-2) 0}
.hour-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.hour-stack{display:flex;flex-direction:column;width:100%;max-width:22px;min-height:2px;border-radius:4px 4px 0 0;overflow:hidden;background:var(--accent-soft)}
.hour-stack i{display:block;background:#7db4d8}
.hour-stack i.is-late{background:var(--red);flex:none}
.hour-col span{margin-top:4px;font-size:var(--fs-12);color:var(--ui-ink-3)}
.hour-legend{margin:var(--sp-2) 0 0;font-size:var(--fs-13);color:var(--ui-ink-3)}
.hour-legend i{display:inline-block;width:10px;height:10px;margin:0 4px 0 8px;border-radius:4px;background:#7db4d8;vertical-align:-1px}
.hour-legend i:first-child{margin-left:0}
.hour-legend i.is-late{background:var(--red)}
@media(max-width:640px){.hour-chart{gap:2px;height:120px}.hour-col span{font-size:var(--fs-12)}.hour-col:nth-child(odd) span{visibility:hidden}}
.pdd-service-detail{min-width:0;max-width:100%}.pdd-service-detail .table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--ui-line);border-radius:var(--radius)}
/* 发货物流页：拼多多物流时效与服务考核 */
.pdd-logistics{margin-top:var(--ui-gap);min-width:0;max-width:100%}
.pdd-logistics .table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--ui-line);border-radius:var(--radius)}
.pdd-logistics-table th[scope="row"] small,.pdd-logistics-table td small{display:block;font-weight:400;color:var(--ui-ink-3);font-size:var(--fs-12)}
.pdd-logistics-table td{text-align:right;white-space:nowrap}
.pdd-logistics-table td:last-child{text-align:left;white-space:normal;min-width:8rem}
.pdd-logistics-table thead th:not(:first-child){text-align:right}
.pdd-logistics .v2-note{margin-top:var(--sp-3)}
.pdd-abnormal-table td small{display:block;color:var(--ui-ink-3);font-size:var(--fs-12);white-space:normal}
.pdd-abnormal-table td{vertical-align:top}
.v2-good{color:var(--green)}
.pdd-traffic-table th[scope="row"] small{display:block;font-weight:400;color:var(--ui-ink-3);font-size:var(--fs-12)}.pdd-traffic-table td,.pdd-traffic-table thead th:not(:first-child){text-align:right}
.pdd-abnormal-table th,.pdd-abnormal-table td{text-align:left!important;white-space:normal}
.pdd-logistics-table td:not(:last-child){white-space:nowrap}
.pdd-logistics-table td[colspan]{text-align:left}
.is-holding{overflow:hidden}
/* 与基准比较的分级颜色：略高/略低用黄色，很高/很低用红色 */
.v2-warn,td.v2-warn{color:var(--amber)}
td.v2-neutral{color:inherit}
td small{font-weight:400}
.v2-muted.is-warn{color:var(--amber)}
.status-pill.pending.warn{background:var(--amber-soft);color:var(--amber)}
.pdd-current-tag{display:inline-block;margin-left:var(--sp-2);padding:1px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:var(--fs-12);font-weight:500;vertical-align:1px}
.pdd-shop-overview tr.is-current-row>*{background:#f5f9fd}
.pdd-shop-overview th[scope="row"] .text-btn.is-current{color:var(--ui-ink)}
/* 折叠说明（如「这些状态怎么看」）：上下留白，展开后与下一个区块隔开；摘要行带说明图标、字号与正文说明一致 */
details.v2-note{display:block;margin:var(--sp-3) 0}
details.v2-note>summary{padding:var(--sp-1) var(--sp-2) var(--sp-1) 0;font-size:var(--fs-13);color:var(--accent)}
details.v2-note>summary:hover{text-decoration:underline}
details.v2-note[open]>.v2-note-body{margin-bottom:var(--sp-2)}
.v2-note-body{border-left:3px solid var(--accent-line)}
.v2-note-body p+p{padding-top:.375rem;border-top:1px dashed var(--ui-line)}
/* 发货物流：第 5 格「邮资粗算」 */
.logistics-stats{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
.logistics-stats>.logistics-stat:last-child{border-right:0}
@media(max-width:620px){.logistics-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.logistics-stats>.logistics-stat:nth-child(5){grid-column:1/-1;border-top:1px solid var(--border)}}
/* 推广投放页：百亿补贴与活动报名 */
.pdd-activity-table td,.pdd-activity-table thead th{text-align:left!important;white-space:normal}
.pdd-activity-table thead th .metric-tip,.pdd-activity-table thead th .table-interaction-sort{justify-content:flex-start}
.pdd-activity-table td small,.pdd-activity-table th small{display:block;color:var(--ui-ink-3);font-size:var(--fs-12);font-weight:400}
.pdd-subsidy.is-good strong{color:var(--green)}
.pdd-subsidy.is-warn strong{color:var(--amber)}
.pdd-subsidy.is-muted strong{color:var(--ui-ink-3);font-weight:500}
.pdd-activity-row{display:flex;align-items:center;gap:var(--sp-2)}
.pdd-activity-row .sku-thumb-button,.pdd-activity-row .sku-thumb-fallback{flex:0 0 32px;width:32px;height:32px}
.pdd-activity-row .status-pill{margin-left:auto;flex:0 0 auto}

/* 拼多多售后待处理（2026-10-15） */
.pdd-as-sub{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-15);font-weight:600}
.pdd-as-table td,.pdd-as-table thead th,.pdd-as-count-table td,.pdd-as-count-table th{text-align:left!important;white-space:normal}
.pdd-as-table td:nth-child(2){min-width:180px}
.pdd-as-table td:nth-child(4){min-width:150px}
.pdd-as-table td small,.pdd-as-count-table th small{display:block;color:var(--ui-ink-3);font-size:var(--fs-12);font-weight:400}
.pdd-as-table .model-cell{min-width:220px}
.pdd-as-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
#pddAftersales .v2-note{margin-top:var(--sp-3)}

/* ==========================================================================
   v2-167 视觉统一（2026-10-17 用户确认视觉定稿 17 项全部按建议，配色 A 藏青；10-17 用户改选 B 石墨）
   放在文件末尾，覆盖前面各层：一套颜色、6 档字号、3 种圆角、卡片不加阴影、间距 4 的倍数、动效只留三种。
   只改观感，不动结构、功能与口径。
   ========================================================================== */
/* 1 字体：网站自带思源黑体常用字子集（Noto Sans SC，SIL OFL 1.1，见 noto-sans-sc-OFL.txt）；生僻字回落系统字体 */
@font-face{font-family:"JX Sans";src:url("noto-sans-sc-jx-v1.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --font:"JX Sans",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;
  /* 数字仍用系统界面字体的等宽数字，竖列对齐 */
  --font-num:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,"JX Sans",sans-serif;
  /* 4 配色 B 石墨（用户 10-17 改选）：近中性灰 6 级 + 石墨导航 + 主色钴蓝 + 红橙绿各一深一浅 */
  --ink-900:#1d1f23;--ink-700:#43464d;--ink-500:#6e727a;--ink-300:#a8abb2;--line:#e4e5e8;--canvas:#f5f5f6;
  --bg:var(--canvas);--surface:#ffffff;--surface-sunken:#f1f2f4;--surface-raised:#fafafb;--surface-hover:#f1f2f4;--surface-nav:#fafafb;
  --text:var(--ink-900);--text-2:var(--ink-700);--text-3:var(--ink-500);--neutral:var(--ink-500);
  --ui-ink:var(--ink-900);--ui-ink-2:var(--ink-700);--ui-ink-3:var(--ink-500);
  --border:var(--line);--border-strong:#d5d7db;--border-hover:#c6c9ce;--border-active:#cdd8f3;--border-nav:var(--line);
  --ui-line:var(--line);--ui-line-strong:#d5d7db;--v2-line:var(--line);
  --accent:#2d58c8;--accent-hover:#244aab;--accent-deep:#1d1f23;--accent-soft:#ecf0fb;--accent-line:#cdd8f3;
  --v2-accent:#2d58c8;--v2-navy:#202226;--v2-navy-2:#2a2d32;--v2-bg:var(--canvas);
  --green:#2f7a55;--green-soft:#e9f5ee;--green-line:#cfe6d9;
  --red:#b4352f;--red-soft:#fbeceb;--red-line:#f3d3d0;
  --amber:#9a5b0b;--amber-soft:#fdf3e2;--amber-line:#f1dfbf;
  --blue:#2d58c8;--blue-soft:#ecf0fb;--blue-line:#cdd8f3;
  --neutral-soft:#f1f2f4;--neutral-line:var(--line);
  --v2-good:var(--green);--v2-bad:var(--red);--v2-warn:var(--amber);
  --focus-ring:0 0 0 3px rgba(45,88,200,.22);--focus-outline:#2d58c8;
  /* 7 圆角三种：标签 4、控件 6、卡片 8 */
  --radius-xs:4px;--radius-sm:6px;--radius:8px;--radius-lg:8px;--ui-card-r:8px;
  /* 7 阴影：卡片不加，只留给弹窗、下拉、抽屉 */
  --shadow:none;--ui-shadow:none;--shadow-md:0 8px 24px rgba(29,31,35,.10);--shadow-lg:0 12px 32px rgba(29,31,35,.14);
  /* 2 字号 6 档：12 注释 / 13 标签表头 / 14 正文表格按钮 / 16 卡片标题 / 20 页面标题 / 28 核心数字 */
  --fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-15:.875rem;--fs-16:1rem;--fs-18:1rem;--fs-20:1.25rem;--fs-24:1.25rem;--fs-28:1.75rem;--fs-32:1.75rem;
  --fs-2xs:var(--fs-12);--fs-xs:var(--fs-13);--fs-sm:var(--fs-14);--fs-body:var(--fs-14);--fs-md:var(--fs-16);--fs-lg:var(--fs-20);--fs-xl:var(--fs-20);--fs-display:var(--fs-28);
  --t-12:var(--fs-12);--t-13:var(--fs-13);--t-14:var(--fs-14);--t-16:var(--fs-16);--t-20:var(--fs-20);--t-24:var(--fs-20);--t-32:var(--fs-28);
  /* 6 间距：只用 4、8、12、16、24、32；卡片内边距 16、卡片之间 16 */
  --ui-card-pad:16px;--ui-gap:16px;--ui-row-h:40px;--ui-btn-h:32px;--ui-btn-h-sm:28px;
  --t-fast:120ms ease;--t-base:200ms ease;--t-enter:200ms ease;
}
body{font-family:var(--font);font-size:var(--fs-14);color:var(--text);background:var(--canvas)}
.main,.content{background:var(--canvas)}
/* 3 字重：正文与数据 400，标签表头按钮 500，标题与核心数字 600；不用 700 */
th,thead th,.v2-table thead th,.sku-table thead th{font-weight:500}
.btn,.text-btn,.filter-chip,.global-range button,.v2-tabs button,.top-sync,.v2-kpi-label,.sidebar .nav-item.active,.v2-chip,.status-pill{font-weight:500}
.global-range button[aria-pressed="true"],.v2-tabs button[aria-pressed="true"],.filter-chip.active{font-weight:500}
.model-cell-text strong,.v2-model strong,.sku-table td strong,.v2-table td strong,td b{font-weight:500}
.topbar-title,.v2-card h2,.v2-strip h2,.v2-issue h2,.panel-head h2,.v2-card-head h2,.settings-card h2{font-weight:600;color:var(--ink-900)}
.topbar-title{font-size:var(--fs-20)}
.v2-card h2,.v2-strip h2,.v2-issue h2,.panel-head h2,.v2-card-head h2,.settings-card h2,.v2-page>.panel h2{font-size:var(--fs-16)}
.v2-kpi-value,.v2-num.v2-kpi-value,.overview-chart-total strong{font-weight:600;letter-spacing:-.01em}
.v2-kpi-value{font-size:var(--fs-28);line-height:1.2}
/* 7 卡片：8px 圆角、细边框、不加阴影；悬停不再浮起 */
.v2-card,.v2-kpi,.v2-issue,.v2-strip,.panel,.settings-card,.kb-card,.overview-filters,.metric-card-mini{border-radius:var(--radius);border-color:var(--line);box-shadow:none}
.v2-card:hover,.v2-strip:hover,.v2-kpi:hover,.v2-issue:hover,.panel:hover{border-color:var(--line);box-shadow:none;transform:none}
.v2-card,.panel,.settings-card{padding:var(--ui-card-pad)}
.v2-kpi{padding:var(--ui-card-pad)}
/* 卡中卡改为同一卡片里用分隔线并排 */
.metric-card-mini-grid{gap:0!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.metric-card-mini{border:0;border-radius:0;background:transparent;padding:12px 16px 12px 0}
.metric-card-mini+.metric-card-mini{border-left:1px solid var(--line);padding-left:16px}
/* 胶囊形只留给数字角标；状态标签方角 4 */
.v2-chip,.status-pill,.pdd-current-tag,.filter-chip,.sync-status{border-radius:var(--radius-xs)}
.v2-chip.bad,.status-pill.bad,.status-pill.danger{background:var(--red-soft);color:var(--red)}
/* 12 涨跌：去掉灰底标签，只用文字颜色 */
.v2-delta-chip,.v2-delta-chip.good,.v2-delta-chip.bad,.v2-delta-chip.neutral{height:auto;padding:0;background:none;border-radius:0;font-size:var(--fs-13)!important;font-weight:500}
.v2-delta-chip.good{color:var(--green)}.v2-delta-chip.bad{color:var(--red)}.v2-delta-chip.neutral{color:var(--ink-500)}
.v2-kpi-vs{color:var(--ink-500);font-size:var(--fs-13)}
.v2-kpi-delta{gap:6px}
/* 11 按钮与切换：一个区域只一个实心主按钮；选中的切换一律浅蓝底蓝字；高度 32 */
.btn{min-height:var(--ui-btn-h);border-radius:var(--radius-sm);font-size:var(--fs-14)}
.btn.small{min-height:var(--ui-btn-h-sm);font-size:var(--fs-13)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.secondary{background:#fff;border-color:var(--line);color:var(--ink-700)}
.filter-chip{min-height:var(--ui-btn-h);border-color:var(--line);background:#fff;color:var(--ink-700)}
.filter-chip.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}
.global-range{gap:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#fff}
.global-range button{min-height:30px;padding:0 12px;border-radius:0;border-left:1px solid var(--line);color:var(--ink-700);font-size:var(--fs-14);font-weight:400}
.global-range button:first-child{border-left:0}
.global-range button:hover{background:var(--surface-hover)}
.global-range button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.v2-tabs{gap:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#fff}
.v2-tabs button{border-radius:0;border-left:1px solid var(--line);min-height:30px;padding:0 12px;color:var(--ink-700);font-weight:400}
.v2-tabs button:first-child{border-left:0}
.v2-tabs button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);box-shadow:none}
/* 8 表格：行高 40、表头白底、鼠标所在行整行浅蓝；数字列右对齐（由排序增强标 is-num） */
.v2-table th,.v2-table td,.sku-table th,.sku-table td,.refund-comparison th,.refund-comparison td,.v2-profit-table th,.v2-profit-table td,.finance-table th,.finance-table td,table.data-table th,table.data-table td{padding:8px 12px;height:var(--ui-row-h)}
.v2-table thead th,.sku-table thead th,.refund-comparison thead th,.v2-profit-table thead th,table.data-table thead th{background:#fff;color:var(--ink-500);font-size:var(--fs-13);height:36px;border-bottom:1px solid var(--line)}
.v2-table-wrap,.sku-table-wrap,.v2-profit .table-wrap,.sales-shop-change .table-wrap,.pdd-shop-overview .table-wrap,.pdd-service-detail .table-wrap,.pdd-logistics .table-wrap{border-color:var(--line);border-radius:var(--radius)}
.v2-table tbody tr:hover>*,.sku-table tbody tr:hover>*,.v2-profit-table tbody tr:hover>*,.finance-table tbody tr:hover>*,table.data-table tbody tr:hover>*{background:#f3f5fa}
td.is-num,th.is-num{text-align:right;font-variant-numeric:tabular-nums}
th.is-num .table-interaction-sort{justify-content:flex-end;margin-left:auto}
.model-cell .sku-thumb-button,.model-cell .sku-thumb-fallback,.sku-table .sku-thumb-button,.sku-table .sku-thumb-fallback{flex-basis:24px;width:24px;height:24px;border-radius:4px}
.model-cell{gap:8px}
/* 10 表格上方「当前已显示…仅本表排序」不再显示（读屏仍可读到）；改过排序才出现「恢复默认排序」；未排序列的箭头变淡 */
.table-interaction-bar{position:relative;display:flex;justify-content:flex-end;min-height:0;margin:0;padding:0;border:0;background:none}
.table-interaction-bar>[role="status"]{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;padding:0}
.table-interaction-reset{padding:4px 0;border:0;background:none;color:var(--accent);font-size:var(--fs-12);min-height:0}
/* 没改过排序时：透明、不占位，但仍在读屏与键盘可达的结构里 */
.table-interaction-reset:disabled{position:absolute;right:0;top:0;opacity:0;pointer-events:none}
@media(max-width:860px),(hover:none){.table-interaction-reset:not(:disabled){min-height:44px;padding:0 8px}}
th[aria-sort="none"] .table-interaction-arrow{opacity:.3}
th[aria-sort="none"]:hover .table-interaction-arrow,th[aria-sort="none"] .table-interaction-sort:focus-visible .table-interaction-arrow{opacity:.75}
/* 10 指标说明：电脑上指标名下画虚线，鼠标停留显示说明，ⓘ 隐去（键盘聚焦或鼠标移上时出现）；手机上保留小 ⓘ */
@media (hover:hover){
  .metric-tip{opacity:0;transition:opacity var(--t-fast)}
  .metric-tip:focus-visible,.metric-tip[aria-expanded="true"],:is(th,.v2-kpi-head,.v2-kpi-meta dt,.fb-item>span,.v2-metric-label,.ov-label,.logistics-stat>span,.refund-tile>span,.metric-card-mini-head>span,[data-metric-label]):hover>.metric-tip{opacity:1}
  th:has(>.metric-tip){position:relative}
  th>.metric-tip{position:absolute;top:50%;right:-4px;transform:translateY(-50%);margin:0}
  th:has(>.metric-tip)>.table-interaction-sort>span:first-child,
  th:has(>.metric-tip):not(:has(>.table-interaction-sort)),
  .v2-kpi-head:has(>.metric-tip)>.v2-kpi-label,
  :is(.v2-kpi-meta dt,.fb-item>span,.v2-metric-label,.ov-label,.logistics-stat>span,.refund-tile>span,.metric-card-mini-head>span,[data-metric-label]):has(>.metric-tip){text-decoration:underline dotted var(--ink-300);text-decoration-thickness:1px;text-underline-offset:4px}
}
@media (hover:none){.metric-tip{opacity:.55}}
/* 13 空状态：一行话说清，不放图标、不加大框 */
.state-block{display:block;padding:12px 0;border:0;background:none;text-align:left;min-height:0}
.state-block .state-icon{display:none}
.state-block h3{display:inline;margin:0;font-size:var(--fs-14);font-weight:500;color:var(--ink-700)}
.state-block p{display:inline;margin:0 0 0 .5em;font-size:var(--fs-13);color:var(--ink-500)}
.overview-empty{display:block;padding:12px 0;border:0;background:none;text-align:left;min-height:0}
.overview-empty [data-icon]{display:none}
.overview-empty strong{display:inline;font-size:var(--fs-14);font-weight:500;color:var(--ink-700)}
.overview-empty p{display:inline;margin:0 0 0 .5em;font-size:var(--fs-13);color:var(--ink-500)}
.v2-empty{color:var(--ink-500);font-size:var(--fs-14)}
/* 14 顶栏：同一行对齐，去掉框和底色；同步状态改为小圆点 + 时间 */
.topbar{gap:12px;background:rgba(245,245,246,.96);border-bottom:1px solid var(--line)}
.top-actions{gap:4px;align-items:center}
.sync-status{min-height:32px;padding:0 8px;border:0!important;background:none!important;color:var(--ink-500);font-size:var(--fs-13);box-shadow:none}
.sync-status small{font-size:var(--fs-13);color:inherit}
.sync-status .pulse{width:6px;height:6px;margin-right:2px}
.sync-status:hover{background:var(--surface-hover)!important}
.top-refresh,.icon-btn{min-height:32px;min-width:32px;border:0;background:none;color:var(--ink-700);border-radius:var(--radius-sm);box-shadow:none}
.top-refresh:hover,.icon-btn:hover{background:var(--surface-hover)}
.top-refresh.top-sync{min-width:0;padding:0 10px;border:1px solid var(--line);background:#fff;font-size:var(--fs-13);color:var(--ink-700)}
.avatar{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-13);font-weight:600}
/* 侧栏（只限电脑；手机上侧栏变为底部导航，保持原样式）：石墨底，选中项浅一档、左侧细条 */
@media(min-width:861px){
  .sidebar .nav-item{font-size:var(--fs-14);min-height:40px}
  .sidebar{background:var(--v2-navy)}
  .sidebar .nav-item{color:#c4c7cd}
  .sidebar .nav-icon,.sidebar .brand span,.sidebar .nav-caption{color:#9a9ea6}
  .sidebar .nav-item:hover{background:#2a2d32;color:#fff}
  .sidebar .nav-item.active{background:#33363c;color:#fff}
  .sidebar .nav-item.active .nav-icon{color:#fff}
  .sidebar .nav-item.active::before{background:#8fa8e8}
  .sidebar .nav-item:focus-visible{outline-color:#8fa8e8}
}
.nav-badge{border-radius:999px;background:var(--red)}
/* 9 图表：浅色面积、极淡网格、只标最后一天（其余点隐形但仍可悬停） */
.overview-chart .overview-gridline{stroke:#eef0f3}
.overview-chart text{fill:var(--ink-500);font-size:var(--fs-12)}
.overview-chart .overview-area{fill:var(--accent);fill-opacity:.08;stroke:none}
.overview-chart .overview-line{stroke-width:2;color:var(--accent)}
.overview-chart circle{fill:var(--accent);opacity:0}
.overview-chart circle.is-last{opacity:1}
.overview-chart .overview-end-label{fill:var(--ink-900);font-weight:600;font-size:var(--fs-12)}
/* 16 动效：只留悬停反馈、抽屉滑入、刷新转圈；其余动画一律关闭 */
*,*::before,*::after{animation-name:none!important}
.top-refresh.is-refreshing [data-icon],.loading-indicator,.sync-phase .loading-indicator,.pdd-login-busy .loading-indicator{animation-name:refreshSpin!important}
.v2-card,.v2-kpi,.v2-issue,.panel{transition:border-color var(--t-fast)}
/* 17 登录页：只留品牌、一句说明和登录框，居中 */
.login-gate{background:var(--canvas)}
.login-layout{grid-template-columns:minmax(0,26rem);width:min(26rem,100%);min-height:0;border:1px solid var(--line);border-radius:var(--radius);box-shadow:none}
.login-story{display:none}
.login-card{width:100%;padding:32px}
.login-card .eyebrow{display:none}
.login-card .login-brand{display:flex!important;align-items:center;gap:12px;margin:0 0 8px;padding:0}
.login-card .login-brand .brand-mark{width:32px;height:32px}
.login-card .login-brand strong{color:var(--ink-900);font-size:var(--fs-16);font-weight:600}
.login-card .login-brand span{color:var(--ink-500);font-size:var(--fs-13)}
.login-card h2{font-size:var(--fs-20);font-weight:600;margin-top:16px}
.login-security{color:var(--ink-500);font-size:var(--fs-13)}
/* 15 手机端：指标卡只留名称、数字、一行涨跌；顶部只留页面名与同步小圆点 */
@media(max-width:620px){
  .v2-kpi{padding:12px}
  .v2-kpi .v2-kpi-meta,.v2-kpi .v2-kpi-vs{display:none}
  .v2-kpi-value{font-size:var(--fs-20)}
  .sync-status small{max-width:4.5rem;overflow:hidden;text-overflow:ellipsis}
  .global-range{max-width:100%;overflow-x:auto}
  .login-layout{border:0}
}
/* 5 对齐：经营总览左右两列各自往下排（手机上照旧单列、收起规则不变） */
.v2-grid-2.v2-cols{align-items:start}
.v2-col{display:grid;gap:var(--ui-gap);align-content:start;min-width:0}
.v2-col>.v2-stack{display:grid;gap:var(--ui-gap)}
@media(max-width:860px){.v2-grid-2.v2-cols{display:flex;flex-direction:column;gap:var(--ui-gap)}.v2-cols>.v2-col{display:contents}.v2-cols .v2-inbox-card{order:-1}}
/* 18 顶栏平台、店铺菜单（10-17 用户选「收进顶栏」）：日期按钮右边两个小按钮，点开浮层菜单，不推开页面 */
.v2-scope.overview-scope,.v2-scope.page-scope{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.scope-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-left:auto}
.scope-meta .v2-zero-toggle,.scope-meta .v2-scope-quality{margin-left:0}
.scope-error{flex-basis:100%;color:var(--v2-bad);font-size:var(--fs-13)}
.scope-error:empty{display:none}
.scope-menus{display:flex;align-items:center;gap:6px;flex-shrink:0}
.scope-menus[hidden]{display:none}
.scope-menu{position:relative}
.scope-menu-btn{display:inline-flex;align-items:center;gap:6px;height:32px;max-width:220px;padding:0 10px 0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--ink-700);font:inherit;font-size:var(--fs-14);white-space:nowrap;cursor:pointer}
.scope-menu-btn:hover{border-color:var(--border-hover);color:var(--ink-900)}
.scope-menu-btn[aria-expanded="true"]{border-color:var(--accent);color:var(--ink-900)}
.scope-menu-btn.is-set{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent);font-weight:600}
.scope-menu-btn:focus-visible{outline:2px solid var(--focus-outline);outline-offset:1px}
.scope-menu-label{overflow:hidden;text-overflow:ellipsis}
.scope-caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.6;flex-shrink:0}
.scope-menu-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:70;display:grid;min-width:200px;max-height:min(60vh,360px);overflow:auto;padding:4px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-md)}
.scope-menu-pop[hidden]{display:none}
.scope-menu-pop button{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 10px;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--ink-900);font:inherit;font-size:var(--fs-14);text-align:left;white-space:nowrap;cursor:pointer}
.scope-menu-pop button:hover,.scope-menu-pop button:focus-visible{background:var(--surface-hover);outline:0}
.scope-menu-pop button[aria-checked="true"]{color:var(--accent);font-weight:600}
.scope-check{width:14px;flex-shrink:0}
.scope-menu-pop button[aria-checked="true"] .scope-check::before{content:"✓"}
.scope-item-label{flex:1}
.scope-menu-pop small{color:var(--ink-500);font-size:var(--fs-12,12px);font-weight:400}
/* 换日期、平台、店铺时旧页面变淡留着，新数据到了一次换上 */
.content-hold{display:block}
.content-hold-tip{position:sticky;top:8px;z-index:5;width:max-content;margin:0 auto 8px;padding:4px 12px;border-radius:999px;background:var(--ink-900);color:#fff;font-size:var(--fs-13);opacity:1}
#content.is-held{display:none}
@media(max-width:620px){
  .scope-menus{order:6;flex-basis:100%;gap:8px}
  .scope-menu{flex:1;min-width:0}
  .scope-menu-btn{width:100%;max-width:none;height:40px;justify-content:space-between}
  .scope-menu-pop{left:0;right:0;min-width:0}
  .scope-menus .scope-menu:last-child .scope-menu-pop{left:auto}
  .scope-meta{margin-left:0}
}
/* 20 分段按钮、页签全站统一（10-17 用户：边框拼接错位、选中样式不一致）：浅灰底槽 + 选中白色小块，按钮不各自描边 */
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets){display:inline-flex;flex-wrap:nowrap;align-items:center;gap:2px;width:auto;max-width:100%;padding:2px;border:0;border-radius:var(--radius-lg);background:var(--surface-sunken);overflow-x:auto;scrollbar-width:none;box-shadow:none;justify-content:flex-start}
:is(.global-range,.v2-tabs,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)::-webkit-scrollbar{display:none}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button{flex:0 0 auto;min-height:28px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-700);font-size:var(--fs-14);font-weight:400;box-shadow:none;white-space:nowrap}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button:first-child{border-left:0}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button:hover{background:rgba(29,31,35,.05);color:var(--ink-900)}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button:is([aria-pressed="true"],[aria-selected="true"],.active){background:#fff;color:var(--ink-900);font-weight:600;box-shadow:0 0 0 1px var(--border-strong)}
:is(.global-range,.v2-tabs,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button:focus-visible{outline:2px solid var(--focus-outline);outline-offset:-2px}
:is(.v2-tabs,.team-tabs)>button :is(b,.team-tab-count){margin-left:4px;padding:0;min-width:0;height:auto;background:transparent;color:var(--ink-500);font-weight:500}
:is(.v2-tabs,.team-tabs)>button[aria-pressed="true"] :is(b,.team-tab-count){color:var(--accent)}
:is(.v2-tabs,.overview-tabs)>select{flex:0 0 auto;height:28px;min-height:28px;padding:0 24px 0 10px;border:0;border-radius:var(--radius-sm);background-color:transparent;color:var(--ink-700);font-size:var(--fs-14)}
@media(max-width:620px){
  :is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets){max-width:100%}
  :is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button{min-height:40px}
  .global-range{flex-basis:100%;border:0}
}
/* 19 知识库提问框跟随石墨配色：去掉藏青渐变，和经营问答输入区同一种白底卡片 + 钴蓝按钮 */
.kb-ask{background:#fff;color:var(--ink-900);border:1px solid var(--accent-line);border-radius:var(--radius-lg)}
.kb-ask-label{color:var(--ink-900)}
.kb-ask-row input{border:1px solid var(--border-strong);border-radius:var(--radius-sm)}
.kb-ask-row input:focus{outline:2px solid var(--focus-outline);outline-offset:0;border-color:var(--accent)}
.kb-ask .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.kb-ask .btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.kb-answer{border:1px solid var(--line)}
/* 21 标签式筛选（店铺、分类、交给谁、截止时间等）与分段按钮同一套：浅灰底，选中白底细边；去掉旧的胶囊描边和藏青浅底 */
.v2-shop-chip,.filter-chip{display:inline-flex;align-items:center;gap:6px;height:30px;min-height:30px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--ink-700);font-size:var(--fs-14);font-weight:400;box-shadow:none}
.v2-shop-chip:hover,.filter-chip:hover{border-color:transparent;background:#e9eaed;color:var(--ink-900)}
.v2-shop-chip[aria-pressed="true"],.filter-chip.active,.filter-chip[aria-pressed="true"]{border-color:var(--border-strong);background:#fff;color:var(--ink-900);font-weight:600}
.v2-shop-chip b,.filter-chip b{color:var(--ink-500);font-weight:500}
.v2-shop-chip[aria-pressed="true"] b,.filter-chip.active b{color:var(--accent)}
.v2-shop-chip:focus-visible,.filter-chip:focus-visible{outline:2px solid var(--focus-outline);outline-offset:1px}
@media(max-width:620px){.v2-shop-chip,.filter-chip{height:40px;min-height:40px}}
/* 分段按钮槽按内容宽度，不再被父级拉成整行（每日必做 / 交办任务那条线） */
:is(.global-range,.v2-tabs,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets){width:fit-content;justify-self:start}
.after-sales-detail>.after-sales-tabs button[aria-pressed="true"] b,.after-sales-detail-tools .after-sales-tabs button[aria-pressed="true"] b{color:var(--accent)}
.after-sales-detail-tools .after-sales-tabs{flex-wrap:nowrap}
.after-sales-more{display:inline-flex}
.after-sales-more select{height:28px;min-height:28px;padding:0 26px 0 12px;border:0;border-radius:var(--radius-sm);background-color:transparent;color:var(--ink-700);font-size:var(--fs-14);box-shadow:none}
.after-sales-more.is-active select{background-color:#fff;color:var(--ink-900);font-weight:600;box-shadow:0 0 0 1px var(--border-strong)}
/* 顶栏放了平台、店铺菜单后，窄一些的电脑屏幕收起顶栏提问框（侧栏「经营问答」仍可用），避免右侧按钮被挤出 */
/* 程序切页后把焦点放到标题上，不画焦点框（键盘操作时的焦点框不受影响） */
[tabindex="-1"]:focus:not(:focus-visible),h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus{outline:none}
.kb-filter{display:inline-flex;align-items:center;gap:6px;height:30px;min-height:30px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--ink-700);font-size:var(--fs-14);font-weight:400;box-shadow:none}
.kb-filter:hover{border-color:transparent;background:#e9eaed;color:var(--ink-900)}
.kb-filter[aria-pressed="true"]{border-color:var(--border-strong);background:#fff;color:var(--ink-900);font-weight:600}
.kb-filter b{margin-left:0;color:var(--ink-500);font-weight:500}
.kb-filter[aria-pressed="true"] b{color:var(--accent)}
.kb-tag-btn[aria-pressed="true"]{background:#fff;box-shadow:0 0 0 1px var(--border-strong);color:var(--ink-900)}
@media(max-width:620px){.kb-filter{height:40px;min-height:40px}}
/* 截止时间、口径入口这一行不再用浅蓝底条，和页面底色一致、靠右小字 */
.v2-scope.overview-scope{min-height:0;padding:0;background:transparent}
/* 861–1400px 宽：顶栏放不下时分两行——上行页面名和右侧按钮，下行日期、平台、店铺 */
@media(min-width:861px) and (max-width:1400px){
  .topbar:has(#scopeMenus:not([hidden])){flex-wrap:wrap;row-gap:8px}
  .topbar:has(#scopeMenus:not([hidden]))::after{content:"";order:4;flex-basis:100%;height:0}
  .topbar:has(#scopeMenus:not([hidden])) .global-range{order:5}
  .topbar:has(#scopeMenus:not([hidden])) .scope-menus{order:6}
  .topbar:has(#scopeMenus:not([hidden])) .top-actions{margin-left:auto}
}
/* 型号广告费率按天前后翻（顶栏选多天时） */
.day-nav{display:inline-flex;align-items:center;gap:4px;margin-left:6px;vertical-align:middle}
.day-nav strong{min-width:84px;text-align:center;font-variant-numeric:tabular-nums}
.day-nav-btn{width:24px;height:24px;border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:#fff;color:var(--ink-700);font-size:var(--fs-14);line-height:1;cursor:pointer}
.day-nav-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--ink-900)}
.day-nav-btn:disabled{opacity:.35;cursor:default}
@media(max-width:620px){.day-nav-btn{width:36px;height:36px}}
/* 启动占位（与经营总览同一布局，矮一些；数据到了卡片平滑展开） */
.sk-page{display:grid;gap:var(--ui-gap,16px)}
.sk-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0}
.sk-kpi{display:grid;gap:10px;padding:20px 22px;border-left:1px solid var(--line)}
.sk-kpi:first-child{border-left:0}
.sk-kpi .sk-num{width:60%;height:28px;margin:0}
.sk-kpi .sk-line,.sk-block .sk-line{margin:0}
.sk-block{display:grid;gap:12px;padding:20px 22px}
@media(max-width:620px){.sk-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sk-kpi:nth-child(3){border-left:0}.sk-kpi:nth-child(n+3){border-top:1px solid var(--line)}}
/* 走势图只允许横向滚动（天数多时），不出现竖向滚动条 */
.overview-chart-scroll{overflow-y:hidden}
/* 22 商品缩略图统一（10-17 用户：缩略图尺寸不对）：原来小格里框 32px、图 40px，图被裁掉一截；一律 40×40 正方形，图按比例完整放进框里 */
.sku-thumb-button,.model-cell .sku-thumb-button,.model-cell.is-small .sku-thumb-button{display:block;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px;padding:0;align-self:center;box-sizing:border-box;overflow:hidden}
.sku-thumb-button>.sku-thumb{width:100%;height:100%;flex:none;border-radius:inherit;object-fit:contain;background:#fff}
/* 没有商品图的灰色占位（10-17 用户：没传图到 ERP 的灰图尺寸不对）：在任何表格、排行、列表里都和真图一样是 40×40 正方形、同样的边框圆角 */
.sku-thumb-fallback,.model-cell .sku-thumb-fallback,.model-cell.is-small .sku-thumb-fallback,.sku-table .sku-thumb-fallback,.v2-rank li .sku-thumb-fallback,.pdd-activity-row .sku-thumb-fallback{flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;max-width:40px;max-height:40px;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-xs);align-self:center}
.sku-thumb-button .sku-thumb-fallback{border:0;width:100%;height:100%;min-width:0;min-height:0}
.model-thumb-slot{display:inline-flex;flex:0 0 40px;width:40px;height:40px;align-self:center}
.model-cell.is-small{align-items:center}
/* 23 经营总览左右两栏底边对齐（10-17 用户：左栏店铺卡下面空一截，不齐）：电脑上两栏等高，每栏最后一张卡拉伸到底，卡内内容仍从上排 */
@media(min-width:861px){
  .v2-grid-2.v2-cols>.v2-col{display:flex;flex-direction:column;gap:var(--ui-gap)}
  .v2-grid-2.v2-cols>.v2-col>.v2-stack{display:flex;flex-direction:column;gap:var(--ui-gap)}
  .v2-grid-2.v2-cols>.v2-col>:last-child,.v2-grid-2.v2-cols>.v2-col>.v2-stack:last-child>:last-child{flex:1 1 auto;align-content:start}
}
/* 库存：售后仓列淡一档（不算可卖）；需盘点清单 */
.v2-muted-num{color:var(--ink-500)}
/* 24 知识库：问一问 / 按参考写新稿 切换；起草区 */
.kb-ask-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.kb-ask-hint{margin:0;color:var(--ink-500);font-size:var(--fs-13)}
.kb-draft-row{align-items:flex-start}
.kb-draft-row textarea{flex:1;min-width:0;min-height:72px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-14);line-height:1.6;resize:vertical;color:var(--ink-900);background:#fff}
.kb-draft-row textarea:focus{outline:2px solid var(--focus-outline);outline-offset:0;border-color:var(--accent)}
.kb-draft-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.kb-draft-head h3{margin:0;font-size:var(--fs-16);font-weight:600;color:var(--ink-900)}
.kb-draft-refs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:var(--fs-13);color:var(--ink-500)}
.kb-ref-chip{display:inline-flex;align-items:center;gap:2px;border-radius:var(--radius-sm);background:var(--surface-sunken);padding-right:4px}
.kb-ref-chip.is-off .kb-source{opacity:.45;text-decoration:line-through}
.kb-ref-toggle{border:0;background:transparent;color:var(--accent);font-size:var(--fs-12,12px);cursor:pointer;padding:2px 4px}
.kb-ref-chip.is-off .kb-ref-toggle{color:var(--ink-500)}
.kb-draft-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
@media(max-width:620px){.kb-draft-row{flex-direction:column}.kb-draft-row textarea{width:100%}}
/* 21b 知识库分类标签：旧规则 .kb-filters .kb-filter 更具体，这里同等具体度覆盖成统一样式（浅灰底、选中白底细边） */
.kb-filters .kb-filter{height:30px;min-height:30px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:var(--fs-14);color:var(--ink-700)}
.kb-filters .kb-filter:hover{border-color:transparent;background:#e9eaed;color:var(--ink-900)}
.kb-filters .kb-filter[aria-pressed="true"]{border-color:var(--border-strong);background:#fff;color:var(--ink-900);font-weight:600}
.kb-filters .kb-filter[aria-pressed="true"] b{color:var(--accent)}
@media(max-width:620px){.kb-filters .kb-filter{height:40px;min-height:40px}}

/* 25 广告费率三条线（10-17 用户：基准 10%、偏高 15%、很高 20%，进度条上色）：底色四段淡色，填充按所在档上色，刻度下标名称 */
.v2-rate-meter{background:linear-gradient(to right,var(--green-soft) 0 40%,#f8f2dc 40% 60%,var(--amber-soft) 60% 80%,var(--red-soft) 80% 100%)}
.v2-rate-meter i{background:var(--green)}
.v2-rate-meter.is-over i{background:#c9a227}
.v2-rate-meter.is-high i{background:#d9822b}
.v2-rate-meter.is-very-high i{background:var(--red)}
.v2-rate-meter.is-zero i,.v2-rate-meter.is-none i{background:var(--ink-300)}
.v2-rate-meter em{top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink-500);border-radius:4px}
.v2-rate-scale{position:relative;height:1rem;margin-top:.25rem;font-size:var(--fs-12);color:var(--ui-ink-3);line-height:1rem}
.v2-rate-scale span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.v2-rate-word{font-weight:600}
.v2-rate-word.is-ok{color:var(--green)}.v2-rate-word.is-over{color:var(--ui-ink-2)}.v2-rate-word.is-high{color:var(--amber)}.v2-rate-word.is-very-high{color:var(--red)}.v2-rate-word.is-zero{color:var(--ui-ink-3);font-weight:400}
.v2-muted.is-bad{color:var(--red)}
td.v2-bad small,td.v2-warn small{color:inherit}
/* 26 全部已接入的拼多多店（10-17 用户：新接入的店各板块都要有）：首页推广卡下逐店一行；各店对比最后一行合计；型号费率每店一段 */
.v2-promo-scope{margin:-.25rem 0 .25rem;font-size:var(--fs-13)}
.v2-promo-shops{list-style:none;margin:.5rem 0 0;padding:.5rem 0 0;border-top:1px solid var(--line);display:grid;gap:.375rem}
.v2-promo-shops li{display:grid;grid-template-columns:minmax(0,1fr) auto 4.25rem 3.5rem;gap:.75rem;align-items:baseline;font-size:var(--fs-13);color:var(--ui-ink-2)}
.v2-promo-shops li i{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--ui-ink)}
.v2-promo-shops li.v2-promo-shops-head{font-size:var(--fs-12,.75rem);color:var(--ui-ink-3)}
.v2-promo-shops li.v2-promo-shops-head b,.v2-promo-shops li.v2-promo-shops-head i{font-weight:400;color:var(--ui-ink-3)}
.v2-promo-shops li.v2-promo-shops-head b{text-align:right}
.v2-promo-shops li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-promo-shops li b{font-weight:600;color:var(--ui-ink)}
.v2-promo-shops li em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums}
.v2-promo-shops li em.v2-warn{color:var(--amber)}.v2-promo-shops li em.v2-bad{color:var(--red)}
.pdd-shop-overview tfoot .pdd-total-row th,.pdd-shop-overview tfoot .pdd-total-row td{border-top:1px solid var(--border-strong);font-weight:600;background:var(--surface-raised)}
.pdd-shop-overview tfoot .pdd-total-row.is-current-row th,.pdd-shop-overview tfoot .pdd-total-row.is-current-row td{background:var(--accent-soft)}
.pdd-shop-analysis+.pdd-shop-analysis{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line)}
.pdd-shop-analysis-title{margin:0 0 .5rem;font-size:var(--fs-16);font-weight:600;color:var(--ui-ink)}
.inbox-shop-block+.inbox-shop-block{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}
.inbox-shop-block h3{margin:0 0 .25rem;font-size:var(--fs-14);font-weight:600}
.pdd-shop-overview td small{margin-left:.25rem}

/* 27 一键同步（10-18 用户：要更好用）：「立即同步」按当前页面同步，进度写在按钮上；右边 ▾ 打开同步面板 */
.sync-split{display:inline-flex;align-items:stretch}
.sync-split #globalSyncBtn{border-top-right-radius:0;border-bottom-right-radius:0;gap:.375rem;min-width:6.75rem;justify-content:center}
.sync-split .sync-more{min-width:0;width:1.75rem;padding:0;margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;justify-content:center;display:inline-flex;align-items:center}
.sync-split .sync-more [data-icon]{width:12px;height:12px}
.sync-split .sync-more svg{width:12px;height:12px}
#globalSyncBtn.is-busy::before{content:'';width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sync-spin .8s linear infinite;flex:0 0 auto}
#globalSyncBtn.is-done{color:var(--green);border-color:var(--green-line)}
#globalSyncBtn.is-failed{color:var(--red);border-color:var(--red-line);background:var(--red-soft)}
@keyframes sync-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#globalSyncBtn.is-busy::before{animation:none;border-top-color:var(--line)}}
@media(max-width:620px){.sync-split{display:none!important}}

/* 28 扫码窗口验证码输入（10-18：对账中心可能要短信验证码） */
.pdd-login-type{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 0}
.pdd-login-type label{font-size:var(--fs-13);color:var(--ui-ink-2)}
.pdd-login-type input{width:9rem;height:2rem;padding:0 .625rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-variant-numeric:tabular-nums;letter-spacing:.08em}
.pdd-login-shop-state[data-tone="bad"]{color:var(--red)}.pdd-login-shop-state[data-tone="warn"]{color:var(--amber)}

/* 29 待处理按业务分组（10-23 用户：没分类、体验不佳）：每组一张卡，组头写这组管什么和紧急几条；组内每条一行，右侧数量和按钮 */
.v2-inbox-list{gap:var(--ui-gap)}
.v2-inbox-group{padding:0;overflow:hidden}
.v2-inbox-group-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:12px var(--ui-card-pad);border-bottom:1px solid var(--line);background:var(--canvas)}
.v2-inbox-group-head h2{margin:0 4px 0 0;font-size:var(--fs-16)}
.v2-inbox-group-head small{color:var(--text-3);font-size:var(--fs-13)}
.v2-inbox-group-list{display:grid}
.v2-inbox-group .v2-issue{grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:start;border:0;border-top:1px solid var(--line);border-left:3px solid #d39a2c;border-radius:0;padding:14px var(--ui-card-pad) 14px 17px;background:transparent}
.v2-inbox-group .v2-issue:first-child{border-top:0}
.v2-inbox-group .v2-issue.risk{border-left-color:var(--v2-bad)}
.v2-inbox-group .v2-issue.info{border-left-color:#c5cfdb}
.v2-inbox-group .v2-issue:hover{border-color:var(--line);border-left-color:inherit;background:#fafafb}
.v2-inbox-group .v2-issue.risk:hover{border-left-color:var(--v2-bad)}
.v2-inbox-group .v2-issue:not(.risk):not(.info):hover{border-left-color:#d39a2c}
.v2-inbox-group .v2-issue.info:hover{border-left-color:#c5cfdb}
.v2-issue-main{display:grid;gap:6px;min-width:0}
.v2-inbox-group .v2-issue-top{flex-wrap:wrap;gap:4px 8px}
.v2-issue-main h3{margin:0;flex:1 1 16rem;font-size:var(--fs-15);font-weight:600;line-height:var(--lh-heading);color:var(--text)}
.v2-issue-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.v2-issue-count{font-size:var(--fs-15);font-weight:600;color:var(--text);white-space:nowrap}
.v2-issue-side .v2-issue-actions{margin-top:0;justify-content:flex-end;flex-wrap:nowrap}
.v2-inbox-group .v2-issue>:not(.v2-issue-main):not(.v2-issue-side){grid-column:1/-1}
.v2-inbox-later .v2-inbox-group{margin-top:8px}
@media(max-width:620px){
  .v2-inbox-group-head{padding:12px 14px}
  .v2-inbox-group-head small{flex-basis:100%}
  .v2-inbox-group .v2-issue{grid-template-columns:minmax(0,1fr);row-gap:10px;padding:14px 14px 14px 13px}
  .v2-issue-side{flex-direction:row;align-items:center}
  .v2-issue-count{flex:0 0 auto}
  .v2-issue-side .v2-issue-actions{flex:1}
}

/* 30 装数据的展开（10-23 用户：一行小字单独挂着、右边大片空白不美观）：整宽条，右侧箭头；展开后表格贴边铺满 */
details.v2-disclosure{display:block;margin:var(--sp-3) 0 0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}
details.v2-disclosure>summary{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:var(--fs-14);font-weight:600;color:var(--text);text-decoration:none}
details.v2-disclosure>summary:hover{background:var(--canvas);text-decoration:none}
details.v2-disclosure>summary::before{order:9;margin-left:auto;margin-right:2px;color:var(--text-3)}
details.v2-disclosure[open]>summary{border-bottom:1px solid var(--line)}
details.v2-disclosure>.v2-note-body{margin:0;padding:12px 14px;border:0;border-radius:0;background:transparent;max-width:none}
details.v2-disclosure>.v2-note-body .table-wrap{margin:0}
.pdd-items-table td small{display:block;font-size:var(--fs-13)}
.pdd-activity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(22rem,1fr));gap:8px 16px}
.pdd-activity-grid .pdd-activity-row{min-width:0}
@media(max-width:620px){.pdd-activity-grid{grid-template-columns:minmax(0,1fr)}}
/* 数据完整性：缺天直接补采 */
.cov-fix .cov-recollect{margin-left:8px;vertical-align:middle}
.cov-run{display:inline-block;margin-left:8px;color:var(--text-2);font-weight:400}
.cov-run.cov-bad{color:var(--red)}
.v2-disclosure>.v2-note-body>.table-wrap{border:0;border-radius:0;box-shadow:none}
.pdd-items-detail>.v2-note-body{padding:0 14px 4px}
.pdd-items-table thead th:not(:first-child),.pdd-items-table td{text-align:right}
.pdd-items-table td small{color:inherit}
.cov-run{margin-left:0}

/* 31 立即同步结果统一写在状态条（10-29 用户：不知道同步成没成、几点成的） */
.sync-status.is-syncing .pulse{background:transparent;border:2px solid var(--line);border-top-color:var(--accent);animation:sync-spin .8s linear infinite}
.sync-status.is-failed small{color:var(--red);font-weight:600}
.sync-status.is-failed .pulse{background:var(--red)}
@media(prefers-reduced-motion:reduce){.sync-status.is-syncing .pulse{animation:none}}
.sync-status.is-syncing .pulse,.sync-status.is-failed .pulse{display:inline-block;margin-right:6px;vertical-align:middle}
/* 32 打开页面不做进场动画（10-29 用户：框固定、只加载数据） */
#content.v2-enter{animation:none!important}

/* 33 口径说明：卡片标题行右侧的小按钮，点开在侧边抽屉看全文（10-29 用户：底下挂一行小字展开不好看） */
.explain-btn{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px 0 6px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text-2);font:inherit;font-size:var(--fs-13);line-height:1;white-space:nowrap;cursor:pointer;vertical-align:middle}
.explain-btn>span{display:inline-grid;place-items:center;width:15px;height:15px;border:1.3px solid currentColor;border-radius:50%;font-size:var(--fs-12);font-weight:700;font-style:normal}
.explain-btn:hover{border-color:var(--accent);color:var(--accent)}
.explain-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.head-explain{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto;align-self:center}
.v2-card-head>.head-explain,.panel-head>.head-explain{flex:0 0 auto}
:not(.head-explain)>.explain-btn{margin:4px 0}
.explain-body{line-height:1.75;color:var(--text);font-size:var(--fs-14)}
.explain-body p{margin:0 0 10px}
.explain-body p:last-child{margin-bottom:0}
.explain-body ul,.explain-body ol{margin:0 0 10px;padding-left:1.2rem;display:grid;gap:6px}
.explain-body b,.explain-body strong{color:var(--text);font-weight:600}
.has-explain{justify-content:flex-start!important;flex-wrap:wrap}
.has-explain>:first-child{margin-right:auto}
.has-explain>.head-explain{margin-left:0}
.v2-card-head.v2-wrap.has-explain>.head-explain{margin-left:auto}

/* ===== 34. 金额口径开关（2026-10-29）：店铺后台 / 旺店通，放在首页范围条与毛利页口径行 ===== */
.amount-basis{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.375rem;font-size:var(--fs-14);color:var(--ui-ink-2)}
.amount-basis-label{color:var(--ui-ink-3)}
.amount-basis button{min-height:1.875rem;padding:0 .625rem;border:1px solid var(--v2-line);border-radius:8px;background:#fff;color:var(--ui-ink);font-size:var(--fs-14);white-space:nowrap}
.amount-basis button+button{margin-left:-.25rem}
.amount-basis button:hover{background:#eef2f6}
.amount-basis button[aria-pressed="true"]{background:var(--v2-navy);border-color:var(--v2-navy);color:#fff;font-weight:600}
.amount-basis button:focus-visible{outline:2px solid var(--v2-accent);outline-offset:1px}
.amount-basis small{color:var(--ui-ink-3);font-size:var(--fs-13,.8125rem)}
.scope-meta .amount-basis{margin-left:.75rem}
.finance-boundary .amount-basis{margin-right:.5rem}

/* ===== 35. 载入占位按最终大小（2026-10-29 用户：载入还有不完整形态的模块）：读取中的走势、经营分布先占满图表区 ===== */
.v2-card .overview-empty.loading{display:grid;place-items:center;align-content:center;gap:.375rem;min-height:15rem;text-align:center}
.v2-card .overview-empty.loading [data-icon]{display:block;width:1.5rem;height:1.5rem;color:var(--v2-accent)}
.is-holding{overflow:visible}

/* ==========================================================================
   36. 方案 A「简账」（2026-10-30 用户选定）：浅色侧栏、靛蓝单一强调色、大留白、细线无阴影；
   分段按钮统一成浅灰槽 + 白色选中块；涨跌带浅色底；说明小字统一位置与间距；同一行卡片等高。
   只改观感，不动结构、功能与口径；放在文件末尾覆盖前面各层。
   ========================================================================== */
:root{
  --ink-900:#101828;--ink-700:#344054;--ink-500:#5b6474;--ink-400:#667085;--ink-300:#98a2b3;
  --line:#e7eaf0;--line-soft:#f0f2f5;--canvas:#f6f7f9;
  --bg:var(--canvas);--surface:#fff;--surface-sunken:#eef0f4;--surface-raised:#fafbfc;--surface-hover:#f2f4f7;--surface-nav:#fff;
  --text:var(--ink-900);--text-2:var(--ink-700);--text-3:var(--ink-400);--neutral:var(--ink-400);
  --ui-ink:var(--ink-900);--ui-ink-2:var(--ink-700);--ui-ink-3:var(--ink-400);
  --border:var(--line);--border-strong:#d9dee6;--border-hover:#c5ccd7;--border-active:#c7d2fe;--border-nav:var(--line);
  --ui-line:var(--line);--ui-line-strong:#d9dee6;--v2-line:var(--line);
  --accent:#3451d1;--accent-hover:#23389c;--accent-deep:#101828;--accent-soft:#eef2ff;--accent-line:#c7d2fe;
  --v2-accent:#3451d1;--v2-navy:#101828;--v2-navy-2:#344054;--v2-bg:var(--canvas);
  --green:#067647;--green-soft:#ecfdf3;--green-line:#abefc6;
  --red:#b42318;--red-soft:#fef3f2;--red-line:#fecdca;
  --amber:#b54708;--amber-soft:#fffaeb;--amber-line:#fedf89;
  --blue:#3451d1;--blue-soft:#eef2ff;--blue-line:#c7d2fe;
  --neutral-soft:#f2f4f7;--neutral-line:var(--line);
  --v2-good:var(--green);--v2-bad:var(--red);--v2-warn:var(--amber);
  --focus-ring:0 0 0 3px rgba(52,81,209,.20);--focus-outline:#3451d1;
  /* 圆角：标签 6、控件 10、卡片 16 */
  --radius-xs:6px;--radius-sm:10px;--radius:16px;--radius-lg:16px;--ui-card-r:16px;
  --shadow-md:0 8px 24px rgba(16,24,40,.08);--shadow-lg:0 16px 40px rgba(16,24,40,.12);
  --seg-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px rgba(16,24,40,.04);
  /* 间距：卡片内 24、卡片之间 16 */
  --ui-card-pad:24px;--ui-gap:16px;--ui-row-h:44px;--ui-btn-h:36px;--ui-btn-h-sm:30px;
}
body{background:var(--canvas);color:var(--text)}
.main,.content{background:var(--canvas)}
@media(min-width:1101px){.content{padding:24px 32px 64px}}
.v2-page{gap:var(--ui-gap)}
::selection{background:#dfe5ff}

/* 侧栏（电脑）：白底、细右边线；选中项浅靛蓝底 + 靛蓝字，不再用左侧细条 */
@media(min-width:861px){
  .sidebar{background:#fff;color:var(--ink-700);border-right:1px solid var(--line)}
  .sidebar .brand strong{color:var(--ink-900)}
  .sidebar .brand span{color:var(--ink-400)}
  .sidebar .brand-mark,.sidebar .brand-mark rect{background:var(--accent);fill:var(--accent);border-radius:12px}
  .sidebar .nav{gap:2px}
  .sidebar .nav-item{min-height:40px;border-radius:12px;color:var(--ink-700);font-size:var(--fs-14);font-weight:400}
  .sidebar .nav-icon{color:var(--ink-400)}
  .sidebar .nav-item:hover{background:var(--surface-hover);color:var(--ink-900)}
  .sidebar .nav-item:hover .nav-icon{color:var(--ink-700)}
  .sidebar .nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
  .sidebar .nav-item.active .nav-icon{color:var(--accent)}
  .sidebar .nav-item.active::before{display:none}
  .sidebar .nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
  .sidebar .nav-item.is-detail-parent:not(.active){color:var(--ink-700);font-weight:400}
  .sidebar .nav-item.is-detail-parent:not(.active) .nav-icon{color:var(--ink-400)}
  .sidebar .nav-caption{margin:20px 12px 6px;font-size:var(--fs-12);font-weight:500;letter-spacing:.04em;color:var(--ink-400)}
  .sidebar .nav-divider{margin:12px;background:var(--line)}
  .sidebar .nav-badge{background:var(--red-soft);color:var(--red);font-weight:600}
  .sidebar .nav-badge.is-muted{background:var(--surface-hover);color:var(--ink-500)}
}

/* 顶栏：与页面同底色，标题 22/600；日期分段、平台店铺菜单、按钮同高 36 */
.topbar{background:rgba(246,247,249,.94);border-bottom-color:var(--line)}
.topbar-title{font-size:var(--fs-20);font-weight:600;letter-spacing:-.01em;color:var(--ink-900)}
.scope-menu-btn{height:36px;border-color:var(--border-strong);border-radius:12px;color:var(--ink-700)}
.scope-menu-btn.is-set{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}
.scope-menu-pop{border-radius:12px;padding:6px}
.scope-menu-pop button{border-radius:8px}
.top-refresh,.icon-btn{min-height:36px;min-width:36px;border-radius:12px}
.top-refresh.top-sync{border-radius:12px;border-color:var(--border-strong)}
.avatar{width:36px;height:36px;border-radius:12px}
.sync-status{min-height:36px;color:var(--ink-700)}

/* 分段按钮、页签：浅灰槽（内边距 3）+ 白色选中块（细阴影，不描边） */
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets){gap:2px;padding:3px;border-radius:12px;background:var(--surface-sunken)}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button{min-height:30px;padding:0 12px;border-radius:8px;color:var(--ink-500);font-size:var(--fs-14)}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button:hover{background:rgba(16,24,40,.04);color:var(--ink-900)}
:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button:is([aria-pressed="true"],[aria-selected="true"],.active){background:#fff;color:var(--ink-900);font-weight:600;box-shadow:var(--seg-shadow)}
.after-sales-more.is-active select{box-shadow:var(--seg-shadow);border-radius:8px}
/* 标签式筛选同一套：浅灰底，选中白底 + 细阴影 */
.v2-shop-chip,.filter-chip,.kb-filter{height:32px;min-height:32px;border-radius:8px;background:var(--surface-sunken);color:var(--ink-500)}
.v2-shop-chip:hover,.filter-chip:hover,.kb-filter:hover{background:#e6e9ef;color:var(--ink-900)}
.v2-shop-chip[aria-pressed="true"],.filter-chip.active,.filter-chip[aria-pressed="true"],.kb-filter[aria-pressed="true"]{border-color:transparent;background:#fff;color:var(--ink-900);box-shadow:var(--seg-shadow)}
/* 金额口径开关改成同一种分段样式 */
.amount-basis{gap:10px;color:var(--ink-500)}
.amount-basis-label{color:var(--ink-500)}
.amount-basis button{min-height:28px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:var(--surface-sunken);color:var(--ink-500);font-size:var(--fs-13)}
.amount-basis button+button{margin-left:-8px}
.amount-basis button:hover{background:#e6e9ef;color:var(--ink-900)}
.amount-basis button[aria-pressed="true"]{position:relative;z-index:1;background:#fff;border-color:transparent;color:var(--ink-900);font-weight:600;box-shadow:var(--seg-shadow)}
@media(max-width:620px){:is(.global-range,.v2-tabs,.v2-tabs.v2-tabs-pill,.segmented,.team-tabs,.team-layout-switch,.overview-tabs,.wdt-trend-tabs,.overview-presets)>button{min-height:38px}.v2-shop-chip,.filter-chip,.kb-filter{height:40px;min-height:40px}}

/* 按钮：圆角 10，高 36；主按钮靛蓝 */
.btn{min-height:var(--ui-btn-h);border-radius:12px;font-weight:500}
.btn.small{min-height:var(--ui-btn-h-sm);border-radius:8px}
.btn.primary{background:var(--accent);border-color:var(--accent)}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.secondary{border-color:var(--border-strong);color:var(--ink-700)}
.btn.secondary:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--ink-900)}

/* 卡片：16 圆角、细边、无阴影、内边距 24 */
.v2-card,.v2-kpi,.v2-issue,.v2-strip,.panel,.settings-card,.kb-card,.overview-filters{border-color:var(--line);border-radius:var(--radius);box-shadow:none}
.v2-card,.panel,.settings-card{padding:var(--ui-card-pad)}
.v2-card h2,.v2-strip h2,.v2-issue h2,.panel-head h2,.v2-card-head h2,.settings-card h2,.v2-page>.panel h2{font-size:var(--fs-16);font-weight:600;line-height:1.4;color:var(--ink-900)}
.v2-card-foot{border-top-color:var(--line-soft)}

/* 核心指标：一张卡 4 栏改为 4 张独立卡，主数字 32/700 */
.v2-kpi-strip{gap:var(--ui-gap)!important;padding:0;border:0;border-radius:0;background:transparent;overflow:visible}
.v2-kpi-strip .v2-kpi{gap:12px;padding:22px 24px 20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.v2-kpi-strip .v2-kpi+.v2-kpi{border-left:1px solid var(--line)}
.v2-kpi-strip .v2-kpi:hover{background:#fff;border-color:var(--border-strong)}
.v2-kpi-strip .v2-kpi+.v2-kpi:hover{border-left-color:var(--border-strong)}
.v2-kpi-strip .v2-kpi-label{font-size:var(--fs-14);font-weight:500;color:var(--ink-500)}
.v2-kpi-strip .v2-kpi-value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--ink-900)}
.v2-kpi-strip .v2-kpi-value .v2-cur{font-size:.56em;font-weight:600;color:var(--ink-400);margin-right:3px}
.v2-kpi-meta{gap:8px;margin-top:4px;padding-top:14px;border-top:1px solid var(--line-soft)}
.v2-kpi-meta dt{color:var(--ink-400)}
.v2-kpi-meta dd{color:var(--ink-700);font-weight:500}
@media(max-width:1180px){.v2-kpi-strip .v2-kpi{padding:18px 18px 16px}.v2-kpi-strip .v2-kpi-value{font-size:1.5rem}.v2-kpi-strip .v2-kpi:nth-child(n+3){border-top:1px solid var(--line)}.v2-kpi-strip .v2-kpi:nth-child(3){border-left:1px solid var(--line)}}
@media(max-width:620px){.v2-kpi-strip .v2-kpi{padding:14px}.v2-kpi-strip .v2-kpi-value{font-size:var(--fs-20)}}
/* 涨跌：浅色底小标签 */
.v2-delta-chip,.v2-delta-chip.good,.v2-delta-chip.bad,.v2-delta-chip.neutral{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:8px;font-size:var(--fs-12)!important;font-weight:600}
.v2-delta-chip.good{background:var(--green-soft);color:var(--green)}
.v2-delta-chip.bad{background:var(--red-soft);color:var(--red)}
.v2-delta-chip.neutral{background:var(--neutral-soft);color:var(--ink-500)}
.v2-kpi-vs{font-size:var(--fs-12);color:var(--ink-400)}

/* 状态标签：方角 6、浅底深字 */
.v2-chip,.status-pill,.pdd-current-tag{border-radius:8px}

/* 表格：表头 12/500 灰字、行线极淡；悬停整行浅灰 */
.v2-table thead th,.sku-table thead th,.refund-comparison thead th,.v2-profit-table thead th,.finance-table thead th,table.data-table thead th{background:#fff;color:var(--ink-400);font-size:var(--fs-12);font-weight:500;border-bottom:1px solid var(--line)}
.v2-table tbody tr:hover>*,.sku-table tbody tr:hover>*,.v2-profit-table tbody tr:hover>*,.finance-table tbody tr:hover>*,table.data-table tbody tr:hover>*{background:#f9fafb}
.v2-table-wrap,.sku-table-wrap,.v2-profit .table-wrap,.sales-shop-change .table-wrap,.pdd-shop-overview .table-wrap,.pdd-service-detail .table-wrap,.pdd-logistics .table-wrap{border-radius:12px}

/* 说明小字统一三种位置：
   1 标题下的一句解释：13 号说明色，紧跟标题 4px；
   2 卡片底部的来源 / 范围脚注：12 号，上方细分隔线，与正文隔 16；
   3 卡片标题行右侧的小标签（范围、更新时间）。 */
.v2-card-head p,.panel-head p{margin:4px 0 0;font-size:var(--fs-13);line-height:1.6;color:var(--ink-500);font-weight:400}
:is(.v2-card,.panel,.settings-card,.v2-strip,#financeMonthly)>.per-source-note:last-child,
:is(.v2-card,.panel,.settings-card,.v2-strip)>.v2-foot:last-child{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--line-soft);font-size:var(--fs-12);line-height:1.6;color:var(--ink-400)}
.head-chips{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.head-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;background:var(--surface-hover);color:var(--ink-700);font-size:var(--fs-12);font-weight:400;white-space:nowrap}
.head-chip small{color:var(--ink-300);font-size:inherit}
.head-chip.bad{background:var(--red-soft);color:var(--red)}
.explain-btn{height:28px;border-color:var(--border-strong);border-radius:8px;color:var(--ink-700);font-size:var(--fs-12)}
.explain-btn:hover{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}

/* 图表：极淡网格 */
.overview-chart .overview-gridline{stroke:#eef0f4}
.overview-chart text{fill:var(--ink-400)}
.overview-chart .overview-line{stroke-width:2.4}

/* 登录页 */
.login-layout{border-radius:var(--radius)}

/* 团队事项：每日必做 / 交办任务切换放进顶部说明卡左侧，与下方内容隔开一个卡片间距 */
.team-center{display:grid;gap:var(--ui-gap)}
.team-heading.has-actions{flex-wrap:nowrap;gap:16px;padding:14px 16px 14px 14px;border-color:var(--line);border-radius:var(--radius)}
.team-heading.has-actions>.team-mode{flex:none;margin:0}
.team-heading.has-actions>div:not(.team-mode){flex:1 1 auto;min-width:0}
.team-heading.has-actions p{color:var(--ink-500);font-size:var(--fs-13)}
@media(max-width:700px){.team-heading.has-actions{flex-wrap:wrap}.team-heading.has-actions>.team-mode{width:100%}}
/* 分段切换下面直接接内容时留 16，不再贴住 */
:is(.v2-tabs,.team-tabs,.segmented,.overview-tabs,.wdt-trend-tabs)+:is(section,div.panel,.v2-card,.table-wrap,ul,ol,table){margin-top:16px}
.panel.sales-sku-card{padding:var(--ui-card-pad)}
.panel>.metric-rank-block:first-child{margin-top:0}
.metric-rank-head.has-explain>.btn{margin-left:auto}
.metric-rank-head.has-explain>.head-explain{margin-left:10px}
.sku-panel>.sku-panel-head{align-items:flex-start;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line-soft)}
/* 各业务页卡片内边距统一 24；待处理分组卡的组头贴边铺满 */
.business-page .panel,.team-daily-panel{padding:var(--ui-card-pad)}
.v2-inbox-group,.v2-card.v2-inbox-group{padding:0}
.v2-inbox-group-head{padding:14px var(--ui-card-pad);background:#fafbfc;border-bottom-color:var(--line-soft)}
.v2-inbox-group .v2-issue{border-top-color:var(--line-soft)}
/* 读取失败、提醒类横条：浅琥珀底，不再用和选中态相同的浅蓝 */
.data-notice{padding:14px 16px 14px 20px;border-radius:12px;background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}
.data-notice strong{color:var(--amber);font-weight:600}
.data-notice span{color:var(--ink-700)}
/* 商品页对比口径：一行元信息 + 说明按钮，不再挂一整句小字 */
.v2-compare-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:var(--fs-13);line-height:1.6;color:var(--ink-500)}
.v2-compare-note>.explain-btn{margin:0}
/* 页面里还没填内容的占位块不占网格间距 */
.business-page>div:empty,.v2-page>div:empty{display:none}
/* 售后状态条里的读屏文字随横向滚动区裁切，不撑出整页宽度 */
.after-sales-tabs,.after-sales-more{position:relative}

/* ===== 37. 2026-10-30 用户逐图反馈 ===== */
/* 图1 顶部信息行：靠左排，各段之间竖线分隔、留足空隙；口径说明另起小字；两个说明链接靠右 */
.v2-scope.overview-scope .scope-meta{flex:1 1 100%;margin-left:0;justify-content:flex-start;gap:10px 0}
.scope-meta>:not(.scope-error):not(.scope-links){display:inline-flex;align-items:center;padding:0 18px;border-left:1px solid var(--line);min-height:28px}
.scope-meta>:first-child:not(.scope-error):not(.scope-links){padding-left:0;border-left:0}
.scope-meta .amount-basis{margin-left:0;gap:10px}
.amount-basis-seg{display:inline-flex;gap:2px;padding:3px;border-radius:8px;background:var(--surface-sunken)}
.amount-basis-seg button,.amount-basis-seg button+button{margin:0;border:0;background:transparent}
.amount-basis-seg button[aria-pressed="true"]{background:#fff}
.amount-basis-note{color:var(--ink-400);font-size:var(--fs-12)}
.v2-zero-toggle{gap:6px;color:var(--ink-700)}
.scope-links{display:inline-flex;align-items:center;gap:20px;margin-left:auto;padding-left:18px}
.scope-links .v2-scope-quality{padding:0;border:0;background:none;color:var(--ink-500);font-size:var(--fs-13);font-weight:500}
.scope-links .v2-scope-quality:hover{color:var(--accent)}
@media(max-width:900px){.scope-meta>:not(.scope-error):not(.scope-links){padding:0 12px 0 0;border-left:0}.scope-links{margin-left:0;padding-left:0}}
/* 图2 卡内小指标格：整块细边框，每格左右都留 20，不再贴着左边 */
.metric-card-mini-grid{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.metric-card-mini,.metric-card-mini+.metric-card-mini{padding:16px 20px}
/* 图3 筛选卡选中：一圈靛蓝边 + 浅底，不再叠出两道框 */
.v2-kpis-filter .v2-kpi[aria-pressed="true"]{border-color:var(--accent);background:#f7f8ff;box-shadow:inset 0 0 0 1px var(--accent)}
.v2-kpis-filter .v2-kpi:focus-visible{outline:0;box-shadow:var(--focus-ring)}
.v2-kpis-filter .v2-kpi[aria-pressed="true"]:focus-visible{box-shadow:inset 0 0 0 1px var(--accent),var(--focus-ring)}
/* 图4 长清单只显示前 20 行，按钮展开 */
table[data-fold]:not(.is-unfolded) tbody tr:nth-child(n+21){display:none}
.table-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;margin-top:8px;border:1px dashed var(--border-strong);border-radius:12px;background:#fff;color:var(--accent);font:inherit;font-size:var(--fs-13);font-weight:500;cursor:pointer}
.table-more:hover{background:var(--accent-soft);border-color:var(--accent-line)}
/* 图5 客服人员表现按店铺分表 */
.pdd-agent-shop{display:flex;align-items:baseline;gap:10px;margin:20px 0 10px;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.pdd-agent-shop:first-of-type{margin-top:4px}
.pdd-agent-shop small{color:var(--ink-400);font-size:var(--fs-12);font-weight:400}
/* 图6 待处理事项：一家店一行（全站同类按店列出的说明都换行显示） */
.v2-issue-impact{white-space:pre-line;line-height:1.75}

/* ===== 38. 2026-10-30 用户第二轮反馈 ===== */
/* 图1 推广页型号广告费率：规则一行在顶部；各店一段，店名与状态同一行；没数据的店并成清单 */
.promotion-analysis .ad-fee-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 20px;padding:12px 16px;border-radius:12px;background:#fafbfc;border:1px solid var(--line-soft)}
.ad-fee-target{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;color:var(--ink-700);font-size:var(--fs-13)}
.ad-fee-target strong{font-size:var(--fs-16);font-weight:700;color:var(--ink-900)}
.ad-fee-target small{color:var(--ink-400);font-size:var(--fs-12)}
.pdd-shop-analysis{padding:20px 0;border-top:1px solid var(--line-soft)}
.pdd-shop-analysis:first-of-type{padding-top:4px;border-top:0}
.pdd-shop-analysis-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:14px}
.pdd-shop-analysis-head .pdd-shop-analysis-title{margin:0;font-size:var(--fs-15,15px);font-weight:600;color:var(--ink-900)}
.ad-fee-note{margin:12px 0 0;color:var(--ink-500);font-size:var(--fs-13)}
.ad-fee-missing{margin-top:8px;padding:16px 20px;border:1px dashed var(--border-strong);border-radius:12px;background:#fff}
.ad-fee-missing h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 10px;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.ad-fee-missing h3 small{color:var(--ink-400);font-size:var(--fs-12);font-weight:400}
.ad-fee-missing ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.ad-fee-missing li{display:grid;grid-template-columns:minmax(9rem,14rem) minmax(0,1fr);gap:4px 16px;font-size:var(--fs-13)}
.ad-fee-missing li b{font-weight:500;color:var(--ink-700)}
.ad-fee-missing li span{color:var(--ink-500)}
@media(max-width:620px){.ad-fee-missing li{grid-template-columns:1fr}}
/* 图2 不可点的状态小字不放最左：口径开关在左，「成本字段完整」做成右侧带圆点的说明 */
.finance-boundary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.finance-quality{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--ink-500);font-size:var(--fs-12);white-space:nowrap}
.finance-quality i{width:6px;height:6px;border-radius:50%;background:var(--ink-300)}
.finance-quality.is-success i{background:#12b76a}.finance-quality.is-pending i{background:#f79009}.finance-quality.is-failed i{background:var(--red)}
.finance-boundary>.head-explain,.finance-boundary>.explain-btn{margin-left:0}
/* 图3 顶部信息行：第一段始终贴左，与下一行「涨跌」对齐（前面可能有隐藏或空的元素） */
.scope-meta>:empty,.scope-meta>[hidden]{display:none!important}
.scope-meta>.v2-asof:not(.scope-error):not(.scope-links){padding-left:0;border-left:0}
.v2-page>.v2-compare-note{margin-top:-4px}
/* 图4 商品明细：标题左、两个按钮右侧同一行对齐；筛选去掉灰框，一行：关键词 + 查询/清空，右侧查看方式 */
.sku-panel>.sku-panel-head{align-items:center}
.sku-panel>.sku-panel-head>.btn,.sku-panel>.sku-panel-head>.head-explain{align-self:center;margin-top:0}
.sku-panel>.sku-panel-head>.head-explain .explain-btn{margin:0;height:30px}
.sku-panel .sku-filter-surface{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 24px;margin:0 0 16px;padding:0;border:0;background:none}
.sku-panel .sku-filter-row{display:contents}
.sku-panel .sku-filter-row-primary>.sku-filter-field{flex:1 1 420px;min-width:0}
.sku-panel .sku-filter-row-options>.sku-filter-field{flex:0 0 auto}
.sku-panel .sku-filter-row-options>div:empty{display:none}
.sku-panel .sku-filter-field{display:grid;gap:6px}
.sku-panel .sku-filter-label{color:var(--ink-500);font-size:var(--fs-12);font-weight:500}
.sku-panel .sku-search{display:flex;align-items:center;gap:8px}
.sku-panel .sku-search>label{flex:1;min-width:0}
.sku-panel .sku-search-input{width:100%;height:36px}
.sku-panel .sku-search .btn{min-height:36px}
.sku-panel [data-sku-clear]{border-color:transparent;background:transparent;color:var(--ink-500)}
.sku-panel [data-sku-clear]:hover{background:var(--surface-hover);color:var(--ink-900)}
/* 「恢复默认排序」放在表格上方右侧，不再挤在滚动条旁边 */
.table-interaction-bar{margin:0}
.table-interaction-reset:not(:disabled){position:sticky;right:12px;margin:8px 12px 4px;padding:0 10px;height:26px;border:1px solid var(--accent-line);border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:var(--fs-12)}
.sku-panel .sku-filter-field{min-width:0;max-width:100%}
.sku-panel .sku-filter-row-primary>.sku-filter-field{flex:1 1 min(420px,100%)}
.sku-panel .sku-search{flex-wrap:wrap}
.sku-panel .sku-search>label{flex:1 1 200px}
.sku-panel .filter-bar{flex-wrap:wrap}

/* ===== 39. 2026-10-30 用户第三轮：首页走势、型号排行卡头 ===== */
/* 走势：第一行「标题 · 天数 · 右侧图表/每日明细」；指标改成下划线文字页签，和上一行的分段按钮分出层级，不再两排灰槽叠在一起 */
.v2-trend>.v2-card-head{align-items:center;gap:12px 16px;margin-bottom:12px}
.v2-trend-metrics{margin:0 0 16px;border-bottom:1px solid var(--line-soft)}
.v2-trend-metrics>.v2-tabs{gap:24px;padding:0;border-radius:0;background:transparent;overflow:visible}
.v2-trend-metrics>.v2-tabs>button{min-height:36px;margin-bottom:-1px;padding:0 2px;border-radius:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink-500);font-weight:500}
.v2-trend-metrics>.v2-tabs>button:hover{background:transparent;color:var(--ink-900)}
.v2-trend-metrics>.v2-tabs>button[aria-pressed="true"]{background:transparent;box-shadow:none;border-bottom-color:var(--accent);color:var(--ink-900);font-weight:600}
/* 卡片标题不折行；标题行里的长说明（如「涨跌：…对比…」）单独排到第二行，右侧入口不再被挤成竖排 */
.v2-card-head h2{white-space:nowrap}
.v2-card-head:not(.v2-wrap)>.v2-muted.v2-push{order:3;flex:1 1 100%;margin:2px 0 0;font-size:var(--fs-12);color:var(--ink-400);line-height:1.6}
.v2-card-head:not(.v2-wrap)>.v2-muted.v2-push~:is(button,a){order:2;margin-left:auto;white-space:nowrap}
.v2-card-head{flex-wrap:wrap}

/* ===== 40. 更多 · 数据接入（2026-10-30 用户：版面混乱没对齐） ===== */
/* 四个来源卡一行四张、等高，状态标签与标题对齐；窄屏两列 */
.connector-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;align-items:stretch}
.connector-card{display:flex;flex-direction:column;gap:8px;padding:20px;border-color:var(--line);border-radius:12px;background:#fff}
.connector-card h3{margin:2px 0 0}
.connector-card>:last-child{margin-top:auto}
@media(max-width:620px){.connector-grid{grid-template-columns:minmax(0,1fr)}}
/* 拼多多登录入口、折叠区与卡片同一套边框、圆角和间距 */
.pdd-login-entry{margin-top:16px;padding:16px 20px;border-color:var(--line);border-radius:12px}
.pdd-login-entry strong{font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.pdd-login-entry small{margin-top:4px;color:var(--ink-500);font-size:var(--fs-13)}
.business-secondary{margin-top:16px;border:1px solid var(--line);border-radius:12px;box-shadow:none}
.business-secondary>summary{padding:14px 20px;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.business-secondary>summary:focus{outline:none}
.business-secondary>summary:focus-visible{outline:2px solid var(--focus-outline);outline-offset:-2px}
.business-page .panel.erp-channel-panel{padding:0}
.erp-channel-panel>.panel-head{padding:20px 24px;margin:0;border-bottom-color:var(--line-soft)}
.erp-channel-panel .erp-channel-row{padding:16px 24px}
/* 只读同事没有经营总览（2026-10-30），侧栏与手机底栏不显示入口 */
body[data-role="staff"] .nav-item[data-view="overview"]{display:none!important}

/* ===== 41. 待处理「知道了」（2026-10-30）：浅色文字按钮，不和「查看」「交办」抢主次；已知悉的单独折叠 ===== */
.v2-ack-btn{border:1px solid transparent;background:transparent;color:var(--ink-500)}
.v2-ack-btn:hover{background:var(--surface-hover);color:var(--ink-900)}
.v2-issue-acked{color:var(--ink-400)}
.v2-inbox-acked{margin-top:8px}
.v2-inbox-acked .v2-issue{opacity:.85}
/* 客服人员表现：各店表格同一套固定列宽，店名前缀另起一行，不再把某一家的表撑出横向滚动（2026-10-30 用户） */
.pdd-agent-table{table-layout:fixed;width:100%;min-width:1040px}
.pdd-agent-table th:first-child{width:200px}
.pdd-agent-table th:first-child small{display:block;white-space:normal;line-height:1.5}
.pdd-agent-table th,.pdd-agent-table td{overflow:hidden;text-overflow:ellipsis}
.pdd-agent-table thead th{white-space:normal;line-height:1.35}
/* 月度损益推广费缺口：可点开看哪家店缺几天（2026-10-30） */
.finance-gap-btn{min-height:0;padding:0;border:0;background:none;color:var(--accent);font-size:var(--fs-12);font-weight:500;white-space:nowrap;cursor:pointer}
.finance-gap-btn:hover{text-decoration:underline}
.finance-monthly-table td small .finance-gap-btn{display:inline}
/* 表格排序的读屏提示固定在左上角：原来贴着右边溢出 1 像素，让表格底下多出一条横向滚动条（2026-10-30 用户：下方线条瑕疵） */
.table-interaction-bar>[role="status"]{left:0;top:0}
/* 抽屉标题：原来设了超长可滚动，中文行高让它多出零点几像素，标题后面出现一个灰色小滚动条（2026-10-30 用户：全局灰色小色块） */
.drawer-head h2{max-height:none;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;padding-bottom:1px}

/* ===== 42. 管理每日必做清单（2026-10-30 用户：展开页乱、按钮不易用）：现有清单在上，下面一个页签切换「逐条添加 / 整段导入」 ===== */
.daily-manage{display:grid;gap:16px}
.daily-manage h3{margin:0;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.daily-empty{margin:0;padding:14px 16px;border:1px dashed var(--border-strong);border-radius:12px;color:var(--ink-500);font-size:var(--fs-13)}
.daily-manage-list li{align-items:center;padding:12px 16px;border-color:var(--line);border-radius:12px}
.daily-manage-tabs{margin-top:8px}
.daily-card{padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff;gap:16px}
.daily-card[hidden]{display:none}
.daily-form label{gap:6px;color:var(--ink-700);font-size:var(--fs-13);font-weight:500}
.daily-form input,.daily-form textarea{width:100%}
.daily-form-foot{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:4px}
.daily-form-foot .daily-msg{margin:0 auto 0 0;color:var(--ink-500);font-size:var(--fs-13)}
.daily-form-foot .daily-msg:empty{display:none}
/* 扫码登录：验证码一行收进浅底框，按键按钮同一种样式；底部「刷新登录页 / 取消扫码」左右分开（2026-10-30 用户：排得难看） */
.pdd-login-type{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:16px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.pdd-login-type label{color:var(--ink-700);font-size:var(--fs-13);font-weight:500}
.pdd-login-type input{width:200px;height:34px}
.pdd-login-keys{display:inline-flex;gap:6px;margin-left:auto}
.pdd-login-keys .btn{min-height:30px}
.pdd-login-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
@media(max-width:620px){.pdd-login-type input{flex:1 1 140px;width:auto}.pdd-login-keys{margin-left:0}}

/* ===== 43. 2026-10-31 用户：表头不换行；抽屉里说明、表格、小标题的间距统一 ===== */
.data-table th.num,.data-table td.num,.v2-profit-table th.num,.v2-profit-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.finance-monthly-table thead th{white-space:nowrap;vertical-align:middle}
/* 抽屉正文：说明一段、表格一块、小标题一节，块与块之间统一留 24；提示条不再用选中态的浅蓝 */
#drawerBody .drawer-note{margin:0 0 16px;padding:12px 16px;border:0;border-radius:12px;background:#f6f7f9;color:var(--ink-700);font-size:var(--fs-13);line-height:1.7}
#drawerBody .drawer-note.warn{background:var(--amber-soft);color:var(--amber)}
#drawerBody .drawer-note.danger{background:var(--red-soft);color:var(--red)}
#drawerBody .table-wrap+.drawer-section,#drawerBody .table-wrap+h3,#drawerBody .sku-table-wrap+.drawer-section{margin-top:24px}
.drawer-section h3{margin:0 0 10px;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.drawer-section .v2-note-list{display:grid;gap:6px;margin:0;padding-left:1.1rem;color:var(--ink-700);font-size:var(--fs-13);line-height:1.7}

/* ===== 44. 月度损益缺口抽屉：补采这个月（2026-10-31） ===== */
.finance-gap-action{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.finance-gap-action strong{display:block;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.finance-gap-action small{display:block;margin-top:4px;color:var(--ink-500);font-size:var(--fs-13);line-height:1.6}
.finance-gap-action .btn{flex:none}
@media(max-width:620px){.finance-gap-action{flex-direction:column;align-items:stretch}}
.finance-gap-note{margin:8px 0 0;color:var(--ink-500);font-size:var(--fs-13);line-height:1.6}

/* ===== 45. 按钮文字不换行（2026-10-31 用户：导出当前结果换行属于瑕疵）：标题栏里说明文字再长，按钮也保持完整一行；手机宽度放不下时才允许换行 ===== */
.btn,.text-btn{white-space:nowrap}
.panel-head>.btn,.panel-head>div>.btn,.metric-rank-head>.btn,.sku-panel-head>.btn{flex:none}
@media(max-width:620px){.btn,.text-btn{white-space:normal}}

/* ===== 46. 涨红跌绿（2026-10-31 用户）：只看方向，不分好坏 ===== */
.v2-up,.v2-kpis .v2-kpi>strong.v2-up{color:var(--red)}.v2-down,.v2-kpis .v2-kpi>strong.v2-down{color:var(--green)}
.v2-delta.up{color:var(--red)}.v2-delta.down{color:var(--green)}
.v2-delta-chip.up{background:var(--red-soft);color:var(--red)}
.v2-delta-chip.down{background:var(--green-soft);color:var(--green)}

/* ===== 47. 待处理：数字和按钮排成固定的列（2026-10-31 用户：按钮不好看、数字没对齐） =====
   每行右侧同一套列：数字右对齐、单位紧跟、主按钮同宽、交办、知道了；哪一行少了按钮，其他按钮也不错位 */
.v2-issue-count{display:inline-flex;align-items:baseline;gap:4px}
.v2-issue-count b{font-weight:600;font-variant-numeric:tabular-nums}
.v2-issue-count small{font-size:var(--fs-13);font-weight:400;color:var(--ink-500)}
.v2-ack-btn{color:var(--ink-500)}
@media(min-width:1001px){
  .v2-inbox-group .v2-issue{align-items:center}
  .v2-issue-side{display:grid;grid-template-columns:5.5rem 5.75rem 3.25rem 3.75rem;column-gap:8px;align-items:center}
  .v2-issue-count{display:grid;grid-template-columns:2.75rem 1fr;column-gap:4px;grid-column:1}
  .v2-issue-count b{text-align:right}
  .v2-issue-side .v2-issue-actions{display:contents}
  .v2-issue-side .v2-issue-actions .btn{width:100%;padding-inline:0;justify-content:center;grid-row:1}
  .v2-issue-side .v2-issue-actions .btn.primary{grid-column:2}
  .v2-issue-side .v2-issue-actions [data-inbox-assign]{grid-column:3}
  .v2-issue-side .v2-issue-actions .v2-ack-btn{grid-column:4}
}

/* ===== 48. 数字列居中（2026-10-31 用户：数字要在表头文字的正下方）：表头和数字都居中；第一列店名、说明列、文字列不动 ===== */
.v2-profit-table thead th:not(:first-child),
.v2-profit-table tbody td:not(:first-child):not(.v2-profit-note),
.v2-profit-table tfoot td:not(:first-child):not(.v2-profit-note),
.pdd-logistics-table thead th:not(:first-child),.pdd-logistics-table td,
.pdd-traffic-table thead th:not(:first-child),.pdd-traffic-table td,
.pdd-items-table thead th:not(:first-child),.pdd-items-table td,
.inbox-detail-table th:not(:first-child),.inbox-detail-table td:not(:first-child),
.data-table th.num,.data-table td.num,.v2-profit-table th.num,.v2-profit-table td.num,
.sku-table th.num,.sku-table td.num,.low-price-table .num,.refund-why-table .num,.finance-monthly-table .num,
.v2-table thead th:not(:first-child),.v2-table tbody td:not(:first-child),.v2-table tfoot td:not(:first-child),
td.is-num,th.is-num{text-align:center}
.v2-profit-table:has(td.v2-profit-note) thead th:last-child{text-align:left}
.v2-table td:nth-child(2):not(.v2-num){text-align:left}
.v2-table:has(tbody td:nth-child(2):not(.v2-num)) thead th:nth-child(2){text-align:left}
.v2-table .v2-act,.v2-tree .v2-act{text-align:right}
/* 排序箭头挂在文字右边、不占宽度，数字才能对准文字中线 */
th:not(:first-child) .table-interaction-sort{position:relative;width:auto;display:inline-flex;justify-content:center;margin-inline:auto}
th:not(:first-child) .table-interaction-arrow{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:2px}

/* ===== 49. 各页统一节奏（2026-10-31 用户：间距、样式重新修好）：卡片之间一律 16，不再叠加外边距 ===== */
.business-page>.business-secondary,.business-page>div>.business-secondary{margin-top:0}
.business-page>div:not([class]):not(:empty),.business-page>[id$="Slot"]:not(:empty){display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ui-gap);min-width:0}
.business-page>.panel,.business-page>div>.panel{margin-block:0}
.panel-head>div>p,.v2-card-head>.v2-muted{font-size:var(--fs-13);color:var(--ink-500)}

/* ===== 50. 数字居中补漏：个别表有更具体的右对齐规则；表头小问号不占宽度，文字才在数字正上方 ===== */
:is(#content,#drawerBody) .v2-profit-table tbody td:not(:first-child):not(.v2-profit-note),
:is(#content,#drawerBody) .v2-profit-table tfoot td:not(:first-child):not(.v2-profit-note),
:is(#content,#drawerBody) .v2-profit-table thead th:not(:first-child){text-align:center}
:is(#content,#drawerBody) .v2-profit-table:has(td.v2-profit-note) thead th:last-child{text-align:left}
th:not(:first-child) .metric-tip{margin-left:4px;margin-right:-18px}

/* ===== 51. 缺口抽屉：补采卡片和下面的说明拉开距离（2026-10-31 用户：这行字显示不佳） ===== */
#drawerBody .finance-gap-action~.drawer-section{margin-top:24px}

/* ===== 52. 取数专区（2026-10-31） ===== */
.pull-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pull-months{flex-wrap:wrap}
.pull-table th[scope="row"] strong{display:block;font-weight:600;color:var(--ink-900)}
.pull-table th[scope="row"] small{display:block;margin-top:2px;font-weight:400;color:var(--ink-500);font-size:var(--fs-12)}
.pull-table th[scope="row"]{white-space:normal;min-width:16rem}

/* ===== 53. 退款原因展开区（2026-10-31 用户：编排难看）：按钮独占一行，下面一行一个原因 ===== */
.refund-detail-toggle-row{display:block}
.refund-detail-wrap{margin-top:12px}
.refund-reasons{grid-template-columns:minmax(0,1fr);gap:0;margin:0;border-top:1px solid var(--line-soft)}
.refund-reason-row{grid-template-columns:minmax(9rem,14rem) minmax(8rem,1fr) 4rem;column-gap:16px;row-gap:2px;align-items:center;padding:10px 0;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;background:none}
.refund-reason-label{display:contents}
.refund-reason-label strong{grid-column:1;grid-row:1;font-size:var(--fs-14);font-weight:500;color:var(--ink-900)}
.refund-reason-label span{grid-column:1/-1;grid-row:2;color:var(--ink-500);font-family:inherit;font-size:var(--fs-13);line-height:1.6}
.refund-reason-bar{grid-column:2;grid-row:1;height:6px}
.refund-reason-row small{grid-column:3;grid-row:1;text-align:right;font-size:var(--fs-13);color:var(--ink-700);font-variant-numeric:tabular-nums}
.refund-reason-more{margin:10px 0 0;color:var(--ink-500);font-size:var(--fs-13)}
@media(max-width:620px){.refund-reason-row{grid-template-columns:minmax(0,1fr) 4rem}.refund-reason-bar{grid-column:1/-1;grid-row:3}}

/* ===== 54. 待处理「已知悉」标签：和分类分开一点 ===== */
.v2-ack-tab{margin-left:8px}
.v2-ack-history h3{font-weight:500}

/* ===== 55. 取数专区总览 5 张卡排一行 ===== */
@media(min-width:1101px){.data-pull .v2-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* ===== 56. 计划试算（2026-10-31 重排）：左边填计划，右边看结果 ===== */
.pull-tabs{justify-self:start}
.scenario-layout{display:grid;grid-template-columns:minmax(0,27rem) minmax(0,1fr);gap:32px;align-items:start;margin-top:16px}
#businessScenarioForm{display:grid;gap:14px;min-width:0}
#businessScenarioForm label{display:grid;gap:6px;font-size:var(--fs-13);color:var(--ink-700)}
#businessScenarioForm label[hidden],.scenario-base[hidden]{display:none}
#businessScenarioForm input:not([type="hidden"]){height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:var(--fs-14);color:var(--ink-900)}
#businessScenarioForm input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
#businessScenarioForm>.btn{justify-self:start;min-width:7rem}
.scenario-modes{flex-wrap:wrap;justify-self:start}
.scenario-base{justify-self:start;margin-top:-8px;font-size:var(--fs-13)}
.scenario-output{min-height:12rem;padding:20px;border-radius:12px;background:#f6f7f9;min-width:0}
.scenario-hint{margin:0;color:var(--ink-500);font-size:var(--fs-14)}
.scenario-error{margin:0;color:var(--red);font-size:var(--fs-14)}
.scenario-result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.scenario-result-heading strong{min-width:0;font-size:var(--fs-15);font-weight:600;color:var(--ink-900);overflow-wrap:anywhere}
.scenario-result-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.scenario-result-numbers div{display:grid;gap:6px;padding:14px 16px;border-radius:12px;background:#fff}
.scenario-result-numbers span{color:var(--ink-500);font-size:var(--fs-13)}
.scenario-result-numbers strong{font-size:var(--fs-20,20px);font-weight:600;color:var(--ink-900);overflow-wrap:anywhere}
.scenario-basis{margin:12px 0 0;color:var(--ink-500);font-size:var(--fs-13)}
.scenario-formulas{margin-top:12px;font-size:var(--fs-13);color:var(--ink-500)}
.scenario-formulas summary{cursor:pointer}
.scenario-formulas ul{margin:8px 0 0;padding-left:1.1rem;line-height:1.7}
@media(max-width:1000px){.scenario-layout{grid-template-columns:minmax(0,1fr);gap:20px}}
@media(max-width:620px){.scenario-result-numbers{grid-template-columns:minmax(0,1fr)}.scenario-modes button{flex:1 1 100%}}

/* ===== 57. 计划试算：目标、指标、结果 ===== */
.scenario-step{display:grid;gap:12px}
.scenario-step+.scenario-step{padding-top:16px;border-top:1px solid var(--line-soft)}
.scenario-step h3{margin:0;font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.scenario-step h3 small{margin-left:8px;font-size:var(--fs-13);font-weight:400;color:var(--ink-500)}
.scenario-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.scenario-months{justify-self:start;flex-wrap:wrap}
.scenario-note{margin:0;color:var(--ink-500);font-size:var(--fs-13)}
.scenario-result-heading .v2-muted{margin-left:auto;font-size:var(--fs-13)}
.scenario-result-numbers small{font-size:var(--fs-13);font-weight:500}
.scenario-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.scenario-groups section{padding:14px 16px;border-radius:12px;background:#fff}
.scenario-groups h3{margin:0 0 8px;font-size:var(--fs-13);font-weight:500;color:var(--ink-500)}
.scenario-line{display:flex;align-items:baseline;gap:8px;padding:5px 0;font-size:var(--fs-14);color:var(--ink-700)}
.scenario-line b{margin-left:auto;font-weight:600;color:var(--ink-900)}
.scenario-line small{font-size:var(--fs-13)}
@media(max-width:620px){.scenario-groups,.scenario-fields{grid-template-columns:minmax(0,1fr)}}

/* ===== 58. 取数专区：TOP 5、型号图片、净值列（2026-10-31） ===== */
.pull-top-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:14px 0 0;padding:0;list-style:none}
.pull-top-list li{position:relative;display:grid;justify-items:center;gap:6px;padding:14px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center;min-width:0}
.pull-top-list li:first-child{border-color:var(--accent);background:var(--accent-soft)}
.pull-top-list strong{font-size:var(--fs-13);font-weight:500;line-height:1.5;color:var(--ink-900);overflow-wrap:anywhere}
.pull-top-list b{font-size:var(--fs-18,18px);font-weight:700;color:var(--ink-900)}
.pull-top-list small{font-size:var(--fs-12);color:var(--ink-500)}
.pull-top-list .pull-rank{position:absolute;top:8px;left:8px}
.pull-top-list .sku-thumb-button,.pull-top-list img,.pull-top-list .sku-thumb-fallback{width:64px;height:64px}
.pull-rank{display:inline-grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:var(--fs-12);font-weight:700;font-variant-numeric:tabular-nums}
.pull-model{display:flex;align-items:center;gap:10px;min-width:0}
.pull-model>div{min-width:0}
.pull-model .sku-thumb-button,.pull-model img,.pull-model .sku-thumb-fallback{flex:none;width:44px;height:44px}
.pull-top-row th[scope="row"] strong{font-weight:700}
.pull-net{font-weight:600;color:var(--ink-900)}
@media(max-width:1100px){.pull-top-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.pull-top-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pull-top-list .sku-thumb-button,.pull-top-list .sku-thumb-fallback{flex:0 0 72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important}
.pull-model .sku-thumb-button,.pull-model .sku-thumb-fallback{flex:0 0 48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}

/* ===== 59. 手机端（2026-10-31 用户：手机端页面异常）：月份、分类全部露出来，不靠横向滑动；5 张卡最后一张占满一行 ===== */
@media(max-width:620px){
  .pull-months,.scenario-modes,.v2-inbox-bar .v2-tabs{flex-wrap:wrap;overflow:visible;max-width:100%}
  .pull-months button{flex:0 0 auto}
  .pull-bar{gap:8px}
  .data-pull .v2-kpis>.v2-kpi:last-child:nth-child(odd){grid-column:1/-1}
  .pull-top-list li{padding:12px 8px}
  .pull-table th[scope="row"]{min-width:13rem}
  .pull-model .sku-thumb-button,.pull-model .sku-thumb-fallback{flex:0 0 40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
}
/* 全站表格容器：表格比屏幕宽时在容器内横滑，不撑开整页（2026-10-31 手机端：通用 .table-wrap 一直没有横向滚动） */
.table-wrap{max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.business-page>.panel,.business-page>div>.panel,.v2-page>.panel,.v2-card{min-width:0}
@media(max-width:620px){
  .v2-tabs.v2-tabs-pill.pull-months,.v2-tabs.v2-tabs-pill.scenario-modes,.v2-inbox-bar .v2-tabs.v2-tabs-pill{display:flex!important;flex-wrap:wrap!important;overflow:visible!important;width:100%;height:auto!important;max-width:100%}
  .v2-tabs.v2-tabs-pill.pull-months>button{flex:1 0 21%!important}
}
@media(max-width:620px){
  /* 顶部日期 6 个按钮一行放下，不用横滑 */
  .global-range{display:flex!important;width:100%;overflow:visible!important}
  .global-range>button{flex:1 1 0!important;min-width:0;padding-inline:2px!important;font-size:var(--fs-13)}
  /* 待处理工具条：按钮文字不折行 */
  .v2-inbox-bar .v2-push{flex-wrap:wrap;gap:8px}
  .v2-inbox-bar .v2-push .btn,.v2-inbox-bar .v2-push .text-btn{white-space:nowrap}
  /* 取数表第一列固定，横滑时还能看到是哪个型号 */
  .pull-table th[scope="row"]{position:sticky;left:0;z-index:1;min-width:0;width:11rem;max-width:11rem;background:#fff}
  .pull-table thead th:first-child{position:sticky;left:0;z-index:2;background:#fff}
  .pull-table tfoot th{position:sticky;left:0;z-index:1;background:#fff}
  .pull-model{gap:6px}
    .pull-model .sku-thumb-button,.pull-model .sku-thumb-fallback{flex:0 0 32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;max-height:32px!important}
  .pull-rank{width:18px;height:18px;font-size:var(--fs-12)}
  .pull-model strong{font-size:var(--fs-13);line-height:1.4}
  .pull-model small{display:none}
}

/* ===== 60. 商品明细底部提示：和表格拉开距离（2026-10-31 用户：间距不佳） ===== */
.metric-scope-warn{margin:16px 0 0;padding:12px 16px;border-radius:12px;font-size:var(--fs-13);line-height:1.7}

/* ===== 61. 利润算法切换（2026-11-01）：退款的货按实际入库 / 旺店通 ===== */
.profit-basis-row{margin:0 0 12px}
.profit-basis{gap:8px}
.finance-boundary .profit-basis{margin-right:12px}
@media (max-width:640px){.profit-basis small{flex-basis:100%}}

/* ===== 62. 店铺经营利润列宽固定（2026-11-01 用户：切换时这一栏会变位）：列宽不随数字长短变化 ===== */
.v2-profit .v2-profit-table{table-layout:fixed;min-width:860px}
.v2-profit .v2-profit-table th:nth-child(1){width:23%}
.v2-profit .v2-profit-table th:nth-child(2){width:13%}
.v2-profit .v2-profit-table th:nth-child(3),.v2-profit .v2-profit-table th:nth-child(4),.v2-profit .v2-profit-table th:nth-child(6){width:11%}
.v2-profit .v2-profit-table th:nth-child(5){width:14%}
.v2-profit .v2-profit-table th:nth-child(7){width:17%}
.v2-profit .v2-profit-table .v2-profit-note{min-width:0}
@media(max-width:640px){
  .v2-profit .v2-profit-table{min-width:0}
  .v2-profit .v2-profit-table th:nth-child(1){width:46%}
  .v2-profit .v2-profit-table th:nth-child(2),.v2-profit .v2-profit-table th:nth-child(6){width:27%}
}

/* ===== 63. 数据完整性「处理」列（2026-11-01 用户：缺采按钮显示不佳）：左边两行文字，右边按钮 ===== */
.cov-fix.has-action{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;font-weight:400}
.cov-fix-main{grid-column:1;color:var(--amber);font-weight:600}
.cov-fix.has-action .cov-run{grid-column:1;color:var(--ui-ink-3);font-size:var(--fs-12,.75rem);font-weight:400}
.cov-fix.has-action .cov-run.cov-bad{color:var(--red)}
.cov-fix.has-action .cov-recollect{grid-column:2;grid-row:1 / span 2;white-space:nowrap;margin:0}

/* ===== 64. 打开页面时先显示「正在打开工作台」（2026-11-05 用户：一刷新就跳登录页——其实是脚本还没下载完）===== */
.login-booting{display:none}
.login-gate.is-booting .login-booting{display:grid;justify-items:center;gap:10px;padding:32px 0 8px;text-align:center}
.login-gate.is-booting .login-booting strong{font-size:var(--fs-16,1rem);font-weight:600;color:var(--ui-ink,inherit)}
.login-gate.is-booting .login-booting small{font-size:var(--fs-13,.8125rem);color:var(--ui-ink-3);line-height:1.6;max-width:22rem}
.login-gate.is-booting .login-booting small:empty{display:none}
.login-gate.is-booting .login-card>.eyebrow,.login-gate.is-booting .login-card>h2,.login-gate.is-booting .login-card>p,.login-gate.is-booting #loginForm{display:none}

/* ===== 65. 取数专区「品类占比」（2026-11-05 用户：4G、WIFI 按形态、版本看金额、件数、花费占比；版式与「海康威视 4G 系列」表一致）===== */
.pull-mix .panel-head{gap:12px;flex-wrap:wrap}
.mix-section{margin-top:20px}
.mix-section:first-of-type{margin-top:8px}
.mix-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:10px}
.mix-sub h3{margin:0;font-size:var(--fs-15,.9375rem);font-weight:600}
.mix-sub small{color:var(--ui-ink-3);font-size:var(--fs-12,.75rem);flex:1 1 16rem}
.mix-sub .btn,.mix-sub .v2-tabs{margin-left:auto}
.mix-bar{display:flex;height:10px;border-radius:4px;overflow:hidden;background:var(--ui-line);margin:0 0 12px}
.mix-bar i{display:block;height:100%}
.mix-dot{width:10px;height:10px;border-radius:4px;display:inline-block;flex:none;margin-right:8px;vertical-align:-1px}
.mix-dot:not([class*="mix-seg-"]){background:var(--ui-line)}
.mix-table{width:100%;min-width:760px}
.mix-table tbody th,.mix-table tfoot th{text-align:left;font-weight:500}
/* 同全站第 48 节：数字和表头都居中，数字在表头正下方；第一列文字靠左 */
.mix-table thead th{text-align:center;white-space:nowrap;vertical-align:bottom}
.mix-table thead th:first-child{text-align:left}
.mix-table tbody td,.mix-table tfoot td{text-align:center}
.mix-table .mix-group-head th[scope="colgroup"]{text-align:center;border-bottom:1px solid var(--ui-line);color:var(--ui-ink-2);font-weight:600;height:auto;padding-top:10px;padding-bottom:6px}
.mix-table tbody th,.mix-table tfoot th{vertical-align:middle}
.mix-table .mix-sep{border-left:1px solid var(--ui-line)}
.mix-table .mix-strong{font-weight:600}
.mix-table tr.is-current th,.mix-table tr.is-current td{background:var(--v2-accent-soft,#eef2ff)}
.mix-table tr.mix-muted-row th,.mix-table tr.mix-muted-row td{color:var(--ui-ink-3)}
.mix-table tfoot th,.mix-table tfoot td{font-weight:600;border-top:1px solid var(--ui-line)}
.mix-split-head th{background:var(--canvas,#f6f7f9);font-weight:600;color:var(--ui-ink);padding-top:8px;padding-bottom:8px}
.mix-split-head th small{margin-left:8px;font-weight:400;color:var(--ui-ink-3);font-size:var(--fs-12,.75rem)}
.mix-seg-btn{display:grid;grid-template-columns:auto minmax(3.5rem,auto) minmax(4rem,1fr) auto;align-items:center;gap:0 8px;width:100%;min-width:14rem;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.mix-seg-btn .mix-dot{margin-right:0}
.mix-seg-btn small{color:var(--ui-ink-3);font-size:var(--fs-12,.75rem)}
.mix-seg-btn:hover .mix-seg-name,.mix-seg-row.is-on .mix-seg-name{color:var(--v2-accent,#3451d1);text-decoration:underline}
.mix-seg-row.is-on th,.mix-seg-row.is-on td{background:var(--v2-accent-soft,#eef2ff)}
.mix-mini{display:block;height:6px;border-radius:4px;background:var(--ui-line);overflow:hidden}
.mix-mini i{display:block;height:100%}
.mix-cell-sub{display:block;font-size:var(--fs-12,.75rem);color:var(--ui-ink-3);font-weight:400}
.mix-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.mix-tag{display:inline-block;padding:0 6px;border-radius:4px;background:var(--ui-line);font-size:var(--fs-12,.75rem);line-height:1.6;color:var(--ui-ink-2);font-weight:400}
.mix-model-table tbody th{min-width:17rem}
.mix-model-table .pull-model small{display:block}
.mix-monthly-table tbody th{min-width:12rem;white-space:nowrap}
.mix-monthly-table .mix-total{font-weight:600}
.mix-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border:1px solid var(--v2-accent,#3451d1);border-radius:999px;background:var(--v2-accent-soft,#eef2ff);color:var(--v2-accent,#3451d1);font-size:var(--fs-13,.8125rem);cursor:pointer}
@media(max-width:640px){.mix-model-table tbody th{min-width:14rem}.mix-seg-btn{min-width:12rem}}
.mix-seg-0{background:#3451d1}.mix-seg-1{background:#e08a1e}.mix-seg-2{background:#2f9e74}.mix-seg-3{background:#8a94a6}.mix-seg-4{background:#c7cedb}
@media(max-width:640px){
  .mix-model-table th[scope="row"],.mix-monthly-table th[scope="row"]{width:13rem!important;max-width:13rem!important}
  .mix-model-table .pull-rank{display:none}
  .mix-model-table .pull-model .sku-thumb-button,.mix-model-table .pull-model .sku-thumb-fallback,.mix-monthly-table .pull-model .sku-thumb-button,.mix-monthly-table .pull-model .sku-thumb-fallback{flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
  .mix-table th[scope="row"] .mix-seg-btn{min-width:0;grid-template-columns:auto minmax(3rem,auto) minmax(2.5rem,1fr)}
  .mix-table th[scope="row"] .mix-seg-btn small{display:none}
}

/* ===== 66. 2026-11-05 用户补充：表头排序、开关在前、季度单独一组、订单号单独一行、输入框提示居中 ===== */
.mix-table th .mix-sort{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:2px 4px;margin:-2px -4px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}
.mix-table th .mix-sort:hover{background:var(--accent-soft,#eef2ff)}
.mix-table th .mix-sort:focus-visible{outline:2px solid var(--v2-accent,#3451d1);outline-offset:1px}
.mix-sort-arrow{font-size:var(--fs-12,.75rem);color:var(--ui-ink-3);min-width:.75rem}
.mix-table th[aria-sort="ascending"] .mix-sort,.mix-table th[aria-sort="descending"] .mix-sort,.mix-table th[aria-sort="ascending"] .mix-sort-arrow,.mix-table th[aria-sort="descending"] .mix-sort-arrow{color:var(--v2-accent,#3451d1);font-weight:600}
.pull-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.pull-bar .pull-periods{flex:none}
.pull-bar #pullExport{margin-left:auto}
.amount-basis .amount-basis-seg{order:0}
.amount-basis small,.amount-basis .amount-basis-note{order:1}
.model-cell-text small.order-no-line{display:block;margin-top:2px;color:var(--ui-ink-3)}
input[type="search"]::placeholder,.sku-search-input::placeholder,.command-input input::placeholder{text-align:center}
/* 商品分析型号/规格：编码和规格分行完整显示，不再省略号截断；表头与其他列一样居中（2026-11-05 用户） */
.v2-tree .v2-expand-name small{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-all;color:var(--ui-ink-3);font-size:var(--fs-12,.75rem);line-height:1.45}
.v2-tree thead th:first-child{text-align:center}
/* 商品分析：退款分发货前 / 发货后两组（2026-11-05 用户） */
.v2-tree .mix-sep{border-left:1px solid var(--ui-line)}
.v2-tree thead .v2-tree-group-head th[scope="colgroup"]{text-align:center;color:var(--ui-ink-2);font-weight:600;border-bottom:1px solid var(--ui-line)}
.v2-tree thead th{vertical-align:bottom}


/* ===== 67. 侧栏轻动效（2026-11-05 用户：侧栏各板块稍微加上动效）：悬停背景渐变、图标轻推，切换时选中块轻轻滑入（不加左侧细条，沿用之前的决定）；系统要求减少动态时全部关闭 ===== */
@media(min-width:861px){
  .sidebar .nav-item{position:relative;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
  .sidebar .nav-item .nav-icon{transition:transform .2s ease,color .18s ease}
  .sidebar .nav-item:hover .nav-icon{transform:translateX(2px)}
  .sidebar .nav-item:active{transform:scale(.985)}
  .sidebar .nav-item.active{animation:jx-nav-in .26s cubic-bezier(.2,.8,.2,1)}
  .sidebar .nav-caption{transition:color .18s ease}
}
@keyframes jx-nav-in{from{background-color:transparent;transform:translateX(-4px)}to{transform:none}}
@media(prefers-reduced-motion:reduce){
  .sidebar .nav-item,.sidebar .nav-item .nav-icon{transition:none}
  .sidebar .nav-item.active{animation:none}
  .sidebar .nav-item:hover .nav-icon,.sidebar .nav-item:active{transform:none}
}
/* 品类占比表加了排序箭头后列变宽：数字列左右留白收小，型号列放宽，名称尽量一行（2026-11-05 审查） */
table.data-table.mix-table th,table.data-table.mix-table td{padding-left:8px;padding-right:8px}
.mix-table th .mix-sort{gap:2px}
@media(min-width:641px){.mix-model-table tbody th,.mix-model-table tfoot th{min-width:19rem}}
@media(min-width:641px){
  .mix-model-table th[scope="row"]{min-width:20rem}
  .mix-model-table .pull-model .sku-thumb-button,.mix-model-table .pull-model .sku-thumb-fallback{flex:0 0 40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
}
@media(min-width:641px){
  .mix-table td,.mix-table thead th{font-size:var(--fs-13,.8125rem)}
  .mix-model-table th[scope="row"]{min-width:18rem}
}
@media(min-width:641px){table.data-table.mix-table th,table.data-table.mix-table td{padding-left:6px;padding-right:6px}}
/* ===== 68. 店铺 LOGO（2026-11-05 用户）：店名前一个小圆角头像；没有图时什么都不显示 ===== */
.shop-logo{display:inline-block;flex:none;width:20px;height:20px;border-radius:4px;object-fit:cover;vertical-align:-5px;margin-right:6px;border:1px solid var(--ui-line);background:#fff}
.shop-name-with-logo{display:inline-flex;align-items:center;gap:0}
.shop-name-with-logo .shop-logo{vertical-align:middle}
.pdd-shop-overview th[scope="row"] .shop-logo{vertical-align:-5px}
/* 百亿补贴报名记录：活动名单独一行（2026-11-06 用户：换行显示才协调） */
.pdd-activity-row .model-cell-text small{display:block}
.pdd-activity-row .pdd-activity-name{margin-top:2px;color:var(--ui-ink-3)}
.promotion-spend small[title]{cursor:help}


/* 69. 百亿补贴链接表（2026-11-06）：商品列左对齐，数字右对齐；下线的行变淡 */
.pdd-links-head{margin-top:var(--sp-4)}
.pdd-links-table{width:100%}
.pdd-links-table th[scope=row],.pdd-links-table thead th:first-child{text-align:left;min-width:280px}
.pdd-links-table td .status-pill{display:inline-block}
.pdd-links-table .pdd-change{display:block;margin-top:2px;font-size:var(--fs-12)}
.pdd-links-table .pdd-change.is-off{color:var(--amber)}
.pdd-links-table .pdd-change.is-on{color:var(--green)}
.pdd-links-table tr.is-off th[scope=row] strong{color:var(--ui-ink-3)}
.pdd-links-table .pdd-activity-row .sku-thumb-button,.pdd-links-table .pdd-activity-row .sku-thumb-fallback{flex:0 0 40px;width:40px;height:40px}
@media(max-width:640px){
  .pdd-activity-table,.pdd-links-table{min-width:0!important;width:100%}
  .pdd-activity-table thead,.pdd-links-table thead{display:none}
  .pdd-activity-table tbody,.pdd-links-table tbody{display:block}
  .pdd-activity-table tr,.pdd-links-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--border)}
  .pdd-activity-table th[scope=row],.pdd-links-table th[scope=row]{display:block;min-width:0!important;height:auto!important;padding:0 0 6px;border:0}
  .pdd-activity-table td,.pdd-links-table td{display:grid;height:auto!important;grid-template-columns:8.5em minmax(0,1fr);column-gap:8px;align-items:baseline;padding:3px 0!important;border:0;text-align:left!important}
  .pdd-activity-table td::before,.pdd-links-table td::before{content:attr(data-label);grid-row:1 / span 2;color:var(--ui-ink-3);font-size:var(--fs-12);font-weight:400}
  .pdd-activity-table td small,.pdd-links-table td small{grid-column:2}
  .pdd-links-table td .status-pill{justify-self:start}
}

/* 70. 商品分析：处理中退款单独放最右，字色弱一档（还没退完、不扣减）（2026-11-06） */
.sku-items-table td.sku-pending{color:var(--ui-ink-3)}

/* 71. 取数专区「云商统计」（2026-11-06）：六个数、四张图（单色，悬停看数）、订单卡片（下单 → 出货 → 收货） */
.hik-head{margin:var(--sp-4) 0 var(--sp-3)}
.hik-head .pull-bar{margin:var(--sp-3) 0 0}
.hik-head .panel-head p{display:flex;align-items:center;gap:6px;color:var(--ui-ink-3);font-size:var(--fs-13,.8125rem)}
.hik-bar{flex-wrap:wrap;gap:var(--sp-2)}
.hik-search input{min-width:15rem;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-xs,6px);background:var(--surface,#fff);text-align:center}
.v2-kpis.hik-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.hik-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin:var(--sp-3) 0}
.hik-chart{margin:0}
.hik-chart-wide{grid-column:1 / -1}
.hik-bars{display:grid;gap:6px}
.hik-bar-row{display:grid;grid-template-columns:minmax(9rem,16rem) minmax(0,1fr) 6.5rem;align-items:center;gap:var(--sp-2);font-size:var(--fs-13,.8125rem)}
.hik-bar-label{display:flex;align-items:center;gap:6px;min-width:0;color:var(--ui-ink-2)}
.hik-bar-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hik-bar-label img{width:24px;height:24px;object-fit:contain;border:1px solid var(--border);border-radius:4px;background:#fff;flex:0 0 24px}
.hik-bar-track{height:14px;background:var(--ui-bg-soft,#f1f4f9);border-radius:4px;overflow:hidden}
.hik-bar-track i{display:block;height:100%;background:#3451d1;border-radius:0 4px 4px 0}
.hik-bar-value{text-align:right;color:var(--ui-ink)}
.hik-bars.is-vertical{grid-auto-flow:column;grid-auto-columns:minmax(36px,1fr);align-items:stretch;gap:2px;height:220px;overflow-x:auto;overflow-y:hidden}
.hik-bars.is-vertical .hik-bar-row{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;height:100%;gap:2px;text-align:center}
.hik-bars.is-vertical .hik-bar-track{height:100%;display:flex;align-items:flex-end;background:none}
.hik-bars.is-vertical .hik-bar-track i{width:100%;border-radius:4px 4px 0 0}
.hik-bars.is-vertical .hik-bar-value{order:-1;text-align:center;font-size:var(--fs-12);color:var(--ui-ink-3)}
.hik-bars.is-vertical .hik-bar-label{justify-content:center;font-size:var(--fs-12);color:var(--ui-ink-3)}
.hik-bars.is-vertical .hik-bar-row:hover .hik-bar-track i,.hik-bars .hik-bar-row:hover .hik-bar-track i{background:#2a40a8}
.hik-status-bar{display:flex;gap:2px;height:16px;border-radius:4px;overflow:hidden;margin:var(--sp-2) 0}
.hik-status-bar i.is-received,.hik-dot.is-received{background:var(--green)}
.hik-status-bar i.is-pending,.hik-dot.is-pending{background:var(--amber)}
.hik-status-bar i.is-cancel,.hik-dot.is-cancel{background:var(--red)}
.hik-status-legend{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hik-status-legend li{display:grid;grid-template-columns:auto 1fr auto 4rem;align-items:center;gap:8px;font-size:var(--fs-13,.8125rem)}
.hik-status-legend small{text-align:right;color:var(--ui-ink-3)}
.hik-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.hik-card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--sp-3)}
.hik-card{border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:var(--sp-3);background:var(--surface,#fff);display:grid;gap:var(--sp-2)}
.hik-card.is-cancel{border-left:3px solid var(--red)}
.hik-card.is-pending{border-left:3px solid var(--amber)}
.hik-card.is-detail-open{grid-column:1 / -1}
.hik-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.hik-card header small,.hik-card-money small{display:block;color:var(--ui-ink-3);font-size:var(--fs-12)}
.hik-card-main{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);align-items:center}
.hik-card-money strong{font-size:var(--fs-18,1.125rem)}
.hik-progress{display:flex;list-style:none;margin:0;padding:0}
.hik-progress li{flex:1;position:relative;text-align:center;font-size:var(--fs-12);color:var(--ui-ink-3);padding-top:14px}
.hik-progress li::before{content:'';position:absolute;top:4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--border);z-index:1}
.hik-progress li+li::after{content:'';position:absolute;top:7px;right:50%;width:100%;height:2px;background:var(--border)}
.hik-progress li.is-done::before{background:var(--green)}
.hik-progress li.is-done+li.is-done::after{background:var(--green)}
.hik-progress.is-cancel li.is-done+li.is-done::after,.hik-progress.is-cancel li+li.is-done::before{background:var(--red)}
.hik-progress span{display:block;color:var(--ui-ink-2)}
.hik-card footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--ui-ink-3);border-top:1px solid var(--border);padding-top:var(--sp-2)}
.hik-overdue{margin-left:6px;color:var(--amber)}
.status-pill.hik-cancel-pill{background:var(--red-soft,#fdecec);color:var(--red)}
.hik-card-detail{display:grid;gap:var(--sp-2)}
.hik-lines,.hik-ships{width:100%}
.hik-lines th[scope=row]{text-align:left;min-width:260px}
.hik-lines tr.is-muted th strong,.hik-lines tr.is-muted td{color:var(--ui-ink-3);text-decoration:line-through}
.hik-ships td small{display:block;color:var(--ui-ink-3)}
.hik-more{margin-top:var(--sp-3)}
.v2-kpis.hik-kpis .v2-kpi{min-width:0}
@media(max-width:900px){.v2-kpis.hik-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.hik-charts{grid-template-columns:1fr}}
@media(max-width:640px){
  .v2-kpis.hik-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hik-search,.hik-search input{width:100%;min-width:0}
  .hik-bar-row{grid-template-columns:minmax(0,7rem) minmax(0,1fr) 5rem}
  .hik-card-list{grid-template-columns:1fr}
  .hik-card-main{grid-template-columns:1fr}
}
.hik-run-notice{margin-top:var(--sp-3)}

/* 72. 云商统计第二版（2026-11-06）：补货与同期出库（按月成对柱：补货 / 净出库）、订单卡片商品图格子 */
.hik-flow .panel-head{flex-wrap:wrap;gap:var(--sp-2)}
.hik-flow-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr);gap:4px;height:200px;margin:var(--sp-2) 0 var(--sp-1);overflow-x:auto}
.hik-flow-col{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:4px;padding:4px 2px 0;border:0;border-radius:8px;background:none;cursor:pointer;font:inherit}
.hik-flow-col:hover,.hik-flow-col.is-on{background:var(--ui-bg-soft,#f1f4f9)}
.hik-flow-bars{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:100%}
.hik-flow-bars i{display:block;width:40%;max-width:18px;border-radius:4px 4px 0 0;min-height:1px}
.hik-flow-bars i.is-buy,.hik-dot.is-buy{background:#3451d1}
.hik-flow-bars i.is-out,.hik-dot.is-out{background:#e08a1e}
.hik-flow-col small{font-size:var(--fs-12);color:var(--ui-ink-3);text-align:center}
.hik-flow-legend{display:flex;gap:var(--sp-4);list-style:none;margin:0 0 var(--sp-3);padding:0;font-size:var(--fs-12);color:var(--ui-ink-2)}
.hik-flow-legend li{display:flex;align-items:center;gap:6px}
.hik-flow-table tbody tr.is-on th,.hik-flow-table tbody tr.is-on td{background:var(--ui-bg-soft,#f1f4f9)}
.hik-flow-table,.hik-flow-models{width:100%}
.hik-flow-table tfoot th,.hik-flow-table tfoot td{font-weight:600}
.hik-flow-sub{margin-top:var(--sp-4)}
.hik-flow-models th[scope=row]{text-align:left;min-width:240px}
.hik-gap.is-up{color:#3451d1}
.hik-gap.is-down{color:var(--amber)}
.hik-low{color:var(--amber);font-weight:600}
.hik-unmatched{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px}
.hik-unmatched li{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-13,.8125rem)}
.v2-kpis.hik-kpis .v2-kpi small{overflow-wrap:anywhere}
.hik-charts{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.hik-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;list-style:none;margin:0;padding:0}
.hik-thumbs li{position:relative;aspect-ratio:1;border:1px solid var(--border);border-radius:8px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hik-thumbs li.is-muted{opacity:.4}
.hik-thumbs img{width:100%;height:100%;object-fit:contain;padding:4px;box-sizing:border-box}
.hik-thumb-text{padding:4px;font-size:var(--fs-12);line-height:1.2;color:var(--ui-ink-3);text-align:center;word-break:break-all}
.hik-thumbs b{position:absolute;right:2px;bottom:2px;padding:0 4px;border-radius:4px;background:rgba(15,23,42,.72);color:#fff;font-size:var(--fs-12);font-weight:600;line-height:16px}
@media(max-width:900px){.hik-charts{grid-template-columns:1fr}}
.hik-status-bar i.is-shipped,.hik-dot.is-shipped{background:#3451d1}
.status-pill.hik-shipped-pill{background:#eef1fd;color:#3451d1}
.hik-card.is-shipped{border-left:3px solid #3451d1}

/* 73. 云商统计第三版（2026-11-06）：补货区按月 / 按型号两个视图、型号卡片；本区表头与数字居中 */
.hik-flow-switch{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.hik-flow-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2);margin:var(--sp-2) 0 var(--sp-3)}
.hik-flow-stat{display:grid;justify-items:center;gap:2px;padding:var(--sp-3) var(--sp-2);border-radius:var(--radius-sm,8px);background:var(--ui-bg-soft,#f6f8fb);text-align:center}
.hik-flow-stat span{font-size:var(--fs-12);color:var(--ui-ink-3)}
.hik-flow-stat strong{font-size:var(--fs-18,1.125rem);color:var(--ui-ink)}
.hik-flow-stat small{font-size:var(--fs-12);color:var(--ui-ink-3)}
.hik-flow-stat.is-warn strong{color:var(--amber)}
.hik-flow-col{position:relative}
.hik-flow-tip{display:none;position:absolute;bottom:calc(100% - 8px);left:50%;transform:translateX(-50%);z-index:5;min-width:120px;padding:6px 8px;border-radius:8px;background:rgba(15,23,42,.9);color:#fff;font-size:var(--fs-12);line-height:1.5;text-align:left;white-space:nowrap;pointer-events:none}
.hik-flow-tip b{display:block}
.hik-flow-col:hover .hik-flow-tip,.hik-flow-col:focus-visible .hik-flow-tip{display:block}
.hik-flow-chart{overflow:visible;padding-top:var(--sp-2)}
.hik-flow-hint{color:var(--ui-ink-3)}
.hik-flow-details{margin-top:var(--sp-2)}
.hik-flow-table th,.hik-flow-table td{text-align:center!important}
.hik-model-bar{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin:var(--sp-2) 0}
.hik-model-note{margin:0 0 var(--sp-2);font-size:var(--fs-12);color:var(--ui-ink-3);text-align:center}
.hik-model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}
.hik-model{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--surface,#fff);text-align:center}
.hik-model.is-low{border-color:color-mix(in srgb,var(--amber) 45%,var(--border))}
.hik-model header{display:grid;justify-items:center;gap:6px}
.hik-model header .sku-thumb-button,.hik-model header .sku-thumb-fallback{width:56px;height:56px;flex:0 0 56px;min-width:56px;min-height:56px;max-width:56px;max-height:56px}
.hik-model header strong{display:block;font-size:var(--fs-13,.8125rem);word-break:break-all}
.hik-model header small{display:block;font-size:var(--fs-12);color:var(--ui-ink-3);word-break:break-all}
.hik-model-spark{display:flex;align-items:flex-end;justify-content:center;gap:2px;height:36px;padding:0 4px;border-bottom:1px solid var(--border)}
.hik-model-spark span{display:flex;align-items:flex-end;gap:1px;height:100%;flex:1;max-width:14px;justify-content:center}
.hik-model-spark span.is-on{background:var(--ui-bg-soft,#f1f4f9)}
.hik-model-spark i{display:block;width:45%;min-height:1px;border-radius:2px 2px 0 0}
.hik-model-spark i.is-buy{background:#3451d1}
.hik-model-spark i.is-out{background:#e08a1e}
.hik-model dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}
.hik-model dl div{display:grid;gap:0}
.hik-model dt{font-size:var(--fs-12);color:var(--ui-ink-3)}
.hik-model dd{margin:0;font-weight:600;color:var(--ui-ink)}
.hik-model footer{font-size:var(--fs-12);color:var(--ui-ink-3)}
.hik-model footer.is-low{color:var(--amber);font-weight:600}
.hik-card-list{grid-template-columns:repeat(4,minmax(0,1fr))}
.hik-card-main{grid-template-columns:1fr;justify-items:center;text-align:center}
.hik-card header{text-align:left}
@media(max-width:1100px){.hik-model-grid,.hik-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.hik-flow-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hik-model-grid,.hik-card-list{grid-template-columns:1fr}}
.v2-kpis.hik-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.hik-flow-legend{flex-wrap:wrap;gap:6px var(--sp-4)}
.hik-flow-legend li{white-space:nowrap}
@media(max-width:640px){
  .v2-kpis.hik-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hik-flow-chart{grid-auto-columns:minmax(0,1fr);gap:1px;height:170px}
  .hik-flow-col{padding:4px 0 0}
  .hik-flow-col small{font-size:var(--fs-12)}
  .hik-flow-tip{left:0;transform:none}
  .hik-flow-col:nth-last-child(-n+4) .hik-flow-tip{left:auto;right:0}
  .hik-flow-hint{white-space:normal}
}
.hik-progress{width:100%}
.hik-progress li small{display:block;white-space:nowrap;font-size:var(--fs-12)}
.hik-progress li span{white-space:nowrap}
.hik-thumbs img{font-size:0;color:transparent}
.hik-card-money{text-align:center}
/* 74. 云商统计时间筛选（2026-11-06）：全部 / 2026 年 / Q1～Q4 / 选月份 / 起止日期 */
.hik-month-pick select,.hik-day-pick input{height:32px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-xs,6px);background:var(--surface,#fff);font:inherit;color:var(--ui-ink-2)}
.hik-month-pick.is-on select,.hik-day-pick.is-on input{border-color:#3451d1;color:#3451d1;font-weight:600}
.hik-day-pick{display:inline-flex;align-items:center;gap:6px;color:var(--ui-ink-3);font-size:var(--fs-13,.8125rem)}
.hik-head .pull-bar+.pull-bar{margin-top:var(--sp-2)}
@media(max-width:640px){.hik-day-pick{width:100%}.hik-day-pick label{flex:1}.hik-day-pick input{width:100%}.hik-month-pick,.hik-month-pick select{width:100%}}
.hik-head .hik-bar{justify-content:flex-start;gap:var(--sp-2) var(--sp-3)}
.hik-head .hik-bar #hikExport{margin-left:auto}
.ad-fee-missing p{margin:6px 0 0;color:var(--ui-ink-2);font-size:var(--fs-13,.8125rem)}
.hik-model-spark span{cursor:default}
.hik-model-spark span:hover{background:var(--ui-bg-soft,#f1f4f9)}
.hik-order-tools{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);align-items:center;margin:0 0 var(--sp-3)}
.v2-kpis.hik-kpis .v2-kpi-hint{line-height:1.6}
/* 75. 商品分析四个筛选数字（2026-11-06 用户）：去掉小字，数字加大、标题和数字各自居中 */
.v2-kpis-filter .v2-kpi{justify-items:center;text-align:center}
.v2-kpis-filter .v2-kpi .v2-kpi-head{justify-content:center}
.v2-kpis-filter .v2-kpi strong.v2-num{font-size:1.5rem;line-height:1.2}
/* 76. 待处理里列的型号 / 商品带图（2026-11-06）*/
.v2-issue-models{list-style:none;margin:6px 0;padding:0;display:grid;gap:6px}
.v2-issue-models .model-cell{gap:8px}
.v2-issue-models .sku-thumb-button,.v2-issue-models .sku-thumb-fallback,.v2-issue-models .model-thumb-slot .sku-thumb-fallback{width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;flex:0 0 36px}
.v2-issue-models strong{font-size:var(--fs-13,.8125rem)}
.v2-issue-models small{font-size:var(--fs-12);color:var(--ui-ink-3)}
/* 77. 立即同步按钮（2026-11-06 用户：箭头部分不协调）：两段合成一个按钮，中间一条细线，箭头用细线折角；同步面板；云商同步按钮 */
.sync-split{display:inline-flex;align-items:stretch;border:1px solid var(--line,var(--border));border-radius:var(--radius-sm,8px);background:var(--surface,#fff);overflow:hidden}
.sync-split .top-sync{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent}
.sync-split .top-sync:hover{background:var(--accent-soft,#eef1fd)}
.sync-split .sync-more{width:2rem;margin-left:0;border-left:1px solid var(--line,var(--border))!important;color:var(--ui-ink-3,#64748b)}
.sync-split .sync-chevron{width:14px;height:14px;display:block}
.sync-jobs-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}
.sync-jobs-head h3{margin:0}
.sync-center-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.hik-sync-btn.is-busy{opacity:.75}
.hik-card footer .btn{flex:0 0 auto}
#drawerBody .hik-card-detail .hik-lines th[scope=row]{min-width:220px}
.sync-center-status{position:relative}
.sync-refresh-link{position:absolute;right:0;top:2px}
.sync-job small{display:block}
.sync-job .sync-job-id{color:var(--ui-ink-3);opacity:.7;font-size:var(--fs-12)}
/* 2026-11-06 用户：顶栏铃铛（任务中心）和立即同步面板重复，不显示 */
#notificationBtn[hidden]{display:none!important}
/* 2026-11-06 用户：「标配」要和右边容量的「—」对齐——垂直居中，不再贴着标题顶部 */
.sku-product-identity>.wdt-offline-tag{align-self:center;margin-top:0}
.sku-product-identity>.sku-thumb-button,.sku-product-identity>.sku-thumb-fallback{align-self:center}
.finance-gap-action.is-expired{background:var(--ui-bg-soft,#f6f8fb)}
/* 分时图画满卡片宽度，不出横向滚动（2026-11-06）*/
/* 79. 云商订单卡片状态色（2026-11-06 用户：撤单灰、待发货黄、已收货绿、在途蓝）：原来的左边框在圆角上弯成括号，改成卡片内一条竖条 */
.hik-card{position:relative;overflow:hidden}
.hik-card.is-cancel,.hik-card.is-pending,.hik-card.is-shipped{border-left:1px solid var(--border)}
.hik-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:transparent}
.hik-card.is-cancel::before{background:#94a3b8}
.hik-card.is-pending::before{background:#d97706}
.hik-card.is-received::before{background:#0f9d58}
.hik-card.is-shipped::before{background:#3451d1}
.hik-card .status-pill.hik-cancel-pill{background:#f1f5f9;color:#64748b}
.hik-card.is-pending .status-pill.pending{background:#fef3c7;color:#b45309}
.hik-card.is-received .status-pill.success{background:#e7f6ee;color:#0f7a44}
.hik-dot.is-cancel,.hik-status-bar i.is-cancel{background:#94a3b8}
.hik-dot.is-pending,.hik-status-bar i.is-pending{background:#d97706}
/* 2026-11-06 用户：云商「按月明细表」被压扁——卡片是纵向 flex，展开别的折叠块时会把它挤成一条；折叠块一律不被挤、不被拉伸 */
details.v2-disclosure{flex:0 0 auto}
.hik-flow>*{flex-shrink:0}
/* 80. 店名前的头像（2026-11-06）：和文字垂直居中，不挤乱表格 */
.shop-logo-auto{display:inline-block;width:18px;height:18px;border-radius:4px;object-fit:cover;vertical-align:-4px;margin-right:6px;border:1px solid var(--border);background:#fff}
.has-shop-logo{white-space:nowrap}
.has-shop-logo small{white-space:normal}
/* 81. 推广商品抽屉（2026-11-06）*/
.ad-fee-goods-open{margin-top:4px;font-size:var(--fs-13)}
.ad-goods-table th[scope=row]{text-align:left;min-width:280px}
.ad-goods-table td.num,.ad-goods-table th.num{text-align:right}
/* 82. 首页走势卡与待处理卡同高、下面一行店铺卡与型号卡顶边对齐（2026-11-06 用户：方块高度对齐会更好看）
   电脑上改成两行网格：第 1 行走势 | 待处理，第 2 行店铺 | 型号与推广；每行两张卡等高 */
@media(min-width:861px){
  .v2-grid-2.v2-cols{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:auto auto;align-items:stretch}
  .v2-grid-2.v2-cols>.v2-col{display:contents}
  .v2-cols>.v2-col>.v2-trend{grid-column:1;grid-row:1}
  .v2-cols>.v2-col>.v2-shops{grid-column:1;grid-row:2}
  .v2-cols>.v2-col>.v2-inbox-card{grid-column:2;grid-row:1;height:auto;display:flex;flex-direction:column}
  .v2-cols>.v2-col>.v2-stack{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:var(--ui-gap)}
  .v2-cols>.v2-col>.v2-stack>:last-child{flex:1 1 auto}
  .v2-cols .v2-inbox-card>:last-child{margin-top:auto}
}
/* 83. 商品分析四个方块：点选后外框不再往外多一圈（原来焦点光圈画在方块外面，选中的那块看着变大）；数字行固定高度，读取中与数字切换不跳 */
.v2-kpis-filter .v2-kpi:focus-visible,.v2-kpis-filter .v2-kpi[aria-pressed="true"]:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--accent)}
.v2-kpis-filter .v2-kpi strong.v2-num{min-height:34px;display:flex;align-items:center;justify-content:center}
.products-sort-bar{margin:0 0 8px}
/* 商品分析：表上方写明当前按什么排（各方块默认排法不同，要看得见） */
.table-interaction-bar.products-sort-bar{justify-content:space-between;align-items:center;margin:0 0 8px}
.products-sort-bar>[role="status"]{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;clip-path:none;white-space:normal;color:var(--ink-500);font-size:var(--fs-13)}
/* 84. 退款明细页头（2026-11-06）：笔数挨着标题，状态与搜索一行，翻页放到表格下方右侧 */
.after-sales-detail .panel-head.after-sales-detail-head{margin-bottom:12px}
.after-sales-detail-title{display:flex;align-items:center;gap:10px}
.after-sales-detail-title h2{margin:0}
.after-sales-detail-tools{margin-bottom:12px}
.after-sales-more select{field-sizing:content;max-width:14rem}
.after-sales-foot{display:block;margin:12px 0 0}
.after-sales-foot-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.after-sales-foot-bar .money-pagination{margin:0;gap:10px}
.after-sales-foot .refund-detail-wrap{margin-top:12px}
/* 店名前的头像：按钮、页头小字里也和文字垂直居中 */
.v2-shop-chip .shop-logo-auto,.graph-view-bar-heading .shop-logo-auto{width:16px;height:16px;vertical-align:-3px;margin-right:6px}
.v2-shop-chip.has-shop-logo{display:inline-flex;align-items:center}
.panel-head p.has-shop-logo,.v2-card-head p.has-shop-logo{white-space:normal}
.after-sales-table td:first-child>.text-btn{padding-left:0;margin-left:0}
/* 85. 待处理改进（2026-11-06）：勾选批量交办、持续时间、知道了选原因、交办状态、我交办的、交办弹层 */
.v2-issue-pick{display:inline-flex;align-items:center;margin-right:2px;cursor:pointer}
.v2-issue-pick input{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}
.v2-issue.is-picked{background:#f5f7ff}
.v2-issue-age{font-size:var(--fs-12);color:var(--ink-500);white-space:nowrap}
.v2-issue-age::before{content:"·";margin-right:6px;color:var(--ink-400)}
.v2-ack-pick{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 10px;border-radius:var(--radius);background:#f6f7f9;font-size:var(--fs-13);color:var(--ink-700)}
.v2-ack-pick>span{margin-right:4px}
.v2-issue-assigned.is-bad{background:#fdf0ef;color:#a3271d!important}
.v2-issue-assigned.is-bad b{color:#a3271d}
.v2-inbox-delegated{display:flex;align-items:center;width:100%;margin-top:10px;padding:10px 14px;border:1px dashed var(--line);border-radius:var(--radius-lg);background:#fff;color:var(--ink-500);font:inherit;font-size:var(--fs-13);text-align:left;cursor:pointer}
.v2-inbox-delegated:hover{color:var(--accent);border-color:var(--accent)}
.v2-pick-bar{position:sticky;bottom:16px;z-index:5;display:flex;align-items:center;gap:12px;width:max-content;max-width:100%;margin:12px auto 0;padding:8px 10px 8px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;box-shadow:0 6px 24px rgba(15,23,42,.14);font-size:var(--fs-14)}
.v2-pick-bar b{color:var(--accent)}
.v2-inbox-later>summary{list-style:none;align-items:center}
.v2-inbox-later>summary::-webkit-details-marker{display:none}
.v2-later-caret{display:inline-block;width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s;margin:0 4px 0 2px}
.v2-inbox-later[open] .v2-later-caret{transform:rotate(45deg)}
/* 团队事项卡（派给我的 / 我交办的）：按钮靠右排，不套系统提醒的四列 */
.v2-issue-side.v2-issue-side-todo{display:flex!important;flex-direction:row;justify-content:flex-end;align-items:center}
.v2-issue-side-todo .v2-issue-actions{display:flex!important;gap:8px;flex-wrap:nowrap}
.v2-issue-side-todo .v2-issue-actions .btn{width:auto!important;padding-inline:14px!important}
.v2-todo-form{grid-column:1/-1}
/* 交办弹层 */
.v2-assign-drawer{border:0;background:none;padding:0;gap:14px}
.v2-assign-drawer .v2-assign-row{grid-template-columns:4em minmax(0,1fr)}
.v2-assign-items{display:grid;grid-template-columns:4em minmax(0,1fr);gap:8px}
.v2-assign-items ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.v2-assign-items li{display:flex;align-items:center;gap:8px;font-size:var(--fs-14)}
.v2-assign-drawer select,.v2-assign-date{height:34px;padding:0 10px;border:1px solid var(--ui-line-strong);border-radius:var(--radius);font:inherit;font-size:var(--fs-14);background:#fff;max-width:16rem}
.v2-assign-date{margin-top:8px;display:block}
.v2-assign-date[hidden]{display:none}
.v2-assign-files{margin:6px 0 0;padding-left:1.2em;font-size:var(--fs-13)}
.v2-assign-hint{margin:0;padding:10px 12px;border-radius:var(--radius);background:#f6f7f9;color:var(--ink-500);font-size:var(--fs-13)}
@media (max-width:600px){.v2-assign-items,.v2-assign-drawer .v2-assign-row{grid-template-columns:1fr}}
/* 手机：按钮固定在每条卡片底部一整行 */
@media(max-width:700px){
  .v2-inbox-group .v2-issue-side{flex-direction:row;align-items:center;flex-wrap:wrap;width:100%}
  .v2-inbox-group .v2-issue-side .v2-issue-actions{display:flex;flex:1 1 100%;gap:8px}
  .v2-inbox-group .v2-issue-side .v2-issue-actions .btn{flex:1;min-height:2.75rem}
  .v2-pick-bar{bottom:76px}
}
.v2-inbox-group .v2-issue-top h3{flex:0 1 auto}
.v2-issue-age::before{content:none}
.v2-issue-age{padding:1px 6px;border-radius:var(--radius-sm);background:#f3f4f6}
.v2-assign-drawer .v2-shop-chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.v2-assign-drawer .team-file-picker+small{display:block;margin-top:6px;color:var(--ink-500);font-size:var(--fs-12)}
/* 86. 云商订单详情两张表（2026-11-06 用户：表头和内容没对齐）：商品、发货单号等文字列表头与内容都靠左；单价、数量、金额表头与数字都靠右，等宽数字 */
:is(#content,#drawerBody) table.hik-lines th,:is(#content,#drawerBody) table.hik-lines td,:is(#content,#drawerBody) table.hik-ships th,:is(#content,#drawerBody) table.hik-ships td{text-align:left!important;padding-left:12px;padding-right:12px}
:is(#content,#drawerBody) table.hik-lines .v2-num,:is(#content,#drawerBody) table.hik-lines td.v2-num,:is(#content,#drawerBody) table.hik-lines th.v2-num{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}
:is(#content,#drawerBody) table.hik-lines thead th:first-child{padding-left:12px}
:is(#content,#drawerBody) table.hik-ships td small{display:block;margin-top:2px;color:var(--ink-500)}
:is(#content,#drawerBody) table.hik-ships td:last-child{white-space:normal}

/* 2026-11-06 取数专区 4G/WIFI：顶部第 6 张「云商进货」；型号表最右「云商同期进货」一组 */
@media(min-width:1101px){.data-pull .v2-kpis.pull-mix-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:641px) and (max-width:1100px){.data-pull .v2-kpis.pull-mix-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mix-table .mix-hik-head{color:var(--v2-accent,#3451d1)}
/* 2026-11-06 顶栏「导出本页」：下载图标（线条，同第二套图标） */
[data-icon="download"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10.5l5 5 5-5M5 19.5h14'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}
/* 2026-11-06 云商统计 · 海康返利 */
.hik-rebate .hik-flow-stat.is-new strong{color:var(--v2-accent,#3451d1)}
.hik-rebate-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--sp-4,16px);align-items:start}
@media(max-width:900px){.hik-rebate-grid{grid-template-columns:1fr}}
.hik-rebate-tools{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;margin:0 0 8px}
.hik-rebate-list td,.hik-rebate-list th{vertical-align:top}
.hik-rebate-list td strong{font-weight:500}
.hik-rebate-list tr.is-late td{background:#fff8e6}
.hik-rebate-list .is-late{color:#9a6a12}
.hik-rebate-new{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--v2-accent-soft,#eef2ff);color:var(--v2-accent,#3451d1);font-size:var(--fs-12,.75rem);line-height:18px;vertical-align:1px}
.hik-rebate .v2-num.neg,.hik-rebate td.neg{color:#c0392b}
.hik-rebate-list{min-width:640px}
@media(max-width:640px){.hik-rebate-tools .hik-search{width:100%}.hik-rebate-tools .hik-search input{width:100%}}
.hik-rebate-grid>*{min-width:0}
.hik-rebate table.data-table{width:100%}
.hik-rebate table.hik-rebate-kinds,.hik-rebate table.hik-rebate-months{min-width:0}
.hik-rebate .hik-rebate-kinds th,.hik-rebate .hik-rebate-kinds td,.hik-rebate .hik-rebate-months th{white-space:nowrap}
.hik-rebate .hik-rebate-list td:nth-child(3){text-align:left}
.hik-rebate .hik-rebate-kinds th[scope="row"],.hik-rebate .hik-rebate-months th[scope="row"]{min-width:0;width:auto;max-width:none;text-align:left}
/* 2026-11-07 品牌任务（取数专区页签 + 首页小卡） */
.brand-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.brand-bar #brandExport{margin-left:auto}
.brand-table .brand-pct.is-good,.brand-kpis .is-good strong,.v2-brand b.is-good{color:#1f8a5b}
.brand-table .brand-pct.is-warn,.brand-kpis .is-warn strong,.v2-brand b.is-warn{color:#b7791f}
.brand-table .brand-pct.is-bad,.brand-kpis .is-bad strong,.v2-brand b.is-bad{color:#c0392b}
.brand-table .brand-pct{font-weight:600}
.brand-table .brand-up{color:#1f8a5b}
.brand-table .brand-down{color:#c0392b}
.brand-table .brand-muted,.brand-table tr.is-future td{color:var(--ui-ink-3,#8a94a6)}
.brand-table tr.is-current th,.brand-table tr.is-current td{background:var(--v2-accent-soft,#eef2ff)}
.brand-table tfoot tr.brand-q th,.brand-table tfoot tr.brand-q td{font-weight:500;background:#fafbfd}
.brand-table tfoot tr.brand-year th,.brand-table tfoot tr.brand-year td{font-weight:700}
.brand-table th[scope="row"]{min-width:5.5rem!important;width:6rem;white-space:nowrap}
.brand-table{min-width:880px}
.brand-input{width:6.5rem;max-width:100%;padding:4px 6px;border:1px solid var(--ui-line,#d9deea);border-radius:8px;font:inherit;text-align:right}
.brand-edit-tip{margin:0 0 8px;color:var(--ui-ink-2,#4a5468);font-size:var(--fs-13,.8125rem)}
@media(min-width:1101px){.data-pull .v2-kpis.brand-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.v2-brand .v2-card-head{display:flex;align-items:center;justify-content:space-between}
.v2-brand-scope{margin:0 0 8px}
.v2-brand-line{margin:10px 0 0}
.v2-brand-top{display:flex;justify-content:space-between;align-items:baseline}
.v2-brand-top b{font-size:var(--fs-20,1.25rem)}
.v2-brand-meter{position:relative;height:8px;border-radius:999px;background:#edf0f6;margin:6px 0 4px;overflow:visible}
.v2-brand-meter i{display:block;height:100%;border-radius:999px;background:#3451d1}
.v2-brand-meter.is-good i{background:#2f9e74}.v2-brand-meter.is-warn i{background:#e0a234}.v2-brand-meter.is-bad i{background:#d9534f}
.v2-brand-meter em{position:absolute;top:-3px;width:2px;height:14px;background:#1f2a44;border-radius:4px}
.v2-brand-line small{color:var(--ui-ink-2,#4a5468)}
.brand-table .brand-miss{color:#b7791f}
/* 2026-11-07 品牌任务 · 按店铺（同原 4G任务 表） */
.brand-store{margin:0 0 var(--sp-5,20px)}
.brand-store:last-child{margin-bottom:0}
.brand-store-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 8px}
.brand-store-head h3{margin:0;font-size:var(--fs-15,.9375rem);font-weight:600}
.brand-store-head small{color:var(--ui-ink-3,#8a94a6)}
table.data-table.brand-matrix{width:100%;min-width:1180px;table-layout:fixed}
.brand-matrix th,.brand-matrix td{white-space:nowrap;text-align:center;padding:8px 6px}
.brand-matrix thead th{font-weight:600;color:var(--ui-ink-2,#4a5468)}
.brand-matrix th[scope="row"]{width:8.5rem;text-align:left;position:sticky;left:0;z-index:1;background:#fff;font-weight:500}
.brand-matrix .brand-agg{background:#f7f8fb}
.brand-matrix .is-current{background:var(--v2-accent-soft,#eef2ff)}
.brand-matrix .mix-sep{border-left:1px solid var(--ui-line,#e3e7ef)}
.brand-matrix .mix-cell-sub{display:block;font-size:var(--fs-12,.75rem);color:var(--ui-ink-3,#8a94a6);font-weight:400}
.brand-matrix .brand-pct{font-weight:600}
.brand-matrix .brand-pct.is-good{color:#1f8a5b}.brand-matrix .brand-pct.is-warn{color:#b7791f}.brand-matrix .brand-pct.is-bad{color:#c0392b}
.brand-matrix .brand-up{color:#1f8a5b}.brand-matrix .brand-down{color:#c0392b}
.brand-matrix .brand-muted{color:var(--ui-ink-3,#8a94a6)}.brand-matrix .brand-miss{color:#b7791f}
.brand-matrix tr.brand-line-target td{color:var(--ui-ink-1,#1f2a44)}
@media(max-width:640px){.brand-matrix th[scope="row"]{width:6.5rem}.brand-bar{gap:8px}.brand-bar #brandExport{margin-left:0}}
/* 按店铺表：17 列在常见桌面宽度一屏放下；手机上整块横滑、首列固定 */
table.data-table.brand-matrix{min-width:0}
.brand-matrix th,.brand-matrix td{padding:7px 4px;font-size:var(--fs-13,.8125rem)}
.brand-matrix th[scope="row"]{width:5.5rem;white-space:normal;padding-left:8px}
.brand-matrix thead th:first-child{width:5.5rem;text-align:left;padding-left:8px}
.brand-matrix .mix-cell-sub{white-space:normal;line-height:1.25}
@media(max-width:1100px){table.data-table.brand-matrix{min-width:980px}}
.brand-matrix .mix-cell-sub{white-space:nowrap}
.brand-matrix .brand-live{display:inline-block;width:6px;height:6px;margin-left:3px;border-radius:50%;background:var(--v2-accent,#3451d1);vertical-align:2px}
/* 2026-11-07 推广投放页页头：推广核心数（6 项）+ 广告 / 非广告占比条 */
.promo-kpis-wrap{display:grid;gap:12px}
.promo-split{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--ui-line,#e3e7ef);border-radius:12px;background:#fafbfd}
.promo-split-row{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:4px 12px;align-items:center}
.promo-split-row small{grid-column:2;color:var(--ui-ink-2,#4a5468);font-size:var(--fs-12,.75rem)}
.promo-split-label{font-size:var(--fs-13,.8125rem);color:var(--ui-ink-2,#4a5468)}
.promo-split-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:#edf0f6}
.promo-split-bar i{display:block;height:100%}
.promo-split-bar .is-ad{background:#3451d1}.promo-split-bar .is-organic{background:#2f9e74}
.promo-scope{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--ui-ink-3,#8a94a6);font-size:var(--fs-12,.75rem)}
.promo-review-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:#fff4e0;color:#9a6a12;font-size:var(--fs-12,.75rem);line-height:18px;vertical-align:1px;cursor:help}
.pdd-shop-overview td small{display:block;color:var(--ui-ink-3,#8a94a6);font-size:var(--fs-12,.75rem)}
@media(max-width:640px){.promo-split-row{grid-template-columns:4rem minmax(0,1fr)}}
/* 2026-11-07 库存管理 */
.inv-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.inv-target{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-13,.8125rem);color:var(--ui-ink-2,#4a5468)}
.inv-target select{padding:4px 8px;border:1px solid var(--ui-line,#d9deea);border-radius:8px;background:#fff;font:inherit}
.inv-bar .hik-search{margin-left:auto}
@media(min-width:1101px){.v2-kpis.inv-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:641px) and (max-width:1100px){.v2-kpis.inv-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
.inv-kpis button.v2-kpi{text-align:left;cursor:pointer;font:inherit;color:inherit}
.inv-kpis .is-bad strong{color:#c0392b}.inv-kpis .is-warn strong{color:#b7791f}.inv-kpis .is-muted strong{color:#6b7385}
.inv-brand{padding:12px 16px}
.inv-brand-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px}
.inv-brand-label{font-weight:600}
.inv-brand.is-ok strong{color:#1f8a5b}.inv-brand.is-bad strong{color:#c0392b}
.inv-brand .text-btn{margin-left:auto}
.inv-brand small{display:block;margin-top:4px;color:var(--ui-ink-3,#8a94a6)}
table.data-table.inv-table{min-width:900px}
.inv-table th[scope="row"]{min-width:15rem!important}
.inv-table td{text-align:center}
.inv-table th[scope="row"],.inv-table th[scope="row"] .pull-model>div,.inv-table thead th:first-child{text-align:left}
.inv-table th[scope="row"] .pull-model{justify-content:flex-start}
.inv-table th[scope="row"] .pull-model strong,.inv-table th[scope="row"] .pull-model small{display:block;text-align:left}
.inv-table .inv-bad{color:#c0392b;font-weight:600}
.inv-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:var(--fs-12,.75rem);background:#eef1f6;color:#4a5468;white-space:nowrap}
.inv-tag.is-bad{background:#fdecea;color:#c0392b}.inv-tag.is-warn{background:#fff4e0;color:#9a6a12}.inv-tag.is-ok{background:#e8f6ef;color:#1f8a5b}
@media(max-width:640px){.inv-bar .hik-search{margin-left:0;width:100%}.inv-bar .hik-search input{width:100%}.inv-brand .text-btn{margin-left:0}}
.inv-table-panel table.data-table.inv-table{width:100%}
/* 2026-11-13 库存货值、月度出库金额、品牌切换 */
.inv-brand-tabs{margin-top:10px}
.inv-value-panel .mix-sub small,.inv-month-panel .mix-sub small,.inv-stock-panel .mix-sub small{color:var(--ui-ink-3,#8a94a6)}
@media(min-width:641px){.v2-kpis.inv-value-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.inv-value-kpis .v2-kpi-label small{font-weight:400;color:var(--ui-ink-3,#8a94a6)}
.inv-value-kpis .inv-kpi-total{background:var(--ui-accent-soft,#eef3ff)}
.inv-value-sub{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;font-size:var(--fs-13,.8125rem);color:var(--ui-ink-2,#4a5468)}
.inv-value-sub b{font-weight:600;margin-right:6px;color:var(--ui-ink,#1f2a44)}
table.data-table.inv-month-table{min-width:760px;width:100%}
.inv-month-table td{text-align:right}
.inv-month-table th{white-space:nowrap!important}
.inv-month-table thead th{vertical-align:bottom}
.inv-month-table thead th small{display:block;font-weight:400;color:var(--ui-ink-3,#8a94a6)}
.inv-month-table .inv-month-total th,.inv-month-table .inv-month-total td{font-weight:600;border-top:1px solid var(--ui-line,#d9deea)}
.inv-month-table .inv-month-tag th{padding-left:1.6em;font-weight:400;color:var(--ui-ink-2,#4a5468)}
.inv-month-table .inv-warn{color:#b7791f;font-weight:600}
.inv-stock-panel .inv-bar{margin-top:8px}
/* 2026-11-07 天猫取数 */
.tmall-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.tmall-bar #tmallExport{margin-left:auto}
.tmall-warn{color:var(--danger,#b42318);font-weight:600}
.tmall-head .panel-head p.tmall-src{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;white-space:normal}
.tmall-src-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--surface-sunken);color:var(--text-3);font-size:var(--fs-12);line-height:18px;font-weight:500}
.tmall-src-tag.is-ok::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}
.tmall-src-tag.is-warn{background:var(--amber-soft);color:var(--amber)}
.tmall-src-tag.is-bad{background:var(--red-soft);color:var(--red);font-weight:600}
.tmall-bar .tmall-login-btn{margin-left:auto}
.tmall-bar .tmall-login-btn+#tmallExport{margin-left:0}
@media(min-width:1101px){.data-pull .v2-kpis.tmall-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:641px) and (max-width:1100px){.data-pull .v2-kpis.tmall-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tmall-panel table.data-table{width:100%}
table.data-table.tmall-table{min-width:640px}
.tmall-table th[scope="row"]{min-width:9rem!important;text-align:left}
.tmall-table td{text-align:center}
.tmall-month-table th[scope="row"]{min-width:7rem!important;white-space:nowrap}
.tmall-month-table td,.tmall-month-table thead th{text-align:center;white-space:nowrap}
.tmall-month-table .is-current{background:var(--v2-accent-soft,#eef2ff)}
.tmall-delta{font-weight:600}.tmall-delta.is-up{color:#1f8a5b}.tmall-delta.is-down{color:#c0392b}
@media(max-width:640px){.tmall-bar #tmallExport{margin-left:0}}
/* 2026-11-07 天猫关键词与词包：类型筛选、筛选合计 */
.tmall-kw-tools{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:4px 0 10px}
.tmall-kw-tools .hik-search{margin-left:auto}
.tmall-kw-sum{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;padding:10px 14px;margin-bottom:10px;border-radius:12px;background:var(--ui-surface-2,#f6f8fa)}
.tmall-kw-stat{display:inline-flex;align-items:baseline;gap:6px}
.tmall-kw-stat small{color:var(--ui-ink-3,#5b6472);font-size:var(--fs-12)}
.tmall-kw-stat b{font-size:var(--fs-14);font-weight:650;color:var(--ui-ink-1,#111827)}
.inv-tag.is-pkg{background:#eef2ff;color:#3346a8}
.tmall-kw-foot{margin:8px 0 0;color:var(--ui-ink-3,#5b6472);font-size:var(--fs-12)}
@media(max-width:640px){.tmall-kw-tools .hik-search{margin-left:0;width:100%}.tmall-bar .tmall-login-btn{margin-left:0}.tmall-kw-sum{gap:4px 14px}}
/* 2026-11-07 待处理：已验证、正在补采的条目用琥珀色「补采中」，不再是蓝色「去验证」 */
.btn.inbox-busy-btn{display:inline-flex;align-items:center;gap:6px;background:#fff7e6;color:#b45309;border:1px solid #f5c26b;font-weight:600}
.btn.inbox-busy-btn:hover{background:#ffefcc}
.btn.inbox-busy-btn .loading-indicator{display:inline-block;width:12px;height:12px;border:2px solid #f5c26b;border-top-color:#b45309;border-radius:50%;animation:refreshSpin .8s linear infinite}
@media(prefers-reduced-motion:reduce){.btn.inbox-busy-btn .loading-indicator{animation:none}}
/* 2026-11-07 用户：指标名不要斜体 */
em.v2-metric-label{font-style:normal}
.inv-bar .inv-export{margin-left:0}
.restock-moved .v2-card-head .v2-inline{gap:10px}
/* 2026-11-07 首页「店铺经营利润」重排：备注放店名下、行高紧凑、顶部合计条、加利润率、不再横向滚动 */
.v2-profit .v2-profit-sum{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;margin:4px 0 12px;padding:12px 16px;border-radius:12px;background:var(--surface-2,#f7f9fb);border:1px solid var(--ui-line,#e5e9ef)}
.v2-profit-stat{display:inline-flex;flex-direction:column;gap:2px}
.v2-profit-stat small{font-size:var(--fs-12);color:var(--ui-ink-3,#5b6472)}
.v2-profit-stat b{font-size:var(--fs-16);font-weight:650;color:var(--ui-ink-1,#16273a);font-variant-numeric:tabular-nums;line-height:1.2}
.v2-profit-stat b.is-good{color:var(--green,#15803d)}.v2-profit-stat b.is-bad{color:var(--red,#c0392b)}
.v2-profit-flag{margin-left:auto;padding:4px 10px;border-radius:999px;font-size:var(--fs-13);font-weight:600;max-width:100%;white-space:normal}
.v2-profit-flag.is-bad{background:#fef2f2;color:#b42318}.v2-profit-flag.is-good{background:#ecfdf3;color:#15803d}
.v2-profit .table-wrap{overflow-x:auto}
.v2-profit .v2-profit-table{table-layout:auto;width:100%;min-width:0}
.v2-profit .v2-profit-table thead th{white-space:nowrap}
.v2-profit .v2-profit-col-shop{width:26%}
.v2-profit .v2-profit-table th,.v2-profit .v2-profit-table td{padding:10px 12px;vertical-align:middle;height:auto}
.v2-profit .v2-profit-table thead th{text-align:right}
.v2-profit .v2-profit-table thead th:first-child,.v2-profit .v2-profit-table tbody th,.v2-profit .v2-profit-table tfoot th{text-align:left}
.v2-profit .v2-profit-table tbody th{white-space:normal;font-weight:500}
.v2-profit .v2-profit-table tbody th .shop-name-with-logo{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.v2-profit .v2-profit-table .v2-profit-note{display:block;margin-top:3px;font-size:var(--fs-12);font-weight:400;line-height:1.4;color:var(--amber,#b45309);white-space:normal;min-width:0}
.v2-profit .v2-profit-table .v2-profit-rate{color:var(--ui-ink-2,#3b4656)}
.v2-profit .v2-profit-table tr.is-loss .v2-profit-rate{color:var(--red,#c0392b)}
@media(max-width:640px){.v2-profit .v2-profit-table{table-layout:auto}.v2-profit .v2-profit-col-shop{width:auto}.v2-profit .v2-profit-sum{gap:8px 18px;padding:10px 12px}.v2-profit-flag{margin-left:0}.v2-profit .v2-profit-table th,.v2-profit .v2-profit-table td{padding:8px 6px}}
/* 2026-11-07：覆盖旧的固定列宽（旧版第 7 列是备注、最小宽 860 会横向滚动），按内容自动分列 */
.v2-profit .v2-profit-table thead th:nth-child(n){width:auto}
.v2-profit .v2-profit-table thead th:first-child{width:26%}
.v2-profit table.v2-profit-table{table-layout:auto;min-width:0}
@media(max-width:640px){.v2-profit .v2-profit-table thead th:first-child{width:auto}}
/* 2026-11-07：表头 ⓘ 挂在本列右缘外 4px，右边一列也带 ⓘ 时会被盖住点不到；ⓘ 浮在相邻表头之上 */
th>.metric-tip{z-index:2}
.v2-profit .profit-basis-row:empty{display:none}
.v2-profit .v2-profit-net-m{display:none}
@media(max-width:640px){
  .v2-profit .v2-profit-table .v2-profit-net{display:none}
  .v2-profit .v2-profit-net-m{display:block;margin-top:2px;font-size:var(--fs-12);font-weight:400;color:var(--ui-ink-3,#5b6472)}
  .v2-profit .v2-profit-table tbody th .shop-name-with-logo{white-space:normal}
  .v2-profit-flag{border-radius:8px}
}
/* ===== 2026-11-07 全局对齐审计（用户：取数专区、天猫页头没对齐）=====
   规则：第一列（名称列）表头和内容都靠左；其余列表头与该列内容同样居中。取数专区各页签数字卡片统一靠左（原云商统计单独居中）。 */
:is(#content,#drawerBody) .pull-table thead tr:last-child th:first-child,:is(#content,#drawerBody) .pull-table thead tr:first-child th:first-child[rowspan]{text-align:left}
:is(#content,#drawerBody) .pull-table tbody th[scope="row"],:is(#content,#drawerBody) .pull-table tfoot th[scope="row"]{text-align:left}
:is(#content,#drawerBody) .tmall-month-table th[scope="row"]{text-align:left}
:is(#content,#drawerBody) .tmall-month-table thead th small{display:block}
.data-pull .v2-kpi-hint{word-break:keep-all;overflow-wrap:anywhere}
:is(#content,#drawerBody) .inbox-detail-table thead th:not(:first-child),:is(#content,#drawerBody) .inbox-detail-table tbody td:not(:first-child){text-align:center}
:is(#content,#drawerBody) .sku-items-table thead th.is-num{text-align:center}
/* 库存管理页头：仓库口径 */
.inv-head .inv-wh{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.inv-wh-tag{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:var(--ui-surface-2,#f3f5f8);color:var(--ui-ink-3,#5b6472);font-size:var(--fs-12);line-height:18px}
.inv-wh-tag b{font-weight:600;color:var(--ui-ink-2,#3b4656)}
.inv-wh-tag.is-ok{background:#ecfdf3}.inv-wh-tag.is-ok b{color:#15803d}
.inv-wh-tag.is-warn{background:#fff7e6}.inv-wh-tag.is-warn b{color:#b45309}
/* 平台标志（2026-11-07）：拼多多官方红色图标、天猫 TMALL天猫 标志，紧贴平台名左侧 */
.plat-mark{display:inline-block;height:18px;width:auto;margin-right:7px;vertical-align:-3px;border-radius:4px;flex:0 0 auto}
.plat-mark.is-sm{height:14px;margin-right:5px;vertical-align:-2px;border-radius:4px}
h2>.plat-mark,h3>.plat-mark{vertical-align:-3px}
.filter-chip .plat-mark{margin-right:5px}
/* 2026-11-07 用户：「同步后台」按钮和「说明」并排不协调——统一成与说明同高（28px）、同圆角的带框按钮，带刷新图标，排在说明左边 */
.btn.sync-src-btn{display:inline-flex;align-items:center;gap:5px;height:28px;min-height:28px;padding:0 10px;border:1px solid var(--border-strong,#d5dbe3);border-radius:8px;background:#fff;color:var(--ink-700,#334155);font-size:var(--fs-12,12px);font-weight:500;line-height:1;white-space:nowrap;align-self:center}
.btn.sync-src-btn:hover:not(:disabled){border-color:var(--accent,#2d58c8);color:var(--accent,#2d58c8);background:var(--accent-soft,#eef2ff)}
.btn.sync-src-btn [data-icon]{width:13px;height:13px}
.has-explain>.sync-src-btn{margin-right:6px}
.promotion-head:not(.has-explain)>.sync-src-btn{margin-left:auto}
@media(max-width:700px){.business-page .promotion-head{flex-direction:row;flex-wrap:wrap;align-items:center}.business-page .promotion-head>:first-child{flex:1 1 100%}}
.brand-diff{color:#b45309;font-weight:600}
.brand-input.is-preset{border-color:#f5c26b;background:#fff7e6}
/* 2026-11-07 推广投放页头：三组卡（花费与回报 / 订单 / 流量），标签左、数字右，补齐指标 */
.promo-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.promo-group{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--ui-line,#e3e7ef);border-radius:12px;background:#fff;min-width:0}
.promo-group header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--ui-line,#eef1f5)}
.promo-group h3{margin:0;font-size:var(--fs-13);font-weight:600;color:var(--ui-ink-2,#4a5468)}
.promo-group header strong{font-size:var(--fs-20);font-weight:700;color:var(--ui-ink-1,#16273a);font-variant-numeric:tabular-nums;white-space:nowrap}
.promo-group dl{display:grid;gap:7px;margin:0}
.promo-stat{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.promo-stat dt{font-size:var(--fs-13);color:var(--ui-ink-3,#5b6472);white-space:nowrap}
.promo-stat dd{margin:0;font-size:var(--fs-14);font-weight:600;color:var(--ui-ink-1,#16273a);text-align:right;white-space:nowrap}
.promo-stat dd small{font-weight:500;color:var(--ui-ink-3,#5b6472);font-size:var(--fs-12)}
.promo-stat.promo-organic dd{color:#2f6f5e}
.promo-group.is-empty dd{color:var(--ui-ink-3,#8a94a6)}
.promo-split{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px}
.promo-split-row{grid-template-columns:3.6rem minmax(0,1fr)}
@media(max-width:1100px){.promo-kpis{grid-template-columns:1fr 1fr}.promo-kpis>.promo-group:first-child{grid-column:1/-1}.promo-split{grid-template-columns:1fr}}
@media(max-width:640px){.promo-kpis{grid-template-columns:1fr}.promo-group header strong{font-size:var(--fs-20)}}
.promo-split-row{grid-template-columns:4.6rem minmax(0,1fr)}
.promo-split-label{white-space:nowrap}
/* ===== 2026-11-07 小交互（用户：可加合适的组件和小特效）：只做操作反馈，不做入场动画（10-29 用户不喜欢一个个展开） ===== */
@media (prefers-reduced-motion:no-preference){
  .btn:not(:disabled){transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease}
  .btn:active:not(:disabled){transform:translateY(1px)}
  button.v2-kpi,.inv-kpis button.v2-kpi{transition:border-color .15s ease,box-shadow .15s ease}
  button.v2-kpi:hover{border-color:var(--accent,#2d58c8);box-shadow:0 4px 14px rgba(29,52,120,.10)}
  .promo-group,.v2-profit .v2-profit-sum{transition:box-shadow .2s ease,border-color .2s ease}
  .promo-group:hover{border-color:#cfd8ea;box-shadow:0 4px 14px rgba(29,52,120,.07)}
  [aria-busy="true"] .v2-muted,.v2-empty[role="status"]{background:linear-gradient(90deg,var(--ui-ink-3,#8a94a6) 0%,#c9d1de 45%,var(--ui-ink-3,#8a94a6) 90%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:jxShimmer 1.6s linear infinite}
}
@keyframes jxShimmer{from{background-position:120% 0}to{background-position:-100% 0}}
/* 回到顶部 */
.jx-top{position:fixed;right:22px;bottom:26px;z-index:40;width:40px;height:40px;border-radius:50%;border:1px solid var(--ui-line,#e3e7ef);background:#fff;color:var(--ui-ink-2,#3b4656);box-shadow:0 6px 18px rgba(16,24,40,.12);display:grid;place-items:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;transform:translateY(8px)}
.jx-top.is-on{opacity:1;pointer-events:auto;transform:none}
.jx-top:hover{color:var(--accent,#2d58c8);border-color:var(--accent,#2d58c8)}
.jx-top svg{width:18px;height:18px}
@media(max-width:640px){.jx-top{right:14px;bottom:84px;width:36px;height:36px}}
@media (prefers-reduced-motion:reduce){.jx-top{transition:none}}
/* 不跟随顶部日期的卡片：标题旁小标签写明固定看哪段（2026-11-07 用户：首页板块没联动顶部日期？） */
.v2-fixed-range{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--ui-surface-2,#f1f4f8);color:var(--ui-ink-3,#5b6472);font-size:var(--fs-12);font-weight:500;vertical-align:2px;letter-spacing:0}
/* 天猫逐月表默认滚到最右时，左边的项目名固定不动 */
:is(#content,#drawerBody) .tmall-month-table th[scope="row"],:is(#content,#drawerBody) .tmall-month-table thead th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--ui-line,#eef1f5)}

/* ===== 天猫店铺（2026-11-13）：沿用工作台 token；四家店切换、登录状态条、按天表、推广 / 客服 / 退款 / 体验分 ===== */
.tm-page{display:grid;gap:12px}
.tm-head .panel-head p.tmall-src{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;white-space:normal}
.tm-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px}
.tm-bar #tmExport{margin-left:auto}
.tm-shop-tabs{flex-wrap:wrap}
.tm-shop-tabs button{white-space:nowrap}
.tm-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;overflow:hidden}
.tm-strip-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot name act" ". state act";align-items:center;column-gap:8px;row-gap:2px;padding:12px 14px;border-right:1px solid var(--border)}
.tm-strip-row:last-child{border-right:0}
.tm-strip-row.is-current{background:var(--accent-soft)}
.tm-dot{grid-area:dot;width:8px;height:8px;border-radius:50%;background:var(--neutral)}
.tm-strip-row.is-ok .tm-dot{background:var(--green)}
.tm-strip-row.is-warn .tm-dot{background:var(--amber)}
.tm-strip-row.is-bad .tm-dot{background:var(--red)}
.tm-strip-name{grid-area:name;justify-self:start;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;border:0;background:none;color:var(--text);font:inherit;font-weight:650;font-size:var(--fs-14);cursor:pointer;text-align:left}
.tm-strip-name:hover{color:var(--accent)}
.tm-strip-name:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:var(--radius-xs)}
.tm-strip-state{grid-area:state;font-size:var(--fs-12);color:var(--text-3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-strip-row.is-bad .tm-strip-state{color:var(--red);font-weight:600}
.tm-strip-row.is-warn .tm-strip-state{color:var(--amber)}
.tm-strip-row>.btn{grid-area:act}
.tm-cover{margin:0;padding:8px 12px;border-radius:var(--radius-sm);background:var(--amber-soft);color:var(--amber);font-size:var(--fs-13)}
.tm-kpis .v2-kpi-meta dd{font-variant-numeric:tabular-nums}
.tm-skel{min-height:132px}
.tm-skel span,.tm-skel strong,.tm-skel em{display:block;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--surface-sunken) 0%,var(--surface-hover) 50%,var(--surface-sunken) 100%);background-size:200% 100%;animation:tm-shimmer 1.2s var(--ease) infinite}
.tm-skel span{width:40%;height:12px}.tm-skel strong{width:70%;height:24px;margin-top:14px}.tm-skel em{width:55%;height:12px;margin-top:14px}
@keyframes tm-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.tm-skel span,.tm-skel strong,.tm-skel em{animation:none}}
.tm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.tm-grid>.panel{margin:0}
.tm-grid-inner{gap:16px;margin-top:4px}
.tm-panel table.data-table{width:100%}
.tm-table th[scope="row"]{text-align:left;min-width:6.5rem}
.tm-table td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tm-table thead th{white-space:nowrap}
.tm-days th[scope="row"]{white-space:nowrap;min-width:5.5rem}
.tm-wd{margin-left:6px;color:var(--text-3);font-size:var(--fs-12);font-weight:500}
.promo-days:not(:empty){margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.promo-days tfoot th,.promo-days tfoot td{font-weight:600}.promo-days td[colspan]{text-align:left}
.tm-table thead th:not(:first-child){text-align:right}
.tm-bar .tm-shop-tabs{flex:1 1 auto;min-width:0}
.tm-names th[scope="row"]{min-width:13rem;max-width:22rem;white-space:normal}
.tm-items th[scope="row"]{min-width:15rem;max-width:26rem;white-space:normal}
.tm-item{display:flex;align-items:center;gap:10px}
.tm-item a{color:var(--text);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tm-item a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.tm-pic{flex:none;width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-sunken);border:1px solid var(--border)}
.tm-bar-cell{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:7.5rem}
.tm-bar-cell i{display:block;height:6px;max-width:60px;border-radius:4px;background:var(--accent-line)}
.tm-stats{display:flex;flex-wrap:wrap;gap:10px 28px;padding:10px 14px;margin:2px 0 12px;border-radius:var(--radius);background:var(--surface-sunken)}
.tm-stat{display:grid;gap:2px}
.tm-stat small{color:var(--text-3);font-size:var(--fs-12)}
.tm-stat b{font-size:var(--fs-16);font-weight:650;color:var(--text);font-variant-numeric:tabular-nums}
.tm-low{color:var(--red);font-weight:650}
.tm-h4{margin:14px 0 6px;font-size:var(--fs-13);font-weight:650;color:var(--text-2)}
.tm-details{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
.tm-details>summary{cursor:pointer;font-size:var(--fs-13);font-weight:600;color:var(--text-2);padding:4px 0}
.tm-details>summary:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:var(--radius-xs)}
.tm-more{margin-top:8px}
.tmall-shop-pick select{max-width:12rem}
@media (max-width:1100px){.tm-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-strip-row:nth-child(2n){border-right:0}.tm-strip-row:nth-child(-n+2){border-bottom:1px solid var(--border)}}
@media (max-width:860px){.tm-grid{grid-template-columns:1fr}}
@media (max-width:640px){
  .tm-strip{grid-template-columns:1fr}.tm-strip-row{border-right:0;border-bottom:1px solid var(--border)}.tm-strip-row:last-child{border-bottom:0}
  .tm-bar #tmExport{margin-left:0}
  .tm-shop-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .tm-shop-tabs::-webkit-scrollbar{display:none}
  .tm-stats{gap:8px 18px}
  .tm-names th[scope="row"],.tm-items th[scope="row"]{min-width:11rem}
}
.v2-profit .v2-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.v2-profit-tm{font-size:var(--fs-12);color:var(--text-3)}
.v2-profit-tm:hover{color:var(--accent)}

/* ===== 天猫并入各板块（2026-11-13）：每个板块里的天猫一节、首页平台拆分条、数据接入的天猫登录条 ===== */
.tm-section{display:grid;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.tm-only .tm-section{margin-top:0;padding-top:0;border-top:0}
.tm-plat-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.tm-plat-head h2{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-18);font-weight:700;color:var(--text)}
.tm-plat-src{color:var(--text-3);font-size:var(--fs-13)}
.tm-plat-head .explain-btn{margin-left:auto}
.tm-connect .tm-strip{border:1px solid var(--border);border-radius:var(--radius)}
.tm-connect .tm-strip-name{cursor:default}
.v2-kpi-split{display:grid;gap:4px;margin-top:10px}
.v2-kpi-split-bar{display:flex;height:6px;border-radius:4px;overflow:hidden;background:var(--surface-sunken)}
.v2-kpi-split-bar .is-pdd{background:#d8483b}
.v2-kpi-split-bar .is-tmall{background:var(--text-2)}
.v2-kpi-split small{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}
.v2-kpi-split small i{display:inline-block;width:8px;height:8px;border-radius:4px;margin-right:-6px}
.v2-kpi-split small i.is-pdd{background:#d8483b}
.v2-kpi-split small i.is-tmall{background:var(--text-2)}
.v2-kpi-split small i+*{margin-left:0}
/* 审查发现（2026-11-13）：表头排序箭头 1.48:1 几乎看不见、天猫来源标签 4.36:1 */
.table-interaction-arrow{color:var(--text-3)!important}
.tmall-src-tag{color:var(--text-2)}
.tm-skel-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
@media (max-width:640px){.tm-skel-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== 84. 首页改版（2026-11-13 审查报告第 1 步）：为什么涨跌、今天到现在、店铺排行、平台标 ===== */
:root{--plat-pdd:#d8483b;--plat-tmall:#1f2733}
.plat-tag{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:1px 7px 1px 6px;border-radius:999px;background:var(--surface-sunken);color:var(--text-2);font-size:var(--fs-12);font-weight:500;line-height:1.5;white-space:nowrap}
.plat-tag i{width:8px;height:8px;border-radius:4px;background:var(--text-3)}
.plat-tag.is-pdd i{background:var(--plat-pdd)}
.plat-tag.is-tmall i{background:var(--plat-tmall)}
/* 第二行：走势（含今天到现在）| 待处理、品牌任务 */
.v2-home-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:var(--ui-gap);align-items:stretch}
.v2-home-main,.v2-home-side{display:flex;flex-direction:column;gap:var(--ui-gap);min-width:0}
.v2-home-main>.v2-trend{flex:1 1 auto}
.v2-home-side>.v2-inbox-card{flex:1 1 auto;display:flex;flex-direction:column}
.v2-home-side>.v2-inbox-card>:last-child{margin-top:auto}
@media(max-width:860px){
  .v2-home-row{display:flex;flex-direction:column}
  .v2-home-main,.v2-home-side{display:contents}
  .v2-home-side>.v2-inbox-card{order:-1}
}
/* 为什么涨跌 */
.v2-attrib .v2-card-head{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}
.v2-attrib .v2-card-head>.v2-muted{font-size:var(--fs-13)}
.attrib-lead{margin:12px 0 0;font-size:var(--fs-14);line-height:1.6;color:var(--text);max-width:72ch}
.attrib-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.attrib-tile{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0}
.attrib-label{font-size:var(--fs-13);color:var(--text-2)}
.attrib-tile b{font-size:var(--fs-20);font-weight:600;line-height:1.2;color:var(--text)}
.attrib-tile.is-up b{color:var(--red)}
.attrib-tile.is-down b{color:var(--green)}
.attrib-tile small{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}
.attrib-bar{position:relative;height:6px;border-radius:999px;background:var(--surface-sunken)}
.attrib-bar::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--border-strong)}
.attrib-bar i{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--text-3)}
.attrib-tile.is-up .attrib-bar i{background:var(--red)}
.attrib-tile.is-down .attrib-bar i{background:var(--green)}
.attrib-table-wrap{margin-top:12px}
.attrib-table th[scope=row]{display:flex;align-items:center;gap:8px;white-space:nowrap}
.attrib-table th[scope=row] small,.attrib-table td small{display:block;font-size:var(--fs-12);color:var(--text-3);font-weight:400}
.attrib-table th[scope=row] small{display:inline}
.attrib-table td,.attrib-table thead th:not(:first-child){text-align:right}
.attrib-foot{margin:8px 0 0;font-size:var(--fs-12)}
@media(max-width:640px){
  .attrib-tiles{grid-template-columns:minmax(0,1fr);gap:8px}
  .attrib-tile{grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:10px 12px}
  .attrib-tile .attrib-bar{grid-column:2;grid-row:1}
  .attrib-tile b{grid-column:3;grid-row:1;font-size:var(--fs-16);text-align:right}
  .attrib-tile small{grid-column:1/-1}
}
/* 今天到现在（走势卡顶上一行） */
.v2-now{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:10px 12px;margin:0 0 12px;border-radius:var(--radius-sm);background:var(--surface-sunken)}
.v2-now-label{font-size:var(--fs-13);font-weight:500;color:var(--text-2)}
.v2-now>b{font-size:var(--fs-20);font-weight:600;color:var(--text)}
.v2-now-prev{font-size:var(--fs-13);color:var(--text-3);font-variant-numeric:tabular-nums}
.v2-now-note{flex:1 0 100%;margin:0;font-size:var(--fs-12);color:var(--text-3);line-height:1.5}
/* 店铺排行 */
.v2-rank-card .v2-card-head{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}
.rank-promo{font-size:var(--fs-13);color:var(--text-2)}
.rank-promo b{font-weight:600;color:var(--text)}
.rank-wrap{margin-top:12px}
.rank-table{width:100%}
.rank-table th,.rank-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.rank-table thead th{font-size:var(--fs-13);color:var(--text-2);text-align:right;white-space:nowrap}
.rank-table thead th:first-child,.rank-table th[scope=row]{text-align:left}
.rank-table td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.rank-table td small{display:block;font-size:var(--fs-12);color:var(--text-3)}
.rank-table td.v2-warn small,.rank-table td.v2-bad small{color:inherit;opacity:.85}
.rank-shop{display:inline-flex;align-items:center;gap:8px;min-width:0}
.rank-shop .text-btn{font-weight:500;color:var(--text);text-align:left}
.rank-shop .text-btn:hover{color:var(--accent)}
.rank-table .rank-sale{font-weight:600;color:var(--text)}
.rank-table tfoot th,.rank-table tfoot td{border-bottom:0;font-weight:600;color:var(--text)}
.rank-table tfoot td small{font-weight:400}
@media(max-width:640px){
  .rank-wrap{overflow:visible}
  .rank-table,.rank-table tbody,.rank-table tfoot{display:block}
  .rank-table thead{display:none}
  .rank-table tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 8px;padding:12px 0;border-bottom:1px solid var(--border)}
  .rank-table td small{display:none}
  .rank-table tfoot th[scope=row]{padding-bottom:2px}
  .rank-table tfoot tr{border-bottom:0}
  .rank-table tr,.rank-table th,.rank-table td{height:auto!important;min-height:0}
  .rank-table tbody tr:hover>*{background:transparent}
  .rank-table th[scope=row]{grid-column:1/-1;padding:0;border:0}
  table.rank-table td,table.rank-table th[scope=row]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:0;text-align:left;white-space:nowrap;min-width:0}
  table.rank-table th[scope=row]{display:block}
  .rank-table td::before{content:attr(data-label);font-size:var(--fs-12);font-weight:400;color:var(--text-3);white-space:nowrap}
  .rank-shop .text-btn{min-height:40px}
}
/* 数据完整性：电脑上也默认只一行，点开看各店 */
.v2-coverage .cov-toggle{display:inline-block;margin:0 0 4px;padding:0}
.v2-page:not(.cov-open) .v2-coverage .cov-table,.v2-page:not(.cov-open) .v2-coverage .cov-legend{display:none}

/* 店铺头像 + 平台标（2026-11-13 用户：凡是店铺名的地方加上店铺 LOGO 和平台；平台标和头像不要交叠——平台标在前、头像在后，并排） */
.shop-av{display:inline-flex;align-items:center;gap:5px;flex:none;height:var(--av,20px);margin-right:7px;vertical-align:-5px;line-height:0}
.shop-av>.shop-logo{order:2;width:var(--av,20px);height:var(--av,20px);margin:0;border-radius:4px;object-fit:contain;padding:1px;border:1px solid var(--ui-line);background:#fff;box-sizing:border-box}
.shop-av>.shop-av-plat{order:1;width:calc(var(--av,20px) - 4px);height:calc(var(--av,20px) - 4px);border-radius:4px;object-fit:cover;flex:none}
/* 没有头像的店：头像位置留空，店名和有头像的店对齐 */
.shop-av.is-plat-only::after{content:"";order:2;width:var(--av,20px);height:var(--av,20px);flex:none}
.shop-av.no-plat{margin-right:6px}
.v2-shop-chip .shop-av,.graph-view-bar-heading .shop-av{vertical-align:-4px}
.v2-shop-chip.has-shop-logo{display:inline-flex;align-items:center}
.scope-item-label .shop-av{vertical-align:-4px}
.scope-shop-av{display:inline-flex;align-items:center;margin-right:-2px}
.scope-shop-av[hidden]{display:none}
.scope-shop-av .shop-av{margin-right:6px;vertical-align:0}
.scope-shop-av:not([hidden]) + .scope-menu-label{margin-right:auto}
/* 推广投放、客服服务第一屏：各店对比（与首页店铺排行同一套表格；手机上变卡片） */
.cmp-card .cmp-head{display:flex;align-items:flex-start;gap:8px 12px;flex-wrap:wrap}
.cmp-card .cmp-head>div:first-child{flex:1 1 auto;min-width:0}
.cmp-table tbody tr.is-current-row>*{background:var(--accent-soft)}
.cmp-table .text-btn.is-current{color:var(--accent);font-weight:600}
.cmp-table td{color:var(--text-2)}
#cmpSlot+*{margin-top:0}

/* ===== 管理后台（2026-11-13）：账号、权限一览、操作日志、登录记录 ===== */
.adm-page{display:flex;flex-direction:column;gap:14px;min-width:0}
.adm-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.adm-stats>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:10px 14px;min-width:0}
.adm-stats span{display:block;font-size:var(--fs-12);color:var(--text-2)}
.adm-stats strong{display:block;font-size:var(--fs-20);font-weight:600;color:var(--text);margin-top:2px}
.adm-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.adm-tabs button{appearance:none;border:0;background:none;padding:9px 14px;min-height:40px;font:inherit;font-size:var(--fs-14);color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.adm-tabs button:hover{color:var(--text)}
.adm-tabs button[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.adm-tabs b{font-weight:500;font-size:var(--fs-12);background:var(--neutral-soft);color:var(--text-2);border-radius:999px;padding:0 7px;line-height:18px}
.adm-panel{padding:14px 16px;min-width:0}
.adm-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.adm-search{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:0 10px;background:var(--surface);min-height:36px;flex:1 1 220px;max-width:340px;color:var(--text-3)}
.adm-search input{border:0;outline:0;background:none;font:inherit;font-size:var(--fs-14);color:var(--text);width:100%;min-width:0;padding:7px 0}
.adm-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.adm-filters{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm,8px);overflow:hidden}
.adm-filters button{appearance:none;border:0;border-right:1px solid var(--border);background:var(--surface);padding:0 12px;min-height:34px;font:inherit;font-size:var(--fs-13);color:var(--text-2);cursor:pointer}
.adm-filters button:last-child{border-right:0}
.adm-filters button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.adm-table{width:100%;border-collapse:collapse;font-size:var(--fs-14)}
.adm-table th{text-align:left;font-weight:500;font-size:var(--fs-12);color:var(--text-2);padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.adm-table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top}
.adm-table tbody tr:last-child td{border-bottom:0}
.adm-table td strong{display:block;font-weight:600;color:var(--text)}
.adm-table td small{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--text-3)}
.adm-table .num{text-align:right}
.adm-table .status-pill{white-space:nowrap}
.adm-self{display:inline-block;margin-left:6px;font-size:var(--fs-12);font-weight:500;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 5px;vertical-align:1px}
.adm-muted{color:var(--text-3)}
.adm-perm-brief{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.adm-perm-pages{font-size:var(--fs-13);color:var(--text-2);margin-right:2px}
.adm-perm-chip{font-size:var(--fs-12);line-height:20px;padding:0 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue);white-space:nowrap}
.adm-perm-chip.is-all{background:var(--green-soft);color:var(--green)}
.adm-hint{font-size:var(--fs-13);color:var(--text-2);margin:0 0 10px;line-height:1.6}
.adm-warn{font-size:var(--fs-13);color:var(--amber);background:var(--amber-soft);border-radius:8px;padding:8px 10px;margin:0 0 10px}
.adm-matrix-wrap{overflow-x:auto}
.adm-matrix{border-collapse:collapse;font-size:var(--fs-13);min-width:100%}
.adm-matrix th,.adm-matrix td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}
.adm-matrix thead th{font-weight:500;font-size:var(--fs-12);color:var(--text-2)}
.adm-matrix tbody th{text-align:left;font-weight:600;position:sticky;left:0;background:var(--surface);z-index:1}
.adm-matrix tbody th small{display:block;font-weight:400;font-size:var(--fs-12);color:var(--text-3)}
.adm-matrix .is-op{background:var(--surface-sunken)}
.adm-yes{color:var(--green);font-weight:700}
.adm-no{color:var(--text-3)}
.adm-act{font-size:var(--fs-12);line-height:20px;padding:0 7px;border-radius:4px;background:var(--neutral-soft);color:var(--text-2);white-space:nowrap}
.adm-act[data-act="create"],.adm-act[data-act="unblock"]{background:var(--green-soft);color:var(--green)}
.adm-act[data-act="block"],.adm-act[data-act="delete"],.adm-act[data-act="failed"]{background:var(--red-soft);color:var(--red)}
.adm-act[data-act="password"],.adm-act[data-act="save"]{background:var(--blue-soft);color:var(--blue)}
.adm-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;font-size:var(--fs-13);color:var(--text-2)}
.adm-drawer{display:flex;flex-direction:column;gap:4px}
.adm-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.adm-kv span{display:block;font-size:var(--fs-12);color:var(--text-3)}
.adm-kv strong{display:block;font-weight:500;font-size:var(--fs-14);color:var(--text);margin-top:2px;overflow-wrap:anywhere}
.adm-form{display:flex;flex-direction:column;gap:14px}
.adm-field{display:flex;flex-direction:column;gap:5px;font-size:var(--fs-13);font-weight:500;color:var(--text)}
.adm-field input{font:inherit;font-size:var(--fs-14);font-weight:400;border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:8px 10px;min-height:38px;background:var(--surface);color:var(--text);width:100%;min-width:0}
.adm-field input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.adm-field small{font-weight:400;font-size:var(--fs-12);color:var(--text-3)}
.adm-pw{display:flex;gap:8px;align-items:center}
.adm-pw input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em}
.adm-pw .text-btn{white-space:nowrap}
.adm-roles{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.adm-roles legend{font-size:var(--fs-13);font-weight:500;margin-bottom:6px;padding:0}
.adm-sub{font-size:var(--fs-13);font-weight:600;margin:12px 0 6px;color:var(--text)}
.adm-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.adm-checks.is-ops{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.adm-check{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:8px 10px;cursor:pointer;background:var(--surface);min-height:40px}
.adm-check:hover{border-color:var(--border-hover)}
.adm-check:has(input:checked){border-color:var(--accent-line);background:var(--accent-soft)}
.adm-check:has(input:disabled){cursor:default}
.adm-check.is-off{opacity:.55}
.adm-check input{margin:3px 0 0;flex:none;accent-color:var(--accent);width:16px;height:16px}
.adm-check strong{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text)}
.adm-check small{display:block;font-size:var(--fs-12);color:var(--text-2);margin-top:2px;line-height:1.45}
.adm-default{margin-top:2px}
.adm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.adm-status{font-size:var(--fs-13);color:var(--text-2)}
.adm-danger-zone .adm-op{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border)}
.adm-danger-zone .adm-op:first-of-type{border-top:0}
.adm-op strong{display:block;font-size:var(--fs-14);font-weight:600}
.adm-op small{display:block;font-size:var(--fs-12);color:var(--text-2);margin-top:2px}
.adm-op .btn{flex:none}
.adm-op-slot{padding:10px 12px;margin:0 0 6px;border-radius:var(--radius-sm,8px);background:var(--surface-sunken)}
.adm-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.adm-inline .adm-field{flex:1 1 240px}
.adm-secret p{font-size:var(--fs-13);line-height:1.6;margin:0 0 8px}
.adm-secret-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.adm-secret-row code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-14);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 9px;user-select:all;overflow-wrap:anywhere}
@media (max-width:900px){.adm-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.adm-roles{grid-template-columns:1fr}}
@media (max-width:720px){
  .adm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adm-stats>div:last-child{grid-column:1/-1}
  .adm-panel{padding:12px}
  .adm-search{max-width:none;flex-basis:100%}
  .adm-filters{width:100%}.adm-filters button{flex:1;min-height:38px}
  .adm-table-wrap{overflow:visible}
  .adm-table thead{display:none}
  .adm-table,.adm-table tbody,.adm-table tr,.adm-table td{display:block;width:100%}
  .adm-table tr{border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:8px 12px;margin-bottom:10px;background:var(--surface)}
  .adm-table td{border:0;padding:5px 0;display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:8px;align-items:start}
  .adm-table td::before{content:attr(data-label);font-size:var(--fs-12);color:var(--text-3);padding-top:2px}
  .adm-table td.num{text-align:left}
  .adm-table td.num .btn{width:100%;min-height:40px;justify-content:center}
  .adm-kv{grid-template-columns:1fr}
  .adm-checks,.adm-checks.is-ops{grid-template-columns:1fr 1fr}
  .adm-danger-zone .adm-op{flex-direction:column;align-items:stretch}
  .adm-op .btn{min-height:40px;justify-content:center}
  .adm-pager{flex-wrap:wrap}
}
@media (max-width:420px){.adm-checks{grid-template-columns:1fr}}
.adm-kv .status-pill{display:inline-flex;width:auto;vertical-align:1px}
.adm-search input[type="search"]::placeholder{text-align:left}
/* 手机上顶部日期条在没有日期的页面也会露出来（≤620px 的 display:flex!important 盖过了 hidden）；管理后台不需要日期 */
body[data-view="admin"] .global-range,body[data-view="shopCollect"] .global-range{display:none!important}
@media (max-width:720px){.adm-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.adm-stats>div{padding:8px 10px}.adm-stats>div:last-child{grid-column:auto}.adm-stats strong{font-size:var(--fs-16)}.adm-stats span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* ===== 85. 检测工具问题收口（2026-11-13 审查报告第 1～2 步） =====
   字号只用 12 / 13 / 14 / 16 / 20 / 24；圆角只用 4 / 8 / 12 / 全圆；卡片不用左侧粗色条（严重度用状态点和标签）；
   手机上可点的元素至少 40px 高；金额前的「¥」用次级文字色、整数字号。放在文件最后覆盖前面各层。 */
:root{
  --fs-15:.875rem;--fs-18:1rem;--fs-24:1.25rem;--fs-28:1.5rem;--fs-32:1.5rem;--fs-display:1.5rem;--t-32:1.5rem;
  --radius-xs:4px;--radius-sm:8px;--radius:12px;--radius-lg:12px;--ui-card-r:12px;
}
/* 核心数字 24，金额符号 16、次级文字色（原来按比例算出 11.2 / 15.68 像素、对比度 3.06:1） */
.v2-kpi-strip .v2-kpi-value,.v2-kpis:not(.v2-kpis-compact) .v2-kpi>strong,.v2-kpi>strong{font-size:1.5rem}
.v2-cur{font-size:var(--fs-14);font-weight:500;color:var(--text-2);margin-right:1px}
.v2-kpi-strip .v2-kpi-value .v2-cur,.v2-kpi>strong .v2-cur{font-size:var(--fs-16);margin-right:2px}
.v2-dec{font-size:var(--fs-14)}
/* 左侧粗色条 → 全边细线；严重度靠标签（v2-chip）和标题前的状态点 */
.v2-issue,.v2-inbox-group .v2-issue,.v2-inbox-group .v2-issue:hover,.v2-inbox-group .v2-issue.risk:hover,.v2-inbox-group .v2-issue.info:hover,.v2-inbox-group .v2-issue:not(.risk):not(.info):hover{border-left:1px solid var(--line)}
.v2-inbox-group .v2-issue{border-left:0}
.v2-issue .v2-issue-top h3{display:inline-flex;align-items:center;gap:8px}
.v2-issue .v2-issue-top h3::before{content:"";flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--amber)}
.v2-issue.risk .v2-issue-top h3::before{background:var(--red)}
.v2-issue.info .v2-issue-top h3::before{background:var(--ink-300)}
.wdt-board-basis,.kb-review-hint{border-left-width:1px}
.kb-review-hint{border-color:var(--amber-line)}
.metric-scope-warn,.data-quality-note{border-left:0;border:1px solid var(--amber-line)}
.sku-record-scope,.kb-detail-summary{border-left:0;border:1px solid var(--accent-line);border-radius:var(--radius-sm)}
.kb-answer.is-error{border-left-width:1px;border-color:var(--red-line)}
.v2-note-body{border-left:1px solid var(--ui-line)}
.hik-card.is-cancel,.hik-card.is-pending,.hik-card.is-shipped{border-left:1px solid var(--line)}
/* 销售分析：表格直接放在卡片里，不再套一层带边框的表格外框 */
.sales-analysis-page .v2-card .table-wrap,.sales-analysis-page .panel .table-wrap,.sales-analysis-page .sku-table-wrap{border:0;border-radius:0;box-shadow:none;background:transparent}
.sales-analysis-page .v2-kpis-compact .v2-kpi,.sales-analysis-page .v2-card .v2-kpi{box-shadow:none}
/* 手机：可点元素至少 40px 高 */
@media(max-width:640px){
  .btn,.btn.small,.text-btn,.v2-tabs button,.global-range button,.scope-btn,.explain-btn,.v2-kpi-label,.v2-card-foot,.v2-todo,.day-nav-btn,.v2-shop-link,.filter-chip,.cov-toggle,[data-overview-detail],[data-pdd-shop-pick],[data-tm-shop],[data-rank-shop],[data-cmp-shop]{min-height:40px}
  .text-btn,.v2-kpi-label,.v2-shop-link,[data-rank-shop],[data-cmp-shop],[data-tm-shop],[data-pdd-shop-pick]{display:inline-flex;align-items:center}
  .day-nav-btn{min-width:40px}
  .v2-issue-pick{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
  .v2-issue-pick input,input[type=checkbox]{width:20px;height:20px}
}
@media(max-width:640px){
  .global-range button,.scope-menu-btn,.sync-status,.avatar,.top-refresh,.icon-btn,.v2-tabs button,summary,.table-interaction-reset,.inbox-filter button{min-height:40px}
  .avatar{min-width:40px}
  /* 指标说明虚线字：视觉不变，点击区上下各扩 11px 到 40px */
  .metric-tip{overflow:visible}
  .metric-tip::after{content:"";position:absolute;inset:-10px}
  .global-range button,.v2-tabs button,.v2-trend-metrics button{min-height:40px!important;height:auto!important;max-height:none!important}
  .v2-issue-pick input{width:24px;height:24px}
}

.v2-kpi-split small>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.v2-kpi-split small>span>i{margin-right:0}

/* 天猫千牛巡检（2026-11-13）：差评卡片、评价标签、自动跟价 */
.tm-review-list{display:grid;gap:10px;margin-top:10px}
.tm-review{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;display:grid;gap:6px;background:var(--surface,#fff)}
.tm-review.is-pending{border-left:3px solid var(--red)}
.tm-review-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:var(--fs-13);color:var(--text-3)}
.tm-review-text{margin:0;color:var(--text);line-height:1.6;overflow-wrap:anywhere}
.tm-review-append{color:var(--text-2);font-size:var(--fs-13)}
.tm-review-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0}
.tm-review-tags small{color:var(--text-3)}
.tm-tag{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:var(--fs-12);line-height:20px;border:1px solid var(--border);color:var(--text-2)}
.tm-tag.is-neg{background:var(--red-soft);border-color:var(--red-line);color:var(--red)}
.tm-tag.is-pos{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}
.tm-review-item{margin:0;font-size:var(--fs-13);color:var(--text-3);overflow-wrap:anywhere}
.tm-review-steps{margin:2px 0 0;padding:0;list-style:none;display:grid;gap:4px;font-size:var(--fs-13)}
.tm-review-steps li{display:block;line-height:1.9;padding:4px 8px;border-radius:var(--radius-sm);background:var(--line-soft,#f3f5f8)}
.tm-review-steps li.is-done{color:var(--green)}
.tm-review-steps li.is-todo{color:var(--red);background:var(--red-soft)}
.tm-review-steps li.is-wait{color:var(--text-3)}
.tm-review-steps .btn.small{min-height:32px;margin-left:6px}
.tm-review-steps .text-btn{margin-left:6px}
.tm-review-done{margin-top:12px}
.tm-review-done summary{cursor:pointer;color:var(--text-3)}
.tm-price .tm-cover{margin:8px 0}
.tm-price tr.tm-ended{opacity:.6}
@media (max-width:640px){.tm-review{padding:10px}.tm-review-steps li{padding:6px 8px}}
/* 销售分析商品明细：小指标格不再是卡片里的卡片，改成一条用细竖线分隔的数字条 */
.sales-analysis-page .metric-card-mini-grid{gap:0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sales-analysis-page .metric-card-mini{border:0;border-radius:0;background:transparent;padding:4px 16px}
.sales-analysis-page .metric-card-mini+.metric-card-mini{border-left:1px solid var(--line)}
.sales-analysis-page .metric-card-mini:hover{box-shadow:none}
@media(max-width:640px){.sales-analysis-page .metric-card-mini+.metric-card-mini{border-left:0}.sales-analysis-page .metric-card-mini{padding:8px 0}}

/* ===== 86. 登录页整页（2026-11-13 用户：要大气简约、主流审美的整页，不要小登录窗；配色要和工作台一致）=====
   沿用工作台「简账」配色：浅灰底、白卡片、细线、靛蓝 #3451d1 单一强调色、近黑正文。
   左：品牌、一句话、已接入平台、按工作台真实样式画的产品示意、三项能力；右：白底表单，最宽 400px 居中。
   手机：品牌区收成顶部一段，表单在下。 */
.login-gate{padding:0;background:#fff;display:grid;place-items:stretch;min-height:100vh;min-height:100dvh}
.login-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);width:100%;min-height:100vh;min-height:100dvh;margin:0;border:0;border-radius:0;box-shadow:none;background:#fff}
.login-story{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:48px clamp(40px,5vw,72px);color:var(--ink-900);background:linear-gradient(180deg,var(--canvas) 0%,#eef1fb 100%);border-right:1px solid var(--line);overflow:hidden;position:relative}
.login-story::after{display:none}
.login-story-brand{display:flex;align-items:center;gap:12px}
.login-story-brand .brand-mark{width:40px;height:40px;border-radius:var(--radius-sm);flex:0 0 auto;background:var(--accent)}
.login-story-brand .brand-mark svg{width:100%;height:100%;display:block}
.login-story-brand .brand-mark rect{fill:var(--accent)}
.login-story-brand .brand-mark path{fill:#fff}
.login-story-brand strong{display:block;font-size:var(--fs-16);font-weight:600;color:var(--ink-900)}
.login-story-brand small{display:block;font-size:var(--fs-13);color:var(--text-3)}
.login-story-copy{max-width:34rem}
.login-story-copy h1{margin:0 0 16px;font-size:2.5rem;line-height:1.2;font-weight:600;letter-spacing:-.01em;color:var(--ink-900);text-wrap:balance}
.login-story-copy>p{margin:0;font-size:var(--fs-16);line-height:1.7;color:var(--text-2);max-width:30rem}
.login-plats{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none}
.login-plats li{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;font-size:var(--fs-13);color:var(--ink-700);background:#fff}
.login-plats i{width:8px;height:8px;border-radius:2px;background:var(--ink-300)}
.login-plats i.is-pdd{background:var(--plat-pdd)}.login-plats i.is-tmall{background:var(--plat-tmall)}.login-plats i.is-jd{background:var(--amber)}
.login-visual{display:block;width:100%;max-width:560px;opacity:1}
.login-visual svg{display:block;width:100%;height:auto;overflow:visible}
.login-visual .lv-card>rect:first-child{fill:#fff;stroke:var(--line);filter:drop-shadow(0 8px 24px rgba(16,24,40,.06))}
.login-visual text{fill:var(--ink-900);font-size:13px;font-weight:600}
.login-visual .lv-pill,.login-visual .lv-track,.login-visual .lv-line,.login-visual .lv-chip{fill:var(--surface-sunken)}
.login-visual .lv-bar-a{fill:var(--accent)}.login-visual .lv-bar-b{fill:var(--accent-line)}.login-visual .lv-bar-c{fill:var(--red)}
.login-visual .lv-area{fill:rgba(52,81,209,.10)}.login-visual .lv-stroke{stroke:var(--accent)}
.login-visual .lv-dot-red{fill:var(--red)}.login-visual .lv-dot-amber{fill:var(--amber)}
.login-signal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:24px 0 0;list-style:none;border-top:1px solid var(--line)}
.login-signal li{display:grid;gap:4px;padding:0 16px;min-width:0}
.login-signal li:first-child{padding-left:0}
.login-signal li+li{border-left:1px solid var(--line)}
.login-signal strong{font-size:var(--fs-14);font-weight:600;color:var(--ink-900)}
.login-signal small{font-size:var(--fs-13);color:var(--text-3)}
/* 表单区 */
.login-card{display:flex;flex-direction:column;justify-content:center;align-self:stretch;justify-self:center;width:100%;max-width:400px;padding:48px 24px;border:0;box-shadow:none;background:transparent}
.login-gate .login-card .login-brand{display:none!important}
.login-card h2{margin:0 0 8px;font-size:1.75rem;line-height:1.3;font-weight:600;color:var(--ink-900)}
.login-card>p{margin:0 0 32px;font-size:var(--fs-14);line-height:1.6;color:var(--text-2)}
.login-card form{display:grid;gap:20px}
.login-card label{display:grid;gap:8px;font-size:var(--fs-14);font-weight:500;color:var(--ink-900)}
.login-card input{height:48px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-16);background:#fff;color:var(--ink-900);transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.login-card input::placeholder{color:#8a93a3}
.login-card input:hover{border-color:var(--border-hover)}
.login-card input:focus{outline:0;border-color:var(--accent);box-shadow:var(--focus-ring)}
.login-card .login-submit{height:48px;margin-top:4px;border-radius:var(--radius-sm);font-size:var(--fs-16);font-weight:600;justify-content:center;gap:8px}
.login-card #loginError:not(:empty){display:block;padding:10px 12px;border:1px solid var(--red-line);border-radius:var(--radius-sm);background:var(--red-soft);color:var(--red);font-size:var(--fs-13)}
.login-security{display:flex;align-items:center;gap:8px;margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:var(--fs-13);color:var(--text-3)}
.login-security [data-icon]{width:16px;height:16px;color:var(--green)}
@media(max-width:1100px){.login-story{padding:40px}.login-story-copy h1{font-size:2rem}}
@media(max-width:900px){
  .login-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .login-story{gap:16px;padding:24px 20px 28px;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .login-story-copy h1{font-size:1.5rem;margin-bottom:8px}
  .login-story-copy h1 br{display:none}
  .login-gate .login-story-copy>p{display:block;font-size:var(--fs-14)}
  .login-gate .login-plats{display:flex;margin-top:16px}
  .login-visual,.login-signal{display:none}
  .login-card{max-width:440px;justify-content:flex-start;padding:32px 20px 40px}
  .login-card h2{font-size:1.25rem}
  .login-card>p{margin-bottom:24px}
}
.finance-scope{margin:4px 0 0;font-size:var(--fs-13);color:var(--text-3)}
/* 顶栏：选了长店名（带头像）时不把右侧按钮挤出屏幕——店铺按钮最宽 13rem 省略，仍放不下就换行 */
@media(min-width:861px){
  .topbar{flex-wrap:wrap;row-gap:8px}
  #scopeShopBtn{max-width:13rem;min-width:0}
  #scopeShopBtn .scope-btn-text,#scopeShopBtn>span:not(.scope-caret):not(.scope-shop-av){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* ===== 87. 视觉第二轮（2026-11-13）：卡头分组、本页分区导航、联动入口 ===== */
/* 卡头：标题与说明文字在左，切换按钮与「说明」一组靠右 */
.head-tools{display:flex;align-items:center;gap:8px 12px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.head-tools .explain-btn,.head-tools>.text-btn{margin-left:0!important}
.head-tools>.v2-muted{font-size:var(--fs-13)}
.v2-attrib .v2-card-head,.v2-rank-card .v2-card-head{align-items:center;gap:8px 16px}
/* 归因三块：可以点（去销售分析看流量、去商品分析看卖了什么） */
button.attrib-tile{font:inherit;text-align:left;background:#fff;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
button.attrib-tile:hover{border-color:var(--accent-line);background:var(--surface-raised)}
button.attrib-tile:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}
.attrib-label{display:flex;align-items:center;justify-content:space-between}
.attrib-label i{font-style:normal;color:var(--text-3);transition:transform var(--t-fast)}
button.attrib-tile:hover .attrib-label i{transform:translateX(2px);color:var(--accent)}
.attrib-table{width:100%}
.attrib-table thead th:first-child,.attrib-table tbody th{text-align:left}
.attrib-table th[scope=row]{gap:8px}
/* 本页分区（二级导航）：吸在顶栏下面，横向一排，当前一块高亮；窄屏可左右滑 */
.page-nav{position:sticky;top:var(--page-nav-top,0px);z-index:20;margin:0 0 var(--ui-gap);padding:8px 0;background:linear-gradient(var(--canvas) 80%,rgba(246,247,249,0))}
.page-nav-track{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow-x:auto;scrollbar-width:none}
.page-nav-track::-webkit-scrollbar{display:none}
.page-nav button{flex:0 0 auto;min-height:36px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);font-size:var(--fs-14);white-space:nowrap;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.page-nav button:has(.plat-mark){display:inline-flex;align-items:center}
.page-nav button .plat-mark.is-sm{height:16px;margin-right:6px;vertical-align:0}
.page-nav button:hover{background:var(--surface-hover);color:var(--ink-900)}
.page-nav button[aria-selected="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.page-nav button:focus-visible{outline:2px solid var(--focus-outline);outline-offset:-2px}
[data-nav-section]{scroll-margin-top:calc(var(--page-nav-top,0px) + 72px)}
@media(max-width:640px){.page-nav button{min-height:40px}}
/* 拼多多分节标题：和天猫一节同一个样式，两个平台一眼分开 */
.pdd-plat-head{margin:8px 0 0;padding-top:18px;border-top:1px solid var(--border)}
.pdd-plat-head h2{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-16);font-weight:600;color:var(--text)}
.tm-plat-head h2{font-size:var(--fs-16);font-weight:600}
/* 对比表：非广告订单下面的小字 */
.cmp-table td small{display:block;font-size:var(--fs-12);color:var(--text-3);white-space:nowrap}
.v2-attrib .v2-card-head>h2,.v2-rank-card .v2-card-head>h2{flex:0 0 auto;margin-right:4px}
.v2-attrib .v2-card-head>.head-explain,.v2-rank-card .v2-card-head>.head-explain,.cmp-card .panel-head>.head-explain{margin-left:0!important}
/* 数字条统一（拼多多客服总览、天猫客服、各平台小统计）：不再卡片套卡片，改成上下细线、竖线分隔的一条 */
.promotion-analysis-overview{gap:0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.promotion-analysis-overview>span{min-height:0;padding:4px 16px;border:0;border-radius:0;background:transparent}
.promotion-analysis-overview>span+span{border-left:1px solid var(--line)}
.promotion-analysis-overview>span:first-child{padding-left:0}
.tm-stats{gap:0;padding:12px 0;border-radius:0;background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tm-stats>.tm-stat{padding:2px 20px}
.tm-stats>.tm-stat:first-child{padding-left:0}
.tm-stats>.tm-stat+.tm-stat{border-left:1px solid var(--line)}
@media(max-width:640px){
  .promotion-analysis-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .promotion-analysis-overview>span,.promotion-analysis-overview>span:first-child{padding:8px 0;border-left:0!important}
  .promotion-analysis-overview>span:nth-child(odd){padding-right:12px}
  .tm-stats>.tm-stat,.tm-stats>.tm-stat:first-child{padding:6px 16px 6px 0;border-left:0!important}
}
@media(max-width:640px){.cmp-table td small{white-space:normal}.rank-table tbody tr:hover>td,.rank-table tbody tr:hover>th{background:transparent!important}}
/* 天猫差评卡：不用左侧粗红条，状态看「待处理」标签；两步清单的底色减淡，红色只留给文字 */
.tm-review.is-pending{border-left:1px solid var(--line)}
/* 发票待开（2026-11-13）：五个指标块沿用 logistics-stat；红 = 已过期 / 24 小时内，琥珀 = 3 天内、没完成等太久 */
.invoice-page{display:grid;gap:16px}
.invoice-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.invoice-stat>strong{font-size:1.5rem}
.invoice-stat.is-warn>strong{color:var(--amber)}
.invoice-stat.is-active{background:var(--accent-soft)}
.invoice-notes{display:grid;gap:6px}
.invoice-notes p{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:8px 12px;border:1px solid var(--amber-line);border-radius:var(--radius-xs);background:var(--amber-soft);color:var(--amber);font-size:var(--fs-13);line-height:1.5}
.invoice-notes p.is-bad{border-color:var(--red-line);background:var(--red-soft);color:var(--red)}
.invoice-notes b{color:var(--text)}
.invoice-shop-row{cursor:pointer}
.invoice-shop-row.is-picked>*{background:var(--accent-soft)}
.invoice-shop-table td.is-bad,.invoice-run.is-bad{color:var(--red);font-weight:600}
.invoice-shop-table td.is-warn,.invoice-run.is-warn{color:var(--amber);font-weight:600}
.invoice-run{white-space:nowrap;font-size:var(--fs-12);color:var(--text-2)}
.invoice-list-head{flex-wrap:wrap;gap:12px}
.invoice-tools{display:flex;gap:8px;flex-wrap:wrap}
.invoice-tools input,.invoice-tools select{min-height:2.25rem;border:1px solid var(--border-strong);border-radius:var(--radius-xs);padding:.375rem .625rem;background:var(--surface);color:var(--text);font-size:var(--fs-13)}
.invoice-tools input{width:min(16rem,100%)}
.invoice-chips{flex-wrap:wrap;margin:0 0 8px}
.invoice-count{margin:4px 0 8px;color:var(--text-2);font-size:var(--fs-13)}
.invoice-table td{vertical-align:top}
.invoice-due{display:grid;gap:2px;white-space:nowrap;font-weight:600}
.invoice-due small,.invoice-sub{display:block;color:var(--text-2);font-size:var(--fs-12);font-weight:400}
.invoice-due.is-bad{color:var(--red)}
.invoice-due.is-warn{color:var(--amber)}
.invoice-due.is-wait{color:var(--text-2);font-weight:400}
.invoice-stage{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--neutral-soft);color:var(--neutral);font-size:var(--fs-12);font-weight:600;white-space:nowrap}
.invoice-stage.is-entry{background:var(--accent-soft);color:var(--accent)}
.invoice-stage.is-red{background:var(--red-soft);color:var(--red)}
.invoice-copy{padding:0;font:inherit;color:inherit;text-align:left;cursor:copy;overflow-wrap:anywhere}
.invoice-copy:hover{color:var(--accent);text-decoration:underline}
.invoice-more{margin-top:12px}
@media(max-width:900px){.invoice-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.invoice-stats>.logistics-stat:nth-child(3){border-right:0}.invoice-stats>.logistics-stat:nth-child(-n+3){border-bottom:1px solid var(--border)}}
@media(max-width:620px){.invoice-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-stats>.logistics-stat{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.invoice-stats>.logistics-stat:nth-child(2n){border-right:0}.invoice-stats>.logistics-stat:first-child{grid-column:1/-1;border-right:0}.invoice-tools,.invoice-tools input,.invoice-tools select{width:100%}}
/* 发票待开没有日期：手机上也不露顶部日期条（同管理后台） */
body[data-view="invoices"] .global-range{display:none!important}
.invoice-table td:first-child,.invoice-shop-table td:first-child{white-space:nowrap}
.invoice-shop-table{min-width:860px}
@media(max-width:620px){
  .invoice-table thead{display:none}
  .invoice-table,.invoice-table tbody{display:block}
  .invoice-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--border)}
  .invoice-table td{display:block;height:auto;padding:0;border:0;min-width:0}
  .invoice-table td.num{text-align:right}
}
@media(max-width:620px){
  .invoice-table td,.invoice-table td:first-child{position:static!important;left:auto;background:transparent!important;box-shadow:none!important;white-space:normal}
  .invoice-table td:nth-child(1),.invoice-table td:nth-child(6){grid-column:1/-1}
  .invoice-table td:nth-child(2){grid-column:1/-1;font-size:var(--fs-12);color:var(--text-2)}
  .invoice-table td:nth-child(7),.invoice-table td:nth-child(8),.invoice-table td:nth-child(9){font-size:var(--fs-12);color:var(--text-2)}
}
@media(max-width:620px){.invoice-table td:nth-child(2),.invoice-table td:nth-child(6){text-align:left}}
/* 发票待开（视觉统一 2026-11-13）：表格铺满卡片、表头和数字对齐、明细列不按字折行；搜索与筛选一行、页签不拉满 */
.invoice-shop-table,.invoice-table{width:100%}
.invoice-shop-table th,.invoice-shop-table td{text-align:right;white-space:nowrap}
.invoice-shop-table th:first-child,.invoice-shop-table td:first-child,.invoice-shop-table th:last-child,.invoice-shop-table td:last-child{text-align:left}
.invoice-table th{text-align:left;white-space:nowrap}
.invoice-table td{white-space:nowrap}
.invoice-table td:has(.invoice-copy){white-space:normal;min-width:10rem}
.invoice-table th.num,.invoice-table td.num{text-align:right}
.invoice-tools{flex-direction:row;align-items:center}
.invoice-tools input{text-align:left}
.invoice-chips{display:inline-flex;width:auto;max-width:100%;overflow-x:auto}
.invoice-chips button{flex:0 0 auto;min-width:0;padding:0 14px}
@media(max-width:640px){.invoice-tools input,.invoice-tools select{min-height:40px;flex:1 1 100%}.invoice-chips{display:flex}}
.invoice-page .invoice-tools{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center}.invoice-page .invoice-tools input{text-align:left!important;margin:0}.invoice-page .invoice-tools>*{width:auto}

/* ===== 88. 登录页比例（2026-11-13 用户：右侧表单与左边整体大小要协调；不再先显示「正在打开工作台」）=====
   左右各占一半；表单加宽到 440（宽屏 480），标题、输入框、按钮随之放大；左侧示意图放宽，避免宽屏左半边大片空白。
   登录页盖在最上层时整页不滚动（后面的工作台不再把页面撑长）。 */
body:has(#loginGate:not([hidden])){overflow:hidden}
.login-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.login-story{padding:56px clamp(40px,6vw,96px)}
.login-story-copy{max-width:36rem}
.login-visual{max-width:min(640px,100%)}
.login-card{max-width:440px;padding:56px 32px}
.login-card h2{font-size:2rem;line-height:1.25;margin:0 0 12px}
.login-card>p{font-size:var(--fs-16);margin:0 0 40px}
.login-card form{gap:24px}
.login-card label{gap:10px}
.login-card input{height:52px;padding:0 16px}
.login-card .login-submit{height:52px;margin-top:8px}
.login-card #loginError:empty{display:none}
.login-security{margin-top:32px;padding-top:24px}
@media(min-width:1600px){.login-story-copy h1{font-size:3rem}.login-card{max-width:480px}.login-card h2{font-size:2.25rem}}
@media(max-width:900px){
  .login-card{max-width:440px;padding:32px 20px 40px}
  .login-card h2{font-size:1.5rem;margin-bottom:8px}
  .login-card>p{font-size:var(--fs-14);margin-bottom:28px}
  .login-card form{gap:20px}
  .login-security{margin-top:28px;padding-top:20px}
}
.login-signal li{align-content:start}

/* ===== 89. 复制 / 直达小图标、待处理直达、首页布局与数据口径小字（2026-11-13 用户：订单号和待处理要有复制和直链，复制用小图标、鼠标放上去才出现）===== */
.cp-id{display:inline-flex;align-items:center;gap:2px;max-width:100%;vertical-align:baseline}
.cp-text{min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cp-btn{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;width:22px;height:22px;margin:0;padding:0;border:0;border-radius:var(--radius-xs,4px);background:transparent;color:var(--text-3);cursor:pointer;opacity:0;text-decoration:none;transition:opacity var(--t-fast,.12s),background-color var(--t-fast,.12s),color var(--t-fast,.12s)}
.cp-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.cp-id:hover .cp-btn,tr:hover .cp-btn,li:hover .cp-btn,.v2-issue:hover .cp-btn,.tm-review:hover .cp-btn,.cp-btn:focus-visible,.cp-id:focus-within .cp-btn{opacity:1}
.cp-btn:hover{background:var(--surface-sunken);color:var(--accent)}
.cp-btn:focus-visible{outline:0;box-shadow:var(--focus-ring)}
.cp-btn.is-done{opacity:1;color:var(--green)}
.cp-btn.is-fail{opacity:1;color:var(--red)}
small .cp-btn,.order-no-line .cp-btn{width:20px;height:20px}
small .cp-btn svg,.order-no-line .cp-btn svg{width:13px;height:13px}
/* 触屏没有悬停：图标常显，点按区域放大到 40px */
@media(hover:none){.cp-btn{opacity:.75}.cp-btn::after{content:'';position:absolute;inset:-9px}}
/* 发票：原来整段是按钮，改成文字 + 图标后去掉按钮样式残留 */
.invoice-table .cp-text{font-weight:inherit}
/* 待处理每条标题右侧：复制这条、复制直达链接 */
.v2-issue-tools{display:inline-flex;gap:2px;margin-left:4px;vertical-align:middle}
.v2-issue-top{align-items:center}
.v2-issue.is-focus{box-shadow:inset 0 0 0 2px var(--accent);border-radius:var(--radius-md,8px);transition:box-shadow .3s}
/* 首页：品牌任务挪出待处理那一列，整行；走势卡与待处理卡同高，待处理底部入口贴底 */
.v2-home-brand:empty{display:none}
.v2-home-brand .v2-brand{height:auto}
@media(min-width:861px){.v2-home-brand .v2-brand{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;align-items:start}.v2-home-brand .v2-brand>.v2-card-head,.v2-home-brand .v2-brand>.v2-brand-scope,.v2-home-brand .v2-brand>.v2-empty{grid-column:1/-1}}
.v2-home-side>.v2-inbox-card{flex:1 1 auto}
.rank-foot{margin:12px 0 0;font-size:var(--fs-13)}
.rank-foot b{color:var(--ink-900);font-weight:600}
.v2-kpi-delta-note{font-size:var(--fs-12);color:var(--text-3);cursor:help;border-bottom:1px dotted currentColor}
/* 售后表店铺列不再一个字一行地折；商品没有图时显示占位底色 */
.pdd-as-table td:last-child{white-space:nowrap}
.model-cell .model-thumb:empty,.model-cell img:not([src]),.model-cell img[src=""]{background:var(--surface-sunken)}

/* ===== 90. 待处理：平台 + 店铺筛选（2026-11-13 用户：要可选平台；都堆在一起、没对齐）=====
   一行：左边平台切换（和顶栏日期同一种分段按钮），右边按平台分组的店铺；组之间细竖线隔开，组头是平台标。
   与上面「数据截至」那行同一左边线、上下各留 12px。 */
.v2-inbox-page .inbox-shop-filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.inbox-plat-tabs{flex:0 0 auto}
.inbox-plat-tabs button{min-height:32px}
.inbox-shop-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px 8px;flex:1 1 0;min-width:0}
.inbox-shop-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;padding-left:12px;margin-left:4px;border-left:1px solid var(--line)}
.inbox-shop-plat{display:inline-flex;align-items:center}
.inbox-shop-filter .v2-shop-chip{min-height:32px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-13);line-height:1}
.inbox-shop-filter .v2-shop-chip b{font-weight:600;color:var(--text-3)}
.inbox-shop-filter .v2-shop-chip[aria-pressed="true"] b{color:inherit}
.v2-inbox-page .v2-scope{gap:8px 20px;padding-bottom:12px}
@media(max-width:700px){
  .v2-inbox-page .inbox-shop-filter{flex-direction:column;align-items:stretch}
  .inbox-plat-tabs{overflow-x:auto}
  .inbox-shop-list{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
  .inbox-shop-group{flex-wrap:nowrap}
  .inbox-shop-filter .v2-shop-chip{min-height:40px;flex:0 0 auto}
}
/* 90b. 两行：上行平台切换；下行「全部店铺」+ 按平台排的店铺，平台标前用细竖线隔开，全部在一条流里换行 */
.v2-inbox-page .inbox-shop-filter{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;justify-items:start}
.inbox-shop-list{width:100%;flex:none}
.inbox-shop-group{display:contents}
.inbox-shop-plat{padding-left:12px;margin-left:4px;border-left:1px solid var(--line);min-height:32px}
/* 90c（2026-11-13 用户：天猫要换行、最左边不齐）：上行 = 平台切换 + 「全部店铺」；下面一个平台一行，
   左列平台标同宽、右列店铺在本行内换行，所有行从同一条左边线开始 */
.v2-inbox-page .inbox-shop-filter{gap:10px}
.inbox-shop-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.inbox-shop-list{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 14px;align-items:start}
.inbox-shop-row{display:contents}
.inbox-shop-filter .inbox-shop-plat{padding:0;margin:0;border:0;min-height:32px;display:inline-flex;align-items:center}
.inbox-shop-chips{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
@media(max-width:700px){
  .inbox-shop-list{grid-template-columns:minmax(0,1fr);gap:6px}
  .inbox-shop-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
  .inbox-shop-filter .inbox-shop-plat{min-height:24px}
}
.cp-id .cp-text{white-space:nowrap}
/* 订单号整体按行内排，读屏和复制整行文字时不被拆成两行 */
.cp-id{display:inline;white-space:nowrap}
.cp-id .cp-btn{vertical-align:middle}

/* ===== 91. 第四轮（2026-11-13 用户）：平台标用平台图标；按平台分组的表；为什么涨跌重做；数据完整性默认展开 ===== */
/* 平台标：平台图标 + 平台名，统一 13px，不再用小圆点 */
.plat-tag{gap:6px;padding:2px 8px 2px 4px;font-size:var(--fs-13);line-height:20px}
.plat-tag .plat-mark.is-sm{height:16px;margin:0;vertical-align:0;border-radius:4px}
.plat-tag .plat-mark+i,.plat-tag:has(.plat-mark) i{display:none}
/* 按平台分组的表：组头一行（平台图标 + 几家店 + 合计），组内按金额从大到小 */
tr.plat-group-row>th{padding:16px 12px 8px!important;background:transparent!important;border-bottom:1px solid var(--line);text-align:left;font-weight:400;height:auto!important}
tbody>tr.plat-group-row:first-child>th{padding-top:4px!important}
.plat-group-head{display:inline-flex;align-items:center;gap:10px}
.plat-group-meta{font-size:var(--fs-13);color:var(--text-3);font-variant-numeric:tabular-nums}
tr.plat-group-row:hover>*{background:transparent!important}
/* 分组后店铺列只剩店名：左边线对齐 */
.rank-shop{display:inline-flex;align-items:center;gap:8px;min-width:0}
@media(max-width:860px){
  .rank-table tr.plat-group-row{display:block;padding:12px 0 4px;border-bottom:1px solid var(--line)}
  table.rank-table tr.plat-group-row>th{display:block;padding:0!important;border:0}
}
/* 为什么涨跌：一句结论 + 一条桥 + 分平台表；字号只用 12/13/14/20 */
.v2-attrib .attrib-lead{margin:0 0 16px;font-size:var(--fs-14);line-height:1.6;color:var(--text-2);max-width:none}
.v2-attrib .attrib-lead b{font-weight:600;color:var(--ink-900);font-variant-numeric:tabular-nums}
.v2-attrib .attrib-lead b.v2-up{color:var(--red)}.v2-attrib .attrib-lead b.v2-down{color:var(--green)}
.attrib-bridge{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius-md,8px);overflow:hidden;background:var(--surface,#fff)}
.attrib-step{display:grid;align-content:start;gap:6px;min-width:0;margin:0;padding:14px 16px;border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left}
.attrib-step:first-child{border-left:0}
.attrib-step.is-end{background:var(--surface-sunken)}
button.attrib-step{cursor:pointer;transition:background-color var(--t-fast,.12s)}
button.attrib-step:hover{background:var(--surface-hover,#f5f6fa)}
button.attrib-step:focus-visible{outline:0;box-shadow:inset var(--focus-ring)}
.attrib-step .attrib-k{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-13);color:var(--text-3)}
.attrib-step .attrib-k i{font-style:normal;color:var(--text-3)}
.attrib-step b{font-size:var(--fs-20);font-weight:600;line-height:1.2;color:var(--ink-900);font-variant-numeric:tabular-nums;white-space:nowrap}
.attrib-step.v2-up b{color:var(--red)}.attrib-step.v2-down b{color:var(--green)}
.attrib-step small{font-size:var(--fs-12);line-height:1.5;color:var(--text-3);font-variant-numeric:tabular-nums}
.attrib-plat-wrap{margin-top:16px}
.attrib-plat-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-14)}
.attrib-plat-table th,.attrib-plat-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums}
.attrib-plat-table thead th{font-size:var(--fs-13);font-weight:500;color:var(--text-3);padding-top:0}
.attrib-plat-table th:first-child{width:22%;text-align:left;padding-left:0}
.attrib-plat-table .num{text-align:right}
.attrib-plat-table td small{display:block;font-size:var(--fs-12);color:var(--text-3)}
.attrib-plat-table td.v2-up{color:var(--red)}.attrib-plat-table td.v2-down{color:var(--green)}
.attrib-plat-table tbody tr:last-child>*{border-bottom:0}
.attrib-plat{display:inline-flex;align-items:center;gap:8px}
.attrib-shops{font-size:var(--fs-13);color:var(--text-3)}
@media(max-width:1100px){.attrib-bridge{grid-template-columns:repeat(3,minmax(0,1fr))}.attrib-step:nth-child(4){border-left:0}.attrib-step:nth-child(n+4){border-top:1px solid var(--line)}}
@media(max-width:700px){
  .attrib-bridge{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attrib-step{border-left:0;border-top:1px solid var(--line)}
  .attrib-step:nth-child(-n+2){border-top:0}.attrib-step:nth-child(even){border-left:1px solid var(--line)}
  .attrib-step:last-child{grid-column:1/-1;border-left:0}
  .attrib-plat-wrap{overflow-x:auto}.attrib-plat-table{min-width:560px}
}
/* 数据完整性：默认展开，不再有收起按钮 */
.v2-coverage .cov-toggle{display:none!important}

/* ===== 92. 打开方式（2026-11-13 用户：按主流习惯）：侧栏是真链接；站外链接新开并带 ↗ ===== */
a.nav-item{text-decoration:none;color:inherit;cursor:pointer}
a.nav-item:focus-visible{outline:0;box-shadow:var(--focus-ring)}
#content a[target="_blank"]:not(.cp-btn):not(.btn):not(:has(img))::after,#drawerBody a[target="_blank"]:not(.cp-btn):not(.btn):not(:has(img))::after{content:"↗";display:inline-block;margin-left:2px;font-size:.85em;color:var(--text-3);text-decoration:none}

/* ===== 93. 登录页第三版（2026-11-13 用户给参考：白卡片、浅灰无边框输入框、胶囊按钮、上方欢迎登录；删多余内容）=====
   左：浅底品牌区，只留品牌、一句话、已接入平台、页脚；右：浅灰画布上一张白卡（最宽 440），卡上方「欢迎登录 · 建雄电商经营工作台」。
   输入框浅灰底无边框，聚焦变白底加主色描边；按钮胶囊形主色。手机：品牌区收成一行，欢迎语和卡片在下。 */
.login-gate .login-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.login-gate .login-story{justify-content:space-between;gap:32px;padding:48px clamp(40px,6vw,96px);background:linear-gradient(180deg,#fff 0%,#eef1fb 100%)}
.login-gate .login-story-copy{max-width:30rem;margin:auto 0}
.login-gate .login-story-copy h1{font-size:2.5rem;margin:0 0 16px}
.login-gate .login-story-copy>p{font-size:var(--fs-16);line-height:1.7;color:var(--text-2)}
.login-gate .login-visual,.login-gate .login-signal{display:none}
.login-story-foot{margin:0;font-size:var(--fs-12);color:var(--text-3)}
.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px 32px;background:var(--canvas)}
.login-welcome{display:flex;align-items:baseline;gap:12px;width:100%;max-width:440px;margin:0 0 20px;padding:0 4px}
.login-welcome h2{margin:0;font-size:1.75rem;font-weight:600;line-height:1.3;color:var(--ink-900)}
.login-welcome span{font-size:var(--fs-16);color:var(--text-2)}
.login-gate .login-card{display:block;width:100%;max-width:440px;align-self:auto;justify-self:auto;padding:36px 40px 28px;border:1px solid var(--line);border-radius:var(--radius-lg,12px);background:#fff;box-shadow:0 12px 32px rgba(16,24,40,.06)}
.login-gate .login-card>h2,.login-gate .login-card>p:not(.login-tab):not(.login-security){display:none}
.login-tab{display:flex;gap:24px;margin:0 0 24px}
.login-tab span{position:relative;padding:0 0 8px;font-size:var(--fs-16);font-weight:600;color:var(--ink-900)}
.login-tab span::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--accent)}
.login-gate .login-card form{display:grid;gap:16px}
.login-gate .login-card label{display:block;gap:0}
.login-gate .login-card input{width:100%;height:48px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-sm,8px);background:#f4f5f8;font-size:var(--fs-14);color:var(--ink-900)}
.login-gate .login-card input::placeholder{color:#8a93a3}
.login-gate .login-card input:hover{border-color:transparent;background:#eef0f4}
.login-gate .login-card input:focus{outline:0;background:#fff;border-color:var(--accent);box-shadow:var(--focus-ring)}
.login-gate .login-card .login-submit{width:100%;height:48px;margin-top:8px;border-radius:999px;font-size:var(--fs-16);font-weight:600;letter-spacing:.2em;justify-content:center}
.login-gate .login-card #loginError:empty{display:none}
.login-gate .login-security{display:flex;justify-content:center;align-items:center;gap:6px;margin:24px 0 0;padding:0;border:0;font-size:var(--fs-13);color:var(--text-3)}
.login-gate .login-security [data-icon]{width:14px;height:14px;color:var(--text-3)}
.login-gate.is-booting .login-tab{display:none}
@media(min-width:1600px){.login-gate .login-story-copy h1{font-size:3rem}.login-welcome,.login-gate .login-card{max-width:480px}}
@media(max-width:900px){
  .login-gate .login-story{gap:12px;padding:20px 20px 24px;background:#fff}
  .login-gate .login-story-copy{margin:0}
  .login-gate .login-story-copy h1{font-size:1.25rem;margin:0 0 6px}
  .login-gate .login-story-copy>p{font-size:var(--fs-13)}
  .login-gate .login-plats{margin-top:12px}
  .login-story-foot{display:none}
  .login-panel{justify-content:flex-start;padding:24px 16px 40px}
  .login-welcome{margin-bottom:16px}.login-welcome h2{font-size:1.375rem}.login-welcome span{font-size:var(--fs-14)}
  .login-gate .login-card{padding:28px 20px 24px}
}
@media(max-width:900px){.login-gate .login-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.login-gate .login-story{border-right:0;border-bottom:1px solid var(--line)}}
.login-gate .login-card{padding-bottom:24px}.login-gate .login-security{margin-top:20px}

/* ===== 94. 站内同一套手感（2026-11-13 用户：站内也要，不止登录页）=====
   输入框、搜索框、下拉框：浅灰底、无边框，悬停略深，聚焦变白底加主色描边；
   按钮：圆角胶囊（顶栏「立即同步」分段按钮、图标按钮、分段切换不动）；卡片：白底加一层很淡的阴影，和登录卡一致。 */
:is(#content,#drawerBody,.global-custom,.command-input) :is(input:not([type]),input[type="text"],input[type="search"],input[type="date"],input[type="number"],input[type="password"],select,textarea){background-color:#f4f5f8;border-color:transparent;border-radius:var(--radius-sm,8px);box-shadow:none;transition:background-color var(--t-fast,.12s),border-color var(--t-fast,.12s),box-shadow var(--t-fast,.12s)}
:is(#content,#drawerBody,.global-custom) :is(input:not([type]),input[type="text"],input[type="search"],input[type="date"],input[type="number"],input[type="password"],select,textarea):hover{background-color:#eef0f4;border-color:transparent}
:is(#content,#drawerBody,.global-custom,.command-input) :is(input:not([type]),input[type="text"],input[type="search"],input[type="date"],input[type="number"],input[type="password"],select,textarea):focus{outline:0;background-color:#fff;border-color:var(--accent);box-shadow:var(--focus-ring)}
:is(#content,#drawerBody,.global-custom,.v2-pick-bar,.drawer-head) .btn:not(.icon-only):not(.top-sync){border-radius:999px}
.scope-menu-btn{background:#f4f5f8;border-color:transparent;border-radius:999px}
.scope-menu-btn:hover{background:#eef0f4;border-color:transparent}
.scope-menu-btn[aria-expanded="true"]{background:#fff;border-color:var(--accent)}
#content :is(.v2-card,.panel):not(.v2-card .v2-card):not(.panel .panel){box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 20px rgba(16,24,40,.04)}
/* 对比度：浅灰底上的占位文字和登录页页脚加深到 4.5:1 以上 */
.login-gate .login-card input::placeholder,:is(#content,#drawerBody) :is(input,textarea)::placeholder{color:#626a78}
.login-story-foot{color:var(--text-2)}

/* ===== 店铺采集页（2026-11-13）：扫码登录在最上面，一行一家店，展开看每类数据最近一次采集与近 30 天 ===== */
.sc-page{display:grid;gap:16px}
.sc-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.sc-stats>.is-bad{border-color:var(--red-line);background:var(--red-soft)}
.sc-stats>.is-bad strong{color:var(--red)}
.sc-stats>.is-warn{border-color:var(--amber-line);background:var(--amber-soft)}
.sc-stats>.is-warn strong{color:var(--amber)}
.sc-group .panel-head h2 small{margin-left:8px;font-size:var(--fs-13);font-weight:500;color:var(--text-2)}
.sc-group .panel-head p{max-width:62ch}
.sc-list{display:grid;border-top:1px solid var(--border)}
.sc-shop{border-bottom:1px solid var(--border)}
.sc-shop:last-child{border-bottom:0}
.sc-shop>summary{display:grid;grid-template-columns:auto minmax(10rem,1.2fr) minmax(0,1.6fr) auto 20px;align-items:center;gap:14px;padding:12px 4px;cursor:pointer;list-style:none;border-radius:var(--radius-sm)}
.sc-shop>summary::-webkit-details-marker{display:none}
.sc-shop>summary:hover{background:var(--surface-hover)}
.sc-shop>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sc-logo{display:inline-flex;align-items:center;min-width:34px}
.sc-logo .shop-av{margin-right:0;vertical-align:0}
.sc-logo .shop-av.is-plat-only::after{display:none}
.sc-logo>.plat-mark{height:28px;margin:0}
.sc-name{display:grid;gap:3px;min-width:0}
.sc-name strong{font-size:var(--fs-14);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-name small{display:flex;align-items:center;font-size:var(--fs-12);color:var(--text-2)}
.sc-state{display:flex;align-items:flex-start;gap:8px;min-width:0}
.sc-state>span:last-child{display:grid;gap:2px;min-width:0}
.sc-state b{font-size:var(--fs-13);font-weight:600;color:var(--text)}
.sc-state small{font-size:var(--fs-12);color:var(--text-2);overflow-wrap:anywhere}
.sc-dot{flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--neutral,#98a2b3)}
.sc-shop.is-good .sc-dot{background:var(--green)}
.sc-shop.is-warn .sc-dot{background:var(--amber)}
.sc-shop.is-bad .sc-dot{background:var(--red)}
.sc-shop.is-bad .sc-state b{color:var(--red)}
.sc-shop.is-warn .sc-state b{color:var(--amber)}
.sc-shop.is-muted .sc-state b{color:var(--text-2)}
.sc-act{display:flex;justify-content:flex-end}
.sc-act .btn{white-space:nowrap}
.sc-caret{width:8px;height:8px;justify-self:center;border-right:1.6px solid var(--text-2);border-bottom:1.6px solid var(--text-2);transform:rotate(45deg) translate(-2px,-2px);transition:transform .16s ease}
.sc-shop[open] .sc-caret{transform:rotate(225deg) translate(-2px,-2px)}
.sc-body{padding:4px 4px 16px 52px}
.sc-kinds{display:grid;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}
.sc-kind{display:grid;grid-template-columns:8.5rem minmax(9rem,13rem) minmax(0,1fr);align-items:center;gap:12px;padding:9px 12px;border-bottom:1px solid var(--border)}
.sc-kind:last-child{border-bottom:0}
.sc-kind-name{font-size:var(--fs-13);font-weight:600;color:var(--text)}
.sc-kind-state{font-size:var(--fs-13);color:var(--text-2)}
.sc-kind-state.is-good{color:var(--green)}
.sc-kind-state.is-warn{color:var(--amber)}
.sc-kind-state.is-bad{color:var(--red);font-weight:600}
.sc-kind-track{min-width:0;overflow:hidden}
.sc-kind-track small{font-size:var(--fs-12)}
.sc-note{margin:8px 0 0;font-size:var(--fs-12);color:var(--text-2)}
.sc-empty{margin:0;padding:14px 4px;font-size:var(--fs-13);color:var(--text-2)}
.sc-body>.sc-empty{padding:0}
.sc-foot,.sc-jump{margin-top:0}
.sc-jump{margin-bottom:16px}
@media (prefers-reduced-motion:reduce){.sc-caret{transition:none}}
@media (max-width:760px){
  .sc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sc-shop>summary{grid-template-columns:auto minmax(0,1fr) 16px;grid-template-areas:"logo name caret" "logo state caret" "act act act";row-gap:6px;column-gap:10px;padding:12px 2px}
  .sc-logo{grid-area:logo;align-self:start}.sc-name{grid-area:name}.sc-state{grid-area:state}.sc-caret{grid-area:caret}
  .sc-act{grid-area:act;justify-content:stretch}.sc-act .btn{flex:1}
  .sc-body{padding:2px 0 14px}
  .sc-kind{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}
  .sc-kind-track{grid-column:1/-1;overflow-x:auto}
  .sc-foot,.sc-jump{flex-direction:column;align-items:stretch}
}

/* 2026-11-13 本页分区改成分页签：只显示当前这一块 */
#content>*>.is-tab-off{display:none!important}
#content>[data-tabbed]>.page-nav{margin-bottom:16px}
.shop-av.is-plat-only::after{display:none}
.shop-av.is-plat-only>.shop-av-plat{width:var(--av,20px);height:var(--av,20px)}
/* 评价管理用星形图标，和客服服务（对话框）分开，侧栏不再像两个一样的入口 */
[data-icon="star"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round' d='M12 3.5l2.6 5.3 5.8.8-4.2 4.1 1 5.8L12 16.8l-5.2 2.7 1-5.8-4.2-4.1 5.8-.8z'/%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}

/* ===== 登录页左侧（2026-11-13 用户：左边太空洞、加动画；文案稍往右；配色要和页面一致）=====
   各店数据线依次画出、汇到一点、再走成一条合计线；之后线上的小光点一直缓缓往右流；只用品牌蓝的深浅。减少动态时静止。 */
.login-gate .login-story{padding-left:clamp(56px,9vw,150px);padding-right:clamp(32px,5vw,80px)}
.login-gate .login-story-copy{max-width:32rem}
.login-board{margin-top:44px;max-width:34rem}
/* 2026-11-13 第二次：用户说文案和图仍偏左、偏小 → 整块在左栏里居中，随屏宽放大（宽屏不再缩在左上角） */
@media (min-width:901px){
  .login-gate .login-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
  .login-gate .login-story{padding-left:clamp(72px,9vw,200px);padding-right:clamp(40px,4vw,96px)}
  .login-gate .login-story-copy{width:100%;max-width:52rem;margin:auto 0}
  .login-gate .login-story-copy>p{word-break:keep-all}
  .login-gate .login-story-copy h1{font-size:clamp(2.75rem,3.5vw,4.25rem);line-height:1.15;margin-bottom:clamp(16px,1.4vw,24px)}
  .login-gate .login-story-copy>p{max-width:none;font-size:clamp(16px,1.1vw,20px)}
  .login-gate .login-plats{margin-top:clamp(20px,1.8vw,32px);gap:10px}
  .login-gate .login-plats li{font-size:clamp(13px,.85vw,15px);padding:5px 14px}
  .login-board{max-width:none;margin-top:clamp(36px,3.6vw,64px)}
}
.login-board svg{display:block;width:100%;height:auto;overflow:visible}
.lb-path{fill:none;stroke:rgba(52,81,209,.22);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.lb-total-base{stroke:rgba(52,81,209,.28);stroke-width:3}
.lb-flow{fill:none;stroke:var(--accent,#3451d1);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:2 22;opacity:.7}
.lb-total{stroke-width:3;stroke-dasharray:3 15;opacity:.9}
.lb-node{fill:#fff;stroke:rgba(52,81,209,.45);stroke-width:1.5}
.lb-hub{fill:#fff;stroke:var(--accent,#3451d1);stroke-width:2}
.lb-end{fill:var(--accent,#3451d1)}
.lb-ring{fill:none;stroke:var(--accent,#3451d1);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}
.lb-label{font-size:13px;fill:var(--text-3,#667085);font-family:inherit}
.lb-label-end{fill:var(--accent,#3451d1);font-weight:600}
@keyframes lbIn{from{opacity:0;transform:translateY(10px)}}
@keyframes lbDrawIn{from{stroke-dashoffset:1}}
@keyframes lbFlow{to{stroke-dashoffset:-24}}
@keyframes lbFlowTotal{to{stroke-dashoffset:-18}}
@keyframes lbPop{from{opacity:0;transform:scale(.4)}}
@keyframes lbRing{0%{opacity:.5;transform:scale(1)}100%{opacity:0;transform:scale(2.4)}}
@keyframes lbFadeIn{from{opacity:0}}
/* 全站第 16 条把动画名一律关了（!important）；登录页这几处是用户点名要的动画，单独放开 */
@media (prefers-reduced-motion:no-preference){
  .login-gate .login-story-copy h1,.login-gate .login-story-copy>p,.login-gate .login-plats{animation:lbIn .7s cubic-bezier(.16,1,.3,1) both;animation-name:lbIn!important}
  .login-gate .login-story-copy>p{animation-delay:.08s}
  .login-gate .login-plats{animation-delay:.16s}
  .login-gate .lb-path{animation:lbDrawIn 1.1s cubic-bezier(.65,0,.35,1) calc(.35s + var(--i) * 90ms) both;animation-name:lbDrawIn!important}
  .login-gate .lb-node{transform-box:fill-box;transform-origin:center;animation:lbPop .5s cubic-bezier(.16,1,.3,1) calc(.3s + var(--i) * 90ms) both;animation-name:lbPop!important}
  .login-gate .lb-hub,.login-gate .lb-end{transform-box:fill-box;transform-origin:center;animation:lbPop .5s cubic-bezier(.16,1,.3,1) 1.5s both;animation-name:lbPop!important}
  .login-gate .lb-end{animation-delay:1.9s}
  .login-gate .lb-label{animation:lbFadeIn .6s ease 1.9s both;animation-name:lbFadeIn!important}
  .login-gate .lb-label:first-of-type{animation-delay:.3s}
  .login-gate .lb-flow{animation:lbFadeIn .8s ease 1.6s both,lbFlow 3.2s linear calc(var(--i) * -.45s) infinite;animation-name:lbFadeIn,lbFlow!important}
  .login-gate .lb-total{animation:lbFadeIn .8s ease 2s both,lbFlowTotal 1.6s linear infinite;animation-name:lbFadeIn,lbFlowTotal!important}
  .login-gate .lb-ring{animation:lbRing 2.8s cubic-bezier(.16,1,.3,1) 2.4s infinite;animation-name:lbRing!important}
}
@media (max-width:900px){.login-board{display:none}.login-gate .login-story{padding-left:20px;padding-right:20px}}
@media (min-width:901px) and (max-height:760px){.login-gate .login-board{margin-top:24px}.login-board svg{width:auto;max-width:100%;max-height:200px}}
/* 登录页平台小标：跟品牌蓝一个色系（2026-11-13 用户：配色不符） */
.login-gate .login-plats i,.login-gate .login-plats i.is-pdd,.login-gate .login-plats i.is-tmall,.login-gate .login-plats i.is-jd,.login-gate .login-plats i.is-offline{background:var(--accent,#3451d1)}
.login-gate .login-plats li:nth-child(2) i{opacity:.75}.login-gate .login-plats li:nth-child(3) i{opacity:.5}.login-gate .login-plats li:nth-child(4) i{opacity:.32}
/* 页头改成一排工具条（2026-11-13 用户：页头太糟）：不再是一条白底说明栏 */
.business-page-heading.has-actions.is-toolbar{display:flex;justify-content:flex-end;padding:0;border:0;background:transparent;box-shadow:none;margin-bottom:4px}
.business-page-heading.is-toolbar .business-page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
#content .business-page-heading.is-toolbar{box-shadow:none}
.inv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.inv-toolbar .inv-brand-tabs{margin:0}
.inv-toolbar-meta{display:flex;align-items:center;gap:10px;font-size:var(--fs-13);color:var(--text-2)}
@media(max-width:640px){.inv-toolbar{align-items:stretch}.inv-toolbar .inv-brand-tabs{width:100%}.inv-toolbar-meta{justify-content:space-between;width:100%}}
/* 不按日期筛的页面（库存、设置等）在手机上也不显示日期条：手机样式原来把 hidden 盖掉了 */
.global-range[hidden]{display:none!important}
/* 2026-11-14 用户：售后退款「其余待商家处理」一展开，上面的表格位置就变。原因：.panel 是纵向 flex，表格外层可横向滚动（overflow:auto）
   使它最小高度为 0，展开长清单后浏览器把上面的表格压扁裁掉一截。卡片里的表格、展开块一律不许被压缩。 */
.panel>.table-wrap,.panel>.sku-table-wrap,.panel>details,.panel>.table-more{flex-shrink:0}
/* 售后待处理计数表（拼多多、天猫共用）：同行比较另起一行；手机上不逐字折行，整表在框内横滑 */
.pdd-as-count-table td small{display:block;font-size:var(--fs-12);color:var(--ui-ink-3);font-weight:400}
@media(max-width:860px){.pdd-as-count-table thead th,.pdd-as-count-table td{white-space:nowrap}.pdd-as-count-table th[scope="row"]{min-width:8.5rem;white-space:normal}}
/* 发票待开分平台页签（2026-11-13）：拼多多、天猫各一页，指标各按平台规则 */
.invoice-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.invoice-plat{display:grid;gap:16px;min-width:0}
.invoice-shop{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.invoice-notes p .invoice-shop{font-weight:600;color:var(--text)}
.invoice-tag{display:inline-block;margin:0 4px 2px 0;padding:1px 8px;border-radius:999px;background:var(--neutral-soft);color:var(--neutral);font-size:var(--fs-12);white-space:nowrap}
.invoice-tag.is-warn{background:var(--amber-soft);color:var(--amber)}
.invoice-goods{max-width:16rem;font-size:var(--fs-12);color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.invoice-tools .btn{white-space:nowrap}
@media(max-width:620px){
  .invoice-table.is-pdd td:nth-child(6){grid-column:auto}
  .invoice-table.is-pdd td:nth-child(5),.invoice-table.is-pdd td:nth-child(9){grid-column:1/-1;text-align:left}
  .invoice-goods{display:block;max-width:none;-webkit-line-clamp:unset}
  .invoice-toolbar{justify-content:flex-start}
}
@media(max-width:620px){
  .invoice-table.is-pdd tr{display:block}
  .invoice-table.is-pdd td{margin:0 0 4px}
  .invoice-table.is-pdd td.num{text-align:left;font-weight:600}
}
/* 2026-11-14 首页第二行：访客、转化率、推广花费、推广 ROI、净笔数。和上面四张核心数卡同样的卡片、同样的间距，矮一号 */
#v2Kpis2:empty{display:none}
.v2-kpi-row2{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--kpi-gap,16px)}
.v2-kpi-row2 .v2-kpi2{display:grid;gap:4px;align-content:start;padding:12px 20px 14px;border:1px solid var(--ui-line);border-radius:var(--ui-card-r,12px);background:#fff;box-shadow:var(--ui-shadow);min-width:0}
.v2-kpi-row2 .v2-kpi-head{display:flex;align-items:center;gap:6px}
.v2-kpi-row2 .v2-kpi2>strong{font-size:var(--fs-20,1.25rem);font-weight:700;letter-spacing:-.01em;line-height:1.3}
.v2-kpi-row2 .v2-kpi-label{font-size:var(--fs-13);color:var(--text-3)}
.v2-kpi-sub2{font-size:var(--fs-12);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-tm-gap .plat-group-meta{color:var(--text-3)}
@media(max-width:860px){
  .v2-kpi-row2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .v2-kpi-row2 .v2-kpi2{padding:10px 14px 12px}
  .v2-kpi-row2 .v2-kpi2:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:620px){.invoice-table td{height:auto!important;max-height:none!important;min-height:0!important}}
/* 发票待开对齐（2026-11-14 用户：文字间距、页头没对齐）：表格进边框、表头与数字同列对齐、各格同一基线；筛选条按内容宽、件数同一行；手机指标 2 列不留空 */
.invoice-page .table-wrap{border:1px solid var(--ui-line);border-radius:var(--radius);overflow-x:auto;max-width:100%}
.invoice-page table{border-collapse:collapse;border-spacing:0}
.invoice-page table th,.invoice-page table td{padding:10px 14px;vertical-align:middle;line-height:1.45}
.invoice-page table tbody tr>*{background:transparent}
.invoice-page table tbody tr:hover>*,.invoice-page .invoice-shop-row.is-picked>*{background:var(--accent-soft)}
.invoice-page .invoice-shop-table th:not(:first-child):not(:last-child),.invoice-page .invoice-shop-table td:not(:first-child):not(:last-child){text-align:right}
.invoice-page .invoice-table td{vertical-align:top}
.invoice-page .invoice-copy{display:inline;min-height:0;height:auto;padding:0;border:0;background:none;line-height:inherit;font:inherit;vertical-align:baseline}
.invoice-page .invoice-sub{margin-top:2px;line-height:1.45}
.invoice-page .invoice-sub .invoice-copy{font-size:inherit;color:inherit}
.invoice-page .invoice-shop img{flex:0 0 auto}
.invoice-page .panel-head{align-items:flex-start;gap:12px 16px}
.invoice-page .panel-head h2{margin:0 0 4px}
.invoice-page .panel-head p{margin:0}
.invoice-page .invoice-tools{gap:8px}
.invoice-page .invoice-tools input,.invoice-page .invoice-tools select,.invoice-page .invoice-tools .btn{height:36px;min-height:36px;box-sizing:border-box}
.invoice-filter-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:0 0 12px}
.invoice-page .invoice-chips{display:inline-flex!important;width:auto!important;min-width:0;margin:0}
.invoice-page .invoice-count{margin:0;color:var(--text-2);font-size:var(--fs-13)}
.invoice-page .invoice-count:empty{display:none}
.invoice-page .invoice-stat>small{min-height:0}
.invoice-page .invoice-toolbar>*{margin:0;align-self:center}
.invoice-page .panel-head>.head-explain{align-self:flex-start;display:inline-flex;align-items:center}
.invoice-page .panel-head>.head-explain .explain-btn{height:32px;margin:0}
.invoice-page .invoice-table .invoice-sub{white-space:nowrap}
.invoice-page .invoice-toolbar .btn,.invoice-page .invoice-toolbar button{height:32px;min-height:32px;box-sizing:border-box;display:inline-flex;align-items:center}
@media(max-width:620px){
  .invoice-page .invoice-stats>.logistics-stat:nth-child(5){grid-column:auto;border-top:0}
  .invoice-page .invoice-stats>.logistics-stat:nth-child(2n){border-right:0}
  .invoice-page .invoice-stats>.logistics-stat:nth-child(2n+1):not(:first-child){border-right:1px solid var(--border)}
  .invoice-page .invoice-stats>.logistics-stat:nth-last-child(-n+2):not(:first-child){border-bottom:0}
  .invoice-page .invoice-table td{padding:0}
  .invoice-page .invoice-table tbody tr:hover>*{background:transparent}
  .invoice-page .invoice-list .table-wrap{border:0;border-radius:0}
  .invoice-filter-row{display:grid}
  .invoice-page .invoice-chips{display:flex!important;overflow-x:auto}
}
/* 2026-11-14 取数专区「店铺取数」：一天一行，五组推广拆分；日期列固定在左 */
.shop-pull-table{font-size:var(--fs-13)}
.shop-pull-table th,.shop-pull-table td{white-space:nowrap;text-align:center}
.shop-pull-table td.v2-num{text-align:right}
.shop-pull-table thead th[scope="colgroup"]{text-align:center;font-weight:600}
.shop-pull-table .sp-sep{border-left:1px solid var(--v2-line)}
.shop-pull-table th[scope="row"]{position:sticky;left:0;z-index:1;background:#fff;text-align:left;min-width:4.5rem}
.shop-pull-table thead tr:first-child th:first-child{position:sticky;left:0;z-index:2;background:#fff}
.shop-pull-table th[scope="row"] small{margin-left:.35em;font-weight:400;color:var(--text-3)}
.shop-pull-table tr.is-empty th[scope="row"]{color:var(--text-3)}
.shop-pull-table tfoot th,.shop-pull-table tfoot td{font-weight:600}
/* 2026-11-14 云商统计「品类」：品类名、数字都不折行，窄屏整表在框内横滑 */
.hik-cat-table th,.hik-cat-table td{white-space:nowrap}
.hik-cat-table th[scope="row"],.hik-cat-table thead th:first-child{text-align:left}
.hik-cat-table td .mix-cell-sub{display:block}
/* 活动报名页（v2-231，2026-11-14）：百亿补贴（上线 / 下线 / 降价）、天猫跟价 */
[data-icon="tag"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 12.6V4.5a1 1 0 0 1 1-1h8.1l8 8a1.4 1.4 0 0 1 0 2l-7.1 7.1a1.4 1.4 0 0 1-2 0z'/%3E%3Ccircle cx='8.2' cy='8.2' r='1.4'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}
body[data-view="campaigns"] .global-range{display:none!important}
.campaigns-page .cp-subsidy .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cp-stats .tm-stat.is-good b{color:var(--green)}
.cp-stats .tm-stat.is-warn b{color:var(--amber)}
.cp-links th[scope="row"]{min-width:15rem}
.cp-links td{vertical-align:top}
.cp-links .mix-cell-sub{display:block;margin-top:2px}
.cp-cut{font-weight:600;white-space:nowrap}
.cp-cut.is-warn{color:var(--amber)}
.cp-cut.is-good{color:var(--green);font-weight:500}
.cp-cut.is-muted{color:var(--text-3);font-weight:500}
.campaigns-page #tmallPriceSlot>.tm-price{margin-top:0}
.cp-links td[data-label="上线"],.cp-links td[data-label="下线"],.cp-links td[data-label="活动价"],.cp-links td[data-label="近 7 天推广"],.cp-links thead th{white-space:nowrap}
.cp-links td[data-label="下线"] .mix-cell-sub,.cp-links td[data-label="降价"] .mix-cell-sub{white-space:normal;max-width:12rem}

/* ===== 我的账号（2026-11-14）：资料 + 改密码两张卡并排 ===== */
.my-account{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.my-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:18px}
.my-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.my-card-head h2{font-size:16px;font-weight:600;margin:0}
.my-card .adm-kv{grid-template-columns:1fr;gap:10px}
.adm-panel .my-account{margin:2px 0}
@media (max-width:860px){.my-account{grid-template-columns:1fr}}

/* 数据采集：两个页签（2026-11-14） */
.collect-tabs{margin-bottom:12px}
.collect-bar{display:flex;justify-content:flex-end;margin:-4px 0 10px}
/* 活动报名 · 按店（v2-233，2026-11-14）：各店对比表点一行看这家店；每天百亿金额占比 */
.cp-head-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.cp-shop-table .cp-shop-btn{all:unset;cursor:pointer;display:inline-flex;border-radius:6px}
.cp-shop-table .cp-shop-btn:focus-visible{box-shadow:var(--focus-ring)}
.cp-shop-table tbody tr{cursor:pointer}
.cp-shop-table tbody tr.is-current>*{background:var(--accent-soft,rgba(59,91,219,.07))}
.cp-shop-table tbody tr.is-current th .shop-name-with-logo{font-weight:650}
.cp-shop-table td.v2-num strong{display:block}
.cp-shop-table td.v2-num small{display:block;color:var(--text-3);font-size:var(--fs-12);font-weight:400;white-space:nowrap}
.cp-shop{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.cp-shop-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}
.cp-shop-head h3{margin:0;font-size:var(--fs-16)}
.cp-shop-head small{color:var(--text-3);font-size:var(--fs-12)}
.cp-stats .tm-stat>small+b+small{color:var(--text-3)}
.cp-days{display:flex;align-items:flex-end;gap:3px;height:96px;margin:4px 0 2px;padding-bottom:16px;position:relative}
.cp-day{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.cp-day-bar{width:100%;max-width:22px;background:var(--surface-sunken,#eef1f6);border-radius:3px 3px 0 0;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;min-height:2px}
.cp-day-bar i{display:block;width:100%;background:var(--accent)}
.cp-day span{position:absolute;bottom:-16px;font-size:10px;color:var(--text-3);font-variant-numeric:tabular-nums}
.cp-days-legend i{background:var(--surface-sunken,#eef1f6)}
.cp-days-legend i.is-sub{background:var(--accent)}
@media (max-width:620px){
  .cp-day span{display:none}
  .cp-day:nth-child(5n+1) span{display:block}
  .cp-head-tools{justify-content:flex-start}
  .cp-subsidy .panel-head{flex-wrap:wrap}
}
.cp-links td[data-label^="近 "]{white-space:nowrap}
.cp-links th[scope="row"]{min-width:13rem}

/* 首页数据完整性：扫码中 / 刚登录正在补采（2026-11-14） */
.cov-fix.cov-run{color:var(--blue);font-weight:500}
.cov-fix.cov-run::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:6px;vertical-align:1px;animation:cov-pulse 1.4s ease-in-out infinite}
@keyframes cov-pulse{0%,100%{opacity:1}50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.cov-fix.cov-run::before{animation:none}}

/* 扫码窗口：四步进度条、说明收起、结束画面（2026-11-14） */
.pdd-login-stepper{display:flex;gap:6px;list-style:none;margin:0 0 10px;padding:0;counter-reset:none}
.pdd-login-stepper li{flex:1;display:flex;align-items:center;gap:6px;min-width:0;padding:6px 8px;border-radius:6px;background:var(--surface-sunken);color:var(--text-3);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdd-login-stepper li b{flex:none;width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;background:var(--border);color:var(--text-2)}
.pdd-login-stepper li[aria-current="step"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.pdd-login-stepper li[aria-current="step"] b{background:var(--accent);color:#fff}
.pdd-login-stepper li.is-done{color:var(--green)}
.pdd-login-stepper li.is-done b{background:var(--green);color:#fff;font-size:0}
.pdd-login-stepper li.is-done b::after{content:"✓";font-size:11px}
.pdd-login-wait .loading-indicator{margin-right:8px;vertical-align:-2px}
.pdd-login-help{margin-top:10px;font-size:13px;color:var(--text-2)}
.pdd-login-help summary{cursor:pointer;color:var(--accent);font-weight:500;padding:4px 0}
.pdd-login-end strong{display:block;font-size:18px;margin-bottom:6px}
.pdd-login-end.is-good strong{color:var(--green)}
.pdd-login-end.is-bad strong{color:var(--red)}
.pdd-login-end small{display:block;color:var(--text-2);margin-bottom:12px}
@media (max-width:620px){.pdd-login-stepper li{flex-direction:column;gap:2px;font-size:11px;padding:5px 2px;text-align:center}}

/* 数据采集：每家店的登录账号（2026-11-14） */
.sc-vault{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);font-size:13px}
.sc-vault-label{color:var(--text-3);min-width:4.5em}
.sc-vault-val{flex:1;min-width:0;color:var(--text)}
.sc-vault-val.is-empty{color:var(--text-3)}
.shop-vault-form{display:flex;flex-direction:column;gap:14px}
/* 2026-11-14 宽表格左右滑动提示：边缘渐隐 + 圆形箭头，滑到头隐藏 */
.sp-scroll{position:relative}
.sp-scroll::before,.sp-scroll::after{content:"";position:absolute;top:0;bottom:0;width:40px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:3}
.sp-scroll::before{left:var(--sp-left,4.5rem);background:linear-gradient(to right,rgba(255,255,255,.95),rgba(255,255,255,0))}
.sp-scroll::after{right:0;background:linear-gradient(to left,rgba(255,255,255,.95),rgba(255,255,255,0))}
.sp-scroll.can-left::before,.sp-scroll.can-right::after{opacity:1}
.sp-scroll-btn{position:absolute;top:44px;width:32px;height:32px;border-radius:50%;border:1px solid var(--v2-line,#e1e7ee);background:#fff;color:var(--v2-accent,#1f5f99);font-size:22px;line-height:28px;text-align:center;box-shadow:0 2px 8px rgba(19,38,61,.14);cursor:pointer;z-index:4;display:none;padding:0}
.sp-scroll-btn.is-right{right:6px}.sp-scroll-btn.is-left{left:calc(var(--sp-left,4.5rem) + 6px)}
.sp-scroll.can-right .sp-scroll-btn.is-right,.sp-scroll.can-left .sp-scroll-btn.is-left{display:block}
.sp-scroll-btn:hover{background:var(--v2-accent,#1f5f99);color:#fff}
/* 2026-11-14 云商品类：左表右环形图（采购金额构成）；窄屏上下排 */
:root{--hik-cat-c1:#1f5f99;--hik-cat-c2:#e0a100;--hik-cat-c3:#3aa17e;--hik-cat-c4:#7b61c9;--hik-cat-c5:#d0573f;--hik-cat-c6:#c4ccd6}
.hik-cat-grid{display:grid;grid-template-columns:minmax(0,auto) minmax(260px,1fr);gap:24px;align-items:center}
.hik-cat-pie{display:flex;align-items:center;gap:24px;margin:0;justify-content:center;flex-wrap:wrap}
.hik-cat-donut{position:relative;width:168px;height:168px;border-radius:50%;flex:none}
.hik-cat-donut span{position:absolute;inset:28px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.hik-cat-donut small{font-size:var(--fs-12);color:var(--text-3)}
.hik-cat-donut strong{font-size:var(--fs-15,15px)}
.hik-cat-legend{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:var(--fs-13)}
.hik-cat-legend li{display:grid;grid-template-columns:12px auto auto;gap:8px;align-items:center}
.hik-cat-legend strong{text-align:right;font-weight:600}
.hik-cat-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
.hik-cat-dot.is-c1{background:var(--hik-cat-c1)}.hik-cat-dot.is-c2{background:var(--hik-cat-c2)}.hik-cat-dot.is-c3{background:var(--hik-cat-c3)}.hik-cat-dot.is-c4{background:var(--hik-cat-c4)}.hik-cat-dot.is-c5{background:var(--hik-cat-c5)}.hik-cat-dot.is-c6{background:var(--hik-cat-c6)}
@media(max-width:860px){.hik-cat-grid{grid-template-columns:minmax(0,1fr)}.hik-cat-pie{justify-content:flex-start}}
