/* ============================================================================
   Apple Developer 风格覆盖层（2026-11 · CAPS 1.12.x）
   放在文件最后，用同优先级后置覆盖前面的 fintech 皮肤。
   原则：大留白、发丝线、克制色、圆角胶囊、字号层级拉开、几乎不用阴影。
   ========================================================================== */
:root{
  --ink:#1d1d1f; --ink-2:#1d1d1f; --muted:#6e6e73; --muted-2:#86868b;
  --line:#d2d2d7; --line-2:#f0f0f2; --bg:#f5f5f7; --white:#fff;
  --accent:#0071e3; --accent-d:#0071e3; --accent-soft:#eaf2fd;
  --green:#1d9d63; --amber:#b25000; --red:#d70015; --violet:#5e5ce6;
  --r:18px; --r-sm:12px;
  --sh-1:0 0 0 1px rgba(0,0,0,.04);
  --sh-2:0 4px 24px -8px rgba(0,0,0,.12);
}
body{background:var(--bg);color:var(--ink);font-size:14px;letter-spacing:-.01em;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif}

/* ---------- 顶栏：半透明毛玻璃 + 发丝线 ---------- */
.topbar{background:rgba(251,251,253,.86);backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)!important;
  height:52px}
.topbar .bt,.topbar .t1{font-size:15px;font-weight:600;letter-spacing:-.02em}
.topbar .bs,.topbar .t2{font-size:10px;letter-spacing:.14em;color:var(--muted-2);font-weight:500}
.ver{font-size:10px;color:var(--muted-2);font-weight:500}

