:root{
  --red:#c7000b;
  --red2:#a90000;
  --ink:#0f172a;
  --muted:#667085;
  --line:#111827;
  --hair:#d8dee8;
  --paper:#fff;
  --risk-bg:#f8dce2;
  --risk:#b00020;
  --dark:#111827;
  --good-bg:#e4f3ea;
  --good:#087443;
  --surface:rgba(255,255,255,.88);
  --page:1460px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  min-height:100vh;
  background:
    radial-gradient(circle at 0% 8%, rgba(199,0,11,.04), transparent 30%),
    radial-gradient(circle at 100% 0%, rgba(15,23,42,.055), transparent 30%),
    linear-gradient(180deg,#f8fafc,#edf2f7);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  padding:22px 18px 52px;
}
.app{max-width:var(--page);margin:0 auto}
.top-statusbar{
  width:var(--page);
  margin:0 auto 16px;
  min-height:58px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:9px 12px 9px 18px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(213,219,227,.88);
  box-shadow:0 16px 40px rgba(17,24,39,.075);
  backdrop-filter:blur(18px);
}
.brand-block h1{
  margin:0;
  font-size:27px;
  line-height:1;
  font-weight:1000;
  letter-spacing:-.055em;
}
.status-actions{
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
}
.mini-stat{
  width:78px;
  height:38px;
  background:#fff;
  border:1px solid rgba(213,219,227,.95);
  padding:5px 9px;
}
.mini-stat span{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
}
.mini-stat b{
  display:block;
  margin-top:3px;
  font-size:15px;
  line-height:1;
  font-weight:1000;
}
button{
  height:36px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  padding:0 14px;
  font-weight:950;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease, background .12s ease;
}
button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(17,24,39,.10)}
button:active{transform:translateY(0);box-shadow:none;filter:brightness(.96)}
.icon-action{
  height:38px;
  min-width:126px;
  border:1px solid rgba(213,219,227,.95);
  background:#fff;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 9px;
  cursor:pointer;
  box-shadow:none;
  color:var(--ink);
  text-align:left;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.icon-action:hover{
  transform:translateY(-1px);
  border-color:var(--red);
  box-shadow:0 12px 26px rgba(199,0,11,.10);
}
.icon-action:active{transform:translateY(0);box-shadow:none}
.icon-action input{display:none}
.action-icon{
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111827;
  color:#fff;
  font-size:12px;
  font-weight:1000;
  flex:0 0 auto;
}
.action-icon.red{background:linear-gradient(180deg,var(--red),var(--red2));font-size:14px}
.icon-action b{
  display:block;
  font-size:13px;
  font-weight:1000;
}
.icon-action em{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-style:normal;
  font-size:11px;
  font-weight:850;
  max-width:118px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.upload-action.loading .action-icon{animation:pulse .8s infinite alternate}
@keyframes pulse{from{opacity:.6}to{opacity:1}}
.hero{
  width:var(--page);
  margin:0 auto 16px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(213,219,227,.92);
  box-shadow:0 12px 28px rgba(17,24,39,.06);
  padding:13px;
}
.hero-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:11px;
}
.hero h2{
  margin:0;
  font-size:21px;
  font-weight:1000;
  letter-spacing:-.04em;
}
.hero-head p{
  margin:0;
  text-align:right;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
}
.hero-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.hero-card{
  background:#fff;
  color:var(--ink);
  border:1px solid #e3e8ef;
  padding:12px;
  min-height:118px;
  transition:transform .12s ease, box-shadow .12s ease;
}
.hero-card:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(17,24,39,.08)}
.hero-card.danger{box-shadow:inset 4px 0 0 var(--red)}
.hero-card.good{box-shadow:inset 4px 0 0 var(--good)}
.hero-card-top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.hero-card-top b{font-size:17px;font-weight:1000}
.hero-card-top span{
  color:var(--red);
  font-size:12px;
  font-weight:1000;
}
.hero-card.good .hero-card-top span{color:var(--good)}
.hero-rate{
  margin-top:9px;
  font-size:35px;
  line-height:1;
  font-weight:1000;
  letter-spacing:-.06em;
}
.hero-sub{
  margin-top:7px;
  color:#667085;
  font-size:12px;
  font-weight:900;
}
.hero-action{
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid #edf0f4;
  color:#111827;
  font-size:12px;
  line-height:1.32;
  font-weight:950;
}
.hero-empty{
  grid-column:1/-1;
  color:var(--muted);
  font-weight:900;
}
.cards{display:grid;gap:16px}
.card{
  width:var(--page);
  margin:0 auto;
  background:var(--paper);
  border:1px solid rgba(213,219,227,.96);
  box-shadow:0 18px 42px rgba(17,24,39,.10);
}
.inner{padding:24px 26px 22px}
.card-top{
  border-bottom:4px solid var(--red);
  padding-bottom:15px;
  margin-bottom:14px;
}
.card h2{
  margin:0;
  font-size:30px;
  line-height:1.1;
  font-weight:1000;
  letter-spacing:-.04em;
  color:var(--ink);
}
.sub{
  margin-top:6px;
  color:var(--muted);
  font-size:14px;
  line-height:1.25;
  font-weight:900;
}
.card-status{
  height:70px;
  background:linear-gradient(180deg,var(--red),var(--red2));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:8px;
}
.card-status .status-title{
  font-size:23px;
  font-weight:1000;
  line-height:1.08;
}
.summary{
  display:grid;
  grid-template-columns:1fr 1fr 1.08fr;
  gap:10px;
  margin-bottom:15px;
}
.box{
  border:2px solid var(--red);
  background:linear-gradient(180deg,#fff7f8,#ffe8ec);
  min-height:104px;
  padding:14px 16px;
  text-align:center;
}
.box.dark{border-color:var(--dark);background:var(--dark);color:#fff}
.box b{
  display:block;
  color:var(--muted);
  font-size:14px;
  font-weight:1000;
  margin-bottom:10px;
}
.box.dark b{color:#d5dce8}
.box strong{
  display:block;
  color:var(--red);
  font-size:28px;
  line-height:1.2;
  font-weight:1000;
  letter-spacing:-.03em;
}
.box.dark strong{color:#fff;font-size:26px}
.box span{
  display:block;
  color:var(--muted);
  margin-top:6px;
  font-size:13px;
  font-weight:850;
}
.box-meta{
  margin-top:8px;
  border-top:1px solid rgba(199,0,11,.15);
  padding-top:7px;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:4px 6px;
}
.meta-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1px;
}
.meta-label{
  font-size:11px;
  font-weight:950;
  color:var(--muted);
  letter-spacing:.02em;
}
.meta-num{
  font-size:18px;
  font-weight:1000;
  color:var(--ink);
  line-height:1.2;
}
.meta-num.risk{color:var(--risk)}
.meta-num.good{color:var(--good)}
.meta-remain{font-size:22px;color:var(--red)}
.box.dark .box-meta{border-top-color:rgba(255,255,255,.2)}
.box.dark .meta-label{color:#d5dce8}
.box.dark .meta-num{color:#fff}
.box.dark span{color:#d5dce8}
table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
th,td{
  border:1px solid var(--line);
  text-align:center;
  vertical-align:middle;
  padding:10px 6px;
  font-size:15px;
  line-height:1.15;
  font-weight:900;
  word-break:break-word;
}
th{background:#eef1f5;font-size:13px;font-weight:1000}
th.hot{background:linear-gradient(180deg,var(--red),var(--red2));color:#fff}
th.group{background:#fff;color:var(--red);font-size:14px}
td.left,th.left{text-align:left;padding-left:12px}
td.item{font-weight:1000;font-size:16px}
.risk{background:var(--risk-bg);color:var(--risk);font-weight:1000}
.good{background:var(--good-bg);color:var(--good);font-weight:1000}
.warn{background:#fdf1d8;color:#b54708;font-weight:1000}
/* SO/ST 各产业卡达成率色阶加深（高绿/中黄/低红，底色饱和对比明显）*/
.stso-card td.risk{background:#ffd3db;color:#a4001e}
.stso-card td.warn{background:#ffe9b3;color:#8a4b08}
.stso-card td.good{background:#c9f2d6;color:#03543f}
.must{
  margin-top:15px;
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  border:2px solid var(--line);
  border-radius:4px;
  overflow:hidden;
}
.must b{
  background:var(--dark);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  font-weight:1000;
  letter-spacing:.04em;
}
.must div{
  padding:13px 16px;
  font-size:21px;
  font-weight:1000;
  line-height:1.25;
}
.must span{color:var(--red)}
.branch-section{
  margin-top:16px;
  border:2px solid var(--line);
  border-radius:4px;
  overflow:hidden;
}
.branch-head{
  background:var(--dark);
  color:#fff;
  font-size:14px;
  font-weight:1000;
  padding:10px 16px;
  letter-spacing:.04em;
}
.branch-table{width:100%;border-collapse:collapse;table-layout:fixed}
.branch-table th,.branch-table td{
  border:1px solid var(--line);
  text-align:center;
  padding:8px 6px;
  font-size:14px;
  font-weight:900;
  line-height:1.15;
}
.branch-table th{background:#eef1f5;font-size:12px;font-weight:1000}
.branch-table th.left,.branch-table td.left{text-align:left;padding-left:10px}
.branch-table td.item{font-weight:1000;font-size:15px}
.branch-table td.gap-cell{color:var(--risk);font-weight:1000}
.branch-count{
  display:inline-block;
  margin-left:6px;
  font-size:11px;
  font-weight:900;
  color:var(--muted);
  vertical-align:middle;
}
.branch-name-col{width:20%}
.branch-small-col{width:13.33%}
.must-today{padding:10px 14px!important;font-size:14px!important}
.today-grid{display:flex;gap:16px}
.today-section{flex:1;min-width:0}
.today-section-label{
  display:block;
  font-size:13px;
  font-weight:1000;
  color:var(--muted);
  margin-bottom:4px;
}
.today-items{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:4px}
.today-item{
  font-size:14px;
  font-weight:1000;
  color:var(--ink);
  white-space:nowrap;
}
.today-item em{
  font-style:normal;
  color:var(--red);
  font-weight:1000;
}
.today-total{
  display:block;
  font-size:12px;
  font-weight:900;
  color:var(--muted);
}
.today-total strong{
  font-size:16px;
  font-weight:1000;
  color:var(--dark);
}
.today-empty{color:var(--muted);font-size:14px}
.foot{
  margin-top:9px;
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:10px;
  font-weight:760;
}
.missing{
  margin-top:8px;
  color:#9a5a00;
  font-size:12px;
  font-weight:800;
}
.copy-panel{
  width:var(--page);
  margin:0 auto 16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 168px;
  gap:12px;
  align-items:stretch;
}
.copy-panel textarea{
  width:100%;
  min-height:86px;
  resize:vertical;
  border:1px solid rgba(213,219,227,.96);
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 24px rgba(17,24,39,.045);
  padding:10px 12px;
  font-size:16px;
  line-height:1.52;
  font-weight:800;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  cursor:text;
  transition:border-color .12s ease, box-shadow .12s ease, background .12s ease;
}
.copy-panel textarea:focus{
  outline:none;
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(199,0,11,.08), 0 10px 24px rgba(17,24,39,.045);
}
.copy-actions{
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:10px;
}
.copy-btn{
  width:100%;
  height:auto;
  min-height:38px;
  font-size:15px;
}
.empty-card .inner{font-weight:900;color:var(--muted)}
.modal.hidden{display:none}
.modal{
  position:fixed;
  inset:0;
  z-index:9999;
}
.modal-mask{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.36);
  backdrop-filter:blur(10px);
}
.modal-card{
  position:relative;
  width:min(1040px,calc(100vw - 56px));
  margin:9vh auto 0;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(213,219,227,.96);
  box-shadow:0 28px 80px rgba(15,23,42,.28);
  padding:18px;
  overflow:hidden;
}
.modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.modal-head h2{
  margin:0;
  font-size:24px;
  font-weight:1000;
  letter-spacing:-.04em;
}
.modal-head p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:13px;
  font-weight:850;
}
.close-btn{
  min-width:76px;
}
.target-editor{display:grid;gap:8px}
.target-row{
  display:grid;
  grid-template-columns:86px repeat(4,minmax(0,1fr));
  gap:8px;
  align-items:center;
}
.target-row.target-head{
  color:var(--muted);
  font-size:12px;
  font-weight:950;
}
.row-name{font-weight:1000;color:var(--red);font-size:15px}
.target-row input{
  min-width:0;
  width:100%;
  height:38px;
  border:1px solid var(--hair);
  padding:0 10px;
  font-size:14px;
  font-weight:900;
  background:#fff;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.target-row input:focus{
  outline:none;
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(199,0,11,.08);
}

.report-group{display:block}
.sheet-bar{
  display:flex;
  gap:6px;
  margin:0 auto;
  padding:0 0 14px;
  width:var(--page);
  flex-wrap:wrap;
  /* 生意计划这一排页签按钮：滚动查看时锁死置顶（渠道条紧贴其下，高度由 app.js --sheetbar-h 量测） */
  position:sticky;
  top:0;
  z-index:9;
  background:#fff;
  border-bottom:1px solid #eaedf2;
}
.sheet-btn{
  border:1px solid #d9dee7;
  background:#fff;
  color:var(--ink);
  font-size:14px;
  font-weight:900;
  padding:9px 22px;
  cursor:pointer;
  font-family:inherit;
  border-radius:0;
  transition:all .12s;
}
.sheet-btn:hover{border-color:var(--red);color:var(--red)}
.sheet-btn.active{
  background:linear-gradient(180deg,var(--red),var(--red2));
  border-color:var(--red);
  color:#fff;
  box-shadow:0 4px 10px rgba(199,0,11,.22);
}
.section-label{
  margin:16px 0 8px;
  padding:8px 10px;
  background:#f8fafc;
  border-left:4px solid var(--red);
  color:var(--ink);
  font-size:14px;
  font-weight:1000;
}
.psi-customer-card{margin-bottom:16px}
.psi-customer-card .store-top{border-bottom-color:var(--red)}
/* 卡片左上角：仓库快捷切换（点一下直接跳到该仓卡片，免滚动） */
.psi-card-top{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:-4px 0 10px}
.psi-dim-switch{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.psi-dim-btn{
  font-size:12px!important;font-weight:900;color:#667085;background:#f4f5f7!important;
  border:1px solid #e4e7ec!important;border-radius:6px!important;padding:4px 12px!important;
  line-height:1.25!important;cursor:pointer;letter-spacing:.2px;box-shadow:none!important;
}
.psi-dim-btn:hover{color:var(--red);background:#fff5f5!important;border-color:#fbd5d5!important}
.psi-dim-btn.active{color:#fff!important;background:var(--red)!important;border-color:var(--red)!important}
.psi-card-flash{outline:2px solid rgba(199,0,11,.35);outline-offset:2px;border-radius:10px}
/* 跳转落点：目标仓按钮短暂脉冲，明确「已切到这仓」 */
.psi-dim-btn.psi-jump-hit{animation:psiDimHit 2.2s ease-out 1}
@keyframes psiDimHit{
  0%{box-shadow:0 0 0 0 rgba(199,0,11,.45);border-color:var(--red)!important;color:var(--red)}
  30%{box-shadow:0 0 0 4px rgba(199,0,11,.16);border-color:var(--red)!important;color:var(--red)}
  100%{box-shadow:0 0 0 0 rgba(199,0,11,0);color:#667085}
}
/* 展开明细表表头可点排序 */
.cards .psi-var-panel .psi-var-table th[k]{cursor:pointer!important;user-select:none}
.cards .psi-var-panel .psi-var-table th[k]:hover{background:#eef1f5!important;color:var(--red)!important}
.psi-dim-row td{
  background:#f3f4f6;
  color:var(--red);
  font-size:13px;
  font-weight:1000;
  padding:7px 10px;
  border-bottom:1px solid #e4e7ec;
}
.psi-dim-row:not(:first-child) td{border-top:2px solid #fff}
.psi-dim-row td.dept-name{color:var(--red)}
td.dept-name{text-align:left;padding-left:8px;font-size:12.5px;font-weight:1000;color:#111827}
@media(max-width:1320px){
  .sheet-bar{width:100%}
}
.image-export{width:var(--page);margin:0 auto;background:#ffffff}
.store-card{
  width:var(--page);
  margin:0 auto 12px;
  background:#fff;
  border:1px solid rgba(213,219,227,.96);
  box-shadow:0 16px 36px rgba(17,24,39,.08);
}
.store-inner{padding:18px 20px 16px}
.store-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  border-bottom:4px solid var(--red);
  padding-bottom:12px;
  margin-bottom:12px;
}
.store-title h2{
  margin:0;
  font-size:27px;
  line-height:1.05;
  font-weight:1000;
  letter-spacing:-.05em;
}
.store-title .meta{
  margin-top:7px;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
}
.store-kpis{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.kpi{
  height:42px;
  display:flex;
  align-items:center;
  padding:0 13px;
  background:#fff;
  border:1px solid #d9dee7;
  color:var(--ink);
  font-size:15px;
  font-weight:1000;
}
.kpi.red{background:linear-gradient(180deg,var(--red),var(--red2));border-color:var(--red);color:#fff}
.kpi.dark{background:#111827;border-color:#111827;color:#fff}
.store-table th,.store-table td{padding:7px 4px;font-size:12.5px;line-height:1.12}
.store-table th{background:#f3f4f6;color:#111827;font-size:11.5px}
.store-table th.group{background:#fff;color:var(--red);font-size:14px}
.store-table th.hot{background:linear-gradient(180deg,var(--red),var(--red2));color:#fff}
.store-table th.name-head{background:#f8fafc;color:#334155}
.store-table td.store-name{text-align:left;padding-left:8px;font-size:12.5px;font-weight:1000;color:#111827}
.store-table td.store-type{color:#667085;font-size:11.5px;font-weight:950;background:#f8fafc}
.store-table td.guide{color:#334155;font-size:12.5px}
.total-row td{background:#f8fafc;font-weight:1000}
.total-row td:first-child{color:var(--red);font-size:13px}
.rate{color:#000;background:#f8fafc}
.today-cell{background:#fff7f8;color:#111827;font-size:13px!important;font-weight:1000}
.today-cell span{color:var(--red)}
.store-foot{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:var(--muted);font-size:10px;font-weight:760}
.empty-store-text{padding:18px;border:1px dashed #d8dee8;background:#f8fafc;color:var(--muted);font-weight:900}
@media(max-width:1320px){
  :root{--page:100%}
  .app{max-width:100%}
  .top-statusbar{width:100%}
  .card,.store-card{overflow-x:auto}
  .inner{min-width:1180px}
  .store-inner{min-width:1180px}
}
@media(max-width:900px){
  body{padding:14px 10px 38px}
  .top-statusbar{align-items:flex-start;flex-direction:column}
  .status-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .icon-action{width:100%}
  .hero-head{align-items:flex-start;flex-direction:column}
  .hero-head p{text-align:left}
  .hero-grid{grid-template-columns:1fr}
  .copy-panel{grid-template-columns:1fr}
  .copy-actions{grid-template-rows:none;grid-template-columns:1fr 1fr}
  .copy-btn{height:42px;min-height:42px}
  .target-row{grid-template-columns:78px repeat(2,minmax(0,1fr))}
}

.target-row input::-webkit-outer-spin-button,
.target-row input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.target-row input[type=number]{
  -moz-appearance:textfield;
}

.icon-action input{display:none}
.target-upload-action.loading .action-icon,.store-upload-action.loading .action-icon,.upload-action.loading .action-icon{animation:pulse .8s infinite alternate}

.copy-panel{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 168px!important;
  gap:12px!important;
  align-items:stretch!important;
}
.copy-actions{
  display:grid!important;
  grid-template-rows:1fr 1fr!important;
  gap:10px!important;
}
.copy-actions .copy-btn{
  width:100%!important;
  min-height:38px!important;
  height:auto!important;
  font-size:15px!important;
}


/* v2.3 门店明细视觉优化 */
.store-card{
  margin-top:12px!important;
  border-color:rgba(213,219,227,.96)!important;
}
.store-top{
  border-bottom:3px solid var(--red)!important;
  padding-bottom:10px!important;
  margin-bottom:10px!important;
}
.store-title h2{
  font-size:27px!important;
  letter-spacing:-.045em!important;
}
.store-title .meta{
  font-size:12px!important;
}
.store-table th,
.store-table td{
  font-size:13px!important;
  padding:7px 5px!important;
}
.store-table th{
  font-size:12.5px!important;
}
.store-table th.group{
  font-size:15px!important;
}
.store-table td.store-name{
  font-size:12.5px!important;
  line-height:1.16!important;
  word-break:break-all!important;
}
.store-table td.guide,
.store-table td.store-type{
  font-size:12px!important;
}
.store-table .today-cell{
  white-space:nowrap!important;
  font-size:13px!important;
  line-height:1!important;
  background:#fff7f8!important;
  color:#111827!important;
}
.store-table .today-cell span{
  color:var(--red)!important;
  font-size:15px!important;
  font-weight:1000!important;
}
.store-kpis .kpi{
  height:38px!important;
  font-size:14px!important;
}


/* v2.4 强化版式修复 */
.copy-panel .copy-btn,
.copy-actions .copy-btn{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
  font-weight:1000!important;
}

/* 门店明细：列宽和表头重新收敛 */
.store-table{
  table-layout:fixed!important;
}
.store-table col.store-name-col{width:16%!important}
.store-table col.store-type-col{width:4.2%!important}
.store-table col.store-guide-col{width:5.2%!important}
.store-table col.store-small-col{width:5.6%!important}
.store-table col.store-industry-col{width:4.7%!important}
.store-table col.store-today-col{width:10.4%!important}

.store-table th,
.store-table td{
  padding:7px 5px!important;
  font-size:13px!important;
  line-height:1.14!important;
}
.store-table th{
  font-size:13px!important;
  font-weight:1000!important;
  background:#f4f6f9!important;
  color:#0f172a!important;
}
.store-table th.group{
  background:#fff!important;
  color:var(--red)!important;
  font-size:16px!important;
  font-weight:1000!important;
  border-bottom:2px solid var(--line)!important;
}
.store-table th.hot{
  background:linear-gradient(180deg,var(--red),var(--red2))!important;
  color:#fff!important;
}
.store-table th.name-head{
  background:#f8fafc!important;
  color:#334155!important;
  font-size:13px!important;
}
.store-table td.store-name{
  font-size:13px!important;
  line-height:1.16!important;
  font-weight:1000!important;
  word-break:break-all!important;
}
.store-table td.store-type,
.store-table td.guide{
  font-size:12px!important;
  line-height:1.1!important;
}
.store-table td.store-type{
  color:#64748b!important;
  background:#f8fafc!important;
}
.store-table .today-cell{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:1000!important;
  background:#fff7f8!important;
}
.store-table .today-cell span{
  color:var(--red)!important;
  font-size:16px!important;
  font-weight:1000!important;
}
.store-kpis .kpi{
  height:38px!important;
  font-size:14px!important;
}

/* 普通页面里的门店卡更像一个下级模块 */
.store-card{
  border-top:0!important;
}
.store-top{
  background:#fff!important;
}
.store-title h2{
  font-size:28px!important;
}


/* v2.5 门店达成明细最终结构修复 */
.store-title h2{
  font-size:28px!important;
}
.store-table col.store-name-col{width:18%!important}
.store-table col.store-guide-col{width:5.5%!important}
.store-table col.store-small-col{width:5.5%!important}
.store-table col.store-industry-col{width:4.8%!important}
.store-table col.store-today-col{width:5.2%!important}

.store-table th,
.store-table td{
  font-size:13px!important;
  padding:7px 5px!important;
  line-height:1.14!important;
}
.store-table th{
  font-size:13px!important;
  background:#f4f6f9!important;
  color:#0f172a!important;
  font-weight:1000!important;
}
.store-table th.group{
  font-size:16px!important;
  background:#fff!important;
  color:var(--red)!important;
  border-bottom:2px solid var(--line)!important;
}
.store-table th.hot{
  background:linear-gradient(180deg,var(--red),var(--red2))!important;
  color:#fff!important;
}
.store-table th.name-head{
  background:#f8fafc!important;
  color:#334155!important;
}
.store-table td.store-name{
  font-size:13px!important;
  line-height:1.16!important;
  word-break:break-all!important;
}
.store-table td.guide{
  font-size:12px!important;
  line-height:1.1!important;
}
.store-table td.store-type,
.store-table th.store-type-col{
  display:none!important;
}
.store-table .today-cell{
  white-space:nowrap!important;
  background:#fff7f8!important;
  color:#111827!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:1000!important;
}
.store-table .today-cell span{
  color:var(--red)!important;
  font-size:16px!important;
  font-weight:1000!important;
}
.copy-panel .copy-btn,
.copy-actions .copy-btn{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
}


/* v2.6 图片导出区域：复制图片时直接截取这个区域，必须和页面预览一致 */
.image-export{
  background:#fff!important;
}
.report-group{
  display:block!important;
}


/* v2.7 客户筛选胶囊 */
.customer-filter{
  width:var(--page);
  margin:0 auto 14px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(213,219,227,.92);
  box-shadow:0 8px 20px rgba(17,24,39,.045);
}
.filter-label{
  color:#667085;
  font-size:12px;
  font-weight:1000;
  white-space:nowrap;
}
.filter-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.filter-pill{
  height:30px;
  min-width:58px;
  padding:0 14px;
  border:1px solid #d8dee8;
  background:#fff;
  color:#0f172a;
  font-size:13px;
  font-weight:1000;
  cursor:pointer;
  transition:background .12s ease,color .12s ease,border-color .12s ease,transform .12s ease;
}
.filter-pill:hover{
  transform:translateY(-1px);
  border-color:var(--red);
}
.filter-pill.active{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}

/* v2.7 表格行高统一 */
.card table tr{
  height:42px;
}
.card table th,
.card table td{
  height:42px;
}

.store-table tr{
  height:44px!important;
}
.store-table th,
.store-table td{
  height:44px!important;
  vertical-align:middle!important;
}
.store-table .total-row{
  height:42px!important;
}
.store-table .store-name{
  padding-top:0!important;
  padding-bottom:0!important;
}
.store-name-text{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.16;
  max-height:2.32em;
  word-break:break-all;
}
.store-table .today-cell{
  white-space:nowrap!important;
}
.image-export{
  background:#fff!important;
}

/* 小屏仍允许横向滚动，避免压扁 */
@media(max-width:1320px){
  .customer-filter{width:100%}
}


/* v2.8：不再显示客户筛选胶囊 */
.customer-filter{display:none!important}

/* 今日总览客户卡可点击，不改变原布局 */
.hero-card{
  cursor:pointer;
}
.hero-card.selected{
  box-shadow:inset 0 0 0 2px rgba(199,0,11,.28);
}

/* v2.8：客户达成 + 门店达成明细合并成同一张白色大卡 */
.image-export{
  width:var(--page)!important;
  background:#fff!important;
}
.report-group .card{
  margin-bottom:0!important;
}
.store-inline{
  margin-top:16px;
  padding-top:14px;
  border-top:8px solid #eef2f7;
  background:#fff;
}
.store-inline-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-bottom:10px;
  border-bottom:3px solid var(--red);
  margin-bottom:10px;
}
.store-meta{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
}
.store-kpis{
  display:flex;
  gap:8px;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.store-kpis .kpi{
  height:36px!important;
  display:flex;
  align-items:center;
  padding:0 12px;
  background:#fff;
  border:1px solid #d9dee7;
  color:#111827;
  font-size:14px!important;
  font-weight:1000;
}
.store-kpis .kpi.red{
  background:linear-gradient(180deg,var(--red),var(--red2));
  border-color:var(--red);
  color:#fff;
}
.store-kpis .kpi.dark{
  background:#111827;
  border-color:#111827;
  color:#fff;
}

/* 门店表固定列宽，按当前网页通报卡实际尺寸设计 */
.store-table{
  table-layout:fixed!important;
  width:100%!important;
}
.store-table col.store-name-col{width:18%!important}
.store-table col.store-guide-col{width:5.5%!important}
.store-table col.store-small-col{width:5.5%!important}
.store-table col.store-industry-col{width:4.8%!important}
.store-table col.store-today-col{width:5.2%!important}

.store-table tr{
  height:42px!important;
}
.store-table th,
.store-table td{
  height:42px!important;
  padding:6px 5px!important;
  font-size:13px!important;
  line-height:1.14!important;
  vertical-align:middle!important;
}
.store-table th{
  font-size:13px!important;
  background:#f4f6f9!important;
  color:#0f172a!important;
  font-weight:1000!important;
}
.store-table th.group{
  font-size:16px!important;
  background:#fff!important;
  color:var(--red)!important;
  border-bottom:2px solid var(--line)!important;
}
.store-table th.hot{
  background:linear-gradient(180deg,var(--red),var(--red2))!important;
  color:#fff!important;
}
.store-table th.name-head{
  background:#f8fafc!important;
  color:#334155!important;
}
.store-table td.store-name{
  padding-top:0!important;
  padding-bottom:0!important;
  font-size:13px!important;
  line-height:1.16!important;
  word-break:break-all!important;
}
.store-name-text{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.16;
  max-height:2.32em;
  word-break:break-all;
}
.store-table td.guide{
  font-size:12px!important;
  line-height:1.1!important;
}
.store-table .today-cell{
  white-space:nowrap!important;
  background:#fff7f8!important;
  color:#111827!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:1000!important;
}
.store-table .today-cell span{
  color:var(--red)!important;
  font-size:16px!important;
  font-weight:1000!important;
}
.store-foot{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:8px;
  color:var(--muted);
  font-size:10px;
  font-weight:760;
}
.empty-store-text{
  padding:14px;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
  border:1px dashed #d8dee8;
}
.copy-panel .copy-btn,
.copy-actions .copy-btn{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
}


/* v2.9 客户达成与门店表衔接：去掉突兀灰条，做同卡内嵌 */
.store-inline{
  margin-top:14px!important;
  padding-top:12px!important;
  border-top:1px solid rgba(31,41,55,.18)!important;
  background:#fff!important;
}
.store-inline-head{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:16px!important;
  padding:0 0 8px!important;
  margin:0 0 8px!important;
  border-bottom:2px solid var(--red)!important;
  background:#fff!important;
}
.store-bridge{
  flex:1 1 auto;
  min-height:1px;
}
.store-meta{
  display:none!important;
}

/* 门店表继续保持统一行高 */
.store-table tr{
  height:42px!important;
}
.store-table th,
.store-table td{
  height:42px!important;
}

/* v2.9 统一系统反馈：状态栏风格 Toast */
.toast-host{
  position:fixed;
  top:22px;
  right:22px;
  z-index:99999;
  display:grid;
  gap:10px;
  pointer-events:none;
}
.toast-item{
  min-width:180px;
  max-width:360px;
  min-height:46px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(213,219,227,.96);
  box-shadow:0 18px 42px rgba(17,24,39,.18);
  backdrop-filter:blur(18px);
  color:#0f172a;
  transform:translateY(-8px);
  opacity:0;
  transition:opacity .16s ease, transform .16s ease;
}
.toast-item.show{
  opacity:1;
  transform:translateY(0);
}
.toast-item b{
  font-size:13px;
  font-weight:1000;
  line-height:1.25;
}
.toast-dot{
  width:10px;
  height:10px;
  background:#111827;
  flex:0 0 auto;
}
.toast-item.success .toast-dot{background:#087443}
.toast-item.error .toast-dot{background:var(--red)}
.toast-item.info .toast-dot{background:#111827}

/* 复制按钮红色反馈统一 */
.copy-panel .copy-btn,
.copy-actions .copy-btn{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
}
.copy-panel .copy-btn.copied,
.copy-actions .copy-btn.copied{
  background:#087443!important;
  border-color:#087443!important;
}


/* v3.0：暂时移除复制图片，文案区回归单按钮稳定形态 */
.copy-panel{
  margin:8px auto 18px!important;
  grid-template-columns:minmax(0,1fr) 168px!important;
  gap:12px!important;
  align-items:stretch!important;
}
.copy-actions{
  display:block!important;
}
.copy-panel .copy-btn{
  min-height:74px!important;
  height:auto!important;
  width:100%!important;
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
  font-weight:1000!important;
}
.copy-panel .copy-btn.copied{
  background:#087443!important;
  border-color:#087443!important;
}

/* v3.0：客户卡与门店表的同卡衔接 */
.report-group{
  margin-bottom:18px!important;
}
.report-group .card{
  margin-bottom:0!important;
}
.image-export{
  background:#fff!important;
}
.store-inline{
  margin-top:12px!important;
  padding-top:10px!important;
  border-top:1px solid rgba(31,41,55,.16)!important;
  background:#fff!important;
}
.store-inline-head{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
  padding:0 0 7px!important;
  margin:0 0 7px!important;
  border-bottom:2px solid var(--red)!important;
  background:#fff!important;
}
.store-bridge{
  flex:1 1 auto!important;
  min-height:1px!important;
}
.store-kpis{
  display:flex!important;
  gap:8px!important;
  justify-content:flex-end!important;
  flex-wrap:wrap!important;
}
.store-kpis .kpi{
  height:34px!important;
  padding:0 11px!important;
  font-size:13px!important;
  font-weight:1000!important;
}
.store-foot{
  margin-top:7px!important;
}

/* v3.0：全局距离收紧 */
.cards{
  gap:12px!important;
}
.card .inner{
  padding-bottom:18px!important;
}
.foot{
  margin-top:8px!important;
}
.customer-filter,
.toast-host{
  display:none!important;
}

/* v3.0：表格行高统一，避免局部撑开 */
.card table tr,
.card table th,
.card table td{
  height:42px!important;
}
.store-table tr,
.store-table th,
.store-table td{
  height:42px!important;
}
.store-name-text{
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  line-height:1.16!important;
  max-height:2.32em!important;
}

/* v3.0：状态栏按钮反馈风格统一 */
.icon-action,
.file-action,
.upload-action{
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease!important;
}
.icon-action:active,
.file-action:active,
.upload-action:active{
  transform:translateY(0)!important;
  box-shadow:inset 0 0 0 999px rgba(15,23,42,.04)!important;
}
.icon-action.is-done,
.file-action.is-done,
.upload-action.is-done{
  border-color:#087443!important;
}
.icon-action.is-done .action-icon,
.file-action.is-done .action-icon,
.upload-action.is-done .action-icon{
  background:#087443!important;
}
.icon-action.is-error,
.file-action.is-error,
.upload-action.is-error{
  border-color:var(--red)!important;
}


/* v3.1 细节对齐与衔接收口 */
.report-group{
  margin-bottom:16px!important;
}
.report-group .card{
  box-shadow:0 12px 32px rgba(17,24,39,.08)!important;
}
.card .inner{
  padding:22px 24px 16px!important;
}
.card-top{
  margin-bottom:12px!important;
  padding-bottom:13px!important;
}
.summary{
  margin-bottom:13px!important;
}
.must{
  margin-top:13px!important;
}
.foot{
  margin-top:7px!important;
  padding-bottom:6px!important;
}

/* 门店部分：取消突兀大断层，变成同卡内部承接区 */
.store-inline{
  margin-top:8px!important;
  padding-top:8px!important;
  border-top:1px solid rgba(31,41,55,.14)!important;
  background:#fff!important;
}
.store-inline-head{
  min-height:34px!important;
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  padding:0!important;
  margin:0 0 6px!important;
  border-bottom:none!important;
  background:#fff!important;
}
.store-bridge{
  flex:1 1 auto!important;
  height:1px!important;
  background:linear-gradient(90deg, rgba(199,0,11,.72), rgba(199,0,11,.08))!important;
}
.store-kpis{
  display:flex!important;
  gap:7px!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
}
.store-kpis .kpi{
  height:32px!important;
  min-width:auto!important;
  padding:0 10px!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:1000!important;
}
.store-table{
  margin-top:0!important;
}
.store-table tr,
.store-table th,
.store-table td{
  height:41px!important;
}
.store-table th,
.store-table td{
  padding:5px 5px!important;
  vertical-align:middle!important;
}
.store-table th{
  font-size:13px!important;
}
.store-table th.group{
  font-size:16px!important;
}
.store-table .total-row td{
  background:#f8fafc!important;
}
.store-table td.store-name{
  padding-left:8px!important;
}
.store-name-text{
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  line-height:1.15!important;
  max-height:2.3em!important;
  word-break:break-all!important;
}
.store-table td.guide{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.store-table .today-cell{
  background:#fff7f8!important;
  color:var(--red)!important;
  font-size:16px!important;
  font-weight:1000!important;
}
.store-foot{
  margin-top:6px!important;
  line-height:1.2!important;
}

/* 文案区对齐 */
.copy-panel{
  margin:8px auto 16px!important;
}
.copy-panel textarea{
  min-height:72px!important;
}
.copy-panel .copy-btn{
  min-height:72px!important;
}

/* 顶部按钮内部反馈：成功/失败更接近上传按钮风格 */
.icon-action.is-done,
.file-action.is-done,
.upload-action.is-done,
.target-upload-action.is-done,
.store-upload-action.is-done{
  border-color:#087443!important;
  background:#fff!important;
}
.icon-action.is-error,
.file-action.is-error,
.upload-action.is-error,
.target-upload-action.is-error,
.store-upload-action.is-error{
  border-color:var(--red)!important;
  background:#fff7f8!important;
}


/* v3.2 复制文案模块重新设计 */
.copy-panel{
  width:var(--page)!important;
  margin:10px auto 18px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 156px!important;
  gap:12px!important;
  align-items:stretch!important;
  background:transparent!important;
  padding:0!important;
}
.copy-text-card{
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(213,219,227,.96)!important;
  box-shadow:0 10px 24px rgba(17,24,39,.045)!important;
}
.copy-text-head{
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:0 12px!important;
  border-bottom:1px solid rgba(213,219,227,.88)!important;
  background:#f8fafc!important;
}
.copy-text-head span{
  color:#0f172a!important;
  font-size:13px!important;
  font-weight:1000!important;
}
.copy-text-head em{
  color:#667085!important;
  font-size:11px!important;
  font-style:normal!important;
  font-weight:850!important;
}
.copy-panel textarea{
  width:100%!important;
  min-height:74px!important;
  resize:vertical!important;
  border:0!important;
  background:#fff!important;
  box-shadow:none!important;
  padding:10px 12px!important;
  font-size:16px!important;
  line-height:1.55!important;
  font-weight:850!important;
  color:#0f172a!important;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif!important;
  cursor:text!important;
}
.copy-panel textarea:focus{
  outline:none!important;
  box-shadow:inset 0 0 0 2px rgba(199,0,11,.12)!important;
}
.copy-panel .copy-btn{
  min-height:109px!important;
  height:auto!important;
  width:100%!important;
  background:linear-gradient(180deg,var(--red),var(--red2))!important;
  border:1px solid var(--red)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:1000!important;
  box-shadow:0 10px 24px rgba(199,0,11,.13)!important;
}
.copy-panel .copy-btn:hover{
  transform:translateY(-1px)!important;
  box-shadow:0 14px 30px rgba(199,0,11,.18)!important;
}
.copy-panel .copy-btn.copied{
  background:#087443!important;
  border-color:#087443!important;
  box-shadow:0 10px 24px rgba(8,116,67,.14)!important;
}

/* v3.2 清理复制图片/Toast 残留 */
.toast-host{display:none!important}
.copy-actions{display:contents!important}

/* v3.2 文案区移动端 */
@media(max-width:760px){
  .copy-panel{
    grid-template-columns:1fr!important;
  }
  .copy-panel .copy-btn{
    min-height:44px!important;
  }
}


/* v3.3 复制文案模块压缩，不占主视觉 */
.copy-panel.compact-copy,
.copy-panel{
  width:var(--page)!important;
  margin:6px auto 14px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 96px!important;
  gap:8px!important;
  align-items:stretch!important;
  background:transparent!important;
  padding:0!important;
  box-shadow:none!important;
  border:0!important;
}
.copy-text-card,
.copy-text-head{
  display:none!important;
}
.copy-panel textarea{
  width:100%!important;
  min-height:52px!important;
  max-height:78px!important;
  resize:vertical!important;
  border:1px solid rgba(213,219,227,.96)!important;
  background:#fff!important;
  box-shadow:0 6px 16px rgba(17,24,39,.035)!important;
  padding:8px 10px!important;
  font-size:14px!important;
  line-height:1.42!important;
  font-weight:850!important;
  color:#0f172a!important;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif!important;
}
.copy-panel textarea:focus{
  outline:none!important;
  border-color:var(--red)!important;
  box-shadow:0 0 0 2px rgba(199,0,11,.08)!important;
}
.copy-panel .copy-btn{
  min-height:52px!important;
  height:auto!important;
  width:96px!important;
  padding:0!important;
  background:linear-gradient(180deg,var(--red),var(--red2))!important;
  border:1px solid var(--red)!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:1000!important;
  box-shadow:0 6px 16px rgba(199,0,11,.12)!important;
}
.copy-panel .copy-btn.copied{
  background:#087443!important;
  border-color:#087443!important;
}
.copy-actions{display:contents!important}

/* v3.3 门店今日目标统一后的显示收紧 */
.store-table .today-cell{
  font-size:16px!important;
  font-weight:1000!important;
}


/* v3.4 定稿收尾：版本号、模板下载、登录 */
.app-version{
  display:inline-flex;
  align-items:center;
  height:22px;
  margin-left:8px;
  padding:0 7px;
  background:#111827;
  color:#fff;
  font-size:12px;
  font-weight:1000;
  letter-spacing:0;
  vertical-align:middle;
}
.template-download-action{
  text-decoration:none!important;
  color:inherit!important;
}
.template-download-action .action-icon{
  background:#111827!important;
}


/* v3.6 视觉比例收口版：只调视觉，不动业务逻辑 */

/* 1. 客户达成区整体降重，减少“海报感” */
.card .inner{
  padding:21px 24px 16px!important;
}
.card h2{
  font-size:32px!important;
  letter-spacing:-.05em!important;
}
.sub{
  font-size:14px!important;
  margin-top:7px!important;
}
.card-status{
  height:64px!important;
}
.status-title{
  font-size:21px!important;
}
.card-top{
  grid-template-columns:minmax(0,1fr) 248px!important;
  padding-bottom:12px!important;
  margin-bottom:12px!important;
  border-bottom-width:3px!important;
}
.summary{
  gap:11px!important;
  margin-bottom:12px!important;
}
.box{
  min-height:96px!important;
  padding:13px 15px!important;
}
.box b{
  font-size:13px!important;
  margin-bottom:8px!important;
}
.box strong{
  font-size:38px!important;
  letter-spacing:-.065em!important;
}
.box.dark strong{
  font-size:35px!important;
  letter-spacing:-.06em!important;
}
.box span{
  font-size:12.5px!important;
  margin-top:8px!important;
}

/* 2. 客户表轻微收紧，保持主表清晰 */
.card table:not(.store-table) th,
.card table:not(.store-table) td{
  font-size:14px!important;
  height:40px!important;
  padding:8px 6px!important;
}
.card table:not(.store-table) th.group{
  font-size:17px!important;
}
.card table:not(.store-table) td.item{
  font-size:15px!important;
}

/* 3. 今日目标条保持醒目但不压过下方门店 */
.must{
  margin-top:12px!important;
  grid-template-columns:126px minmax(0,1fr)!important;
}
.must b{
  font-size:17px!important;
}
.must div{
  padding:12px 15px!important;
  font-size:20px!important;
}
.foot{
  margin-top:7px!important;
  padding-bottom:4px!important;
}

/* 4. 客户卡与门店表衔接：删除红色渐变线，改轻灰分隔 */
.store-inline{
  margin-top:7px!important;
  padding-top:8px!important;
  border-top:1px solid rgba(31,41,55,.12)!important;
  background:#fff!important;
}
.store-inline-head{
  height:30px!important;
  min-height:30px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  padding:0!important;
  margin:0 0 6px!important;
  border-bottom:0!important;
  background:#fff!important;
}
.store-bridge{
  flex:1 1 auto!important;
  height:1px!important;
  background:rgba(31,41,55,.10)!important;
}
.store-kpis{
  gap:6px!important;
  flex-wrap:nowrap!important;
}
.store-kpis .kpi{
  height:30px!important;
  padding:0 10px!important;
  font-size:12.5px!important;
  line-height:1!important;
  box-shadow:none!important;
}
.store-kpis .kpi.red{
  background:linear-gradient(180deg,var(--red),var(--red2))!important;
  color:#fff!important;
}
.store-kpis .kpi.dark{
  background:#111827!important;
  color:#fff!important;
}

/* 5. 门店表：行高略增、普通内容减重、重点内容保留 */
.store-table{
  margin-top:0!important;
}
.store-table tr,
.store-table th,
.store-table td{
  height:44px!important;
}
.store-table th{
  font-size:12.5px!important;
  font-weight:1000!important;
  padding:6px 5px!important;
}
.store-table th.group{
  font-size:15.5px!important;
  font-weight:1000!important;
}
.store-table th.hot{
  font-weight:1000!important;
}
.store-table td{
  font-size:13px!important;
  font-weight:850!important;
  padding:6px 5px!important;
}
.store-table .total-row td{
  font-weight:1000!important;
}
.store-table td.store-name{
  font-size:12.5px!important;
  font-weight:900!important;
  line-height:1.18!important;
  padding-left:8px!important;
}
.store-name-text{
  line-height:1.18!important;
  max-height:2.36em!important;
}
.store-table td.guide{
  font-size:12px!important;
  font-weight:850!important;
}
.store-table .risk,
.store-table .good{
  font-weight:1000!important;
}
.store-table .today-cell{
  font-size:15px!important;
  font-weight:1000!important;
  background:#fff7f8!important;
}
.store-table .today-cell span{
  font-size:16px!important;
  font-weight:1000!important;
}
.store-foot{
  margin-top:6px!important;
  font-size:10px!important;
}

/* 6. 复制文案保持轻量，不抢主视觉 */
.copy-panel{
  margin:6px auto 14px!important;
  grid-template-columns:minmax(0,1fr) 92px!important;
  gap:8px!important;
}
.copy-panel textarea{
  min-height:50px!important;
  max-height:72px!important;
  font-size:14px!important;
  line-height:1.4!important;
  padding:8px 10px!important;
}
.copy-panel .copy-btn{
  width:92px!important;
  min-height:50px!important;
  font-size:14px!important;
  box-shadow:0 6px 14px rgba(199,0,11,.10)!important;
}

/* 7. 总体卡片阴影再轻一点，页面更干净 */
.report-group .card{
  box-shadow:0 10px 26px rgba(17,24,39,.07)!important;
}


/* v3.7 report navigation */
.report-tabs{
  display:flex;
  gap:8px;
  padding:0 22px 16px;
  margin-top:-4px;
}
.report-tabs a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:38px;
  padding:0 16px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.76);
  color:#0f172a;
  text-decoration:none;
  font-size:13px;
  font-weight:1000;
  border-radius:12px;
  box-shadow:0 10px 24px rgba(17,24,39,.06);
}
.report-tabs a.active{
  background:linear-gradient(180deg,#c7000b,#a90000);
  border-color:#c7000b;
  color:#fff;
}


/* v3.10：单页展示 + 状态栏小按钮 */
.report-tabs,.hero{display:none!important}
.app-version{display:none!important}
.version-badge{
  height:28px;
  min-width:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  border:1px solid rgba(213,219,227,.95);
  background:#fff;
  color:#667085;
  font-size:12px;
  font-weight:1000;
}
.top-statusbar{min-height:58px}
.status-actions{align-items:center}
.icon-action{height:38px;min-width:126px;padding:0 9px;gap:7px}
.action-icon{width:24px;height:24px;font-size:13px}
.action-icon.red{font-size:14px}
.icon-action b{font-size:12px;line-height:1;font-weight:1000}
.icon-action em{font-size:10px;max-width:80px;margin-top:2px}
.mini-stat{height:38px;width:78px;padding:5px 9px}
.mini-stat span{font-size:10px}
.mini-stat b{font-size:15px;margin-top:3px}
.all-customer-cards .report-group{margin-bottom:18px}
.embedded-report-section{
  width:var(--page);
  margin:18px auto 0;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(213,219,227,.88);
  box-shadow:0 16px 40px rgba(17,24,39,.06);
  overflow:auto;
}
.embedded-report-frame{
  display:block;
  width:100%;
  border:0;
  background:transparent;
}
.front-store-frame{height:720px}
.guide-report-frame{height:760px}
@media(max-width:760px){
  .top-statusbar{min-height:56px;align-items:flex-start}
  .status-actions{gap:6px;overflow:auto;justify-content:flex-start;padding-bottom:2px}
  .icon-action{min-width:112px}
  .icon-action em{display:none}
  .version-badge{height:30px;flex:0 0 auto}
  .embedded-report-section{width:100%;margin-top:12px}
  .front-store-frame{height:720px}
  .guide-report-frame{height:760px}
}

/* v3.11：恢复单页铺开，统一尺寸，状态栏收口 */
:root{--page:1460px}
.top-statusbar{
  min-height:54px!important;
  padding:8px 10px 8px 16px!important;
  align-items:center!important;
}
.brand-block{min-width:0;flex:1 1 auto}
.brand-line{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.brand-block h1{
  font-size:28px!important;
  white-space:nowrap;
}
.brand-meta{
  display:flex;
  align-items:center;
  gap:6px;
  color:#667085;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.brand-meta b{
  color:#0f172a;
  font-size:14px;
  font-weight:1000;
}
.brand-meta i{
  width:1px;
  height:16px;
  background:#d8dee8;
  margin:0 5px;
}
.status-actions{
  flex:0 0 auto!important;
  align-items:center!important;
  gap:6px!important;
}
.icon-action{
  height:30px!important;
  min-width:auto!important;
  padding:0 10px!important;
  gap:0!important;
  border-radius:6px!important;
}
.icon-action .action-icon{display:none!important}
.icon-action b{
  font-size:12px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.icon-action em{display:none!important}
.version-badge{
  height:30px!important;
  min-width:58px!important;
  order:99;
  border-radius:6px!important;
}
.hero,.report-tabs{display:none!important}
.all-customer-cards{gap:16px!important}
.embedded-report-section{
  width:var(--page)!important;
  margin:16px auto 0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.embedded-report-frame{
  display:block!important;
  width:var(--page)!important;
  border:0!important;
  background:transparent!important;
  overflow:hidden!important;
}
.front-store-frame{height:660px!important}
.guide-report-frame{height:760px!important}
@media(max-width:1320px){
  .embedded-report-section,.embedded-report-frame{width:100%!important}
}
@media(max-width:900px){
  .top-statusbar{align-items:flex-start!important;flex-direction:column!important}
  .brand-line{align-items:flex-start;flex-direction:column;gap:6px}
  .brand-meta{font-size:11px}
  .status-actions{width:100%;overflow:auto;flex-wrap:nowrap!important;padding-bottom:2px}
  .icon-action{flex:0 0 auto!important;height:30px!important}
  .version-badge{flex:0 0 auto!important}
}

/* v1.0：投入使用版，恢复上一版状态栏按钮、补齐通报铺开与移动端体验 */
:root{--page:1460px}
body{padding:20px 18px 52px!important}
.top-statusbar{
  width:var(--page)!important;
  min-height:60px!important;
  padding:9px 12px 9px 18px!important;
  align-items:center!important;
  gap:16px!important;
}
.brand-line{display:flex!important;align-items:center!important;gap:14px!important;min-width:0!important}
.brand-block h1{font-size:28px!important;line-height:1!important;white-space:nowrap!important}
.brand-meta{display:flex!important;align-items:center!important;gap:6px!important;color:#667085!important;font-size:12px!important;font-weight:950!important;white-space:nowrap!important}
.brand-meta b{color:#0f172a!important;font-size:14px!important;font-weight:1000!important}
.brand-meta i{width:1px!important;height:16px!important;background:#d8dee8!important;margin:0 5px!important}
.status-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex:0 0 auto!important}
.icon-action{
  height:38px!important;
  min-width:126px!important;
  padding:0 9px!important;
  gap:7px!important;
  border-radius:0!important;
  border:1px solid rgba(213,219,227,.95)!important;
  background:#fff!important;
  box-shadow:none!important;
}
.icon-action .action-icon{
  display:flex!important;
  width:24px!important;
  height:24px!important;
  font-size:12px!important;
  border-radius:0!important;
}
.icon-action .action-icon.red{font-size:14px!important}
.icon-action b{display:block!important;font-size:13px!important;line-height:1!important;font-weight:1000!important;white-space:nowrap!important}
.icon-action em{display:block!important;margin-top:3px!important;color:#667085!important;font-size:11px!important;max-width:118px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.version-badge{height:30px!important;min-width:56px!important;border-radius:0!important;order:99!important;background:#fff!important;color:#667085!important;font-size:12px!important;font-weight:1000!important}
.report-tabs,.hero{display:none!important}
.all-customer-cards{gap:16px!important}
.card,.copy-panel,.embedded-report-section,.embedded-report-frame{width:var(--page)!important}
.embedded-report-section{margin:16px auto 0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
.embedded-report-frame{display:block!important;border:0!important;background:transparent!important;overflow:hidden!important}
.front-store-frame{height:748px!important}
.guide-report-frame{height:790px!important}
.copy-panel textarea{border-radius:0!important}
.copy-panel .copy-btn{border-radius:0!important}
.card{box-shadow:0 12px 30px rgba(17,24,39,.075)!important}
.embedded-report-section + .embedded-report-section{margin-top:18px!important}
@media(max-width:1500px){
  :root{--page:100%}
  .app{max-width:100%!important}
  .top-statusbar,.card,.copy-panel,.embedded-report-section,.embedded-report-frame{width:100%!important}
}
@media(max-width:900px){
  body{padding:12px 8px 34px!important}
  .top-statusbar{align-items:flex-start!important;flex-direction:column!important;gap:9px!important;padding:10px!important}
  .brand-line{align-items:flex-start!important;flex-direction:column!important;gap:6px!important}
  .brand-block h1{font-size:22px!important;white-space:normal!important}
  .brand-meta{font-size:11px!important;gap:5px!important;flex-wrap:wrap!important;white-space:normal!important}
  .brand-meta b{font-size:12px!important}
  .status-actions{width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;justify-content:flex-start!important;flex-wrap:nowrap!important;padding-bottom:2px!important;gap:6px!important}
  .icon-action{height:34px!important;min-width:108px!important;flex:0 0 auto!important;padding:0 8px!important}
  .icon-action .action-icon{display:none!important}
  .icon-action b{font-size:12px!important}
  .icon-action em{display:none!important}
  .version-badge{height:34px!important;flex:0 0 auto!important}
  .card{overflow-x:auto!important}
  .inner{min-width:1180px!important}
  .copy-panel{grid-template-columns:minmax(0,1fr) 78px!important;gap:6px!important;margin:6px auto 12px!important}
  .copy-panel textarea{min-height:44px!important;font-size:13px!important}
  .copy-panel .copy-btn{width:78px!important;min-height:44px!important;font-size:13px!important}
  .embedded-report-section{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;margin-top:12px!important}
  .embedded-report-frame{width:1460px!important;max-width:none!important}
  .front-store-frame{height:748px!important}
  .guide-report-frame{height:790px!important}
}


/* v3.14：移动端登录与宽表体验修复 */
@media(max-width:900px){
  .embedded-report-section{
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
  }
  .embedded-report-frame{
    display:block!important;
    width:1460px!important;
    min-width:1460px!important;
  }
}


/* v3.15：手机端桌面原样缩小修复
   目标：主页面不再做移动端重排，手机浏览器按 1500px 画布整体缩小显示。
   登录页仍使用 login.html 内部响应式样式，不受这里影响。 */
@media(max-width:900px){
  :root{--page:1460px!important;}
  html,body{min-width:1500px!important;overflow-x:auto!important;}
  body{padding:20px 18px 52px!important;}
  .app{width:1460px!important;max-width:1460px!important;margin:0 auto!important;}
  .top-statusbar{width:1460px!important;min-height:60px!important;flex-direction:row!important;align-items:center!important;gap:16px!important;padding:9px 12px 9px 18px!important;}
  .brand-line{display:flex!important;align-items:center!important;flex-direction:row!important;gap:14px!important;}
  .brand-block h1{font-size:28px!important;white-space:nowrap!important;}
  .brand-meta{font-size:12px!important;white-space:nowrap!important;flex-wrap:nowrap!important;}
  .brand-meta b{font-size:14px!important;}
  .status-actions{width:auto!important;flex-wrap:nowrap!important;justify-content:flex-end!important;overflow:visible!important;gap:8px!important;padding-bottom:0!important;}
  .icon-action{height:38px!important;min-width:126px!important;flex:0 0 auto!important;padding:0 9px!important;}
  .icon-action .action-icon{display:flex!important;}
  .icon-action b{font-size:13px!important;}
  .icon-action em{display:block!important;}
  .version-badge{height:30px!important;flex:0 0 auto!important;}
  .card,.copy-panel,.embedded-report-section,.embedded-report-frame{width:1460px!important;max-width:none!important;}
  .card{overflow:visible!important;}
  .inner{min-width:0!important;}
  .copy-panel{grid-template-columns:minmax(0,1fr) 92px!important;gap:8px!important;margin:6px auto 14px!important;}
  .copy-panel textarea{min-height:50px!important;font-size:14px!important;}
  .copy-panel .copy-btn{width:92px!important;min-height:50px!important;font-size:14px!important;}
  .embedded-report-section{overflow:visible!important;margin:16px auto 0!important;}
  .embedded-report-frame{width:1460px!important;min-width:1460px!important;}
  .front-store-frame{height:748px!important;}
  .guide-report-frame{height:790px!important;}
}

/* 体验店子行缩进 */
tr.sub-row td.item{
  padding-left:28px;
  font-size:14px;
  color:#4a5568;
}
tr.sub-row td{
  background:#fafbfc;
}

/* 赛道排名：左右并排双框（SO排名 + ST排名） */
.track-box{
  min-height:90px;
  padding:12px 14px;
  border-color:var(--line)!important;
  background:linear-gradient(180deg,#f8fafc,#f1f5f9)!important;
}
.track-box b{display:block;color:var(--muted);font-size:13px;font-weight:1000;margin-bottom:8px}
.track-rank-wrapper{}
.track-rank-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.track-rank-box{
  border-radius:6px;
  text-align:center;
  padding:10px 8px;
  min-height:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.track-rank-box.so-box{background:#fef2f2;border:1px solid #fecaca}
.track-rank-box.st-box{background:#eff6ff;border:1px solid #bfdbfe}
.track-rank-label{
  font-size:13px;
  font-weight:950;
  color:var(--muted);
  margin-bottom:3px;
}
.track-rank-box strong{
  display:block;
  font-size:28px;
  line-height:1.1;
  font-weight:1000;
  letter-spacing:-.04em;
}
.track-rank-box.so-box strong{color:#dc2626}
.track-rank-box.st-box strong{color:#2563eb}
.track-rank-score{
  font-size:12px;
  font-weight:850;
  color:var(--muted);
  margin-top:2px;
}
.track-empty{min-height:20px}
/* 本月剩余缺口新位置 */
.gap-inline{display:flex;align-items:center;gap:20px;padding:4px 0}
.gap-inline strong{font-size:21px;font-weight:1000;display:flex;align-items:baseline;gap:4px}
.gap-inline span{color:var(--muted);font-size:12px;font-weight:850;margin-left:auto}

/* 产品状态：点击传播名展开该产品各颜色/配置明细（全品类通用）
   注意：内层表在 .store-table 的 td 内，.store-table th/td 带 !important，
   内层样式必须同样 !important 且放在文件末尾才能生效 */
.psi-rep-hint{float:right;font-size:11.5px!important;font-weight:850;color:#98a2b3}
.psi-rep-name{cursor:pointer;user-select:none}
.psi-rep-name .psi-rep-caret{color:#98a2b3;font-weight:900;margin-right:3px}
.psi-rep-name:hover,.psi-rep-name.open{color:var(--red)}
.psi-rep-name:hover .psi-rep-caret,.psi-rep-name.open .psi-rep-caret{color:var(--red)}
.psi-var-row td{padding:0!important;background:#f7f9fc!important;border-bottom:1px solid #e4e7ec!important}
.psi-var-wrap{padding:10px 12px 12px 18px;box-shadow:inset 3px 0 0 var(--red)}
.psi-var-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px dashed #e4e7ec}
.psi-var-head b{font-size:12.5px;font-weight:1000;color:#111827}
.psi-var-count{font-size:11px!important;font-weight:900;color:var(--red);background:#fef2f2;border:1px solid #fbd5d5;border-radius:999px;padding:1px 8px}
.psi-var-close{margin-left:auto;font-size:11px;font-weight:850;color:#98a2b3;background:none!important;padding:0!important;border:none!important}
.psi-var-panel{background:#fff;border:1px solid #eaedf2;border-radius:8px;overflow:hidden}
.psi-var-table{width:100%;border-collapse:collapse;table-layout:fixed}
/* 内层表嵌在 .store-table td 里，外层 .store-table th/td 与 .card table:not(.store-table) 的
   !important 规则会命中内层单元格（后者 specificity 更高）→ 统一用 .psi-var-panel 前缀抬高
   specificity 到同级(0,2,2)再靠「文件末尾更靠后」取胜，并显式 height:auto 抵消外层 44px 行高。 */
.cards .psi-var-panel .psi-var-table th{
  background:#f7f8fa!important;color:#667085!important;font-size:11px!important;
  font-weight:900!important;padding:6px 8px!important;text-align:center!important;
  border-bottom:1px solid #eaedf2!important;line-height:1.15!important;letter-spacing:.2px!important;
  height:auto!important;
}
.cards .psi-var-panel .psi-var-table td{
  background:transparent!important;padding:6px 8px!important;font-size:12px!important;
  text-align:center!important;color:#111827!important;border-bottom:1px solid #f1f3f6!important;
  line-height:1.25!important;word-break:break-word!important;font-variant-numeric:tabular-nums!important;
  height:auto!important;font-weight:850!important;
}
.cards .psi-var-panel .psi-var-table th.l,.cards .psi-var-panel .psi-var-table td.l{text-align:left!important}
.cards .psi-var-panel .psi-var-table tbody tr:nth-child(even) td{background:#fcfcfd!important}
.cards .psi-var-panel .psi-var-table tr.psi-var-top td{background:#fffaf9!important}
.cards .psi-var-panel .psi-var-table tbody tr:hover td{background:#fff5f5!important}
.cards .psi-var-panel .psi-var-table tr.psi-var-sum td{
  border-top:1px solid #e4e7ec!important;border-bottom:none!important;
  background:#f7f8fa!important;font-weight:1000!important;color:#334155!important;
}
.psi-chip{
  display:inline-block;background:#f4f5f7;border:1px solid #e4e7ec;border-radius:5px;
  padding:1px 7px;font-size:11.5px!important;font-weight:900;color:#111827;
  letter-spacing:.2px;white-space:normal;word-break:break-word;
}
.psi-var-none{color:#cbd5e1;font-weight:900}
.psi-swatch{
  display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;
  vertical-align:-1px;box-shadow:inset 0 0 0 1px rgba(17,24,39,.22);
}
.psi-var-color-txt{font-weight:1000;color:#111827}
.psi-var-extra{
  margin-left:6px;font-size:10.5px!important;font-weight:850;color:#98a2b3;
  background:#f7f8fa;border:1px solid #eef0f4;border-radius:4px;padding:0 5px;
}
.psi-var-tag{
  margin-left:6px;font-size:10px!important;font-weight:950;color:var(--red);
  border:1px solid #fbd5d5;background:#fff;border-radius:4px;padding:0 4px;
}
.psi-pill{display:inline-block;min-width:46px;padding:2px 8px;border-radius:999px;font-size:11px!important;line-height:1.35}
@media(max-width:900px){
  .psi-rep-hint{display:none}
  .psi-var-wrap{padding:8px 6px 10px 10px}
  .cards .psi-var-panel .psi-var-table th,.cards .psi-var-panel .psi-var-table td{font-size:10.5px!important;padding:5px 3px!important}
}


/* ===== 进销存周期筛选条（Period ID / 库存基准日） ===== */
.psi-filter-card{margin-bottom:12px;background:#fff}
.psi-filter-card .inner{padding:10px 14px}
.psi-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.psi-filter .psi-dim-switch{gap:6px}
.psi-filter-label{color:var(--muted);font-weight:700;white-space:nowrap}
.psi-filter-unit{color:var(--muted);font-weight:700}
.psi-day-input{
  width:76px;height:30px;padding:0 8px;border:1px solid #eaedf2;border-radius:6px;
  font-size:13px;font-weight:800;color:#111827;background:#fff;text-align:center;
}
.psi-day-input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(199,0,11,.12)}
.psi-filter-select{
  height:30px;padding:0 8px;border:1px solid #eaedf2;border-radius:6px;background:#fff;
  font-size:13px;font-weight:800;color:#111827;cursor:pointer;max-width:220px;
}
.psi-filter-select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(199,0,11,.12)}
.psi-filter-note{color:#98a2b3;font-weight:700;margin-left:auto;white-space:nowrap}
@media (max-width:1500px){.psi-filter-note{margin-left:0;width:100%}}
/* 渠道切换条：滚动查看时唯一锁死置顶的行（贴页签条下方，页签条高度由 --sheetbar-h 量测） */
.psi-ch-bar{
  position:sticky;top:var(--sheetbar-h, 50px);z-index:8;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#fff;border:1px solid #eaedf2;border-radius:8px;padding:8px 14px;margin-bottom:12px;
  font-size:13px;
}
.psi-ch-bar .psi-dim-switch{gap:6px}
/* 自定义时间范围（起止日期）输入框 */
.psi-date-input{
  height:30px;padding:0 8px;border:1px solid #eaedf2;border-radius:6px;
  font-size:13px;font-weight:800;color:#111827;background:#fff;
}
.psi-date-input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(199,0,11,.12)}
@media (max-width:1500px){.psi-ch-bar .psi-filter-note{margin-left:0;width:100%}}

/* ===== 重点产品周销目标卡（8011，2026-10-14）：率格同 SO/ST 卡三色；目标在单元格内录入 ===== */
.focus-card td.risk{background:#ffd3db;color:#a4001e}
.focus-card td.warn{background:#ffe9b3;color:#8a4b08}
.focus-card td.good{background:#c9f2d6;color:#03543f}
.focus-card td.focus-dim{
  text-align:center!important;padding-left:0!important;font-weight:400;font-size:13px;color:#111827;
  background:#f8fafc;border-right:1px solid #eaedf2;vertical-align:middle
}
/* 只有「周度合计」行加粗，其余一律常规字重（含达成率格，颜色保留） */
.focus-card .store-table td,
.focus-card .store-table td.dept-name,
.focus-card .store-table td.focus-prod,
.focus-card .store-table td.good,
.focus-card .store-table td.warn,
.focus-card .store-table td.risk,
.focus-card td.focus-dim,
.focus-card .focus-target-cell,
.focus-target-input{font-weight:400!important}
.focus-card tr.focus-sum-row td,
.focus-card tr.focus-sum-row td.dept-name,
.focus-card tr.focus-sum-row td.focus-prod,
.focus-card tr.focus-sum-row td.good,
.focus-card tr.focus-sum-row td.warn,
.focus-card tr.focus-sum-row td.risk,
.focus-card tr.focus-sum-row .focus-target-input{font-weight:1000!important}
/* 产品列整体居中 */
.focus-card .store-table th.focus-prod-head,
.focus-card .store-table td.focus-prod{text-align:center!important;padding-left:0!important}
/* 编辑目标按钮：卡片外（卡片上方一条），截图卡片时不带入 */
.focus-edit-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 10px}
.focus-edit-btn{
  height:30px;padding:0 14px;font-size:12.5px;font-weight:950;border-radius:6px;cursor:pointer;
  border:1px solid #d9dee7;background:#fff;color:#344054;font-family:inherit
}
.focus-edit-btn:hover{border-color:var(--red);color:var(--red);box-shadow:none;transform:none}
.focus-edit-btn:active{filter:none;transform:none}
.focus-edit-btn.is-editing{background:#fff5f5;border-color:var(--red);color:var(--red)}
.focus-edit-btn.is-busy{opacity:.6;cursor:default}
.focus-edit-btn.is-error{border-color:#a4001e;color:#a4001e;background:#ffd3db}
.focus-edit-note{font-size:11px;font-weight:400;color:#98a2b3;white-space:nowrap}
.focus-edit-note.is-error{color:#a4001e}
/* 目标列不要底色：锁定态就是纯文本；只有编辑态给个边框便于识别 */
.focus-target-input[readonly]{background:transparent;color:#111827;border-color:transparent;cursor:default}
.focus-target-input[readonly]:hover{border-color:transparent}
.focus-target-input[readonly]:focus{box-shadow:none;border-color:transparent}
.focus-target-input:not([readonly]){border-color:#d9dee7;background:transparent}
.focus-target-input:not([readonly]):focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(199,0,11,.10)}
.focus-card .focus-target-cell{background:transparent!important}
.focus-card tr.focus-sum-row td.focus-target-cell{background:transparent!important}
/* 明细：0 销量配置置灰 + 底部合计行 */
.focus-card .psi-var-table tr.qty-zero td{color:#98a2b3}
.focus-card .psi-var-table tfoot td{background:#f3f4f6;color:#111827;font-weight:400}
.focus-card td.focus-var-spacer{background:#f7f9fc;border-right:1px solid #eaedf2}
.focus-card .focus-target-cell{padding:4px 6px!important;text-align:center}
.focus-card .psi-var-row>td{padding:0!important;background:#f7f9fc!important;border:0!important}
.focus-card .psi-var-wrap{padding:10px 12px 12px 16px;box-shadow:inset 3px 0 0 var(--red)}
.focus-target-input{
  width:100%;box-sizing:border-box;text-align:center;font-size:13px;color:#111827;
  border:1px solid transparent;border-radius:6px;padding:4px 2px;background:transparent
}
.focus-target-input:hover{border-color:#d0d5dd}
.focus-target-input::placeholder{color:#98a2b3;font-weight:400}
.focus-target-input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(199,0,11,.12)}
.focus-target-input.is-saving{border-color:var(--red);background:#fff5f5}
.focus-target-input.is-error{border-color:#a4001e;background:#ffd3db}
.focus-target-input::-webkit-outer-spin-button,
.focus-target-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.focus-target-input[type=number]{-moz-appearance:textfield}

/* 周度合计行不做色阶：即便带上 rate 类也保持中性（双保险） */
.focus-card tr.focus-sum-row td.good,
.focus-card tr.focus-sum-row td.warn,
.focus-card tr.focus-sum-row td.risk{background:#fcfcfd!important;color:#111827!important}
