
.gen-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;font-size:12px;color:#5a6678}
.gen-copy{display:grid;grid-template-columns:86px 1fr;gap:6px 14px;margin:0 0 14px;font-size:12px}
.gen-copy dt{color:#6b7789}
.gen-copy dd{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.55}
.gen-warn{color:#b26a00}
.run-status.partial{background:#fff4e6;color:#a8641b}
#materialAssets:empty{display:none}
.asset-links{display:flex;gap:14px;flex-wrap:wrap}
.service-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.service-tabs .active{background:#3154dc;color:white;border-color:#3154dc}.plan-section{border-top:1px solid #e3e8f0;margin-top:24px;padding-top:20px}.plan-section h3{margin:0 0 15px}.plan-section>.field{margin:14px 0}.image-slot{border:1px solid #dbe3f0;border-radius:12px;padding:16px;margin:16px 0}.image-slot legend{padding:0 8px;font-weight:600}.image-slot textarea{min-height:80px}.material-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:24px}.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0}.asset-card{border:1px solid #dce4f2;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:9px;min-width:0}.asset-card img,.asset-card video{width:100%;height:220px;object-fit:contain;background:#f3f5fa;border-radius:8px}.asset-card input{width:100%;box-sizing:border-box;font-size:11px}.asset-card a{color:#3154dc}.production-steps{overflow:auto}.production-steps .step{min-width:86px}.template-editor{min-width:0}#planEditor textarea{min-height:80px}#mediaConfigCard[hidden],#textConfigCard[hidden]{display:none!important}@media(max-width:850px){.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.asset-grid{grid-template-columns:1fr}.material-preview-heading{align-items:flex-start;flex-direction:column}}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid>.full{grid-column:1/-1}#mediaConfigForm input:not([type=checkbox]),#mediaConfigForm select{border:1px solid #dbe2ed;border-radius:8px;background:white;padding:10px 12px;width:100%;box-sizing:border-box}#mediaConfigForm input[type=checkbox],#planEditor input[type=checkbox]{width:16px;height:16px}#planEditor .check{display:flex;gap:8px;align-items:flex-start} .production-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;align-items:start}
/* 「完成后自动写入」和开始按钮各占整行，否则会被挤成一行一个字 */
.production-options>.full-row,.production-options>#runStart{grid-column:1/-1}
.production-options>#runStart{justify-self:start}
/* 下拉框/输入框：height 与 line-height 必须配套，padding 不能再叠加 9px，否则文字被裁一半 */
.production-options input:not([type=checkbox]),.production-options select{height:36px;line-height:34px;padding:0 11px}
.production-options select{padding-right:28px;appearance:auto}
.production-options .field{min-width:0}
.production-options .field>label{line-height:18px}#productionSteps{overflow:auto}#productionSteps .step{min-width:90px}@media(max-width:850px){.production-options{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}}

/* Order list: the store tag and the posting/tracking numbers need to line up
   in a column so a wall of rows stays scannable. */
.tag{display:inline-block;padding:1px 7px;border-radius:999px;background:#eef2fb;color:#3154dc;font-size:11px;font-weight:600;white-space:nowrap}
.mono{font-family:Consolas,Menlo,monospace;font-size:12px}

/* One order line: photo, name, 货号/SKU. The photo is a button so it can open
   the lightbox; the blank state keeps rows aligned when a SKU is unknown. */
.order-line{display:flex;gap:9px;align-items:flex-start;margin:0 0 8px}
.order-line:last-child{margin-bottom:0}
.order-line-body{min-width:0}
/* 订单的「商品信息」列是固定宽度：名称也只占一行，多的省略，鼠标放上去看全文（和线上商品一致） */
.order-line-name{font-size:12px;line-height:19px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.line-thumb{flex:0 0 auto;width:44px;height:44px;padding:0;border:1px solid #e6ebf4;border-radius:8px;background:#f6f8fc;cursor:zoom-in;overflow:hidden}
.line-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.line-thumb.blank{cursor:default;background:repeating-linear-gradient(45deg,#f3f5fa,#f3f5fa 6px,#eaeef7 6px,#eaeef7 12px)}
.order-number{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.order-number .copy{padding:2px 6px;font-size:11px;line-height:1.2}

/* The label opens as a half-page panel: the order list stays visible beside it,
   which is the only way to cross-check before sticking a label on a parcel. */
/* A light scrim: the rows beside the panel must stay readable for cross-check. */
#ozonLabelOverlay{align-items:stretch;justify-content:flex-start;padding:0;background:rgba(16,24,39,.12)}
#ozonLabelOverlay.show{display:flex}
#ozonLabelOverlay .label-panel{background:#fff;width:min(760px,54vw);display:flex;flex-direction:column;box-shadow:12px 0 40px #0b102024}
.label-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.label-head h3{margin:0 0 2px;font-size:15px}
.label-head .help{margin:0}
#ozonLabelFrame{flex:1;width:100%;border:0;background:#eef1f6}
@media(max-width:900px){#ozonLabelOverlay .label-panel{width:100vw}}

/* 几百行商品列表里换页签不该靠往上滚。 */
#ozonTabs,#ozonMatchTabs{position:sticky;top:0;z-index:8;background:#fff;padding:6px 0}

/* 建品页：左边填信息、右边选类目与属性，提交条吸在底部，长表单不用来回滚。 */
#ozonDraftPanel{position:relative}
.draft-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;align-items:start}
.draft-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.draft-card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}
.draft-title{font-size:13px;font-weight:600;color:#334155;margin:0 0 12px}
.draft-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.draft-fields .field{margin:0}
.draft-col .field{margin:0}
.draft-col .field+.field{margin-top:10px}
.field-row{display:flex;gap:6px;align-items:center}
.field-row input{min-width:0;flex:1 1 0}
.field-row .btn{flex:0 0 auto;white-space:nowrap;padding:0 10px}
#ozonNewDescription{min-height:180px}
.draft-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.draft-row .help{margin:0}
.req{color:#c2410c}
.draft-foot{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;gap:12px;margin:16px 0 0;padding:12px 16px;border:1px solid var(--line);background:#fff;border-radius:12px;box-shadow:0 -2px 10px rgba(23,33,47,.06)}
@media(max-width:1100px){.draft-grid{grid-template-columns:1fr}}

/* 左侧导航：竖排分组，页面再多也不用挤成一行。 */
.body-grid{display:grid;grid-template-columns:214px minmax(0,1fr);gap:18px;align-items:start}
.body-main{min-width:0}
.side{position:sticky;top:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}
.side-group{display:flex;flex-direction:column;gap:2px}
.side-group+.side-group{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.side-title{padding:6px 10px;font-size:11px;color:#8b97ab;letter-spacing:.04em}
.side button{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#4a566d;padding:9px 10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;text-align:left}
.side button i{font-style:normal;width:18px;text-align:center;color:#98a4b8}
.side button:hover{background:#f2f5fa}
.side button.active,.side button.active i{background:var(--blue2);color:var(--blue)}
.side-new,.side-new i{color:var(--blue)}

/* 顶部动作条：条件在左、动作在右，主操作上色。 */
.action-bar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.action-bar-filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.action-bar-right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn.ok{background:#16845b;border-color:#16845b;color:#fff}
.btn.ok:hover:not(:disabled){background:#12724e;border-color:#12724e}
.btn.danger{background:#fff;border-color:#e6b9a6;color:#c2410c}
.btn.danger:hover:not(:disabled){background:#c2410c;border-color:#c2410c;color:#fff}

/* 表格底部统计条：选中几条、一共几条一眼可见。 */
.table-foot{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line);font-size:12px;color:#5b6b85;background:#fbfcfe;border-radius:0 0 12px 12px}
.table-foot .help{margin:0}

/* 新建商品：左侧分区锚点 + 单列长表单，照上品帮上款页的分区方式。 */
.create-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start;margin-top:16px}
.create-anchor{position:sticky;top:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}
.create-anchor a{padding:8px 10px;border-radius:8px;color:#4a566d;font-size:13px;text-decoration:none}
.create-anchor a:hover{background:#f2f5fa}
.create-anchor a.active{background:var(--blue2);color:var(--blue);font-weight:600}
.create-body{display:flex;flex-direction:column;gap:16px;min-width:0}
.create-body .draft-card{scroll-margin-top:70px}
html{scroll-behavior:smooth}
@media(max-width:1000px){.create-layout{grid-template-columns:1fr}.create-anchor{position:static;flex-direction:row;overflow:auto}}
@media(max-width:900px){.body-grid{grid-template-columns:1fr}.side{position:static;flex-direction:row;overflow:auto}.side-group{flex-direction:row}.side-title{display:none}}

/* Wide rows used to squeeze the header so "面单" stacked into two lines. */
#view-orders .table-wrap th{white-space:nowrap}
#view-orders td{vertical-align:top}
#view-orders td .btn.small{white-space:nowrap}

/* 全站版式比例：1440 宽是基准（就是现在的观感），窗口再大整体等比放大，
   不靠留白填充；窗口小到 900 以下才切回移动端堆叠。 */
@media(min-width:901px){
  :root{
    --shell-max:min(2240px,96vw);
    --pad-x:clamp(24px,2vw,60px);
    --pad-y:clamp(22px,1.6vw,42px);
    --side-w:clamp(214px,14.9vw,320px);
    --font-base:clamp(14px,.972vw,18px);
    --font-table:clamp(13px,.9vw,16px);
    --font-small:clamp(11.5px,.8vw,14px);
    --cell-y:clamp(11px,.86vw,18px);
    --cell-x:clamp(14px,1.1vw,26px);
    --gap:clamp(16px,1.25vw,30px);
  }
  .shell{max-width:var(--shell-max);padding:var(--pad-y) var(--pad-x)}
  body{font-size:var(--font-base)}
  .top{margin-bottom:clamp(20px,1.5vw,32px)}
  .brand h1{font-size:clamp(19px,1.32vw,25px)}
  .brand p{font-size:clamp(12px,.82vw,14px)}
  .view-heading{margin:clamp(18px,1.4vw,30px) 0 clamp(14px,1.1vw,24px)}
  .view-heading h2{font-size:clamp(21px,1.45vw,27px)}
  .view-heading p{font-size:clamp(12.5px,.86vw,14px)}
  .body-grid{grid-template-columns:var(--side-w) minmax(0,1fr);gap:var(--gap)}
  .side{padding:clamp(9px,.7vw,15px)}
  .side button{font-size:clamp(13px,.9vw,15px);padding:clamp(8px,.62vw,12px) clamp(9px,.72vw,13px)}
  .side-title{font-size:clamp(10.5px,.76vw,13px)}
  .side button i{font-size:clamp(13px,.92vw,15px)}
  table{font-size:var(--font-table)}
  th{font-size:clamp(11px,.76vw,12.5px);padding:var(--cell-y) var(--cell-x)}
  td{padding:var(--cell-y) var(--cell-x)}
  .metric{padding:clamp(15px,1.2vw,22px) clamp(17px,1.3vw,24px)}
  .metric strong{font-size:clamp(24px,1.7vw,32px)}
  .metric label,.metric span{font-size:var(--font-small)}
  .btn{padding:clamp(8px,.62vw,11px) clamp(13px,.95vw,17px);font-size:clamp(13px,.9vw,14.5px)}
  .btn.small{padding:clamp(5px,.42vw,8px) clamp(9px,.7vw,13px);font-size:clamp(11.5px,.8vw,13px)}
  .field label{font-size:clamp(12.5px,.86vw,14px)}
  .field input,.field select,.field textarea{font-size:clamp(13px,.9vw,14.5px)}
  .hint,.help{font-size:var(--font-small)}
  .tag{font-size:clamp(11px,.76vw,12.5px)}
  .draft-card{padding:clamp(14px,1.1vw,20px) clamp(16px,1.25vw,24px)}
  .draft-title{font-size:clamp(13px,.92vw,15px)}
  .create-layout{grid-template-columns:clamp(132px,9.5vw,176px) minmax(0,1fr);gap:var(--gap)}
  .create-anchor a{font-size:clamp(13px,.9vw,15px);padding:clamp(7px,.58vw,11px) clamp(9px,.72vw,13px)}
  .table-foot{font-size:var(--font-small);padding:clamp(9px,.72vw,14px) clamp(12px,1vw,20px)}
  .action-bar button{font-size:clamp(13px,.9vw,14.5px)}
  .prod-name{font-size:clamp(13px,.9vw,14.5px)}
  .prod-meta{font-size:clamp(11.5px,.8vw,13px)}
}

/* 收起左侧菜单：只留图标，把宽度让给宽表。 */
.side-collapse{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);border-left:0;border-right:0;border-bottom:0;background:transparent;color:#8b97ab;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px}
.side-collapse:hover{background:#f2f5fa}
.side-collapse i{font-style:normal;width:18px;text-align:center}
body.side-collapsed .body-grid{grid-template-columns:56px minmax(0,1fr)}
body.side-collapsed .side{padding:10px 6px}
body.side-collapsed .side button span,body.side-collapsed .side-collapse span,
body.side-collapsed .side-title{display:none}
body.side-collapsed .side button,body.side-collapsed .side-collapse{justify-content:center;padding:9px 0}
body.side-collapsed .side-group+.side-group{margin-top:6px;padding-top:6px}

/* 批量修改条：勾了才出现，改完直接推给 Ozon。 */
.bulk-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid #cfe0ff;background:#f4f8ff;border-radius:10px}
.bulk-bar .field{min-width:110px}
.bulk-count{font-weight:600;color:#3154dc;font-size:13px}
.bulk-bar .help{margin:0}

/* 弹层永远盖住侧栏、页签与底部吸附条：它们都在 10 以下，弹层从 900 起。 */
.overlay{z-index:900;backdrop-filter:blur(2px)}

/* 图片墙：居中大面板，点一张直接看大图。 */
.overlay#ozonGallery{z-index:960;justify-content:center;align-items:center;padding:24px;background:#0b1020cc}
.pic-gallery-panel{background:#fff;border-radius:16px;width:min(1220px,94vw);max-height:92vh;overflow:auto;padding:18px 20px 22px;box-shadow:0 30px 80px #0b102055}
.pic-gallery-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pic-gallery-head h3{margin:0;font-size:16px}
.pic-gallery-tools{display:flex;gap:8px}
.pic-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.pic-gallery-grid figure{position:relative;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:zoom-in;background:#f7f9fc;aspect-ratio:1/1}
.pic-gallery-grid img{width:100%;height:100%;object-fit:contain;display:block}
.pic-gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:4px 8px;font-size:11px;color:#fff;background:#0b1020a8}
.pic-gallery-grid figcaption a{color:#dbe6ff}

/* 看大图：整屏铺满、置顶，左右切换；菜单在它下面，不会再挡图。 */
.pic-zoom{position:fixed;inset:0;z-index:980;display:flex;align-items:center;justify-content:center;background:#080c17f5;padding:56px 76px 72px}
.pic-zoom[hidden]{display:none}
.pic-zoom img{width:100%;height:100%;object-fit:contain;border-radius:8px;background:transparent}
.pic-zoom-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:50%;background:#ffffff26;color:#fff;font-size:30px;line-height:1;cursor:pointer;padding:0}
.pic-zoom-nav:hover{background:#ffffff45}
.pic-zoom-nav.prev{left:16px}
.pic-zoom-nav.next{right:16px}
.pic-zoom-bar{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:10px;color:#c9d3e6;font-size:13px}
body.zoom-open{overflow:hidden}

/* 商品单元格：图片、名称、货号 / SKU / 类目合成一列。 */
.prod-head{display:flex;gap:10px;align-items:flex-start}
.prod-thumbs{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.prod-thumb{width:clamp(38px,3vw,48px);height:clamp(38px,3vw,48px);object-fit:cover;border-radius:6px;border:1px solid #e6ebf4;cursor:zoom-in;background:#f7f9fc}
.prod-thumb:hover{border-color:var(--blue)}
.prod-thumb-more{border:1px solid var(--line);background:#fff;border-radius:6px;height:clamp(38px,3vw,48px);padding:0 5px;font-size:11px;color:#5b6b85;cursor:pointer}
.prod-thumb-more:hover{border-color:var(--blue);color:var(--blue)}
.prod-text{min-width:0}
.prod-cell{min-width:260px;max-width:620px}
.prod-name{font-weight:600;line-height:1.35;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prod-meta{display:flex;flex-wrap:wrap;gap:3px 14px;color:#7a879c}
.prod-meta span{white-space:nowrap}

/* 建品页的属性区：类目属性多，一屏三列铺开比一列长滚好读。 */
.attr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin-top:6px}
.attr-grid .field{margin:0}
.attr-grid label{font-weight:600;color:#3d4a60;line-height:1.35}
.draft-title-sub{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:1500px){.attr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1024px){.attr-grid{grid-template-columns:1fr}}

/* 上架页：单栏分块（主要信息 / 图片 / 属性 / 变体），底部操作条常驻。 */
.create-page{display:flex;flex-direction:column;gap:clamp(12px,1vw,18px);max-width:1240px;padding-bottom:8px}
.create-block{background:#fff;border:1px solid var(--line);border-radius:12px;padding:clamp(14px,1.1vw,20px);box-shadow:0 2px 10px #17212f08}
.create-block-title{margin:0 0 14px;font-size:15px;display:flex;align-items:center;gap:8px}
.create-block-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.create-block-head .create-block-title{margin:0}
.create-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}
.create-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.create-field.wide{grid-column:span 3}
.create-field label{font-size:12px;color:#5a6678;font-weight:600}
.create-field.dim label{color:#93a0b3;font-weight:500}
.create-field input,.create-field select{width:100%}
.with-icon{display:flex;gap:6px;align-items:center}
.with-icon input{flex:1;min-width:0}
.icon-btn{flex:0 0 auto;width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;color:#5a6678;cursor:pointer;font-size:14px;line-height:1}
.icon-btn:hover{border-color:#3154dc;color:#3154dc}
.create-empty{margin:0;color:#93a0b3;font-size:13px}
.btn.block{display:block;width:100%;margin-top:12px;text-align:center}
.btn.ghost{background:#f3f5fa;border-color:transparent;color:#3154dc}
#ozonAttrToggle{background:#2b52e0;border-color:#2b52e0;color:#fff}
#ozonAttrToggle:hover{background:#2446c4}
.draft-badge{margin-left:8px;font-size:11px;font-weight:600;color:#3154dc;background:#eef2ff;border-radius:999px;padding:2px 8px;vertical-align:middle}

/* 三级类目：点开是逐列展开的面板，打字就是全树检索。 */
.cat-picker{position:relative;display:flex;align-items:center;background:#f7f8fb;border:1px solid var(--line);border-radius:8px;padding:0 10px 0 0}
.cat-picker.open{border-color:#3154dc;background:#fff;box-shadow:0 0 0 3px #3154dc14}
.cat-picker input{flex:1;min-width:0;border:0;background:transparent;padding:9px 10px;font-size:13px;outline:none}
.cat-caret{color:#8b96a8;font-size:12px}
.cat-panel{position:absolute;z-index:70;top:calc(100% + 6px);left:0;display:flex;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #17212f1f;max-height:380px;overflow:hidden}
.cat-panel[hidden]{display:none}
.cat-col{width:250px;max-height:380px;overflow-y:auto;border-right:1px solid #eef1f7;padding:6px 0}
.cat-col:last-child{border-right:0}
.cat-col-results{width:420px}
.cat-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 12px;border:0;background:transparent;text-align:left;font-size:13px;color:#243044;cursor:pointer;line-height:1.35}
.cat-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-item i{font-style:normal;color:#b6c0cf;flex:0 0 auto}
.cat-item:hover,.cat-item.active{background:#eef2ff}
.cat-item.picked{color:#3154dc;font-weight:600}
.cat-result span{white-space:normal}
.cat-note{padding:10px 12px;margin:0;color:#93a0b3;font-size:12px}

/* 产品属性：一行一个属性，右侧 ⇄ 可以把它变成变体维度。 */
.attr-list{display:flex;flex-direction:column;gap:10px}
.attr-row{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr);gap:12px;align-items:center}
.attr-row label{font-size:12px;color:#5a6678;font-weight:600;line-height:1.4;word-break:break-word}
.attr-row label span{color:#8b96a8;font-weight:400}
.attr-input{display:flex;gap:6px;align-items:center}
.attr-input input{flex:1;min-width:0}
@media(max-width:820px){.attr-row{grid-template-columns:minmax(0,1fr)}}

/* 变体：图片 / 视频 / 货号 / 三个价格 / 操作，跟 Ozon 卖家后台一致。 */
.variant-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0}
.variant-toolbar .spacer{flex:1}
.variant-attr-pick{min-width:220px;max-width:320px}
.inline-field{display:flex;align-items:center;gap:8px;font-size:12px;color:#5a6678}
/* 变体维度：一个个小标签，× 撤掉一个维度。 */
.dim-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:26px}
.dim-chip{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;color:#3154dc;border:1px solid #d8e0ff;border-radius:999px;padding:3px 6px 3px 10px;font-size:12px;max-width:220px}
.dim-chip button{border:0;background:none;color:#7d8bb5;cursor:pointer;font-size:13px;line-height:1;padding:0 2px}
.dim-chip button:hover{color:#c2410c}
.attr-input select{flex:1;min-width:0}
/* 属性行第二列：输入框 + 下面的中文提示。 */
.attr-col{display:flex;flex-direction:column;gap:2px;min-width:0}
/* 选中的俄文值翻译成中文后显示在这里：输入框里必须保持俄文。 */
.attr-zh{margin:0;font-size:11px;color:#3154dc;min-height:14px;line-height:1.3}
.inline-field input{width:140px}
.variant-table table{min-width:920px}
.variant-table th{white-space:nowrap;font-size:12px;color:#5a6678}
.variant-table td{vertical-align:top;padding:8px 10px}
.variant-table tbody input{width:100%}
.link-btn{border:0;background:none;color:#3154dc;font-size:12px;cursor:pointer;padding:0 2px}
.link-btn:hover{text-decoration:underline}
.link-btn.danger{color:#c2410c}
.v-pic{position:relative;display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.v-pic img{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.v-pic-empty{font-size:10px;color:#a2adbd;border:1px dashed var(--line);border-radius:6px;padding:13px 4px;display:inline-block;min-width:44px;text-align:center;white-space:nowrap}
.v-pic .icon-btn{width:26px;height:26px;font-size:12px}
.v-menu{position:absolute;z-index:60;top:44px;left:0;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px #17212f24;padding:4px;display:flex;flex-direction:column}
.v-menu[hidden]{display:none}
.v-menu button{border:0;background:none;text-align:left;padding:7px 10px;font-size:12px;color:#243044;border-radius:6px;cursor:pointer;white-space:nowrap}
.v-menu button:hover{background:#eef2ff;color:#3154dc}
.v-video{width:52px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#eef1f7}
.v-actions{white-space:nowrap;display:flex;gap:8px}
/* 维度多了表格会横向滚动：把操作列钉在右边，复制 / 删除始终点得到。 */
.variant-table th:last-child,.variant-table td:last-child{position:sticky;right:0;background:#fff;box-shadow:-8px 0 10px -8px #17212f2e}
.variant-table th:last-child{z-index:2}
@media(max-width:1100px){.create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.create-field.wide{grid-column:span 2}}
@media(max-width:720px){.create-grid{grid-template-columns:minmax(0,1fr)}.create-field.wide{grid-column:span 1}}

/* 底部操作条：引用模板 / 保存草稿 / 立即上架，滚到哪儿都在。 */
.create-foot{position:sticky;bottom:0;z-index:40;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;background:#fffffff2;backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:12px;box-shadow:0 -2px 16px #17212f0f}
.create-foot .spacer{flex:1}
.create-foot .help{margin:0;font-size:12px}
.foot-pick{max-width:260px}

.media-actions{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.media-actions .help{margin:0}
.media-url-row{display:flex;gap:8px;margin-top:8px}
.media-url-row input{flex:1;min-width:0}
.media-item .cover-badge{position:absolute;left:4px;top:4px;background:#3154dc;color:#fff;font-size:10px;border-radius:6px;padding:1px 5px;z-index:1}
.media-video video{width:100%;height:100%;object-fit:cover;display:block}
.media-tag{position:absolute;left:4px;top:4px;background:#0b102099;color:#fff;font-size:10px;border-radius:6px;padding:1px 5px}

/* 生产模板页的 AI 生成：一句提示词 + 一个按钮，生成结果直接填进「生产指令」。 */
.ai-template{margin-top:4px}
.ai-template .ai-prompt{min-height:82px;height:82px}
.ai-template .draft-row{margin-top:8px;align-items:center}

/* 图片 / 视频：点一下选图或直接拖进来，缩略图右下角可移除。 */
.media-drop{border:1px dashed var(--line);border-radius:12px;padding:12px;background:#fbfcfe;cursor:pointer;transition:border-color .15s,background .15s}
.media-drop:hover,.media-drop.over{border-color:var(--blue);background:#f4f8ff}
.media-drop.busy{opacity:.55;pointer-events:none}
.media-hint{margin:8px 0 0;text-align:center;color:#8b97ab;font-size:12px;line-height:1.6}
.media-grid{display:flex;flex-wrap:wrap;gap:10px;margin:0}
#ozonVariantRows input,#ozonVariantRows select{width:100%}
#ozonVariantRows td{vertical-align:middle}
#ozonVariantRows .btn.small{white-space:nowrap}
#createVariants .table-wrap{margin-top:10px}
.media-item{position:relative;width:clamp(84px,6vw,108px);height:clamp(84px,6vw,108px);margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f7f9fc;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.media-item img{width:100%;height:100%;object-fit:cover}
.media-video{font-size:var(--font-small,12px);color:#5b6b85}
.media-video figcaption{font-size:10px;color:#8b97ab;padding:0 5px;text-align:center;word-break:break-all;line-height:1.2}
.media-del{position:absolute;right:3px;bottom:3px;width:19px;height:19px;border:0;border-radius:50%;background:#c2410c;color:#fff;font-size:12px;line-height:1;cursor:pointer;padding:0}

/* ── 五步向导（照 Ozon 官方的分步填写） ── */
.wizard-bar{display:flex;align-items:center;gap:6px;list-style:none;margin:0 0 14px;padding:0;flex-wrap:wrap}
.wizard-step{flex:0 0 auto}
.wizard-step button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;
  border-radius:999px;padding:5px 12px;cursor:pointer;color:#5b6b85;font-size:12px}
.wizard-step button b{width:16px;height:16px;border-radius:50%;background:#eef2f7;color:#8b97ab;
  font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700}
.wizard-step.done button{border-color:#b9d8ff;background:#f2f8ff;color:#3154dc}
.wizard-step.done button b{background:#3154dc;color:#fff}
.wizard-step.on button{border-color:#3154dc;background:#3154dc;color:#fff}
.wizard-step.on button b{background:#fff;color:#3154dc}
.wizard-note{margin-left:auto;font-size:11px;color:#8b97ab}
.radio-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center;min-height:32px}
.radio-row .inline-field{margin:0}
/* 可变特征：勾维度 → 勾这个维度要卖的取值 */
.dim-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:10px}
.dim-card{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
.dim-card.on{border-color:#3154dc;background:#f7faff}
.dim-card-head{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.dim-card-head i{margin-left:auto;font-size:11px;color:#8b97ab;font-style:normal}
.dim-values{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.dim-value{display:flex;align-items:center;gap:4px;font-size:12px;color:#5b6b85;cursor:pointer}
/* 预览：完整度 + 只读汇总，每行都能跳回对应那一步 */
.preview-score{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;background:#f7f9fc;margin-bottom:12px}
.preview-score-num{font-size:26px;font-weight:700;color:#3154dc;line-height:1}
.preview-score-num i{font-size:12px;color:#8b97ab;font-style:normal;font-weight:400}
.preview-score-parts{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#5b6b85}
.preview-score p{margin:0;font-size:11px;color:#8b97ab;width:100%}
.preview-row{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid var(--line);font-size:13px}
.preview-row b{width:88px;flex:0 0 auto;color:#8b97ab;font-weight:400}
.preview-row span{flex:1;min-width:0;word-break:break-all}
.preview-problems{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.preview-problems b{font-weight:600;color:#c2410c}
.preview-problems b.ok{color:#15803d}
.preview-problems span{background:#fff5ed;border:1px solid #f6d5c0;border-radius:6px;padding:2px 8px;color:#c2410c}

/* 字典属性下拉：点开就有候选，能打字过滤，选中回填俄文值 */
.combo{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.combo input{width:100%}
.combo-caret{position:absolute;right:8px;font-size:11px;color:#8b97ab;pointer-events:none}
.combo-panel{position:absolute;z-index:80;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow:auto;
  background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px rgba(17,32,58,.12);padding:4px}
.combo-panel[hidden]{display:none}
.combo-item{display:flex;gap:8px;align-items:center;width:100%;border:0;background:none;text-align:left;
  padding:6px 8px;border-radius:6px;font-size:13px;color:#1f2d45;cursor:pointer}
.combo-item:hover,.combo-item.on{background:#eef4ff;color:#3154dc}
.combo-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.combo-item i{font-style:normal;font-size:11px;color:#8b97ab}
.combo-empty{padding:8px;font-size:12px;color:#8b97ab}

/* 草稿箱：工作台导入 / 批量填写 / 完整度 */
.draft-import,.draft-bulk{border:1px solid var(--line);border-radius:10px;background:#f7f9fc;padding:12px;margin-bottom:14px}
.draft-import .create-grid,.draft-bulk .create-grid{gap:10px}
.draft-import-actions{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.draft-import-actions .help{margin:0}
.health{display:flex;align-items:center;gap:6px;font-size:12px}
.health .health-bar{position:relative;flex:1;min-width:60px;height:6px;border-radius:3px;background:#e8edf5;overflow:hidden}
.health .health-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:#3154dc}
.health.ok .health-bar i{background:#15803d}
.health.warn .health-bar i{background:#d97706}
.health.bad .health-bar i{background:#c2410c}
.health b{font-weight:600;font-size:11px;color:#5b6b85;min-width:32px;text-align:right}
.health-missing{margin-top:4px;font-size:11px;color:#c2410c;line-height:1.35}
.health-missing.ok{color:#15803d}
#draftTabs b{font-weight:600;margin-left:4px;color:inherit;opacity:.75}
/* 单字段 AI 重写：字段标签旁的小按钮 + 重写面板 */
.rw-btn{height:22px;padding:0 8px;margin-left:8px;font-size:11px;line-height:20px}
.rw-dialog{width:min(94vw,620px)}
.rw-actions{display:flex;gap:8px;flex-wrap:wrap}
.rw-actions .btn.active{background:var(--blue);border-color:var(--blue);color:#fff}
#rwSource{background:#fafafa;color:var(--muted)}

/* Ozon 卡片校验明细浮层 */
button.tag{border:0;font:inherit;cursor:pointer}
.ozon-err-chip{max-width:100%;text-align:left}
.ozon-err-item{border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#fff}
.ozon-err-item:last-child{margin-bottom:0}
.ozon-err-title{font-weight:600;line-height:20px;margin-bottom:4px}
.ozon-err-item code{background:#f5f5f5;padding:1px 5px;border-radius:4px;font-size:11px}

/* 属性预设：一行「属性 + 值 + 删除」 */
.preset-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px;margin-bottom:8px;align-items:center}
.preset-row select,.preset-row input{height:34px;line-height:32px}

/* ── 系统内部窗口条：菜单点开的页面都在这里排队，切走不销毁 DOM ── */
.win-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;margin:0 0 10px;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 8px #17212f05}
.win-tab{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 10px;border:1px solid var(--line);
  border-radius:8px;background:#f7f9fc;color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer;max-width:200px}
.win-tab i{font-style:normal;color:var(--muted);font-size:12px}
.win-tab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.win-tab b{margin-left:2px;width:17px;height:17px;border-radius:5px;display:grid;place-items:center;
  color:#98a2b3;font-weight:600;font-size:13px;line-height:1}
.win-tab b:hover{background:#ffe9e9;color:#c54545}
.win-tab.on{background:var(--blue2);border-color:#c9d6ff;color:#2440a8;font-weight:650}
.win-tab.on i{color:#2440a8}
.win-hint{margin-left:auto;font-size:11px;color:var(--muted-2)}

/* ── 首页看板 ── */
.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.panel-head h3{margin:0;font-size:14px}
.home-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:14px 16px}
.home-stat{background:#fafbfe;border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;min-width:0}
.home-stat span{display:block;font-size:11px;color:var(--muted)}
.home-stat b{display:block;font-size:18px;margin-top:2px;line-height:24px}
.home-stat em{display:block;font-style:normal;font-size:11px;color:var(--muted-2);margin-top:2px}
.home-links{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 14px}
.home-balance{display:flex;align-items:baseline;gap:10px;padding:0 16px 16px;flex-wrap:wrap}
.home-balance span{font-size:12px;color:var(--muted)}
.home-balance b{font-size:22px;color:var(--green)}
.home-balance b.neg{color:var(--red)}
.home-balance em{font-style:normal;font-size:11px;color:var(--muted-2)}
.home-table-wrap{max-height:280px}
.home-table{min-width:0;width:100%}
.home-activity-panel{margin-top:12px}
.home-activity{padding:4px 2px}
.home-activity-row{display:flex;align-items:flex-start;gap:10px;padding:9px 14px;border-top:1px solid #f2f4f8}
.home-activity-row:first-child{border-top:0}
.home-activity-row .dot{width:6px;height:6px;border-radius:50%;background:var(--blue);margin-top:7px;flex:none}
.home-activity-row>div{flex:1;min-width:0}
.home-activity-row b{font-size:13px;margin-right:6px}
.home-activity-row em{font-style:normal;font-size:11px;color:var(--muted-2);white-space:nowrap}
@media(max-width:1100px){.home-grid{grid-template-columns:1fr}}

/* 订单负责人：列表里直接换人，宽度压到和备注列一致 */
.order-assignee{width:100%;max-width:108px;height:28px;padding:0 4px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:var(--ink);font:inherit;font-size:12px}
.order-assignee[data-empty="1"]{color:var(--muted-2)}
.metric-foot{margin-top:6px}
.metric-foot .btn{padding:3px 8px;font-size:11.5px}
/* 店铺归属表格里的下拉 */
.owner-picker{width:100%;max-width:190px;height:30px;padding:0 6px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:var(--ink);font:inherit;font-size:12.5px}

/* 产品库：素材墙与缩略图 */
.lib-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;padding:14px 16px}
.lib-tile{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.lib-tile img,.lib-tile video{width:100%;height:110px;object-fit:cover;display:block;background:#fafafa}
.lib-tile.main{border-color:var(--brand);box-shadow:0 0 0 2px rgba(64,128,255,.18)}
.lib-tile-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:5px 7px;font-size:11.5px;color:var(--muted)}
.btn.tiny{padding:1px 6px;font-size:11px;border-radius:6px}
.drawer.wide{width:min(760px,94vw)}
/* 目录条：单层，一件货/一张图只在一个目录里，移动就是改归属。 */
.lib-folders{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 16px;border-bottom:1px solid var(--line);background:#fcfcfd}
.folder-chips{display:flex;gap:6px;flex-wrap:wrap}
.folder-chip{padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;color:var(--ink);cursor:pointer}
.folder-chip:hover{border-color:var(--brand)}
.folder-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.folder-chip .n{opacity:.65;margin-left:4px}
/* 模板打开先整块只读（点了顶部「修改」才解锁）：灰底但仍能选中复制 */
.template-editor form.locked input,.template-editor form.locked textarea{background:#f3f4f6;color:#4b5563}
.template-editor form.locked select,.template-editor form.locked .search-combo-input{
background:#f3f4f6;color:#4b5563;cursor:not-allowed}
/* 从类目属性挑字段：搜索 + 勾选 + 加入 */
.pf-search{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin:8px 0}
.pf-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pf-list{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.pf-row{display:grid;grid-template-columns:auto minmax(120px,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;
padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer}
.pf-row:last-child{border-bottom:none}
.pf-row:hover{background:#f7f9fc}
.pf-name{font-weight:600}
.pf-meta{color:#6b7280;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.pf-tags{display:flex;gap:6px;align-items:center;font-size:12px;color:#6b7280;white-space:nowrap}
/* 划掉的模板：灰着摆在最后，不能用，等恢复 */
.template-item.trashed{opacity:.62;background:#f4f5f7;cursor:default;display:flex;align-items:center;gap:8px}
.template-item.trashed strong{text-decoration:line-through}
.pill.warn{background:#fdecec;color:#b23b3b}
/* 商品表单：默认紧凑（只留必填，非必填折叠），可切完整 / 分步 */
.form.compact .grid{gap:8px 10px}
.form.compact .field{margin-bottom:0}
.form.compact .field label{font-size:11.5px;margin-bottom:2px}
.form.compact .field .help{display:none}
.form.compact .field.optional{display:none}
.form.compact textarea{min-height:52px}
.form.compact .field input,.form.compact .field select,.form.compact .field textarea{padding:5px 8px;font-size:12.5px}
.field-toggle{margin:10px 0 0}
.form-step-nav{display:flex;align-items:center;gap:10px;padding:8px 0 10px;border-bottom:1px solid var(--line);margin-bottom:10px}
.seg{display:inline-flex;gap:0}
.seg .btn{border-radius:0;margin-left:-1px}
.seg .btn:first-child{border-radius:8px 0 0 8px;margin-left:0}
.seg .btn:last-child{border-radius:0 8px 8px 0}
.seg .btn.active{background:var(--brand);border-color:var(--brand);color:#fff}
/* 货号 / SKU / 单号后面的「复制」小按钮 */
.copy-btn{margin-left:5px;padding:0 5px;border:0;background:none;color:var(--brand);
  font:inherit;font-size:11px;line-height:1.6;cursor:pointer;border-radius:4px;vertical-align:baseline}
.copy-btn:hover{background:rgba(64,128,255,.12)}
