/* =========================================================================
   MXERP 设计系统 v2 — 简洁 / 克制 / 一致（参考 Linear·Vercel·shadcn，2024-2026）
   令牌：4px 间距网格 · 字号阶梯 · 中性灰阶 · 单一主色 · 三语义色 · 克制阴影
   对齐：两栏等高靠 flex 默认 stretch（.two-col），不靠 margin 凑
   ========================================================================= */
:root{
  /* Legacy aliases now resolve through design-tokens.css. */
  --s1:var(--primitive-space-1);--s2:var(--primitive-space-2);--s3:var(--primitive-space-3);--s4:var(--primitive-space-4);
  --s5:var(--primitive-space-6);--s6:var(--primitive-space-8);--s7:var(--primitive-space-10);--s8:var(--primitive-space-16);
  --r-sm:var(--primitive-radius-4);--r:var(--primitive-radius-6);--r-card:var(--primitive-radius-10);--r-lg:var(--primitive-radius-12);--r-full:var(--primitive-radius-full);
  --fs-12:var(--primitive-font-12);--fs-13:var(--primitive-font-13);--fs-14:var(--primitive-font-14);--fs-15:var(--primitive-font-14);--fs-16:var(--primitive-font-16);--fs-20:var(--primitive-font-20);--fs-24:var(--primitive-font-24);
  --bg:var(--color-canvas);--card:var(--color-surface);--surface:var(--color-surface-subtle);
  --ink:var(--color-text);--muted:var(--color-text-secondary);--faint:var(--color-text-tertiary);
  --line:var(--color-border);--line-2:var(--color-border-strong);
  --brand:var(--color-primary);--brand-d:var(--color-primary-hover);--brand-tint:var(--color-primary-subtle);
  --ok:var(--color-success);--warn:var(--color-warning);--bad:var(--color-danger);
  --ok-tint:var(--color-success-subtle);--ok-line:var(--color-success-border);--warn-tint:var(--color-warning-subtle);--warn-line:var(--color-warning-border);--bad-tint:var(--color-danger-subtle);--bad-line:var(--color-danger-border);
  --nav:var(--color-navigation);--nav-2:var(--color-navigation-hover);--nav-ink:var(--color-navigation-text);--nav-ink-2:var(--primitive-white);--nav-faint:var(--color-navigation-muted);
  --shadow-sm:var(--shadow-minimal);--shadow:var(--shadow-minimal);--shadow-md:0 8px 24px hsl(222 47% 11% / .1);--shadow-pop:var(--shadow-overlay);
  --ring:var(--focus-ring);
}

