/* ==========================================================================
   北鸣跨境 · 后台设计层 v240
   作用域：body.merchant-admin，与前台共用一组令牌
   ========================================================================== */

/* ---------- 结构 ---------- */
body.merchant-admin{
  --ds-paper:#F6F7F3;
  --ds-surface:#FFFFFF;
  --ds-surface-2:#F1F2ED;
  --ds-ink:#171A16;
  --ds-ink-2:#3D4239;
  --ds-muted:#60665C;
  --ds-line:#E3E5DD;
  --ds-line-strong:#CDD1C5;
  --ds-accent:#D2FA41;
  --ds-accent-press:#C1EB2B;
  --ds-accent-ink:#1A2113;
  --ds-accent-soft:#EEFBC4;
  --ds-ok:#2E7D4F; --ds-ok-soft:#E7F5EC;
  --ds-warn:#8A5A00; --ds-warn-soft:#FCF1D9;
  --ds-bad:#B3261E; --ds-bad-soft:#FBE9E7;
  --ds-info:#2C5C8F; --ds-info-soft:#E9F1F9;
  --ds-r-sm:8px; --ds-r-md:10px; --ds-r-lg:14px;
  --ds-ease:cubic-bezier(.2,.7,.2,1);
  background:var(--ds-paper)!important;
  color:var(--ds-ink);
  font-size:14px;
}
body.merchant-admin *{box-sizing:border-box}
body.merchant-admin :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--ds-focus);outline-offset:2px}