/* ---------- 侧栏：浅灰底、无分割线、胶囊选中 ---------- */
.console{min-height:calc(100vh - 52px)}
.sidebar{width:228px;flex:0 0 228px;background:#fbfbfd;border-right:none;padding:18px 14px}
.navlabel{font-size:11px;font-weight:600;color:var(--muted-2);letter-spacing:.02em;padding:8px 12px 6px}
.navitem{font-size:13.5px;color:#424245;border-radius:980px;padding:9px 14px;gap:10px;font-weight:400}
.navitem:hover{background:rgba(0,0,0,.05);color:var(--ink)}
.navitem.on{background:var(--ink);color:#fff;font-weight:500}
.navitem.on .ico{opacity:1}
.navitem .ico{width:16px;font-size:13px;opacity:.6}
.navitem .badge{background:var(--accent);color:#fff;font-size:10px;font-weight:600}
.sidecard{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:16px 18px;box-shadow:none}
.sidecard .t{font-size:11.5px;color:var(--muted);font-weight:500}
.sidecard .v{font-size:24px;font-weight:600;letter-spacing:-.03em;margin:6px 0 4px}
.sidecard .s{font-size:11px;color:var(--muted-2)}

/* ---------- 内容区：更宽留白 ---------- */
.content{padding:36px 44px 80px;max-width:1240px}
.pagetop{margin-bottom:28px;align-items:flex-start}
.pagetop h1{font-size:32px;line-height:1.12;font-weight:600;letter-spacing:-.025em;color:var(--ink)}
.pagetop h2{font-size:26px;font-weight:600;letter-spacing:-.02em}
.pagetop p{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.6;max-width:640px}

/* ---------- 卡片 ---------- */
.card{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:24px;
  box-shadow:none}
.card-h{font-size:14px;font-weight:600;letter-spacing:-.01em;margin-bottom:16px}
.card-h .muted,.card-h span{font-weight:400}

/* ---------- 数字卡 ---------- */
.kpis{gap:14px;margin-bottom:24px}
.kpi{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:20px 22px;box-shadow:none}
.kpi .k,.kpi .lb{font-size:11.5px;color:var(--muted);font-weight:500;letter-spacing:.01em}
.kpi .v{font-size:34px;font-weight:600;letter-spacing:-.035em;margin:8px 0 4px;font-variant-numeric:tabular-nums}
.kpi .v small{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px;letter-spacing:0}
.kpi .ft,.kpi .muted{font-size:11.5px;color:var(--muted-2)}

/* ---------- 按钮：胶囊 ---------- */
.btn{border-radius:980px;font-size:13px;padding:9px 18px;font-weight:500;letter-spacing:-.01em;
  border:1px solid transparent;transition:background .18s,color .18s,border-color .18s}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:#0077ed}
.btn.ghost{background:rgba(0,0,0,.05);color:var(--ink)}
.btn.ghost:hover{background:rgba(0,0,0,.09)}
.btn.b-xs{padding:5px 12px;font-size:11.5px}

/* ---------- 输入 ---------- */
input,select,textarea{font-size:13.5px}
.uin,input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{
  border-radius:12px;border:1px solid var(--line);background:#fff;padding:10px 13px;color:var(--ink)}
input:focus,select:focus,textarea:focus,.uin:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(0,113,227,.15)}
.searchbox{border-radius:980px;border:1px solid var(--line);background:#fff;padding:8px 14px}
.searchbox.lg{height:46px}

/* ---------- 表格：发丝线、行高更大 ---------- */
.tbl{font-size:13px;border-collapse:separate;border-spacing:0}
.tbl thead th{font-size:11.5px;font-weight:500;color:var(--muted);letter-spacing:.01em;
  border-bottom:1px solid var(--line-2);padding:9px 12px;background:transparent}
.tbl tbody td{padding:12px 12px;border-bottom:1px solid var(--line-2);line-height:1.45}
.tbl tbody tr:hover{background:#fafafc}
.tbl tbody tr:last-child td{border-bottom:none}
.tblwrap{border-radius:14px;overflow:auto}
.num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ---------- 标签 ---------- */
.tag,.chipf{border-radius:980px;font-size:11px;font-weight:500;padding:3px 10px;border:none}
.tag.ok{background:rgba(29,157,99,.12);color:#0f7a4a}
.tag.warn{background:rgba(178,80,0,.12);color:#8a3d00}
.tag.err,.tag.bad{background:rgba(215,0,21,.1);color:#b00014}
.tag.neutral{background:rgba(0,0,0,.06);color:var(--muted)}
.pill{background:#fff;border:1px solid var(--line);border-radius:980px;font-size:11.5px;
  padding:6px 13px;color:var(--muted)}
.pill .dot{background:var(--green)}

/* ---------- 弹窗 / 抽屉 ---------- */
.modal-mask{background:rgba(0,0,0,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal{border-radius:20px;padding:26px 28px;box-shadow:0 30px 80px -20px rgba(0,0,0,.35);border:none}
.modal h3{font-size:19px;font-weight:600;letter-spacing:-.02em}
.modal p{font-size:12.5px;color:var(--muted);line-height:1.6}
.drawer{width:560px;box-shadow:-24px 0 60px -30px rgba(0,0,0,.3)}
.drawer-mask{background:rgba(0,0,0,.28)}

/* ---------- 商品卡 ---------- */
.pcard{border-radius:18px;border:1px solid rgba(0,0,0,.07);padding:20px;box-shadow:none;
  transition:border-color .18s,transform .18s}
.pcard:hover{transform:translateY(-1px);border-color:rgba(0,0,0,.14);box-shadow:0 8px 28px -18px rgba(0,0,0,.25)}
.pcard .nm{font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.pcard .price{font-size:19px;font-weight:600;letter-spacing:-.03em}
.pgrid{grid-template-columns:repeat(auto-fill,minmax(266px,1fr));gap:18px}
.catbtn{border-radius:10px;font-size:13px;color:#424245}
.catbtn.on{background:var(--ink);color:#fff}
.catbtn.on .n{color:rgba(255,255,255,.7)}
.catrail{border:none;background:transparent;padding:0 8px 0 0}

/* ---------- 步骤条 / 动线 ---------- */
.step b{font-weight:500}
.step.done .sd{background:var(--green);box-shadow:0 0 0 1px var(--green)}
.step.cur .sd{background:var(--accent);box-shadow:0 0 0 4px rgba(0,113,227,.16)}
.ev b{font-weight:600}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18);border:4px solid transparent;background-clip:content-box;border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3);background-clip:content-box}

/* ---------- 登录页 ---------- */
.login-left{border-right:none;background:#fff}
.login-left:before{opacity:.6}
.lg-hero h1{font-size:52px;letter-spacing:-.035em;font-weight:600;line-height:1.08}
.lg-hero h1 em{color:var(--accent)}
.login-card h2{font-size:30px;letter-spacing:-.03em;font-weight:600}
.field input{border-radius:12px;padding:12px 14px;font-size:14px}


/* ---------- Logo 标记 ---------- */
.logo-mark{width:30px;height:30px;border-radius:9px;display:block;flex:0 0 30px}
.logo-mark.lg{width:34px;height:34px;border-radius:10px;flex:0 0 34px}
.logo-mark.sm{width:24px;height:24px;border-radius:7px;flex:0 0 24px}
.topbar .brand,.lg-brand{gap:11px}

/* ============================================================================
   采购单详情抽屉 · Apple 风格重构
   ========================================================================== */
.drawer{width:640px;max-width:96vw;border-radius:24px 0 0 24px;display:flex;flex-direction:column;
  box-shadow:-32px 0 80px -40px rgba(0,0,0,.35)}
.dh2{padding:26px 32px 22px;border-bottom:1px solid #f0f0f2}
.dh2-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.dh2-no{font-size:11.5px;color:var(--muted-2);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.dh2-top .tag{margin-left:2px}
.dh2-top .xbtn{margin-left:auto;width:28px;height:28px;border-radius:50%;background:#f5f5f7;
  color:#6e6e73;font-size:13px;display:grid;place-items:center;border:none;cursor:pointer}
.dh2-top .xbtn:hover{background:#ebebef;color:#1d1d1f}
.dh2-title{font-size:21px;line-height:1.3;font-weight:600;letter-spacing:-.022em;margin:0 0 12px}
.dh2-amt{font-size:32px;font-weight:600;letter-spacing:-.035em;font-variant-numeric:tabular-nums;line-height:1.1}
.dh2-amt span{display:block;font-size:12.5px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:6px}
.dh2-meta{font-size:12.5px;color:var(--muted);margin-top:14px}
.dh2-sep{margin-left:14px;color:var(--muted-2)}

.db2{flex:1;overflow:auto;padding:6px 32px 28px}
.sec{padding:22px 0;border-bottom:1px solid #f0f0f2}
.sec:last-child{border-bottom:none}
.sec h4{font-size:11.5px;font-weight:600;color:var(--muted-2);letter-spacing:.06em;
  text-transform:uppercase;margin:0 0 14px}
.banner-warn{background:#fbf7ee;border:1px solid #f0e2c4;color:#7a5a12;border-radius:12px;
  padding:10px 14px;font-size:12.5px;margin-top:16px}

/* 瘦进度条 */
.pg-bar{display:flex;gap:5px}
.pg-bar i{flex:1;height:5px;border-radius:99px;background:#ececf0;display:block}
.pg-bar i.done{background:#1d9d63}
.pg-bar i.cur{background:var(--accent)}
.pg-bar i.dead{background:#d9d9de}
.pg-meta{display:flex;align-items:baseline;margin-top:10px;font-size:12.5px;color:var(--muted)}
.pg-meta b{color:var(--ink);font-weight:600;font-size:13.5px}
.pg-meta span{margin-left:auto;color:var(--muted-2);font-size:11.5px}

/* 事实列表 */
.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;margin:0}
.fact dt{font-size:11.5px;color:var(--muted-2);margin-bottom:5px}
.fact dd{font-size:13.5px;color:var(--ink);margin:0;line-height:1.5}
.sel-flat{border:none;background:transparent;padding:0;font-size:13.5px;color:var(--accent);
  font-weight:500;cursor:pointer;max-width:100%}
.sel-flat:focus{outline:none;box-shadow:none}

/* 收货 / 发票 / 注释行 */
.ship-det{border:none;background:transparent;padding:0;border-radius:0}
.ship-det summary{font-size:13px;color:var(--accent);font-weight:500;padding:0}
.ship-det summary .sd-caret{color:var(--muted-2)}
.ship-tb{margin-top:14px}
.ship-tb th{font-size:11px;color:var(--muted-2);font-weight:500;text-transform:none;letter-spacing:0}
.ship-tb td{font-size:12.5px}
.muted-note{font-size:12.5px;color:var(--muted-2);margin:0}
.line-note{font-size:12.5px;color:#424245;line-height:1.6;margin-top:10px}
.row-btns{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.inv-line{display:flex;align-items:center;gap:12px;font-size:13px;padding:8px 0}
.inv-line span:first-of-type{color:var(--muted)}

/* 动线 */
.tl2{display:flex;flex-direction:column}
.tl2-row{display:grid;grid-template-columns:10px 1fr auto;gap:14px;padding:11px 0;
  border-bottom:1px solid #f4f4f6}
.tl2-row:last-child{border-bottom:none}
.tl2-dot{width:7px;height:7px;border-radius:50%;background:#c7c7cc;margin-top:7px}
.tl2-row:first-child .tl2-dot{background:var(--accent)}
.tl2-main b{font-size:13px;font-weight:500;display:block}
.tl2-main p{font-size:12px;color:var(--muted);margin:3px 0 0}
.tl2-at{font-size:11px;color:var(--muted-2);white-space:nowrap;font-variant-numeric:tabular-nums}

/* 底部操作 */
.df2{padding:18px 32px 22px;border-top:1px solid #f0f0f2;background:rgba(255,255,255,.9);
  backdrop-filter:blur(12px);display:flex;flex-direction:column;gap:10px}
.df2 .df-main{display:flex;gap:10px}
.df2 .df-main .btn{flex:1}
.df2 .df-sub,.df2 .df-foot{display:flex;gap:8px;flex-wrap:wrap}

/* 侧栏收窄一点 */
.sidebar{width:208px;flex:0 0 208px;padding:16px 12px}
.navitem{padding:8px 12px;font-size:13px}
.navlabel{padding:8px 12px 6px}

/* ---------- 进度：当前环节说明 + 全流程展开 ---------- */
.pg-now{margin-top:18px;padding:0}
.pg-now-h{display:flex;align-items:baseline;gap:10px}
.pg-now-h b{font-size:15px;font-weight:600;letter-spacing:-.015em}
.pg-now-h span{margin-left:auto;font-size:11.5px;color:var(--muted-2)}
.pg-now p{font-size:13.5px;color:#424245;line-height:1.7;margin:8px 0 0;max-width:56ch}
.pg-next{font-size:12.5px;color:var(--accent);margin-top:9px}
.pg-all{margin-top:14px}
.pg-all summary{font-size:12.5px;color:var(--accent);cursor:pointer;list-style:none}
.pg-all summary::-webkit-details-marker{display:none}
.pg-all summary:before{content:"＋ ";font-size:11px}
.pg-all[open] summary:before{content:"− "}
.pg-ol{list-style:none;margin:14px 0 0;padding:0;counter-reset:pg}
.pg-ol li{padding:12px 0;border-bottom:1px solid #f4f4f6}
.pg-ol li:last-child{border-bottom:none}
.pg-li-h{display:flex;align-items:baseline;gap:10px}
.pg-li-n{font-size:11px;color:var(--muted-2);font-variant-numeric:tabular-nums;width:18px}
.pg-li-h b{font-size:13.5px;font-weight:600}
.pg-li-h em{margin-left:auto;font-size:11px;font-style:normal;color:var(--muted-2)}
.pg-ol li.is-done .pg-li-h em{color:#0f7a4a}
.pg-ol li.is-cur .pg-li-h em{color:var(--accent)}
.pg-ol li p{font-size:12.5px;color:var(--muted);line-height:1.6;margin:6px 0 0 28px}

/* ---------- 逐环节记录（竖向时间线） ---------- */
.flow{position:relative;padding-left:0}
.fl-row{position:relative;display:grid;grid-template-columns:18px 1fr;gap:14px;padding-bottom:20px}
.fl-row:last-child{padding-bottom:0}
.fl-row:before{content:"";position:absolute;left:8px;top:16px;bottom:0;width:1px;background:#ececf0}
.fl-row:last-child:before{display:none}
.fl-dot{width:9px;height:9px;border-radius:50%;background:#d6d6db;margin-top:5px;position:relative;z-index:1}
.fl-row.done .fl-dot{background:#1d9d63}
.fl-row.cur .fl-dot{background:var(--accent);box-shadow:0 0 0 4px rgba(0,113,227,.14)}
.fl-row.dead .fl-dot{background:#c7c7cc}
.fl-body{min-width:0}
.fl-h{display:flex;align-items:baseline;gap:9px}
.fl-n{font-size:11px;color:var(--muted-2);font-variant-numeric:tabular-nums}
.fl-h b{font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.fl-h em{margin-left:auto;font-style:normal;font-size:11px;color:var(--muted-2);white-space:nowrap}
.fl-row.done .fl-h em{color:#0f7a4a}
.fl-row.cur .fl-h em{color:var(--accent)}
.fl-desc{font-size:12.5px;color:var(--muted);line-height:1.65;margin:6px 0 0;max-width:56ch}
.fl-ev{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.fl-ev li{display:grid;grid-template-columns:104px 1fr;gap:10px;font-size:12.5px;align-items:baseline}
.fl-at{color:var(--muted-2);font-size:11px;font-variant-numeric:tabular-nums}
.fl-t{color:#424245;line-height:1.55}
.fl-wait{font-size:12px;color:var(--muted-2);margin:6px 0 0}

/* ---------- 批量操作条 ---------- */
.batch-bar{position:sticky;top:64px;z-index:20;display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border:1px solid rgba(0,0,0,.07);
  border-radius:16px;padding:10px 16px;margin-bottom:18px;box-shadow:0 8px 30px -22px rgba(0,0,0,.4)}
.bb-n{font-size:12.5px;color:var(--muted)}
.bb-n b{color:var(--ink);font-size:14px}
.bb-sep{width:1px;height:18px;background:#e6e6ea}

/* ---------- 批量确认弹窗 ---------- */
.bc-body{max-height:46vh;overflow:auto}
.bc-list{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:7px}
.bc-list li{font-size:12.5px;color:#424245;padding:8px 12px;background:#f7f7f9;border-radius:10px}
.bc-sum{font-size:15px;font-weight:600;letter-spacing:-.02em;margin-top:6px}
.bc-warn{background:#fdf2f2;border:1px solid #f5d4d4;color:#b00014;border-radius:12px;
  padding:10px 14px;font-size:12.5px;margin:16px 0}
.bc-acts{display:flex;gap:10px;margin-top:18px}
.bc-acts .btn{flex:1}

/* ---------- 批量发货表格 ---------- */
.bs-head,.bs-row{display:grid;grid-template-columns:1fr 110px 120px 1.1fr;gap:10px;align-items:center}
.bs-head{font-size:11px;color:var(--muted-2);padding:10px 0 8px;border-bottom:1px solid #f0f0f2}
.bs-rows{max-height:44vh;overflow:auto}
.bs-row{padding:9px 0;border-bottom:1px solid #f5f5f7;font-size:12.5px}
.bs-row span em{display:block;font-style:normal;font-size:11px;color:var(--muted-2);margin-top:2px}
.bs-row select,.bs-row input{padding:7px 10px;font-size:12.5px;border-radius:9px;width:100%}

/* ---------- 内采专区 ---------- */
.zones{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}
.zone-chip{border:1px solid rgba(0,0,0,.1);background:#fff;border-radius:980px;padding:7px 15px;
  font-size:12.5px;color:#424245;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.zone-chip i{font-style:normal;font-size:11px;color:var(--muted-2)}
.zone-chip:hover{border-color:rgba(0,0,0,.25)}
.zone-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.zone-chip.on i{color:rgba(255,255,255,.65)}
.zcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:16px 0 6px}
.zcard{border:1px solid rgba(0,0,0,.07);border-radius:16px;padding:18px 20px;background:#fff;cursor:pointer;
  transition:border-color .2s,transform .2s}
.zcard:hover{border-color:rgba(0,0,0,.16);transform:translateY(-1px)}
.z-h{display:flex;align-items:baseline;gap:8px}
.z-h b{font-size:15px;font-weight:600;letter-spacing:-.015em}
.z-h span{margin-left:auto;font-size:11.5px;color:var(--muted-2)}
.z-price{font-size:12.5px;color:var(--muted);margin-top:6px;font-variant-numeric:tabular-nums}
.z-samples{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.z-samples span{font-size:11.5px;color:#6e6e73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.z-more{font-size:11.5px;color:var(--accent);margin-top:12px}
.lnk{color:var(--accent);cursor:pointer}
.lnk:hover{text-decoration:underline}

/* ---------- 采购中心分页签 ---------- */
.ptabs{display:flex;align-items:center;gap:8px;margin:0 0 16px}
.ptab{border:1px solid rgba(0,0,0,.1);background:#fff;border-radius:980px;padding:7px 16px;
  font-size:12.5px;color:#424245;display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.ptab i{font-style:normal;font-size:11px;color:var(--muted-2)}
.ptab:hover{border-color:rgba(0,0,0,.22)}
.ptab.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ptab.on i{color:rgba(255,255,255,.6)}

/* ---------- 撤销条 / 关账 ---------- */
.undo-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:26px;z-index:80;display:flex;
  align-items:center;gap:12px;background:rgba(29,29,31,.94);color:#fff;border-radius:980px;
  padding:10px 12px 10px 20px;font-size:12.5px;box-shadow:0 18px 40px -18px rgba(0,0,0,.5)}
.undo-bar .btn{background:rgba(255,255,255,.14);color:#fff}
.undo-bar .btn:hover{background:rgba(255,255,255,.24)}
.undo-x{background:none;border:none;color:rgba(255,255,255,.5);font-size:12px;cursor:pointer}
.close-row{display:flex;align-items:center;gap:12px;margin:12px 0}
.close-row label{width:56px;font-size:12.5px;color:var(--muted)}
.close-row input,.close-row select{flex:1;padding:9px 12px;border-radius:10px;border:1px solid var(--line)}
.close-list{margin-top:16px}
.close-list b{font-size:12px;color:var(--muted-2)}
.close-list ul{list-style:none;padding:0;margin:8px 0 0;max-height:150px;overflow:auto}
.close-list li{font-size:12px;color:#424245;padding:5px 0;border-bottom:1px solid #f4f4f6}

/* ---------- 成本维护页 ---------- */
.cost-in{width:100px;padding:6px 9px;font-size:12.5px;border-radius:9px;border:1px solid var(--line);
  text-align:right;font-variant-numeric:tabular-nums}
.cost-in:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,113,227,.12)}

/* ---------- 教程：插图 / 互动 ---------- */
#tourBox{width:360px}
.tb-art{margin-bottom:12px}
.tb-svg{width:100%;height:74px;display:block}
#tourBox h4{font-size:16px;font-weight:600;letter-spacing:-.015em;margin:4px 0 6px}
#tourBox p{font-size:13px;color:#424245;line-height:1.7}
.tour-tap{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px;
  animation:tapPulse 1.6s ease-in-out infinite}
@keyframes tapPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,113,227,.22)}50%{box-shadow:0 0 0 8px rgba(0,113,227,0)}}
.tour-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.tpk{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff;text-align:left;cursor:pointer}
.tpk:hover{border-color:rgba(0,0,0,.2);transform:translateY(-1px)}
.tpk-art{display:block;margin-bottom:8px}
.tpk-art .tb-svg{height:56px}
.tpk b{display:block;font-size:13.5px;font-weight:600;margin-bottom:4px}
.tpk em{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.5;display:block}

/* 教程遮罩不能吃掉点击：只做视觉定位，不拦截鼠标 */
#tourMask{pointer-events:none;background:transparent}
.tour-tap{position:relative;z-index:1001}
.tour-hl{position:relative;z-index:1001}

/* ---------- 教程：进度点 / 朗读 / 庆祝 ---------- */
.tb-k{display:flex;align-items:center;gap:10px}
.tb-idx{font-size:11px;color:var(--muted-2)}
.tb-dots{display:flex;gap:4px;margin-left:auto}
.tb-dots i{width:5px;height:5px;border-radius:50%;background:#e0e0e5;display:block}
.tb-dots i.on{background:#1d9d63}
.tb-dots i.cur{background:var(--accent);transform:scale(1.4)}
#tbSpeak{margin-left:6px}
.voice-toggle{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#424245;margin:4px 0 0;cursor:pointer}
.voice-toggle input{width:auto}
.confetti{position:fixed;top:-12px;width:7px;height:11px;border-radius:2px;z-index:9999;
  animation:confFall 1.6s cubic-bezier(.3,.7,.6,1) forwards}
@keyframes confFall{to{transform:translate(var(--dx),88vh) rotate(420deg);opacity:.15}}

/* ---------- 教程聚光：压暗背景、只框出操作区域 ---------- */
#tourSpot{position:fixed;z-index:1000;pointer-events:none;display:none;
  border-radius:14px;border:2px solid rgba(0,113,227,.9);
  box-shadow:0 0 0 9999px rgba(0,0,0,.52), 0 0 0 6px rgba(0,113,227,.16);
  transition:top .22s ease,left .22s ease,width .22s ease,height .22s ease;background:transparent}
#tourBox{z-index:1002}
.tour-tap{position:relative;z-index:1001}
.tour-hl{z-index:1001}

/* 教程进行中：弹窗要盖在压暗层之上，教程卡片再盖在弹窗之上 */
.modal-mask.on{z-index:1005}
#tourSpot{z-index:1000}
#tourBox{z-index:1008}

/* ---------- OA 需求确认 ---------- */
.oa-head,.oa-row{display:grid;grid-template-columns:1fr 300px 80px;gap:12px;align-items:center}
.oa-head{font-size:11px;color:var(--muted-2);padding:12px 0 8px;border-bottom:1px solid #f0f0f2}
.oa-rows{max-height:46vh;overflow:auto}
.oa-row{padding:10px 0;border-bottom:1px solid #f5f5f7}
.oa-desc{font-size:12.5px;color:#1d1d1f}
.oa-desc em{display:block;font-style:normal;font-size:11px;color:var(--muted-2);margin-top:3px}
.oa-row select,.oa-row input{padding:7px 10px;font-size:12.5px;border-radius:9px;border:1px solid var(--line)}

/* ---------- 疑似匹配复核 ---------- */
.sp-head,.sp-row{display:grid;grid-template-columns:1fr 1fr 160px;gap:12px;align-items:center}
.sp-head{font-size:11px;color:var(--muted-2);padding:12px 0 6px;border-bottom:1px solid #f0f0f2}
.sp-rows{max-height:52vh;overflow:auto}
.sp-row{padding:10px 0;border-bottom:1px solid #f5f5f7}
.sp-l b,.sp-r b{display:block;font-size:12.5px;font-weight:500;color:#1d1d1f}
.sp-l em,.sp-r em{font-style:normal;font-size:11px;color:var(--muted-2)}
.sp-a{display:flex;gap:6px;justify-content:flex-end}

/* ---------- 工作台 ---------- */
.kb-sec{display:flex;align-items:baseline;gap:10px;margin:20px 0 10px}
.kb-sec b{font-size:14px;font-weight:600;color:#1d1d1f}
.kb-sec .muted{font-size:11.5px;color:var(--muted-2)}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.kb-card{background:#fff;border:1px solid #ececf0;border-radius:16px;padding:16px 18px;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.kb-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px -18px rgba(0,0,0,.28);border-color:#dcdce2}
.kb-card.warn{border-color:#f3d9b0;background:linear-gradient(180deg,#fffdf8,#fff)}
.kb-n{font-size:30px;font-weight:600;letter-spacing:-.03em;color:#1d1d1f;line-height:1.1}
.kb-l{font-size:12.5px;color:#1d1d1f;margin-top:6px;font-weight:500}
.kb-h{font-size:11px;color:var(--muted-2);margin-top:4px}

/* ---------- 供应商档案 ---------- */
.sup-profile{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:8px;align-items:end;
  padding:12px 0 14px;border-bottom:1px solid #f0f0f2;margin-bottom:6px}
.sup-profile label{display:block;font-size:11px;color:var(--muted-2)}
.sup-profile input{width:100%;height:32px;border:1px solid #ececf0;border-radius:8px;padding:0 8px;font-size:12px}

/* ---------- 侧栏分组与说明 ---------- */
.navlabel{font-size:10.5px;letter-spacing:.06em;text-transform:none;color:#9a9aa2;
  margin:14px 0 4px;padding-left:10px;font-weight:500}
.navitem .nvtxt{display:flex;flex-direction:column;line-height:1.25;text-align:left}
.navitem .nvtxt i{font-style:normal;font-size:10px;color:#a0a0a8;margin-top:1px}
.navitem.on .nvtxt i{color:#7a7a82}
.navitem{align-items:center}

/* ---------- OA 卡片信息条 ---------- */
.oa-meta{padding:10px 2px 12px;border-bottom:1px solid #f4f4f6;margin-bottom:2px}
.oa-facts{font-size:11.5px;color:#6b7280}
.oa-wait{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:20px;
  background:#fff6e5;color:#a86400;font-size:10.5px}
.oa-tl{margin-top:7px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:#424245}
.oa-tl i{font-style:normal;color:#9a9aa2;margin-right:5px;font-size:10.5px}
.oa-arrow{color:#c7c7cc;font-size:11px}
.oa-cmt{margin-top:6px;font-size:11.5px;color:#6b7280}

/* ---------- OA 本地留痕 ---------- */
.oa-hist{margin-top:9px;padding-top:8px;border-top:1px dashed #f0f0f2}
.oa-hrow{font-size:11px;color:#6b7280;line-height:1.9}
.oa-hrow i{font-style:normal;color:#9a9aa2;margin-right:8px;font-variant-numeric:tabular-nums}

/* ---------- 分段切换 ---------- */
.seg{display:inline-flex;background:#f0f0f3;border-radius:10px;padding:3px;gap:2px}
.seg-b{border:none;background:transparent;padding:6px 14px;border-radius:8px;font-size:12.5px;
  color:#5f6368;cursor:pointer;font-family:inherit}
.seg-b.on{background:#fff;color:#1d1d1f;font-weight:500;box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* ---------- OA 空状态示意 ---------- */
.oa-empty{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;background:#fff;
  border:1px solid #ececf0;border-radius:20px;padding:26px 28px}
@media (max-width:900px){.oa-empty{grid-template-columns:1fr}}
.oa-badge{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;padding:4px 11px;
  border-radius:999px;background:#f4f4f6;color:#5f6368}
.oa-badge.on{background:#eaf7ef;color:#1c7a4a}
.oa-badge.off{background:#fff4e5;color:#a86400}
.oa-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.oa-badge i{font-style:normal;color:#8a8a92;margin-left:4px}
.oa-empty h2{font-size:20px;font-weight:600;letter-spacing:-.01em;margin:14px 0 8px;color:#1d1d1f}
.oa-lead{font-size:13px;line-height:1.8;color:#5f6368;margin:0}
.oa-lead b{color:#1d1d1f;font-weight:600}
.oa-steps{display:flex;align-items:stretch;gap:8px;margin-top:20px}
.oa-step{flex:1;background:#fafafc;border:1px solid #f0f0f2;border-radius:12px;padding:12px 12px 13px}
.oa-step b{display:block;font-size:12.5px;color:#1d1d1f;margin:6px 0 3px}
.oa-step span{font-size:11px;color:#8a8a92;line-height:1.55;display:block}
.oa-n{width:20px;height:20px;border-radius:50%;background:#0071e3;color:#fff;font-size:11px;
  display:flex;align-items:center;justify-content:center;font-weight:600}
.oa-arrow{display:flex;align-items:center;color:#c7c7cc;font-size:14px}
.oa-mock{background:#fbfbfd;border:1px solid #ececf0;border-radius:14px;padding:14px 16px}
.oa-mock-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.oa-mock-t{font-size:12.5px;font-weight:600;color:#1d1d1f}
.oa-mock-tag{font-size:10px;background:#fff6e5;color:#a86400;padding:2px 8px;border-radius:999px}
.oa-mock-row{font-size:11.5px;color:#424245;line-height:1.95}
.oa-mock-row i{font-style:normal;color:#9a9aa2;display:inline-block;width:44px}
.oa-mock-foot{margin-top:10px;padding-top:9px;border-top:1px dashed #e6e6ea;font-size:10.5px;color:#8a8a92}
.oa-mock-cap{margin-top:8px;font-size:10.5px;color:#a0a0a8;text-align:center}

/* ---------- 场景分区卡 ---------- */
.zone-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.zone-card{background:#fff;border:1px solid #ececf0;border-radius:14px;padding:12px 14px;cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.zone-card:hover{transform:translateY(-1px);border-color:#dcdce2;box-shadow:0 8px 22px -18px rgba(0,0,0,.3)}
.zone-card.on{border-color:#0071e3;background:#f7fbff}
.zone-card b{display:block;font-size:12.5px;color:#1d1d1f;font-weight:600}
.zone-card span{display:block;font-size:10.5px;color:#8a8a92;margin-top:2px;line-height:1.5}
.zone-card i{display:block;font-style:normal;font-size:10.5px;color:#9a9aa2;margin-top:6px}

/* OA 目录外提示 */
.oa-tip{font-size:10.5px;color:#a86400;margin-top:3px;line-height:1.5}

/* 开放平台 */
.ckgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;margin-top:8px}
.ck{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#1d1d1f}
.ck i{font-style:normal;font-size:10.5px}
.keybox{margin:12px 0;padding:12px 14px;background:#f7f7f9;border:1px solid #ececf0;border-radius:10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all;color:#1d1d1f}

/* 问一句 */
.ask-bar{display:flex;gap:10px;align-items:center}
.ain{flex:1;padding:12px 15px;border:1px solid #dcdce2;border-radius:12px;font-size:14px;
  font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}
.ain:focus{border-color:#0071e3;box-shadow:0 0 0 3px rgba(0,113,227,.12)}
.ask-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ask-chip{font-size:11.5px;color:#424245;background:#f7f7f9;border:1px solid #ececf0;
  border-radius:999px;padding:6px 12px;cursor:pointer;transition:.15s}
.ask-chip:hover{background:#fff;border-color:#dcdce2;color:#0071e3}
.ask-ans{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f2}
.ask-a{font-size:15px;line-height:1.75;color:#1d1d1f;font-weight:500}
.ask-scope{font-size:10.5px;color:#a1a1a6;margin-top:6px}

/* ============ 授权采购：场景化首页 ============ */
.scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:1080px){.scene-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.scene-grid{grid-template-columns:1fr}}
.scene-card{display:flex;flex-direction:column;background:#fff;border:1px solid #ececf0;border-radius:18px;
  padding:18px 18px 16px;cursor:pointer;overflow:hidden;position:relative;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,border-color .22s}
.scene-card:hover{transform:translateY(-3px);border-color:#dcdce2;box-shadow:0 22px 46px -30px rgba(0,0,0,.45)}
.scene-art-wrap{height:78px;display:flex;align-items:center;color:#0071e3;opacity:.9;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s}
.scene-card:hover .scene-art-wrap{transform:translateY(-2px) scale(1.03);opacity:1}
.scene-art{width:96px;height:auto;display:block}
.scene-art-sm{width:64px;color:#0071e3;flex:0 0 64px}
.scene-body b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em;color:#1d1d1f;margin-top:6px}
.scene-body > span{display:block;font-size:11.5px;color:#86868b;line-height:1.6;margin-top:4px;min-height:36px}
.scene-meta{font-size:10.5px;color:#a1a1a6;margin-top:8px}
.scene-picks{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.scene-picks i{font-style:normal;font-size:10px;color:#5f6368;background:#f6f6f8;border-radius:6px;padding:2px 7px}
.scene-all{margin-top:16px;text-align:center;font-size:12.5px;color:#0066cc;cursor:pointer;padding:12px}
.scene-all:hover{text-decoration:underline}
@keyframes sceneIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.scene-card{animation:sceneIn .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*38ms)}
.scene-card.dim{background:#fbfbfd}
.scene-card.dim .scene-art-wrap{color:#b9b9c0;opacity:.75}
.scene-picks i.none{color:#a1a1a6;background:#f2f2f4}
/* 批量上架条 + 场景常买 */
.bulk-bar{display:flex;align-items:center;gap:12px;background:#f7fbff;border:1px solid #d8e8fb;
  border-radius:12px;padding:10px 14px;margin:-4px 0 14px;font-size:12.5px;color:#1d1d1f}
.bulk-bar span{color:#5f6368}
.scene-hot{font-size:10.5px;color:#0071e3;margin-top:6px;line-height:1.5}

/* ============ 商品总库：多级导航 ============ */
.cat-layout{display:grid;grid-template-columns:216px 1fr;gap:18px;align-items:start}
@media(max-width:980px){.cat-layout{grid-template-columns:1fr}}
.cat-tree{background:#fff;border:1px solid #ececf0;border-radius:16px;padding:10px 8px;
  position:sticky;top:16px;max-height:calc(100vh - 120px);overflow:auto}
.tree-head{font-size:10.5px;color:#a1a1a6;letter-spacing:.06em;padding:6px 10px 8px}
.tree-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;cursor:pointer;
  font-size:12.5px;color:#1d1d1f;transition:background .14s}
.tree-row:hover{background:#f7f7f9}
.tree-row.on{background:#f0f6ff;color:#0071e3;font-weight:600}
.tree-row .tn{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tree-row i{font-style:normal;font-size:10.5px;color:#a1a1a6}
.tree-sub{display:flex;gap:8px;padding:6px 10px 6px 22px;font-size:11.5px;color:#5f6368;
  border-radius:8px;cursor:pointer}
.tree-sub:hover{background:#f7f7f9}
.tree-sub.on{background:#f0f6ff;color:#0071e3;font-weight:600}
.tree-sub i{font-style:normal;margin-left:auto;color:#a1a1a6;font-size:10px}
.cat-banner{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #ececf0;
  border-radius:18px;padding:18px 22px;margin-bottom:14px}
.cb-art{width:82px;color:#0071e3;flex:0 0 82px}
.cb-body b{display:block;font-size:19px;letter-spacing:-.02em}
.cb-body span{display:block;font-size:12px;color:#86868b;margin-top:4px}
.cb-stats{margin-left:auto;display:flex;gap:22px;text-align:right}
.cb-stats b{display:block;font-size:19px;font-weight:600;letter-spacing:-.02em}
.cb-stats i{font-style:normal;font-size:10.5px;color:#a1a1a6}
.chips-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.pmeta2{display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:#86868b;margin:2px 0 8px}
.pmeta2 b{color:#1d1d1f}
.pager{display:flex;align-items:center; justify-content:center;gap:14px;margin:18px 0 6px;font-size:11.5px;color:#86868b}

/* 商品总库：防晃动（banner 固定高度 / 卡片等高 / 骨架屏） */
.cat-banner{min-height:104px}
.cat-banner .cb-body{flex:1;min-width:0}
.pcard.fixed{display:flex;flex-direction:column;min-height:238px}
.pcard.fixed .top{align-items:flex-start}
.p-top-text{min-width:0;flex:1}
.pcard.fixed .nm{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:34px;line-height:1.35}
.pcard.fixed .sp{min-height:16px}
.pcard.fixed .p-foot{margin-top:auto;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.p-acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pgrid-skel{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pgrid-skel .skel{height:238px;background:#f2f2f4;border-radius:16px;animation:skelPulse 1.3s ease-in-out infinite}
@keyframes skelPulse{0%,100%{opacity:.65}50%{opacity:1}}
.cat-main{min-height:520px}
.oa-ship{font-size:11.5px;color:#424245;background:#f7f9fc;border:1px solid #e6ecf5;
  border-radius:8px;padding:7px 10px;margin:8px 0 6px}
.oa-ship.warn{background:#fff8e6;border-color:#ffe9b3;color:#a86400}
.shop-topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #ececf0;
  border-radius:12px;padding:9px 14px;margin-bottom:12px}
.stb-note{font-size:11.5px;color:#86868b;flex:1;min-width:200px}

/* ---------- 部门预算计划：标准模板 / 红蓝灯 / 一键铺（2026-11 · 1.49） ---------- */
.bpreset{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 12px}
.bpreset>span{font-size:11.5px;color:var(--muted)}
.bchip{border:none;background:rgba(0,0,0,.05);color:var(--ink);border-radius:980px;
  font-size:12.5px;padding:7px 14px;cursor:pointer;font-family:inherit;
  transition:background .15s,transform .1s}
.bchip:hover{background:rgba(0,0,0,.09)}
.bchip:active{transform:scale(.97)}
.bchip.solid{background:var(--accent);color:#fff}
.bchip.solid:hover{background:#0077ed}
.bslide{display:flex;align-items:center;gap:12px;margin:2px 0 6px}
.bslide>span{font-size:11.5px;color:var(--muted);flex:0 0 64px}
.bslide input[type=range]{flex:1;accent-color:var(--accent);height:20px}
.bslide b{font-size:13px;width:56px;text-align:right;font-variant-numeric:tabular-nums}
.bnote{font-size:10.5px;color:var(--muted-2);margin-top:2px;line-height:1.3}
.bpct{display:flex;align-items:center;gap:3px}
.bpct .uin{width:62px;text-align:right;padding:5px 8px}
.bpct i{font-style:normal;font-size:11px;color:var(--muted-2)}
.uin.bamt,.uin.bq{width:150px;text-align:right}
.busebar{display:flex;align-items:center;gap:8px;min-width:150px}
.busebar>b{flex:1;height:6px;border-radius:99px;background:var(--line-2);overflow:hidden;display:block}
.busebar>b>i{display:block;height:100%;border-radius:99px;transition:width .25s ease}
.busebar>span{font-size:11px;color:var(--muted);width:38px;text-align:right;font-variant-numeric:tabular-nums}
.blamp{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:6px;
  vertical-align:1px;transition:background .2s}
.blampt{font-size:11.5px;color:var(--muted)}
.bfoot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;padding-top:14px;
  border-top:1px solid var(--line-2);font-size:11.5px;color:var(--muted)}
.bfoot b{font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}
.bfoot .over{color:var(--red)}
@media(max-width:900px){.bfoot{gap:10px}.bpreset{gap:6px}}
/* 表格内输入框统一高度（默认 37px 与紧凑列不搭，统一 32px 才齐） */
#bcatBody .uin,#view .uin.bq{height:32px;padding:6px 10px;font-size:13px}
#bcatBody .bpct .uin{padding:6px 8px}

/* ---------- OA 采购需求：搜索条 ---------- */
.oasearch{display:flex;align-items:center;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.oasearch .searchbox{flex:1;min-width:240px;max-width:470px;height:38px;font-size:13px}
.oasearch #oaCount{font-size:11.5px;color:var(--muted)}
.oasearch .searchbox{height:36px}
.oasearch .btn{height:36px;padding:0 16px;font-size:12.5px;display:inline-flex;align-items:center}
.oasearch .oa-clear{height:36px;padding:0 16px;font-size:12.5px}

/* ---------- 预算页：四步上手导览 + 名词说明弹窗 ---------- */
.bguide{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:18px 20px 14px;margin-bottom:14px;
  background-image:radial-gradient(circle at 100% 0,#f2f8ff 0,transparent 45%)}
.bguide.closed{padding:0;border:none;background:none;margin-bottom:10px}
.bguide-open{border:none;background:rgba(0,113,227,.08);color:var(--accent);border-radius:980px;
  font-size:12px;padding:7px 14px;cursor:pointer;font-family:inherit}
.bguide-open:hover{background:rgba(0,113,227,.14)}
.bguide-h{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.bguide-h b{font-size:14px;letter-spacing:-.01em}
.bguide-h span{font-size:11.5px;color:var(--muted)}
.bguide-x{margin-left:auto;border:none;background:none;color:var(--muted-2);font-size:11.5px;cursor:pointer;
  padding:4px 8px;border-radius:8px;font-family:inherit}
.bguide-x:hover{background:rgba(0,0,0,.05);color:var(--ink)}
.bsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.bstep{position:relative;display:flex;flex-direction:column;gap:2px}
.bstep:not(:first-child)::before{content:"";position:absolute;left:-24px;top:34px;width:24px;
  border-top:2px dashed #d2d2d7}
.bsvg{width:56px;height:56px;margin-bottom:8px}
.bs-n{position:absolute;left:43px;top:-3px;width:18px;height:18px;border-radius:99px;background:var(--ink);
  color:#fff;font-size:10.5px;font-style:normal;display:flex;align-items:center;justify-content:center;font-weight:600}
.bstep>b{font-size:13px;letter-spacing:-.01em}
.bstep>span{font-size:11.5px;color:var(--muted);line-height:1.55}
.bguide-f{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2);font-size:11.5px;color:var(--muted);
  display:flex;align-items:center;gap:8px}
.binfo{width:16px;height:16px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--muted);
  font-size:10px;line-height:1;cursor:pointer;padding:0;margin-left:4px;vertical-align:1px;font-family:inherit}
.binfo:hover{border-color:var(--accent);color:var(--accent)}
.binfo.big{width:auto;height:24px;padding:0 12px;border-radius:99px;border:none;background:var(--accent-soft);
  color:var(--accent);font-size:11.5px;vertical-align:0}
.binfo.big:hover{background:#dceafc}
.bmodal-h{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.bmodal-art{width:86px;height:66px;flex:0 0 86px}
.blist{margin:10px 0 0;padding-left:18px;font-size:12.5px;color:#424245;line-height:1.8}
.blist b{color:var(--ink)}
.bexample{margin-top:12px;background:#F5F9FF;border:1px solid #E3EDFB;border-radius:12px;padding:10px 12px;
  font-size:12px;color:#33475b;line-height:1.65}
@media(max-width:1000px){.bsteps{grid-template-columns:repeat(2,1fr);gap:18px}
  .bstep:nth-child(3)::before{display:none}}
@media(max-width:640px){.bsteps{grid-template-columns:1fr}.bstep::before{display:none}}
.bstep>span{font-size:12px;line-height:1.6}
.bstep:last-child{padding-right:6px}
.oa-keys{display:block;font-style:normal;font-size:10.5px;color:var(--muted-2);margin-top:3px;line-height:1.5}

/* ---------- 产品码：可一键复制（授权采购 / 商品总库 / OA 匹配结果） ---------- */
.pcode{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,0,0,.09);background:#f7f7fa;
  color:#424245;border-radius:8px;padding:2px 7px;font-size:10px;cursor:pointer;letter-spacing:.02em;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.5}
.pcode i{font-style:normal;font-size:9.5px;color:var(--accent)}
.pcode:hover{border-color:var(--accent);background:#eaf2fd;color:var(--accent)}
.pcode.sm{font-size:9.5px;padding:1px 6px;gap:4px}
.skuopt .cd{display:inline-flex;align-items:center;gap:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:10px;color:#6e6e73;background:#f2f3f6;border-radius:7px;padding:2px 6px;cursor:pointer}
.skuopt .cd b{color:var(--accent);font-weight:600;font-size:9.5px}
.skuopt .cd:hover{background:#e7f0fd;color:var(--accent)}
.buy-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#F7FAFF;border:1px solid #E3EDFB;
  border-radius:12px;padding:10px 12px}
.buy-code>b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.02em}
.buy-code>span{flex:1 1 100%;font-size:11.5px;color:#5a6b80;line-height:1.55}

/* ---------- 发货弹窗：批量粘贴快递单号 ---------- */
.shp-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 6px}
.shp-bulk .muted{font-size:11.5px;line-height:1.5}
.shp-bulk-panel{background:#F7FAFF;border:1px solid #E3EDFB;border-radius:12px;padding:10px 12px;margin:4px 0 10px}
.shp-bulk-panel textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;
  font-size:12.5px;line-height:1.6;resize:vertical;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);background:#fff}
.shp-bulk-panel textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,113,227,.12)}

/* ---------- OA 采购需求：筛选条（状态 + 法人主体） ---------- */
.oafilter{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:16px;padding:12px 16px;margin:0 0 12px}
.oaf-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.oaf-row+.oaf-row{margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2)}
.oaf-k{font-size:11.5px;color:var(--muted);flex:0 0 34px}
.oaf{border:none;background:rgba(0,0,0,.05);border-radius:980px;padding:5px 12px;font-size:12px;
  color:#424245;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;
  line-height:1.6;transition:background .14s,color .14s}
.oaf i{font-style:normal;font-size:10.5px;color:var(--muted-2);font-variant-numeric:tabular-nums}
.oaf:hover{background:rgba(0,0,0,.09)}
.oaf.on{background:var(--ink);color:#fff}
.oaf.on i{color:rgba(255,255,255,.72)}
@media(max-width:640px){.oaf-k{flex:0 0 auto}}

/* ---------- 订单抽屉：物流轨迹 ---------- */
.trkbox{margin:10px 0 4px;border:1px solid #E3EDFB;background:#F7FAFF;border-radius:12px;padding:10px 12px}
.trk-h{display:flex;align-items:center;gap:8px}
.trk-h b{font-size:12.5px}
.trk-h .muted{font-size:11.5px}
.trk-body{margin-top:6px}
.trk-now{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#33475b;margin-bottom:6px}
.trk-now b{font-size:12.5px;color:var(--ink)}
.trk-row{display:flex;gap:8px;font-size:11.5px;color:#5a6b80;line-height:1.6;padding:3px 0;
  border-top:1px dashed var(--line-2)}
.trk-row i{font-style:normal;color:var(--muted-2);flex:0 0 84px}

/* 表格默认铺满、不横向滚动：宁可换行也不让右边内容被藏起来（用户反馈多处看不见右侧可编辑列） */
.tblwrap{overflow-x:visible}
.tbl{width:100%;table-layout:auto}
.tbl thead th{white-space:normal}
.tbl tbody td{white-space:normal;word-break:break-word}
.tbl input.uin,.tbl select.uin{max-width:100%}
@media (max-width:1280px){
  .tbl{font-size:12.5px}
  .tbl tbody td{padding:10px 8px}
  .tbl thead th{padding:8px}
}

/* ---------- 授权采购：Apple 风卡片与规格 ---------- */
.pcard{border:0;border-radius:20px;background:#fff;padding:22px;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px -20px rgba(0,0,0,.18)}
.pcard:hover{transform:translateY(-2px);box-shadow:0 2px 6px rgba(0,0,0,.05),0 18px 40px -28px rgba(0,0,0,.28)}
.pcard .nm{font-size:15px;font-weight:600;letter-spacing:-.015em;line-height:1.35;color:#1d1d1f}
.pcard .sp{font-size:12px;color:#86868b;margin-top:4px}
.pcard .price{font-size:22px;font-weight:600;letter-spacing:-.03em;color:#1d1d1f}
.pcard .p-foot{gap:10px}
.pcard .code,.pcard .pcode{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11.5px;color:#0071e3;background:#F5F9FF;border:0;border-radius:999px;padding:3px 10px;cursor:pointer}
.pcard .code:hover,.pcard .pcode:hover{background:#EAF3FF}
.pcard select,.pcard .spec{font-size:12.5px;color:#1d1d1f;background:#F5F5F7;border:0;border-radius:999px;
  padding:7px 12px;outline:none;-webkit-appearance:none;appearance:none}
.pcard .btn{border-radius:999px;font-size:12.5px;padding:8px 16px}

/* ---------- 授权采购：图片优先的卡片（第 1 步） ---------- */
.pcard .top{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.pcard .pimg{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#F5F5F7;border-radius:16px;padding:10px}
.pcard .em{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
  background:#F5F5F7;border-radius:16px;font-size:42px}
.pcard .nm{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}

/* 无图占位与有图同高（不随内容缩放） */
.pcard .em{flex:0 0 auto;min-height:0}
.pcard .pimg{flex:0 0 auto}
/* 规格选择：底部抽屉式（第 3 步） */
.skuopt{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 18px;border-radius:14px;background:#F5F5F7;border:0;cursor:pointer;transition:background .15s}
.skuopt:hover{background:#EDEDF0}
.skuopt.on,.skuopt.sel{background:#EAF3FF;box-shadow:inset 0 0 0 1.5px #0071e3}
.skuopt .nm,.skuopt b{font-size:14px;font-weight:600;color:#1d1d1f}
.skuopt .pr{font-size:13px;color:#6e6e73;font-variant-numeric:tabular-nums}

/* 无图占位必须与图片同高，否则文字上下对不齐 */
.pcard .top > *:first-child{width:100%;aspect-ratio:4/3;height:auto}
.pcard .em{display:flex;align-items:center;justify-content:center;background:#F5F5F7;border-radius:16px;
  font-size:44px;line-height:1;padding:0;min-height:0}
.pcard .pimg{padding:10px;background:#F5F5F7;border-radius:16px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- 授权采购场景卡：Apple 风（纯色渐变块 + 居中大图标） ---------- */
.scene-card{border:0;border-radius:22px;background:#fff;padding:0;overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 30px -24px rgba(0,0,0,.22);
  transition:transform .18s ease,box-shadow .18s ease}
.scene-card:hover{transform:translateY(-3px);box-shadow:0 2px 8px rgba(0,0,0,.06),0 22px 44px -30px rgba(0,0,0,.3)}
.scene-card .scene-art-wrap{min-height:118px;border-radius:0;display:flex;align-items:center;justify-content:center}
.scene-card .scene-art-wrap span{font-size:46px;filter:saturate(1.05)}
.scene-card .scene-body{padding:16px 18px 18px}
.scene-card .scene-body b{font-size:15.5px;font-weight:600;letter-spacing:-.02em;color:#1d1d1f}
.scene-card .scene-body>span{display:block;font-size:12.5px;color:#86868b;margin-top:5px;line-height:1.55}
.scene-card .scene-meta{font-size:11.5px;color:#6e6e73;margin-top:10px}
.scene-card .scene-picks i{background:#F5F5F7;border-radius:999px;padding:3px 9px;font-size:10.5px;color:#6e6e73}
