/* ============ 订单 SKU 卡片样式（自动生成，别手改） ============
   来源：public/client.html 的 <style> 块，由 tools/sync-card.js 提取。
   客户端改了卡片样式后，重跑：node tools/sync-card.js
   生成时间：2026-11-10 03:59:11 ｜ 规则数：180
   ============================================================ */
.ocard .mono{font-family:Consolas,Menlo,monospace;letter-spacing:.2px;}
.ocard .pill{display:inline-block;font-size:11px;padding:2px 9px;border-radius:20px;background:#EEF3FA;color:#5C6E88;font-weight:600;}
.ocard .pill.blue{background:#E9F1FF;color:#005BFF;}
.ocard .pill.green{background:#E7F8EF;color:#0E9F5B;}
.ocard .pill.orange{background:#FFF4E5;color:#B96A00;}
/* OZON 卖家后台同款状态胶囊（与 OZON 系统里显示的颜色一致） */
  .pill.oz-wait{background:#FDF1DC;color:#C77700;}
/* 等待备货：琥珀 */
  .pill.oz-accept{background:#EAEDFF;color:#4A5BD6;}
/* 运往集运仓库的途中：靛蓝（对齐 OZON 后台） */
  .pill.oz-ready{background:#DFF3EE;color:#0E9384;}
/* 已准备发运：青绿 */
  .pill.oz-transit{background:#EBE7FA;color:#6D5BD0;}
/* 运输中：紫罗兰 */
  .pill.oz-signed{background:#E1F4E7;color:#23A15D;}
/* 已签收：绿 */
  .pill.oz-cancel{background:#EDEFF2;color:#8A94A3;}
.oref{padding:5px 10px;border:1px solid #DCE6F5;background:#fff;border-radius:8px;font-size:11.5px;cursor:pointer;color:#33415E;font-family:inherit;}
.oref:hover{border-color:var(--brand);color:var(--brand);}
.oref:disabled{opacity:.5;cursor:default;}
.oref-lbl{color:var(--brand);text-decoration:none;font-size:11.5px;margin-right:8px;font-weight:600;}
.oref-lbl:hover{text-decoration:underline;}
.lbl-btn{padding:6px 16px;border-radius:8px;font-size:12.5px;font-weight:700;cursor:pointer;border:1px solid transparent;font-family:inherit;letter-spacing:1px;}
.lbl-btn.on{background:#0B9E5B;color:#fff;border-color:#0B9E5B;}
.lbl-btn.on:hover{background:#08874D;}
.lbl-btn.off{background:#EEF2F8;color:#93A2BA;border-color:#DDE5F0;cursor:pointer;}
.lbl-btn.off:hover{color:#6B7C97;}
/* 2026-11-08：已准备发运但面单还没取下来的，用蓝色虚线表示"可点，点了现取" */
  .lbl-btn.wait{background:#F3F8FF;color:#1D6FE0;border-color:#2F7BFF;border-style:dashed;}
.lbl-btn.wait:hover{background:#E8F1FF;border-style:solid;}
.ocard .cd.ok{background:#EAF2FF;color:#1D6FE0;}
.ocard .cd.warn{background:#FFF4E5;color:#B96A00;}
.ocard .cd.urgent{background:#FDECEC;color:#E02D2D;animation:cdBlink 1s step-start infinite;}
.ocard .cd.over{background:#E02D2D;color:#fff;}
/* 卡片右侧永远有内容（内容比卡片框宽，靠横向滚动看），所以删除按钮放左下角——
     实测左侧「系统合同 ID」标签列到 y=122 就结束了，卡片高 177，下面有 55px 空白 */
  .demo-wrap > .ocard{--oc-pad:14px 20px 14px 16px;
    border-style:dashed;border-color:#EFCE7C;background:linear-gradient(180deg,#FFFDF7,#fff 60px);}
.ocards{display:flex;flex-direction:column;gap:10px;margin:12px 0 4px;overflow-x:auto;}
.ocard{display:flex;justify-content:space-between;gap:var(--oc-gap);padding:var(--oc-pad);border:1px solid #E3EBF7;border-radius:14px;background:#fff;align-items:flex-start;box-shadow:0 1px 3px rgba(20,50,110,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;width:100%;min-width:1150px;}
.ocard:hover{transform:translateY(-2px);box-shadow:0 10px 26px -10px rgba(0,80,200,.22);border-color:#C9D9F2;}
.ocard.off{opacity:.55;background:#FFF9F9;}
.oc-ck{align-self:center;flex:none;}
/* 勾选框 + 订单标识贴合成一组（贴紧卡片最左侧） */
  .oc-lead{display:flex;gap:10px;align-items:center;flex:none;align-self:center;}
/* 分区A：订单标识（系统合同 ID + 平台/渠道徽章） */
  .oc-tag{flex:none;min-width:150px;align-self:center;}
.tag-lb{font-size:10.5px;color:#93A2BC;font-weight:700;letter-spacing:.5px;}
.oc-tag .ct{font-size:14.5px;font-weight:800;color:#1F2E4D;margin-top:2px;}
.ch-b{display:inline-block;padding:1.5px 8px;border-radius:6px;font-size:10.5px;font-weight:800;letter-spacing:.3px;}
.ch-b.ozon{background:#E8F1FF;color:#0B57D0;border:1px solid #BBD4F7;}
.ch-b.ozof{background:#EEF2F8;color:#54657F;border:1px solid #D5DEEA;}
.ch-b.ogl{background:#F3EDFF;color:#6A2FE0;border:1px solid #D9C8FA;}
.ch-b.guoo{background:#FFF3E6;color:#D97706;border:1px solid #F5D5A8;}
.ch-b.atc{background:#E6FAF7;color:#0E9488;border:1px solid #AEE8E0;}
.ch-b.xy{background:#EAF9EC;color:#2E9E44;border:1px solid #B9E8C4;}
/* 2026-11-08 多平台：卡片左上角的平台标，颜色跟各平台品牌色走 */
  .ch-b.wb{background:#FDEAF8;color:#B0108F;border:1px solid #F3BEE8;}
.ch-b.yandex{background:#FFEDE7;color:#D2330B;border:1px solid #FAC5B3;}
/* 2026-11-08 扩充的第三方物流商配色（原有 ogl/guoo/atc/xy 保持不变） */
  .ch-b.cel{background:#E7EDFF;color:#1E40AF;border:1px solid #C3D3FA;}
.ch-b.cdek{background:#FFECEC;color:#C81E1E;border:1px solid #FBC9C9;}
.ch-b.bx{background:#FDEAF3;color:#B0176B;border:1px solid #F5C2DE;}
.ch-b.post{background:#E6F6FB;color:#0E7490;border:1px solid #B3E2EF;}
.ch-b.p5{background:#F1F8E4;color:#4D7C0F;border:1px solid #D6E9B4;}
.ch-b.dpd{background:#FDEEE7;color:#A3320B;border:1px solid #F7CDBD;}
/* 认不出的第三方：灰色，不冒充 OZON 官方 */
  .ch-b.other{background:#EEF2F8;color:#54657F;border:1px dashed #CBD7E6;}
/* ================= 采购入口（2026-11-08 v2） =================
     卡片上只留一个按钮。四个平台收进弹窗里——外面摆四个，客户还得先想
     "我到底该去哪个平台"，反而多一道决策。 */
  .oc-buy{flex:none;min-width:104px;align-self:center;border-left:1px dashed #E3EBF7;padding-left:12px;}
.oc-buy.one{display:block;}
/* 后台订单卡仍是四个小按钮（后台跨租户、不记忆链接，只做平台入口） */
  .oc-buy.multi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
.buy-btn{width:100%;padding:6px 2px;border-radius:8px;font-size:11.5px;font-weight:700;
    cursor:pointer;font-family:inherit;white-space:nowrap;line-height:1.15;transition:.15s;}
.b1688{border:1.5px solid #FF8A3D;background:#FFF6EF;color:#E85D00;}
.b1688:hover{background:#FFEEDD;}
.bpdd{border:1.5px solid #E0688C;background:#FFF5F8;color:#C2185B;}
.bpdd:hover{background:#FFEAF1;}
/* 已预报订单卡片：关灯效果（灰化） */
  .ocard.rd{filter:grayscale(.92);opacity:.72;background:#F7F9FC;border-color:#E5EBF4;}
.ocard.rd:hover{opacity:.92;}
/* 已预报里「仓库已打包完成」的卡：留在原地变灰，提示去已运输看发运进度（2026-11-05） */
  .ocard.packedgray{filter:grayscale(.92);opacity:.75;background:#F7F9FC;border-color:#E5EBF4;}
.ocard.packedgray:hover{opacity:.95;}
.ocard.packedgray .oc-img{filter:grayscale(1);}
.ocard.packedgray .buy-btn,.ocard.packedgray .oref{opacity:.5;}
.ocard.rd .oc-img{filter:grayscale(1);}
.ocard.rd .buy-btn,.ocard.rd .asn-btn,.ocard.rd .cx-btn,.ocard.rd .rm-btn,.ocard.rd .oref{opacity:.5;}
.ocard.rd .rd-edit{filter:none;background:linear-gradient(135deg,#6B7C93,#8A9BAF);color:#fff;}
.rd-badge{font-weight:800;}
.rd-svcs{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 2px;}
/* 已预报卡片的预报落实信息块 */
  .oc-dinfo{margin:7px 0 0;padding:7px 10px;border:1px dashed #D9E4F2;border-radius:9px;background:#F8FBFF;font-size:11px;color:#5C6E88;line-height:1.9;}
.oc-dinfo b{color:#E85D00;font-family:Consolas,monospace;}
.oc-dinfo .rd-svcs{margin:2px 0 0;}
/* 废弃订单的「恢复」按钮 */
  .rs-btn{padding:5px 10px;border:1.5px solid #7FBF9B;background:#F1FBF6;border-radius:8px;font-size:11.5px;font-weight:700;cursor:pointer;color:#0B7A55;font-family:inherit;white-space:nowrap;}
.rs-btn:hover{background:#E3F7EC;border-color:#3FA574;box-shadow:0 2px 8px rgba(11,122,85,.18);}
/* 国内快递单号：醒目特效块（点击去百度查轨迹） */
  .rd-exp-row{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px;}
.rd-exp{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 9px;border-radius:9px;
    background:linear-gradient(135deg,#EAF3FF 0%,#F7FBFF 55%,#E6F0FF 100%);
    border:1.5px solid #7FB4F5;box-shadow:0 2px 8px rgba(11,98,255,.14),inset 0 1px 0 #fff;
    text-decoration:none;position:relative;overflow:hidden;transition:transform .15s ease,box-shadow .18s ease,border-color .18s ease;}
.rd-exp::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#0B62FF,#37C4FF);}
.rd-exp::after{content:"";position:absolute;top:-60%;left:-40%;width:40%;height:220%;transform:rotate(20deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);animation:rdSheen 4.5s ease-in-out infinite;}
.rd-exp:hover{transform:translateY(-1px);border-color:#0B62FF;box-shadow:0 5px 16px rgba(11,98,255,.3),0 0 0 3px rgba(11,98,255,.1);}
.rd-exp:hover .rd-exp-go{opacity:1;transform:translateX(0);}
.rd-exp-ico{font-size:12px;color:#0B62FF;animation:rdPulse 2.4s ease-in-out infinite;filter:drop-shadow(0 0 4px rgba(11,98,255,.5));}
.rd-exp-lb{font-size:10px;font-weight:800;color:#5C86C4;letter-spacing:.5px;}
.rd-exp-no{font-family:Consolas,monospace;font-size:14px;font-weight:800;color:#0B2545;letter-spacing:.6px;
    text-shadow:0 1px 0 #fff,0 0 8px rgba(11,98,255,.18);}
.rd-exp-go{font-size:10px;font-weight:800;color:#0B62FF;opacity:0;transform:translateX(-4px);transition:.18s;white-space:nowrap;}
/* 废弃标签：系统废弃 */
  .disc-tag.admin{background:#FDECEE;color:#C93B3B;border:1px solid #F5C6CC;}
.disc-bar.admin{background:#FFF7F7;border:1px dashed #F3C7C7;color:#9B3A3A;}
/* 已运输卡片 */
  .disc-tag.shipped{background:#E9F9F1;color:#0B8A5B;border:1px solid #C9EDD9;}
.disc-bar.shipped{background:#F6FCF9;border:1px dashed #BFE7D2;color:#20684A;}
/* 已扣费：单独一行的特殊胶囊（金色），避免文字撑宽状态行把 SKU 卡挤得左右错位 */
  .disc-tag.charge{background:#FFF7E0;color:#B45309;border:1px solid #F0CE7C;}
/* 剩余额度：蓝色胶囊，跟在已扣费后面 */
  .disc-tag.quota{background:#EEF4FF;color:#1D6FE0;border:1px solid #C7DCFB;}
/* 已运输状态块 —— 宽度必须定死，否则内容长短会把左边商品列挤得左右错位。
     第一行文字对所有卡片都一样长，第二行放时间/扣费/余额，超出就在块内换行。 */
  .ocard > .disc-bar.shipped{flex:0 0 288px;width:288px;max-width:288px;box-sizing:border-box;align-self:flex-start;}
.disc-bar.shipped .shipped-foot{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:3px;}
.disc-bar.shipped .shipped-time{font-variant-numeric:tabular-nums;opacity:.72;font-weight:600;letter-spacing:.2px;}
.rt-btn{padding:5px 11px;border:1.5px solid #F3C7C7;background:#FFF8F8;border-radius:8px;font-size:11.5px;
    font-weight:700;cursor:pointer;color:#C93B3B;font-family:inherit;white-space:nowrap;}
.rt-btn:hover{background:#FDECEE;border-color:#E9A9A9;}
/* 废弃订单：标签与说明 */
  .disc-legend{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;padding:9px 12px;margin-bottom:12px;
    border:1px dashed #E3EBF7;border-radius:10px;background:#FAFCFF;font-size:11.5px;color:#7A8AA5;}
.disc-tag{display:inline-block;padding:1px 9px;border-radius:6px;font-size:10.5px;font-weight:800;line-height:1.9;}
.disc-tag.cancelled{background:#FDECEC;color:#C93B3B;border:1px solid #F5C6C6;}
.disc-tag.removed{background:#EEF1F6;color:#5C6E88;border:1px solid #DDE4EE;}
.disc-txt{margin-right:14px;}
/* 废弃卡片：整体变灰（灰度拉满 + 降低不透明度），一眼看出是作废的单 */
  .ocard.disc{filter:grayscale(1);opacity:.72;background:#F4F6F9;padding:10px 14px;gap:9px;align-items:center;justify-content:flex-start;min-height:178px;}
.ocard.disc:hover{filter:grayscale(.2);opacity:1;}
/* 废弃卡片：与已预报卡片同一套列宽，保证多张卡片列对齐 */
  .ocard.disc .oc-lead{min-width:120px;}
.ocard.disc .oc-buy{min-width:96px;}
.ocard.disc .oc-prod{flex:1.25;width:auto;min-width:290px;}
.ocard.disc .oc-prod .oc-imgbox,.ocard.disc .oc-prod .oc-img{width:100px;height:100px;}
.ocard.disc .oc-info{flex:1;width:auto;min-width:225px;font-size:11px;line-height:1.8;align-self:stretch;display:flex;flex-direction:column;justify-content:center;}
.ocard.disc .oc-info .pn{font-size:12.5px;}
/* 废弃原因块：宽度必须定死。原来 flex:1 会被文字长短撑开，
     把左边的商品列挤得左右错位（同一列表里第一张和后面几张对不齐） */
  .ocard.disc .disc-col{flex:0 0 288px;width:288px;max-width:288px;box-sizing:border-box;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:78px;}
.ocard.disc .disc-bar{width:100%;box-sizing:border-box;margin:0;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;
    border-radius:9px;padding:7px 10px;font-size:10.5px;line-height:1.7;border:1px dashed;}
.ocard.disc .oc-act{min-width:92px;}
.disc-tag.prob{background:#FDF1D8;color:#B45309;border:1px solid #F0CE7C;}
/* ================= 问题订单（2026-11-08）=================
     布局沿用废弃卡的紧凑列宽，但**不灰**——客户还有事要做，必须显眼。
     底色用极浅的暖黄，扫一眼就知道"这堆和别的不一样"。 */
  .ocard.prob{padding:10px 14px;gap:9px;align-items:center;justify-content:flex-start;min-height:178px;
    background:#FFFDF5;border-color:#F4D08A;}
.ocard.prob .oc-lead{min-width:120px;}
.ocard.prob .oc-buy{min-width:96px;}
.ocard.prob .oc-prod{flex:1.25;width:auto;min-width:290px;}
.ocard.prob .oc-prod .oc-imgbox,.ocard.prob .oc-prod .oc-img{width:100px;height:100px;}
.ocard.prob .oc-info{flex:1;width:auto;min-width:225px;font-size:11px;line-height:1.8;align-self:stretch;display:flex;flex-direction:column;justify-content:center;}
.ocard.prob .oc-info .pn{font-size:12.5px;}
.ocard.prob .disc-col{flex:0 0 288px;width:288px;max-width:288px;box-sizing:border-box;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:78px;}
.ocard.prob .disc-bar{width:100%;box-sizing:border-box;margin:0;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;
    border-radius:9px;padding:7px 10px;font-size:10.5px;line-height:1.7;border:1px dashed;}
.ocard.prob .oc-act{min-width:96px;}
.disc-bar.prob{background:#FFFBF0;border:1px dashed #F4D08A;color:#8A5A00;}
.ocard .oc-act .pb-return{border:1.5px solid #C9B8F0;background:#F8F5FF;color:#6D28D9;font-size:10.5px;
    font-weight:800;border-radius:7px;padding:5px 8px;cursor:pointer;font-family:inherit;white-space:nowrap;}
.ocard .oc-act .pb-return:hover{background:#EFE8FF;}
.disc-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 0;padding:7px 10px;border-radius:9px;
    font-size:11.5px;line-height:1.8;}
.disc-bar.cancelled{background:#FFF6F6;border:1px dashed #F3C7C7;color:#9B3A3A;}
.disc-bar.removed{background:#F7F9FC;border:1px dashed #DDE4EE;color:#5C6E88;}
/* 备注内容块：橘色边框 + 橘色底 + 白字，超长省略，title 看全文 */
  .rd-note{display:block;max-width:100%;margin-top:4px;padding:2px 9px;border:1px solid #F08A2E;background:#FF8A3D;color:#fff;border-radius:7px;font-size:10.5px;font-weight:700;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help;box-shadow:0 1px 4px rgba(255,138,61,.28);}
/* 已预报卡片：紧凑横向布局（无采购列；订单信息 与 预报落实 左右并排，降低卡片高度） */
  .ocard.done{padding:10px 14px;gap:9px;align-items:center;min-width:1180px;justify-content:flex-start;}
.ocard.done .oc-prod{flex:1.3;width:auto;min-width:300px;align-self:center;}
.ocard.done .oc-prod .oc-imgbox,.ocard.done .oc-prod .oc-img{width:104px;height:104px;}
.ocard.done .oc-info{flex:1;width:auto;min-width:235px;font-size:11px;line-height:1.8;align-self:stretch;display:flex;flex-direction:column;justify-content:center;}
.ocard.done .oc-info .pn{font-size:12.5px;}
.ocard.done .oc-dinfo{flex:1;min-width:270px;margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:2px;border-left:1px dashed #E3EBF7;border-radius:0;background:transparent;padding:0 0 0 12px;font-size:10.5px;line-height:1.75;}
.ocard.done .oc-act{min-width:100px;}
.ocard.done .oc-pinfo{align-self:center;}
.ocard.done .oc-pinfo .pi-btn{padding:5px 11px;font-size:11.5px;}
.oc-prod{flex:none;width:556px;display:flex;flex-direction:column;gap:6px;align-self:center;}
.oc-pi{display:flex;gap:12px;align-items:center;}
.oc-imgbox{width:128px;height:128px;flex:none;border-radius:12px;border:1px solid #E3EBF7;overflow:hidden;background:#F3F7FD;}
.oc-img{width:128px;height:128px;flex:none;border-radius:12px;object-fit:cover;background:#F3F7FD;display:block;cursor:zoom-in;}
.oc-img.noimg{display:flex;align-items:center;justify-content:center;color:#B9C6DB;font-size:11px;cursor:default;}
.oc-pit{flex:1;min-width:0;}
.oc-name{max-width:386px;color:#0B57D0;font-size:14px;font-weight:600;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-decoration:none;cursor:pointer;}
.oc-name:hover{text-decoration:underline;color:#0A4BC4;}
.oc-meta{font-size:13.5px;color:#7A8AA5;margin-top:6px;line-height:1.8;white-space:nowrap;}
.oc-meta .mono{color:#111827;font-weight:800;}
.qty-tag{display:inline-block;min-width:32px;text-align:center;padding:2px 9px;border:2px solid #E02D2D;color:#E02D2D;border-radius:8px;font-size:14px;font-weight:800;background:#FFF2F2;vertical-align:middle;}
/* 2026-11-09：宽度原来写死 330px，比"第一行真实需求"少 3px——
     第一行 = 货件号(最长17字符≈130px) + 👆(14) + 间隙(8+8) + 状态胶囊(173) = 333px。
     货件号 15 位(114px)时刚好 317 挤得下，17 位(130px)时 333>330 就换行，
     于是同一个列表里"有的胶囊在货件号后面、有的跑到下一行"，看着像随机。
     加宽到 348px（留 15px 余量）后一律单行。改这里记得同步 order-card.css。 */
  .oc-info{flex:none;width:348px;overflow:hidden;font-size:11.5px;color:#54657F;line-height:1.9;border-left:1px dashed #E3EBF7;padding-left:10px;}
.oc-info .pn{font-size:13.5px;color:#1F2E4D;font-weight:700;}
.oc-info .mono{color:#33415E;}
/* 黄色小手 👆 一键复制：跟在店铺SKU、货件编号后面，点了直接进剪贴板 */
  .copy-hand{display:inline-block;cursor:pointer;font-size:12px;line-height:1;margin-left:2px;
    user-select:none;-webkit-user-select:none;vertical-align:-1px;transition:transform .15s ease;filter:saturate(1.4);}
.copy-hand:hover{transform:scale(1.35) translateY(-1px);}
.copy-hand.did{animation:handPop .45s ease;}
.oc-act{flex:none;display:flex;flex-direction:column;gap:6px;align-items:stretch;align-self:center;min-width:110px;border-left:1px dashed #E3EBF7;padding-left:12px;}
.oc-pinfo{flex:none;display:flex;flex-direction:column;align-self:center;border-left:1px dashed #E3EBF7;padding-left:12px;}
.ocard.draft{border-color:#FBD9A5;box-shadow:0 1px 3px rgba(232,93,0,.12);}
.oc-ops{flex:none;display:flex;flex-direction:column;gap:6px;align-items:stretch;align-self:center;min-width:96px;border-left:1px dashed #E3EBF7;padding-left:12px;}
.oc-ops .asn-btn,.oc-ops .cx-btn{width:100%;}
/* ===== 2026-11-08：卡片右列改成三颗等宽胶囊 =====
     更新面单（青）/ 预报订单（蓝）/ 废弃订单（红），都是四个字，上下左右都能对齐。
     客户不打印，所以「国际面单 / 条形码」只留在左边做预览。 */
  .oc-pinfo.oc-stack{display:flex;flex-direction:column;gap:6px;align-self:center;
    border-left:1px dashed #E3EBF7;padding-left:12px;min-width:106px;}
.oc-stack > button{padding:6px 10px;border-radius:8px;font-size:12px;font-weight:700;
    cursor:pointer;font-family:inherit;white-space:nowrap;border:1.5px solid;background:#fff;
    text-align:center;letter-spacing:.6px;transition:.15s;width:100%;box-sizing:border-box;}
.oc-stack > .oref{border-color:#0E9488;background:#EAFBF8;color:#0B8578;}
.oc-stack > .oref:hover{border-color:#0B8578;background:#D8F5F0;color:#0B8578;}
.oc-stack > .pi-btn{border-color:#2F7BFF;background:#F3F8FF;color:#1D6FE0;}
.oc-stack > .pi-btn:hover{background:#E8F1FF;}
.oc-stack > .rm-btn{border-color:#F3B6B9;background:#FFF5F5;color:#D93A3F;}
.oc-stack > .rm-btn:hover{border-color:#E5484D;background:#FFE9E9;color:#C62A2F;}
.oc-stack > .pi-sub{border-color:#FF8A3D;background:#FFF6EF;color:#E85D00;font-weight:800;}
.oc-stack > .draft-tag{font-size:11px;text-align:center;}
/* 面单还没生成时只提示，不再让客户自己去出面单 */
  .lbl-btn.off:disabled{opacity:.8;cursor:not-allowed;}
html[data-mode="lite"] .sync-fx,
  html[data-mode="lite"] .sync-fx .fx-ring,
  html[data-mode="lite"] .sync-fx .fx-ico,
  html[data-mode="lite"] .ss-btn.on,
  html[data-mode="lite"] .ss-btn.on::after,
  html[data-mode="lite"] .lamp.on .bulb,
  html[data-mode="lite"] .cd.urgent,
  html[data-mode="lite"] .bubble.pulse,
  html[data-mode="lite"] .rd-exp-ico,
  html[data-mode="lite"] .login-glow,
  html[data-mode="lite"] .ntbox.urgent .nt-strip,
  html[data-mode="lite"] .view{animation:none !important;}
html[data-mode="lite"] .ocard.rd{filter:none !important;background:#F7F9FC;opacity:.66;}
html[data-mode="lite"] .ocard.rd:hover{opacity:.92;}
/* 轻量模式为了性能会关掉大多数滤镜，但废弃卡必须保持灰——否则看起来像正常单。
     废弃列表通常不多，这点滤镜开销可以接受。 */
  html[data-mode="lite"] .ocard.disc{filter:grayscale(1) !important;background:#F4F6F9;opacity:.78;}
html[data-mode="lite"] .ocard.disc:hover{opacity:.95;}
html[data-mode="lite"] .ocard{transition:none;box-shadow:none;}