/* 侧栏 */
body.merchant-admin .merchant-sidebar{
  background:#14170F!important;
  border-right:1px solid #23281C!important;
  color:#E9EDE2;
}
body.merchant-admin .merchant-brand{font-weight:650;letter-spacing:-.01em}
body.merchant-admin .merchant-store{
  background:#1C2117!important;border:1px solid #2A3124!important;
  border-radius:var(--ds-r-md)!important;color:#E9EDE2;
}
body.merchant-admin .merchant-store small{color:#A9B19F!important}
body.merchant-admin .merchant-nav h3,
body.merchant-admin .merchant-nav .merchant-nav-label{
  color:#8D9684!important;font-size:11px!important;letter-spacing:.1em;text-transform:uppercase;
}
body.merchant-admin .merchant-nav a{
  color:#C8D0BE!important;border-radius:var(--ds-r-sm)!important;
  transition:background-color 150ms var(--ds-ease),color 150ms var(--ds-ease);
}
body.merchant-admin .merchant-nav a:hover{background:#232917!important;color:#fff!important}
body.merchant-admin .merchant-nav a.active,
body.merchant-admin .merchant-nav a[aria-current=page]{
  background:var(--ds-accent)!important;color:var(--ds-accent-ink)!important;font-weight:600;
}
body.merchant-admin .merchant-sidebar-footer{color:#8D9684!important;border-top:1px solid #23281C!important}

/* 顶栏 */
body.merchant-admin .merchant-topbar{
  background:rgba(246,247,243,.9)!important;
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ds-line)!important;
  min-height:64px!important;
}
body.merchant-admin .merchant-topbar :is(h1,.merchant-title){font-size:18px!important;font-weight:650;letter-spacing:-.01em}
body.merchant-admin .live-connection{font-size:12px;color:var(--ds-ok)!important}
body.merchant-admin .merchant-topbar .button{min-height:38px;font-size:13px}

/* 内容区 */
body.merchant-admin .merchant-content{background:var(--ds-paper);padding-top:20px!important}
body.merchant-admin .merchant-content>header :is(h1,h2),
body.merchant-admin .merchant-workspace>h1,
body.merchant-admin .merchant-workspace>h2{font-size:24px!important;font-weight:650;letter-spacing:-.015em}
body.merchant-admin .merchant-workspace{max-width:1440px;margin-inline:auto}

/* 按钮：中性为主，主操作荧光 */
body.merchant-admin .button{
  min-height:38px;padding:0 14px;border-radius:var(--ds-r-sm);
  border:1px solid var(--ds-line-strong);background:var(--ds-surface);
  color:var(--ds-ink);font-size:13px;font-weight:550;line-height:1;
  transition:background-color 150ms var(--ds-ease),border-color 150ms var(--ds-ease),color 150ms var(--ds-ease);
}
body.merchant-admin .button:hover{background:var(--ds-surface-2);border-color:var(--ds-ink-2);transform:none}
body.merchant-admin .button.primary{
  background:var(--ds-accent)!important;border-color:var(--ds-accent)!important;color:var(--ds-accent-ink)!important;
}
body.merchant-admin .button.primary:hover{background:var(--ds-accent-press)!important;border-color:var(--ds-accent-press)!important}
body.merchant-admin .button.text{background:transparent!important;border-color:transparent!important;color:var(--ds-ink)!important;min-height:34px}
body.merchant-admin .button.text:hover{background:var(--ds-surface-2)!important}
body.merchant-admin .button.danger,
body.merchant-admin .button.danger:hover{color:var(--ds-bad)!important;border-color:#E7C3BF!important;background:#FCF3F2!important}
body.merchant-admin .button:disabled{background:var(--ds-surface-2)!important;color:var(--ds-muted)!important;border-color:var(--ds-line)!important;opacity:1!important}

/* KPI 卡 */
body.merchant-admin .admin-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
body.merchant-admin .admin-kpi-card,
body.merchant-admin .admin-kpi-card.is-primary{
  background:var(--ds-surface)!important;color:var(--ds-ink)!important;
  border:1px solid var(--ds-line)!important;border-radius:var(--ds-r-md)!important;
  box-shadow:none!important;padding:16px 18px!important;
}
body.merchant-admin .admin-kpi-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ds-muted);font-size:12px}
body.merchant-admin .admin-kpi-card strong,
body.merchant-admin .admin-kpi-card .admin-kpi-value{font-size:26px!important;font-weight:700;letter-spacing:-.02em;color:var(--ds-ink)!important;font-variant-numeric:tabular-nums}
body.merchant-admin .admin-kpi-card small{color:var(--ds-muted)!important;font-size:12px}

/* 筛选与工具条 */
body.merchant-admin :is(.admin-list-filters,.admin-order-filter-box,.order-filter-grid,.order-advanced-filters){
  background:var(--ds-surface)!important;border:1px solid var(--ds-line)!important;
  border-radius:var(--ds-r-md)!important;padding:12px 14px!important;
}
body.merchant-admin .admin-list-filters label,
body.merchant-admin .order-filter-grid label{font-size:12px;color:var(--ds-muted);font-weight:550}
body.merchant-admin :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
  min-height:38px;border:1px solid var(--ds-line-strong);border-radius:var(--ds-r-sm);
  background:var(--ds-surface);color:var(--ds-ink);font-size:13px;
  transition:border-color 150ms var(--ds-ease),box-shadow 150ms var(--ds-ease);
}
body.merchant-admin :is(input,select,textarea):focus{
  outline:none;border-color:#7BA814;box-shadow:0 0 0 3px rgba(123,168,20,.16);
}