/* —— base —— */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--ink);font-size:var(--fs-14);line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--brand);text-decoration:none}
button{font-family:inherit;cursor:pointer;color:inherit}
::selection{background:#9ec2ff;color:#0f172a}   /* 文本选中高亮：清晰可辨的中蓝底+深墨字(原 brand-tint 太淡看不出) */
::-moz-selection{background:#9ec2ff;color:#0f172a}
.hidden{display:none!important}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.right{text-align:right}
.mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}

/* —— layout —— */
.layout{display:flex;min-height:100vh}
.main{flex:1;display:flex;flex-direction:column;min-width:0;width:calc(100% - var(--layout-sidebar-width));margin-left:var(--layout-sidebar-width);background:var(--bg)}
.skip-link{position:fixed;z-index:100;top:8px;left:12px;padding:8px 12px;border:1px solid #93c5fd;border-radius:8px;background:#fff;color:var(--brand);font-weight:700;
  transform:translateY(-160%);transition:transform .15s ease;box-shadow:var(--shadow-md)}
.skip-link:focus-visible{outline:2px solid #fff;outline-offset:2px;transform:translateY(0)}
.content:focus{outline:none}
/* 顶栏：沿用深色工作区，只调整页面标签形状。 */
.topbar{height:var(--layout-topbar-height);background:var(--nav);border-bottom:0;
  display:flex;align-items:stretch;justify-content:space-between;gap:var(--s3);padding:0 var(--s4) 0 0;
  position:sticky;top:0;z-index:40;box-shadow:none}
.topbar .title{font-weight:600;font-size:var(--fs-16);letter-spacing:0;color:#fff;align-self:center}
.topbar .user{display:flex;align-items:center;gap:8px;color:var(--nav-ink);font-size:var(--fs-13);white-space:nowrap;align-self:center}
.topbar .user b{color:#fff;font-weight:600}
.topbar .user a{color:#8fb3ff}
/* 右上角用户胶囊(仿领星：圆形头像+用户名，点击出账号菜单) */
.user-pill{display:inline-flex;align-items:center;gap:7px;padding:3px 10px 3px 4px;border-radius:var(--r-full);cursor:pointer;transition:background .15s}
.user-pill:hover{background:rgba(255,255,255,.1)}
.user-pill b{color:#fff;font-weight:600;font-size:var(--fs-13)}
.u-ava{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:rgba(255,255,255,.16);color:#dfe3ea;flex:0 0 auto}
.u-ava svg{width:17px;height:17px}
.bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r);
  cursor:pointer;line-height:1;margin-right:0;user-select:none;color:#cfd5df;transition:color .15s,background .15s}
.bell svg{width:20px;height:20px}
.bell:hover{color:#fff;background:rgba(255,255,255,.1)}
.bell-dot{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;line-height:12px;padding:1px 4px;border-radius:9px;
  background:var(--bad);color:#fff;font-size:10px;font-weight:700;text-align:center;border:2px solid var(--nav);box-sizing:border-box}
.notif-pop{position:fixed;z-index:70;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);width:340px;max-width:92vw;overflow:hidden}
.notif-h{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:var(--fs-13)}
.notif-h a{color:var(--brand);cursor:pointer;font-weight:500;font-size:var(--fs-12)}
.notif-list{max-height:60vh;overflow:auto}
.notif-i{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.notif-i:hover{background:var(--brand-tint)}
.notif-i:last-child{border-bottom:0}
.notif-t{flex:1;min-width:0;font-size:var(--fs-13);line-height:1.4}
.content{padding:var(--layout-content-padding);flex:1;min-width:0}

/* —— 全局 ASIN 搜（顶栏） —— */
.gsearch-wrap{position:relative;margin-right:0;align-self:center}
.gsearch{height:32px;width:210px;max-width:30vw;border:1px solid hsl(0 0% 100% / .14);border-radius:var(--control-radius);padding:0 var(--s3);font-size:var(--fs-13);background:hsl(0 0% 100% / .07);color:var(--primitive-slate-100);transition:var(--transition-interactive)}
.gsearch::placeholder{color:var(--nav-faint)}
.gsearch:focus{outline:none;border-color:hsl(213 97% 70% / .6);background:hsl(0 0% 100% / .1);box-shadow:none}
.gsearch-pop{position:absolute;top:42px;right:0;z-index:70;width:440px;max-width:88vw;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-pop);max-height:72vh;overflow:auto}
.gsearch-pop .gs-h{padding:8px 14px;font-size:var(--fs-12);font-weight:600;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0}

/* 旧侧栏（保留以防引用）*/
.sidebar{width:var(--layout-sidebar-width);background:var(--nav);color:var(--nav-ink);display:flex;flex-direction:column;flex-shrink:0}
.sidebar .logo{font-size:18px;font-weight:700;color:#fff;padding:18px 20px;letter-spacing:.5px}
.sidebar .logo small{display:block;font-size:11px;font-weight:400;color:var(--nav-faint);margin-top:2px}
.nav a{display:block;padding:11px 20px;color:var(--nav-ink);border-left:3px solid transparent}
.nav a:hover{background:var(--nav-2);color:#fff}
.nav a.active{background:var(--nav-2);color:#fff;border-left-color:var(--brand)}

/* 主导航栏：紧凑但不牺牲可读性；父项明确提示可展开，活动区块用图标底座 + 左侧状态条双重表达 */
.rail{position:fixed;inset:0 auto 0 0;z-index:45;width:var(--layout-sidebar-width);height:100vh;height:100dvh;background:var(--nav);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;
  border-right:1px solid hsl(0 0% 100% / .05);padding-bottom:var(--s3);scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail .logo2{color:#fff;font-weight:800;font-size:15px;text-align:center;padding:2px 10px;margin-bottom:2px;height:48px;flex-shrink:0;
  line-height:1.05;cursor:pointer;border-bottom:0;transition:background .15s;display:flex;align-items:center;justify-content:center}
.rail .logo2:hover,.rail .logo2.active{background:var(--nav-2)}
.rail .logo2 img{object-fit:contain;display:block;margin:0 auto}
.rail .logo2 .logo-wide{width:132px;height:40px;background:transparent;filter:invert(1) hue-rotate(180deg) brightness(.78) saturate(.86);mix-blend-mode:screen;opacity:.82}
.rail .logo2 .logo-compact{display:none;width:58px;height:40px;background:transparent}
.rail .logo2 span{display:block;font-size:10px;font-weight:600;color:var(--nav-faint);letter-spacing:1px}
.rail-item{-webkit-appearance:none;appearance:none;position:relative;display:flex;align-items:center;justify-content:flex-start;gap:9px;
  width:calc(100% - 14px);min-height:44px;margin:2px 7px;padding:5px 8px;color:var(--nav-ink);background:transparent;
  cursor:pointer;border:1px solid transparent;border-radius:var(--r-card);text-decoration:none;text-align:left;font:inherit;
  touch-action:manipulation;transition:var(--transition-interactive)}
.rail-item:hover{background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.07);color:#fff}
.rail-item:active:not(.locked){transform:scale(.97)}
.rail-item:focus-visible{outline:2px solid #93c5fd;outline-offset:-2px;box-shadow:0 0 0 2px rgba(15,23,42,.9)}
.rail-item.active,.rail-parent[aria-expanded="true"]{background:hsl(217 91% 60% / .13);border-color:hsl(213 97% 70% / .16);color:var(--primitive-white);box-shadow:none}
.rail-item.active::before{content:"";position:absolute;left:-9px;top:10px;bottom:10px;width:2px;border-radius:0 2px 2px 0;background:var(--primitive-blue-500);box-shadow:none}
.rail-item.locked{color:#565d6c;opacity:.6;cursor:not-allowed}
.rail-item.locked:hover{background:transparent;color:#565d6c}
.rail-flyout-i.locked,.tab-menu-i.locked{color:var(--faint);cursor:not-allowed}
.rail-flyout-i.locked:hover,.tab-menu-i.locked:hover{background:transparent;color:var(--faint)}
.rail-ico{font-size:19px;line-height:1;display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 auto;
  border:1px solid hsl(0 0% 100% / .07);border-radius:var(--r-card);background:hsl(0 0% 100% / .035);color:var(--nav-ink);transition:var(--transition-interactive)}
.rail-ico svg{width:21px;height:21px;display:block}
.rail-item:hover .rail-ico{background:rgba(255,255,255,.095);border-color:rgba(255,255,255,.13);color:#fff}
.rail-item.active .rail-ico,.rail-parent[aria-expanded="true"] .rail-ico{background:hsl(217 91% 60% / .16);border-color:hsl(213 97% 70% / .22);color:var(--primitive-blue-200);box-shadow:none}
.rail-lbl{min-width:0;max-width:100%;font-size:13px;font-weight:600;letter-spacing:.01em;text-align:left;line-height:1.2;white-space:nowrap}
.rail-caret{position:absolute;top:50%;right:10px;display:grid;place-items:center;width:18px;height:18px;color:#7f8ca0;transform:translateY(-50%);transition:transform .18s ease,color .18s ease}
.rail-caret svg{width:10px;height:10px}
.rail-parent:hover .rail-caret,.rail-parent[aria-expanded="true"] .rail-caret{color:#dbeafe}
.rail-parent[aria-expanded="true"] .rail-caret{transform:translateY(-50%) rotate(90deg)}

/* 高频选品入口常驻侧栏：父级仅负责分组，三个子页面均可一键直达。 */
.rail-section{margin:var(--s2) 5px 6px;padding:6px 5px;border:1px solid hsl(0 0% 100% / .06);border-radius:var(--r-lg);background:hsl(0 0% 100% / .025)}
.rail-section-head{display:flex;align-items:center;gap:9px;padding:5px 6px 8px;color:#fff}
.rail-section-ico{display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;border:1px solid rgba(96,165,250,.24);border-radius:10px;background:rgba(37,99,235,.16);color:#93c5fd}
.rail-section-ico svg{width:21px;height:21px}
.rail-section-copy{display:flex;min-width:0;flex-direction:column}
.rail-section-copy strong{font-size:13px;font-weight:700;line-height:1.3}
.rail-section-copy small{margin-top:2px;color:#8fa0b7;font-size:11px;line-height:1.25}
.rail-subnav{display:flex;flex-direction:column;gap:4px}
.rail-subitem{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-height:52px;padding:6px 7px;
  border:1px solid transparent;border-radius:var(--r-card);color:var(--nav-ink);text-decoration:none;touch-action:manipulation;
  transition:var(--transition-interactive)}
.rail-subitem:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.08);color:#fff}
.rail-subitem:active{transform:scale(.98)}
.rail-subitem:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}
.rail-subitem.active{background:hsl(217 91% 60% / .16);border-color:hsl(213 97% 70% / .18);color:var(--primitive-white);box-shadow:none}
.rail-subitem.active::before{content:"";position:absolute;left:-6px;top:12px;bottom:12px;width:2px;border-radius:0 2px 2px 0;background:var(--primitive-blue-500)}
.rail-sub-ico{display:grid;place-items:center;width:32px;height:32px;border:1px solid hsl(0 0% 100% / .08);border-radius:var(--r-card);background:hsl(0 0% 100% / .035);color:var(--nav-ink)}
.rail-sub-ico svg{width:17px;height:17px}
.rail-subitem:hover .rail-sub-ico{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.09);color:#fff}
.rail-subitem.active .rail-sub-ico{border-color:hsl(213 97% 70% / .2);background:hsl(217 91% 60% / .14);color:var(--primitive-blue-200)}
.rail-sub-bullet{width:6px;height:6px;border-radius:50%;background:currentColor}
.rail-sub-copy,.rail-sub-label,.rail-sub-desc{display:block;min-width:0}
.rail-sub-label{overflow:hidden;font-size:13px;font-weight:650;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.rail-sub-desc{overflow:hidden;margin-top:2px;color:#91a0b5;font-size:11px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.rail-subitem.active .rail-sub-desc{color:rgba(255,255,255,.76)}
.nav-cnt,.rail-sub-count{display:none!important}
.rail-sub-count{place-items:center;min-width:25px;height:20px;padding:0 6px;border:1px solid rgba(255,255,255,.1);border-radius:10px;
  background:rgba(255,255,255,.06);color:#aebbd0;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.rail-sub-count:empty{display:none}
.rail-subitem:hover .rail-sub-count{background:rgba(255,255,255,.11);color:#fff}
.rail-subitem.active .rail-sub-count{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.15);color:#fff}

/* —— cards（仿领星：扁平白板，无阴影，紧凑内距）—— */
.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);
  box-shadow:var(--card-shadow);padding:var(--card-padding);margin-bottom:var(--s3)}
.card h3{margin:0 0 var(--s3);font-size:var(--fs-15);font-weight:600;letter-spacing:0;color:var(--ink)}
.row{display:flex;gap:var(--s4);flex-wrap:wrap}
.row>*{flex:1;min-width:0}

/* —— 两栏等高（结构件：靠 flex stretch，杜绝 margin 错位）——
   .two-col 容器默认 align-items:stretch；每个 .two-col-cell 自身是纵向 flex，
   其中的 .card 用 flex:1 + margin-bottom:0 撑满本栏 → 左右卡片顶边底边天然齐平。 */
.two-col{display:flex;gap:var(--s4);flex-wrap:wrap;align-items:stretch}
.two-col>.two-col-cell{display:flex;flex-direction:column;min-width:0}
.two-col-cell>.card{flex:1 1 auto;margin-bottom:0}

/* —— 线性图标（emoji 替代）：内联 SVG，继承 currentColor —— */
.ic{display:inline-block;vertical-align:-0.15em;flex:0 0 auto;stroke:currentColor;fill:none}
.ic-spin{animation:ic-spin .9s linear infinite;transform-origin:center}
@keyframes ic-spin{to{transform:rotate(360deg)}}
/* 表格/文字内联图标略降视觉重量，避免喧宾夺主 */
td .ic,.muted .ic{opacity:.85}
/* 搜索框：右侧留白放 SVG 放大镜（替代 placeholder 里的 🔍） */
.gsearch-wrap{position:relative}
.gsearch-wrap .gs-ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.gsearch-wrap .gsearch{padding-left:30px}

/* —— buttons —— */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:var(--control-height);padding:0 var(--s3);border:1px solid var(--button-bg);background:var(--button-bg);color:var(--button-fg);
  border-radius:var(--control-radius);font-size:var(--fs-13);font-weight:600;line-height:1;white-space:nowrap;
  box-shadow:var(--shadow-minimal);transition:var(--transition-interactive)}
.btn:hover{background:var(--button-bg-hover);border-color:var(--button-bg-hover)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:none;box-shadow:var(--ring)}
.btn.ghost{background:var(--color-surface);color:var(--brand);border-color:var(--line-2);box-shadow:none}
.btn.ghost:hover{background:var(--brand-tint);border-color:var(--brand)}
.btn.gray{background:var(--color-surface);color:var(--muted);border-color:var(--line-2);box-shadow:none}
.btn.gray:hover{color:var(--ink);border-color:var(--line-2);background:var(--color-surface-muted)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.bad{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.ok:hover,.btn.bad:hover{filter:brightness(.94)}
.btn.sm{height:var(--control-height-sm);padding:0 10px;font-size:var(--fs-12)}
.btn:disabled{background:var(--color-surface-muted);border-color:var(--line);color:var(--faint);box-shadow:none;opacity:1;cursor:not-allowed}

/* —— form —— */
.field{margin-bottom:var(--s3)}
.field label{display:block;font-size:var(--fs-12);font-weight:500;color:var(--muted);margin-bottom:6px}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{
  width:100%;height:var(--control-height);padding:0 10px;border:1px solid var(--input-border);border-radius:var(--control-radius);
  font-size:var(--fs-13);font-family:inherit;background:var(--input-bg);color:var(--ink);
  transition:var(--transition-interactive)}
.field input[type=checkbox],.field input[type=radio]{width:auto;height:auto;margin-right:4px;accent-color:var(--brand);vertical-align:-2px}
.field textarea,textarea{height:auto;padding:8px 12px;line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus,textarea:focus,input:focus,select:focus{
  outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.field input::placeholder,.field textarea::placeholder,textarea::placeholder,input::placeholder{color:var(--faint)}
textarea{resize:vertical}   /* 全站文本框只能纵向(向下)拖拽，锁死左右/对角 */
.qty-quick-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}
.qty-quick-row>span{margin-right:2px;color:var(--muted);font-size:11px}
.qty-quick-btn{min-width:40px;height:28px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:var(--transition-interactive)}
.qty-quick-btn:hover{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-d)}
.qty-quick-btn:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.qty-quick-btn.is-active{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.2)}
.reject-reason-picker{margin-top:4px}
.reject-reason-picker .field{margin-bottom:10px}
.reject-reason-hint{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}
.reject-reason-error{min-height:18px;color:var(--bad);font-size:12px;line-height:18px}
.reject-reason-picker [aria-invalid="true"]{border-color:var(--bad);background:var(--bad-tint)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 var(--s4)}

/* —— table —— */
table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
th,td{text-align:left;padding:var(--table-cell-y) var(--table-cell-x);border-bottom:1px solid var(--line);vertical-align:middle}
th{height:40px;color:var(--muted);font-weight:650;font-size:var(--fs-12);background:var(--table-header-bg);letter-spacing:.01em;border-bottom:1px solid var(--line)}
/* 数字单元格等宽对齐：右对齐的数字逐位竖直对齐，密集表格扫读极值更快 */
td.right,td.num{font-variant-numeric:tabular-nums}
/* 可排序表头：点击按列排序（▲▼ 指示当前列与方向） */
th.th-sort{cursor:pointer;user-select:none}
th.th-sort:hover{color:var(--ink)}
.sort-ind{color:var(--brand);font-size:10px;vertical-align:1px}
tbody tr:hover{background:var(--table-row-hover);cursor:pointer}
td.pin,th.pin{position:sticky;z-index:2;background:#fff;box-shadow:1px 0 0 var(--line)}
th.pin{z-index:3;background:var(--surface)}
tbody tr:hover td.pin{background:var(--table-row-hover)}
body.col-resizing td.pin,body.col-resizing th.pin{position:static}   /* 拖拽改宽时临时取消固定列粘性，避免偏移未重算导致的瞬时重叠 */
/* 「操作」列固定在最右，列很多时也始终可见（删除/通过/绑定等按钮不被横向滚动挤出屏幕） */
td.opcol,th.opcol{position:sticky;right:0;z-index:2;background:#fff;box-shadow:-8px 0 8px -6px rgba(10,20,40,.14)}
th.opcol{z-index:3;background:var(--surface)}
tbody tr:hover td.opcol{background:var(--table-row-hover)}
body.col-resizing td.opcol,body.col-resizing th.opcol{position:static;box-shadow:none}
.listed-ad-budget{min-width:138px;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;line-height:1.25}
.listed-ad-budget strong{display:block;color:var(--ink);font-size:var(--fs-12);font-weight:700}
.listed-ad-budget small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:500}
.listed-ad-budget.pending strong{color:var(--warn)}
.listed-ad-budget.blocked .badge{margin:0}
tbody tr.grp-div:hover{background:var(--surface);cursor:default}
tr.grp-div td{background:var(--surface);color:var(--muted);font-size:var(--fs-12);font-weight:600;
  padding:7px 14px;border-top:2px solid var(--line-2);letter-spacing:.02em}

/* —— 工资表：密表可读性（粘性表头+斑马+职级徽章+淡破折号+关键列强调+分组竖分隔） —— */
.pay-scroll{max-height:72vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.pay-table{font-variant-numeric:tabular-nums}
.pay-table thead th{position:sticky;top:0;z-index:4}
.pay-table tbody tr:nth-child(even)>td{background:#fafbfd}
.pay-table tbody tr:hover>td{background:#eef4ff}
.pay-table td.opcol{background:#fff}
.pay-table tbody tr:nth-child(even)>td.opcol{background:#fafbfd}
.pay-table tbody tr:hover>td.opcol{background:#eef4ff}
.pay-dash{color:var(--faint);opacity:.55}                 /* 空值破折号：极淡、不喧宾夺主 */
.pay-table td.pay-key{font-weight:700;color:var(--brand-d)}   /* 实发工资=底线数字，品牌深色强调、视线落点 */
.pay-table td.pay-core{font-weight:600;color:var(--ink)}  /* 小计/汇总列轻加粗，无底色不扰斑马 */
.pay-table td.pay-cmt{position:relative;cursor:help}      /* 有批注的扣款单元格：可悬停看批注 */
.pay-table td.pay-cmt::after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-top:7px solid var(--bad);border-left:7px solid transparent;opacity:.85}  /* WPS/Excel 式右上角红批注角标 */
/* 内联编辑：双击编辑单元格 + 未保存脏标记 + 底部保存条 */
.pay-table td.pay-edit{cursor:cell}
.pay-table tbody tr:hover>td.pay-edit{box-shadow:inset 0 0 0 1px var(--brand-tint)}   /* hover 提示可双击编辑 */
.pay-table td.pay-dirty{box-shadow:inset 2px 0 0 var(--warn), inset 0 0 0 99px var(--warn-tint)}  /* 改动未保存：左黄条+淡黄底(box-shadow 覆盖斑马/hover) */
.pay-cell-inp{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--brand);border-radius:4px;padding:1px 4px;margin:-2px 0;font:inherit;font-variant-numeric:tabular-nums;background:#fff;outline:none;box-shadow:var(--ring)}
.pay-cell-inp.r{text-align:right}
.pay-manual-tag{display:inline-flex;align-items:center;margin-left:5px;padding:0 4px;border:1px solid var(--color-warning-border);border-radius:999px;background:var(--warn-tint);color:#b45309;font-size:9px;font-weight:700;line-height:16px;vertical-align:1px}
.pay-override-control{display:flex;align-items:center;gap:8px}
.pay-override-control>.cmt-wrap{flex:1 1 auto;min-width:0}
.pay-override-control>.btn{flex:0 0 auto}
.pay-override-state{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.4}
.pay-override-state.is-manual{color:#b45309;font-weight:600}
.pay-savebar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:60;display:flex;gap:10px;align-items:center;background:var(--ink);color:#fff;padding:8px 10px 8px 15px;border-radius:999px;box-shadow:var(--shadow-pop);font-size:var(--fs-13)}
.pay-savebar .cnt{font-weight:600;letter-spacing:.01em}
.pay-savebar #payDiscard{background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}
.pay-savebar #payDiscard:hover{background:rgba(255,255,255,.12)}
.pay-table th.pay-gsep,.pay-table td.pay-gsep{border-left:1px solid #e6eaf0}  /* 子组竖分隔(1px 弱) */
.pay-table th.pay-csep,.pay-table td.pay-csep{border-left:2px solid var(--line-2)}  /* 三大类边界(2px 强，层级>子组线) */
/* 二级 colspan 表头：第1行=三大类色带(吸顶 top:0)，第2行=列名(吸顶 top:28px，叠在色带下) */
.pay-table thead tr.pay-cats th{position:sticky;top:0;z-index:5;text-align:center;font-weight:700;font-size:var(--fs-12);letter-spacing:.06em;height:28px;white-space:nowrap;padding:4px 10px;border-bottom:1px solid var(--line)}
.pay-cat-b{background:var(--surface);color:var(--muted);border-top:2px solid var(--line-2)}   /* 基本信息：安静身份区 */
.pay-cat-e{background:var(--ok-tint);color:#15803d;border-top:2px solid var(--ok)}  /* 应发工资：收入=淡绿 */
.pay-cat-a{background:var(--warn-tint);color:#b45309;border-top:2px solid var(--warn)}  /* 考勤：扣款=淡琥珀 */
.pay-cat-s{background:var(--brand-tint);color:var(--brand-d);border-top:2px solid var(--brand)} /* 社保：唯一着色的合规块 */
.pay-cat-o{background:#fff;color:var(--ink);border-top:2px solid var(--line-2)}              /* 其他：最亮工作区、数字更跳 */
.pay-table thead tr.pay-cols th{position:sticky;top:28px;z-index:5}
.pay-table thead tr.pay-cats th.opcol{z-index:6;text-align:right}  /* 操作列表头压在两行表头之上(横滚不被列名盖住)、恢复右对齐 */
.pay-ext-tag{font-size:10px;color:var(--muted);font-weight:500;margin-left:4px;vertical-align:middle;border:1px solid var(--line);border-radius:4px;padding:0 3px}  /* 外账列「外」徽章、降权 */
.pay-table tfoot td{position:sticky;bottom:0;z-index:4;background:var(--surface);border-top:2px solid var(--line-2)}  /* 合计行吸底、与明细清晰分隔 */
.pay-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 10px}  /* 筛选条视觉归组、去杂乱 */
/* ===== 薪资架构：自适应岗位网格 + 紧凑数据卡 + 渐进披露职级要求 ===== */
.salary-workspace{display:grid;gap:var(--s4);min-width:0}
.salary-loading{display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:160px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);color:var(--muted)}
.salary-command{display:grid;grid-template-columns:minmax(280px,1fr) minmax(360px,auto) auto;align-items:center;gap:var(--s4);padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow-sm)}
.salary-command-copy{min-width:0}
.salary-eyebrow{display:inline-flex;align-items:center;gap:6px;margin-bottom:3px;color:var(--brand);font-size:11px;font-weight:700;letter-spacing:.08em}
.salary-command-copy h2{margin:0;color:var(--ink);font-size:var(--fs-20);line-height:1.3}
.salary-command-copy p{margin:4px 0 0;color:var(--muted);font-size:var(--fs-12);line-height:1.5}
.salary-summary{display:grid;grid-template-columns:repeat(4,minmax(76px,1fr));margin:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.salary-summary>div{min-width:0;padding:9px 13px;border-left:1px solid var(--line)}
.salary-summary>div:first-child{border-left:0}
.salary-summary dt{color:var(--muted);font-size:11px;white-space:nowrap}
.salary-summary dd{margin:2px 0 0;color:var(--ink);font-size:var(--fs-16);font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.salary-command-actions{display:flex;justify-content:flex-end}
.salary-command-actions .btn{min-height:38px;padding-inline:14px}
.salary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(640px,100%),1fr));align-items:start;gap:var(--s4);min-width:0}
.salary-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:var(--card);box-shadow:var(--shadow-sm)}
.salary-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:64px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--card)}
.salary-card-title{display:flex;align-items:center;gap:10px;min-width:0}
.salary-card-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--brand)}
.salary-card-title>div{min-width:0}
.salary-card-title h3{overflow:hidden;margin:0;color:var(--ink);font-size:var(--fs-14);font-weight:700;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.salary-card-title p{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.35}
.salary-add-level{flex:0 0 auto}
.salary-table-wrap{max-width:100%;overflow-x:auto;scrollbar-gutter:stable}
.salary-card .sal-table{width:100%;min-width:640px}
.salary-card .sal-table thead th{position:static;top:auto;height:38px;padding:8px 11px;background:var(--surface);box-shadow:none;white-space:nowrap}
.salary-card .sal-table th:first-child,.salary-card .sal-table td:first-child{padding-left:14px}
.salary-card .sal-table th:last-child,.salary-card .sal-table td:last-child{padding-right:14px}
.salary-card .sal-table th.opcol{width:102px}
.salary-card .sal-table td{padding:9px 11px}
.page-hr .salary-card .sal-table .sal-level-row>td{height:48px;background:var(--card)}
.page-hr .salary-card .sal-table .sal-level-row:hover>td{background:var(--brand-tint)}
.salary-card .sal-grade-cell{white-space:nowrap}
.salary-card .sal-table td.pay-key{font-size:var(--fs-15);font-weight:700;color:var(--brand-d);white-space:nowrap;vertical-align:middle}
.salary-card .sal-table th.sal-total-h{border-top:2px solid var(--brand);background:var(--brand-tint);color:var(--brand-d)}
.salary-card .sal-table td.pay-csep{box-shadow:inset 2px 0 0 var(--line-2)}
.salary-card .sal-table td.opcol,.salary-card .sal-table th.opcol{position:static;background:var(--card);box-shadow:none;white-space:nowrap}
.page-hr .salary-card .sal-table .sal-level-row:hover>td.opcol{background:var(--brand-tint)}
.page-hr .salary-card .sal-table .sal-note-row>td,.page-hr .salary-card .sal-table .sal-note-row:hover>td{padding:0 11px 8px 52px;border-top:0;background:var(--card)}
.sal-details{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.sal-details summary{display:flex;align-items:center;gap:8px;min-height:34px;padding:5px 10px;color:var(--muted);font-size:11px;font-weight:600;list-style:none;cursor:pointer;user-select:none}
.sal-details summary::-webkit-details-marker{display:none}
.sal-details summary::after{content:"";width:6px;height:6px;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}
.sal-details[open] summary::after{transform:rotate(225deg) translate(-1px,-1px)}
.sal-details summary:focus-visible{outline:none;box-shadow:var(--ring)}
.sal-details-title{display:inline-flex;align-items:center;gap:5px;color:var(--ink)}
.sal-details-tags{display:flex;gap:5px;flex-wrap:wrap}
.sal-details-tags span{padding:1px 6px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--card);color:var(--muted);font-size:10px;font-weight:500}
.sal-details-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;padding:0 10px 10px}
.sal-detail-block{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.sal-rule-label{display:flex;align-items:center;gap:5px;color:var(--brand-d);font-size:11px;font-weight:700}
.sal-detail-block p{margin:5px 0 0;color:var(--muted);font-size:var(--fs-12);line-height:1.6;white-space:pre-line;word-break:break-word}
.sal-ops{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;opacity:1}
.sal-del{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer;transition:var(--transition-interactive)}
.sal-del:hover{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.sal-del:focus-visible{outline:none;box-shadow:var(--ring)}
.sal-u{margin-left:2px;color:var(--muted);font-size:var(--fs-13);font-weight:600}
.salary-empty{display:flex;align-items:center;justify-content:center;gap:var(--s3);min-height:180px;padding:var(--s5);border:1px dashed var(--line-2);border-radius:var(--r-card);background:var(--surface);color:var(--muted)}
.salary-empty>span{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r);background:var(--card);color:var(--brand)}
.salary-empty h3{margin:0;color:var(--ink);font-size:var(--fs-14)}
.salary-empty p{margin:3px 0 0;font-size:var(--fs-12)}

/* 薪资职级新增/编辑：按“岗位信息 / 薪资构成 / 职级要求”分组。 */
.salary-form{display:grid;gap:var(--s4)}
.salary-form-head{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:var(--s3);padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.salary-form-head>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:var(--r);background:var(--brand-tint);color:var(--brand)}
.salary-form-head p{margin:0;color:var(--brand);font-size:10px;font-weight:700;letter-spacing:.08em}
.salary-form-head h3{margin:2px 0 0;color:var(--ink);font-size:var(--fs-20);line-height:1.3}
.salary-form-section{padding:14px 14px 2px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.salary-form-section-head{margin-bottom:12px}
.salary-form-section-head h4{margin:0;color:var(--ink);font-size:var(--fs-14)}
.salary-form-section-head p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.salary-form-section .field{margin-bottom:12px}
.salary-form-section textarea{width:100%}
.salary-total-field{grid-column:1/-1}
.salary-total-field input{border-color:var(--color-primary-border)!important;background:var(--brand-tint)!important;color:var(--brand-d);font-weight:700}
.salary-form-actions{position:sticky;bottom:-20px;z-index:3;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 -20px -20px;padding:12px 20px;border-top:1px solid var(--line);background:var(--card);box-shadow:0 -6px 14px hsl(222 47% 11% / .04)}

@media (max-width:1080px){
  .salary-command{grid-template-columns:minmax(0,1fr) auto}
  .salary-summary{grid-column:1/-1;grid-row:2}
  .salary-command-actions{grid-column:2;grid-row:1}
}
@media (max-width:720px){
  .salary-command{grid-template-columns:minmax(0,1fr);padding:14px}
  .salary-summary,.salary-command-actions{grid-column:1;grid-row:auto}
  .salary-command-actions,.salary-command-actions .btn{width:100%}
  .salary-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .salary-summary>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}
  .salary-summary>div:nth-child(4){border-top:1px solid var(--line)}
  .salary-card-head{align-items:flex-start;flex-direction:column}
  .page-hr .salary-card .salary-add-level{width:100%;height:44px;min-height:44px}
  .salary-command-actions .btn{min-height:44px}
  .sal-details summary{min-height:44px}
  .sal-del{width:40px;height:40px}
  .page-hr .salary-card .sal-table .sal-note-row>td,.page-hr .salary-card .sal-table .sal-note-row:hover>td{padding-left:11px}
  .salary-form-section{padding:12px 12px 0}
  .salary-form .grid2{grid-template-columns:minmax(0,1fr)}
  .salary-total-field{grid-column:auto}
  .salary-form-actions{bottom:-18px;margin:0 -18px -18px;padding:12px 18px}
  .salary-form-actions .btn{flex:1;min-height:40px}
}
/* 请假证明材料上传(2026-07-10)：隐藏原生 input，瓷贴式「上传图片」+ 缩略图 */
.lv-upl{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:72px;height:72px;border:1.5px dashed var(--line-2);border-radius:var(--r);color:var(--muted);font-size:11px;cursor:pointer;background:var(--surface);transition:border-color .12s,color .12s,background .12s}
.lv-upl:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}
.lv-thumb{position:relative;display:inline-block}
.lv-thumb img{width:72px;height:72px;object-fit:cover;border:1px solid var(--line);border-radius:var(--r);display:block}
.lv-rm{position:absolute;top:-6px;right:-6px;width:18px;height:18px;line-height:16px;text-align:center;background:var(--bad);color:#fff;border-radius:50%;font-size:12px;cursor:pointer;box-shadow:var(--shadow-sm)}
.pg{display:inline-block;min-width:36px;text-align:center;padding:1px 7px;border-radius:5px;
  font-size:11px;font-weight:600;letter-spacing:.03em}
.pg-max{background:#efe9fe;color:#6d28d9}                  /* PMAX/股东 */
.pg-pro{background:var(--brand-tint);color:var(--brand-d)} /* PRO/管理 */
.pg-p{background:#eef1f5;color:#4e5769}                    /* P 序列 */

/* —— 工资明细弹窗：分组标题+标签值对齐+空值淡化+实发高亮 —— */
.pd-sec{margin-bottom:14px}
.pd-sec h4{margin:0 0 4px;font-size:12px;font-weight:600;color:var(--brand-d);letter-spacing:.03em;
  padding-bottom:5px;border-bottom:1px solid var(--line)}
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
.pd-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  font-size:12.5px;padding:5px 2px;border-bottom:1px solid #f2f4f8;min-height:28px}
.pd-l{color:var(--muted);white-space:nowrap}
.pd-v{font-weight:600;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;
  word-break:break-word}
.pd-key{background:var(--ok-tint);border-radius:6px;padding:5px 8px;border-bottom:none;margin:2px 0}
.pd-key .pd-l{color:#15803d;font-weight:600}
.pd-key .pd-v{font-weight:700;color:#15803d;font-size:15px}
.pd-cmt{margin-left:5px;color:var(--warn);cursor:help;display:inline-flex;vertical-align:middle}   /* 只读明细：有批注的项显评论图标，悬停看 */
.pd-tip{position:fixed;z-index:200;max-width:260px;background:#fff;border:1px solid var(--line-2);
  border-radius:8px;box-shadow:var(--shadow-pop);padding:8px 11px;font-size:12px;line-height:1.55;color:var(--ink);pointer-events:none}

/* —— badges（仿领星：描边小方标，如「在售」）—— */
.badge{display:inline-flex;align-items:center;min-height:20px;padding:1px 7px;border-radius:var(--badge-radius);
  font-size:var(--primitive-font-11);font-weight:600;line-height:1.45;border:1px solid transparent}
.b-draft{background:var(--color-surface-subtle);color:var(--muted);border-color:var(--line)}
.b-pending,.b-pending_sourcing{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-line)}
.b-approved{background:var(--ok-tint);color:var(--ok);border-color:var(--ok-line)}
.b-rejected{background:var(--bad-tint);color:var(--bad);border-color:var(--bad-line)}
.b-provisioned,.b-info{background:var(--brand-tint);color:var(--brand);border-color:var(--color-primary-border)}
.b-eliminated{background:var(--color-surface-muted);color:var(--muted);border-color:var(--line)}

/* —— 工资条下发：统计行(零计数淡化、非零着色) —— */
.slip-stats{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:13px}
.slip-stat{display:inline-flex;align-items:baseline;gap:5px}
.slip-stat .muted{font-size:12px}
.slip-stat b{font-variant-numeric:tabular-nums}

/* —— 工资行批注(WPS 单元格评论式)：数值字段旁评论图标+角标，点开气泡编辑 —— */
.cmt-btn{border:none;background:transparent;padding:0;margin-left:5px;cursor:pointer;color:var(--faint);vertical-align:middle;line-height:0}
.cmt-btn:hover{color:var(--brand)}
.cmt-btn.has{color:var(--warn)}
.cmt-wrap{position:relative}
.cmt-wrap.has-note::after{content:"";position:absolute;top:1px;right:1px;width:0;height:0;border-style:solid;
  border-width:0 8px 8px 0;border-color:transparent var(--warn) transparent transparent;pointer-events:none}
.cmt-pop{position:fixed;z-index:200;width:284px;background:#fff;border:1px solid var(--line-2);
  border-radius:9px;box-shadow:var(--shadow-pop);padding:11px}
.cmt-pop .cmt-h{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:7px}
.cmt-pop textarea{width:100%;min-height:66px;border:1px solid var(--line-2);border-radius:6px;padding:7px 9px;
  font-size:12.5px;font-family:inherit;line-height:1.5;resize:vertical;box-sizing:border-box;color:var(--ink)}
.cmt-pop textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.cmt-pop .cmt-foot{display:flex;justify-content:space-between;gap:8px;margin-top:8px}

/* —— 列配置器 —— */
.pc-cols{display:flex;gap:16px;max-height:60vh}
.pc-left{flex:1 1 0;min-width:0;overflow:auto;padding-right:4px}
.pc-left>input{width:100%;height:36px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r);font-size:var(--fs-13);margin-bottom:12px;background:#fff}
.pc-left>input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.pc-right{flex:0 0 256px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);overflow:hidden}
.pc-right-h{padding:10px 12px;font-weight:600;font-size:var(--fs-12);letter-spacing:.02em;color:var(--muted);border-bottom:1px solid var(--line);background:#fff}
.pc-right-list{overflow:auto;padding:6px}
.pc-grp{margin-bottom:14px}
.pc-grp-h{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-12);font-weight:600;color:var(--muted);letter-spacing:.02em;margin:0 0 6px;padding-bottom:5px;border-bottom:1px solid var(--line)}
.pc-all{color:var(--brand);cursor:pointer;font-weight:500}
.pc-all:hover{text-decoration:underline}
.pc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px 8px}
.pc-chk{display:flex;align-items:center;gap:7px;font-size:var(--fs-13);cursor:pointer;padding:5px 8px;margin:0 -4px;border-radius:var(--r-sm);transition:background .12s}
.pc-chk:hover{background:var(--brand-tint)}
.pc-chk input{cursor:pointer;flex:0 0 auto}
.pc-sel{display:flex;align-items:center;gap:7px;padding:6px 8px 6px 6px;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:5px;font-size:var(--fs-13);position:relative;transition:border-color .12s,box-shadow .12s}
.pc-sel:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm)}
.pc-sel.dragging{opacity:.45}
.pc-sel.drop-to{box-shadow:inset 0 2px 0 var(--brand)}
.pc-drag{cursor:grab;color:#c4cbd6;line-height:1;padding:0 1px;flex:0 0 auto}
.pc-sel:hover .pc-drag{color:var(--muted)}
.pc-num{width:20px;text-align:center;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;flex:0 0 auto}
.pc-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-pin,.pc-rm{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;cursor:pointer;transition:background .12s,color .12s}
.pc-pin{color:var(--faint)}
.pc-pin:hover{background:var(--brand-tint);color:var(--brand)}
.pc-pin.on{color:var(--brand)}
.pc-rm{color:var(--faint);font-weight:700;font-size:15px}
.pc-rm:hover{background:var(--bad-tint);color:var(--bad)}
.pc-sel.pinned{border-color:#c3d7f8;background:var(--brand-tint)}
.pc-sel.pinned::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--brand)}

/* —— 品牌·多店编辑表 + 列表店铺行 —— */
.bs-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.bs-tbl th{text-align:left;font-size:11px;font-weight:600;color:var(--muted);padding:2px 6px;border-bottom:1px solid var(--line);letter-spacing:.02em}
.bs-tbl td{padding:5px 6px;border-bottom:1px solid #f2f4f8;vertical-align:middle}
.bs-tbl select,.bs-tbl input{width:100%;height:30px;border:1px solid var(--line-2);border-radius:6px;padding:0 6px;font-size:12px;background:#fff;box-sizing:border-box}
.bs-tbl td.bs-x{width:26px;text-align:center}
.bs-tbl .pc-rm{position:static;margin:0 auto}
.bs-line{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:2px 0;font-size:12.5px}
.bs-inp{height:30px;border:1px solid var(--line-2);border-radius:6px;padding:0 6px;font-size:12px;background:#fff;max-width:120px;box-sizing:border-box}
.bs-inp:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}

/* —— 标签 —— */
.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--badge-radius);
  background:var(--brand-tint);color:var(--brand-d);font-size:var(--fs-12);font-weight:600;line-height:1.5;white-space:nowrap}
.tag-chip.mini{padding:1px 7px;font-size:11px;margin:1px 3px 1px 0}
.tag-x{cursor:pointer;color:var(--brand);opacity:.65;font-weight:700}
.tag-x:hover{opacity:1;color:var(--bad)}
.tag-edit{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line-2);border-radius:var(--r);padding:6px 8px;min-height:38px;background:#fff}
.tag-edit:focus-within{border-color:var(--brand);box-shadow:var(--ring)}
.tag-edit input{flex:1;min-width:90px;border:0;outline:none;height:24px;font-size:var(--fs-13);font-family:inherit;background:transparent}
.tag-edit.ro{border:0;padding:0;min-height:0;background:transparent}   /* 只读：仅展示标签 chip，无输入框/边框 */

/* —— kpi —— */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin-bottom:var(--s4)}
.kpi{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);padding:var(--s3) var(--s4);box-shadow:var(--card-shadow);position:relative;overflow:hidden}
.kpi::before{display:none}
.kpi .k{font-size:var(--fs-12);color:var(--muted);font-weight:550}
.kpi .v{font-size:22px;font-weight:700;margin-top:4px;line-height:1.15;letter-spacing:-.01em}
.kpi .v.pos{color:var(--ok)}.kpi .v.neg{color:var(--bad)}
.kpi .v.warn{color:var(--warn)}.kpi .v.brand{color:var(--brand)}
/* 自由文本单元格防溢出（长标题等）：超出省略号，避免撑破表格 */
td.ell{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* —— 产品详情：登记信息 + 利润测算 顶部两栏，紧凑等高 —— */
.pd-top{display:flex;gap:var(--s3);align-items:stretch;flex-wrap:wrap;margin-bottom:var(--s4)}
.pd-top>.card{margin-bottom:0}
.pd-top .pd-reg{flex:1 1 560px;min-width:460px;padding:14px}
.pd-top .pd-calc{flex:1 1 360px;min-width:320px;padding:14px}
.pd-top .field{margin-bottom:8px}
.pd-top .card h3{margin-bottom:10px}
.pd-top .pd-reg .grid3{gap:0 10px}
.pd-top .pd-calc .kpis{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.pd-top .pd-calc .kpi{padding:10px 12px}
.pd-top .pd-calc .kpi .v{font-size:var(--fs-20)}
.pd-top .pd-calc table{margin-top:6px}

/* —— alerts —— */
.alert{padding:10px 12px;border-radius:var(--control-radius);font-size:var(--fs-13);margin-bottom:var(--s3);border:1px solid transparent}
.alert.err{background:var(--bad-tint);color:var(--bad);border-color:var(--bad-line)}
.alert.warn{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-line)}
.alert.ok{background:var(--ok-tint);color:var(--ok);border-color:var(--ok-line)}

/* —— login —— */
.login-wrap{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s5);
  overflow:hidden;background:var(--color-canvas)}
.login-wrap::before{display:none}
.login-box{position:relative;background:var(--color-surface);border:1px solid var(--line);
  border-radius:var(--dialog-radius);box-shadow:var(--shadow-md);padding:32px;width:390px;max-width:100%}
.login-icp{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);color:var(--muted);font-size:12px;text-decoration:none;white-space:nowrap}
.login-icp:hover{color:var(--color-text);text-decoration:underline}
@media(max-height:620px){
  .login-wrap{flex-direction:column}
  .login-icp{position:static;display:block;margin:18px auto 0;transform:none}
}
.login-box h1{margin:0 0 4px;font-size:var(--fs-24);font-weight:700;letter-spacing:0}
.login-box p{margin:0 0 22px;color:var(--muted);font-size:var(--fs-13)}

/* —— misc bars / hints —— */
.flexbar{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.content>.flexbar:first-child h2{letter-spacing:0}
.content>.flexbar:first-child{margin-bottom:18px}
small.hint{color:var(--muted);font-size:11px}
.hint{color:var(--muted);font-size:11px}

/* —— modal —— */
.modal-bg{position:fixed;inset:0;background:hsl(222 47% 11% / .48);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:50;padding:var(--s5)}
.modal{background:var(--color-surface);border:1px solid var(--line);border-radius:var(--dialog-radius);padding:20px;width:440px;max-width:100%;max-height:90vh;overflow:auto;
  box-shadow:var(--dialog-shadow);scrollbar-width:thin;scrollbar-color:var(--primitive-slate-300) transparent}
.modal h3{margin-top:0;font-size:var(--fs-16);font-weight:600;letter-spacing:0}
/* 滚动条美化：滑块圆角、轨道上下留白，避免把右上/右下圆角"切方" */
.modal::-webkit-scrollbar{width:12px;height:12px}
.modal::-webkit-scrollbar-track{background:transparent;margin:16px 0}
.modal::-webkit-scrollbar-thumb{background:#ccd2dc;border-radius:10px;border:3px solid transparent;background-clip:padding-box}
.modal::-webkit-scrollbar-thumb:hover{background:#aab4c6;border:3px solid transparent;background-clip:padding-box}
.modal::-webkit-scrollbar-corner{background:transparent}

/* 站点参数批量设置 */
.param-table-card{padding:0;overflow-x:auto}
.param-bulk-block{border:1px solid var(--line);border-radius:var(--card-radius);padding:12px;margin-bottom:12px;background:var(--surface)}
.param-bulk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:13px}
.param-bulk-head b{font-size:13px;color:var(--ink)}
.param-bulk-actions{display:flex;gap:8px;margin-bottom:10px}
.param-site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.param-site-check{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--color-surface);cursor:pointer;transition:var(--transition-interactive)}
.param-site-check:hover{border-color:var(--brand);background:var(--brand-tint)}
.param-site-check input{width:16px;height:16px;margin:0;accent-color:var(--brand)}
.param-site-check span{display:flex;min-width:0;flex-direction:column;line-height:1.2}.param-site-check b{font-size:13px;color:var(--ink)}.param-site-check small{font-size:11px;color:var(--muted)}
.param-bulk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.param-bulk-field{display:grid;grid-template-columns:minmax(132px,.85fr) minmax(0,1fr);align-items:center;gap:10px;min-height:48px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--color-surface)}
.param-bulk-enable{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink)}.param-bulk-enable input{width:16px;height:16px;margin:0;accent-color:var(--brand)}
.param-bulk-input{position:relative;display:block}.param-bulk-input input{width:100%;height:34px;padding-right:30px}.param-bulk-input em{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-style:normal;font-size:12px;color:var(--muted);pointer-events:none}
.param-bulk-note{margin:-2px 0 12px;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:720px){.param-bulk-grid{grid-template-columns:1fr}.param-bulk-field{grid-template-columns:1fr}.param-site-grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr))}}

/* 角色权限矩阵：权限说明、风险等级、依赖与授权范围必须在勾选前可见。 */
.perm-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;align-items:end}
.perm-toolbar .field{margin-bottom:8px}.perm-search,.perm-filter{min-width:0}
.perm-summary{display:flex;align-items:center;gap:14px;min-height:34px;padding:6px 10px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:12px;color:var(--muted)}
.perm-summary b{color:var(--ink)}.danger-text{color:var(--bad)!important}
.perm-matrix{max-height:48vh;overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff}
.perm-module{border-bottom:1px solid var(--line)}.perm-module:last-child{border-bottom:0}
.perm-module-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:9px;min-height:38px;padding:5px 10px;background:#f8fafc;border-bottom:1px solid #edf0f4}
.perm-module-head b{font-size:13px}.perm-module-head [data-modcount]{font-size:11px;color:var(--muted)}.perm-module-head .btn{margin-left:auto}
.perm-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:5px 10px}
.perm-item{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:8px 5px;border-radius:7px;cursor:pointer}.perm-item:hover{background:var(--brand-tint)}
.perm-item>input{flex:0 0 auto;width:16px;height:16px;margin:2px 0 0;accent-color:var(--brand)}
.perm-item>input:disabled+.perm-copy{opacity:.58}.perm-item:has(input:disabled){cursor:not-allowed}
.perm-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.perm-title{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--ink)}
.perm-desc{font-size:11px;line-height:1.35;color:var(--muted)}.perm-copy code{font-size:10px;color:#8390a3;word-break:break-all}
.perm-risk,.perm-lock{display:inline-flex;align-items:center;min-height:18px;padding:0 5px;border-radius:9px;font-size:10px;font-weight:700;line-height:1}
.perm-risk.high{color:#8a5708;background:var(--warn-tint);border:1px solid var(--warn-line)}
.perm-risk.critical{color:var(--bad);background:var(--bad-tint);border:1px solid var(--bad-line)}
.perm-lock{color:#667085;background:#eef1f5;border:1px solid #d7dce4}
.perm-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.perm-footer .btn+.btn{margin-left:6px}
@media(max-width:720px){.perm-toolbar{grid-template-columns:1fr}.perm-items{grid-template-columns:1fr}.perm-footer{align-items:flex-start;flex-direction:column}.perm-footer>div{align-self:flex-end}}

/* —— 类目树 —— */
.cat-tree{max-height:460px;overflow:auto;margin-top:10px}
.cat-top-h{display:block;width:100%;padding:9px 6px;cursor:pointer;font:inherit;font-weight:600;color:var(--ink);text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);user-select:none}
.cat-top-h:hover{background:var(--color-surface-muted)}
.cat-subs{padding:10px 6px 14px;display:flex;flex-wrap:wrap;gap:8px}
.cat-chip{display:inline-block;padding:5px 10px;border:1px solid var(--line-2);border-radius:var(--control-radius);
  background:var(--color-surface);color:var(--ink);cursor:pointer;font:inherit;font-size:var(--fs-13);transition:var(--transition-interactive)}
.cat-chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}
.cat-top-h:focus-visible,.cat-chip:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}

/* —— 主图 —— */
.image-task-bell{color:var(--brand-d)}
.image-job-centre-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.image-job-centre-head h3{margin:0 0 4px;font-size:var(--fs-18)}
.image-job-centre-head p{margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.5}
.image-job-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:9px 11px;border:1px solid var(--color-primary-border);border-radius:var(--r);background:var(--color-primary-subtle);font-size:var(--fs-12)}
.image-job-summary span{color:var(--muted)}
.image-job-empty{display:grid;min-height:150px;place-items:center;border:1px dashed var(--line-2);border-radius:var(--r);color:var(--muted);font-size:var(--fs-13)}
.image-job-list{display:grid;gap:9px;max-height:62vh;overflow:auto;padding-right:3px}
.image-job-row{padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--color-surface)}
.image-job-row.is-running,.image-job-row.is-queued{border-color:var(--color-primary-border)}
.image-job-row.is-failed{border-color:var(--bad-line)}
.image-job-row.is-partial{border-color:var(--warn-line)}
.image-job-row-head,.image-job-meta,.image-job-actions{display:flex;align-items:center;justify-content:space-between;gap:9px}
.image-job-row-head>div{display:flex;align-items:center;gap:7px;min-width:0}
.image-job-row-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.image-job-row-head>div>span,.image-job-meta{color:var(--muted);font-size:var(--primitive-font-11)}
.image-job-status{flex:0 0 auto;padding:2px 8px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);font-size:10px;font-weight:700}
.image-job-row.is-running .image-job-status,.image-job-row.is-queued .image-job-status{border-color:var(--color-primary-border);background:var(--brand-tint);color:var(--brand-d)}
.image-job-row.is-succeeded .image-job-status{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-job-row.is-failed .image-job-status{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.image-job-row.is-partial .image-job-status{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-job-meta{margin-top:7px}
.image-job-progress{height:6px;margin-top:6px;overflow:hidden;border-radius:var(--r-full);background:var(--line)}
.image-job-progress i{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .2s ease}
.image-job-error{margin-top:8px;padding:7px 9px;border-radius:var(--r-sm);background:var(--bad-tint);color:var(--bad);font-size:var(--primitive-font-11);line-height:1.45;overflow-wrap:anywhere}
.image-job-actions{justify-content:flex-end;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.zoom-ico{position:absolute;top:2px;right:2px;width:18px;height:18px;line-height:18px;text-align:center;font-size:10px;
  background:rgba(0,0,0,.55);color:#fff;border-radius:6px;cursor:zoom-in;user-select:none}
.zoom-ico:hover{background:rgba(0,0,0,.82)}
/* 缩略图悬停放大浮层(JS bindImgHover 定位，position:fixed 不被表格 overflow 裁剪) */
.img-hover{display:none;position:fixed;z-index:90;width:480px;height:480px;max-width:92vw;max-height:88vh;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-pop);padding:8px;pointer-events:none}
.img-hover img{width:100%;height:100%;object-fit:contain}
.img-grid{display:flex;flex-wrap:wrap;gap:var(--s3)}
.img-card{width:184px;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}
.img-card img{width:100%;height:184px;object-fit:contain;background:#fff;display:block;border-bottom:1px solid var(--line)}
.img-actions{padding:8px;display:flex;gap:6px;flex-wrap:wrap}
.image-gallery-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.image-gallery-head h3{margin:0 0 7px}
.image-gallery-counts,.image-gallery-downloads{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.image-download-note{flex-basis:100%;color:var(--muted);font-size:10.5px;line-height:1.45;text-align:right}
.image-count{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 9px;border:1px solid var(--line);border-radius:var(--r-full);font-size:11px;font-weight:600}
.image-count b{font-size:13px}
.image-count.is-approved{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-count.is-pending{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-card{display:flex;flex-direction:column;transition:border-color .14s ease,box-shadow .14s ease}
.image-card.is-approved{border-color:var(--ok-line);box-shadow:inset 0 3px 0 var(--ok)}
.image-card-preview{position:relative;background:#fff}
.image-card-preview .image-status-badge{position:absolute;z-index:2;top:8px;left:8px;box-shadow:0 1px 3px hsl(222 47% 11% / .14)}
.image-preview-empty{display:grid;place-items:center;aspect-ratio:1;background:var(--surface);color:var(--muted);font-size:12px}
.image-status-badge{display:inline-flex;align-items:center;min-height:23px;padding:2px 8px;border:1px solid var(--line);border-radius:var(--r-full);background:#fff;color:var(--muted);font-size:10.5px;font-weight:700;white-space:nowrap}
.image-status-badge.is-approved{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-status-badge.is-pending{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-card-copy{display:grid;gap:5px;min-height:92px;padding:9px 10px 5px}
.image-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.image-card-title b{font-size:13px;color:var(--ink)}
.image-card-title span,.image-card-detail{color:var(--muted);font-size:10.5px}
.image-card-provenance{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.image-ai-badge,.image-disclosure-badge{display:inline-flex;align-items:center;min-height:20px;padding:1px 7px;border:1px solid var(--color-primary-border);border-radius:var(--r-full);background:var(--brand-tint);color:var(--brand-d);font-size:9.5px;font-weight:750;line-height:1.25}
.image-disclosure-badge.is-required{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-disclosure-badge.is-clear{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-disclosure-badge.is-pending{border-color:var(--line);background:var(--surface);color:var(--muted)}
.image-card-trace{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap;color:var(--muted);font-size:10.5px;line-height:1.45}
.image-market-badge{display:inline-flex;padding:1px 6px;border:1px solid var(--color-primary-border);border-radius:var(--r-full);background:var(--brand-tint);color:var(--brand-d);font-weight:650}
.image-market-badge.is-source{border-color:var(--line);background:var(--surface);color:var(--muted)}
.image-card .img-actions{margin-top:auto;border-top:1px solid var(--line);background:var(--surface)}
.image-card .img-actions .btn{flex:1 1 auto;min-width:46px}
.image-card .img-actions a.btn{display:inline-flex;align-items:center;justify-content:center}
.image-workflow-dialog{min-width:0}
.image-workflow-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.image-workflow-head h3{margin:2px 0 3px;font-size:var(--fs-18)}
.image-workflow-head p{margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.5}
.image-workflow-kicker{display:block;color:var(--brand);font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.image-workflow-layout{display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:16px;padding:16px 0}
.image-workflow-preview{width:100%;aspect-ratio:1;object-fit:contain;align-self:start;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.image-workflow-preview.is-empty{display:grid;place-items:center;background:var(--surface);color:var(--muted);font-size:12px}
.image-workflow-form{min-width:0}
.image-workflow-form .field:last-child{margin-bottom:0}
.image-workflow-actions{position:sticky;bottom:-20px;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:2px -4px -4px;padding:12px 4px 4px;border-top:1px solid var(--line);background:var(--color-surface)}
.image-brief-summary{min-width:0;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--color-surface)}
.image-brief-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;min-width:0}
.image-brief-summary-grid>.muted{grid-column:1/-1;margin:0;font-size:var(--fs-12)}
.image-brief-summary-row{display:grid;grid-template-columns:minmax(72px,auto) minmax(0,1fr);align-items:start;gap:8px;min-width:0;color:var(--ink);font-size:var(--fs-12);line-height:1.5;overflow-wrap:anywhere}
.image-brief-summary-row>span{color:var(--muted);font-weight:650}
.image-brief-summary-row>div{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.image-brief-chips{display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}
.image-brief-chip{max-width:100%;padding:2px 7px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);overflow-wrap:anywhere}
.image-brief-palette{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}
.image-brief-palette-item{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
.image-brief-palette-item small{font-size:10px;font-variant-numeric:tabular-nums}
.image-brief-swatch{display:inline-block;flex:0 0 16px;width:16px;height:16px;border:1px solid var(--line-2);border-radius:4px}
.image-planning-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:11px 12px;border:1px solid var(--color-primary-border);border-radius:var(--r);background:var(--color-primary-subtle)}
.image-planning-buttons{display:flex;flex:0 0 auto;align-items:center;gap:8px;flex-wrap:wrap}
.image-planning-actions p{max-width:760px;margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.image-brief-advanced{margin-top:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--color-surface)}
.image-brief-advanced>summary{display:flex;align-items:baseline;gap:8px;padding:10px 12px;color:var(--ink);font-size:var(--fs-13);font-weight:650;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}
.image-brief-advanced>summary small{color:var(--muted);font-size:var(--primitive-font-11);font-weight:500}
.image-brief-advanced>summary::after{content:'展开';margin-left:auto;color:var(--muted);font-size:var(--primitive-font-11);font-weight:600}
.image-brief-advanced[open]>summary::after{content:'收起'}
.image-brief-advanced>summary:focus-visible{outline:none;box-shadow:var(--ring)}
.image-brief-advanced>section{padding:12px;border-top:1px solid var(--line)}
.image-brief-advanced>section h4{margin:0 0 10px;color:var(--ink);font-size:var(--fs-13)}
.image-advanced-state{margin-bottom:10px;color:var(--ink);font-size:var(--fs-12);font-weight:650;line-height:1.5;overflow-wrap:anywhere}
.image-advanced-state .hint{display:block;margin-top:3px;font-weight:400}
.image-field-state{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:700;vertical-align:1px}
.image-field-state.is-ready{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-field-state.is-pending{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-field-empty{margin-top:9px;padding:8px 10px;border-radius:var(--r-sm);background:var(--surface);color:var(--muted);font-size:var(--primitive-font-11);line-height:1.5}
.image-generation-block{display:block;margin:7px 0 14px;color:var(--warn)}
.image-storyboard-section{margin-top:18px;padding-top:17px;border-top:1px solid var(--line)}
.image-storyboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}
.image-storyboard-head>div{min-width:0}
.image-storyboard-head h3{margin:3px 0 3px;font-size:var(--fs-18);line-height:1.25}
.image-storyboard-head p{max-width:720px;margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.image-storyboard-head>.btn{flex:0 0 auto}
.image-suite-notice{margin:10px 0 12px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r);font-size:var(--fs-12);font-weight:620;line-height:1.5}
.image-suite-notice.is-warning{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-suite-notice.is-pending{border-color:var(--color-primary-border);background:var(--brand-tint);color:var(--brand-d)}
.image-suite-notice.is-ready{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-storyboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.image-shot-card{display:flex;min-width:0;overflow:hidden;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-card);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:var(--transition-interactive)}
.image-shot-card.is-running{border-color:var(--color-primary-border);box-shadow:inset 0 3px 0 var(--brand),var(--shadow-sm)}
.image-shot-card.is-generated{border-color:var(--warn-line);box-shadow:inset 0 3px 0 var(--warn),var(--shadow-sm)}
.image-shot-card.is-approved{border-color:var(--ok-line);box-shadow:inset 0 3px 0 var(--ok),var(--shadow-sm)}
.image-shot-card.is-error{border-color:var(--bad-line);box-shadow:inset 0 3px 0 var(--bad),var(--shadow-sm)}
.image-shot-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start;padding:10px 10px 8px}
.image-shot-number{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:var(--brand-tint);color:var(--brand-d);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.image-shot-kind{display:block;margin-bottom:1px;color:var(--muted);font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.image-shot-ai{color:var(--brand-d);letter-spacing:0;text-transform:none}
.image-shot-head h4{overflow:hidden;margin:0;color:var(--ink);font-size:12.5px;line-height:1.35;text-overflow:ellipsis}
.image-shot-status{display:inline-flex;align-items:center;gap:3px;min-height:22px;padding:2px 7px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-size:9.5px;font-weight:700;white-space:nowrap}
.image-shot-status.is-ready,.image-shot-status.is-running{border-color:var(--color-primary-border);background:var(--brand-tint);color:var(--brand-d)}
.image-shot-status.is-pending,.image-shot-status.is-generated{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.image-shot-status.is-approved{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-shot-status.is-error{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.image-shot-preview{display:grid;aspect-ratio:1/1;place-items:center;overflow:hidden;border-block:1px solid var(--line);background:#fff}
.image-storyboard .image-shot-preview>img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center;cursor:zoom-in}
.image-shot-placeholder{display:grid;gap:2px;place-items:center;color:var(--muted)}
.image-shot-placeholder span{color:var(--line-2);font-size:34px;font-weight:800;line-height:1}
.image-shot-placeholder small{font-size:10px}
.image-shot-details{border-top:1px solid var(--line)}
.image-shot-details>summary{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;color:var(--muted);font-size:10.5px;font-weight:650;cursor:pointer;list-style:none}
.image-shot-details>summary::-webkit-details-marker{display:none}
.image-shot-details>summary::after{content:'⌄';font-size:12px}
.image-shot-details[open]>summary::after{content:'⌃'}
.image-shot-details .image-shot-body{padding-top:4px}
.image-shot-body{display:grid;gap:8px;padding:10px}
.image-shot-question,.image-shot-evidence,.image-shot-copy{min-width:0}
.image-shot-question>span,.image-shot-evidence>span,.image-shot-copy>span{display:block;margin-bottom:2px;color:var(--muted);font-size:9.5px;font-weight:700;letter-spacing:.03em}
.image-shot-question b{display:block;color:var(--ink);font-size:11.5px;line-height:1.45}
.image-shot-evidence p,.image-shot-copy p{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);font-size:10.5px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.image-shot-copy p{-webkit-line-clamp:2}
.image-shot-copy em{color:var(--muted);font-style:normal}
.image-shot-actions{display:flex;gap:6px;margin-top:auto;padding:9px 10px;border-top:1px solid var(--line);background:var(--surface)}
.image-shot-actions .btn{flex:1 1 0;min-width:0}
.image-shot-actions .btn:focus-visible,.image-storyboard-head>.btn:focus-visible{outline:none;box-shadow:var(--ring)}
.image-review-progress{margin-bottom:8px;padding:7px 9px;border:1px solid var(--warn-line);border-radius:var(--r);background:var(--warn-tint);color:var(--warn);font-size:11.5px;font-weight:650}
.image-review-progress.is-ready{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.image-review-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.image-review-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:flex-start;min-width:0;padding:9px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer}
.image-review-item:hover{border-color:var(--color-primary-border);background:var(--brand-tint)}
.image-review-item:has(input:checked){border-color:var(--ok-line);background:var(--ok-tint)}
.image-review-item input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--ok);cursor:pointer}
.image-review-item span{display:grid;gap:2px;min-width:0}
.image-review-item b{color:var(--ink);font-size:12px}
.image-review-item small{color:var(--muted);font-size:10.5px;line-height:1.4}
.image-ai-disclosure{min-width:0;margin:11px 0 0;padding:11px;border:1px solid var(--color-primary-border);border-radius:var(--r);background:var(--color-primary-subtle)}
.image-ai-disclosure legend{padding:0 5px;color:var(--ink);font-size:12px;font-weight:750}
.image-required-mark{display:inline-flex;margin-left:4px;padding:1px 5px;border-radius:var(--r-full);background:var(--warn-tint);color:var(--warn);font-size:9.5px;vertical-align:1px}
.image-ai-disclosure>p{margin:0 0 9px;color:var(--muted);font-size:10.5px;line-height:1.55}
.image-ai-disclosure-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.image-ai-disclosure-options label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;padding:9px;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer}
.image-ai-disclosure-options label:has(input:checked){border-color:var(--brand);box-shadow:var(--ring)}
.image-ai-disclosure-options input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--brand)}
.image-ai-disclosure-options span{display:grid;gap:2px}.image-ai-disclosure-options b{color:var(--ink);font-size:11.5px}.image-ai-disclosure-options small{color:var(--muted);font-size:10px;line-height:1.4}
.image-ai-disclosure-note{margin-top:8px;color:var(--brand-d);font-size:10px;line-height:1.45}
.image-review-note{margin-top:11px}
.image-review-note textarea{resize:vertical}
@media(max-width:1180px){.image-storyboard{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.image-storyboard{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
  .image-job-centre-head,.image-job-summary{align-items:stretch;flex-direction:column}
  .image-job-actions{align-items:stretch;flex-direction:column}.image-job-actions .btn{width:100%}
  .image-gallery-head{align-items:stretch;flex-direction:column}
  .image-gallery-downloads{width:100%}.image-gallery-downloads .btn{flex:1 1 150px}
  .image-workflow-layout{grid-template-columns:1fr}
  .image-workflow-preview{max-width:240px;margin-inline:auto}
  .image-brief-summary-grid{grid-template-columns:1fr}
  .image-brief-summary-row{grid-template-columns:1fr;gap:3px}
  .image-brief-advanced>summary{align-items:flex-start;flex-direction:column}
  .image-brief-advanced>summary::after{margin-left:0}
  .image-planning-actions{align-items:stretch;flex-direction:column}
  .image-planning-buttons{width:100%}
  .image-planning-buttons .btn{flex:1 1 100%;min-height:40px}
  .image-storyboard-head{align-items:stretch;flex-direction:column}
  .image-storyboard-head>.btn{width:100%;min-height:40px}
  .image-storyboard{grid-template-columns:1fr}
  .image-shot-preview{aspect-ratio:1/1}
  .image-shot-actions .btn{min-height:40px}
  .image-review-list{grid-template-columns:1fr}
  .image-ai-disclosure-options{grid-template-columns:1fr}
  .image-workflow-actions{align-items:stretch;flex-direction:column-reverse}
  .image-workflow-actions .btn{width:100%}
}

/* —— 文案工具 —— */
.rad{display:inline-block;margin-right:16px;font-weight:400;color:var(--ink);cursor:pointer}
.ct-out{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;
  white-space:pre-wrap;font-size:var(--fs-13);line-height:1.7}
mark{background:#fff3a3;padding:0 1px;border-radius:2px}

/* —— 市场调研结果卡片 —— */
.mcp-cards{display:flex;flex-wrap:wrap;gap:10px}
.mcp-card{border:1px solid var(--line);border-radius:var(--r-card);padding:10px 12px;background:var(--surface);
  font-size:var(--fs-13);line-height:1.7;flex:1 1 280px;min-width:240px;max-width:520px;word-break:break-word}
.mcp-card img{max-width:100%;border-radius:var(--r-sm)}

/* --- Market research workspace --- */
.research-workspace{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.research-sidebar{position:sticky;top:12px;display:flex;flex-direction:column;min-width:0;max-height:calc(100vh - 92px);overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}
.research-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:14px 14px 10px;font-size:var(--fs-13);font-weight:700;color:var(--ink);border-bottom:1px solid var(--line)}
.research-sidebar-head>div{min-width:0}
.research-sidebar-head>div>span{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:400}
.research-group-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin:10px 10px 6px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.research-group-tab{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;height:28px;padding:0 6px;border:0;border-radius:4px;background:transparent;color:var(--muted);font:inherit;font-size:var(--fs-12);font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}
.research-group-tab:hover{color:var(--brand);background:#fff}
.research-group-tab.active,.research-group-tab[aria-selected="true"]{color:var(--brand-d);background:#fff;box-shadow:var(--shadow-sm)}
.research-tool-list{display:flex;flex-direction:column;gap:2px;padding:4px 8px 10px;overflow-y:auto;min-height:80px}
.research-tool{position:relative;display:block;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.research-tool:hover{background:var(--surface);border-color:var(--line)}
.research-tool.active,.research-tool[aria-current="true"]{background:var(--brand-tint);border-color:#c9daf9;color:var(--brand-d);box-shadow:inset 3px 0 0 var(--brand)}
.research-tool-title{display:block;font-size:var(--fs-13);font-weight:600;line-height:1.35}
.research-tool-desc{display:-webkit-box;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}
.research-tool.active .research-tool-desc{color:#5772a4}
.research-recent{flex:0 0 auto;border-top:1px solid var(--line);background:var(--surface)}
.research-recent-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px 6px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.research-recent-head>span{display:inline-flex;align-items:center;gap:5px}
.research-recent-head button{padding:2px 4px;border:0;border-radius:3px;background:transparent;color:var(--brand);font:inherit;font-size:11px;cursor:pointer;letter-spacing:0;text-transform:none}
.research-recent-head button:hover{background:#fff}
.research-history-list{display:flex;flex-direction:column;gap:2px;padding:0 8px 9px;max-height:180px;overflow:auto}
.research-history-item{display:block;width:100%;padding:7px 8px;border:0;border-radius:var(--r-sm);background:transparent;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.research-history-item:hover{background:#fff;box-shadow:var(--shadow-sm)}
.research-history-title{display:flex;align-items:center;justify-content:space-between;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12);font-weight:600}
.research-history-title b{min-width:0;overflow:hidden;text-overflow:ellipsis}
.research-history-title>span{flex:0 0 auto;color:var(--brand);font-size:10px;font-weight:600}
.research-history-meta{display:block;margin-top:2px;color:var(--faint);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.research-history-empty{padding:6px 12px 12px;color:var(--faint);font-size:11px;line-height:1.5}
.research-main{min-width:0}
.research-query-card{margin:0 0 12px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}
.research-query-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid var(--line)}
.research-query-kicker{margin-bottom:3px;color:var(--brand);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.research-query-title{margin:0;color:var(--ink);font-size:var(--fs-20);font-weight:700;line-height:1.3;letter-spacing:-.01em}
.research-query-head p,.research-query-head .research-query-copy{max-width:760px;margin:4px 0 0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.research-source{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-height:24px;padding:2px 8px;border:1px solid #c9daf9;border-radius:var(--r-full);background:var(--brand-tint);color:var(--brand-d);font-size:11px;font-weight:600;white-space:nowrap}
.research-source::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand)}
.research-source.sif{border-color:#a5e3e8;background:#ecfeff;color:#0e7490}
.research-source.sif::before{background:#0891b2}
.research-source-warning{display:flex;align-items:center;gap:6px;margin:-3px 0 12px;padding:8px 10px;border:1px solid var(--warn-line);border-radius:var(--r);background:var(--warn-tint);color:#92400e;font-size:var(--fs-12);line-height:1.45}
.research-query-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
.research-field{grid-column:span 4;min-width:0;margin:0}
.research-field.wide,.research-field.research-field-wide{grid-column:span 8}
.research-field.full,.research-field.research-field-full{grid-column:1/-1}
.research-field label{display:block;margin:0 0 5px;color:var(--muted);font-size:var(--fs-12);font-weight:600}
.research-required{margin-left:2px;color:var(--bad);font-weight:700}
.research-field input:not([type="checkbox"]):not([type="radio"]),.research-field select,.research-field textarea,.research-result-search{width:100%;min-width:0;height:34px;box-sizing:border-box;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;font-size:var(--fs-13);transition:border-color .15s,box-shadow .15s,background .15s}
.research-field textarea{height:auto;min-height:72px;padding-top:7px;padding-bottom:7px;resize:vertical}
.research-field input::placeholder,.research-field textarea::placeholder,.research-result-search::placeholder{color:var(--faint)}
.research-field-help{margin-top:4px;color:var(--faint);font-size:11px;line-height:1.4}
.research-field-error{display:block;margin-top:4px;color:var(--bad);font-size:11px;line-height:1.35}
.research-field.has-error input,.research-field.has-error select,.research-field.has-error textarea,.research-field[aria-invalid="true"] input,.research-field[aria-invalid="true"] select{border-color:#e7a4a0;background:var(--bad-tint)}
.research-form-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.research-form-actions .btn{min-width:88px}
.research-form-actions>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.research-advanced{flex:1 1 auto;min-width:0;margin:0;border:0}
.research-advanced>summary{display:flex;align-items:center;gap:6px;width:max-content;max-width:100%;padding:2px;color:var(--brand);font-size:var(--fs-12);font-weight:600;cursor:pointer;list-style:none}
.research-advanced>summary::-webkit-details-marker{display:none}
.research-advanced>summary::before{content:"+";display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--brand-tint);font-size:13px;line-height:1}
.research-advanced[open]>summary::before{content:"−"}
.research-advanced[open]>.research-query-grid{padding-top:10px}
.research-force{display:flex;align-items:flex-start;gap:7px;margin-top:7px;color:var(--muted);font-size:var(--fs-12);cursor:pointer;user-select:none;flex-wrap:wrap}
.research-force input{width:14px;height:14px;margin:0;accent-color:var(--brand)}
.research-force small{flex-basis:100%;margin-left:21px;color:var(--faint);font-size:10px;line-height:1.4}
.research-state{display:flex;min-height:230px;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;padding:34px 22px;text-align:center;background:var(--card);border:1px dashed var(--line-2);border-radius:var(--r-card);color:var(--muted)}
.research-state.error,.research-state.is-error{border-color:var(--bad-line);background:#fffafa}
.research-state-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:50%;background:var(--brand-tint);color:var(--brand);font-size:20px}
.research-state.error .research-state-icon,.research-state.is-error .research-state-icon{background:var(--bad-tint);color:var(--bad)}
.research-state-title{margin:0 0 5px;color:var(--ink);font-size:var(--fs-15);font-weight:700}
.research-state-copy{max-width:520px;margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.6}
.research-state-copy+.btn{margin-top:14px}
.research-skeleton{width:100%;padding:34px 22px;text-align:center}
.research-skeleton>i,.research-skeleton-line{display:block;height:11px;margin:9px 0;border-radius:4px;background:linear-gradient(90deg,#edf0f5 25%,#f8f9fb 50%,#edf0f5 75%);background-size:200% 100%;animation:research-shimmer 1.25s linear infinite}
.research-skeleton>i:nth-child(1),.research-skeleton-line:nth-child(1){width:34%;height:15px}
.research-skeleton>i:nth-child(2),.research-skeleton-line:nth-child(2){width:82%}
.research-skeleton>i:nth-child(3),.research-skeleton-line:nth-child(3){width:68%}
.research-skeleton>i:nth-child(4),.research-skeleton-line:nth-child(4){width:91%}
.research-skeleton-lines{width:min(520px,90%);margin-top:18px}
.research-skeleton-lines span{display:block;height:9px;margin:8px auto;border-radius:4px;background:linear-gradient(90deg,#edf0f5 25%,#f8f9fb 50%,#edf0f5 75%);background-size:200% 100%;animation:research-shimmer 1.25s linear infinite}
.research-skeleton-lines span:nth-child(1){width:92%}
.research-skeleton-lines span:nth-child(2){width:76%}
.research-skeleton-lines span:nth-child(3){width:84%}
@keyframes research-shimmer{to{background-position:-200% 0}}
.research-result{min-width:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);overflow:hidden}
.research-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}
.research-result-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;color:var(--ink);font-size:var(--fs-15);font-weight:700;line-height:1.4}
.research-result-title h3,.card .research-result-title h3{margin:0;font-size:var(--fs-15)}
.research-result-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;color:var(--muted);font-size:11px}
.research-result-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.research-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));border-bottom:1px solid var(--line);background:var(--surface)}
.research-stat{min-width:0;padding:10px 14px;border-right:1px solid var(--line)}
.research-stat:last-child{border-right:0}
.research-stat .k,.research-stat-label{display:block;color:var(--muted);font-size:11px}
.research-stat .v,.research-stat-value{display:block;margin-top:2px;color:var(--ink);font-size:var(--fs-16);font-weight:700;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.research-stat>span{display:block;color:var(--muted);font-size:11px}
.research-stat>b{display:block;margin-top:2px;color:var(--ink);font-size:var(--fs-16);font-weight:700;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.research-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#fff;border-bottom:1px solid var(--line)}
.research-result-toolbar>*{min-width:0}
.research-result-search{display:flex;align-items:center;gap:7px;width:220px;padding:0 8px;color:var(--faint)}
.research-result-search input{flex:1;min-width:0;height:30px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-12);box-shadow:none!important}
.research-result-search button{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--faint);font:inherit;font-size:16px;cursor:pointer}
.research-result-search button:hover{background:var(--surface);color:var(--bad)}
.research-result-search:focus-within{border-color:var(--brand);box-shadow:var(--ring)}
.research-result-toolbar>label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;white-space:nowrap}
.research-result-toolbar select{height:28px;padding:0 5px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;color:var(--ink);font:inherit;font-size:11px}
.research-result-body{min-width:0}
.research-sif-result{min-width:0;padding:12px 14px}
.research-sif-result>.mcp-card{width:auto;max-width:none;margin:0 0 8px;background:#fff}
.research-sif-result>.mcp-card:last-child{margin-bottom:0}
.research-sif-result>.alert{margin:0}
.research-table-wrap{position:relative;max-width:100%;max-height:64vh;overflow:auto;background:#fff;scrollbar-gutter:stable}
.research-table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;table-layout:auto;font-size:var(--fs-12)}
.research-table th,.research-table td{box-sizing:border-box;padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}
.research-table thead th{position:sticky;top:0;z-index:4;height:38px;background:var(--surface);color:#4e5769;font-size:11px;font-weight:700;letter-spacing:.02em;box-shadow:0 1px 0 var(--line)}
.research-table tbody tr:nth-child(even){background:#fbfcfe}
.research-table tbody tr:hover{background:var(--brand-tint)}
.research-table tbody tr:last-child td{border-bottom:0}
.research-table td.num,.research-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.research-table th.research-sticky,.research-table td.research-sticky{position:sticky;left:0;z-index:2;background:inherit;box-shadow:1px 0 0 var(--line)}
.research-table th.research-sticky{z-index:5;background:var(--surface)}
.research-sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer}
.research-sort.active,.research-sort[aria-sort]{color:var(--brand)}
.research-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.research-cell.wrap{white-space:normal;line-height:1.4}
.research-cell-img{display:block;width:42px;height:42px;object-fit:contain;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
.research-row-index{width:46px;color:var(--faint);text-align:right!important;font-variant-numeric:tabular-nums}
.research-wrapper-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 10px;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line);background:#fbfcfe}
.research-meta-chip{display:inline-flex;align-items:center;gap:4px;min-height:21px;padding:1px 7px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-size:11px;white-space:nowrap}
.research-meta-chip.ok{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.research-meta-chip.live{border-color:#c9daf9;background:var(--brand-tint);color:var(--brand-d)}
.research-value-list{display:flex;flex-direction:column;gap:5px;margin:0;padding:0;list-style:none}
.research-value-list>li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:var(--fs-12)}
.research-value-list>li:last-child{border-bottom:0}
.research-value-list>div{display:flex;align-items:flex-start;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:var(--fs-12)}
.research-value-list>div>span{flex:0 0 32px;color:var(--faint);text-align:right;font-variant-numeric:tabular-nums}
.research-value-list>div>div{min-width:0;word-break:break-word}
.research-pagination{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface)}
.research-page-info{margin-right:5px;color:var(--muted);font-size:11px;white-space:nowrap}
.research-pagination button,.research-pagination a{display:inline-grid;place-items:center;min-width:28px;height:28px;box-sizing:border-box;padding:0 7px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:#fff;color:var(--muted);font:inherit;font-size:var(--fs-12);cursor:pointer}
.research-pagination button:hover,.research-pagination a:hover,.research-pagination .active{border-color:var(--brand);background:var(--brand-tint);color:var(--brand)}
.research-pagination>div{display:flex;align-items:center;gap:5px}
.research-raw{width:auto;margin:0;padding:10px 14px 12px;border-top:1px solid var(--line);background:#fbfcfe}
.research-raw>summary{padding:2px 0}
.research-raw .ct-out{max-height:340px;margin:9px 0 0;overflow:auto;background:#fff}
.research-readable-banner{display:flex;align-items:center;gap:6px;min-height:35px;box-sizing:border-box;padding:7px 14px;border-bottom:1px solid var(--line);background:#f7fbff;color:var(--brand-d);font-size:11px;font-weight:600}
.research-readable-banner svg{flex:0 0 auto;color:var(--ok)}
.research-readable-banner small{margin-left:auto;color:var(--muted);font-size:11px;font-weight:400;white-space:nowrap}
.research-readable-banner.error{background:var(--bad-tint);color:var(--bad)}.research-readable-banner.error svg{color:var(--bad)}
.research-readable{display:flex;min-width:0;flex-direction:column;gap:10px;padding:12px 14px 14px;background:#f7f8fb}
.research-insight{overflow:hidden;border:1px solid #c9daf9;border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.research-insight-head{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;background:#f7fbff}
.research-insight-icon{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border-radius:var(--r);background:var(--brand-tint);color:var(--brand)}
.research-insight-head>div{min-width:0;flex:1}
.research-insight-kicker{margin-bottom:2px;color:var(--brand);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.research-insight-head h4{margin:0;color:var(--ink);font-size:var(--fs-16);line-height:1.35}
.research-insight-head p{max-width:920px;margin:4px 0 0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.research-insight-badge{flex:0 0 auto;min-height:23px;box-sizing:border-box;padding:3px 8px;border:1px solid #c9daf9;border-radius:var(--r-full);background:#fff;color:var(--brand-d);font-size:11px;font-weight:700;white-space:nowrap}
.research-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));border-top:1px solid var(--line);background:#fff}
.research-kpi{position:relative;min-width:0;padding:11px 13px 10px;border-right:1px solid var(--line)}
.research-kpi:last-child{border-right:0}
.research-kpi::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand)}
.research-kpi.success::before{background:var(--ok)}.research-kpi.warning::before{background:var(--warn)}.research-kpi.danger::before{background:var(--bad)}
.research-kpi>span,.research-kpi>strong,.research-kpi>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.research-kpi>span{color:var(--muted);font-size:11px;font-weight:600}
.research-kpi>strong{margin-top:3px;color:var(--ink);font-size:19px;line-height:1.2;font-variant-numeric:tabular-nums}
.research-kpi>small{margin-top:4px;color:var(--muted);font-size:10px}
.research-data-panel{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.research-data-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}
.research-data-panel>header h4{margin:0;font-size:var(--fs-14);line-height:1.35}
.research-data-panel>header p{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.research-data-panel>header>span{align-self:center;color:var(--muted);font-size:11px;white-space:nowrap}
.research-product-hero{display:flex;align-items:center;gap:14px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.research-product-hero>img,.research-product-hero-placeholder{width:92px;height:92px;box-sizing:border-box;flex:0 0 auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.research-product-hero>img{object-fit:contain}
.research-product-hero-placeholder{display:grid;place-items:center;background:var(--surface);color:var(--faint)}
.research-product-hero>div{min-width:0}
.research-product-hero-label{display:block;margin-bottom:4px;color:var(--brand);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.research-product-hero h4{display:-webkit-box;margin:0;overflow:hidden;color:var(--ink);font-size:var(--fs-15);line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.research-product-hero p{margin:7px 0 0;color:var(--muted);font-size:var(--fs-12)}
.research-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:0}
.research-detail-grid>div{min-width:0;padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.research-detail-grid dt{color:var(--muted);font-size:11px}
.research-detail-grid dd{margin:4px 0 0;color:var(--ink);font-size:var(--fs-13);font-weight:650;line-height:1.45;word-break:break-word}
.research-product-cell{display:flex;align-items:center;gap:8px;min-width:250px;max-width:430px;white-space:normal}
.research-product-cell>img,.research-product-placeholder{width:42px;height:42px;box-sizing:border-box;flex:0 0 auto;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
.research-product-cell>img{object-fit:contain}
.research-product-placeholder{display:grid;place-items:center;background:var(--surface);color:var(--faint)}
.research-product-cell>div{min-width:0}
.research-product-cell b{display:-webkit-box;overflow:hidden;font-size:var(--fs-12);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.research-product-cell small,.research-category-cell small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.research-category-cell{min-width:190px;white-space:normal}
.research-category-cell b{display:block;line-height:1.4}
.research-keyword{color:#223a69;font-weight:700}
.research-missing{color:var(--faint)}
.research-friendly-table{min-width:840px}
.research-friendly-table .research-cell.wrap{max-width:420px;min-width:180px;white-space:normal;line-height:1.5}
.research-table-note{padding:7px 12px;border-top:1px solid var(--line);background:#fbfcfe;color:var(--muted);font-size:10px;line-height:1.45}
.research-state-compact{min-height:150px;border:0;border-radius:0}
.research-chart{min-width:0;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.research-chart-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.research-chart-title b{font-size:var(--fs-13)}
.research-chart-title span{color:var(--muted);font-size:11px}
.research-chart svg{display:block;width:100%;height:auto;max-height:260px;overflow:visible}
.research-chart svg text{fill:var(--muted);font-family:inherit;font-size:10px}
.research-chart-grid{stroke:#e6eaf0;stroke-width:1;vector-effect:non-scaling-stroke}
.research-chart-line{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.research-chart-dot{fill:#fff;stroke:var(--brand);stroke-width:3;vector-effect:non-scaling-stroke}
.research-trend-details{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.research-trend-details>summary{padding:9px 12px;color:var(--brand);font-size:var(--fs-12);font-weight:650;cursor:pointer}
.research-trend-details[open]>summary{border-bottom:1px solid var(--line)}
.research-friendly-error{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--bad-line);border-radius:var(--r-card);background:var(--bad-tint);color:var(--bad)}
.research-friendly-error>span{flex:0 0 auto}.research-friendly-error h4{margin:0;font-size:var(--fs-14)}.research-friendly-error p{margin:4px 0;color:#7f1d1d;font-size:var(--fs-12);line-height:1.5}.research-friendly-error small{display:block;color:#92400e;font-size:11px;line-height:1.45}
@media(max-width:760px){
  .research-readable-banner{align-items:flex-start;flex-wrap:wrap}.research-readable-banner small{flex-basis:100%;margin-left:20px;white-space:normal}
  .research-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.research-kpi{border-bottom:1px solid var(--line)}.research-kpi:nth-child(even){border-right:0}.research-kpi:last-child{border-bottom:0}
  .research-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .research-readable{padding:9px;gap:8px}.research-insight-head{flex-wrap:wrap;padding:11px}.research-insight-badge{margin-left:42px}
  .research-kpis,.research-detail-grid{grid-template-columns:1fr}.research-kpi,.research-detail-grid>div{border-right:0}
  .research-product-hero{align-items:flex-start;padding:11px}.research-product-hero>img,.research-product-hero-placeholder{width:68px;height:68px}
  .research-chart{padding:10px 8px}.research-chart-title{align-items:flex-start;flex-direction:column;gap:2px}
}
.research-workspace button:focus-visible,.research-workspace a:focus-visible,.research-workspace summary:focus-visible,.research-workspace input:focus-visible,.research-workspace select:focus-visible,.research-workspace textarea:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.research-workspace button:disabled,.research-workspace input:disabled,.research-workspace select:disabled,.research-workspace textarea:disabled,.research-workspace [aria-disabled="true"]{cursor:not-allowed;opacity:.55;box-shadow:none}
.research-workspace input:disabled,.research-workspace select:disabled,.research-workspace textarea:disabled{background:#f2f4f7;color:var(--faint)}

/* --- Operations review /经营决策工作台 --- */
.ops-workspace{min-width:0;color:var(--ink)}
.ops-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px;padding:3px 2px 0}
.ops-page-head h2{margin:1px 0 3px;font-size:var(--fs-20);line-height:1.25;letter-spacing:-.01em}
.ops-page-head p{max-width:760px;margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.ops-kicker,.ops-section-kicker{color:var(--brand-d);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ops-source{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:3px 9px;border:1px solid #c9daf9;border-radius:var(--r-full);background:var(--brand-tint);color:var(--brand-d);font-size:12px;font-weight:600;white-space:nowrap}
.ops-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:5px;background:#e6eaf0;border:1px solid var(--line-2);border-radius:var(--r-card);overflow:auto;scrollbar-width:thin}
.ops-tab{display:flex;align-items:center;gap:9px;min-width:0;min-height:52px;padding:7px 10px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--muted);text-align:left;font:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.ops-tab:hover{background:rgba(255,255,255,.72);color:var(--ink)}
.ops-tab.active,.ops-tab[aria-selected="true"]{border-color:var(--line);background:#fff;color:var(--brand-d);box-shadow:var(--shadow-sm)}
.ops-tab-icon{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:var(--r);background:rgba(255,255,255,.72);color:var(--muted)}
.ops-tab.active .ops-tab-icon{background:var(--brand-tint);color:var(--brand)}
.ops-tab>span:last-child{min-width:0}
.ops-tab b,.ops-tab small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-tab b{font-size:var(--fs-13);font-weight:700;line-height:1.25}
.ops-tab small{margin-top:2px;color:var(--muted);font-size:12px;font-weight:400}
.ops-body{min-width:0}
.ops-sync-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:9px 12px;border:1px solid #bfdbfe;border-radius:var(--r);background:#eff6ff;color:#1e3a8a;font-size:12px}
.ops-sync-banner>span{display:inline-flex;align-items:center;gap:6px}.ops-sync-banner small{color:#334155;font-size:12px;line-height:1.45;text-align:right}
.ops-sync-banner.error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.ops-sync-banner.error small{color:#7f1d1d}
.ops-sync-banner.warning{border-color:var(--warn-line);background:var(--warn-tint);color:#854d0e}.ops-sync-banner.warning small{color:#713f12}
.ops-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.ops-overview-head h3{margin:2px 0 3px;font-size:var(--fs-16);line-height:1.35}
.ops-overview-head p{max-width:720px;margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.5}
.ops-head-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.ops-head-actions label,.ops-toolbar-controls label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}
.ops-head-actions select,.ops-head-actions input,.ops-toolbar select,.ops-toolbar-controls input{height:30px;min-width:110px;padding:0 8px;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;font-size:var(--fs-12)}
.ops-head-actions input{min-width:132px}
.ops-freshness{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-1px 0 10px;padding:0 2px;color:var(--muted);font-size:12px}
.ops-freshness span{display:inline-flex;align-items:center;gap:4px}
.ops-freshness span+span::before{content:"·";margin-right:3px;color:var(--line-2)}
.ops-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ops-metric{position:relative;min-width:0;padding:12px 14px 11px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}
.ops-metric::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand)}
.ops-metric.success::before{background:var(--ok)}.ops-metric.warning::before{background:var(--warn)}.ops-metric.danger::before{background:var(--bad)}
.ops-metric>span,.ops-metric>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-metric>span{color:var(--muted);font-size:12px;font-weight:600}
.ops-metric>strong{display:block;margin-top:3px;font-size:21px;line-height:1.2;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ops-metric>small{margin-top:4px;color:var(--muted);font-size:12px}
.ops-metric.danger>strong{color:var(--bad)}.ops-metric.warning>strong{color:var(--warn)}.ops-metric.success>strong{color:var(--ok)}
.ops-panel{min-width:0;margin-bottom:10px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}
.ops-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line)}
.ops-panel-head h3{margin:0;font-size:var(--fs-14);font-weight:700;line-height:1.35}
.ops-panel-head p{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.ops-panel-head>span{align-self:center;color:var(--muted);font-size:12px;white-space:nowrap}
.ops-panel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ops-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px}
.ops-action-grid .ops-chip{min-height:50px;border:1px solid var(--line-2);border-radius:var(--r)}
.ops-insight-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(340px,.84fr);gap:10px;align-items:stretch}
.ops-insight-grid>.ops-panel{height:100%}
.ops-insight-grid.lower{grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr)}
.ops-mini-table{max-height:286px;overflow:auto}
.ops-mini-table table{font-size:var(--fs-12)}
.ops-mini-table th,.ops-mini-table td{padding:7px 10px}
.ops-cal-list{display:flex;flex-direction:column;gap:9px;padding:13px}
.ops-cal-row{display:grid;grid-template-columns:52px minmax(70px,1fr) 42px 40px;gap:7px;align-items:center;font-size:12px}
.ops-cal-row>span{color:var(--muted);font-weight:600}.ops-cal-row>b{font-variant-numeric:tabular-nums;text-align:right}.ops-cal-row>small{color:var(--muted);font-size:12px}
.ops-cal-track{height:7px;border-radius:var(--r-full);background:#e8edf4;overflow:hidden}
.ops-cal-track i{display:block;height:100%;border-radius:inherit;background:var(--brand)}
.ops-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);background:#fbfcfe}
.ops-search{display:flex;align-items:center;gap:6px;width:min(400px,100%);height:32px;padding-left:9px;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;color:var(--faint)}
.ops-search:focus-within{border-color:var(--brand);box-shadow:var(--ring)}
.ops-search input{flex:1;min-width:0;height:30px;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-12);outline:0;box-shadow:none!important}
.ops-search button{align-self:stretch;min-width:52px;padding:0 9px;border:0;border-left:1px solid var(--line);background:var(--surface);color:var(--brand-d);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.ops-search button:hover{background:var(--brand-tint)}
.ops-toolbar-controls,.ops-chip-row{display:flex;align-items:flex-end;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.ops-toolbar-controls label{flex-direction:row;align-items:center;gap:4px}
.ops-chip{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:4px 9px;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.ops-chip:hover{border-color:var(--brand);color:var(--brand)}
.ops-chip.active,.ops-chip[aria-pressed="true"]{border-color:#9ebcf4;background:var(--brand-tint);color:var(--brand-d)}
.ops-chip b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--r-full);background:var(--surface);color:inherit;font-size:11px;font-variant-numeric:tabular-nums}
.ops-chip.active b{background:#fff}
.ops-assumption-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ops-assumption-strip>span{display:flex;min-width:0;min-height:52px;flex-direction:column;justify-content:center;padding:8px 11px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow-sm)}
.ops-assumption-strip small{color:var(--muted);font-size:11px;font-weight:650}.ops-assumption-strip b{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12)}
.ops-usage-guard{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.ops-usage-guard.is-blocked{border-color:var(--warn-line);background:var(--warn-tint);color:#713f12}
.ops-usage-guard.is-trusted{border-color:var(--ok-line);background:var(--ok-tint);color:#14532d}
.ops-usage-title{display:flex;min-width:0;align-items:flex-start;gap:8px}.ops-usage-title>span{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.72)}
.ops-usage-title strong{display:block;font-size:var(--fs-13);line-height:1.35}.ops-usage-title p{max-width:700px;margin:2px 0 0;color:inherit;font-size:12px;line-height:1.45}
.ops-usage-times{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ops-decision-strip{display:flex;gap:6px;max-width:100%;padding:9px 10px;overflow:auto;scrollbar-width:thin}.ops-decision-strip .ops-chip{flex:0 0 auto}
.ops-replenishment-toolbar{align-items:flex-end}.ops-replenishment-toolbar .ops-toolbar-controls{flex:1}
.ops-replenishment-toolbar .ops-toolbar-controls input{width:76px;min-width:76px}
.ops-table-wrap{position:relative;max-width:100%;max-height:62vh;overflow:auto;scrollbar-gutter:stable;background:#fff}
.ops-table{min-width:1020px;border-collapse:separate;border-spacing:0;font-size:var(--fs-12)}
.ops-table th,.ops-table td{padding:8px 9px;white-space:nowrap}
.ops-table thead th{position:sticky;top:0;z-index:3;height:37px;background:var(--surface);box-shadow:0 1px 0 var(--line)}
.ops-table tbody tr{cursor:default}.ops-table tbody tr:nth-child(even){background:#fbfcfe}.ops-table tbody tr:hover{background:var(--brand-tint)}
.ops-table .opcol{z-index:4}
.ops-product-cell{min-width:260px;max-width:360px}
.ops-product{display:flex;align-items:center;gap:8px;min-width:0}
.ops-product>img,.ops-product-placeholder{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--faint);object-fit:contain}
.ops-product>div{min-width:0}.ops-product a,.ops-product b{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:var(--fs-12);font-weight:650}
.ops-product a:hover{color:var(--brand)}
.ops-product small,.ops-cell-sub{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:400;line-height:1.35}
.ops-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 7px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}
.ops-badge.success{border-color:var(--ok-line);background:var(--ok-tint);color:#166534}
.ops-badge.warning{border-color:var(--warn-line);background:var(--warn-tint);color:#854d0e}
.ops-badge.danger{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.ops-replenishment-table{min-width:1840px}
.ops-replenishment-table .ops-product-cell{min-width:285px}
.ops-replenishment-table .ops-qty-main{color:var(--brand-d);font-size:var(--fs-14);font-variant-numeric:tabular-nums}
.ops-replenishment-table .ops-qty-main.is-review{color:#92400e}
.ops-replenishment-table .ops-qty-cell{min-width:190px}.ops-replenishment-table .ops-qty-label{display:block;margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:700}
.ops-replenishment-table .ops-calculated-qty{font-weight:650}.ops-replenishment-table .ops-qty-caution{max-width:210px;color:#92400e;white-space:normal}
.ops-replenishment-table .ops-review-flag{color:#854d0e;font-weight:650}
.ops-replenishment-table .ops-explanation{min-width:300px;max-width:380px;white-space:normal}
.ops-replenishment-table .ops-explanation>span{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}
.ops-reason-list{display:flex;max-width:350px;gap:3px;flex-wrap:wrap}.ops-reason-list i{display:inline-flex;max-width:150px;padding:1px 5px;border-radius:var(--r-full);background:var(--surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;font-style:normal}
.ops-neg{color:var(--bad)}
.ops-empty{display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:24px;color:var(--muted);text-align:center}
.ops-empty>div{display:grid;place-items:center;width:38px;height:38px;margin-bottom:3px;border-radius:50%;background:var(--surface);color:var(--faint)}
.ops-empty>b{color:var(--ink);font-size:var(--fs-13)}.ops-empty>span{max-width:440px;font-size:12px;line-height:1.55}
.ops-empty.compact{min-height:118px}.ops-empty.compact>span{font-size:12px}
.ops-state{display:flex;min-height:310px;flex-direction:column;align-items:center;justify-content:center;padding:36px 20px;border:1px dashed var(--line-2);border-radius:var(--r-card);background:#fff;color:var(--muted);text-align:center}
.ops-state.is-error{border-color:var(--bad-line);background:#fffafa}
.ops-state-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:10px;border-radius:50%;background:var(--brand-tint);color:var(--brand)}
.ops-state.is-error .ops-state-icon{background:var(--bad-tint);color:var(--bad)}
.ops-state h3{margin:0;color:var(--ink);font-size:var(--fs-15)}.ops-state p{max-width:520px;margin:5px 0 12px;font-size:var(--fs-12)}
.ops-skeleton{width:min(440px,82%);margin-top:5px}.ops-skeleton i{display:block;height:9px;margin:7px auto;border-radius:4px;background:linear-gradient(90deg,#edf0f5 25%,#f8f9fb 50%,#edf0f5 75%);background-size:200% 100%;animation:research-shimmer 1.25s linear infinite}
.ops-skeleton i:nth-child(1){width:90%}.ops-skeleton i:nth-child(2){width:72%}.ops-skeleton i:nth-child(3){width:82%}
.ops-funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:0}
.ops-funnel>div{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:39px;padding:8px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}
.ops-funnel>div:nth-child(3n){border-right:0}.ops-funnel span{color:var(--muted)}.ops-funnel b{font-size:var(--fs-14);font-variant-numeric:tabular-nums}
.ops-monitor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ops-monitor-card{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;min-height:60px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;color:var(--ink);text-align:left;font:inherit;box-shadow:var(--shadow-sm);cursor:pointer}
.ops-monitor-card>span{display:grid;grid-row:1/3;place-items:center;width:30px;height:30px;align-self:center;border-radius:var(--r);background:var(--surface);color:var(--muted)}
.ops-monitor-card b{align-self:end;font-size:var(--fs-12)}.ops-monitor-card small{align-self:start;color:var(--muted);font-size:12px}
.ops-monitor-card:hover,.ops-monitor-card.active{border-color:#a9c4f6;background:var(--brand-tint);color:var(--brand-d)}
.ops-monitor-card.active>span{background:#fff;color:var(--brand)}
.ops-generic-table{max-width:100%;overflow:auto}.ops-generic-table>.muted{padding:30px;text-align:center}.ops-generic-table table{min-width:820px;font-size:var(--fs-12)}
.ops-fixed-table{max-width:100%;overflow:auto;scrollbar-gutter:stable}.ops-fixed-table table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;font-size:var(--fs-12)}
.ops-fixed-table th,.ops-fixed-table td{padding:8px 10px;white-space:nowrap}.ops-fixed-table thead th{position:sticky;top:0;z-index:2;background:var(--surface);box-shadow:0 1px 0 var(--line)}
.ops-fixed-table tbody tr:nth-child(even){background:#fbfcfe}.ops-fixed-table tbody tr:hover{background:var(--brand-tint)}
.ops-table-caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ops-server-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:9px 11px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.ops-server-pager>div{display:flex;gap:6px}
.ops-workspace button:focus-visible,.ops-workspace a:focus-visible,.ops-workspace input:focus-visible,.ops-workspace select:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.ops-workspace button:disabled{cursor:not-allowed;opacity:.5}

@media (max-width:1100px){
  .ops-tabs{display:flex}.ops-tab{flex:1 0 164px}
  .ops-insight-grid,.ops-insight-grid.lower{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:840px){
  .ops-sync-banner{align-items:flex-start;flex-direction:column}.ops-sync-banner small{text-align:left}
  .ops-usage-guard{align-items:flex-start;flex-direction:column}.ops-usage-times{align-items:flex-start}
  .ops-page-head,.ops-overview-head{align-items:flex-start;flex-direction:column}
  .ops-source{align-self:flex-start}.ops-head-actions{width:100%;justify-content:flex-start}
  .ops-tabs{margin-right:-2px;margin-left:-2px}.ops-tab{flex-basis:158px}
  .ops-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ops-assumption-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ops-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ops-toolbar{align-items:stretch;flex-direction:column}.ops-search{width:100%}.ops-toolbar-controls,.ops-chip-row{justify-content:flex-start}
  .ops-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ops-table-wrap{max-height:58vh}
}
@media (max-width:520px){
  .ops-page-head h2{font-size:18px}.ops-overview-head{padding:12px}
  .ops-head-actions>*{flex:1 1 120px}.ops-head-actions label input,.ops-head-actions label select{width:100%}
  .ops-metric{padding:10px 11px}.ops-metric>strong{font-size:18px}.ops-metric>small{white-space:normal;line-height:1.35}
  .ops-assumption-strip{grid-template-columns:minmax(0,1fr)}
  .ops-panel-head{align-items:flex-start;flex-direction:column}.ops-panel-actions{width:100%}
  .ops-chip-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.ops-chip{min-height:44px}
  .ops-search{height:44px}.ops-search input{height:42px;font-size:16px}.ops-search button{min-width:58px}
  .ops-monitor-card{min-height:68px}.ops-tab{min-height:58px}
  .ops-workspace .btn,.ops-workspace input,.ops-workspace select,.ops-workspace .pager .btn,.ops-workspace .pager input,.ops-workspace .pager select{min-height:44px;font-size:16px}
  .ops-workspace .ops-panel-actions,.ops-workspace .ops-head-actions,.ops-workspace .ops-toolbar-controls,.ops-workspace .pager{gap:8px}
  .ops-server-pager{align-items:stretch;flex-direction:column}.ops-server-pager>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ops-workspace .ops-product small,.ops-workspace .ops-cell-sub,.ops-workspace .ops-panel-head p,.ops-workspace .ops-empty>span{font-size:13px}
}

/* —— 可调列宽表格（拖动表头右边缘调宽，双击恢复默认）—— */
table.resizable{table-layout:fixed;min-width:100%}
table.resizable th,table.resizable td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.resizable th{position:relative}
table.resizable th.pin,table.resizable th.opcol{position:sticky}
body.col-resizing table.resizable th.pin,body.col-resizing table.resizable th.opcol{position:static}
.col-grip{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;user-select:none;z-index:2}
.col-grip:hover{background:var(--brand);opacity:.4}
body.col-resizing,body.col-resizing *{cursor:col-resize!important;user-select:none!important}

/* —— 顶部页面标签：Chrome 式页签、语义图标、按需出现的页签操作 —— */
.tabbar{display:flex;align-items:flex-end;flex:1;min-width:0;gap:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;align-self:stretch;padding:0 8px 0 0}
.tabbar::-webkit-scrollbar{display:none}
.tab{position:relative;display:inline-flex;align-items:center;gap:7px;width:128px;min-width:128px;max-width:128px;height:34px;margin-bottom:0;padding:0 12px;background:transparent;
  border:0;border-radius:10px 10px 0 0;font-size:var(--fs-13);font-weight:550;cursor:pointer;white-space:nowrap;
  color:#aeb9c9;flex:0 0 128px;user-select:none;transition:background .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease}
.tab::after{display:none}
.tab:hover{background:rgba(255,255,255,.07);color:#f8fafc}
.tab:active{transform:translateY(1px)}
.tab.active{z-index:2;padding-right:12px;border:0;border-radius:10px 10px 0 0;background:#fff;color:var(--ink);font-weight:700;box-shadow:none}
.tab.active::before,.tab.active::after{display:none}
.tab:not(.active):hover::after{display:none}
.tab.active:hover{background:#fff;color:var(--ink)}
.tab-ico{display:grid;place-items:center;flex:0 0 auto;width:17px;height:17px;color:#7f8ca0;transition:color .16s ease}
.tab-ico svg{width:15px;height:15px}
.tab:hover .tab-ico{color:#bfdbfe}
.tab.active .tab-ico{color:var(--brand)}
.tab-t{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tab-home{width:128px;min-width:128px;max-width:128px;padding-right:12px;flex-basis:128px}
.tab.dragging{opacity:.38;transform:scale(.97)}
.tab.drop-to{border-color:#60a5fa;box-shadow:inset 3px 0 0 #60a5fa}
.tab-actions{display:none!important;position:absolute;top:50%;right:4px;align-items:center;justify-content:flex-end;height:26px;
  padding-left:9px;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .14s ease;
  background:linear-gradient(90deg,rgba(15,23,42,0),var(--nav) 32%)}
.tab.active .tab-actions{background:linear-gradient(90deg,rgba(255,255,255,0),#fff 28%)}
.tab:hover .tab-actions,.tab:focus-within .tab-actions{opacity:1;pointer-events:auto}
.tab-action{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:#91a0b4;cursor:pointer;
  opacity:1;overflow:hidden;transition:opacity .14s ease,background .14s ease,color .14s ease}
.tab-action svg{width:15px;height:15px}
.tab-action:hover{background:rgba(255,255,255,.1);color:#fff}
.tab.active .tab-action{color:#8792a3}
.tab.active .tab-more:hover{background:var(--surface);color:var(--ink)}
.tab:focus-visible{outline:2px solid hsl(217 91% 60% / .75);outline-offset:-3px}
.tab-action:focus-visible,.tab-add:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}
.tab-add{-webkit-appearance:none;appearance:none;display:inline-grid;place-items:center;width:24px;height:24px;margin:0 0 5px 4px;padding:0;border:1px solid transparent;border-radius:7px;
  background:transparent;color:#9facbd;cursor:pointer;flex:0 0 auto;transition:background .15s,color .15s,border-color .15s,transform .12s}
.tab-add svg{width:15px;height:15px}
.tab-add:hover{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.08);color:#fff}
.tab-add:active{transform:scale(.94)}
.tab-menu{position:fixed;z-index:60;min-width:210px;max-height:min(520px,76vh);overflow:auto;padding:7px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-pop);animation:tab-menu-in .14s ease-out}
@keyframes tab-menu-in{from{opacity:0;transform:translateY(-3px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.tab-menu-i{-webkit-appearance:none;appearance:none;display:flex;align-items:center;width:100%;min-height:36px;padding:7px 10px;border:0;border-radius:7px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:var(--fs-13);text-align:left}
.tab-menu-i:hover{background:var(--brand-tint);color:var(--brand)}
.tab-menu-i svg{width:16px;height:16px;flex:0 0 auto;margin-right:8px;stroke:currentColor}
.tab-menu-i:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;background:var(--brand-tint);color:var(--brand)}
.tab-menu-i.danger:hover,.tab-menu-i.danger:focus-visible{background:var(--bad-tint);color:var(--bad)}
.tab-menu-i:disabled{color:var(--faint);cursor:not-allowed}
.tab-menu-i:disabled:hover{background:transparent;color:var(--faint)}
.tab-menu-kbd{margin-left:auto;padding-left:18px;color:var(--faint);font:500 10px/1.2 ui-monospace,"SF Mono",Menlo,Consolas,monospace}
.tab-menu-i:hover .tab-menu-kbd,.tab-menu-i:focus-visible .tab-menu-kbd{color:currentColor}
.tab-menu-sep{height:1px;margin:5px 4px;background:var(--line)}
.tab-action-menu{min-width:104px;max-width:132px;padding:5px 0;border-color:#d8dee8;border-radius:3px;box-shadow:0 8px 18px rgba(15,23,42,.12),0 1px 2px rgba(15,23,42,.08)}
.tab-action-menu .tab-menu-i{min-height:30px;padding:0 13px;border-radius:0;color:#1f2937;font-size:12px;font-weight:400;line-height:30px;white-space:nowrap}
.tab-action-menu .tab-menu-i:hover,.tab-action-menu .tab-menu-i:focus-visible{background:#eef2f7;color:#111827;outline:none}
.tab-action-menu .tab-menu-i:disabled,.tab-action-menu .tab-menu-i:disabled:hover{background:transparent;color:#9aa4b2}

/* —— 父级导航二级菜单：标题交代上下文，带描述的业务入口和紧凑设置项共用 —— */
.rail-flyout{position:fixed;z-index:60;width:254px;max-width:calc(100vw - 96px);max-height:calc(100vh - 16px);overflow-y:auto;
  background:#fff;border:1px solid #dbe3ee;border-radius:16px;box-shadow:0 20px 52px rgba(15,23,42,.2),0 3px 10px rgba(15,23,42,.08);
  padding:10px;transform-origin:left top;animation:rail-flyout-in .16s cubic-bezier(.2,.8,.2,1)}
@keyframes rail-flyout-in{from{opacity:0;transform:translateX(-4px) scale(.985)}to{opacity:1;transform:translateX(0) scale(1)}}
.rail-flyout-head{display:flex;align-items:center;gap:11px;margin:0 0 8px;padding:9px 10px 14px;border-bottom:1px solid var(--line)}
.rail-flyout-head>span:last-child{display:flex;min-width:0;flex-direction:column}
.rail-flyout-head strong{color:var(--ink);font-size:15px;font-weight:700;line-height:1.3}
.rail-flyout-head small{margin-top:3px;color:var(--faint);font-size:12px;line-height:1.35}
.rail-flyout-head-ico{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border:1px solid #cfe0ff;border-radius:12px;background:#eff6ff;color:var(--brand)}
.rail-flyout-head-ico svg{width:22px;height:22px}
.rail-flyout-h{margin:3px 4px 2px;padding:5px 7px 3px;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.08em}
.rail-flyout-h.divided{margin-top:7px;padding-top:9px;border-top:1px solid var(--line)}
.rail-flyout-i{-webkit-appearance:none;appearance:none;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:48px;
  padding:8px 10px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;text-align:left;
  touch-action:manipulation;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
.rail-flyout-i.rich{min-height:68px;padding-top:10px;padding-bottom:10px}
.rail-flyout-i.rich+.rail-flyout-i.rich{margin-top:8px}
.rail-flyout-i.compact{min-height:44px}
.rail-flyout-i.compact+.rail-flyout-i.compact{margin-top:2px}
.rail-flyout-i:hover{background:#f7faff;border-color:#dbe8fb;color:var(--ink)}
.rail-flyout-i:focus-visible{outline:2px solid var(--brand);outline-offset:2px;background:#f7faff}
.rail-flyout-i.active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.22)}
.rail-flyout-i.active:hover{background:var(--brand-d);border-color:var(--brand-d)}
.rail-flyout-i.active:focus-visible{outline-color:#93c5fd;box-shadow:0 0 0 3px #fff,0 8px 20px rgba(37,99,235,.24)}
.rail-flyout-ico{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--faint);transition:inherit}
.rail-flyout-i.compact .rail-flyout-ico{width:30px;height:30px;border-radius:8px}
.rail-flyout-i:hover .rail-flyout-ico{border-color:#cfe0ff;background:#eff6ff;color:var(--brand)}
.rail-flyout-i.active .rail-flyout-ico,.rail-flyout-i.active:hover .rail-flyout-ico{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.15);color:#fff}
.rail-flyout-bullet{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.55}
.rail-flyout-copy,.rail-flyout-label,.rail-flyout-desc{display:block;min-width:0}
.rail-flyout-label{overflow:hidden;color:inherit;font-size:14px;font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.rail-flyout-i.compact .rail-flyout-label{font-size:13px;font-weight:650}
.rail-flyout-desc{margin-top:3px;color:var(--faint);font-size:12px;line-height:1.4;white-space:normal}
.rail-flyout-i.active .rail-flyout-desc{color:rgba(255,255,255,.78)}
.rail-flyout-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.rail-flyout-go{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#f1f5f9;color:#94a3b8;transition:inherit}
.rail-flyout-go svg{width:11px;height:11px}
.rail-flyout-i:hover .rail-flyout-go{background:#e7effc;color:var(--brand)}
.rail-flyout-i.active .rail-flyout-go,.rail-flyout-i.active:hover .rail-flyout-go{background:rgba(255,255,255,.15);color:#fff}
.nav-cnt{display:inline-block;min-width:18px;text-align:center;padding:0 6px;height:18px;line-height:18px;
  font-size:11px;font-weight:600;border-radius:9px;background:var(--surface);color:var(--muted);border:1px solid var(--line-2)}
.rail-flyout-meta .nav-cnt{min-width:24px;height:20px;line-height:18px;font-variant-numeric:tabular-nums}
.rail-flyout-i:hover .nav-cnt{background:#fff;color:var(--brand);border-color:#cfe0ff}
.rail-flyout-i.active .nav-cnt,.rail-flyout-i.active:hover .nav-cnt{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.2)}
@media (prefers-reduced-motion:reduce){.skip-link,.rail-item,.rail-ico,.rail-caret,.rail-subitem,.rail-flyout-i{transition:none}.rail-flyout{animation:none}}

/* —— 首页工作台：优先事项 → 指标 → 漏斗 → 团队与经营结果 —— */
.home-workbench{display:grid;gap:12px;width:100%;max-width:1600px;margin:0 auto 24px}
.home-workbench button{font:inherit}
.home-workbench :where(button,a,summary,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;box-shadow:var(--ring)}
.home-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}
.home-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:190px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--muted);box-shadow:var(--shadow-sm)}
.home-loading-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--brand-tint);color:var(--brand)}
.home-loading>div{display:flex;flex-direction:column;gap:2px}.home-loading b{color:var(--ink)}.home-loading span{font-size:12px}

.home-hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;min-width:0;padding:22px 24px;border:1px solid #dbe5f4;border-radius:14px;
  background:linear-gradient(125deg,#fff 0%,#fff 64%,#f3f7ff 100%);box-shadow:var(--shadow)}
.home-hero-main,.home-hero-side{min-width:0}.home-kicker{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:650}
.home-kicker>span{display:inline-flex;align-items:center;gap:5px}.home-scope{min-height:23px;padding:2px 8px;border:1px solid #cfe0ff;border-radius:999px;background:#f4f8ff;color:var(--brand-d)}
.home-hero h1{margin:8px 0 3px;color:var(--ink);font-size:24px;line-height:1.25;letter-spacing:-.025em}.home-hero-main>p{max-width:720px;margin:0;color:var(--muted);font-size:13px}
.home-priority{--home-tone:var(--brand);--home-tone-bg:#f2f6ff;--home-tone-line:#cfe0ff;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin-top:16px;padding:10px 11px;
  border:1px solid var(--home-tone-line);border-radius:11px;background:var(--home-tone-bg)}
.home-priority.tone-warn{--home-tone:var(--warn);--home-tone-bg:#fffbf3;--home-tone-line:var(--warn-line)}.home-priority.tone-ok{--home-tone:var(--ok);--home-tone-bg:#f3fbf6;--home-tone-line:var(--ok-line)}
.home-priority-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#fff;color:var(--home-tone);box-shadow:inset 0 0 0 1px var(--home-tone-line)}
.home-priority-copy{display:flex;min-width:0;flex-direction:column;line-height:1.35}.home-priority-copy small{color:var(--home-tone);font-size:10px;font-weight:750;letter-spacing:.06em}.home-priority-copy strong{overflow:hidden;margin-top:1px;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.home-priority-copy>span{color:var(--muted);font-size:11px}
.home-priority-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:0 11px;border:1px solid var(--home-tone-line);border-radius:8px;background:#fff;color:var(--home-tone);font-size:12px;font-weight:700;white-space:nowrap}
.home-priority-action:hover{border-color:var(--home-tone);background:var(--home-tone-bg)}
.home-hero-side{display:flex;flex-direction:column;justify-content:center;padding-left:24px;border-left:1px solid #e5ebf4}.home-today-title{display:flex;align-items:center;justify-content:space-between;color:var(--ink);font-size:13px;font-weight:700}.home-today-title span{color:var(--faint);font-size:10px;font-weight:500}
.home-today-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:10px 0}.home-today-grid>div{display:flex;min-width:0;flex-direction:column;align-items:center;padding:7px 3px;border-radius:8px;background:rgba(255,255,255,.76)}
.home-today-grid strong{font-size:18px;line-height:1.2;font-variant-numeric:tabular-nums}.home-today-grid span{margin-top:2px;color:var(--muted);font-size:10px;white-space:nowrap}
.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.home-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}

.home-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;min-width:0}
.home-metric{--home-tone:#64748b;--home-tone-bg:#f5f7fa;-webkit-appearance:none;appearance:none;position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;min-height:96px;padding:12px;
  border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);text-align:left;box-shadow:var(--shadow-sm);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
button.home-metric:hover{border-color:#b9cdf0;box-shadow:var(--shadow);transform:translateY(-1px)}
.home-metric.tone-brand{--home-tone:var(--brand);--home-tone-bg:var(--brand-tint)}.home-metric.tone-ok{--home-tone:var(--ok);--home-tone-bg:var(--ok-tint)}.home-metric.tone-warn{--home-tone:var(--warn);--home-tone-bg:var(--warn-tint)}
.home-metric-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--home-tone-bg);color:var(--home-tone)}
.home-metric-copy{display:flex;min-width:0;flex-direction:column}.home-metric-label{color:var(--muted);font-size:11px;font-weight:650}.home-metric strong{overflow:hidden;margin-top:1px;font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.home-metric small{overflow:hidden;margin-top:3px;color:var(--faint);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.home-metric-go{color:#a7b0bd;font-size:20px;line-height:1}

.home-panel{min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}
.home-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.home-section-kicker{display:block;margin-bottom:1px;color:var(--brand);font-size:10px;font-weight:750;letter-spacing:.08em}
.home-panel-head h2{margin:0;color:var(--ink);font-size:15px;line-height:1.35}.home-panel-head h2 span{color:var(--muted);font-size:12px;font-weight:500}.home-panel-meta{align-self:center;color:var(--faint);font-size:11px;text-align:right}

.home-flow-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;min-width:0}
.home-flow-stage{--home-tone:#64748b;--home-tone-bg:#f5f7fa;-webkit-appearance:none;appearance:none;position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;min-height:70px;padding:10px;
  border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;transition:border-color .16s ease,background .16s ease}
button.home-flow-stage:hover{border-color:#b9cdf0;background:#fbfdff}.home-flow-stage.tone-brand{--home-tone:var(--brand);--home-tone-bg:var(--brand-tint)}.home-flow-stage.tone-ok{--home-tone:var(--ok);--home-tone-bg:var(--ok-tint)}.home-flow-stage.tone-warn{--home-tone:var(--warn);--home-tone-bg:var(--warn-tint)}
.home-flow-stage:not(:last-child)::after{content:"";position:absolute;z-index:1;right:-9px;top:50%;width:6px;height:6px;border-top:1.5px solid #aeb8c6;border-right:1.5px solid #aeb8c6;transform:translateY(-50%) rotate(45deg)}
.home-flow-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--home-tone-bg);color:var(--home-tone)}.home-flow-stage>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.home-flow-stage small{color:var(--muted);font-size:10px}.home-flow-stage strong{margin-top:1px;font-size:19px;font-variant-numeric:tabular-nums}.home-flow-go{color:#a7b0bd;font-size:18px}
.home-flow-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:11px;padding-top:11px;border-top:1px solid #edf0f4}.home-rate-list{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.home-rate{display:inline-flex;align-items:center;gap:5px;min-height:27px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-variant-numeric:tabular-nums}.home-rate small{color:var(--muted);font-size:10px}.home-rate b{font-size:11px}.home-rate.tone-ok{border-color:var(--ok-line);background:var(--ok-tint);color:#15733c}.home-rate.tone-brand{border-color:#cfe0ff;background:var(--brand-tint);color:var(--brand-d)}.home-rate.tone-warn{border-color:var(--warn-line);background:var(--warn-tint);color:#8a5708}.home-rate.tone-bad{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.home-flow-foot p{margin:0;color:var(--faint);font-size:10px;text-align:right}

.home-performance{padding-bottom:0}.home-performance-head{align-items:center}.home-chart-controls{display:flex;align-items:center;justify-content:flex-end;gap:11px;color:var(--muted);font-size:11px}.home-chart-controls b{color:var(--ink)}
.home-segment{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.home-segment-btn{min-width:46px;min-height:30px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:11px;font-weight:600}.home-segment-btn:hover{color:var(--ink)}.home-segment-btn.active{background:#fff;color:var(--brand);box-shadow:var(--shadow-sm)}
.home-performance-body{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;border-top:1px solid #edf0f4}.home-performance-body.has-people{grid-template-columns:260px minmax(0,1fr)}
.home-people{max-height:342px;overflow:auto;border-right:1px solid #edf0f4;scrollbar-width:thin}.home-person{-webkit-appearance:none;appearance:none;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:67px;padding:9px 11px 9px 2px;border:0;border-bottom:1px solid #f0f2f5;background:#fff;text-align:left}
.home-person:hover{background:#f8faff}.home-person.active{background:#f1f6ff;box-shadow:inset 3px 0 0 var(--brand)}.home-person-rank{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#f1f3f6;color:var(--muted);font-size:10px;font-weight:750}.home-person-rank.is-top{background:#fff4d8;color:#9a680d}.home-person-rank.is-first{background:#fff0bc;color:#8a5708}.home-person-all{color:var(--brand);background:var(--brand-tint)}
.home-person-copy{display:flex;min-width:0;flex-direction:column}.home-person-line,.home-person-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-person-line b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.home-person-line>span{color:var(--muted);font-size:10px;white-space:nowrap}.home-person-line>span b{color:var(--ok);font-size:12px}
.home-person-track{height:4px;margin:5px 0;border-radius:4px;background:#e9edf3;overflow:hidden}.home-person-track>i{display:block;height:100%;border-radius:4px;background:#a9c5f7;overflow:hidden}.home-person-track em{display:block;height:100%;background:var(--ok)}.home-person-meta{color:var(--faint);font-size:9px}.home-chart-wrap{min-width:0;padding:8px 4px 0 12px}.home-chart-wrap>div{width:100%;height:330px}
.home-detail{margin:0 -16px}.home-detail summary{min-height:42px;padding:11px 16px;border-top:1px solid #edf0f4;color:var(--brand);font-size:12px;font-weight:650;list-style-position:inside}.home-detail summary span{margin-left:5px;color:var(--faint);font-size:10px;font-weight:500}.home-detail[open] summary{border-bottom:1px solid #edf0f4}.home-detail .home-table-wrap{border:0;border-radius:0}

.home-lower-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.4fr);align-items:stretch;gap:12px}.home-store,.home-recent{height:100%}
.home-store-list{display:grid;gap:0}.home-store-row{display:grid;grid-template-columns:minmax(100px,140px) minmax(70px,1fr) 76px;align-items:center;gap:10px;min-height:51px;border-top:1px solid #f0f2f5}.home-store-row:first-child{border-top:0}.home-store-name{display:flex;min-width:0;flex-direction:column}.home-store-name b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.home-store-name span{overflow:hidden;margin-top:2px;color:var(--faint);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.home-store-track{height:7px;border-radius:6px;background:#e9edf3;overflow:hidden}.home-store-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#4f86ed,var(--brand))}.home-store-row>strong{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.home-store-row>strong small{color:var(--faint);font-size:9px;font-weight:500}.home-more{margin:8px -16px -16px;padding:9px 16px;border-top:1px solid #edf0f4;color:var(--faint);font-size:10px}
.home-empty{display:flex;min-height:120px;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--faint);text-align:center}.home-empty b{color:var(--muted);font-size:12px}.home-empty small{font-size:10px}
.home-text-link{-webkit-appearance:none;appearance:none;align-self:center;min-height:32px;padding:0 4px;border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:650}.home-text-link:hover{color:var(--brand-d)}
.home-table-wrap{width:100%;max-width:100%;min-width:0;overflow:auto;border:1px solid var(--line);border-radius:9px;-webkit-overflow-scrolling:touch}.home-table-wrap table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;font-size:11px}.home-table-wrap th,.home-table-wrap td{padding:7px 9px;white-space:nowrap}.home-table-wrap thead th{background:var(--surface);color:var(--muted);font-size:10px;font-weight:650}.home-table-wrap tbody tr[data-id]{cursor:pointer}.home-table-wrap tbody tr[data-id]:hover,.home-table-wrap tbody tr[data-id]:focus{outline:none;background:#eef5ff;box-shadow:inset 3px 0 0 var(--brand)}.home-table-wrap td.ell{max-width:260px}.home-table-empty{height:100px;color:var(--faint);text-align:center}
.home-product-img,.home-product-empty{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--faint);object-fit:contain;vertical-align:middle}.home-product-img{display:block}
.home-actuals .home-panel-head{align-items:center;margin-bottom:8px}.home-load-actuals{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px}.home-actuals-body{padding-top:10px;border-top:1px solid #edf0f4;color:var(--muted);font-size:11px}.home-actuals-body>.kpis{margin-top:2px}

@media (max-width:1280px){
  .home-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .home-hero{grid-template-columns:minmax(0,1fr) 320px}
}
@media (max-width:1080px){
  .home-hero{grid-template-columns:minmax(0,1fr)}.home-hero-side{padding:0;border-left:0;border-top:1px solid #e5ebf4;padding-top:15px}.home-today-grid{max-width:520px}
  .home-performance-body.has-people{grid-template-columns:minmax(0,1fr)}.home-people{display:grid;grid-auto-columns:220px;grid-auto-flow:column;max-width:100%;max-height:none;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid #edf0f4}.home-person{min-height:72px;border-right:1px solid #f0f2f5;border-bottom:0;padding-left:9px}
  .home-lower-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .home-workbench{gap:10px}.home-hero,.home-panel{padding:14px}.home-hero h1{font-size:21px}.home-priority{grid-template-columns:36px minmax(0,1fr)}.home-priority-action{grid-column:1/-1;width:100%;min-height:42px}.home-priority-copy>span{white-space:normal}
  .home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.home-metric{min-height:88px;padding:10px}.home-metric strong{font-size:18px}
  .home-flow-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-flow-stage:not(:last-child)::after{display:none}.home-flow-foot,.home-panel-head,.home-performance-head{align-items:flex-start;flex-direction:column}.home-flow-foot p{text-align:left}.home-chart-controls{width:100%;justify-content:space-between;flex-wrap:wrap}.home-chart-wrap{padding-left:0}.home-chart-wrap>div{height:290px}
  .home-detail{margin:0 -14px}.home-store-row{grid-template-columns:minmax(90px,130px) minmax(50px,1fr) 70px}.home-actuals .home-panel-head{align-items:stretch}.home-load-actuals{width:100%;min-height:44px}.home-actuals .kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:520px){
  .home-hero{padding:13px}.home-kicker{align-items:flex-start;flex-direction:column;gap:5px}.home-today-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-actions{grid-template-columns:minmax(0,1fr)}.home-actions .btn{min-height:44px}
  .home-metrics{grid-template-columns:minmax(0,1fr)}.home-metric{min-height:82px}.home-flow-track{grid-template-columns:minmax(0,1fr)}.home-flow-stage{min-height:64px}.home-rate-list{width:100%}.home-rate{flex:1 1 calc(50% - 6px);justify-content:space-between}
  .home-person{min-height:74px}.home-chart-controls{align-items:flex-start;flex-direction:column}.home-segment{width:100%}.home-segment-btn{flex:1}.home-detail summary span{display:none}.home-chart-wrap>div{height:270px}
  .home-store-row{grid-template-columns:minmax(90px,1fr) 70px}.home-store-track{grid-column:1/-1;grid-row:2}.home-actuals .kpis{grid-template-columns:minmax(0,1fr)!important}
}

/* —— 竞品关键词信号富表 —— */
.sif-kw table{min-width:1120px}
.sif-kw th{white-space:nowrap;cursor:help}
.sif-kw td{vertical-align:middle;font-size:11.5px}
.sif-kw th,.sif-kw td{padding:5px 7px}
.sif-kw td.kw{white-space:normal;min-width:190px;max-width:270px;line-height:1.3}
.sif-kw-name{display:block;word-break:break-word}
.sif-kw-actions{display:flex;align-items:center;gap:4px;margin-top:5px;flex-wrap:wrap}
.sif-kw-action{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:24px;padding:2px 7px;border:1px solid #c9daf9;border-radius:var(--r-sm);background:#fff;color:var(--brand-d);font:inherit;font-size:10.5px;font-weight:650;line-height:1;cursor:pointer;white-space:nowrap;transition:border-color .15s ease,background .15s ease,color .15s ease}
.sif-kw-action:hover{border-color:var(--brand);background:var(--brand-tint);color:var(--brand)}
.sif-kw-action:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}

/* ASIN 关键词信号里的单词延伸分析弹窗。 */
.sif-keyword-dialog{min-width:0}
.sif-keyword-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px}
.sif-keyword-dialog-kicker{display:block;margin-bottom:3px;color:var(--brand);font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.sif-keyword-dialog-head h3{margin:0;word-break:break-word;font-size:var(--fs-18);line-height:1.4}
.sif-keyword-dialog-head p{margin:3px 0 0;color:var(--muted);font-size:var(--fs-12)}
.sif-keyword-dialog-close{-webkit-appearance:none;appearance:none;display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);font:inherit;font-size:22px;line-height:1;cursor:pointer}
.sif-keyword-dialog-close:hover{border-color:var(--line-2);background:var(--surface);color:var(--ink)}
.sif-keyword-dialog-close:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.sif-keyword-dialog-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}
.sif-keyword-dialog-tab{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:38px;padding:7px 12px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:var(--fs-12);font-weight:650;cursor:pointer}
.sif-keyword-dialog-tab:hover{color:var(--brand)}
.sif-keyword-dialog-tab.active{border-bottom-color:var(--brand);color:var(--brand)}
.sif-keyword-dialog-tab:focus-visible{outline:none;border-radius:var(--r-sm) var(--r-sm) 0 0;box-shadow:inset var(--ring)}
.sif-keyword-dialog-body{min-height:250px;padding-top:14px}
.sif-keyword-dialog-body>.mcp-card{width:auto;max-width:none;margin:0 0 8px;background:#fff}
.sif-keyword-dialog-body>.mcp-card:last-child{margin-bottom:0}
.sif-keyword-dialog-status{display:inline-flex;align-items:center;gap:5px;margin:0 0 9px;padding:4px 8px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-size:10.5px;font-weight:600}
.sif-keyword-dialog-status.is-cache{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}
.sif-keyword-dialog-status.is-live{border-color:#c9daf9;background:var(--brand-tint);color:var(--brand-d)}
.sif-keyword-dialog-loading{display:flex;min-height:220px;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--muted);text-align:center}
.sif-keyword-dialog-loading b{color:var(--ink);font-size:var(--fs-13)}
.sif-keyword-dialog-loading span{max-width:420px;font-size:var(--fs-12);line-height:1.55}
@media(max-width:560px){.sif-keyword-dialog-head{gap:10px}.sif-keyword-dialog-tab{flex:1;padding-inline:8px}.sif-keyword-dialog-body{min-height:220px}}

/* SIF · ASIN 流量趋势：把模型标签、精确环比和多期走势分层展示。 */
.sif-trend-card{width:100%;max-width:none!important;padding:0;overflow:hidden;background:#fff!important;line-height:1.5}
.sif-trend-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px 10px}
.sif-trend-kicker{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sif-trend-head h4{margin:2px 0 0;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:var(--fs-16);line-height:1.35}
.sif-trend-badges{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.sif-trend-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border:1px solid #c9daf9;border-radius:var(--r-full);background:var(--brand-tint);color:var(--brand-d);font-size:11px;font-weight:600;white-space:nowrap}
.sif-trend-badge.subtle{border-color:var(--line);background:var(--surface);color:var(--muted);font-weight:500}
.sif-trend-help{margin:0;padding:0 16px 12px;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.sif-trend-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.sif-trend-kpis>div{min-width:0;padding:11px 14px;border-right:1px solid var(--line)}
.sif-trend-kpis>div:last-child{border-right:0}
.sif-trend-kpis span,.sif-trend-kpis small{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.sif-trend-kpis strong{display:block;margin:2px 0;color:var(--ink);font-size:20px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap}
.sif-trend-kpis .tone-up strong,.sif-trend-change.tone-up{color:var(--ok)}
.sif-trend-kpis .tone-down strong,.sif-trend-change.tone-down{color:var(--bad)}
.sif-trend-kpis .tone-flat strong,.sif-trend-change.tone-flat{color:var(--muted)}
.sif-trend-chart{padding:13px 16px 8px;background:#fff}
.sif-trend-chart-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:3px}
.sif-trend-chart-title span{font-size:var(--fs-12);font-weight:700}.sif-trend-chart-title small{color:var(--faint);font-size:11px}
.sif-trend-chart-scroll{max-width:100%;overflow-x:auto;scrollbar-width:thin}
.sif-trend-chart svg{display:block;width:100%;min-width:620px;height:auto;overflow:visible}
.sif-trend-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.sif-trend-axis{fill:var(--faint);font-family:inherit;font-size:10px;font-variant-numeric:tabular-nums}
.sif-trend-area{fill:var(--brand-tint);opacity:.72}
.sif-trend-line{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.sif-trend-dot{fill:#fff;stroke:var(--brand);stroke-width:2;vector-effect:non-scaling-stroke}
.sif-trend-chart.tone-up .sif-trend-dot.is-latest{fill:var(--ok);stroke:#fff}.sif-trend-chart.tone-down .sif-trend-dot.is-latest{fill:var(--bad);stroke:#fff}.sif-trend-chart.tone-flat .sif-trend-dot.is-latest{fill:var(--muted);stroke:#fff}
.sif-trend-latest{fill:var(--ink);font-family:inherit;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.sif-trend-insight{display:flex;align-items:flex-start;gap:10px;margin:0 16px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.sif-trend-insight-icon{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--brand-tint);color:var(--brand)}
.sif-trend-insight>div{min-width:0}.sif-trend-insight b{display:block;font-size:var(--fs-13)}.sif-trend-insight p{margin:2px 0 0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.sif-trend-insight.tone-up{border-color:var(--ok-line);background:var(--ok-tint)}.sif-trend-insight.tone-up .sif-trend-insight-icon{background:#fff;color:var(--ok)}
.sif-trend-insight.tone-down{border-color:var(--bad-line);background:var(--bad-tint)}.sif-trend-insight.tone-down .sif-trend-insight-icon{background:#fff;color:var(--bad)}
.sif-trend-warning{display:flex;align-items:flex-start;gap:7px;margin:0 16px 12px;padding:8px 10px;border:1px solid var(--warn-line);border-radius:var(--r);background:var(--warn-tint);color:#92400e;font-size:var(--fs-12);line-height:1.5}
.sif-trend-warning .ic{flex:0 0 auto;margin-top:2px}
.sif-trend-details{margin:0;border-top:1px solid var(--line);background:#fbfcfe}
.sif-trend-details>summary{padding:9px 16px;color:var(--brand);font-size:var(--fs-12);font-weight:600;cursor:pointer;list-style-position:inside}
.sif-trend-details>div{max-height:260px;overflow:auto;border-top:1px solid var(--line);background:#fff}
.sif-trend-details table{width:100%;border-collapse:collapse;font-size:var(--fs-12)}
.sif-trend-details th,.sif-trend-details td{padding:7px 16px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.sif-trend-details th{position:sticky;top:0;background:var(--surface);color:var(--muted);font-size:11px;text-align:left}.sif-trend-details tr:last-child td{border-bottom:0}
@media(max-width:720px){.sif-trend-head{align-items:flex-start;flex-direction:column}.sif-trend-badges{justify-content:flex-start}.sif-trend-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sif-trend-kpis>div:nth-child(2){border-right:0}.sif-trend-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:460px){.sif-trend-kpis{grid-template-columns:1fr}.sif-trend-kpis>div{border-right:0;border-bottom:1px solid var(--line)}.sif-trend-kpis>div:last-child{border-bottom:0}.sif-trend-chart,.sif-trend-head{padding-left:12px;padding-right:12px}.sif-trend-help{padding-left:12px;padding-right:12px}.sif-trend-insight,.sif-trend-warning{margin-left:12px;margin-right:12px}}

/* —— 列表分页（右下角，仿 Element 风格）—— */
.pager{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;padding:12px 4px 4px}
.pager input::-webkit-outer-spin-button,.pager input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#94a3b8;border:3px solid transparent;background-clip:padding-box}

@media (max-width: 1100px){
  .research-workspace{grid-template-columns:214px minmax(0,1fr);gap:12px}
  .research-field{grid-column:span 6}
  .research-field.wide,.research-field.research-field-wide{grid-column:1/-1}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .grid3{grid-template-columns:1fr 1fr}
  .gsearch{width:170px}
}

@media (max-width: 760px){
  .research-workspace{grid-template-columns:minmax(0,1fr)}
  .research-sidebar{position:static;max-height:none;overflow:visible}
  .research-sidebar-head{padding:11px 12px 8px}
  .research-group-tabs{margin:8px 8px 5px}
  .research-tool-list{flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:4px 8px 9px;scrollbar-width:thin}
  .research-tool{flex:0 0 174px}
  .research-recent{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:start}
  .research-recent-head{padding:10px 10px}
  .research-history-list{flex-direction:row;max-height:none;overflow-x:auto;padding:5px 8px 7px}
  .research-history-item{flex:0 0 160px}
  .research-history-empty{padding:9px 10px}
  .card.research-query-card{padding:14px}
  .card.research-result{padding:0}
  .card.research-state{padding:34px 22px}
  .research-table-wrap{max-height:58vh}
  .rail{width:var(--layout-sidebar-compact-width)}
  .main{width:calc(100% - var(--layout-sidebar-compact-width));margin-left:var(--layout-sidebar-compact-width)}
  .rail .logo2 .logo-wide{display:none}
  .rail .logo2 .logo-compact{display:block;width:40px;height:30px}
  .rail .logo2{height:44px;padding:4px}
  .rail-item{flex-direction:column;justify-content:center;gap:4px;width:calc(100% - 8px);min-height:62px;margin:4px;padding:7px 2px 6px;text-align:center}
  .rail-item.active::before{left:-4px;top:13px;bottom:13px}
  .rail-ico{width:28px;height:28px;border-radius:8px}
  .rail-ico svg{width:19px;height:19px}
  .rail-lbl{font-size:11px;text-align:center}
  .rail-caret{top:6px;right:3px;transform:none}
  .rail-parent[aria-expanded="true"] .rail-caret{transform:rotate(90deg)}
  .rail-section{margin:4px 0;padding:0;border:0;border-radius:0;background:transparent}
  .rail-section-head{display:none}
  .rail-subnav{gap:0}
  .rail-subitem{display:flex;flex-direction:column;justify-content:center;gap:4px;width:calc(100% - 8px);min-height:62px;margin:4px;padding:7px 2px 6px;text-align:center}
  .rail-subitem.active::before{left:-4px;top:13px;bottom:13px}
  .rail-sub-ico{width:28px;height:28px;border-radius:8px}
  .rail-sub-ico svg{width:17px;height:17px}
  .rail-sub-label{font-size:11px;line-height:1.2}
  .rail-sub-desc{display:none}
  .rail-sub-count{position:absolute;top:3px;right:1px;min-width:18px;height:16px;padding:0 4px;border-radius:8px;font-size:9px}
  .rail-flyout{max-width:calc(100vw - 86px)}
  .topbar{height:auto;min-height:52px;padding:0 10px 0 0;align-items:flex-start;flex-wrap:wrap}
  .tabbar{order:1;flex-basis:100%;min-height:52px;padding:7px 5px 7px 8px}
  .tab{max-width:170px}
  .gsearch-wrap{order:2;margin:6px 0 6px 8px}
  .topbar .user{order:3;margin-left:auto;padding:6px 0}
  .content{padding:14px}
  .card{padding:16px}
  .grid2,.grid3{grid-template-columns:1fr}
  .flexbar{align-items:flex-start;flex-direction:column}
  .kpis{grid-template-columns:1fr}
  .modal-bg{padding:12px}
  .modal{padding:18px}
}

@media (max-width: 520px){
  .research-workspace{gap:10px}
  .research-recent{display:none}
  .card.research-query-card{padding:12px}
  .research-query-head,.research-result-head{align-items:flex-start;flex-direction:column}
  .research-query-title{font-size:18px}
  .research-source{align-self:flex-start}
  .research-query-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  .research-field,.research-field.wide,.research-field.research-field-wide,.research-field.full,.research-field.research-field-full{grid-column:1/-1}
  .research-form-actions{align-items:stretch;flex-direction:column}
  .research-form-actions>div:last-child{width:100%;flex-direction:column}
  .research-advanced{width:100%}
  .research-form-actions .btn{width:100%}
  .research-force{min-height:28px}
  .card.research-state{min-height:190px;padding:28px 16px}
  .research-result-actions{width:100%;justify-content:flex-start}
  .research-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .research-stat:nth-child(even){border-right:0}
  .research-stat:last-child:nth-child(odd){grid-column:1/-1;border-top:1px solid var(--line);border-right:0}
  .research-result-toolbar{align-items:stretch;flex-direction:column}
  .research-result-search{width:100%}
  .research-pagination{justify-content:center}
  .research-page-info{flex-basis:100%;margin:0 0 3px;text-align:center}
  .gsearch-wrap{display:none}
  .login-wrap{padding:16px}
  .login-box{padding:28px 22px;width:100%}
  .btn{max-width:100%}
}

/* —— 轻提示 toast（右下角，成功/普通反馈，自动消失，不阻断操作）—— */
.toast-box{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}
.toast{background:var(--ink);color:#fff;padding:9px 14px;border-radius:var(--r);font-size:var(--fs-13);font-weight:500;
  box-shadow:var(--shadow-pop);max-width:340px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:none}
.toast-ok{background:var(--ok)}.toast-bad{background:var(--bad)}.toast-warn{background:var(--warn)}

/* —— 标签内嵌 iframe 框架 —— */
.tabframes{flex:1;position:relative;background:var(--bg);min-height:0}
.tabframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--bg)}

/* —— 2026-07-02 全站视觉降噪 ——
   ①行内软按钮：表格每行的 通过/驳回/录用 等改浅底色调(solid 只留给工具条主操作)——整页不再"圣诞树"
   ②筛选轻胶囊 .fchip：状态/站点/负责人/来源等筛选行改无边框小胶囊，选中才上色——多行筛选不再喧宾夺主 */
.btn.soft-ok{background:#e7f6ee;color:#157f4a;border-color:#d4ecdf}
.btn.soft-ok:hover{background:#d8efe3;border-color:#a9d8bf;box-shadow:none}
.btn.soft-bad{background:#fdecec;color:#c0322a;border-color:#f3dbd9}
.btn.soft-bad:hover{background:#f9dedd;border-color:#e7b7b2;box-shadow:none}
/* —— 自动推荐工作台：状态概览 → 筛选 → 批量动作 → 商品机会表 —— */
.kr-workspace{--kr-blue:#2563eb;--kr-blue-soft:#eef4ff;width:100%;max-width:100%;min-width:0;color:var(--ink)}
.kr-workspace,.kr-workspace *{min-inline-size:0}
.kr-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}
.kr-overview{position:relative;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(620px,1.45fr);align-items:center;gap:18px;min-height:88px;
  margin-bottom:10px;padding:13px 16px;overflow:hidden;border:1px solid #cfdcf2;border-radius:var(--r-lg);
  background:linear-gradient(112deg,#fff 0%,#f7faff 66%,#edf4ff 100%);box-shadow:var(--shadow-sm)}
.kr-overview::after{content:"";position:absolute;right:-52px;bottom:-108px;width:260px;height:260px;border:52px solid rgba(37,99,235,.045);border-radius:50%;pointer-events:none}
.kr-overview-copy{position:relative;z-index:1;display:flex;align-items:center;gap:12px}
.kr-overview-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border:1px solid #c7d8f8;border-radius:11px;background:#fff;color:var(--brand);box-shadow:var(--shadow-sm)}
.kr-overview-copy h1{margin:0;color:var(--ink);font-size:20px;font-weight:750;line-height:1.25;letter-spacing:-.015em}
.kr-overview-copy p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.kr-eyebrow{display:block;margin-bottom:2px;color:var(--brand-d);font-size:9px;font-weight:750;line-height:1.2;letter-spacing:.12em}
.kr-state-nav{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(132px,1fr));gap:7px}
.kr-state-tab{--kr-tone:#64748b;--kr-tone-bg:#f8fafc;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:58px;padding:8px 10px;
  border:1px solid #dbe3ee;border-radius:10px;background:rgba(255,255,255,.9);color:var(--muted);text-align:left;box-shadow:0 1px 1px rgba(15,23,42,.03);
  transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .12s}
.kr-state-tab[data-tone="new"]{--kr-tone:#2563eb;--kr-tone-bg:#eef4ff}
.kr-state-tab[data-tone="watch"]{--kr-tone:#b45309;--kr-tone-bg:#fff8e8}
.kr-state-tab[data-tone="discard"]{--kr-tone:#64748b;--kr-tone-bg:#f1f5f9}
.kr-state-tab[data-tone="done"]{--kr-tone:#15803d;--kr-tone-bg:#edf9f1}
.kr-state-tab:hover{border-color:#b8cae7;background:#fff;color:var(--ink);box-shadow:0 4px 12px rgba(15,23,42,.07)}
.kr-state-tab:active{transform:translateY(1px)}
.kr-state-tab:focus-visible{outline:none;box-shadow:var(--ring)}
.kr-state-tab.active{border-color:color-mix(in srgb,var(--kr-tone) 36%,white);background:var(--kr-tone-bg);color:var(--kr-tone);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--kr-tone) 8%,transparent)}
.kr-state-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid #e1e6ee;border-radius:8px;background:#fff;color:#8491a3}
.kr-state-tab.active .kr-state-icon{border-color:color-mix(in srgb,var(--kr-tone) 22%,white);color:var(--kr-tone)}
.kr-state-copy{display:flex;min-width:0;flex-direction:column}
.kr-state-copy strong{font-size:13px;font-weight:700;line-height:1.25}
.kr-state-copy small{margin-top:2px;overflow:hidden;color:var(--faint);font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.kr-state-count{display:grid;place-items:center;min-width:30px;height:22px;padding:0 6px;border:1px solid #e2e7ef;border-radius:11px;background:#fff;color:#596579;font-size:10px;font-weight:750;font-variant-numeric:tabular-nums}
.kr-state-tab.active .kr-state-count{border-color:color-mix(in srgb,var(--kr-tone) 18%,white);color:var(--kr-tone)}

.kr-filter-panel{margin-bottom:10px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-sm)}
.kr-filter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:7px 14px;border-bottom:1px solid #edf1f6;background:#fbfcfe}
.kr-filter-title,.kr-filter-result{display:flex;align-items:center;gap:7px}
.kr-filter-title{color:#334155;font-size:12px}.kr-filter-title>.ic{color:var(--brand)}
.kr-filter-title strong{font-size:13px}.kr-filter-title span{color:var(--faint);font-size:11px;font-weight:500}
.kr-filter-result{color:var(--muted);font-size:11px;white-space:nowrap}.kr-filter-result b{color:var(--brand-d);font-size:13px;font-variant-numeric:tabular-nums}
.kr-reset,.kr-filter-toggle,.kr-clear-selection{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:27px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);font:inherit;font-size:11px}
.kr-reset:hover:not(:disabled),.kr-filter-toggle:hover,.kr-clear-selection:hover:not(:disabled){border-color:#b8cdf5;background:var(--brand-tint);color:var(--brand)}
.kr-reset:focus-visible,.kr-filter-toggle:focus-visible,.kr-clear-selection:focus-visible{outline:none;box-shadow:var(--ring)}
.kr-reset:disabled,.kr-clear-selection:disabled{opacity:.45;cursor:not-allowed}
.kr-filter-body{padding:1px 14px 4px}
.kr-filter-panel.collapsed .kr-filter-head{border-bottom:0}.kr-filter-panel.collapsed .kr-filter-body{display:none}
.fl-row{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:start;gap:12px;padding:7px 0;border-bottom:1px solid #f0f3f7}
.fl-row:last-child{border-bottom:0}
.fl-lb{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-height:30px;color:#64748b;font-size:11px;font-weight:650;line-height:1.2;white-space:nowrap}
.fl-lb .ic{color:#91a0b4}
.fl-chips{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.kr-workspace .fchip{height:30px;padding:0 10px;border-color:#dfe5ed;border-radius:7px;background:#fff;color:#536071;font-size:11px;font-weight:550}
.kr-workspace .fchip:hover{border-color:#a9c3f3;background:#f8fbff;color:var(--brand)}
.kr-workspace .fchip.on{border-color:#a9c4f6;background:var(--brand-tint);color:var(--brand-d);font-weight:700;box-shadow:inset 0 0 0 1px rgba(37,99,235,.035)}
.kr-workspace .fchip:focus-visible{outline:none;box-shadow:var(--ring)}
.kr-category-filter{position:relative;display:inline-flex;align-items:center;margin-left:3px}
.kr-category-filter::before{content:"类目";position:absolute;left:9px;color:var(--faint);font-size:10px;pointer-events:none}
.kr-category-filter select{width:230px;max-width:34vw;height:30px;padding:0 28px 0 39px;border:1px solid #dfe5ed;border-radius:7px;background:#fff;color:#536071;font-family:inherit;font-size:11px}
.kr-category-filter select:hover{border-color:#a9c3f3}.kr-category-filter select:focus{border-color:var(--brand);outline:none;box-shadow:var(--ring)}

.kr-listbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-bottom:0;border-radius:var(--r-lg) var(--r-lg) 0 0;background:#fff}
.kr-list-title{display:flex;align-items:baseline;gap:9px}.kr-list-title strong{font-size:14px}.kr-list-title span{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums}
.kr-bulk{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.kr-bulk>span{margin-right:2px;color:var(--faint);font-size:11px;white-space:nowrap}
.kr-bulk .btn.sm{height:28px;padding:0 9px;border-radius:7px;font-size:11px}
.kr-bulk .btn:disabled{border-color:var(--line);background:#f8fafc;color:var(--faint);opacity:1}
.kr-readonly-note{display:inline-flex;align-items:center;gap:5px;color:var(--faint);font-size:11px}
.kr-readonly-note .ic{color:var(--ok)}

.kr-table-card{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:0 0 var(--r-lg) var(--r-lg);background:#fff;box-shadow:var(--shadow-sm)}
.kr-table-scroll{min-height:410px;max-height:58vh;overflow:auto;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.kr-table{min-width:1390px;table-layout:fixed;font-size:11px;font-variant-numeric:tabular-nums}
.kr-table th{position:sticky;top:0;z-index:4;height:40px;padding:8px 9px;border-bottom-color:#dfe5ed;background:#f7f9fc;color:#526074;font-size:10px;font-weight:700;letter-spacing:.025em;white-space:nowrap}
.kr-table th.opcol{z-index:6;background:#f7f9fc}
.kr-table td{padding:9px;border-bottom-color:#edf1f5;vertical-align:middle}
.kr-table tbody tr{cursor:default}.kr-table tbody tr:nth-child(even)>td{background:#fbfcfe}
.kr-table tbody tr:hover>td{background:#f1f6ff}.kr-table tbody tr:hover>td.opcol{background:#f1f6ff}
.kr-table tbody tr:has(.kr-cb:checked)>td{background:#eaf2ff;box-shadow:inset 0 1px 0 #d8e7ff,inset 0 -1px 0 #d8e7ff}
.kr-table tbody tr:has(.kr-cb:checked)>td:first-child{box-shadow:inset 3px 0 0 var(--brand),inset 0 1px 0 #d8e7ff,inset 0 -1px 0 #d8e7ff}
.kr-table tbody tr:has(.kr-cb:checked)>td.opcol{background:#eaf2ff}
.kr-col-check{width:42px;text-align:center}.kr-col-site{width:58px}.kr-col-source{width:132px}.kr-col-product{width:430px}.kr-col-decision{width:92px}.kr-col-monthly{width:82px}.kr-col-rank{width:92px}.kr-col-review{width:70px}.kr-col-offer{width:92px}.kr-col-found{width:112px}.kr-col-action{width:226px}
.kr-check-cell{text-align:center}.kr-check-cell input,#krAll{width:15px;height:15px;margin:0;accent-color:var(--brand);cursor:pointer}
.kr-site-cell strong{display:inline-grid;place-items:center;min-width:34px;height:27px;padding:0 7px;border:1px solid #dce6f6;border-radius:7px;background:#f7faff;color:#315c9f;font-size:11px}
.kr-source-cell{line-height:1.65}.kr-source-cell>span{margin:1px 2px 1px 0}
.kr-product{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:start;gap:10px}
.kr-product-thumb{display:block;width:52px;height:52px;object-fit:contain;border:1px solid #e0e6ee;border-radius:9px;background:#fff;cursor:zoom-in;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.kr-product-empty{display:grid;place-items:center;color:#a8b2c1;cursor:default;background:#f8fafc}
.kr-product-main{overflow:hidden}.kr-asin-line{display:flex;align-items:center;gap:4px;min-height:18px}.kr-asin-line .mono{font-size:11px;font-weight:700}
.copy-ico{-webkit-appearance:none;appearance:none;display:inline-grid;place-items:center;width:22px;height:22px;margin:0;padding:0;border:0;border-radius:6px;background:transparent;color:var(--faint);cursor:pointer;line-height:1;vertical-align:middle}
.copy-ico:hover{background:var(--brand-tint);color:var(--brand)}.copy-ico:focus-visible{outline:none;box-shadow:var(--ring)}
.kr-product-title{margin-top:1px;overflow:hidden;color:#243247;font-size:12px;font-weight:650;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.kr-product-title .muted{font-weight:500}.kr-product-category{display:flex;align-items:center;gap:4px;max-width:100%;margin-top:2px;overflow:hidden;color:var(--faint);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.kr-stock-summary{margin-top:3px;color:#697587;font-size:10px;line-height:1.4}.kr-stock-summary em{color:var(--warn);font-style:normal}
.kr-signal-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:5px}
.kr-signal{display:inline-flex;align-items:center;gap:3px;max-width:100%;min-height:19px;padding:1px 6px;border-radius:6px;font-size:9px;font-weight:650;line-height:1.3}
.kr-signal.season{background:#fff4e8;color:#b45309}.kr-signal.risk{background:#fff1ed;color:#b64827}.kr-signal.freight{background:#f1edff;color:#6d28d9}.kr-signal.ip{background:#fef2f2;color:#b91c1c}.kr-signal.peak{background:#edf4ff;color:#1d4ed8}.kr-signal.neutral{overflow:hidden;background:#f3f5f8;color:#64748b;text-overflow:ellipsis;white-space:nowrap}
.kr-decision-cell>div{display:flex;align-items:center;min-height:23px}.kr-decision-cell>div+div{margin-top:2px}
.kr-metric strong{display:block;color:#223047;font-size:12px;line-height:1.25}.kr-metric small{display:block;margin-top:2px;color:#98a2b1;font-size:9px;font-weight:500;line-height:1.2}
.kr-offer-cell{white-space:nowrap}.kr-offer-cell strong{display:block;margin-top:5px;color:#27364d;font-size:11px}.kr-fulfill{display:inline-flex;align-items:center;min-height:20px;padding:1px 6px;border-radius:6px;background:#f1f5f9;color:#526074;font-size:9px;font-weight:750}.kr-fulfill.fba{background:#fff3e5;color:#b45309}
.kr-found-cell time,.kr-found-cell span{display:block;white-space:nowrap}.kr-found-cell time{color:#526074;font-size:10px}.kr-found-cell span{margin-top:4px;overflow:hidden;color:#98a2b1;font-size:9px;text-overflow:ellipsis}
.kr-action-cell{background:#fff;text-align:right}.kr-table tbody tr:nth-child(even)>td.opcol{background:#fbfcfe}
.kr-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.kr-row-actions .btn.sm{height:27px;padding:0 8px;border-radius:7px;font-size:10px}
.kr-empty{text-align:center!important;padding:52px 20px!important;color:var(--faint)}.kr-empty>.ic{display:block;margin:0 auto 8px;color:#a7b4c7}.kr-empty strong,.kr-empty span{display:block}.kr-empty strong{color:#536071;font-size:13px}.kr-empty span{margin-top:3px;font-size:11px}
.kr-workspace>.pager{padding-top:10px}

@media (max-width:1280px){
  .kr-overview{grid-template-columns:minmax(0,1fr);gap:11px}.kr-overview-copy p{max-width:720px}.kr-state-nav{grid-template-columns:repeat(4,minmax(142px,1fr))}
  .kr-table-scroll{max-height:none}
}
@media (max-width:900px){
  .kr-overview{padding:12px}.kr-state-nav{display:flex;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}.kr-state-tab{flex:0 0 168px;scroll-snap-align:start}
  .fl-row{grid-template-columns:76px minmax(0,1fr);gap:8px}.kr-listbar{align-items:flex-start;flex-direction:column}.kr-bulk{justify-content:flex-start;width:100%;overflow-x:auto;padding-bottom:2px}
  .kr-table{min-width:1230px}.kr-col-product{width:365px}.kr-col-source{width:112px}.kr-col-action{width:214px}
}
@media (max-width:560px){
  .kr-overview-copy{align-items:flex-start}.kr-overview-copy p{display:none}.kr-overview-icon{width:38px;height:38px}.kr-overview-copy h1{font-size:18px}
  .kr-filter-head{align-items:flex-start;flex-direction:column;gap:5px;padding:9px 11px}.kr-filter-result{justify-content:space-between;width:100%}.kr-filter-body{padding:1px 11px 5px}
  .fl-row{display:block;padding:8px 0}.fl-lb{min-height:22px;margin-bottom:5px}.fl-chips{flex-wrap:nowrap;overflow-x:auto;padding:0 1px 3px}.kr-workspace .fchip{flex:0 0 auto;height:34px}
  .kr-category-filter{flex:0 0 210px}.kr-category-filter select{width:210px;max-width:none;height:34px}.kr-bulk .btn.sm{height:34px}.kr-clear-selection{min-height:34px}
}

/* —— Selection V2：固定快照证据台（不与旧推荐池计数混用） —— */
.sv2-mode-switch{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s3);padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);color:var(--muted);font-size:var(--fs-12)}
.sv2-mode-switch span{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.sv2-mode-switch b{color:var(--ink)}
.sv2-workspace{width:100%;min-width:0;color:var(--ink)}
.sv2-workspace :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible,.sv2-feedback-form :where(button,input,select,textarea):focus-visible{outline:2px solid var(--brand);outline-offset:2px;box-shadow:var(--ring)}
.sv2-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);margin-bottom:var(--s3);padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow-sm)}
.sv2-eyebrow{color:var(--brand);font-size:10px;font-weight:750;letter-spacing:.1em}.sv2-hero h1{margin:2px 0;color:var(--ink);font-size:var(--fs-20)}.sv2-hero p{margin:0;color:var(--muted);font-size:var(--fs-12)}
.sv2-run{display:flex;align-items:flex-end;flex-direction:column;gap:3px;white-space:nowrap}.sv2-run span{font-size:var(--fs-13)}.sv2-run small{color:var(--muted)}
.sv2-metrics{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(420px,1.8fr) minmax(280px,1fr);align-items:center;gap:var(--s4);margin-bottom:var(--s3);padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.sv2-metrics-head,.sv2-actuals{display:flex;flex-direction:column;gap:3px}.sv2-metrics-head span,.sv2-actuals small{color:var(--muted);font-size:11px}.sv2-funnel{display:grid;grid-template-columns:repeat(5,minmax(68px,1fr));gap:6px}.sv2-funnel span,.sv2-actuals>span{padding:6px 8px;border-radius:var(--r);background:var(--surface);font-size:11px;font-weight:650;text-align:center}.sv2-actuals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sv2-actuals small{grid-column:1/-1}.sv2-metrics-error{display:flex;align-items:center;gap:var(--s3);color:var(--bad)}
.sv2-controls{margin-bottom:var(--s3);padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.sv2-pipeline-tabs{display:flex;gap:6px;margin-bottom:10px;border-bottom:1px solid var(--line)}.sv2-pipeline-tab{min-height:34px;padding:0 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-weight:650}.sv2-pipeline-tab.active{border-bottom-color:var(--brand);color:var(--brand)}
.sv2-filter-row,.sv2-queue-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sv2-filter-row label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--fs-12)}.sv2-filter-row select{height:34px;padding:0 30px 0 10px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--card)}
.sv2-queue-filters{flex:1}.sv2-filter-chip{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--card);color:var(--muted);font-size:11px}.sv2-filter-chip.active{border-color:var(--brand);background:var(--brand-tint);color:var(--brand);font-weight:700}
.sv2-listbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:9px 12px;border:1px solid var(--line);border-bottom:0;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--card)}.sv2-listbar span{color:var(--muted);font-size:11px}
.sv2-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--card);box-shadow:var(--shadow-sm)}
.sv2-table{width:100%;min-width:1120px;table-layout:fixed;font-size:var(--fs-12)}.sv2-table th{position:sticky;top:0;z-index:2;padding:9px 10px;background:var(--surface);color:var(--muted);text-align:left}.sv2-table th:first-child{width:220px}.sv2-table th:last-child{width:190px}.sv2-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}.sv2-table tbody tr:last-child td{border-bottom:0}.sv2-table tbody tr:hover td{background:var(--brand-tint)}
.sv2-product-head,.sv2-product-meta,.sv2-live-actions,.sv2-shadow-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.sv2-site,.sv2-pipeline,.sv2-queue{display:inline-flex;align-items:center;gap:4px;min-height:23px;padding:1px 7px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);font-size:10px;font-weight:700}.sv2-queue-strong{border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}.sv2-queue-watch{border-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}.sv2-queue-needs-data{border-color:var(--color-primary-border);background:var(--brand-tint);color:var(--brand)}.sv2-queue-rejected{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.sv2-asin{margin:9px 0 4px;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:var(--fs-13);font-weight:750}.sv2-product-meta{align-items:flex-start;flex-direction:column;color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.sv2-primary-metrics{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;margin-bottom:8px}.sv2-primary-metric{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.sv2-primary-metric span{color:var(--muted);font-size:10px}.sv2-primary-metric strong{font-size:var(--fs-16);font-variant-numeric:tabular-nums}
.sv2-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.sv2-evidence-grid>span,.sv2-economics>span{padding:5px 7px;border-radius:var(--r-sm);background:var(--surface);font-size:10px}.sv2-economics{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.sv2-economics>span:first-child{background:var(--brand-tint);color:var(--brand);font-weight:700}
.sv2-evidence-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;color:var(--muted);font-size:10px}.sv2-evidence-notes>div{display:flex;align-items:flex-start;gap:6px}.sv2-note-list{display:flex;gap:4px;flex-wrap:wrap}.sv2-note-list>span{padding:1px 5px;border-radius:var(--r-sm);background:var(--surface)}.sv2-ok-text{color:var(--ok)}
.sv2-action-cell{white-space:normal}.sv2-action-cell>.btn{margin-bottom:7px}.sv2-shadow-actions,.sv2-live-actions{align-items:stretch;flex-direction:column}.sv2-shadow-actions>span,.sv2-action-note{color:var(--muted);font-size:10px}
.sv2-empty,.sv2-loading,.sv2-alert{padding:30px;text-align:center;color:var(--muted)}.sv2-alert{border:1px solid var(--bad-line);border-radius:var(--r-lg);background:var(--bad-tint);color:var(--bad)}.sv2-workspace>.pager{padding-top:10px}
.sv2-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3)}.sv2-detail-head span{color:var(--muted);font-size:11px}.sv2-detail-head h4{margin:2px 0;font-size:var(--fs-16)}.sv2-saved-note{padding:7px 9px;border-left:3px solid var(--brand);background:var(--brand-tint);color:var(--brand);font-size:11px}
.sv2-quote-form{margin:12px 0}.sv2-quote-form fieldset{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(100px,.35fr) minmax(240px,1.2fr) auto;align-items:end;gap:9px;padding:12px;border:1px solid var(--line);border-radius:var(--r-lg)}.sv2-quote-form legend{font-weight:700}.sv2-quote-form label,.sv2-feedback-form label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}.sv2-quote-form :is(input,textarea),.sv2-feedback-form :is(select,textarea){width:100%;padding:7px 9px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--card);color:var(--ink)}.sv2-quote-form p{margin:4px 0;color:var(--muted);font-size:10px}
.sv2-snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sv2-snapshot{border:1px solid var(--line);border-radius:var(--r);background:var(--card)}.sv2-snapshot summary{padding:8px 10px;font-weight:650;cursor:pointer}.sv2-snapshot pre{max-height:260px;margin:0;padding:10px;overflow:auto;border-top:1px solid var(--line);background:var(--surface);font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}.sv2-feedback-form{display:grid;gap:10px}.sv2-feedback-form [role="status"]{min-height:18px;color:var(--bad);font-size:11px}
@media(max-width:1000px){.sv2-metrics{grid-template-columns:1fr}.sv2-run{align-items:flex-start}.sv2-hero{align-items:flex-start;flex-direction:column}.sv2-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sv2-quote-form fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}.sv2-quote-note{grid-column:1/-1}}
@media(max-width:640px){.sv2-mode-switch,.sv2-listbar{align-items:flex-start;flex-direction:column}.sv2-mode-switch .btn{width:100%}.sv2-funnel{grid-template-columns:repeat(2,minmax(0,1fr))}.sv2-filter-row{align-items:stretch;flex-direction:column}.sv2-queue-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.sv2-filter-chip{flex:0 0 auto}.sv2-primary-metrics,.sv2-evidence-grid,.sv2-evidence-notes,.sv2-snapshot-grid,.sv2-quote-form fieldset{grid-template-columns:1fr}.sv2-economics{align-items:stretch;flex-direction:column}.sv2-table{min-width:920px}.sv2-run{white-space:normal}}

/* —— 广告执行手册：左侧章节导航 —— */
.am-nav{padding:8px 10px;border-radius:var(--r);cursor:pointer;font-size:13px;color:var(--muted);line-height:1.4;margin:1px 0}
.am-nav:hover{background:var(--surface);color:var(--ink)}
.am-nav.active{background:#e8f1ff;color:var(--brand);font-weight:600}

/* --- Advertising decision workspace --- */
.ads-workspace{
  --ads-blue-soft:#f4f8ff;--ads-blue-line:#c9dbff;--ads-amber-soft:#fff8e8;--ads-amber-line:#efd59a;
  width:100%;max-width:100%;min-width:0;margin:0 auto;color:var(--ink);overflow-x:hidden;overflow-x:clip
}
.ads-workspace,.ads-workspace *{min-inline-size:0}
.ads-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:112px;margin-bottom:12px;padding:18px 20px;
  overflow:hidden;border:1px solid #cfdcf2;border-radius:var(--r-lg);background:linear-gradient(112deg,#fff 0%,#f5f9ff 66%,#edf4ff 100%);box-shadow:var(--shadow-sm)}
.ads-hero::after{content:"";position:absolute;right:-42px;bottom:-84px;width:220px;height:220px;border:44px solid rgba(37,99,235,.055);border-radius:50%;pointer-events:none}
.ads-hero-copy{position:relative;z-index:1;display:flex;align-items:flex-start;gap:12px;min-width:0}
.ads-hero-icon,.ads-page-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border:1px solid #c7d8f8;border-radius:10px;background:#fff;color:var(--brand);box-shadow:var(--shadow-sm)}
.ads-hero-copy h1{margin:1px 0 3px;font-size:22px;line-height:1.25;letter-spacing:-.01em}
.ads-hero-copy p,.ads-page-copy p{max-width:820px;margin:0;color:var(--muted);font-size:var(--fs-13);line-height:1.55;overflow-wrap:anywhere}
.ads-eyebrow{color:var(--brand-d);font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.09em;text-transform:uppercase}
.ads-hero-status{position:relative;z-index:1;display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:7px;max-width:360px}
.ads-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--line-2);border-radius:var(--r-full);background:#fff;font-family:inherit;font-size:var(--fs-12);font-weight:600;line-height:1.2;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.ads-status-pill.ok{border-color:var(--ok-line);background:var(--ok-tint);color:#15733c}
.ads-status-pill.warn{border-color:var(--ads-amber-line);background:var(--ads-amber-soft);color:#8a5708}
.ads-status-pill:hover{filter:brightness(.985)}
.ads-window-note{display:inline-flex;align-items:flex-start;justify-content:flex-end;gap:5px;color:var(--muted);font-size:11px;line-height:1.45;text-align:right}
.ads-window-note .ic{margin-top:1px;color:var(--warn)}

.ads-layout{display:grid;grid-template-columns:232px minmax(0,1fr);align-items:start;gap:12px;max-width:100%;min-width:0}
.ads-task-nav{position:sticky;top:56px;display:flex;max-height:calc(100vh - 70px);min-width:0;flex-direction:column;gap:6px;padding:8px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm);scrollbar-width:thin}
.ads-nav-group{display:flex;flex-direction:column;gap:2px;padding:2px 0 7px;border-bottom:1px solid #eef1f5}
.ads-nav-group:last-child{padding-bottom:2px;border-bottom:0}
.ads-nav-label{padding:5px 8px 3px;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.ads-nav-item{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-height:54px;padding:7px 8px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--muted);font:inherit;text-align:left;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.ads-nav-item:hover{border-color:#dce7f8;background:#f7faff;color:var(--ink)}
.ads-nav-item.active{border-color:#b9cff7;background:var(--brand-tint);color:var(--brand-d);box-shadow:inset 3px 0 0 var(--brand)}
.ads-nav-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--faint)}
.ads-nav-item:hover .ads-nav-icon{color:var(--brand)}
.ads-nav-item.active .ads-nav-icon{border-color:#c3d6fa;background:#fff;color:var(--brand)}
.ads-nav-copy,.ads-nav-title,.ads-nav-desc{display:block;min-width:0}
.ads-nav-title{overflow:hidden;color:inherit;font-size:var(--fs-13);font-weight:650;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.ads-nav-desc{margin-top:2px;overflow:hidden;color:var(--faint);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.ads-nav-item.active .ads-nav-desc{color:#55709c}

.ads-main{width:100%;max-width:100%;min-width:0}
.ads-page-head{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.ads-page-icon{width:38px;height:38px;border-radius:var(--r)}
.ads-page-copy{min-width:0}
.ads-page-copy h2{margin:1px 0 2px;font-size:18px;line-height:1.3;letter-spacing:-.005em}
.ads-source-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;min-height:26px;padding:3px 8px;overflow:hidden;border:1px solid #d8e4f7;border-radius:var(--r-full);background:var(--ads-blue-soft);color:#335d9f;font-size:11px;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}

.ads-panel{max-width:100%;min-width:0;margin-bottom:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.ads-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid #edf0f4}
.ads-panel-head h2,.ads-panel-head h3{margin:0;color:var(--ink);line-height:1.35}.ads-panel-head h2{font-size:18px}.ads-panel-head h3{font-size:var(--fs-15)}
.ads-panel-head p{max-width:760px;margin:3px 0 0;color:var(--muted);font-size:var(--fs-12);line-height:1.5;overflow-wrap:anywhere}
.ads-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:12px;min-width:0}
.ads-form-grid-newad{grid-template-columns:minmax(120px,.75fr) minmax(220px,2fr) repeat(3,minmax(140px,1fr)) auto}
.ads-form-grid>.field{min-width:0;margin:0}
.ads-form-grid input,.ads-form-grid select,.ads-form-grid textarea{max-width:100%}
.ads-store-picker-field{position:relative;z-index:5}
.ads-store-picker{position:relative;min-width:0}
.ads-store-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:var(--control-height);padding:0 10px;overflow:hidden;border:1px solid var(--input-border);border-radius:var(--control-radius);background:var(--input-bg);color:var(--ink);cursor:pointer;list-style:none;transition:var(--transition-interactive)}
.ads-store-picker>summary::-webkit-details-marker{display:none}
.ads-store-picker>summary .ic{flex:0 0 auto;color:var(--muted);transition:transform .15s ease}
.ads-store-picker[open]>summary{border-color:var(--brand);box-shadow:var(--ring)}
.ads-store-picker[open]>summary .ic{transform:rotate(180deg)}
.ads-store-picker.is-disabled>summary{border-color:var(--line);background:var(--color-surface-muted);color:var(--faint);cursor:not-allowed;box-shadow:none}
.ads-store-picker-copy{display:flex;min-width:0;flex-direction:column}
.ads-store-picker-copy b,.ads-store-picker-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ads-store-picker-copy b{font-size:var(--fs-12);font-weight:650;line-height:1.25}
.ads-store-picker-copy small{margin-top:1px;color:var(--muted);font-size:9px;line-height:1.2}
.ads-store-picker-popover{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:max(100%,340px);max-width:min(440px,calc(100vw - 48px));overflow:hidden;border:1px solid #c9d8ee;border-radius:var(--r-card);background:#fff;box-shadow:0 14px 35px rgba(31,49,78,.18)}
.ads-store-picker-tools,.ads-store-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;background:var(--surface)}
.ads-store-picker-tools{border-bottom:1px solid var(--line)}.ads-store-picker-footer{border-top:1px solid var(--line)}
.ads-store-picker-tools>span,.ads-store-picker-footer>span{color:var(--muted);font-size:10px}
.ads-store-picker-tools>div{display:flex;gap:5px}
.ads-store-picker-tools button{min-height:24px;padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--brand-d);font:inherit;font-size:10px;cursor:pointer}
.ads-store-picker-tools button:hover:not(:disabled){border-color:#b9cff7;background:var(--brand-tint)}
.ads-store-picker-tools button:disabled{color:var(--faint);cursor:not-allowed}
.ads-store-picker-list{display:grid;max-height:260px;overflow:auto;padding:5px}
.ads-store-picker-list>p{margin:12px;color:var(--muted);font-size:11px;text-align:center}
.field .ads-store-option{display:flex;align-items:center;gap:9px;min-width:0;margin:0!important;padding:8px 9px;border-radius:8px;color:var(--ink);cursor:pointer}
.field .ads-store-option:hover{background:#f3f7ff}
.field .ads-store-option:has(input:checked){background:var(--brand-tint)}
.field .ads-store-option input{flex:0 0 auto;width:17px!important;height:17px!important;margin:0!important;accent-color:var(--brand)}
.ads-store-option>span{display:flex;min-width:0;flex-direction:column}
.ads-store-option b,.ads-store-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ads-store-option b{font-size:11px;line-height:1.35}.ads-store-option small{margin-top:1px;color:var(--muted);font-size:9px;line-height:1.3}
.ads-bulk-store-results>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.ads-bulk-store-results>header h3{margin:1px 0 2px;font-size:15px}.ads-bulk-store-results>header p{margin:0;color:var(--muted);font-size:10px}
.ads-store-result-tabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:7px}
.ads-store-result-tab{display:flex;min-width:0;min-height:49px;flex-direction:column;align-items:flex-start;justify-content:center;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:var(--transition-interactive)}
.ads-store-result-tab:hover:not(:disabled){border-color:#b9cff7;background:#f7faff}.ads-store-result-tab.active{border-color:var(--brand);background:var(--brand-tint);box-shadow:inset 3px 0 0 var(--brand)}
.ads-store-result-tab.is-error{border-color:var(--bad-line);background:var(--bad-tint)}.ads-store-result-tab.is-ready:not(.active){border-color:#cfe7db}
.ads-store-result-tab span,.ads-store-result-tab small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ads-store-result-tab span{font-size:11px;font-weight:650}.ads-store-result-tab small{margin-top:3px;color:var(--muted);font-size:9px}
.ads-form-submit{display:flex;align-items:flex-end;min-width:0}.ads-form-submit .btn{max-width:100%}
.ads-stage-overview{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.6fr);gap:12px;margin:0 0 13px;padding:11px;border:1px solid #b9cff7;border-radius:var(--r-card);background:#f7faff}
.ads-stage-mode,.ads-stage-current,.ads-stage-current-copy,.ads-stage-bundle{min-width:0}
.ads-stage-section-label,.ads-stage-bundle-head,.ads-stage-current-kicker{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ads-stage-section-label{margin:0 1px 7px}.ads-stage-section-label b,.ads-stage-bundle-head b{color:var(--brand-d);font-size:11px}.ads-stage-section-label small,.ads-stage-bundle-head small{color:var(--muted);font-size:10px}
.ads-stage-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}
.ads-stage-option{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-width:0;min-height:50px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--muted);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.ads-stage-option:hover{border-color:#b9cff7;background:#f7faff}.ads-stage-option:focus-visible{outline:3px solid rgba(43,102,205,.24);outline-offset:2px}
.ads-stage-option.active{border-color:var(--brand);background:var(--ads-blue-soft);box-shadow:inset 3px 0 0 var(--brand)}
.ads-stage-option-index{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#edf1f7;color:#64748b;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.ads-stage-option.active .ads-stage-option-index{background:#dce9ff;color:var(--brand-d)}
.ads-stage-option b{color:var(--ink);font-size:12px;line-height:1.35}.ads-stage-option.active b{color:var(--brand-d)}
.ads-stage-option small{display:block;margin-top:1px;color:var(--muted);font-size:10px;line-height:1.35}
.ads-stage-current{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(0,1.1fr);align-items:center;gap:12px;padding-left:12px;border-left:1px solid #dce7f8}
.ads-stage-current-kicker{justify-content:flex-start;margin-bottom:3px}.ads-stage-day{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:var(--r-full);background:#dce9ff;color:var(--brand-d);font-size:10px;font-weight:700;white-space:nowrap}
.ads-stage-current h4{margin:0;color:var(--ink);font-size:14px;line-height:1.35}.ads-stage-current p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.45;overflow-wrap:anywhere}
.ads-stage-bundle-head{margin-bottom:6px}.ads-bundle-items{display:flex;align-items:stretch;gap:5px;min-width:0;flex-wrap:wrap}.ads-bundle-item{display:flex;align-items:center;gap:4px;min-height:34px;min-width:0;padding:6px 8px;border:1px solid #d8e4f7;border-radius:var(--r);background:#fff}
.ads-bundle-item b{color:var(--ink);font-size:11px;line-height:1.3}.ads-bundle-item small{color:var(--muted);font-size:9px;line-height:1.3;white-space:nowrap}.ads-bundle-item small::before{content:"·";margin-right:4px;color:#a2afc0}
.ads-result-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:8px 10px;border:1px solid #dce7f8;border-radius:var(--r);background:#f8faff}
.ads-result-status>span:first-child{display:flex;align-items:center;min-width:0;gap:7px}.ads-result-status b{flex:0 0 auto;color:var(--brand-d);font-size:11px}.ads-result-status small{min-width:0;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.ads-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid #edf0f4}
.ads-action-buttons{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.ads-helper{display:block;max-width:100%;margin-top:9px;color:var(--muted);font-size:11px;line-height:1.55;overflow-wrap:anywhere}
.ads-form-actions>.ads-helper{margin-top:0}
.ads-batch-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.ads-batch-pager>div{display:flex;align-items:center;gap:8px}.ads-batch-pager b{color:var(--ink);font-size:var(--fs-12)}.ads-batch-pager span{color:var(--muted);font-size:11px}.ads-batch-pager .btn{min-width:72px}
.ads-result{max-width:100%;min-width:0}

.ads-state{display:flex;align-items:center;justify-content:center;gap:12px;min-height:148px;padding:24px;border:1px dashed var(--line-2);border-radius:var(--r-card);background:var(--surface);color:var(--muted);text-align:left}
.ads-state.loading{border-color:var(--ads-blue-line);background:var(--ads-blue-soft)}
.ads-state.error{border-color:var(--bad-line);background:#fffafa}
.ads-state-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--brand);box-shadow:inset 0 0 0 1px var(--line)}
.ads-state.empty .ads-state-icon{color:var(--faint)}
.ads-state.error .ads-state-icon{background:var(--bad-tint);color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad-line)}
.ads-state b{display:block;color:var(--ink);font-size:var(--fs-13)}
.ads-state p{max-width:520px;margin:3px 0 0;font-size:var(--fs-12);line-height:1.5}
.ads-skeleton{width:min(320px,62vw);margin-top:11px}
.ads-skeleton i{display:block;height:8px;margin-top:7px;border-radius:4px;background:linear-gradient(90deg,#dfe8f7 25%,#f8fbff 50%,#dfe8f7 75%);background-size:200% 100%;animation:ads-shimmer 1.25s linear infinite}
.ads-skeleton i:nth-child(1){width:92%}.ads-skeleton i:nth-child(2){width:70%}.ads-skeleton i:nth-child(3){width:82%}
@keyframes ads-shimmer{to{background-position:-200% 0}}

.ads-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin-bottom:12px}
.ads-metric{position:relative;display:flex;min-height:94px;min-width:0;flex-direction:column;justify-content:center;padding:11px 12px 10px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;font-variant-numeric:tabular-nums}
.ads-metric::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand)}
.ads-metric.danger::before{background:var(--bad)}.ads-metric.warning::before{background:var(--warn)}.ads-metric.success::before{background:var(--ok)}
.ads-metric>span{color:var(--muted);font-size:11px;font-weight:600;line-height:1.35}
.ads-metric>strong{display:block;margin-top:4px;overflow:hidden;color:var(--ink);font-size:22px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
.ads-metric.danger>strong{color:var(--bad)}.ads-metric.warning>strong{color:var(--warn)}.ads-metric.success>strong{color:var(--ok)}
.ads-metric>small{margin-top:4px;overflow:hidden;color:var(--faint);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.ads-metric .ads-metric-compact{font-size:15px;line-height:1.35}
.ads-table-wrap{width:100%;max-width:100%;min-width:0;overflow:auto;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.ads-table-wrap table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;font-size:var(--fs-12);font-variant-numeric:tabular-nums}
.ads-table-wrap th,.ads-table-wrap td{padding:8px 10px;white-space:nowrap}
.ads-table-wrap thead th{position:sticky;top:0;z-index:2;background:var(--surface);box-shadow:0 1px 0 var(--line)}
.ads-table-wrap tbody tr{cursor:default}.ads-table-wrap tbody tr:nth-child(even){background:#fbfcfe}.ads-table-wrap tbody tr:hover{background:#eef5ff}
.ads-table-wrap .ads-check-col{width:72px;text-align:center}.ads-table-wrap input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--brand)}
.ads-select-all{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;cursor:pointer}.ads-select-all span{font-size:11px;font-weight:600;color:var(--muted)}
.ads-check-tools{display:flex;align-items:center;justify-content:center;gap:6px}.ads-check-tools>button{min-height:24px;padding:1px 5px;border:0;border-radius:5px;background:transparent;color:var(--brand);font:inherit;font-size:10px;cursor:pointer}.ads-check-tools>button:hover:not(:disabled){background:var(--brand-tint)}.ads-check-tools>button:disabled{color:var(--faint);cursor:not-allowed}
.ads-table-wrap tbody tr.ads-row-selected,.ads-table-wrap tbody tr.ads-row-selected:nth-child(even){background:#f1f6ff;box-shadow:inset 3px 0 0 var(--brand)}
.ads-table-wrap td>small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}
.ads-table-wrap tbody tr.ads-process-log-row{cursor:pointer}.ads-table-wrap tbody tr.ads-process-log-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;background:#eef5ff}
.ads-log-detail{min-width:0}.ads-log-detail-head{position:sticky;top:-20px;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:-18px -18px 16px;padding:16px 18px 13px;border-bottom:1px solid var(--line);background:#fff}.ads-log-detail-head span{color:var(--brand);font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.ads-log-detail-head h3{margin:2px 0 0;font-size:18px}
.ads-log-detail-body{display:grid;gap:14px}
.ads-log-summary{padding:13px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
[data-ads-log-summary]{padding:13px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.ads-log-summary-main,.ads-log-summary .ads-log-detail-overview,[data-ads-log-summary] .ads-log-detail-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;background:transparent}
.ads-log-summary-main>div,.ads-log-summary .ads-log-detail-overview>div,[data-ads-log-summary] .ads-log-detail-overview>div{min-width:0;padding:0;border:0;background:transparent}
.ads-log-summary-main span,.ads-log-summary .ads-log-detail-overview span,[data-ads-log-summary] .ads-log-detail-overview span{display:block;color:var(--muted);font-size:10px;font-weight:600}
.ads-log-summary-main b,.ads-log-summary .ads-log-detail-overview b,[data-ads-log-summary] .ads-log-detail-overview b{display:block;margin-top:4px;overflow-wrap:anywhere;font-size:var(--fs-13);line-height:1.45}
.ads-log-summary-main .ads-log-summary-change,.ads-log-summary .ads-log-summary-change{color:var(--brand);font-size:var(--fs-14)}
.ads-log-campaign-name{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.55}
.ads-log-detail-overview .ads-log-campaign-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3.1em;overflow:hidden;line-height:1.55}
.ads-log-summary-main small,.ads-log-summary .ads-log-detail-overview small,[data-ads-log-summary] .ads-log-detail-overview small{display:block;margin-top:3px;color:var(--muted);overflow-wrap:anywhere}
.ads-log-detail-message{padding:11px 13px;border:1px solid #cfe0ff;border-radius:var(--r-card);background:#f5f8ff}.ads-log-detail-message.is-error{border-color:#fecaca;background:#fff7f7}.ads-log-detail-message b{font-size:var(--fs-12)}.ads-log-detail-message p{margin:4px 0 0;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.ads-log-detail-section{min-width:0;padding:13px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}.ads-log-detail-section h4{margin:0 0 10px;font-size:var(--fs-13)}
.ads-log-evidence-grid,[data-ads-log-evidence] .ads-log-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:0;border:0;font-variant-numeric:tabular-nums}
.ads-log-evidence-grid>div,[data-ads-log-evidence] .ads-log-detail-grid>div{min-width:0;padding:0;border:0}
.ads-log-detail-grid>div.is-wide{grid-column:1/-1}.ads-log-detail-grid dt{color:var(--muted);font-size:10px}.ads-log-detail-grid dd{margin:4px 0 0;font-size:var(--fs-12);font-weight:500;line-height:1.55;overflow-wrap:anywhere}.ads-log-detail-grid pre{margin:0;padding:9px;border-radius:6px;background:var(--surface);color:var(--ink);font:11px/1.55 var(--font-mono);white-space:pre;overflow-x:auto;overflow-y:visible}
.ads-log-diff-table{width:100%;border-collapse:collapse;font-size:var(--fs-12);font-variant-numeric:tabular-nums}
.ads-log-diff-table th,.ads-log-diff-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.ads-log-diff-table th{background:var(--surface);color:var(--muted);font-size:10px;font-weight:650}.ads-log-diff-table td:first-child{width:28%;color:var(--muted);font-weight:650}.ads-log-diff-table td.is-after{color:var(--brand);font-weight:700}
[data-ads-log-diff] .ads-table-wrap{overflow:visible;border:1px solid var(--line);border-radius:var(--r-card)}[data-ads-log-diff] .ads-table-wrap table{width:100%;min-width:0;border-collapse:collapse;font-variant-numeric:tabular-nums}[data-ads-log-diff] .ads-table-wrap th,[data-ads-log-diff] .ads-table-wrap td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}[data-ads-log-diff] .ads-table-wrap thead th{position:static;background:var(--surface);box-shadow:none;color:var(--muted);font-size:10px;font-weight:650}[data-ads-log-diff] .ads-table-wrap td:first-child{width:28%;color:var(--muted);font-weight:650}[data-ads-log-diff] .ads-table-wrap td:last-child{color:var(--brand);font-weight:700}
.ads-log-technical>summary{display:flex;align-items:center;min-height:44px;padding:0 2px;color:var(--muted);font-size:var(--fs-12);font-weight:650;cursor:pointer}
.ads-log-technical>summary:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:var(--r-sm)}
.ads-log-detail-technical>summary{display:flex;align-items:center;min-height:44px;padding:0 2px;color:var(--muted);font-size:var(--fs-12);font-weight:650;cursor:pointer}.ads-log-detail-technical>summary:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:var(--r-sm)}
.ads-log-technical .ads-log-detail-section{padding:12px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}.ads-log-detail-technical .ads-log-detail-section{padding:12px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.ads-log-mskus{display:flex;flex-wrap:wrap;gap:6px}.ads-log-mskus span{padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:11px}.ads-log-history{display:grid;gap:8px;margin:0;padding:0;list-style:none}.ads-log-history li{display:grid;grid-template-columns:auto minmax(120px,auto) 1fr;align-items:start;gap:8px;padding:9px 0;border-top:1px solid var(--line)}.ads-log-history p{margin:0;line-height:1.5;overflow-wrap:anywhere}.ads-log-history small{grid-column:2/-1;color:var(--muted)}.ads-log-detail-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:4px 2px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.ads-risk-note{color:var(--bad)!important;font-weight:650}
.ads-shared-impact{margin-top:5px;max-width:360px;white-space:normal;color:var(--text)}
.ads-shared-impact summary{cursor:pointer;color:var(--brand);font-size:11px;font-weight:650}
.ads-shared-impact>div{display:grid;gap:3px;max-height:150px;margin-top:5px;padding:7px;overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-family:var(--font-mono);font-size:10px}
.ads-shared-impact span{display:block;overflow-wrap:anywhere}
.ads-fallback-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:9px 0;color:var(--faint);font-size:10px;flex-wrap:wrap}
.ads-fallback-actions>span{margin-right:auto}
.ads-exec-guidance{margin-top:2px;background:#f6f9ff}.ads-exec-guidance b{color:#173f7a}
.ads-exec-panel{margin-top:12px}.ads-exec-panel .ads-state{min-height:118px}
.ads-exec-warning{margin:12px 0 0;border-color:var(--warn-line);background:var(--warn-tint);color:#854d0e}.ads-exec-warning p{color:inherit}
.ads-result-detail{min-width:300px;max-width:620px;white-space:normal!important;line-height:1.45}
.ads-exec-metrics{grid-template-columns:repeat(3,minmax(145px,1fr))}
.ads-budget-source{display:block;margin-top:2px;color:var(--muted);font-size:10px;white-space:nowrap}
.ads-product-thumb{display:block;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;object-fit:contain}
.ads-product-name{min-width:190px;max-width:320px;white-space:normal!important;line-height:1.4}
.ads-bid-compare{display:grid;grid-template-columns:repeat(2,minmax(118px,1fr));gap:5px;min-width:250px}
.ads-bid-compare>span{display:flex;min-width:0;flex-direction:column;padding:5px 7px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}
.ads-bid-compare small{color:var(--muted);font-size:9px;line-height:1.25}.ads-bid-compare b{margin-top:2px;color:var(--ink);font-size:10px;line-height:1.3;white-space:nowrap}
.ads-summary{display:flex;align-items:stretch;justify-content:flex-start;flex-direction:column;gap:10px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--ads-blue-line);border-radius:var(--r-card);background:var(--ads-blue-soft);color:#254c88}
.ads-summary h3,.ads-summary h4{margin:0 0 3px;color:#173f7a}.ads-summary p{margin:0;font-size:var(--fs-12);line-height:1.55}
.ads-chip-list{display:flex;align-items:center;gap:6px;max-width:100%;flex-wrap:wrap}
.ads-chip-list>*{max-width:100%}

.ads-manual{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:start;gap:12px;max-width:100%;min-width:0}
.ads-manual-nav{position:sticky;top:56px;display:flex;max-height:calc(100vh - 70px);flex-direction:column;gap:3px;padding:8px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm);scrollbar-width:thin}
.ads-manual-nav button,.ads-manual-nav .am-nav{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-height:58px;margin:0;padding:7px 9px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--muted);font-family:inherit;font-size:var(--fs-12);font-weight:500;line-height:1.4;text-align:left}
.ads-manual-nav button:hover,.ads-manual-nav .am-nav:hover{border-color:var(--line);background:var(--surface);color:var(--ink)}
.ads-manual-nav button.active,.ads-manual-nav .am-nav.active{border-color:#bdd2f7;background:var(--brand-tint);color:var(--brand-d);box-shadow:inset 3px 0 0 var(--brand);font-weight:650}
.ads-manual-content{max-width:100%;min-width:0;padding:18px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.ads-manual-body{max-width:100%;min-width:0;color:#354052;font-size:var(--fs-13);line-height:1.7;overflow-wrap:anywhere;white-space:pre-line}
.ads-manual-body>:first-child{margin-top:0}.ads-manual-body>:last-child{margin-bottom:0}
.ads-manual-body+.ads-table-wrap,.ads-manual-body+.ads-step-list{margin-top:10px}
.ads-manual-section{max-width:100%;min-width:0;padding:0 0 18px;margin-bottom:18px;overflow-x:auto;border-bottom:1px solid var(--line)}
.ads-manual-section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.ads-manual-section h3,.ads-manual-section h4{margin:0 0 8px;line-height:1.35}.ads-manual-section p,.ads-manual-section li{color:#354052;line-height:1.7}
.ads-manual-section p{margin:7px 0}.ads-manual-section ul,.ads-manual-section ol{margin:7px 0;padding-left:22px}
.ads-manual-section table{min-width:680px}
.ads-manual-version{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;padding:12px 14px;border:1px solid #b9cff7;border-radius:var(--r);background:#f3f7ff;color:#253f69}
.ads-manual-version>div{min-width:0}.ads-manual-version strong{display:block;margin-bottom:2px;color:#193765;font-size:var(--fs-13)}.ads-manual-version p{margin:0;color:#466184;font-size:var(--fs-12);line-height:1.55}
.ads-manual-version-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid #8eb0eb;border-radius:var(--r-full);background:#fff;color:#244f94;font-size:11px;font-weight:750;white-space:nowrap}
.ads-manual-section-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.ads-manual-section-title h3{margin:0}
.ads-workspace .ads-manual{grid-template-columns:238px minmax(0,1fr);gap:16px}
.ads-workspace .ads-manual-nav{gap:5px;padding:10px;background:var(--color-surface-subtle,#f8fafc)}
.ads-workspace .ads-manual-nav button,.ads-workspace .ads-manual-nav .am-nav{min-height:64px;padding:9px 10px;background:#fff}
.ads-workspace .ads-manual-nav .ads-nav-title{color:var(--ink);font-weight:700}
.ads-workspace .ads-manual-nav .ads-nav-desc{display:-webkit-box;margin-top:2px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--muted);font-size:10px;line-height:1.4}
.ads-workspace .ads-manual-content{padding:16px;background:var(--color-surface-subtle,#f8fafc)}
.ads-manual-standard{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;border:1px solid var(--color-primary-border,#bdd2f7);border-radius:var(--r-card);background:#fff}
.ads-manual-standard-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand-tint);color:var(--brand-d)}
.ads-manual-standard>div{min-width:0}.ads-manual-standard strong{display:block;margin:2px 0 3px;color:var(--ink);font-size:var(--fs-14);line-height:1.35}.ads-manual-standard p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.ads-manual-standard-count{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}
.ads-manual-principles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}
.ads-manual-principle{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.ads-manual-principle>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface);color:var(--brand-d)}.ads-manual-principle b{display:block;color:var(--ink);font-size:11px}.ads-manual-principle small{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35}
.ads-manual-chapter-head{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;margin:0 0 12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.ads-manual-chapter-index{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--ink);color:#fff;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}.ads-manual-chapter-head h2{margin:3px 0 4px;color:var(--ink);font-size:20px;line-height:1.3}.ads-manual-chapter-head p{margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.5}
.ads-manual-sections{display:grid;gap:10px}.ads-workspace .ads-manual-section,.ads-workspace .ads-manual-section:last-child{margin:0;padding:16px;overflow:visible;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}.ads-manual-section-dot{display:block;flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--brand)}
.ads-step-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none;counter-reset:ads-step}
.ads-step-list>li{position:relative;min-height:30px;padding:5px 8px 5px 36px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:#354052;counter-increment:ads-step;line-height:1.55}
.ads-step-list>li::before{content:counter(ads-step);position:absolute;left:8px;top:6px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-tint);color:var(--brand-d);font-size:10px;font-weight:750}

.ads-timeline{display:grid;gap:10px;min-width:0;counter-reset:ads-stage}
.ads-stage{position:relative;min-width:0;padding:14px 14px 14px 52px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;counter-increment:ads-stage;box-shadow:var(--shadow-sm)}
.ads-stage::before{content:"";position:absolute;left:25px;top:0;bottom:-11px;width:1px;background:#cbdaf3}
.ads-stage:last-child::before{bottom:50%}
.ads-stage::after{content:counter(ads-stage);position:absolute;left:12px;top:14px;display:grid;place-items:center;width:27px;height:27px;border:2px solid #b8cef5;border-radius:50%;background:var(--brand-tint);color:var(--brand-d);font-size:11px;font-weight:750}
.ads-stage h3,.ads-stage h4{margin:0 0 5px}.ads-stage p{margin:4px 0;color:var(--muted)}
.ads-score{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:25px;padding:3px 8px;border:1px solid #bdd2f7;border-radius:var(--r-full);background:var(--brand-tint);color:var(--brand-d);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ads-score.success{border-color:var(--ok-line);background:var(--ok-tint);color:#15733c}.ads-score.warning{border-color:var(--warn-line);background:var(--warn-tint);color:#8a5708}.ads-score.danger{border-color:var(--bad-line);background:var(--bad-tint);color:var(--bad)}
.ads-connection-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.ads-connection-card.is-connected{border-color:var(--ok-line);background:#fbfffc}.ads-connection-card.is-disconnected{border-color:var(--ads-amber-line);background:#fffdf7}
.ads-connection-card.is-connected>.ads-state-icon{background:var(--ok-tint);color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok-line)}.ads-connection-card.is-disconnected>.ads-state-icon{background:var(--ads-amber-soft);color:var(--warn);box-shadow:inset 0 0 0 1px var(--ads-amber-line)}
.ads-connection-card>.ads-state-icon{width:40px;height:40px}.ads-connection-card strong{display:block;margin:0 0 3px;color:var(--ink);font-size:var(--fs-14)}.ads-connection-card p{margin:0;color:var(--muted);font-size:var(--fs-12);overflow-wrap:anywhere}
.ads-connection-card+.ads-connection-card{margin-top:10px}
.ads-window-note>div{display:flex;min-width:0;flex-direction:column;gap:2px}.ads-window-note>div>strong{color:var(--ink);font-size:11px}.ads-window-note>div>span{overflow-wrap:anywhere}
.ads-window-note-block{justify-content:flex-start;margin-top:12px;padding:10px 12px;border:1px solid var(--ads-amber-line);border-radius:var(--r);background:var(--ads-amber-soft);text-align:left}
.ads-metric.ads-metric-compact>strong{font-size:16px;white-space:normal}

/* Keep legacy ad result cards visually consistent without leaking to other modules. */
.ads-workspace .card{max-width:100%;min-width:0;margin-bottom:12px;padding:16px;border-color:var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}
.ads-workspace .kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important;gap:8px;margin-bottom:12px}
.ads-workspace .kpi{min-width:0;min-height:88px;padding:11px 13px;border-color:var(--line);box-shadow:none}
.ads-workspace .kpi::before{width:3px}.ads-workspace .kpi .v{font-size:21px;font-variant-numeric:tabular-nums}
.ads-workspace .flexbar{max-width:100%;min-width:0}.ads-workspace .ct-out{max-width:100%;overflow-wrap:anywhere}
.ads-workspace .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}
.ads-workspace :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}

/* 新品广告全店轮次报告：摘要固定、异常分组优先，窄屏仅横向滚动表格。 */
.newad-run-dialog{display:flex;min-width:0;max-height:calc(94vh - 40px);flex-direction:column;color:var(--ink)}
.newad-run-dialog-head{position:sticky;z-index:5;top:-20px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:-20px -20px 14px;padding:16px 20px 13px;border-bottom:1px solid var(--line);background:#fff;box-shadow:0 2px 8px rgba(35,52,80,.05)}
.newad-run-dialog-head>div{min-width:0}.newad-run-dialog-head h3{margin:2px 0 0;font-size:18px;line-height:1.35}.newad-run-dialog-head p{margin:4px 0 0;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.newad-run-dialog-head>.badge{flex:0 0 auto}
.newad-run-summary{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px;margin-bottom:12px}
.newad-run-summary>div{position:relative;display:flex;min-width:0;min-height:76px;flex-direction:column;justify-content:center;padding:9px 11px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.newad-run-summary>div::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand)}
.newad-run-summary>div.success::before{background:var(--ok)}.newad-run-summary>div.warning::before{background:var(--warn)}.newad-run-summary>div.danger::before{background:var(--bad)}
.newad-run-summary span{color:var(--muted);font-size:10px;font-weight:650;line-height:1.35}.newad-run-summary strong{margin-top:4px;overflow:hidden;font-size:20px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.newad-run-groups{display:grid;gap:8px;min-height:0}.newad-run-group{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.newad-run-group>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:8px 12px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:700;cursor:pointer;list-style-position:inside}
.newad-run-group>summary:hover{background:#f3f7ff}.newad-run-group>summary b{display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:var(--r-full);background:#e7eefb;color:var(--brand-d);font-size:10px;font-variant-numeric:tabular-nums}
.newad-run-group-retryable{border-color:var(--warn-line)}.newad-run-group-retryable>summary{background:var(--warn-tint)}.newad-run-group-manual{border-color:var(--bad-line)}.newad-run-group-manual>summary{background:var(--bad-tint)}
.newad-run-table-scroll{width:100%;max-width:100%;max-height:38vh;overflow:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.newad-run-table-scroll table{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:11px;font-variant-numeric:tabular-nums}
.newad-run-table-scroll th,.newad-run-table-scroll td{padding:8px 10px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top;white-space:nowrap}
.newad-run-table-scroll thead th{position:sticky;z-index:2;top:0;background:#f7f9fc;color:var(--muted);font-size:10px;font-weight:700;box-shadow:0 1px 0 var(--line)}
.newad-run-table-scroll tbody tr:nth-child(even){background:#fbfcfe}.newad-run-table-scroll tbody tr:last-child td{border-bottom:0}.newad-run-table-scroll td>small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.newad-run-table-scroll .ads-result-detail{max-width:300px;overflow:hidden;text-overflow:ellipsis}
.newad-run-toolbar{position:sticky;z-index:5;bottom:-20px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px -20px -20px;padding:12px 20px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -4px 12px rgba(35,52,80,.06)}
.newad-run-toolbar>span{min-width:0;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.newad-run-toolbar .btn{min-height:40px}
.newad-run-dialog .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}
.newad-run-dialog :where(button,summary,[tabindex]):focus-visible{outline:3px solid rgba(43,102,205,.3);outline-offset:2px;box-shadow:none}
.ads-recovery-note{padding:9px 11px;border:1px solid var(--warn-line);border-radius:var(--r);background:var(--warn-tint);color:#79520d}.newad-worker-metrics{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}

@media (max-width:1024px){.newad-run-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.newad-run-table-scroll table{min-width:1040px}}
@media (max-width:768px){.newad-run-dialog{max-height:calc(96vh - 28px)}.newad-run-dialog-head{top:-18px;margin:-18px -18px 12px;padding:14px 18px 12px}.newad-run-toolbar{bottom:-18px;margin:12px -18px -18px;padding:11px 18px}.newad-run-toolbar{align-items:stretch;flex-direction:column}.newad-run-toolbar>.ads-action-buttons{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.newad-run-toolbar .btn{width:100%;min-height:44px}}
@media (max-width:640px){.newad-run-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.newad-run-dialog-head{gap:8px;flex-wrap:wrap}.newad-run-dialog-head>.badge{order:2}.newad-run-table-scroll{max-height:42vh}.newad-run-group>summary{min-height:48px}.newad-run-toolbar>span{white-space:normal}.newad-worker-metrics{grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:360px){.newad-run-summary{grid-template-columns:minmax(0,1fr)}.newad-run-summary>div{min-height:68px}.newad-run-dialog-head h3{font-size:16px}}
@media (prefers-reduced-motion:reduce){.newad-run-dialog *,.newad-run-dialog *::before,.newad-run-dialog *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* 铺货选品执行手册：复用广告手册的章节阅读结构，补充决策流、硬门和证据卡。 */
.selection-manual-workspace{display:grid;gap:12px;width:100%;max-width:1480px;min-width:0;margin:0 auto;padding:0 0 24px}
.sm-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0;padding:20px 22px;border:1px solid #bdd2f7;border-left:4px solid var(--brand);border-radius:var(--r-card);background:#f7faff;box-shadow:var(--shadow-sm)}
.sm-hero-copy{display:flex;align-items:flex-start;gap:13px;min-width:0}.sm-hero-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border:1px solid #b8cef5;border-radius:12px;background:#fff;color:var(--brand-d)}
.sm-hero-copy>div{min-width:0}.sm-eyebrow{margin-bottom:3px;color:var(--brand-d);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.sm-hero h1{margin:0;color:#17243a;font-size:24px;line-height:1.2}.sm-hero p{max-width:850px;margin:6px 0 0;color:#52627a;font-size:var(--fs-13);line-height:1.6}
.sm-hero-meta{display:flex;align-items:flex-end;flex:0 0 auto;flex-direction:column;gap:7px;color:#5d6d84;font-size:11px;white-space:nowrap}.sm-hero-meta>span:nth-child(2){display:inline-flex;align-items:center;gap:5px}.sm-hero-meta>span:last-child{color:#75849a;font-size:10px}
.sm-legacy-banner{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;padding:11px 13px;border:1px solid #e6c675;border-radius:var(--r-card);background:#fff9e9;color:#6f4c09;box-shadow:var(--shadow-sm)}.sm-legacy-banner>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fff2c5}.sm-legacy-banner strong{display:block;font-size:var(--fs-12)}.sm-legacy-banner p{margin:3px 0 0;color:#7e5d1b;font-size:11px;line-height:1.5}
.sm-rule-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;box-shadow:var(--shadow-sm)}
.sm-rule-strip>div{display:flex;min-width:0;flex-direction:column;gap:3px;padding:11px 13px;border-right:1px solid var(--line)}.sm-rule-strip>div:last-child{border-right:0}.sm-rule-strip b{color:#27364c;font-size:11px}.sm-rule-strip span{color:var(--muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.sm-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sm-mode-card{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:13px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;color:#34445b;font:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm)}.sm-mode-card:hover{border-color:#9ebae8;background:#fbfdff}.sm-mode-card.active{border-color:#7aa2df;box-shadow:0 0 0 2px rgba(43,102,205,.1)}
.sm-mode-code{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#edf4ff;color:#2359ae;font-size:15px;font-weight:850}.sm-mode-card.green .sm-mode-code{background:#eaf8ef;color:#237248}.sm-mode-card.amber .sm-mode-code{background:#fff4d7;color:#80590a}.sm-mode-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.sm-mode-tag{color:#77869a;font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.sm-mode-copy strong{color:#24344b;font-size:var(--fs-13)}.sm-mode-copy>span:not(.sm-mode-tag){color:#53647a;font-size:11px;line-height:1.45}.sm-mode-copy small{display:flex;align-items:flex-start;gap:5px;margin-top:3px;color:#748398;font-size:10px;line-height:1.4}.sm-mode-copy small .ic{flex:0 0 auto;margin-top:1px}
.sm-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;counter-reset:sm-flow}
.sm-flow li{position:relative;display:flex;align-items:center;min-height:40px;padding:7px 9px 7px 38px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:#3c4a60;font-size:11px;font-weight:650;counter-increment:sm-flow}
.sm-flow li::before{content:counter(sm-flow);position:absolute;left:9px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--brand-tint);color:var(--brand-d);font-size:10px;font-weight:800}
.sm-top-actions,.sm-section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sm-top-actions{justify-content:flex-end}.sm-section-actions{margin-top:12px}
.selection-manual{margin-top:2px}.selection-manual .ads-manual-nav{top:50px}.selection-manual .ads-manual-content{padding:20px}.selection-manual .ads-panel-head{margin-bottom:4px}.selection-manual .ads-panel-head h2{margin:3px 0 4px;font-size:20px}.selection-manual .ads-panel-head p{margin:0;color:var(--muted);font-size:var(--fs-12);line-height:1.55}
.sm-manual-section{overflow:visible}.sm-manual-section>.ads-manual-body+.sm-table-wrap,.sm-manual-section>.ads-manual-body+.sm-step-list{margin-top:11px}
.sm-table-wrap{max-width:100%;overflow:auto}.sm-table-wrap table{min-width:720px}.sm-table-wrap td{white-space:normal;vertical-align:top;line-height:1.55}.sm-table-wrap th{white-space:nowrap}
.sm-bullet-list{display:grid;gap:7px;margin:10px 0 0!important;padding:0!important;list-style:none}.sm-bullet-list li{position:relative;padding:7px 10px 7px 24px;border-left:2px solid #b9cff7;background:#f8faff;border-radius:0 var(--r-sm) var(--r-sm) 0}.sm-bullet-list li::before{content:"";position:absolute;left:10px;top:15px;width:5px;height:5px;border-radius:50%;background:var(--brand)}
.sm-checklist{display:grid;gap:7px;margin:10px 0 0!important;padding:0!important;list-style:none}.sm-checklist li{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);background:#fcfdff}.sm-checklist li>span:first-child{display:grid;place-items:center;padding-top:2px;color:#258052}
.sm-template{max-width:100%;margin:10px 0 0;padding:14px;overflow:auto;border:1px dashed #aebed5;border-radius:var(--r);background:#f8fafc;color:#29384f;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Consolas,monospace);font-size:12px;line-height:1.65;white-space:pre-wrap}
.sm-callout{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;margin-top:11px;padding:10px 12px;border:1px solid #bdd2f7;border-radius:var(--r);background:#f3f7ff;color:#294d80}.sm-callout>span{display:grid;place-items:center;padding-top:1px}.sm-callout strong{display:block;margin-bottom:2px;color:inherit;font-size:var(--fs-12)}.sm-callout p{margin:0;color:inherit;font-size:var(--fs-12);line-height:1.55}
.sm-callout.warn{border-color:#e6c675;background:#fff9e9;color:#6f4c09}.sm-callout.danger{border-color:#e6a9ac;background:#fff4f4;color:#943438}.sm-callout.success{border-color:#9ccab2;background:#f1fbf5;color:#236b47}
.sm-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 0!important;padding:0!important;list-style:none}.sm-source-list li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:#fcfdff}.sm-source-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--brand-tint);color:var(--brand-d)}.sm-source-list a{color:var(--brand-d);font-size:var(--fs-12);font-weight:700;text-decoration:none}.sm-source-list a:hover{text-decoration:underline}.sm-source-list p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.selection-manual-workspace :where(button,a,summary,[tabindex]):focus-visible{outline:3px solid rgba(43,102,205,.28);outline-offset:2px}

@media (max-width:1180px){
  .ads-form-grid-newad{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ads-form-grid-newad .ads-form-submit{grid-column:1/-1}.ads-form-grid-newad .ads-form-submit .btn{width:100%}
  .ads-stage-overview{grid-template-columns:minmax(0,1fr)}.ads-stage-current{padding:10px 0 0;border-top:1px solid #dce7f8;border-left:0}
}
@media (max-width:980px){
  .ads-layout{grid-template-columns:minmax(0,1fr)}
  .ads-task-nav{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible;padding:10px}
  .ads-nav-group{min-width:0;padding:0 7px 0 0;border-right:1px solid #eef1f5;border-bottom:0}.ads-nav-group:last-child{padding-right:0;border-right:0}
  .ads-nav-item{min-height:58px}
  .ads-manual{grid-template-columns:190px minmax(0,1fr)}
  .ads-workspace .ads-manual{grid-template-columns:210px minmax(0,1fr)}.ads-manual-principles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm-rule-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.sm-rule-strip>div:nth-child(2){border-right:0}.sm-rule-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .sm-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
  .ads-log-detail-head{flex-wrap:wrap}.ads-log-detail-head>div{min-width:0}.ads-log-summary-main,.ads-log-summary .ads-log-detail-overview,[data-ads-log-summary] .ads-log-detail-overview{grid-template-columns:1fr}.ads-log-evidence-grid,[data-ads-log-evidence] .ads-log-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ads-hero{align-items:flex-start;flex-direction:column}.ads-hero-status{width:100%;max-width:none;align-items:flex-start}.ads-window-note{text-align:left;justify-content:flex-start}
  .ads-page-head{grid-template-columns:38px minmax(0,1fr)}.ads-source-chip{grid-column:2;justify-self:start}
  .ads-form-grid-newad{grid-template-columns:repeat(2,minmax(0,1fr))}.ads-form-grid-newad .ads-form-submit{grid-column:1/-1}
  .ads-stage-current{grid-template-columns:minmax(0,1fr)}
  .ads-manual{grid-template-columns:minmax(0,1fr)}.ads-manual-nav{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}
  .ads-workspace .ads-manual{grid-template-columns:minmax(0,1fr)}.ads-workspace .ads-manual-nav{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}
  .sm-hero{align-items:flex-start;flex-direction:column}.sm-hero-meta{align-items:flex-start}.sm-mode-grid,.sm-source-list{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .ads-log-detail-head{gap:8px}.ads-log-detail-head h3{font-size:17px}.ads-log-summary,.ads-log-detail-section{padding:12px}.ads-log-diff-table thead{display:none}.ads-log-diff-table,.ads-log-diff-table tbody,.ads-log-diff-table tr,.ads-log-diff-table td{display:block;width:100%}.ads-log-diff-table tr{padding:8px 10px;border-bottom:1px solid var(--line)}.ads-log-diff-table td{padding:3px 0;border:0}.ads-log-diff-table td::before{content:attr(data-label);display:block;margin-bottom:1px;color:var(--muted);font-size:10px;font-weight:650}.ads-log-diff-table td:first-child{width:auto}.ads-log-diff-table tr:last-child{border-bottom:0}[data-ads-log-diff] .ads-table-wrap thead{display:none}[data-ads-log-diff] .ads-table-wrap table,[data-ads-log-diff] .ads-table-wrap tbody,[data-ads-log-diff] .ads-table-wrap tr,[data-ads-log-diff] .ads-table-wrap td{display:block;width:100%}[data-ads-log-diff] .ads-table-wrap tr{padding:8px 10px;border-bottom:1px solid var(--line)}[data-ads-log-diff] .ads-table-wrap td{padding:3px 0;border:0}[data-ads-log-diff] .ads-table-wrap td::before{content:attr(data-label);display:block;margin-bottom:1px;color:var(--muted);font-size:10px;font-weight:650}[data-ads-log-diff] .ads-table-wrap td:first-child{width:auto}[data-ads-log-diff] .ads-table-wrap tr:last-child{border-bottom:0}
  .ads-hero{min-height:0;padding:14px}.ads-hero-copy{gap:9px}.ads-hero-icon{width:36px;height:36px}.ads-hero-copy h1{font-size:20px}
  .ads-hero-status{align-items:stretch}.ads-status-pill{width:100%;min-height:44px}.ads-window-note{width:100%}
  .ads-task-nav{display:flex;max-width:100%;flex-direction:row;gap:6px;padding:8px;overflow-x:auto;scroll-snap-type:x proximity}
  .ads-nav-group{display:contents}.ads-nav-label{display:none}
  .ads-nav-item{flex:0 0 142px;min-height:52px;padding:7px 8px;scroll-snap-align:start}.ads-nav-desc{display:none}.ads-nav-icon{width:28px;height:28px}
  .ads-page-head{padding:12px}.ads-page-copy h2{font-size:17px}.ads-page-copy p{font-size:var(--fs-12)}
  .ads-panel,.ads-manual-content,.ads-workspace .card{padding:12px}.ads-panel-head,.ads-form-actions,.ads-summary{align-items:stretch;flex-direction:column}
  .ads-form-grid,.ads-form-grid-newad{grid-template-columns:minmax(0,1fr)}.ads-form-grid-newad .ads-form-submit{grid-column:auto}.ads-form-submit{min-width:0}
  .ads-store-picker>summary{height:44px}.ads-store-picker-popover{width:100%;max-width:100%}.ads-store-picker-list{max-height:220px}.ads-bulk-store-results>header{align-items:stretch;flex-direction:column}.ads-bulk-store-results>header .ads-source-chip{align-self:flex-start}.ads-store-result-tabs{grid-template-columns:minmax(0,1fr)}
  .ads-form-actions{gap:9px}.ads-action-buttons{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
  .ads-batch-pager{align-items:stretch;flex-direction:column}.ads-batch-pager>div{justify-content:space-between}.ads-batch-pager>div:last-child{display:grid;grid-template-columns:1fr 1fr}.ads-batch-pager .btn{width:100%}
  .ads-workspace button,.ads-workspace .btn,.ads-workspace input:not([type=checkbox]):not([type=radio]),.ads-workspace select,.ads-workspace textarea,.ads-manual-nav button,.ads-manual-nav .am-nav{min-height:44px}
  .ads-workspace input:not([type=checkbox]):not([type=radio]),.ads-workspace select,.ads-workspace textarea{font-size:16px}
  .ads-metrics,.ads-workspace .kpis{grid-template-columns:minmax(0,1fr)!important}.ads-metric{min-height:82px}.ads-metric>small{white-space:normal}
  .ads-stage-overview{padding:9px}.ads-stage-option{min-height:48px}.ads-result-status{align-items:flex-start;flex-direction:column}.ads-result-status small{overflow:visible;text-overflow:clip;white-space:normal}
  .ads-state{align-items:center;flex-direction:column;min-height:164px;padding:20px;text-align:center}.ads-skeleton{width:min(260px,72vw)}
  .ads-table-wrap table{min-width:680px}.ads-table-wrap th,.ads-table-wrap td{padding-top:10px;padding-bottom:10px}
  .ads-log-detail-grid{grid-template-columns:1fr}.ads-log-history li{grid-template-columns:auto 1fr}.ads-log-history p,.ads-log-history small{grid-column:1/-1}
  .ads-manual-nav,.ads-workspace .ads-manual-nav{display:flex;max-width:100%;flex-direction:row;gap:6px;overflow-x:auto;scroll-snap-type:x proximity}.ads-manual-nav button,.ads-manual-nav .am-nav,.ads-workspace .ads-manual-nav button,.ads-workspace .ads-manual-nav .am-nav{flex:0 0 168px;min-height:52px;scroll-snap-align:start}.ads-manual-nav .ads-nav-desc,.ads-workspace .ads-manual-nav .ads-nav-desc{display:none}.ads-manual-section{overflow-x:auto}
  .ads-manual-version{align-items:stretch;flex-direction:column}.ads-manual-version-badge{align-self:flex-start}.ads-manual-section-title{align-items:flex-start;flex-wrap:wrap}
  .ads-manual-standard{grid-template-columns:36px minmax(0,1fr);padding:12px}.ads-manual-standard-icon{width:36px;height:36px;border-radius:10px}.ads-manual-standard-count{grid-column:2;justify-self:start}.ads-manual-principles{grid-template-columns:minmax(0,1fr)}.ads-manual-chapter-head{grid-template-columns:42px minmax(0,1fr);padding:13px}.ads-manual-chapter-index{width:42px;height:42px;border-radius:12px}.ads-manual-chapter-head h2{font-size:18px}.ads-workspace .ads-manual-section,.ads-workspace .ads-manual-section:last-child{padding:13px}
  .ads-stage{padding:13px 12px 13px 46px}.ads-stage::before{left:22px}.ads-stage::after{left:9px;top:13px}
  .ads-connection-card{grid-template-columns:42px minmax(0,1fr)}.ads-connection-card>.btn:last-child{grid-column:1/-1;width:100%}
  .selection-manual-workspace{gap:9px}.sm-hero{padding:14px}.sm-hero-copy{gap:9px}.sm-hero-icon{width:38px;height:38px}.sm-hero h1{font-size:20px}.sm-hero-meta{white-space:normal}
  .sm-legacy-banner{grid-template-columns:28px minmax(0,1fr);padding:10px}.sm-mode-card{min-height:44px;padding:11px}
  .sm-rule-strip{grid-template-columns:minmax(0,1fr)}.sm-rule-strip>div,.sm-rule-strip>div:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.sm-rule-strip>div:last-child{border-bottom:0}
  .sm-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.sm-top-actions,.sm-section-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.sm-top-actions .btn,.sm-section-actions .btn{width:100%;min-height:44px}
  .selection-manual .ads-manual-content{padding:12px}.sm-template{font-size:11px}.sm-checklist li{padding:9px}.sm-callout{grid-template-columns:22px minmax(0,1fr)}
}

@media (max-width:420px){
  .ads-log-evidence-grid,[data-ads-log-evidence] .ads-log-detail-grid{grid-template-columns:1fr}
}

.fchip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 12px;border-radius:var(--r);
  border:1px solid #d9dee6;background:#fff;color:#4b5566;font-size:var(--fs-12);font-weight:500;
  cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s;line-height:1}
.fchip:hover{border-color:var(--brand);color:var(--brand)}
.fchip.on{background:#e8f1ff;color:var(--brand);border-color:#9cc0f5;font-weight:600}
/* 无边框模式(?bare=1，2026-07-11)：上架流程弹窗内嵌真实文案页/图片页——隐藏侧栏/顶栏，只渲染主体 */
html.bare .rail, html.bare .topbar{display:none!important}
html.bare .content{height:100vh;max-height:100vh}

/* 外部 AI 试用邀请管理：正式 ERP 内只给内置 admin 的轻量管理面板 */
.trial-admin-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:12px}
.trial-admin-create,.trial-admin-notes,.trial-admin-list,.trial-secret{padding:18px}
.trial-admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}
.trial-admin-section-head h2,.trial-admin-notes h2{margin:0;color:var(--ink);font-size:17px}
.trial-admin-section-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.trial-admin-limits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.trial-admin-notes ul{margin:10px 0 0;padding-left:19px;color:var(--muted);font-size:12px;line-height:1.75}
.trial-secret{margin-bottom:12px;border-color:#b8cdfb;background:#f7faff}
.trial-secret-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.trial-secret-row>div{min-width:0}.trial-secret-row span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px}
.trial-secret-row code,.trial-secret-row a{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--brand);font-size:12px}
.trial-secret-row code{color:var(--ink);font-weight:700;letter-spacing:.025em}
.trial-admin-table{overflow-x:auto}.trial-admin-list table{min-width:760px}
.trial-admin-hint{margin-top:3px;font-size:11px}.trial-admin-nowrap{white-space:nowrap}
.trial-limit-chip{display:inline-block;margin:2px 2px 2px 0;padding:3px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--surface);font-size:10px;white-space:nowrap}
@media (min-width:980px){.trial-admin-layout{grid-template-columns:minmax(0,1fr) 300px}.trial-admin-notes{align-self:start}}
@media (max-width:680px){.trial-admin-limits{grid-template-columns:minmax(0,1fr)}.trial-secret-row{grid-template-columns:minmax(0,1fr)}.trial-secret-row .btn{width:100%;min-height:44px}}

/* AI 文案：从种子 ASIN 发现竞品，并把评价证据保持为紧凑、可核对的选择流。 */
.copy-seed-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.copy-field-help{display:block;margin-top:6px;color:var(--faint);font-size:11px;line-height:1.45}
.copy-competitor-empty{margin:-2px 0 12px;padding:10px 12px;border:1px dashed var(--line-2);border-radius:var(--r-card);background:var(--surface);color:var(--muted);font-size:11px;line-height:1.5}
.copy-competitor-panel{min-width:0;margin:0 0 12px;padding:10px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.copy-competitor-head,.copy-insights-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.copy-competitor-head{margin-bottom:8px;color:var(--ink);font-size:12px}
.copy-competitor-head>span{color:var(--muted);font-size:10.5px;font-weight:600}
.copy-competitor-list{display:grid;gap:6px;max-height:330px;overflow:auto;scrollbar-width:thin}
.copy-competitor-card{display:grid;grid-template-columns:18px minmax(0,1fr) 76px;align-items:flex-start;gap:8px;padding:9px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;cursor:pointer;transition:var(--transition-interactive)}
.copy-competitor-card:hover{border-color:var(--line-2);background:var(--brand-tint)}
.copy-competitor-card:focus-within{border-color:var(--brand);box-shadow:var(--ring)}
.copy-competitor-card.is-selected{border-color:var(--brand);background:var(--brand-tint)}
.copy-competitor-card>input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--brand)}
.copy-competitor-card>input:disabled{cursor:not-allowed}
.copy-competitor-main{display:flex;min-width:0;flex-direction:column;gap:4px}
.copy-competitor-title{overflow:hidden;color:var(--ink);font-size:11.5px;font-weight:650;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.copy-competitor-identity,.copy-competitor-metrics{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.copy-competitor-identity{color:var(--muted);font-size:10.5px}.copy-competitor-identity b{color:var(--brand)}
.copy-competitor-metrics>span{padding:2px 5px;border:1px solid var(--line);border-radius:var(--r-full);background:#fff;color:var(--muted);font-size:9.5px;font-weight:600}
.copy-competitor-source{overflow:hidden;color:var(--faint);font-size:9.5px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.copy-competitor-thumb{position:relative;display:grid;width:76px;height:76px;place-items:center;align-self:center;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--faint)}
.copy-competitor-thumb-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px;line-height:1}
.copy-competitor-thumb-fallback small{font-size:9px}
.copy-competitor-thumb-img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#fff;cursor:zoom-in}
.copy-competitor-thumb-img:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.copy-competitor-thumb.is-empty{background:var(--surface)}
.copy-competitor-warnings{margin:0 0 8px;padding:7px 9px 7px 25px;border:1px solid var(--warn-line);border-radius:var(--r-sm);background:var(--warn-tint);color:var(--warn);font-size:10.5px;line-height:1.45}
.copy-auto-brief{width:100%;margin:0 0 12px}
.copy-insights{margin:0 0 12px;padding:11px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff}
.copy-insights-head{margin-bottom:8px}.copy-insights-head>strong{font-size:12px}.copy-insights-head>span{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:4px}
.copy-insights-head b{padding:2px 6px;border-radius:var(--r-full);background:var(--surface);color:var(--muted);font-size:9.5px;font-weight:650}
.copy-insight-summary{margin:0 0 8px;padding:7px 9px;border-left:2px solid var(--brand);background:var(--brand-tint);color:var(--muted);font-size:10.5px;line-height:1.5}
.copy-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.copy-insight-group{min-width:0;padding:8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}
.copy-insight-group h5{margin:0 0 5px;color:var(--ink);font-size:10.5px}.copy-insight-group ul{margin:0;padding-left:16px;color:var(--muted);font-size:10px;line-height:1.45}
.copy-insight-group li+li{margin-top:4px}.copy-insight-group li>span,.copy-insight-group li>small{display:block;overflow-wrap:anywhere}.copy-insight-group li>small{margin-top:1px;color:var(--faint);font-size:9px}
.copy-insight-group.is-pain{border-color:var(--warn-line);background:var(--warn-tint)}.copy-insight-group.is-praise{border-color:var(--ok-line);background:var(--ok-tint)}
.copy-insight-group.is-action{border-color:var(--brand);background:var(--brand-tint)}
.copy-insight-warning{margin-top:7px;padding:7px 9px;border:1px solid var(--warn-line);border-radius:var(--r-sm);background:var(--warn-tint);color:var(--warn);font-size:10px;line-height:1.45}
.copy-facts{min-width:0;margin:0 0 12px;padding:10px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.copy-facts>legend{padding:0 4px;color:var(--ink);font-size:12px;font-weight:650}.copy-facts .copy-field-help{margin:0 0 8px}
.copy-fact-actions{display:flex;justify-content:flex-end;margin:0 0 8px}.copy-fact-actions .btn,.copy-fact-row .btn{min-height:36px}
.copy-fact-list{display:grid;gap:7px}.copy-fact-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) minmax(0,1.5fr) auto;align-items:center;gap:7px}
.copy-fact-row input{min-width:0}.copy-fact-row input:focus-visible,.copy-fact-row .btn:focus-visible,.copy-fact-actions .btn:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.copy-compliance-blockers,.copy-compliance-warnings{margin:0 0 10px;overflow-wrap:anywhere}.copy-compliance-blockers{border-color:var(--bad);background:var(--bad-tint);color:var(--bad)}
@media (max-width:680px){
  .copy-form-column{min-width:0!important}.copy-seed-row{grid-template-columns:minmax(0,1fr)}.copy-seed-row .btn{width:100%}
  .copy-insight-grid{grid-template-columns:minmax(0,1fr)}.copy-competitor-list{max-height:390px}
  .copy-fact-row{grid-template-columns:minmax(0,1fr)}.copy-fact-row .btn{width:100%;min-height:44px}.copy-fact-actions .btn{min-height:44px}
}
@media (max-width:420px){
  .copy-competitor-card{grid-template-columns:18px minmax(0,1fr) 60px}
  .copy-competitor-thumb{width:60px;height:60px}
}

@media (prefers-reduced-motion: reduce){
  .research-workspace *,.research-workspace *::before,.research-workspace *::after,
  .ops-workspace *,.ops-workspace *::before,.ops-workspace *::after,
  .ads-workspace *,.ads-workspace *::before,.ads-workspace *::after,
  .selection-manual-workspace *,.selection-manual-workspace *::before,.selection-manual-workspace *::after,
  .kr-workspace *,.kr-workspace *::before,.kr-workspace *::after,
  .home-workbench *,.home-workbench *::before,.home-workbench *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