/* 表格：信息密度与对齐 */
body.merchant-admin .table-wrap{border:1px solid var(--ds-line);border-radius:var(--ds-r-md);background:var(--ds-surface);overflow:auto}
body.merchant-admin table{font-size:13px;border-collapse:separate;border-spacing:0}
body.merchant-admin thead th{
  position:sticky;top:0;z-index:1;
  background:var(--ds-surface-2)!important;color:var(--ds-muted)!important;
  font-size:12px!important;font-weight:600;letter-spacing:.02em;
  padding:10px 12px!important;border-bottom:1px solid var(--ds-line)!important;white-space:nowrap;
}
body.merchant-admin tbody td{
  padding:12px!important;border-bottom:1px solid var(--ds-line)!important;
  color:var(--ds-ink-2);vertical-align:middle;
}
body.merchant-admin tbody tr{transition:background-color 120ms var(--ds-ease)}
body.merchant-admin tbody tr:hover{background:#FAFBF6!important}
body.merchant-admin tbody tr:last-child td{border-bottom:0!important}
body.merchant-admin .admin-order-id-cell code,
body.merchant-admin .order-copy-pill{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
  background:var(--ds-surface-2);border-radius:6px;padding:2px 6px;color:var(--ds-ink-2);
}
body.merchant-admin .admin-product-title{font-weight:600;color:var(--ds-ink)}

/* 状态标签：统一底色与字号，不堆叠 */
body.merchant-admin :is(.status,.admin-prod-status-cell span,.order-tab-pill){
  display:inline-flex;align-items:center;gap:5px;
  min-height:22px;padding:0 8px;border-radius:999px;
  font-size:12px;font-weight:550;border:1px solid transparent;
}
body.merchant-admin .status.success,
body.merchant-admin .status[data-state=paid]{background:var(--ds-ok-soft);color:var(--ds-ok)!important;border-color:#CBE7D5}
body.merchant-admin .status.warning{background:var(--ds-warn-soft);color:var(--ds-warn)!important;border-color:#EEDCB6}
body.merchant-admin .status.error{background:var(--ds-bad-soft);color:var(--ds-bad)!important;border-color:#F0CFCB}

/* 批量操作条 */
body.merchant-admin .admin-list-filters[data-selected],
body.merchant-admin .batch-bar{
  background:var(--ds-accent-soft)!important;border-color:#D8E7A9!important;
}

/* 面板与侧卡 */
body.merchant-admin .panel,
body.merchant-admin .admin-chart-panel,
body.merchant-admin .admin-side-card{
  background:var(--ds-surface)!important;border:1px solid var(--ds-line)!important;
  border-radius:var(--ds-r-md)!important;box-shadow:none!important;
}
body.merchant-admin .admin-side-card h3,
body.merchant-admin .admin-chart-panel h3{font-size:15px!important;font-weight:650}
body.merchant-admin .admin-restock-row{
  border:1px solid var(--ds-line)!important;border-radius:var(--ds-r-sm)!important;background:#FBFCF8!important;
}
body.merchant-admin .admin-restock-row:hover{border-color:var(--ds-line-strong)!important}

/* 表单分组 */
body.merchant-admin .form-section-heading{
  display:flex;align-items:center;gap:10px;margin:0 0 12px;
  padding-bottom:10px;border-bottom:1px solid var(--ds-line);
  font-size:13px;font-weight:650;letter-spacing:.02em;color:var(--ds-ink);
}
body.merchant-admin .product-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body.merchant-admin .product-sku-edit-table{font-size:13px}

/* 深色 */
html[data-color-mode=dark] body.merchant-admin{
  --ds-paper:#121512;--ds-surface:#1A1E1A;--ds-surface-2:#20251F;
  --ds-ink:#EFF2E9;--ds-ink-2:#C9D0C2;--ds-muted:#A6AEA0;
  --ds-line:#2C322B;--ds-line-strong:#3A4238;
  --ds-accent-soft:#2A3517;--ds-ok-soft:#1C2C22;--ds-warn-soft:#2E2717;--ds-bad-soft:#33201E;
  --ds-info-soft:#1B2634;
}
html[data-color-mode=dark] body.merchant-admin .merchant-topbar{background:rgba(18,21,18,.9)!important}
html[data-color-mode=dark] body.merchant-admin .merchant-sidebar{background:#0D100C!important;border-right-color:#242A1E!important}
html[data-color-mode=dark] body.merchant-admin tbody tr:hover{background:#1F241C!important}
html[data-color-mode=dark] body.merchant-admin .admin-restock-row{background:#1B2018!important}

/* 响应式：900 / 640 */
@media (max-width:1200px){
  body.merchant-admin .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  body.merchant-admin .merchant-sidebar{position:fixed;z-index:60;box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}
  body.merchant-admin .product-edit-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  body.merchant-admin .admin-kpi-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  body.merchant-admin .merchant-topbar{min-height:56px!important}
  body.merchant-admin .merchant-content{padding-inline:12px!important}
  body.merchant-admin thead th{font-size:11px!important;padding:8px 10px!important}
  body.merchant-admin tbody td{padding:10px!important;font-size:12px}
}

@media (prefers-reduced-motion:reduce){
  body.merchant-admin *{transition-duration:1ms!important;animation-duration:1ms!important}
}

/* 命中 admin-console.css 中特异性更高的主按钮规则 */
body.merchant-admin :is(.merchant-content,#overlays) .button.primary{
  background:var(--ds-accent)!important;
  border-color:var(--ds-accent)!important;
  color:var(--ds-accent-ink)!important;
  box-shadow:none!important;
}
body.merchant-admin :is(.merchant-content,#overlays) .button.primary:hover{
  background:var(--ds-accent-press)!important;
  border-color:var(--ds-accent-press)!important;
  color:var(--ds-accent-ink)!important;
}
body.merchant-admin .merchant-nav a.active,
body.merchant-admin :is(.merchant-content,#overlays) .button.primary{color:var(--ds-accent-ink)!important}

/* 选中行：用品牌强调色替代旧层蓝色 */
body.merchant-admin .product-manager-table tr.is-selected,
body.merchant-admin tbody tr.is-selected{
  background:var(--ds-accent-soft)!important;
  box-shadow:inset 3px 0 0 var(--ds-accent)!important;
}
body.merchant-admin .product-manager-table tr.is-selected:hover,
body.merchant-admin tbody tr.is-selected:hover{
  background:color-mix(in srgb,var(--ds-accent-soft) 82%,var(--ds-accent))!important;
}
body.merchant-admin tr.is-selected td{color:var(--ds-ink)!important}

/* 商品编辑器：手机端底部操作与标签栏不再挤压 */
@media(max-width:640px){
  body.merchant-admin #overlays .product-editor .product-publish-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
    gap:10px!important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom))!important;
  }
  body.merchant-admin #overlays .product-editor .product-publish-actions .button{
    width:100%;min-height:44px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    font-size:13px!important;padding:0 8px!important;
  }
  body.merchant-admin #overlays .product-editor .product-publish-actions>span{display:none}
  body.merchant-admin #overlays .product-editor-tabs{
    gap:4px!important;padding:0 10px!important;
    overflow-x:auto;scrollbar-width:none;
  }
  body.merchant-admin #overlays .product-editor-tabs::-webkit-scrollbar{display:none}
  body.merchant-admin #overlays .product-editor-tabs .button{
    flex:none;white-space:nowrap;padding:14px 8px!important;font-size:12.5px!important;min-height:46px!important;
  }
  body.merchant-admin #overlays .product-editor .modal-head{padding:14px 16px!important}
  body.merchant-admin #overlays .product-editor .modal-head h2{font-size:17px!important}
}

/* ---------- 后台对比度达标 ---------- */
body.merchant-admin{
  --ds-muted:#5A6055;   /* 替代 slate-500 #64748B：4.34 → 5.4 */
  --ds-ok:#2A7048;      /* 4.49 → 5.2 */
}
body.merchant-admin :is(.merchant-content,.merchant-topbar,#overlays) :is(.muted,small,
  .admin-list-filters label,.trade-chart-caption,.admin-kpi-card small,
  .product-editor-intro,.admin-recent-orders small,pipeline span,em){
  color:var(--ds-muted)!important;
}
body.merchant-admin .merchant-topbar>div>span{color:var(--ds-muted)!important}
body.merchant-admin .status.success,
body.merchant-admin .live-connection,
body.merchant-admin .merchant-connected,
body.merchant-admin .status[data-state=available],
body.merchant-admin .admin-prod-status-cell .status.success{
  color:var(--ds-ok)!important;
}
html[data-color-mode=dark] body.merchant-admin{--ds-muted:#B2BAAB;--ds-ok:#83D6A4}

/* 批量操作条与 SEO 状态：命中旧层具体选择器，补足对比度 */
body.merchant-admin .product-bulk-bar>div:first-child>span,
body.merchant-admin .product-bulk-bar>div>span,
body.merchant-admin .product-bulk-bar small{
  color:var(--ds-muted)!important;
}
body.merchant-admin :is(.pulse-chip.is-ok,.pulse-chip.is-ok b,.sku-matrix-card.is-ok .sku-matrix-badge){
  color:#166534!important;
}
body.merchant-admin .pulse-chip.is-ok{background:#DCFCE7!important}

/* 旧层 readability/commerce 使用 --bm-muted（slate-500）作为次要色，
   在后台统一提到可读档位，避免逐条覆盖 */
body.merchant-admin{
  --bm-muted:#5A6055;
  --bm-soft:#F1F2ED;
}
html[data-color-mode=dark] body.merchant-admin{
  --bm-muted:#B2BAAB;
  --bm-soft:#20251F;
}
body.merchant-admin .merchant-content :is(.empty,.notice,.toolbar p,.panel>p,.settings-service-note,p.muted,span.muted),
body.merchant-admin .merchant-content .status{color:var(--ds-muted)!important}
body.merchant-admin .merchant-content :is(.empty,.notice){background:var(--ds-surface)!important}

/* 后台同步字体 */
body.merchant-admin{
  font-family:"Satoshi","PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.merchant-admin :is(h1,h2,h3,h4,.merchant-title,.merchant-brand strong,.admin-kpi-card strong,.admin-kpi-card .admin-kpi-value){
  font-family:"Cabinet Grotesk","PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:-.015em;
}
body.merchant-admin .admin-kpi-card strong{font-variant-numeric:tabular-nums}

/* 后台各模块内容宽度统一：工作区始终填满网格列 */
body.merchant-admin .merchant-workspace{
  width:100%!important;
  min-width:0!important;
  justify-self:stretch!important;
}
body.merchant-admin #admin-content,
body.merchant-admin .admin-content{
  width:100%!important;
  min-width:0!important;
}
/* Scoped admin repairs: semantic warning colours, visible navigation and narrow forms. */
html[data-color-mode=dark] body.merchant-admin{--ds-warn:#F4CB76;--ds-warn-soft:#332B1B}
body.merchant-admin :is(.pulse-chip.is-warn,.pulse-chip.is-warn b){background:var(--ds-warn-soft)!important;color:var(--ds-warn)!important}
.admin-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.merchant-admin .order-search-field{display:flex;flex:1;flex-direction:column;gap:6px;min-width:180px;color:var(--ds-ink-2);font-size:13px}
body.merchant-admin .order-search-field .order-quick-search{width:100%;min-width:0}
body.merchant-admin .admin-order-quick-tabs .button[aria-pressed=true]{background:var(--ds-ink)!important;color:var(--ds-surface)!important}
body.merchant-admin .product-manager-table :is(th:last-child,td.actions){position:sticky;right:0;z-index:2;background:var(--ds-surface)!important;border-left:1px solid var(--ds-line);width:140px!important;min-width:140px!important}
body.merchant-admin .merchant-content .product-manager-table td.actions{display:table-cell!important;white-space:normal!important}
body.merchant-admin .product-manager-table td.actions>.button{margin:0 4px 6px 0!important}
body.merchant-admin .product-manager-table tr.is-selected td.actions{background:var(--ds-surface-2)!important}
body.merchant-admin .product-more{font-size:13px;min-width:0;margin-top:2px}
body.merchant-admin .product-more summary{cursor:pointer;padding:7px 2px;color:var(--ds-ink);text-underline-offset:3px}
body.merchant-admin .product-more>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px 0}
body.merchant-admin .product-more summary:focus-visible{outline:2px solid var(--ds-ink);outline-offset:2px}
body.merchant-admin .merchant-content .settings-layout{display:block}
body.merchant-admin .merchant-content .settings-nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 24px;min-width:0;max-width:100%;overflow:visible;border-bottom:1px solid var(--ds-line);padding:0;margin:0 0 24px}
body.merchant-admin .merchant-content .settings-nav .button{position:relative;flex:none;justify-content:center;white-space:nowrap;text-align:center;padding:12px 0!important;border-radius:0!important;min-height:48px;font-size:14px;background:transparent!important;color:var(--ds-muted)!important;box-shadow:none}
body.merchant-admin .merchant-content .settings-nav .button.active{background:transparent!important;color:var(--ds-ink)!important;font-weight:650}
body.merchant-admin .settings-nav .button.active::after{display:block;content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--ds-accent)}
body.merchant-admin .settings-workspace{min-width:0}
@media(max-width:800px){
 body.merchant-admin .merchant-content .settings-nav{flex-wrap:nowrap;overflow-x:auto;gap:20px;margin-bottom:20px;scrollbar-width:thin;overscroll-behavior-inline:contain}
 body.merchant-admin .order-search-field{min-width:0;width:100%;flex-basis:100%}
}
@media(max-width:600px){
 body.merchant-admin .product-sku-table-scroll{overflow:visible;border:0}
 body.merchant-admin .product-sku-edit-table{display:block;width:100%;min-width:0!important;table-layout:auto}
 body.merchant-admin .product-sku-edit-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 body.merchant-admin .product-sku-edit-table tbody{display:grid;gap:20px}
 body.merchant-admin .product-sku-edit-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;padding:16px;background:var(--ds-surface-2);border-radius:10px}
 body.merchant-admin .product-sku-edit-table td{display:flex;flex-direction:column;gap:7px;min-width:0;width:auto!important;padding:0!important;border:0;white-space:normal}
 body.merchant-admin .product-sku-edit-table td::before{content:attr(data-label);font-size:13px;color:var(--ds-ink-2);font-weight:550}
 body.merchant-admin .product-sku-edit-table td:first-child{grid-column:1/-1}
 body.merchant-admin .product-sku-edit-table td:last-child:empty{display:none}
 body.merchant-admin .product-sku-edit-table :is(input,select){min-width:0;width:100%;min-height:44px;font-size:16px}
 body.merchant-admin .product-sku-edit-table input:disabled{opacity:1;color:var(--ds-muted)}
}

/* Keep admin components on the same live palette as the storefront. */
html[data-ds] body.merchant-admin{
 --bm-muted:inherit;--bm-soft:inherit;
 --ds-paper:inherit;--ds-surface:inherit;--ds-surface-2:inherit;
 --ds-ink:inherit;--ds-ink-2:inherit;--ds-muted:inherit;
 --ds-line:inherit;--ds-line-strong:inherit;
 --ds-accent:inherit;--ds-accent-press:inherit;--ds-accent-ink:inherit;
 --ds-accent-soft:inherit;--ds-accent-line:inherit;--ds-focus:inherit;
}
html[data-ds] body.merchant-admin .merchant-topbar{background:var(--ds-paper)!important}
html[data-ds] body.merchant-admin .merchant-sidebar{background:var(--bm-dark)!important;border-right-color:var(--bm-dark-border)!important}
html[data-ds] body.merchant-admin .merchant-store{background:var(--bm-dark-soft)!important;border-color:var(--bm-dark-border)!important}
html[data-ds] body.merchant-admin .merchant-nav a:hover{background:var(--bm-dark-hover)!important}
html[data-ds] body.merchant-admin tbody tr:hover{background:var(--ds-surface-2)!important}

