*{box-sizing:border-box}
:root{
  /* V2.47.20 · 纯 macOS 原生浅色（老板规范 2026-10-25） */
  --bg:#F4F4F6;--surface:#FFFFFF;--surface-2:#F4F4F6;
  --sidebar:#E9E9ED;--sidebar-edge:#DEDEE3;--nav-on:#CFCFD5;--nav-on-txt:#242429;
  --primary:#007AFF;--primary-deep:#0066D6;--primary-soft:#E8F2FF;
  --accent:#FF9F0A;--accent-soft:#FFF4E5;
  --text:#252528;--muted:#65656D;--border:#DEDEE3;
  --table-txt:#333339;--th-bg:#EFEFF2;--zebra:#F3F3F5;--alert:#A15B4F;
  --success:#34C759;--warn:#FF9F0A;--danger:#A15B4F;
  --chart-1:#007AFF;--chart-2:#5AC8FA;
  --shadow:0 0.5px 0 rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.05);
  --navy:#007AFF;--navy2:#0066D6;--blue:#007AFF;--blue-l:#E8F2FF;
  --line:#DEDEE3;--txt:#252528;--sub:#65656D;
  --orange:#FF9F0A;--red:#A15B4F;--green:#34C759;
  --wm:#007AFF;--wm-d:#0066D6;--wm-n:#252528;--wm-y:#FF9F0A;
  --wm-bg:#E8F2FF;--wm-g:#F4F4F6;--wm-line:#DEDEE3;--wm-txt:#252528;--wm-sub:#65656D;--wm-ink:#252528
}
body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif;color:var(--txt);background:var(--bg);letter-spacing:-.01em;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
.layout{display:flex;height:100vh}
/* 侧边栏 */
.side{width:232px;background:var(--sidebar,#E9E9ED);color:var(--txt,#252528);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}
.brand{display:flex;gap:12px;align-items:center;padding:16px 18px;border-bottom:.5px solid rgba(0,0,0,.08)}
.gem{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(37,99,235,.4)}
.bt{font-weight:700;font-size:16px;color:var(--txt,#252528)}.bs{font-size:12px;color:var(--muted,#65656D);margin-top:1px}
.navs{padding:6px 10px 20px}
.nav{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--txt,#252528);text-decoration:none;white-space:nowrap;margin:2px 0;transition:background .12s}
.nav .ic{width:17px;height:17px;flex-shrink:0;color:var(--muted,#6E6E73)}
.nav .nl{flex:1}
.nav:hover{background:rgba(0,0,0,.04)}
.nav.on{background:var(--nav-on,#CFCFD5);color:var(--nav-on-txt,#242429);font-weight:600;box-shadow:none}
.nav.on .ic{color:var(--nav-on-txt,#242429)}
.bdg:empty{display:none}
.bdg.cnt{background:#1d4ed8;color:#fff;border-radius:10px;min-width:20px;height:20px;line-height:20px;text-align:center;font-size:12px;font-weight:700;padding:0 6px}
.bdg.pend{background:var(--orange);color:#111;border-radius:10px;font-size:11.5px;font-weight:700;padding:1px 8px}
.bdg.tagb{background:rgba(0,0,0,.06);color:var(--muted,#65656D);border-radius:6px;font-size:11.5px;padding:1px 7px}
.nav.on .bdg.tagb{background:rgba(0,0,0,.08);color:var(--nav-on-txt,#242429)}
/* 主区 */
.main{flex:1;overflow-y:auto;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;height:56px;flex-shrink:0;position:sticky;top:0;z-index:5}
.crumb{flex:1;color:var(--sub)}.crumb i{font-style:normal;margin:0 10px;color:#9ca3af}.crumb b{color:var(--txt)}
.topr{display:flex;align-items:center;gap:10px}
.who{color:var(--sub);font-size:13px}
.content{padding:22px 28px}
.phead{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin-bottom:16px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.phead>div:first-child{flex:1}
.phead h1{display:flex;align-items:center;gap:10px;font-size:19px;margin:0}
.phead h1 .ic{width:22px;height:22px;color:var(--blue)}

.pacts{display:flex;gap:8px;flex-wrap:wrap}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.card h3{margin:0 0 12px;font-size:15px}
.tabs{display:flex;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;margin-bottom:14px}
.tab{flex:1;border:1px solid transparent;background:none;border-radius:8px;padding:10px 14px;cursor:pointer;color:#4b5563;white-space:nowrap}
.tab:hover{background:#f9fafb}
.tab.on{background:var(--blue-l);border-color:#bfdbfe;color:#1d4ed8;font-weight:600}
.btn{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:6px 14px;cursor:pointer;white-space:nowrap;color:var(--txt)}
.btn:hover{background:#f9fafb}.btn.pri{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.pri:hover{background:#1d4ed8}
.btn.red{color:var(--red);border-color:#fecaca}.btn.sm{padding:2px 10px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{border:1px solid #d1d5db;border-radius:8px;padding:6px 10px;background:#fff;outline:none}
input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border-bottom:1px solid #f1f2f4;padding:8px 10px;text-align:left;white-space:nowrap}
th{background:#f9fafb;color:var(--sub);font-weight:500;font-size:13px;position:sticky;top:0;z-index:1}
td.n,th.n{text-align:right}
tr.gp>td{background:#fbfcfe;font-weight:600;cursor:pointer}
tr.gp:hover>td{background:var(--blue-l)}
.tw{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:calc(100vh - 300px);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.arrow{display:inline-block;width:16px;color:#9ca3af}
/* 金属颜色高亮：不要改 */
.pill{display:inline-block;padding:1px 8px;border-radius:6px;font-weight:700;color:#000;border:1px solid transparent;font-variant-numeric:tabular-nums}
.m-KY,.m-S925YY{background:rgb(255,255,0)}.m-KR,.m-S925RR{background:rgb(255,200,200)}.m-KW{background:#fff;border-color:#9aa0a6}.m-S925{background:rgb(200,200,200)}/* V2.47.47：原S925浅灰；S925黄/玫瑰同KY/KR */
.chip{min-width:44px;text-align:center}
/* KPI 卡片 */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.stat span{display:block;color:#9ca3af;font-size:13px}
.stat b{display:block;font-size:28px;font-weight:800;color:var(--txt);margin:4px 0 2px;font-variant-numeric:tabular-nums}
.stat b.hl{color:var(--blue)}.stat.warn b{color:#d97706}
.stat small{color:var(--sub);font-size:12.5px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.bad{color:var(--red);font-weight:700}.ok{color:var(--green);font-weight:600}.muted{color:#9ca3af;font-size:12px}
.warn{color:#d97706;font-weight:600}
.tag{display:inline-block;padding:0 9px;border-radius:10px;font-size:12px;background:#f3f4f6}
.tag.g{background:#dcfce7;color:#15803d}.tag.y{background:#fef3c7;color:#b45309}.tag.r{background:#fee2e2;color:var(--red)}
.grid input{width:58px;text-align:right;font-weight:700}
.grid td{padding:4px 5px}
.issues{border:1px solid #fecaca;background:#fef2f2;border-radius:10px;padding:10px 14px;color:var(--red);margin:10px 0}
.issues li{margin:2px 0}
.cellbad .pill{box-shadow:none}
.loading{padding:28px;color:#9ca3af}
#modal .mask{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:flex-start;justify-content:center;padding-top:6vh;z-index:9}
#modal .box{background:#fff;border-radius:14px;padding:22px;min-width:420px;max-width:92vw;max-height:84vh;overflow:auto;box-shadow:0 20px 50px rgba(15,23,42,.25)}
#modal h3{margin:0 0 14px}
.form label{display:block;margin:8px 0 3px;color:var(--sub);font-size:13px}
.form input,.form select{width:100%}
#toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:20}
#toast div{background:var(--navy);color:#fff;padding:8px 18px;border-radius:8px;margin-bottom:6px}
#toast div.e{background:var(--red)}
.login{max-width:360px;margin:16vh auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px;box-shadow:0 10px 30px rgba(15,23,42,.08)}
.login input{width:100%;margin:6px 0 12px}
.login .btn{background:var(--blue);border-color:var(--blue);color:#fff;padding:9px}
.linecard{border:1px solid var(--line);border-radius:10px;padding:12px;margin:10px 0;background:#fff}
.linehead{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
tr.igp>td{background:#fff}tr.igp:hover>td{background:#f8fafc}
tr.isub>td{background:#fff}
tr.itp>td,tr.itp:hover>td{background:rgb(110,160,235);color:#0b1220;font-weight:700}
tr.itp .muted,tr.itp .arrow{color:#1e293b}
#it th:nth-child(n+3):not(:last-child),#it td:nth-child(n+3):not(:last-child){text-align:center}

td.ck,th.ck{text-align:center;width:36px}td.ck input,th.ck input{width:16px;height:16px;cursor:pointer}
.selbar{display:flex;align-items:center;gap:10px;background:#eef4ff;border:1px solid rgb(110,160,235);border-radius:8px;padding:8px 14px;margin:8px 0}
.bform td{padding:6px 8px;border:none}.bform input,.bform select{width:240px}.bform input:disabled,.bform select:disabled{background:#f3f4f6;color:#aaa}.bchk{white-space:nowrap;cursor:pointer}
.bform{width:100%}.bform td:first-child{width:110px}.bform td:nth-child(2){width:120px;white-space:nowrap}.bform label.bchk{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:normal}.bform label.bchk input{width:16px;height:16px;margin:0}
.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.danger:hover{filter:brightness(.92)}.btn.danger:disabled{opacity:.45;cursor:not-allowed;filter:none}
.bform select#b_shape,.bform select#b_shape2{display:inline-block}
.bform select#b_shape{width:120px}.bform select#b_shape2{width:200px}
.stcard{display:grid;grid-template-columns:130px 1fr 130px 1fr;gap:8px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px}.stl{color:var(--sub)}.stv{word-break:break-all}
.stsec{margin-top:12px}.stsh{font-weight:700;font-size:13px;color:#0f172a;margin:0 0 6px 2px;padding-left:8px;border-left:3px solid rgb(110,160,235)}
.stown0{margin-bottom:4px}
.stform{width:860px;max-width:90vw}.stfg{display:grid;grid-template-columns:120px 1fr 120px 1fr;gap:8px 12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.stfg label{margin:0;color:var(--sub);font-size:13px}.stfg input,.stfg select{width:100%;margin:0}
tr.stb>td{background:#fff;cursor:pointer;border-top:1px solid var(--line)}tr.stb:hover>td{background:#f8fafc}tr.stb .arrow{color:var(--sub)}tr.stdet>td{background:#fafbfc}
.stfg textarea{width:100%;margin:0;resize:vertical;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;box-sizing:border-box}.stfg label.lt{align-self:start;padding-top:6px}.stv.pl{white-space:pre-line}
.gtab th.gc,.gtab td.gc{text-align:center;width:96px}tr.gmr>td{background:#fff;cursor:pointer;border-top:1px solid var(--line)}tr.gmr:hover>td{background:#f8fafc}tr.gsub>td{background:#fff}
.gth{position:relative;width:72px;height:72px;margin:auto;border-radius:6px;overflow:hidden;border:1px solid var(--line);cursor:zoom-in;background:#f8fafc}.gth img{width:100%;height:100%;object-fit:cover;display:block}
.wm{position:absolute;inset:0;pointer-events:none;background-repeat:repeat}.gurl{position:absolute;left:2px;bottom:2px;font-size:10px;background:rgba(15,23,42,.65);color:#fff;border-radius:3px;padding:0 3px}
.gempty{width:72px;height:72px;margin:auto;border:1.5px dashed #94a3b8;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:12px;cursor:pointer}.gempty:hover{border-color:var(--blue);color:var(--blue)}
.gbig{position:relative;display:inline-block;max-width:80vw}.gbig img{max-width:80vw;max-height:66vh;display:block}
.nmck{display:inline-flex;align-items:center;gap:4px;margin:0 12px 6px 0;cursor:pointer;font-weight:normal}.nmck input{width:16px;height:16px;margin:0}
.stform.nmw{width:1100px;max-width:calc(95vw - 44px)}#modal .box:has(.nmw){max-height:90vh;max-width:95vw}
.nmfoot{justify-content:flex-end;position:sticky;bottom:-22px;background:#fff;padding:12px 0;margin:8px 0 -22px;border-top:1px solid var(--line);z-index:2}
.nmrow{display:flex;align-items:flex-start;gap:10px;margin-top:8px}.nmlab{width:90px;flex-shrink:0;padding-top:2px}.nmcodes{display:flex;flex-wrap:wrap;gap:4px 6px}
.nmcodes .pill{font-size:12px;padding:1px 6px}.nmcodes{gap:4px}
tr.gsz>td{background:#fff}
/* ===== E · 纯 macOS（取代 Walmart；PC+手机共用 token） ===== */
:root{
  --wm:#007AFF;--wm-d:#0066D6;--wm-n:#252528;--wm-y:#FF9F0A;--wm-bg:#E8F2FF;--wm-g:#F4F4F6;--wm-line:#DEDEE3;--wm-txt:#252528;--wm-sub:#65656D;
  --navy:#007AFF;--navy2:#0066D6;--blue:#007AFF;--blue-l:#E8F2FF;--line:#DEDEE3;--bg:#F4F4F6;--txt:#252528;--sub:#65656D
}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",system-ui,"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif}
/* 侧栏：vibrancy 浅灰，非海军蓝；无红绿灯假窗框 */
.side{background:rgba(232,232,237,.92);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);color:var(--txt);border-right:.5px solid rgba(0,0,0,.08)}
.brand{border-bottom:.5px solid rgba(0,0,0,.08)}
.gem{background:linear-gradient(180deg,#4DA3FF,#007AFF);box-shadow:0 1px 2px rgba(0,122,255,.35);width:40px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center}.gem svg{width:22px;height:22px}
.bt{color:var(--txt);font-weight:700}.bs{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px}
.nav{color:var(--txt);border-radius:8px;margin:1px 4px;padding:7px 10px}.nav .ic{color:var(--muted)}
.nav:hover{background:rgba(0,0,0,.04)}
.nav.on{background:var(--nav-on,#CFCFD5);color:var(--nav-on-txt,#242429);font-weight:600;box-shadow:none}.nav.on .ic{color:var(--nav-on-txt,#242429)}
.bdg.cnt{background:rgba(0,122,255,.16);color:var(--primary-deep);border-radius:10px}.bdg.pend{background:var(--accent);color:#252528}
.bdg.tagb{background:rgba(0,0,0,.06);color:var(--muted);border-radius:6px}
.nav.on .bdg.tagb{background:rgba(0,0,0,.08);color:var(--nav-on-txt,#242429)}
.top{background:rgba(255,255,255,.72);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:.5px solid rgba(0,0,0,.08)}
.card,.stat,.phead,.tw{border-radius:14px;border:1px solid var(--border,#DEDEE3);box-shadow:var(--shadow);background:var(--surface,#fff)}
.stat b.hl{color:var(--primary)}.stat b{color:var(--txt)}
.btn{border-radius:8px;border-color:var(--border);color:var(--txt);font-weight:600;padding:6px 14px;background:var(--surface)}
.btn:hover{background:rgba(0,0,0,.04)}
.btn.pri{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(0,122,255,.3)}.btn.pri:hover{background:var(--primary-deep)}
.btn.sm{padding:2px 10px}.btn.red{border-color:#FFCCD0;color:var(--danger)}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
/* 表头：浅灰 + 次要字（勿再深蓝底白字） */
th{background:var(--th-bg,#EFEFF2);color:var(--muted);font-weight:600;font-size:12px;letter-spacing:-.01em}
th,td{border-bottom-color:rgba(0,0,0,.06)}
th,th *{color:var(--muted)!important}
tr:hover>td{background:var(--primary-soft)}
tr.itp>td,tr.itp:hover>td{background:var(--primary-soft);color:var(--txt);box-shadow:none}
tr.itp>td:first-child{box-shadow:inset 3px 0 0 var(--primary)}
tr.itp .muted,tr.itp .arrow{color:var(--primary-deep)}
tr.gp:hover>td{background:var(--primary-soft)}
.selbar{background:var(--accent-soft);border-color:var(--accent);border-radius:10px}
.stsh{border-left-color:var(--primary);color:var(--txt)}
.tag{border-radius:999px;font-weight:600}
.tag.y{background:var(--accent-soft);color:#9A6200}
input,select,textarea{border-radius:8px;border-color:var(--border)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(0,122,255,.35);outline-offset:0;border-color:var(--primary);box-shadow:none}
.phead h1 .ic{color:var(--primary)}
/* tabs ≈ NSSegmentedControl */
.tabs{gap:0;background:rgba(0,0,0,.05);border:.5px solid rgba(0,0,0,.06);border-radius:8px;padding:2px}
.tab{border:none;background:transparent;border-radius:6px;color:var(--txt);font-weight:500}
.tab:hover{background:transparent}
.tab.on{background:var(--surface);border:none;color:var(--txt);font-weight:600;box-shadow:0 .5px 1px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.06)}
#toast div{background:rgba(29,29,31,.92);border-radius:8px;backdrop-filter:blur(12px)}
.login{border-radius:12px;border-top:3px solid var(--primary);box-shadow:var(--shadow)}
.login .btn{background:var(--primary);border-color:var(--primary);color:#fff;border-radius:8px;width:100%}
.login .btn:hover{background:var(--primary-deep)}
.gempty:hover{border-color:var(--primary);color:var(--primary)}
.box{border-radius:12px}.box h3{color:var(--txt)}
.bt{font-size:18px;line-height:1.2}.brand{min-height:40px}
.nav .bdg.cnt,.nav.on .bdg.cnt{background:rgba(0,0,0,.1)!important;color:var(--nav-on-txt,#242429)!important;border:none}
.nav.on .bdg.cnt{background:rgba(0,0,0,.14)!important;color:var(--nav-on-txt,#242429)!important}
#it td,#it th{padding-left:3px;padding-right:3px}
#it .pill{padding:1px 5px}
.nav .bdg.tagb{background:rgba(0,0,0,.06);color:var(--muted);font-weight:600;border:none}.nav.on .bdg.tagb{background:rgba(0,0,0,.08);color:var(--nav-on-txt,#242429)}
.gemt td.gml{white-space:normal;font-size:12px;line-height:1.5;color:var(--muted);font-weight:400;word-break:break-word}
tr.itp>td.gml,tr.itp:hover>td.gml{font-weight:400;color:var(--muted)}
.irt{width:100%;margin:4px 0 8px}.irt th{background:var(--th-bg,#EFEFF2)!important;color:var(--muted)!important}.irt th *{color:var(--muted)!important}
/* 登录页 · macOS 浅色 */
.lgw{display:flex;min-height:100vh;background:var(--bg)}
.lgl{width:32%;min-width:260px;background:linear-gradient(165deg,#E9E9ED 0%,#F4F4F6 55%,#FFFFFF 100%);display:flex;align-items:center;justify-content:center;border-right:.5px solid rgba(0,0,0,.08)}
.lgmark{text-align:left}
.lgword{color:var(--txt);font-weight:800;font-size:30px;letter-spacing:.5px;display:flex;align-items:center;gap:8px}
.lgspark svg{width:36px;height:36px;display:block}
.lgsub{color:var(--muted);font-size:13px;margin-top:4px}
.lgr{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:10vh 24px 24px}
.lgc{width:340px;min-height:340px;border:.5px solid rgba(0,0,0,.08);box-shadow:var(--shadow);padding:26px 22px;display:flex;flex-direction:column;background:#fff;border-radius:12px}
.lgc h2{text-align:center;margin:0 0 14px;font-size:24px;font-weight:800;color:var(--txt)}
.lgc label{font-size:13px;font-weight:700;color:var(--txt);margin:8px 0 5px}
.lgc input{width:100%;box-sizing:border-box;height:38px;border:1px solid var(--border);border-radius:8px;padding:0 10px;font-size:14px;margin:0}
.lgc input:focus{outline:2px solid rgba(0,122,255,.35);outline-offset:0;border-color:var(--primary)}
.lgpw{position:relative}.lgpw input{padding-right:40px}
.lgeye{position:absolute;right:4px;top:4px;width:30px;height:30px;border:0;background:none;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px}
.lgeye:hover{background:rgba(0,0,0,.04)}
.lghint{font-size:12.5px;color:var(--muted);margin:12px 0 18px}
.lgbtn{width:100%;height:40px;border:0;border-radius:8px;background:var(--primary);color:#fff;font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 1px 2px rgba(0,122,255,.3)}
.lgbtn:hover{background:var(--primary-deep)}
.lgbtn:disabled{background:#F2F2F2;color:var(--muted);cursor:default;box-shadow:none}
@media (max-width:760px){.lgw{flex-direction:column}.lgl{width:100%;min-height:150px;padding:28px 0}.lgr{padding:28px 16px}.lgc{width:100%;max-width:380px;min-height:0}}
.lgw .lgc{min-height:360px;box-sizing:border-box}
/* V2.25.2 登录页（电脑端）：左栏 金色 logo + FACAI TOGETHER 居中一列；右侧登录框垂直居中；手机端保持原样 */
.lgm-m{display:none}
@media (min-width:761px){.lgl .lgm-d{text-align:center;width:100%;padding:0 8px;box-sizing:border-box}.lglogo{width:340px;max-width:85%;height:auto;display:block;margin:0 auto 18px}.lgm-d .lgword{justify-content:center;white-space:nowrap;font-size:30px;font-size:min(30px,calc((max(32vw,260px) - 20px) / 8.9));font-weight:700}.lgr{align-items:center;padding:24px}}
@media (max-width:760px){.lgm-d{display:none}.lgm-m{display:block}}
#ovl .mask{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:flex-start;justify-content:center;padding-top:10vh;z-index:60}#ovl .box{background:#fff;border-radius:16px;padding:22px;min-width:420px;max-width:92vw;max-height:84vh;overflow:auto;box-shadow:0 20px 50px rgba(15,23,42,.3)}#ovl h3{margin:0 0 14px;color:var(--wm-n)}
.acdd{position:absolute;left:8px;top:40px;z-index:20;background:#fff;border:1px solid var(--wm-line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:240px;max-height:300px;overflow:auto}
.aci{padding:6px 10px;cursor:pointer;white-space:nowrap}.aci small{color:var(--wm-sub);margin-left:6px}.aci:hover,.aci.on{background:var(--wm-bg)}
.cht{cursor:pointer;opacity:.35;border:1px solid transparent}.cht.on{opacity:1;box-shadow:0 0 0 2px var(--wm)}.cht:disabled{cursor:default}
.l_hint{font-size:12px;margin-top:3px}
.btn.danger-o{background:#fff;color:#de1c24;border:1px solid #de1c24}.btn.danger-o:hover{background:#fdecec}
.fzh{display:inline-block;background:#fff4e0;color:#a35a00;border:1px solid #f5b041;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}
.ach{padding:4px 10px;font-size:11px;font-weight:700;color:#a35a00;background:#fff8ec;border-top:1px solid var(--wm-line)}
.ndl{font-weight:700;color:var(--wm-ink,#2e2f32);margin-left:4px}
.ndw{position:relative;display:inline-flex;align-items:center}
.ndw #ndp{width:34px;padding:6px 4px;margin-left:4px;color:transparent;cursor:pointer}
.ndw #ndp::-webkit-datetime-edit{display:none}
.lockt{font-size:12px;font-weight:600;color:#2e7d32;background:#e8f5e9;border-radius:10px;padding:2px 8px;margin-left:6px}
.rov{gap:24px;margin:6px 0 10px}.rov span{color:var(--wm-sub,#555)}.rov b{color:#111}
.unlk{background:#fff4e0;border:1px solid #f5b041;color:#8a4b00;border-radius:8px;padding:6px 10px;font-size:13px;margin:4px 0 10px}

/* 添加/修改大袋：大对话框，左表单+美度，右产品图例 */
#modal .box.bagbox{width:1100px;max-width:96vw;max-height:94vh;padding:18px 22px}
/* V2.47.10 盘点复核大弹窗（照片+美度+按钮同屏；与 stk15o.js 注入互为备份） */
#modal .box.s15box{position:fixed;left:2vw;top:2vh;width:96vw;height:96vh;max-width:none;max-height:none;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;padding:14px 18px}
#modal .box.s15box>h3{flex:0 0 auto;margin:0 0 10px}
#modal .box.s15box>.s15sp{flex:1 1 auto;min-height:0;overflow:hidden}
#modal .box.s15box>.row,#modal .box.s15box>.s15btns{flex:0 0 auto;margin-top:10px;padding-top:10px;border-top:1px solid #eef2f7;background:#fff}
.bagdlg{display:grid;grid-template-columns:460px 1fr;gap:24px;align-items:start}
.bagl h3{margin:0 0 10px}.bagl .row label{font-size:13px}
.bzt{margin:0;width:100%;border:1px solid var(--wm-line,#e3e4e5);border-radius:8px}.bzt td,.bzt th{padding:2px 12px;line-height:1.2}
.bzt .pill{font-size:12px;padding:1px 8px}.bzt .bz{width:110px;text-align:right;padding:3px 8px;height:26px}.bzt .bzs td{background:#f5f6f7;padding:5px 12px}
.bagr{border-left:1px solid var(--wm-line,#e3e4e5);padding-left:22px}.bagrh{font-weight:700;margin:2px 0 10px}
.bimgs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.bimg{display:flex;flex-direction:column;gap:4px}.bimgt{font-size:12px;color:var(--wm-sub,#6d6e71);font-weight:600}
.bth,.bph{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;border:1px solid var(--wm-line,#e3e4e5);background:#f8fafc}
.bth{cursor:zoom-in}.bth img{width:100%;height:100%;object-fit:contain}.bth:hover{box-shadow:0 0 0 2px var(--wm,#0071dc)}
.bph{display:flex;align-items:center;justify-content:center;color:#9a9b9d;font-size:13px}
#lbx{position:fixed;inset:0;background:rgba(4,30,66,.88);z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:zoom-out}
#lbx .lbt{color:#fff;font-weight:700;margin-bottom:10px}#lbx .lbt .muted{color:#c9d3e0;font-weight:400}
#lbx .lbi{position:relative;max-width:88vw;max-height:84vh}#lbx .lbi img{display:block;max-width:88vw;max-height:84vh;object-fit:contain;background:#fff;border-radius:8px}
#lbx .lbn{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.9);font-size:30px;cursor:pointer;color:#041e42}
#lbx .lbp{left:24px}#lbx .lbn.lbx{right:24px}
@media (max-width:900px){.bagdlg{grid-template-columns:1fr}.bagr{border-left:0;padding-left:0}}
/* 数量整数校验 */
input.qbad{border-color:#de1c24!important;box-shadow:0 0 0 2px rgba(222,28,36,.15)}
input.qbig{border-color:#f5a623!important;box-shadow:0 0 0 2px rgba(245,166,35,.2)}
.qh{display:block;font-size:11px;line-height:1.3;margin-top:2px;white-space:nowrap;font-weight:600}.qh.bad{color:#de1c24}.qh.big{color:#b86e00}
td.n .qh{text-align:right}
/* ② 录大袋和小袋：简单、字大、防呆 */
.bsubh{font-size:13px;font-weight:400;color:var(--wm-sub,#6d6e71);margin-left:8px}
.bigcard .linehead{font-size:16px;gap:14px;align-items:center}.bigcard .linehead .pill{font-size:14px}
.lst{display:inline-block;border-radius:999px;padding:3px 12px;font-weight:700;font-size:14px}
.lst.none{background:#eef0f2;color:#5a5c5f}.lst.ok{background:#e6f4ea;color:#1e7e34}.lst.warn{background:#fff4e0;color:#a35a00}.lst.bad{background:#fdecec;color:#c0161d}
.btn.addbag{margin-left:auto;font-size:15px;padding:8px 18px}
.bagt td,.bagt th{font-size:14px}
/* 删除草稿：平时灰色，鼠标放上去/选中才变红 */
.btn.ndelg{background:#fff;color:#8a8c8f;border:1px solid #c9cbce;margin-right:8px}
.btn.ndelg:hover,.btn.ndelg:focus-visible{background:#de1c24;color:#fff;border-color:#de1c24;cursor:pointer}
.hrw{background:#fdecec;color:#c0161d;border-radius:8px;padding:6px 10px;font-size:14px}
/* 表格里的删除按钮：和「删除草稿」一样，平时灰色，鼠标放上去/选中才变红 */
table .btn.red,table .btn.danger-o,table .btn.danger{background:#fff;color:#8a8c8f;border:1px solid #c9cbce;box-shadow:none}
table .btn.red:hover:not(:disabled),table .btn.danger-o:hover:not(:disabled),table .btn.danger:hover:not(:disabled),
table .btn.red:focus-visible,table .btn.danger-o:focus-visible,table .btn.danger:focus-visible{background:#de1c24;color:#fff;border-color:#de1c24}

/* 送货单识别 */
.ocrz{border:3px dashed #b9c4d6;border-radius:12px;padding:16px;margin:10px 0;cursor:pointer;background:#f7f9fc;min-height:140px;display:flex;align-items:center;justify-content:center;gap:16px;text-align:center}.ocri{font-size:52px;line-height:1}.ocrt{font-size:20px;font-weight:600;color:#2a3550}.ocrz.busy .ocrt{color:#2f6fed}
.ocrz:hover,.ocrz.drag,.ocrz:focus{border-color:#2f6fed;background:#eef4ff;outline:none}.ocrz.busy{cursor:wait;color:#2f6fed}
.ocrsum{padding:10px 12px;border-radius:8px;margin:6px 0 10px;background:#eefaf0;border:1px solid #bfe5c6}
.ocrsum.warn{background:#fff8e6;border-color:#f0d58a}.ocrsum.bad{background:#fdeeee;border-color:#f0b5b5}
.ocrg.on{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);grid-template-areas:'img tbl';gap:14px;align-items:stretch}.ocrg.on #ocri{grid-area:img}.ocrg.on .ocrl{grid-area:tbl}.ocrg.on .ocrl{overflow-x:auto;min-width:0}.ocrg.on #nl .l_sc{width:110px!important}
.ocrimg{position:sticky;top:10px;border:1px solid #dde3ec;border-radius:8px;padding:8px;background:#fff;min-height:500px;max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box}.ocrimg img{width:100%;cursor:zoom-in;display:block;margin-top:4px}
#nl tr.o_warn td{background:#fffaf0}#nl tr.o_bad td{background:#fff3f3}.lst.warn{background:#fff1cc;color:#8a5a00}.ocrw{font-size:12px;color:#8a5a00;display:block;max-width:190px;white-space:normal;line-height:1.3}.ocrg.on #nl td,.ocrg.on #nl th{padding-left:6px;padding-right:6px}
.nfiles{margin-top:8px}.nfth{height:60px;border:1px solid #ccd;border-radius:4px;cursor:zoom-in}
.ocrt small{display:block;font-size:13px;font-weight:400;color:#7a8499;margin-top:6px}.ocrz:focus{border-color:#2f6fed;background:#eef4ff;outline:none}
.ocrg.on #ocri{min-height:500px}.ocrg.on .hlong{display:none}.ocrg.on #nl{width:100%}.ocrg.on #nl .l_sc{width:96px!important}.ocrg.on #nl .l_q{width:62px!important}
.ocrg.on #nl td.l_fz{max-width:170px;white-space:normal;font-size:12px;line-height:1.3}.ocrg.on #nl .l_fz .fzh{white-space:normal}.ocrg.on #nl td,.ocrg.on #nl th{padding-left:5px;padding-right:5px}
.ocrg.on .l_ch .chip,.ocrg.on .l_ch button{padding-left:6px;padding-right:6px}
/* 需复查（请看一下 / 近似型号）：很浅的红；要改：更深的红；认出：绿色不变 */
.fzh{background:#fff1f1;color:#d93025;border:1px solid #f4a7a2}
#nl tr.o_warn td,#nl tr:has(.fzh) td,#pl tr:has(.fzh) td,.bagt tr:has(.fzh) td{background:#fff1f1}
#nl .lst.warn,.ocrsum .lst.warn{background:#fde4e2;color:#d93025;border:1px solid #f4a7a2}.ocrw{color:#d93025}
#nl tr.o_bad td{background:#fbd5d2}#nl .lst.bad,.ocrsum .lst.bad{background:#c5221f;color:#fff;border:1px solid #a50e0e}
.ocrsum.warn{background:#fff1f1;border-color:#f4a7a2}
#nl tr.o_amt td{background:#fff1f1}.ntot{margin:8px 0 0;padding:8px 10px;background:#f6f8fb;border-radius:8px;font-size:15px}.ntot b{font-size:17px}
.ocrg.on #nl .l_p{width:64px!important}.ocrg.on #nl .l_a{width:80px!important}
#nl input[type=number]::-webkit-inner-spin-button,#nl input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#nl input[type=number]{-moz-appearance:textfield;text-align:right;padding-left:4px;padding-right:6px}
.ocrg.on{grid-template-columns:minmax(0,38fr) minmax(0,62fr)!important}.ocrg.on #nl .l_sc{width:84px!important}.ocrg.on #nl .l_q{width:50px!important}.ocrg.on #nl .l_p{width:60px!important}.ocrg.on #nl .l_a{width:78px!important}
.ocrg.on #nl td.l_fz{max-width:120px}.ocrg.on #nl .lst{white-space:nowrap}
.totbad{display:inline-block;background:#fff1f1;border:1px solid #f4a7a2;color:#d93025;border-radius:6px;padding:3px 10px;font-weight:600}.totbad small{font-weight:400;margin-left:8px;font-size:12px}
.l_ch{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.l_ch .cht{order:1;margin:0}.l_ch .cht.on{order:0}  /* 选中的颜色永远在最左边，切换时只改顺序不动状态 */
.ocrq:empty{display:none}.ocrq{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 8px;padding:6px 10px;background:#f6f8fb;border:1px solid #dde3ec;border-radius:8px;font-size:13px}.ocrqf{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid #ccd5e3;border-radius:12px;padding:2px 4px 2px 10px}.ocrqx{border:0;background:none;color:#888;cursor:pointer;font-size:12px;padding:0 4px}.ocrqx:hover{color:#d93025}
.btn.nedtg{background:#fff;color:#8a8c8f;border:1px solid #c9cbce;margin-right:8px}.btn.nedtg:hover,.btn.nedtg:focus-visible{background:#1a66d2;color:#fff;border-color:#1a66d2;cursor:pointer}
/* 添加大袋：美度和数量挨着（窄表，左对齐） */
.bzt{width:auto;table-layout:fixed;border-collapse:separate}
.bzt th:first-child,.bzt td:first-child{width:90px;padding:2px 6px 2px 10px}
.bzt th:last-child,.bzt td:last-child{width:110px;padding:2px 10px 2px 0;text-align:left;white-space:nowrap;overflow:visible}
.bzt .bz{width:100px}
.bzt .bzs td{padding:5px 10px 5px 0}.bzt .bzs td:first-child{padding-left:10px}
.bzt .qh{display:block;white-space:nowrap}
.bzt th:last-child,.bzt td:last-child{width:230px;padding:2px 10px 2px 0}
.bzt th:nth-child(2),.bzt td:nth-child(2){width:110px;padding:2px 10px 2px 0;text-align:left;white-space:nowrap;overflow:visible}
.bzt .bzn{width:220px;height:26px;padding:3px 8px;text-align:left}.bzt .bzn{color:#D92D20}.bzt .bzn::placeholder{color:#a3a6aa}
.bznote{font-size:11px;color:#D92D20;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0 auto;text-align:right}
@media (min-width:901px){.bagdlg{grid-template-columns:auto 1fr}}
/* ② 每个型号一行：固定列，上下对齐 */
.bigcard .linehead.lhg{font-size:15px;display:grid;grid-template-columns:calc(12ch + 8px) 66px 128px 108px 110px minmax(0,1fr) auto;gap:12px;align-items:center}
.lhg .lh-m{font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lhg .lh-c .pill{display:inline-block;width:60px;text-align:center;box-sizing:border-box}
.lhg .lh-c.bad{grid-column:span 1;white-space:nowrap;font-size:13px}
.lhg .lh-q{display:grid;grid-template-columns:auto 1fr auto;gap:4px;align-items:baseline;white-space:nowrap}
.lhg .lh-q b{text-align:right;font-variant-numeric:tabular-nums}
.lhg .lh-s{justify-self:start}.lhg .lh-b{justify-self:end}
@media (max-width:900px){.bigcard .linehead.lhg{grid-template-columns:110px 76px 1fr 1fr;}.lhg .lh-x,.lhg .lh-b{grid-column:1/-1}}
.dlog{margin-top:14px}.dlog h4{margin:0 0 6px;color:#D92D20}.dlog tr.muted td{color:#8a8c8f}
/* 数字框不要上下小箭头（全站） */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* 添加大袋 右侧：三个数 + 两两比较 */
.bchk{margin-top:16px;border:1px solid var(--line,#e3e4e5);border-radius:10px;padding:14px;background:#fff}
.bck3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.bck3 div{background:#f5f6f7;border-radius:8px;padding:8px 12px}.bck3 span{display:block;font-size:13px;color:#5f6368}.bck3 b{font-size:30px;font-variant-numeric:tabular-nums;line-height:1.2}
.bckp{border-radius:6px;padding:6px 10px;margin:4px 0;font-size:15px;font-weight:600}
.bckp.ok{background:#ecfdf3;color:#067647}.bckp.bad{background:#fef3f2;color:#D92D20}
.bck3 .ref{background:#fafafa;border:1px dashed #d0d3d6}.bck3 .ref b{color:#5f6368}
/* 添加大袋：几乎全屏，两栏自动缩放，不出横向滚动条；字大，仓库看得清 */
#modal .box.bagbox{position:fixed;left:3vw;top:3vh;width:94vw;height:94vh;max-width:none;max-height:none;min-width:0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;padding:16px 20px}
#modal .box.bagbox .bagdlg{grid-template-columns:minmax(0,45fr) minmax(0,55fr);gap:20px}
.bagbox .bagl,.bagbox .bagr{min-width:0}
.bagbox .bagl h3{font-size:20px}
.bagbox .bagl .row{flex-wrap:wrap;gap:10px}.bagbox .bagl .row label{font-size:16px;flex:1 1 120px;min-width:0}
.bagbox .bagl .row input{font-size:18px;height:40px;width:100%!important;box-sizing:border-box}
.bagbox .bzt{width:100%;table-layout:fixed}
.bagbox .bzt th{font-size:15px}
.bagbox .bzt th:first-child,.bagbox .bzt td:first-child{width:28%}
.bagbox .bzt th:nth-child(2),.bagbox .bzt td:nth-child(2){width:24%}
.bagbox .bzt th:last-child,.bagbox .bzt td:last-child{width:auto}
.bagbox .bzt td{height:40px;padding-top:3px;padding-bottom:3px}
.bagbox .bzt td:first-child .pill{font-size:20px;font-weight:700;padding:2px 10px}
.bagbox .bzt .bz{font-size:20px;height:36px;width:100%;box-sizing:border-box;font-weight:600}
.bagbox .bzt .bzn{font-size:16px;height:36px;width:100%;box-sizing:border-box}
.bagbox .bzt .bzs td{font-size:20px}
.bagbox .bimgs{gap:10px}.bagbox .bth,.bagbox .bph{max-height:24vh;width:100%;margin:0 auto}
.bagbox .bimg{min-width:0;align-items:center}.bagbox .bimgt{align-self:flex-start}
.bagbox .bck3 b{font-size:clamp(26px,3vw,40px)}.bagbox .bck3 span{font-size:15px}.bagbox .bckp{font-size:18px}
@media (max-width:760px){#modal .box.bagbox .bagdlg{grid-template-columns:1fr}.bagbox .bagr{border-left:0;padding-left:0}}
.bzt .bzn,.bzt .bzn::placeholder,.bznote{font-weight:400!important}
.bagbox .bckp{white-space:normal;overflow-wrap:anywhere}
/* 添加大袋：半码行整行浅灰，整码行白色（不用斑马纹）；输入框保持白色 */
.bzt tr.bzwhole td{background:#fff!important}.bzt tr.bzhalf td{background:#EEF0F3!important}
.bzt tr.bzhalf input,.bzt tr.bzwhole input{background:#fff}
/* 半码行底色 + 输入框缩小，底色从上下右露出来 */
.bzt tr.bzhalf td{background:rgb(200,230,255)!important}
.bagbox .bzt td{height:42px;padding-top:6px!important;padding-bottom:6px!important;box-sizing:border-box}
.bagbox .bzt .bz{height:30px;width:85%;font-size:19px;padding:2px 8px}
.bagbox .bzt .bzn{height:30px;width:85%;font-size:15px;padding:2px 8px}
/* 添加大袋 新布局：左 30%（标题+PO/标签+美度表），右 70%（上 65% 图1–3，下 35% 差异） */
#modal .box.bagbox{display:flex;flex-direction:column}
#modal .box.bagbox .bagdlg{grid-template-columns:minmax(0,30fr) minmax(0,70fr);gap:18px;flex:1;min-height:0}
.bagbox .bagt3{font-size:19px;line-height:1.5}.bagbox .bagt3 .bdq{white-space:nowrap;font-weight:600;color:#3c4043;margin-left:4px}.bagbox .bagt3 .bdq b{font-size:22px;color:#0b1f3a}
.bagbox .bagl .row{flex-wrap:nowrap;gap:10px}
.bagbox .bagl .row label{flex:none}
.bagbox .bagl .row #bpo{width:17ch!important;max-width:100%}
.bagbox .bagl .row #bq{width:6ch!important}
.bagbox .bagl .row label:first-child{flex:0 1 auto;min-width:0}
.bagbox .bzt th:first-child,.bagbox .bzt td:first-child{width:118px}
.bagbox .bzt th:nth-child(2),.bagbox .bzt td:nth-child(2){width:82px}
.bagbox .bzt .bz{width:70px}
.bagbox .bzt .bzn{width:calc(100% - 8px)}
.bagbox .bagr{display:flex;flex-direction:column;min-height:0;height:100%}
.bagbox .bagrh{flex:none}
.bagbox .bimgs{flex:65 1 0;min-height:0}
.bagbox .bimg{min-height:0;height:100%;align-items:stretch}
.bagbox .bth,.bagbox .bph{flex:1 1 0;min-height:0;max-height:none;aspect-ratio:auto;width:100%}
.bagbox .bchk{flex:35 1 0;min-height:0;overflow:auto;margin-top:12px}
@media (max-width:760px){#modal .box.bagbox .bagdlg{grid-template-columns:1fr}.bagbox .bagr{height:auto}.bagbox .bimgs{height:40vh;flex:none}}
.bagbox .bagl .row #bpo{width:180px!important}
.bagbox .bzt .bzn{width:150px!important;max-width:100%}
#modal .box.bagbox .bagdlg{grid-template-columns:minmax(380px,30fr) minmax(0,70fr)}
.bagbox .bagr{height:calc(94vh - 36px);position:sticky;top:0;align-self:start}
/* PO 行：PO 填满，标签数量小；图1–3 正方形（JS 定边长），图片 contain 居中 */
.bagbox .bagl .row{display:flex;flex-wrap:nowrap;gap:10px;max-width:100%}
.bagbox .bagl .row label:first-child{flex:1 1 auto;min-width:0}.bagbox .bagl .row label:first-child #bpo{width:100%!important}
.bagbox .bagl .row label:last-child{flex:none}
.bagbox .bimg{align-items:flex-start}
.bagbox .bth,.bagbox .bph{flex:none;aspect-ratio:1/1;max-width:100%}
.bagbox .bth img{width:100%;height:100%;object-fit:contain;object-position:center}
/* 取消/保存：右栏右下角，大按钮，一直看得见 */
.bagbox .bagbtns{flex:none;display:flex;justify-content:flex-end;gap:16px;margin-top:12px}
.bagbox .bagbtns .btn{height:56px;min-width:140px;font-size:20px;border-radius:12px;padding:0 24px}
.bagbox .bagbtns .btn:not(.pri){background:#fff;border:2px solid #0b1f3a;color:#0b1f3a}
/* 内容区窄时整体按比例缩小，保持 左表/右图 两栏 */
#modal .box.bagbox.bagsm .bagdlg{grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:12px}
.bagbox.bagsm{padding:12px 14px!important}
.bagbox.bagsm .bagt3{font-size:16px}.bagbox.bagsm .bagt3 .bdq b{font-size:18px}
.bagbox.bagsm .bagl .row label{font-size:14px}.bagbox.bagsm .bagl .row input{font-size:16px;height:34px}
.bagbox.bagsm .bzt th:first-child,.bagbox.bagsm .bzt td:first-child{width:92px}
.bagbox.bagsm .bzt th:nth-child(2),.bagbox.bagsm .bzt td:nth-child(2){width:62px}
.bagbox.bagsm .bzt td:first-child .pill{font-size:16px;padding:1px 6px}
.bagbox.bagsm .bzt .bz{width:54px;font-size:17px;height:28px}
.bagbox.bagsm .bzt .bzn{width:110px!important;height:28px}
.bagbox.bagsm .bzt td{height:38px;padding-top:5px!important;padding-bottom:5px!important}
.bagbox.bagsm .bck3{gap:6px}.bagbox.bagsm .bck3 div{padding:6px 8px}.bagbox.bagsm .bck3 span{font-size:12px}.bagbox.bagsm .bck3 b{font-size:24px}
.bagbox.bagsm .bckp{font-size:15px}
.bagbox.bagsm .bagbtns .btn{height:48px;min-width:110px;font-size:18px}
/* 左右互换：左 = 图1–3 + 差异（70%），右 = 录入（30%）；按钮在右栏底部右下角一直看得见 */
#modal .box.bagbox{overflow:hidden}
#modal .box.bagbox .bagdlg{grid-template-columns:minmax(0,70fr) minmax(380px,30fr)}
#modal .box.bagbox.bagsm .bagdlg{grid-template-columns:minmax(0,58fr) minmax(0,42fr)}
.bagbox .bagr{order:-1;border-left:0;padding-left:0;border-right:1px solid var(--wm-line,#e3e4e5);padding-right:18px;position:static}
.bagbox .bagl{overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;min-height:0}
.bagbox .bagl .bzt{flex:none}
.bagbox .bagbtns{position:sticky;bottom:0;background:#fff;padding:10px 0 2px;margin-top:auto;z-index:2}
.bagbox .bchk{flex:none;padding-bottom:12px}.bagbox .bimgs{flex:1 1 0}
/* 图1–3 高度=正方形；差异框占满下面空间，内容放大、上下均匀 */
.bagbox .bimgs{flex:none!important}
.bagbox .bchk{flex:1 1 auto!important;min-height:0;margin-top:12px;display:flex;flex-direction:column;justify-content:space-evenly;gap:10px;padding:14px 16px!important;overflow:hidden}
.bagbox .bchk .bck3{margin:0;gap:12px}.bagbox .bchk .bck3 div{padding:10px 14px}
.bagbox .bchk .bck3 span,.bagbox.bagsm .bchk .bck3 span{font-size:18px}
.bagbox .bchk .bck3 b,.bagbox.bagsm .bchk .bck3 b{font-size:clamp(36px,4.2vw,56px);line-height:1.15}
.bagbox .bchk .bckp,.bagbox.bagsm .bchk .bckp{font-size:22px;padding:10px 14px;margin:0}

/* 备注框填满格子（右边留 8px），和表格右边对齐 */
#modal .bagbox .bzt td .bzn,#modal .bagbox.bagsm .bzt td .bzn{width:calc(100% - 8px)!important;max-width:none}
#modal .bagbox .bzt td:last-child{padding-right:0!important}

.bagdone{display:inline-block;border:1px solid #c4c4c4;color:#888;background:#fff;border-radius:8px;padding:6px 14px;font-weight:600;cursor:default;user-select:none}
.bagdone.bagbig{border-color:#D92D20;background:#D92D20;color:#fff}

#ask .askm{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.25)}
#ask .askb{position:fixed;left:50%;top:37vh;transform:translateX(-50%);width:max(330px,32vw);min-height:max(190px,33vh);max-height:60vh;box-sizing:border-box;background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.35);padding:clamp(14px,1.8vw,24px);display:flex;flex-direction:column;gap:12px}
#ask .askt{white-space:pre-line;font-size:clamp(16px,1.6vw,22px);line-height:1.45;color:#111;overflow:auto;flex:1}
#ask .askbtn{display:flex;justify-content:flex-end;gap:12px}
#ask .askbtn .btn{font-size:clamp(16px,1.5vw,20px);padding:8px 26px;min-height:44px}
.ncrow{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ncrow>p{margin:0}
.ncact{display:flex;align-items:center;gap:10px;margin-left:auto}
.btn.ncbig{min-width:150px;height:55px;font-size:19px;font-weight:700;padding:0 22px}
.btn.ncbig.ncoff{background:#d0d5dd;color:#667085;border-color:#d0d5dd;cursor:not-allowed}
.nchint{color:#D92D20;font-weight:600;font-size:15px}
.ncst{display:inline-flex;flex-direction:column;align-items:center;gap:4px}
.ncst .nchint{font-size:14px;white-space:nowrap}
.bqh{display:block;font-size:11px;line-height:1.3;margin-top:2px;white-space:nowrap;font-weight:600;color:#b86e00}.bqh[hidden]{display:none}
.facform{min-width:min(560px,86vw)}

.wrange{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wtab tr.wsub td{background:#f2f4f7;font-weight:700}.wtab tr.wtot td{background:#e6edf7;font-weight:800;font-size:15px}
.invt td.iind{width:14px;padding-left:4px;padding-right:0}
.invt .binp{width:calc(12ch + 16px);padding:3px 6px;font-size:13px}
.invt td:has(>.binp){position:relative;width:1%}
.invt .binok{position:absolute;left:10px;bottom:-1px;color:#12b76a;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none}
.invt tr.igp td:nth-child(2){white-space:nowrap;width:1%}
td.rmk{color:inherit;font-size:13px;white-space:pre-line;max-width:320px}
.rtot{margin-left:18px;font-size:16px;font-weight:600}.rtot b{font-size:26px;font-weight:800;color:#0b3d91;margin-left:6px}

.scanbox{width:min(1100px,94vw)}
.sctab td{vertical-align:top}.sctab input{width:100%;box-sizing:border-box}.sctab .sc_t{width:auto}
.sctab .sc_n{min-width:90px}.sctab .sc_d{min-width:130px}.sctab .sc_q{width:80px}.sctab .sc_a{width:100px}.sctab .sc_m{min-width:110px}
.sc_info{max-width:300px}.sc_ti{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.sc_dup{opacity:.6}
.sc_dupt{color:var(--red);font-weight:700;font-size:13px}
.ocrz.slim{min-height:0;height:58px;padding:6px 16px;gap:12px;border-width:2px;border-color:#7aa2f0;background:#eef4ff;box-sizing:border-box}
.ocrz.slim .ocri{font-size:26px}.ocrz.slim .ocrt{font-size:15px;display:flex;align-items:baseline;gap:12px}.ocrz.slim .ocrt small{display:inline;margin-top:0;font-size:12px}

/* ===== 左侧窄栏 + 弹出菜单 ===== */
:root{--railw:72px}
.side.rail{width:var(--railw);background:rgba(232,232,237,.96);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);overflow:visible;position:relative;z-index:30;border-right:.5px solid rgba(0,0,0,.08)}
.rail .brand{flex-direction:column;gap:2px;padding:10px 4px 8px;border-bottom:.5px solid rgba(0,0,0,.08);text-align:center}
.rail .gem{width:30px;height:30px}.rail .gem svg{width:18px;height:18px}.rail .bt{font-size:10px;line-height:1.15;letter-spacing:.5px;color:var(--txt)}
.rail .navs{padding:6px 0;overflow:visible}
.rg{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;margin:2px 6px;border-radius:8px;color:var(--muted);cursor:pointer;user-select:none}
.rg>.ic{width:22px;height:22px;color:var(--muted)}.rgl{font-size:12px}
.rg:hover,.rg.open{background:rgba(0,0,0,.05);color:var(--txt)}.rg:hover>.ic,.rg.open>.ic{color:var(--txt)}
.rg.on{background:var(--nav-on,#CFCFD5);color:var(--nav-on-txt,#242429);font-weight:700}.rg.on>.ic{color:var(--nav-on-txt,#242429)}
.rgd{display:none;position:absolute;top:6px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px #E9E9ED}.rg.hasb .rgd{display:block}
.fly{display:none;position:fixed;left:calc(var(--railw) - 2px);width:190px;background:rgba(255,255,255,.92);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);color:var(--txt);border-radius:0 10px 10px 0;border:.5px solid rgba(0,0,0,.08);box-shadow:0 8px 28px rgba(0,0,0,.12);padding:8px;z-index:40;cursor:default;font-weight:400}
.rg.open .fly{display:block}
.fly .nav{color:var(--txt);border-radius:8px;padding:8px 10px;margin:1px 0}.fly .nav:hover{background:rgba(0,0,0,.04)}
.fly .nav.on{background:var(--nav-on,#CFCFD5);color:var(--nav-on-txt,#242429);font-weight:700;box-shadow:none}
.fly .nav .bdg.tagb,.fly .nav.on .bdg.tagb,.fly .nav .bdg.cnt,.fly .nav.on .bdg.cnt{background:rgba(0,0,0,.08)!important;color:var(--nav-on-txt,#242429)!important;border:none}
#modal .mask,#ovl .mask{left:var(--railw)}
.fly .nav.on:hover{background:var(--nav-on,#CFCFD5);color:var(--nav-on-txt,#242429)}
.pwbad{color:var(--red,#dc2626);font-weight:700;font-size:13px;margin:4px 0 6px}input.errin{border-color:var(--red,#dc2626)!important;background:#fff5f5}
.tag.mtag{font-size:11px;padding:0 6px;background:#fff7e6;color:#b45309;border:1px solid #f5c26b;font-weight:600}
.top .crumb{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clocks{flex:1;display:flex;justify-content:space-evenly;align-items:center;min-width:0}
.clk{display:flex;align-items:baseline;gap:6px;white-space:nowrap;min-width:150px}
.clk .cl{font-size:11px;color:var(--sub)}.clk .ct{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt)}

@media (max-width:900px){.clocks{display:none}.top .crumb{flex:1}}
.clk .cwk{font-weight:500}.clk .holi{color:#ea580c;font-weight:700}

.holi{color:#ea580c}.wdbox{display:flex;flex-wrap:wrap;gap:10px}.wdbox label{display:flex;align-items:center;gap:4px;font-weight:400}.wdbox input{width:auto}
.lvdays{margin-top:12px;font-size:13px}.lvdays b{font-size:16px}.lvdays b.bad{color:var(--red)}

.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cd{position:relative;text-align:center;padding:4px 0 3px;border-radius:8px;cursor:pointer;border:1.5px solid transparent;line-height:1.2}
.cd:hover{background:#f3f4f6}.cd b{display:block;font-size:17px;font-weight:600;color:var(--txt)}.cd small{display:block;font-size:10.5px;color:#4b5563;white-space:nowrap;overflow:hidden}
.cd small.fe{color:#0369a1}.cd.we b{color:#e11d48}.cd.off{background:#fff1f2}.cd.off b,.cd.off small{color:#e11d48}
.cd.oth{opacity:.4}.cd.sel{background:#e0ecff}.cd.sel.off{background:#ffe4e6}
.cd .bx{position:absolute;top:-3px;right:-2px;font-style:normal;font-size:10px;line-height:15px;padding:0 3px;border-radius:4px;color:#fff}

.lgeye.pweye{top:50%;transform:translateY(-50%);width:28px;height:28px}.form .lgpw input{width:100%;box-sizing:border-box;padding-right:38px}

.tag.amztag{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}tr.amzon td{background:#fffaf3}

.pwban{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#fff7ed;border:1px solid #fdba74;border-left:4px solid #f97316;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14px}
.pwban a{color:#c2410c;font-weight:600}.pwbtn{white-space:nowrap}.pwauto{font-size:11px;background:#fef3c7;color:#92400e;border-radius:4px;padding:0 5px}
.pwchk{margin:0 0 12px;font-size:12.5px}.pwchk .bad{color:#dc2626}

/* 账号启用/暂停开关 */
.sw{position:relative;width:34px;height:18px;border-radius:9px;border:0;background:#c5cbd3;padding:0;vertical-align:middle;cursor:pointer;transition:background .15s}
.sw i{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.sw.on{background:#22a35a}.sw.on i{left:18px}
.sw:disabled{cursor:default;opacity:.6}
.swl{margin-left:6px;font-size:12px;color:#6b7480;vertical-align:middle}

/* 账号表：admin 单独一行放最上面，下面隔开 */
tr.adminrow td{background:#f3f7fd;border-bottom:6px solid #dfe5ee}
tr.grpend td{border-bottom:6px solid #dfe5ee}  /* 账号表：部门之间隔开 */
.pon{color:#111;font-weight:700}.poff{color:#9aa1ab;font-weight:400;font-style:italic}  /* 工作时间表 人员：启用黑粗；暂停灰斜 */
.hc{color:#6b7480;font-weight:400;margin-left:1px}.hct{font-size:14px;font-weight:500;color:#6b7480}  /* 工作时间表 人数 */
/* 对齐：部门名定宽，人数（N）同一竖线起；数字等宽 */
td.dn{padding-right:2px;white-space:nowrap}
td.hc{padding-left:0;width:1%;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:left}
table.tnum td{font-variant-numeric:tabular-nums}
table.tnum .sw,table.tnum .swl{vertical-align:middle}
/* 团队成员卡片：标签列定宽，值左对齐成一条线 */
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.tcards .card{margin:0}
.tcard .th{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.tcard .th b,.tcard .th i{font-size:15px}
.tcard .ts{font-size:12px;margin-top:2px}.tcard .tg{display:grid;grid-template-columns:4em 1fr;row-gap:6px;column-gap:10px;font-size:13px;font-variant-numeric:tabular-nums}
.tcard .tk{color:#6b7480}.tcard .tv{word-break:break-all}.tcard .tu{font-size:11px;margin-top:10px}.tcard.off{background:#fafbfc}
/* 首页 生日提醒 */

/* 首页网格：12 列吸附，行高固定，卡片填满格子；小屏幕一列排、不能拖 */
.hgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:var(--hgr,22px);gap:var(--hgg,14px);margin-bottom:16px}
.hgrid>.gi{position:relative;min-width:0;min-height:0}
.hgrid>.gi>.card,.hgrid>.gi>.stat{margin:0;height:100%;box-sizing:border-box;overflow:auto}
.hgrid .tag{margin:2px 4px 2px 0}
.gi>.gh{position:absolute;top:6px;right:8px;font-style:normal;font-size:14px;line-height:1;color:#9aa1ab;cursor:grab;padding:3px 4px;border-radius:6px;opacity:0;transition:opacity .15s;user-select:none;touch-action:none}
.gi>.gr{position:absolute;right:2px;bottom:2px;width:14px;height:14px;cursor:nwse-resize;opacity:0;transition:opacity .15s;touch-action:none;
  background:linear-gradient(135deg,transparent 0 55%,#9aa1ab 55% 62%,transparent 62% 72%,#9aa1ab 72% 79%,transparent 79%)}
.gi:hover>.gh,.gi:hover>.gr,.gi.drag>.gh,.gi.drag>.gr{opacity:1}.gi>.gh:hover{background:#eef1f5;color:#4b5563}
.gi.drag{z-index:5}.gi.drag>.card,.gi.drag>.stat{box-shadow:0 8px 24px rgba(16,24,40,.18);outline:2px dashed #93b4e8;outline-offset:2px}
.hgrid:has(.gi.drag){background-image:linear-gradient(to right,rgba(147,180,232,.12) 1px,transparent 1px);background-size:calc((100% + var(--hgg,14px)) / 12) 100%}
@media (max-width:760px){.hgrid{display:block}.hgrid>.gi{margin-bottom:12px}.hgrid>.gi>.card,.hgrid>.gi>.stat{height:auto;overflow:visible;overflow-x:auto}.gi>.gh,.gi>.gr{display:none}}
.card.empty{text-align:center;padding:56px 20px}.emptyic .ic{width:44px;height:44px;color:#9aa1ab}.emptyt{font-size:17px;font-weight:700;margin-top:12px;color:#374151}.emptyd{margin-top:6px;font-size:13px}  /* 空页面 */
/* 物流订单 */
.tag.b{background:#dbeafe;color:#1d4ed8}.tag.c{background:#ccfbf1;color:#0f766e}
.lxf select,.lxf input[type=date]{width:auto}.lxtk{font-variant-numeric:tabular-nums;white-space:nowrap}
.lxbox{min-width:620px}.lxkv{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;margin:8px 0 4px}.lxk{color:var(--sub);font-size:13px}.lxbox h4{margin:14px 0 6px}
table.lxbt{width:100%;border-collapse:collapse}table.lxbt td,table.lxbt th{padding:4px 8px}table.lxbt th.n,table.lxbt td.n{text-align:right}.lxtot td{font-weight:700;border-top:1px solid #e5e7eb}

.tag.lxnf{background:#f3f4f6;color:#6b7280;font-weight:600;margin:0}

.fbsum{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.fbsum div{display:flex;flex-direction:column;gap:2px}.fbsum b{font-variant-numeric:tabular-nums;font-size:16px}.fbck{display:inline-flex;align-items:center;gap:4px;margin:0}
table.fbc{margin-bottom:8px}table.fbc th{text-align:left}table.fbc th .muted{color:#cbd5e1!important;font-weight:400}table.fbc th.n{text-align:right}table.fbc td:first-child,table.fbc th:first-child{width:150px}.fbr{cursor:pointer}.fbr:hover td{background:#f8fafc}
.rg.rgext{margin-top:18px}.rg.rgext::before{content:"";position:absolute;left:4px;right:4px;top:-10px;border-top:1px solid rgba(0,0,0,.12)}

/* 生产白板（矩阵卡：横 = 工序，竖 = 颜色×美度；A4 横向） */
.wbrow{padding:14px 16px}
.wbohd{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.wbot{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline}
.wbot b{font-size:15px}
.wbact{display:flex;gap:6px;flex-shrink:0}
.wbcards{display:flex;gap:16px;overflow-x:auto;padding:4px 2px 10px;align-items:flex-start}
.wbcard{flex:0 0 820px;min-height:420px;background:#fff;border:1px solid #d9dee5;border-radius:4px;box-shadow:0 2px 6px rgba(15,23,42,.08);padding:16px 18px 10px;display:flex;flex-direction:column}
.wbhd{display:flex;align-items:baseline;gap:14px;border-bottom:2px solid #0f172a;padding-bottom:8px;margin-bottom:10px}
.wbhd .wbact{margin-left:auto}
.wbm{font-size:22px;font-weight:700;letter-spacing:.5px}

.wbt{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;font-variant-numeric:tabular-nums}
.wbt col.c1{width:104px}.wbt col.c2{width:56px}.wbt col.c3{width:72px}
.wbt th{font-weight:600;padding:6px 4px;white-space:nowrap}
.wbt td{border-bottom:1px solid #e2e8f0;padding:3px 4px;height:32px}
.wbt .n{text-align:right}
.wbln{white-space:nowrap}.wbln b{margin-left:6px}
.wbo{font-weight:700;background:#f8fafc}
.wbshc{background:#f8fafc}
.wbt tr.wbsum td{border-top:1.5px solid #0f172a;border-bottom:none;font-weight:700}
.wbq{width:100%;max-width:58px;text-align:right;border:1px solid #cbd5e1;background:#fff;border-radius:4px;padding:3px 6px;font:inherit;cursor:pointer}
.wbq.em{color:#94a3b8;background:#f8fafc}
.wbq:hover{border-color:#2563eb;background:#eff6ff}
.wbq.lo,.wbv.lo{color:#d83931;font-weight:700;border-color:#f3b4b0;background:#fef2f2}
.wbrc{font-weight:700}.wbrc.ok{color:#16a34a;background:#dcfce7}.wbrc.bad{color:#b91c1c;background:#fee2e2}.wbrc.warn{color:#92400e;background:#fef3c7}

.wbform{display:grid;grid-template-columns:72px 1fr;gap:10px 12px;align-items:center;min-width:360px}

/* 配货白板 */
.pkgrid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.pkcard{flex:0 0 620px;background:#fff;border:1px solid #d9dee5;border-top:6px solid var(--sc);border-radius:4px;box-shadow:0 2px 6px rgba(15,23,42,.08);padding:12px 16px 10px}
.pkhd{display:flex;align-items:center;gap:10px;padding-bottom:6px}
.pkhd .wbact{margin-left:auto}
.pkst{background:var(--sc);color:#fff;font-weight:700;padding:3px 10px;border-radius:4px;font-size:14px}
.pkti{font-weight:700;font-size:15px}
.pkmeta{font-size:11.5px;border-bottom:2px solid #0f172a;padding-bottom:6px;margin-bottom:8px}
.pkneed{font-weight:700;background:#f8fafc}
.pkshort{color:#d83931;font-weight:700;background:#fef2f2}
.pkby{font-size:11px;white-space:nowrap}
.pkleg{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.pkleg i{width:14px;height:14px;border-radius:3px;display:inline-block}
.pill.pk-待配货{background:#f1f5f9;color:#334155}.pill.pk-配货中{background:#dbeafe;color:#1d4ed8}.pill.pk-配货完毕{background:#dcfce7;color:#166534}

/* 采购产品 / 订单接收 */
.potab td{vertical-align:middle}
.poops{text-align:right;white-space:nowrap}.poops .btn{margin-left:6px}
.pill.po-w{background:#fef3c7;color:#92400e}.pill.po-ok{background:#dcfce7;color:#166534}
.poform{display:grid;grid-template-columns:72px 1fr 72px 1fr;gap:10px 12px;align-items:center;min-width:640px}
.poform .span3{grid-column:span 3}
.polines input.pl_m{width:110px}.polines input.pl_q,.polines input.pl_p{width:80px;text-align:right}
.polines td{padding:3px 6px}
.wblock{margin-left:auto;font-size:11.5px}
.pill.po-done{background:#e2e8f0;color:#475569}
.wbrow.done,.wbcard.done{background:#f1f5f9;filter:grayscale(1);opacity:.75}
.potab tr.podone td{color:#94a3b8}
.wbsrc{display:inline-block;min-width:44px;padding:3px 6px;font-weight:700}
.wbt th small{font-weight:400;font-size:10px;opacity:.8}
.pp{display:grid;grid-template-columns:380px minmax(0,1fr);grid-template-rows:auto 1fr;gap:16px;margin-bottom:16px;align-items:start}.pp .card{margin:0}
.ppl{grid-row:span 2;align-self:stretch;display:flex;flex-direction:column;min-height:520px}.ppl input{width:100%;margin-bottom:8px}
#pp_list{flex:1;overflow:auto;max-height:640px}.ppi{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-radius:6px;cursor:pointer;border:1px solid transparent}
.ppi:hover{background:#f1f5f9}.ppi.on{background:#eff6ff;border-color:#93c5fd}.ppshort{color:#c5221f;font-variant-numeric:tabular-nums}
.pph{margin:0 0 10px;font-size:15px}.ppbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.ppbar label{color:#64748b}.ppbar input,.ppbar select{width:150px}
.ppg th.c{text-align:center}.ppg td{padding:4px 3px;vertical-align:top}

.pprt{vertical-align:middle!important;font-weight:600}.ppfoot{justify-content:space-between;margin-top:10px}

.ppe .tw,.pps .tw{overflow-x:auto;max-width:100%}
.pprf{background:#f8fafc;border-right:1px solid #e2e8f0;vertical-align:middle!important}.pprf input{width:60px;border-color:#93c5fd}
.ppdays{width:64px!important;text-align:right}#pp_ddt{min-width:90px}
input.wbq{cursor:text;-moz-appearance:textfield}input.wbq::-webkit-inner-spin-button,input.wbq::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input.wbq:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #bfdbfe;background:#fff;color:inherit}
input.wbq.ing{background:#fefce8}input.wbq.sv{border-color:#16a34a;box-shadow:0 0 0 2px #bbf7d0;background:#f0fdf4}input.wbq.er{border-color:#dc2626;box-shadow:0 0 0 2px #fecaca;background:#fef2f2}

.pill.pst-r{background:#fee2e2;color:#b91c1c}.pill.pst-y{background:#fef3c7;color:#92400e}.pill.pst-g{background:#dcfce7;color:#166534}
.potab td.pst{white-space:nowrap}
.pill.pst-p{background:#ede9fe;color:#6d28d9}
.wbt col.c4{width:150px}.wbt th.wbpk,.wbt td.wbpk{white-space:nowrap;text-align:right;padding-left:10px;border-left:1px solid #e2e8f0}
.wbpkq{width:52px;text-align:right;margin-right:6px;padding:3px 5px}
.wbcard:has(col.c4){flex-basis:980px}
.wbpklog{margin-left:auto;margin-right:10px}.pklog td{vertical-align:middle;padding:5px 8px}.pklog .pk_q{width:70px;text-align:right}.pklog .pk_d{width:150px}
.shtab td{vertical-align:middle}
.pill.pst-b{background:#dbeafe;color:#1d4ed8}.wbpkd2{font-size:11px;color:#2563eb;margin-right:6px}.shops{white-space:nowrap}.shops .btn+.btn{margin-left:6px}
.gemwrap{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.gemL{min-width:0}

.gemtop{margin-bottom:10px;flex-wrap:wrap;gap:8px}.gemtop select{font-size:14px;padding:6px 8px}

.gemt2 td,.gemt2 th{padding-top:10px;padding-bottom:10px;vertical-align:top}.gemt2 td.gmlw{white-space:normal;word-break:keep-all;overflow-wrap:anywhere;line-height:1.6}

.ssheet{border-collapse:collapse;width:100%;font-size:17px;background:#fff}.ssheet th,.ssheet td{border:1px solid #111;padding:6px 10px;text-align:center;white-space:nowrap}
.ssheet th{font-weight:700;background:#fff;color:#111}.ssheet th.sst{background:#fde58a;font-size:20px;padding:10px}.ssheet tr.ssf td{font-size:17px}.ssheet input.sd_q{width:80px;font-size:16px;text-align:center}.ssheet input.sd_d{font-size:14px}
.ssm{margin-top:8px;font-size:13px;color:#64748b}@media print{.ssheet{font-size:15px}}
.ssheet tr th,.modal .ssheet tr th,#modal .ssheet th{color:#111!important;background:#fff!important}#modal .ssheet th.sst,.ssheet th.sst{background:#fde58a!important;color:#111!important}
#modal .ssheet th,.ssheet th{font-size:17px!important}#modal .ssheet th.sst,.ssheet th.sst{font-size:22px!important}
@media print{#app,#toast,.side,.top{display:none!important}#modal .ssheet{font-size:15px}}
.ssheet th,.ssheet td,#modal .ssheet th,#modal .ssheet td{border:1px solid #111!important}.ssheet,.ssheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.finbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.finsum{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.finkpi{display:flex;flex-direction:column;gap:4px;margin:0}.finkpi span{color:#64748b;font-size:13px}.finkpi b{font-size:26px}.finkpi b.neg{color:#dc2626}.finkpi small{color:#64748b;font-size:12px;line-height:1.6}
.hgrid>.gi>.fincard{display:flex;flex-direction:column;overflow:hidden}.finlist{flex:1;min-height:0;overflow:hidden}
.finch{display:flex;align-items:center;gap:8px;margin-bottom:6px}.finch b{font-size:16px}.finch{padding-right:22px}
.tag.fin_in{background:#dcfce7;color:#166534}.tag.fin_out{background:#fee2e2;color:#991b1b}.finbig{font-size:24px;font-weight:700;margin:2px 0}
.fint{width:100%;margin-top:8px;font-size:13px;border-collapse:collapse}.fint td{padding:4px 2px;border-top:1px solid #f1f5f9}
.finft{margin-top:auto;padding-top:10px}.finft a{color:var(--blue);text-decoration:none}
@media (max-width:900px){.finsum{grid-template-columns:1fr}}
.ppg{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-top:10px}.ppcard{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;background:#fff;flex:1 1 230px;min-width:230px;max-width:340px}
.ppch{display:flex;align-items:center;gap:8px;padding-bottom:6px;border-bottom:1px solid #f1f5f9;margin-bottom:4px;flex-wrap:wrap}.ppch .pprf{font-size:12px;color:#64748b;display:flex;align-items:center;gap:4px}.ppch .pprf input{width:56px}.ppct{margin-left:auto;font-size:13px;color:#64748b}
.ppct2{width:100%;border-collapse:collapse;font-size:13px}.ppct2 th{font-weight:500;color:#64748b;font-size:12px;padding:3px 4px;background:none;border-bottom:1px solid #f1f5f9}.ppct2 td{padding:3px 4px;border-bottom:1px solid #f8fafc}.ppct2 td.c,.ppct2 th.c{text-align:center}
.ppct2 input{width:64px;text-align:center}.ppct2 .ppneed{color:#dc2626}.ppct2 u{text-decoration:none;color:#2563eb}
.ppcard .ppct2 th{color:#64748b!important;background:transparent!important;position:static}
/* 采购产品颜色卡（两版待选：.ppg.vA 只有卡头上色；.ppg.vB 卡头深色 + 卡身同色浅底）；输入框、美度格白底；深色字 */
.ppcard{border:1.5px solid #1e2a4a!important;padding:0!important;overflow:hidden;background:#fff}.ppcard .ppch{padding:8px 10px;margin:0;border-bottom:1.5px solid #1e2a4a;color:#111}
.ppcard .ppct2{margin:4px 0 6px}.ppcard .ppct2 th:first-child,.ppcard .ppct2 td:first-child{padding-left:10px}.ppcard .ppct2 th:last-child,.ppcard .ppct2 td:last-child{padding-right:10px}
.ppcard .ppch .pprf,.ppcard .ppct{color:#111}.ppcard .ppch .chip{border:1px solid #1e2a4a;background:#fff}
.ppcard .ppct2,.ppcard .ppct2 tr,.ppcard .ppct2 th{background:transparent!important}.ppcard .ppct2 th{color:#1f2937!important}.ppcard .ppct2 td{color:#111;border-bottom-color:rgba(30,42,74,.12)}
.ppcard .ppct2 td:nth-child(2){text-align:center}.ppcard .ppct2 td b{color:#111}
.ppcard input{background:#fff!important;border:1px solid #1e2a4a!important;color:#111;box-shadow:none!important}
.ppcard .ppct2 .muted{color:#374151!important}.ppcard .ppct2 .ppneed{color:#b00000!important}.ppcard .ppct2 u{color:#0b3fa8}
.ppg.vA .ppcard.m-KY .ppch{background:rgb(255,236,90)}.ppg.vA .ppcard.m-KR .ppch{background:rgb(250,190,195)}.ppg.vA .ppcard.m-KW .ppch{background:#dfe3e8}
.ppg.vB .ppcard.m-KY .ppch{background:rgb(255,214,0)}.ppg.vB .ppcard.m-KR .ppch{background:rgb(236,140,155)}.ppg.vB .ppcard.m-KW .ppch{background:#b8c0ca}
.ppg.vB .ppcard.m-KY{background:rgb(255,250,215)}.ppg.vB .ppcard.m-KR{background:rgb(253,234,237)}.ppg.vB .ppcard.m-KW{background:#f1f3f6}
.ppg.vB .ppcard .ppct2 td:first-child{background:#fff!important}.ppg.vA .ppcard .ppct2 td:first-child{background:#fff}
/* B 版最终：整张卡（卡头+卡身）都用颜色色 */
.ppg.vB .ppcard.m-KY,.ppg.vB .ppcard.m-KY .ppch{background:rgb(255,214,0)}.ppg.vB .ppcard.m-KR,.ppg.vB .ppcard.m-KR .ppch{background:rgb(236,140,155)}.ppg.vB .ppcard.m-KW,.ppg.vB .ppcard.m-KW .ppch{background:#c3cad3}
.ppg.vB .ppcard .ppct2 td{border-bottom-color:rgba(30,42,74,.18)}.ppg.vB .ppcard .ppct2 .muted{color:#1f2937!important}.ppg.vB .ppcard .ppct2 .ppneed{color:#8b0000!important}.ppg.vB .ppcard .ppct2 u{color:#0a2f80}
.ppg.vB .ppcard .ppct2 td:first-child{border:1px solid #1e2a4a}
/* B 版分区填色：卡头深色（满宽），卡身同色浅底，表格所有格子透明、无白列白缝；只有数量输入框白色 */
.ppg.vB .ppcard.m-KY{background:rgb(255,246,190)!important}.ppg.vB .ppcard.m-KY .ppch{background:rgb(240,190,0)!important}
.ppg.vB .ppcard.m-KR{background:rgb(252,226,231)!important}.ppg.vB .ppcard.m-KR .ppch{background:rgb(214,98,122)!important}
.ppg.vB .ppcard.m-KW{background:#e6e9ee!important}.ppg.vB .ppcard.m-KW .ppch{background:#8e98a6!important}
.ppg.vB .ppcard .ppct2{margin:0!important;border-collapse:collapse}.ppg.vB .ppcard .ppct2 tr,.ppg.vB .ppcard .ppct2 th,.ppg.vB .ppcard .ppct2 td,.ppg.vB .ppcard .ppct2 td:first-child,.ppg.vB .ppcard .ppct2 tr:nth-child(n) td{background:transparent!important;border-left:0!important;border-right:0!important;border-top:0!important}
.ppg.vB .ppcard .ppct2 th{padding-top:6px}.ppg.vB .ppcard .ppct2 tr:last-child td{padding-bottom:8px}
.ppg.vB .ppcard.m-KR .ppch,.ppg.vB .ppcard.m-KR .ppch .pprf,.ppg.vB .ppcard.m-KR .ppct,.ppg.vB .ppcard.m-KR .ppct b,.ppg.vB .ppcard.m-KW .ppch .pprf,.ppg.vB .ppcard.m-KW .ppct,.ppg.vB .ppcard.m-KW .ppct b{color:#fff!important}
.ppg.vB .ppcard .ppch .chip{background:#fff!important;color:#111!important}
.ppg.vB .ppcard .ppch .chip{background:transparent!important;color:inherit!important;border:1.5px solid currentColor!important;font-weight:700}.ppg.vB .ppcard.m-KY .ppch .chip{color:#111!important}
.ppg.vB .ppcard .ppch .pprf{background:transparent!important}.ppg.vB .ppcard .ppct2 td,.ppg.vB .ppcard .ppct2 td:first-child{border-bottom:1px solid rgba(30,42,74,.15)!important}.ppg.vB .ppcard .ppct2 th{border-bottom:1px solid rgba(30,42,74,.3)!important}
/* 半码行（5.5#、6.5#…）整行比整码行深一档（同添加大袋的半码规则），输入框保持白色 */
.ppg.vB .ppcard.m-KY .ppct2 tr.pphalf td{background:rgb(255,232,130)!important}.ppg.vB .ppcard.m-KR .ppct2 tr.pphalf td{background:rgb(246,200,210)!important}.ppg.vB .ppcard.m-KW .ppct2 tr.pphalf td{background:#d3d8df!important}
.ppcard input{font-weight:700!important;font-size:14px}

.ssheet td.sspo{font-size:14px}
.side .brand{cursor:pointer}
.ssheet td.sspo,.ssheet th.sspo{white-space:nowrap!important;min-width:11em;font-size:15px}
.ppest{color:#111}.ppest b{color:#0b3fa8}
.ppfoot>span.muted,.ppfoot .ppest{color:#111!important}
.fpbox{margin-top:16px}.fptw{max-height:70vh;overflow:auto}.fpt th{position:sticky;top:0;z-index:1}.fpt th.c,.fpt td.c{text-align:center}.fpt td{vertical-align:middle}
.fpt input.fpin{width:90px;text-align:right;font-weight:600}.fpt input.fpok{background:#dcfce7!important;transition:background .3s}

.fpshut .fpbody{display:none}.fpshut .fptog .fparr{transform:none}.fptog .fparr,.fpgh .fparr{display:inline-block;transition:transform .15s}.fpbox:not(.fpshut) .fptog .fparr{transform:rotate(90deg)}
.fpgh td{background:#eef2f8;font-weight:700;cursor:pointer;user-select:none}.fpgc tr.fpr,.fpgc tr.fppr{display:none!important}.fpgc .fpgh .fparr{transform:rotate(-90deg)}
/* 款号定价斑马纹：同半码行规则的浅蓝，输入框保持白色 */
.fpt tr.fpr:nth-child(odd) td{background:rgb(200,230,255)!important}.fpt tr.fpr:nth-child(even) td{background:#fff!important}.fpt .fpin{background:#fff}

/* 入库 ① 送货单表格：套「出货记录」单子样式（黄标题、全框线、大字） */
#nl.nlsheet{counter-reset:nls;width:100%}#nl.nlsheet tr.nlr{counter-increment:nls}#nl.nlsheet td.nlsn::before{content:counter(nls)}
#nl.nlsheet td{white-space:normal;vertical-align:middle}#nl.nlsheet td.nlpo{font-size:14px}#nl.nlsheet input{font-size:16px}
#nl.nlsheet th{font-size:16px!important}#nl.nlsheet th.sst{font-size:22px!important}#nl.nlsheet .l_ch{justify-content:center}
.nlfoot{border-top:none!important;margin-top:-1px}.nlfoot td{font-size:17px;text-align:left!important}.nlfoot td.nlft{width:40%}.nlfoot .ntot{margin:0;padding:0;background:none}
.phead .ocrz.ocrhd{flex:1;max-width:760px;margin:0 20px;height:52px;align-self:center}.ocrz.ocrhd .ocrt{font-size:14px;white-space:nowrap}.ocrz.ocrhd .ocrt small{font-size:11px}
.azby{margin:6px 0;font-size:12px;border-top:1px dashed #d8dee8;padding-top:4px}.azby div{display:flex;justify-content:space-between;gap:8px;line-height:1.7}.azby span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569}.azby b{white-space:nowrap;font-weight:600}
#nl input.l_sc.l_lock{background:#eef0f3!important;color:#475569;cursor:not-allowed;border-color:#cbd2dc}
.ntseg{display:inline-flex;border:1.5px solid #0b2447;border-radius:8px;overflow:hidden;margin:0 6px}.ntseg .ntb{border:0;background:#fff;color:#0b2447;padding:6px 14px;font-weight:600;cursor:pointer;font-size:14px}
.ntseg .ntb+.ntb{border-left:1.5px solid #0b2447}.ntseg .ntb.on{background:#0b2447;color:#fff}.ntseg .ntb:disabled{cursor:default;opacity:.85}

#nl tr.o_po td{background:#fff1f1}#nl .powarn{display:block;color:#c5221f;font-weight:700;font-size:13px;white-space:normal}
#nl select.l_po.l_pobad{border:2px solid #d93025;background:#fff4f3}
.pombar{gap:10px;align-items:center;flex-wrap:wrap}.pomt td,.pomt th{white-space:nowrap}.pomt tr.pomh td{background:#f6f4ff}.pomtag{background:#ede9fe;color:#5b21b6;font-size:11px}
.phno{font-size:16px;color:#0b2447}.pomlw{max-height:260px;overflow:auto}.pomlt td,.pomlt th{padding:4px 8px}
.tdb{position:absolute;top:2px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#d93025;color:#fff;font-size:10px;line-height:16px;text-align:center;font-style:normal}
.rg{position:relative}.nav .tdb{position:static;margin-left:6px;display:inline-block}.tdbar{gap:8px}.tdt td{vertical-align:top}.tdc{font-size:12px;margin-top:2px;white-space:pre-wrap}.tdtag{background:#e0ecff;color:#0b3a8a}.tdact{white-space:nowrap}
.pomreq{border:2px solid #f4b400}
.tdn{display:inline-block;min-width:20px;padding:0 6px;border-radius:10px;background:#e8eaed;color:#555;font-size:12px;text-align:center}.tdn.on{background:#d93025;color:#fff}

.ppch{flex-wrap:wrap;min-height:64px;align-content:center}.ppcno{flex-basis:100%;text-align:right;font-weight:700;color:#000;font-size:14px;margin-top:4px;min-height:18px}
.ppcnw{flex-basis:100%;text-align:right;margin-top:4px;min-height:18px;font-size:14px}.ppcnl{color:#333;font-size:13px}.ppcnw .ppcno{display:inline;flex-basis:auto;margin:0}.ppadded{color:#16a34a;font-weight:600;margin-left:auto;margin-right:8px}
.ppi{gap:8px;justify-content:flex-start}.ppi input{width:auto;margin:0}.ppi .ppshort{margin-left:auto}.ppsel{display:flex;gap:6px;margin-bottom:8px;align-items:center;flex-wrap:wrap}.ppstot{margin-left:auto;color:#c5221f;font-weight:600;font-variant-numeric:tabular-nums;font-size:13px;white-space:nowrap}
.ppsec{border-top:2px solid #1e2a4a;padding-top:10px;margin-top:14px}.ppsec:first-of-type{border-top:0;margin-top:6px}.ppsh{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.ppsm{font-size:17px}
.ppsn{font-size:12px;color:#64748b;display:flex;align-items:center;gap:4px}.ppsn input{width:170px}.ppmsum{margin-left:auto;font-size:13px;color:#475569;white-space:nowrap;flex-shrink:0}
.ppsh .ppsn{white-space:nowrap}
.ppsel{flex-wrap:nowrap}.ppsel .btn{white-space:nowrap;flex:0 0 auto}
.ppnot{color:#475569;font-weight:600;font-size:13px}
.ppbq{margin-left:auto;font-size:14px;color:#334155;white-space:nowrap;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:4px 12px}.ppbq b{color:#0f172a;font-size:15px}
.ppbody{display:flex;gap:12px;align-items:flex-start}.ppbody .ppg{flex:1;min-width:0}.ppims{width:120px;flex:0 0 120px;display:flex;flex-direction:column;gap:8px}.ppim{position:relative;width:120px;height:120px;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;cursor:zoom-in;background:#fff}.ppim img{width:100%;height:100%;object-fit:contain}.ppim .wm{position:absolute;inset:0;pointer-events:none}.ppimph{width:120px;height:120px;border:1px dashed #cbd5e1;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px}
.pibad td{vertical-align:top}.pibad .piin{width:130px}.pibad .pip{width:80px}.pisug{font-size:12px;color:#b45309;margin-top:4px;white-space:nowrap}.pisug .btn{margin-left:4px;padding:1px 8px}
.pinote{color:#c2410c;font-weight:600;margin-top:2px}
.fpt input.fpin:placeholder-shown{background:#fff3b0;border-color:#e6c84f}  /* 款号定价：没填价格的格子淡黄色提醒，填了就是白色（纯样式，打字/清空即时变化） */
.fpmiss{font-size:12px;color:#94a3b8;white-space:nowrap}.fpmiss.on{color:#d92d20;font-weight:700;cursor:pointer;text-decoration:underline dotted}.fpmiss.on b{font-size:13px}.fpm0{color:#cbd5e1}
.fpop{position:absolute;z-index:50;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);width:280px;max-height:300px;display:flex;flex-direction:column}.fpoph{padding:8px 10px;border-bottom:1px solid #eee;font-size:13px;display:flex;gap:4px;align-items:center}.fpopx{margin-left:auto;cursor:pointer;font-size:16px;color:#64748b}.fpopl{overflow:auto;padding:8px;display:flex;flex-wrap:wrap;gap:6px}.fpopl a{padding:2px 8px;border:1px solid #cbd5e1;border-radius:12px;cursor:pointer;font-weight:600;font-size:12px}.fpopl a:hover{background:#e0ecff}
.fpt input.fphl{outline:3px solid #f59e0b;outline-offset:1px}
.fpsec{margin-top:14px}.fpsec+.fpsec{border-top:2px solid #1e2a4a;padding-top:12px}.fpsh{display:flex;align-items:center;gap:14px;margin-bottom:8px}.fpsn{font-size:17px}.fpsh .fpmiss{font-size:13px}.fpgm{color:#d92d20;font-weight:700;font-size:12px;margin-left:8px}.fph{white-space:nowrap}.fphi{display:inline-block;font-size:12px;color:#475569;background:#f1f5f9;border-radius:10px;padding:1px 8px;margin-right:6px}.fphi:first-child{color:#0f172a;font-weight:600}.fpsec .fptw{max-height:60vh}
.fpbat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;margin-bottom:6px}.fpbath{gap:10px;align-items:center}.fpbl{margin-top:8px;max-height:260px;overflow:auto}
.fpsec .fpt{table-layout:fixed;width:100%}.fpsec .fpt th:nth-child(1){width:140px}.fpsec .fpt th:nth-child(2){width:150px}.fpsec .fpt th:nth-child(3){width:170px}.fpsec .fpt th:nth-child(4){width:130px}.fpsec .fph{overflow:hidden;text-overflow:ellipsis}

/* 款号索引 */
.fpsh .fpixa,.fpsh .fpixd,.fpsh .fphint{margin-left:10px}
.fpdbar{display:none;margin-left:12px;font-size:13px;color:var(--red,#c00)}
.fpsec.fpdel .fpdbar{display:inline-flex;gap:6px;align-items:center}
.fpsec.fpdel .fpixd{display:none}
.fpck{display:none;margin:0 8px 0 0;width:16px;height:16px;vertical-align:middle}
.fpsec.fpdel tr.fpe .fpck{display:inline-block}
.fpempty{padding:10px 4px}
.ixal{max-height:420px;overflow:auto;border:1px solid var(--line,#ddd);border-radius:6px;padding:6px 10px}
.ixagh{font-weight:600;margin:8px 0 4px}
.ixagl{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 10px}
.ixai{display:flex;gap:4px;align-items:center;font-size:13px;cursor:pointer}
.fpsec .fphc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.pinewq{background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;padding:8px 10px;margin-bottom:6px;font-size:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pinewq>b,.pinewq{color:#92400e}
tr.fppr td{background:#fffbeb}

.fpsec td.fpst{color:#94a3b8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

#pp_f option.ppfx{color:#9ca3af}

/* 撤单 */
.pill.pst-wd{background:#e5e7eb;color:#6b7280}
tr.powd td{color:#9ca3af!important;text-decoration:line-through}
tr.powd td.poops,tr.powd td.pst{text-decoration:none}
tr.powd b{color:#9ca3af}
.powdw{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:6px;padding:8px 10px;font-size:13px;margin:8px 0 12px;line-height:1.6}
.btn.powdb{color:#b91c1c;border-color:#fca5a5;background:#fff}
/* 首页 待办 + 通知 并排 */

/* 概览四卡（财务概览卡片样式） */
.ovc .ovb{flex:1;min-height:0;overflow:hidden;font-size:13px}.ovl{padding:3px 0;border-bottom:1px dashed #eef0f3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ovl a{color:var(--blue);text-decoration:none}.ovdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d93025;margin-right:6px;vertical-align:middle}.ovl.ntread{opacity:.55}

/* 采购产品左栏：型号 | PO角标 | 工厂（灰） | 本月PO时间 | 缺 —— V2.47.103 */
.ppi b{flex:0 0 64px;font-variant-numeric:tabular-nums}.ppi .ppfn{flex:1;min-width:0;color:#9aa3af;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ppi .ppshort{margin-left:0;flex:0 0 56px;text-align:right;white-space:nowrap}
.ppi .pppod{flex:0 0 52px;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:#b45309;white-space:nowrap}
.ppi .ppob{flex:0 0 auto;font-size:10px;font-weight:700;line-height:1;padding:2px 5px;border-radius:999px;background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.ppi.poed{background:#fffbeb}.ppi.poed:hover{background:#fef3c7}.ppi.poed.on{background:#fde68a;border-color:#f59e0b}
.ppofil{display:flex;gap:6px;margin:0 0 8px;flex-wrap:wrap}.ppofil .btn{flex:0 0 auto}
.ppgrp > summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.ppgrp > summary::-webkit-details-marker{display:none}.ppgshort{margin-left:auto;color:#c5221f;font-weight:600;font-variant-numeric:tabular-nums;font-size:12.5px;white-space:nowrap}
.ppfacdd{position:relative;flex:0 0 auto}.ppfacpop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:200px;max-width:280px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:6px 0}
.ppfach{padding:6px 12px 4px;font-size:12px;color:#64748b}.ppfacl{max-height:260px;overflow:auto;padding:4px 0}
.ppfaci{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px}.ppfaci:hover{background:#f1f5f9}.ppfaci input{width:auto;margin:0}

.pphd{display:flex;align-items:center;gap:8px;padding:0 10px 4px 34px;font-size:11px;color:#94a3b8;user-select:none}
.pphd-m{flex:0 0 64px}.pphd-f{flex:1;min-width:0}.pphd-po{flex:0 0 52px;text-align:right}.pphd-s{flex:0 0 56px;text-align:right}

/* 报价状态开关：绿=开 灰=关 */
.qsw{position:relative;width:38px;height:20px;border-radius:10px;border:0;background:#cbd5e1;cursor:pointer;padding:0;transition:.15s;vertical-align:middle}
.qsw i{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:.15s}
.qsw.on{background:#16a34a}.qsw.on i{left:20px}.qsw:disabled{cursor:not-allowed;opacity:.55}

/* 工厂 · 产品目录 */
.fcat{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start}.fcl{display:flex;flex-direction:column;gap:8px;max-height:78vh}
#fc_list{overflow:auto;flex:1}.fci{display:flex;justify-content:space-between;padding:7px 10px;border-radius:6px;cursor:pointer}.fci:hover{background:#f1f5f9}.fci.on{background:#eff6ff;outline:1px solid #93c5fd}
.fcr{display:flex;flex-direction:column;gap:14px}.fct{width:100%;border-collapse:collapse}.fct th,.fct td{padding:7px 10px;border-bottom:1px solid #eef0f3;text-align:left}
.fcg{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fcim{aspect-ratio:1;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f8fafc}
.fcim .bth{position:relative;width:100%;height:100%;cursor:zoom-in}.fcim img{width:100%;height:100%;object-fit:contain}.fcim .wm{position:absolute;inset:0;pointer-events:none}
.fcn{text-align:center;margin-top:12px;line-height:1.8}.fcn b{color:#d92d20}.ppfn s{text-decoration:none;color:#c0c6cf}
@media(max-width:900px){.fcat{grid-template-columns:1fr}}

/* 节假日卡小日历 */
.mch{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.mch a{cursor:pointer;padding:0 8px;color:var(--blue);font-size:15px;user-select:none}
.mcg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.mcg u{text-decoration:none;color:#94a3b8;font-size:10.5px}.mcg i{font-style:normal;padding:2px 0;border-radius:5px;border:1px solid transparent;line-height:1.35}
.mcn{background:#dcfce7;color:#15803d}.mco{background:#ffedd5;color:#c2410c}.mwk{border-color:#94a3b8!important;color:#475569}.mcg i.mtd{font-weight:800;box-shadow:inset 0 0 0 1.5px var(--blue)}
.mcl{display:flex;gap:8px;margin-top:4px;font-size:10.5px}.mcl span{padding:0 6px;border-radius:4px;border:1px solid transparent}
/* 采购产品版面：左栏加宽到 460（缺量/工厂简称完整展示）；图片紧挨颜色卡、放大，和右边 × 留空 */
.pp{grid-template-columns:460px minmax(0,1fr)!important}
.ppbody{padding-right:44px}.ppbody .ppg{flex:0 1 auto!important}.ppbody .ppims{width:150px!important;flex:0 0 150px!important}.ppbody .ppim,.ppbody .ppimph{width:150px!important;height:150px!important}
.gi[data-id=ov_holi] .ovl{white-space:normal;line-height:1.45}

/* 概览「日历」：公历 + 农历；我的休息日 = 玫瑰色实心圆 */
.och{display:flex;justify-content:space-between;align-items:center;margin:2px 0 6px}.och a{cursor:pointer;padding:0 12px;color:var(--blue);font-size:18px;user-select:none}
.ocg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 2px;text-align:center}.ocg u{text-decoration:none;color:#94a3b8;font-size:12px}
.ocg i{font-style:normal;position:relative;display:flex;flex-direction:column;align-items:center;padding:3px 0}
.ocg i b{width:30px;height:30px;line-height:30px;border-radius:50%;font-size:14px;font-weight:600;color:#1f2937}.ocg i small{font-size:10.5px;color:#94a3b8;margin-top:1px;white-space:nowrap}.ocg i small.lf{color:#c2410c;font-weight:600}
.ocg i.off b{background:rgb(236,140,155);color:#fff}.ocg i.td b{box-shadow:0 0 0 2px var(--blue)}
.ocg i em,.ocl em{font-style:normal;position:absolute;top:0;right:8%;font-size:9.5px;color:#64748b;border:1px solid #94a3b8;border-radius:3px;padding:0 2px;line-height:1.2;background:#fff}
.ocl{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11.5px;color:#64748b}.ocl em{position:static}.ocl .dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:rgb(236,140,155);vertical-align:-1px;margin-right:4px}

.fpsec .fpin:disabled{color:#9aa3af!important;background:#f1f5f9!important;border-color:#e2e8f0!important;pointer-events:none;user-select:none;cursor:not-allowed}

.hrfac tr.hfrow td{background:var(--hf);border-top:2px solid #8a94a6}
.hrfac tr.hfrow:last-child td{border-bottom:2px solid #8a94a6}
.hrfac .hfdot{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--hf);border:1px solid #8a94a6;margin-right:6px;vertical-align:-1px}

/* 预览：顶栏国旗 + 醒目日历按钮 */
.clk{align-items:center}.clk .flag{width:20px;height:13px;flex:none;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12);display:block}

/* 预览：星期紧跟北京时间（约两个汉字间距）；原位置显示深圳天气 */
.clk .cwk{margin-left:2em;font-size:13px;font-weight:500;color:var(--txt);white-space:nowrap}

/* 预览：顶栏加高到 72px，文字和图标按比例放大（约 1.25 倍），全部垂直居中 */
.top{height:72px}
.top .crumb{font-size:17px}.top .crumb b{font-size:18px}
.clk{gap:8px}.clk .cl{font-size:14px}.clk .ct{font-size:16px}.clk .cwk{font-size:16px}
.clk .flag{width:26px;height:17px}

.who{font-size:15px}.topr .btn.sm{font-size:14px;padding:5px 14px}

.top .clocks{justify-content:space-between;gap:22px;padding:0 10px}.top .clk{min-width:0;flex:none}.top .crumb{flex:0 1 auto}
  /* 窄屏先藏出行提示（鼠标放上去看），保证不重叠 */
@media (max-width:1450px){.top .crumb>span,.top .crumb>i{display:none}}

/* 预览：顶栏全局搜索 */

.jumphl,.jumphl td{background:#fff3b0!important;transition:background .6s}

.rg{position:relative}.rgn{position:absolute;top:4px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e11d48;color:#fff;font-size:11px;line-height:18px;text-align:center;font-weight:700;box-shadow:0 0 0 2px #0b1f3a}
.nav .tdn{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e11d48;color:#fff;font-size:11px;line-height:18px;text-align:center}

/* 预览：闹钟卡 + 到点弹窗 */

  /* 有预警时，预警比出行提示重要：提示收到鼠标悬停里 */

.top .clocks{overflow:hidden}

@media (max-width:1500px){
  .top .clocks{gap:14px}}
@media (max-width:1500px){.clk .cl{display:none}.top .clocks{gap:10px;padding:0 4px}}  /* 窄屏：国旗代替「美国(太平洋)/北京」文字（鼠标悬停有说明） */

/* 预览：撤销条 */
.undot{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#1f2937;color:#fff;padding:10px 12px 10px 18px;border-radius:12px;z-index:9998;display:flex;align-items:center;gap:10px;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.undot .btn{background:#fbbf24;border-color:#fbbf24;color:#111;font-weight:700}

/* 预览：收藏页面 */
.favbtn{border:none;background:none;font-size:22px;color:#cbd5e1;cursor:pointer;margin-left:8px;vertical-align:-2px;padding:0}.favbtn.on{color:#f59e0b}.favbtn:hover{color:#f59e0b}
.favbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.favh{font-weight:700;color:#b45309;margin-right:4px}.favbar:empty{display:none}
.favi{display:inline-flex;align-items:center;gap:2px;background:#fff7e6;border:1px solid #fcd34d;border-radius:18px;padding:4px 6px 4px 14px}.favi a{font-weight:600;color:#92400e;text-decoration:none}
.favi i{font-style:normal;cursor:pointer;color:#b45309;padding:0 4px;opacity:.5}.favi i:hover{opacity:1}

/* 闹钟弹窗放大 1.5 倍（对话框、闹钟图标、时间、备注、按钮） */

/* 预览：网络信号图标（和放大后的顶栏图标一样大） */

/* 预览：交期提醒：3 天内到期没送齐 = 黄；过期没送齐 = 红 */
tr.due-soon td{background:#fef9c3!important}tr.due-soon td:first-child{box-shadow:inset 4px 0 0 #eab308}
tr.due-overdue td{background:#fee2e2!important}tr.due-overdue td:first-child{box-shadow:inset 4px 0 0 #dc2626}

/* 预览：搜索 → 产品目录卡片 */

/* 预览：白板卡片锁（红 = 锁定，绿 = 正常） */
.wblkt{color:#9ca3af;font-size:12px}
.qsw.lk{background:#dc2626}.wbcard.wblocked .wbt input,.wbcard.wblocked .wbt button:not(.wblkbtn),.wbcard.wblocked .wbhd button{opacity:.45;cursor:not-allowed;background:#f3f4f6}

/* 预览：白板卡片 + 右边竖排 3 张产品图 */
.wbcw{display:flex;gap:10px;align-items:flex-start}.wbcw>.wbcard{flex:1;min-width:0}
.wbimgs{width:150px;flex:none;display:flex;flex-direction:column;gap:8px}.wbimt{display:flex;gap:4px;flex-wrap:wrap;font-size:12px}
.wbim{width:150px;height:150px;border-radius:10px;overflow:hidden;position:relative;cursor:zoom-in;background:#f8fafc;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center}
.wbim img{width:100%;height:100%;object-fit:contain}.wbim.bph{cursor:default;font-size:12px}
.wbbigc{flex:none;align-self:center;display:flex}
.wbpkbig{font-size:22px;font-weight:800;padding:22px 18px;border-radius:14px;line-height:1.3;width:120px;white-space:normal;box-shadow:0 4px 12px #2563eb40}
.wbpkbig:disabled{background:#cbd5e1!important;color:#64748b!important;box-shadow:none;cursor:not-allowed;opacity:1}
.wbpkdone,.wbpkdone:disabled{background:#e5e7eb!important;color:#6b7280!important;box-shadow:none;cursor:default;pointer-events:none}
.pogo{cursor:pointer}a.pogo{color:inherit;text-decoration:underline dotted}td.pogo .pill,td.pogo span{cursor:pointer}
/* 生产白板卡片宽度：每张型号卡占满一行（右边留图片列 + 大按钮），最后一栏不再溢出 */
.wbcards{flex-wrap:wrap;overflow-x:visible}
.wbcw{flex:1 1 100%;width:100%;min-width:0}
.wbcw>.wbcard{flex:1 1 auto;min-width:0}
.wbt col.c4{width:230px}.wbt td.wbpk{overflow:visible}
@media (max-width:1400px){.wbimgs{width:118px}.wbim{width:118px;height:118px}.wbpkbig{width:100px;font-size:19px;padding:18px 12px}.wbt col.c4{width:210px}.wbt col.c1{width:92px}}
@media (max-width:1100px){.wbcw{flex-wrap:wrap}.wbcw>.wbcard{flex-basis:100%}.wbimgs{flex-direction:row;width:auto}.wbbigc{align-self:center}}

/* Batch C：手机布局（窄屏）：左栏变底部横条，表格可横向滑动，表单换行 */
@media (max-width:760px){.layout{flex-direction:column}.side.rail{position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;height:58px;flex-direction:row;z-index:50}.side.rail .brand{display:none}.side.rail .navs{display:flex;flex-direction:row;overflow-x:auto;width:100%}.side.rail .rg{min-width:58px}.side.rail .fly{bottom:58px;top:auto!important;left:0!important;position:fixed}.main{margin-left:0!important;padding-bottom:64px}.top{flex-wrap:wrap;gap:6px;height:auto!important;padding:6px 10px}.top .clocks{display:none}.content{padding:10px!important}.tw,table{display:block;overflow-x:auto;max-width:100%}.row{flex-wrap:wrap}.card{padding:12px}h1{font-size:18px}input,select,button{font-size:16px}}
.stkban{display:flex;gap:14px;align-items:center;background:#dc2626;color:#fff;padding:7px 16px;font-size:13px}.stkban b{font-size:15px}.stkban a{color:#fff;margin-left:auto;text-decoration:underline}

.stksum{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}.stksum>div{flex:1;min-width:120px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:10px 14px}.stksum b{display:block;font-size:22px}.stksum span{font-size:12px;color:#6b7280}.stksum .warn{background:#fffbeb;border-color:#fcd34d}

.stkalert{border:2px solid #dc2626}
/* 顶栏日历图标（新）：橙红顶条 + 两个深色装订环 + 英文月份；白纸大号深蓝日期；右下角折角 */

/* 手机入库（预览）：一屏一步，≥48px 触控 */
.mi{min-height:100vh;display:flex;flex-direction:column;background:#f1f5f9;font-size:17px}.mitop{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;background:#0b2545;color:#fff;height:56px;padding:0 8px}
.mitop b{flex:1;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mib0{width:48px;height:48px;border:0;background:transparent;color:#fff;font-size:32px}.miuser{font-size:13px;opacity:.8}
.mibody{flex:1;padding:12px 12px 150px}
.miscan{width:100%;height:210px;border:0;border-radius:20px;background:#1e6fd9;color:#fff;font-size:30px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 16px #1e6fd955}
.miscan svg{width:72px;height:72px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round}.miscan small{font-size:15px;font-weight:500;opacity:.9}#mi_v{width:100%;border-radius:14px;margin-top:10px}
.mih{margin:18px 4px 8px;color:#475569;font-size:15px}.milist{display:flex;flex-direction:column;gap:10px}
.micard{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;text-align:left;min-height:72px;border:1px solid #cbd5e1;border-radius:14px;background:#fff;padding:12px 16px;font-size:18px}
.micard span{grid-row:2;color:#64748b;font-size:15px}.micard em{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font-weight:800;font-size:22px;color:#0b2545}
.misum{display:flex;justify-content:space-between;background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:15px}.misum b{font-size:22px;margin-left:4px}.mired{color:#dc2626}
.mihd{display:flex;gap:12px;align-items:center;background:#0b2545;color:#fff;border-radius:12px 12px 0 0;padding:8px 12px;margin-top:8px}.mihd img,.minoimg{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#fff;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:12px}
.mihd b{display:block;font-size:20px}.mihd span{font-size:14px;opacity:.85}
.mirow{display:flex;align-items:center;gap:10px;background:#fff;border-bottom:1px solid #e2e8f0;padding:6px 10px;min-height:64px}.mirow.midiff{background:#fef2f2}.mirow.miok{background:#f0fdf4}.mirow.midiff.miok{background:#fef2f2}
.miz{width:64px;font-size:26px;font-weight:800}.miz small{font-size:13px;font-weight:500;margin-left:2px}.miexp{flex:1;color:#dc2626;font-weight:700;font-size:15px}
.minum{min-width:96px;height:52px;border:2px solid #94a3b8;border-radius:12px;background:#fff;font-size:28px;font-weight:800}.midiff .minum{border-color:#dc2626;color:#dc2626}
.micheck{width:56px;height:52px;border:2px solid #16a34a;border-radius:12px;background:#fff;color:#16a34a;font-size:30px;font-weight:900}.miok .micheck{background:#16a34a;color:#fff}
.mifoot{position:fixed;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fffffff2;box-shadow:0 -4px 14px #0002}
.migo{height:64px;border:0;border-radius:16px;background:#16a34a;color:#fff;font-size:24px;font-weight:800}.migo:disabled{background:#94a3b8}.miall{height:52px;border:2px solid #16a34a;border-radius:14px;background:#fff;color:#16a34a;font-size:19px;font-weight:700}
.midone{text-align:center;font-size:22px;font-weight:800;color:#16a34a;padding:12px}
.mipadm{position:fixed;inset:0;background:#0007;z-index:100;display:flex;align-items:flex-end}.mipad{width:100%;background:#fff;border-radius:20px 20px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}
.mipt{font-size:22px;font-weight:800}.mipt small{font-size:15px;color:#64748b;font-weight:500;margin-left:8px}.mipv{font-size:56px;font-weight:900;text-align:center;padding:4px 0 8px;letter-spacing:2px}
.mipk{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mipk button{height:60px;border:0;border-radius:12px;background:#e2e8f0;font-size:28px;font-weight:700}.mipk .mipm{background:#dbeafe;color:#1e40af}.mipk .mipc{background:#f1f5f9;font-size:18px}
.mipb{display:grid;grid-template-columns:1fr 2fr;gap:8px;margin-top:10px}.mipb button{height:60px;border:0;border-radius:14px;font-size:22px;font-weight:700;background:#e2e8f0}.mipb .mipok{background:#16a34a;color:#fff}
.miok2{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:80px;font-size:20px}.mibig{width:120px;height:120px;border-radius:50%;background:#16a34a;color:#fff;font-size:72px;display:flex;align-items:center;justify-content:center}.miok2 b{font-size:30px}
.mftab{flex:none;min-height:48px;min-width:64px;padding:0 12px;border-radius:12px;border:2px solid #cbd5e1;background:#fff;font-size:17px;font-weight:700}.mftab.on{background:#0f2744;color:#fff;border-color:#0f2744}
.mfhd{position:relative}.mflkb{margin-left:auto;min-width:56px;min-height:56px;border-radius:14px;border:0;background:#16a34a;color:#fff;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.mflkb.on{background:#dc2626}.mflkb small{font-size:11px}
.mflk{color:#16a34a}.mflk.on{color:#dc2626}.minum.mfem{color:#94a3b8}.mfm{color:#93c5fd;margin-right:6px}.mfm.on{color:#fff;font-weight:700;text-decoration:underline}
.mirow .miz .chip{font-size:15px;padding:4px 8px;margin-right:8px;white-space:nowrap;writing-mode:horizontal-tb;vertical-align:middle}.mirow .miz{display:flex;align-items:center;white-space:nowrap}
.mirow .miz small{margin-right:10px}
.mirow .miz{width:auto;min-width:64px;flex:none}
.msbar{display:flex;gap:8px;margin-bottom:6px}.msjump{flex:1;min-height:56px;border-radius:14px;border:2px solid #1d4ed8;background:#eff6ff;color:#1d4ed8;font-size:18px;font-weight:800}
.msgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mstile{min-height:72px;border-radius:14px;border:2px solid #cbd5e1;background:#fff;font-size:22px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center}
.mstile small{font-size:12px;font-weight:600;color:#64748b}.mstile.part{border-color:#f59e0b;background:#fffbeb}.mstile.all{border-color:#16a34a;background:#f0fdf4}
.mscols{display:flex;flex-direction:column;gap:12px}.mscol{display:flex;align-items:center;gap:14px;min-height:96px;border-radius:16px;border:3px solid #cbd5e1;background:#fff;padding:10px 14px;text-align:left}.mscol img,.mscol .minoimg{width:76px;height:76px;object-fit:cover;border-radius:10px}
.mscol b{font-size:28px;flex:1}.mscol.m-KY{border-color:#eab308}.mscol.m-KR{border-color:#f472b6}.mscol.m-KW{border-color:#94a3b8}.msdone{color:#16a34a;font-weight:700;font-size:14px}
.msr{min-height:52px;padding:4px 12px}.msr .minum{min-height:48px}.msok{font-size:24px;color:#16a34a;margin-right:10px}.msleft{display:flex;flex-wrap:wrap;gap:6px}.msleft span{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 8px;font-size:14px}
.msrows{display:grid;grid-template-columns:1fr 1fr;column-gap:6px}.msrows .msr{border-radius:10px;justify-content:space-between}.msrows .msr .minum{min-width:72px;width:auto;flex:1;margin-left:6px}.msrows .miz{min-width:52px;font-size:22px}
.mscw{display:flex;flex-direction:column;gap:12px;height:calc(100dvh - 68px - 24px)}
.msbig{display:flex;align-items:center;gap:16px;background:#0f2744;color:#fff;border-radius:18px;padding:14px 18px;flex:none;min-height:150px}.msbig img,.msbig .minoimg{width:120px;height:120px;object-fit:cover;border-radius:14px;background:#fff}
.msbig b{font-size:64px;font-weight:900;line-height:1;flex:1;text-align:center;word-break:break-all}
.mscw .mscols{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}.mscw .mscol{flex:1;min-height:110px;border-width:4px}
.mscw .mscol img,.mscw .mscol .minoimg{width:84px;height:84px}.mscw .mscol b{font-size:40px;font-weight:900}.mscw .mscol .muted,.mscw .msdone{font-size:17px;font-weight:700}
.mscw .mscol.m-KY{background:#fefce8}.mscw .mscol.m-KR{background:#fdf2f8}.mscw .mscol.m-KW{background:#f8fafc}
.mscw .mscol b{white-space:nowrap;flex:none;margin-right:auto}.mscw .mscol .msdone,.mscw .mscol .muted{text-align:right;flex:0 1 auto}
.wbgrp{font-weight:800;font-size:13px;color:#0f2744;background:#e2e8f0;padding:4px 8px;border-radius:6px;margin:6px 0 4px}
.mftabs2{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}.mftrow{display:grid;grid-template-columns:30px repeat(5,1fr);gap:5px;align-items:center;background:#e2e8f0;border-radius:12px;padding:5px}
.mftrow2{background:#fde68a}.mftl{font-size:12px;font-weight:800;color:#334155;writing-mode:vertical-rl;text-align:center;justify-self:center}.mftrow2 .mftl{color:#78350f}
.mftrow .mftab{min-width:0;padding:0 2px;font-size:16px;min-height:48px}
.dfs{color:#dc2626}.dfo{color:#16a34a}.dfk{color:#64748b;font-weight:600}.mfdept{background:#ecfeff;color:#0e7490;font-weight:700;border-radius:10px;padding:6px 10px;font-size:14px}

.fbc{border:2px solid #e2e8f0;border-radius:10px;padding:6px;display:flex;flex-direction:column;align-items:center;background:#fff}
.fbc span{font-size:13px;font-weight:700}.fbc>b{font-size:20px}.fbc>b small{font-size:12px;color:#64748b}.fbc em{font-style:normal;font-size:12px}.fbc.s{border-color:#dc2626;background:#fef2f2}.fbc.o{border-color:#16a34a}.fbc.k{border-color:#94a3b8}.fbc2 span::after{content:" 分色";font-size:10px;color:#b45309}
.fbbadge{background:#dc2626;color:#fff;font-weight:800;border-radius:12px;padding:12px;margin-bottom:10px;text-align:center;cursor:pointer;min-height:48px}
.fbnote{display:flex;gap:12px;align-items:center;background:#fff;border-radius:14px;padding:10px 12px;margin-bottom:8px;border:2px solid #e2e8f0}.fbnote.un{box-shadow:inset 4px 0 0 #1d4ed8}.fbnote.s{border-color:#fecaca}.fbnote.o{border-color:#bbf7d0}
.fbnd{font-size:26px;font-weight:900;min-width:66px;text-align:center}.fbnb{display:flex;flex-direction:column;gap:2px}.fbnb b{font-size:16px}.fbnb span{font-size:14px}.fbnb small{color:#64748b}

.dpw{display:flex;gap:14px;align-items:flex-start}.dpl{display:flex;flex-direction:column;gap:4px;width:230px;flex:none;max-height:560px;overflow:auto}.dpd{text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer;display:flex;justify-content:space-between;gap:6px}.dpd small{color:#64748b}.dpd.on{background:#0f2744;color:#fff}.dpd.on small{color:#cbd5e1}
.dpr{flex:1}.dpt{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.dpg{border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px}.dpgh{display:flex;gap:6px;align-items:center;border-bottom:1px solid #f1f5f9;padding-bottom:6px;margin-bottom:6px}.dpch{display:flex;flex-direction:column;gap:4px;padding-left:18px}.dpch label{font-size:14px}
.wbsp{border-top:1px solid #e2e8f0;padding-top:10px;margin-top:10px}.wbsph{display:flex;gap:10px;align-items:center;margin-bottom:6px}.wbsph img{width:48px;height:48px;border-radius:8px;object-fit:cover}.wbsph b{font-size:18px}.wbst{max-width:640px}
.mftrow2{grid-template-columns:30px repeat(4,1fr)}.mftrow .mftab{font-size:15px}

/* 手机盘点：美度一列 + 缩略图大图 */
.msrows.ms1col{grid-template-columns:1fr;row-gap:0}.ms1col .msr{min-height:0;padding:2px 12px}.ms1col .msr .minum{min-height:40px;height:40px;flex:1}.ms1col .miz{flex:none;width:64px;min-width:64px}
.msth{position:relative;flex:none;cursor:zoom-in}.msth img{display:block}.msth .wm{position:absolute;inset:0;pointer-events:none}.msth i{position:absolute;right:2px;bottom:2px;background:rgba(0,0,0,.6);color:#fff;font-style:normal;font-size:11px;border-radius:6px;padding:0 4px}
.mslb{position:fixed;inset:0;background:#000;z-index:9999;display:flex;flex-direction:column;color:#fff}.mslbt{display:flex;align-items:center;gap:10px;padding:12px 14px;font-size:17px}.mslbt span{flex:1;color:#cbd5e1}.mslbt button{background:none;border:0;color:#fff;font-size:28px}
.mslbi{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.mslbi img{max-width:100%;max-height:100%;object-fit:contain}.mslbi .wm{position:absolute;inset:0;pointer-events:none}
.mslba{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:72px;border:0;border-radius:12px;background:rgba(15,23,42,.55);color:#fff;font-size:40px}.mslba.l{left:6px}.mslba.r{right:6px}
.mslbd{display:flex;justify-content:center;gap:8px;padding:14px}.mslbd span{width:9px;height:9px;border-radius:50%;background:#64748b}.mslbd span.on{background:#fff}
.fpsec.fphoff .fpmiss,.fpsec.fphoff .fpgm{display:none}
/* 盘点单：11 行美度均分填满表头和交单按钮之间的高度 */
.mi:has(.ms1col){height:100dvh;min-height:0}.mibody:has(.ms1col){display:flex;flex-direction:column;padding-bottom:92px;min-height:0}
.msrows.ms1col{flex:1;min-height:0;grid-auto-rows:minmax(44px,1fr)}.ms1col .msr{height:auto;align-items:stretch}.ms1col .msr .miz{align-self:center}.ms1col .msr .minum{height:auto;min-height:0;padding:0;margin:3px 0 3px 6px}
/* 盘点单：交单按钮在上，款号卡片固定在下 */
.mi:has(.ms1col) .mibody{padding-bottom:104px}.mifoot .mihd.msfoot{margin:0;border-radius:12px}
/* 手机页统一：操作按钮在顶栏下面（吸顶），说明信息在底部固定 */
.mifoot.mitopact{position:sticky;top:56px;bottom:auto;z-index:4;padding:8px 12px;box-shadow:0 4px 12px #0002;background:#fffffff2}
.mibody{padding-bottom:24px}.mi:has(.miinfo) .mibody{padding-bottom:110px}
.miinfo{position:fixed;left:0;right:0;bottom:0;z-index:4;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffff2;box-shadow:0 -4px 14px #0002}
.miinfo .mihd{margin:0;border-radius:12px}.miinfo .fcn{margin:6px 0 0}
.mfact{display:flex;gap:8px;align-items:stretch}.mfact .migo{flex:1}.mfact .mflkb{flex:none}
/* 工厂 PO：滑动解锁 */
.mfsl{flex:1;position:relative;height:64px;border-radius:32px;background:#e2e8f0;overflow:hidden;touch-action:none;user-select:none}
.mfslf{position:absolute;left:0;top:0;bottom:0;width:64px;border-radius:32px;background:linear-gradient(90deg,#16a34a,#22c55e)}
.mfsl span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-left:40px;font-size:19px;font-weight:800;color:#475569;pointer-events:none}
.mfsl.ok span{color:#fff}
.mfslk{position:absolute;left:4px;top:4px;width:56px;height:56px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0004;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#16a34a;cursor:grab;touch-action:none}
.mfunl{flex:1;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#dcfce7;border:2px solid #16a34a;color:#15803d;font-size:19px;font-weight:800;min-height:60px}
/* 盘点改单 */
.msedb{margin-left:8px;border:2px solid #2563eb;color:#2563eb;background:#fff;border-radius:10px;padding:6px 12px;font-size:16px;font-weight:800;display:flex;flex-direction:column;align-items:center}.msedb small{font-size:11px;font-weight:600;color:#64748b}
.msedm{width:110px;font-size:20px;font-weight:800;border:0;border-radius:8px;padding:2px 6px}.msedc{display:inline-flex;gap:4px;vertical-align:middle}.msedc button{border:2px solid #fff6;background:transparent;color:#fff;border-radius:8px;padding:2px 8px;font-size:15px;font-weight:800}.msedc button.on{background:#fff;color:#0b2545}
.mihd a,.stkht+a{color:#93c5fd;text-decoration:underline;cursor:pointer}.stkht td,.stkht th{padding:4px 6px}.stkht .stkhnow td{background:#dcfce7;font-weight:700}.stkhby td{color:#64748b;font-size:12px;background:#f8fafc}
.mfdept1{font-size:18px;font-weight:800;padding:10px 12px;margin-bottom:8px}
/* 手机极简 / 防呆：颜色+符号表达状态 */
.dfa{color:#d97706}.miexp{color:#64748b;font-weight:700;font-size:16px}
.minum.mfok{border-color:#16a34a;background:#f0fdf4}.minum.mfshort{border-color:#dc2626;background:#fef2f2}.minum.mfbig{border-color:#d97706;background:#fffbeb;color:#b45309}
.mftab i{font-style:normal;display:block;font-size:20px;line-height:1.1}.mfdept1{font-size:26px;text-align:center}
.mfsaved{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;background:#16a34aee;color:#fff;font-size:72px;font-weight:900;display:flex;align-items:center;justify-content:center;z-index:10000;animation:mfsv .9s ease forwards;pointer-events:none}
@keyframes mfsv{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}20%{transform:translate(-50%,-50%) scale(1.05);opacity:1}80%{opacity:1}100%{opacity:0}}
.mfsl span{padding-left:50px;letter-spacing:4px;color:#64748b}
.mfsaved.big{background:#dc2626ee}
/* 大缺口（要重做）：大红横幅 + 格子加粗红 */
.mfbigal{background:#dc2626;color:#fff;font-size:24px;font-weight:900;border-radius:14px;padding:14px 12px;margin:0 0 8px;text-align:center;line-height:1.4;animation:mfpulse 1.2s ease-in-out infinite alternate}
@keyframes mfpulse{from{box-shadow:0 0 0 0 #dc262688}to{box-shadow:0 0 0 8px #dc262600}}
.dfbig{font-size:20px}.minum.mfshortbig{border-width:4px;border-color:#dc2626;background:#fee2e2;color:#b91c1c}
.fbnote.big{border:3px solid #dc2626;background:#fee2e2}
/* 工序名：不用图标，大号粗体字 */
.mftab{font-size:20px;font-weight:900;letter-spacing:1px}.mftab i{display:none}.mfdept1{font-size:34px;font-weight:900;letter-spacing:4px;color:#0b2545}
.mftrow .mftab{font-size:20px;font-weight:900;min-height:56px;letter-spacing:0}
/* 工序名：仿宋字体（朱雀仿宋 Zhuque Fangsong，SIL OFL 1.1，只取工序名用到的字，约 8KB；许可证见 /static/fonts/fs-proc-OFL.txt） */
@font-face{font-family:"ErpProcFS";src:url("/static/fonts/fs-proc.woff") format("woff");font-display:swap}
.mftab,.mftrow .mftab,.mfdept1{font-family:"ErpProcFS",FangSong,STFangsong,"FangSong_GB2312",serif;font-weight:900}
.mftrow .mftab{font-size:23px}.mfdept1{font-size:40px}
/* ===== 工人手机页铁律：戴手套也能点（≥64px、间距大）；颜色只三种含义：绿 = 正常/完成，黄 = 疑似按错（如超订单 2 倍），红 = 少/异常；其他状态一律中性色 ===== */
.dfa{color:#a16207}.minum.mfbig{border-color:#eab308;background:#fef9c3;color:#854d0e;border-width:4px}
.mflkb.on{background:#0f2744}.mftrow2{background:#e0e7ff}.mftrow2 .mftl{color:#1e3a8a}
.mstile.part{border-color:#3b82f6;background:#eff6ff}
.mi .minum{min-height:64px;font-size:30px}.mi .mirow{min-height:72px}.micheck{width:68px;height:64px}
.miall{height:64px;font-size:22px}.migo{min-height:72px;font-size:26px}.mi .mifoot.mitopact{gap:10px}
.mipk{gap:10px!important}.mipk button{height:72px;font-size:32px}.mipb button{min-height:72px;font-size:30px}
.mftab,.mftrow .mftab{min-height:64px}.mflkb{min-width:72px;min-height:72px;font-size:30px}.msjump{min-height:64px;font-size:26px}
.msedb{min-height:64px;min-width:72px;font-size:26px;justify-content:center}.mstile{min-height:80px}
.msrows.ms1col{grid-auto-rows:minmax(64px,1fr)}.ms1col .msr .minum{min-height:56px}
.mfsl{height:72px;border-radius:36px}.mfslk{width:64px;height:64px}.mfunl{min-height:72px}
.mi:has(.ms1col){height:auto;min-height:100dvh}.mipk button.mipc{font-size:30px;font-weight:900}.mipb .mipok{font-size:40px}
.msrows.ms1col{grid-auto-rows:minmax(72px,1fr)}.ms1col .msr .minum{min-height:60px}
/* 手机盘点单：11 行必须一屏放下、不滚动（少操作优先，覆盖 64px 下限）；顶栏/交单/底部卡片适当压缩，行均分剩余高度 */
.mi:has(.ms1col){height:100dvh;min-height:0;overflow:hidden}
.mi:has(.ms1col) .mitop{height:48px}.mi:has(.ms1col) .mifoot.mitopact{top:48px;padding:6px 10px}.mi:has(.ms1col) .migo{min-height:56px;height:56px}
.mi:has(.ms1col) .mibody{display:flex;flex-direction:column;min-height:0;padding:6px 10px var(--msinfo,76px)}
.mi:has(.ms1col) .miinfo{padding:6px 10px calc(6px + env(safe-area-inset-bottom))}.mi:has(.ms1col) .miinfo .mihd{padding:4px 10px;min-height:0}
.mi:has(.ms1col) .miinfo .mihd img,.mi:has(.ms1col) .miinfo .minoimg{width:48px;height:48px}
.msrows.ms1col{flex:1;min-height:0;grid-auto-rows:minmax(0,1fr);row-gap:3px}
.mi .ms1col .mirow.msr{min-height:0;padding:0 10px;height:auto}.mi .ms1col .msr .minum{min-height:0;height:auto;margin:3px 0 3px 8px;flex:1;font-size:28px}
.mi .mirow[onclick]{cursor:pointer;-webkit-tap-highlight-color:#16a34a33}
/* 大键盘：底行只有 AC、⌫ 两个等宽键；没有关闭键，点外面关 */
.mipk2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.mipk2 button{height:72px;border:0;border-radius:12px;background:#f1f5f9;font-size:30px;font-weight:900}
.mipb .mipe{background:#e2e8f0;color:#0f172a;font-size:28px;font-weight:900}
/* 统一大键盘：所有手机页同一尺寸；占屏幕下方 75%，上面 25% 是暗区（点了关闭） */
.mipadm .mipad{height:75dvh;display:flex;flex-direction:column;box-sizing:border-box}
.mipadm .mipk{flex:1;grid-auto-rows:1fr;min-height:0}.mipadm .mipk button,.mipadm .mipk2 button,.mipadm .mipb button{height:auto;min-height:0}
.mipadm .mipk2{flex:0 0 18%;min-height:0}.mipadm .mipb{flex:0 0 13%;min-height:0;grid-template-columns:1fr 2fr}.mipadm .mipb.mipb1{grid-template-columns:1fr}
.mipadm .mipt,.mipadm .mipv{flex:none}
.mipadm .mipk{flex:4 1 0}.mipadm .mipk2{flex:1 1 0;margin-top:10px}.mipadm .mipb{flex:1 1 0;margin-top:10px}

/* 人事›合作工厂：工厂部门 */
.hfdp{display:inline-block;padding:2px 8px;margin:2px 4px 2px 0;border-radius:10px;background:#fff;border:1px solid #cbd5e1;font-size:12px}.hfdp i{font-style:normal;margin-left:4px;color:#2563eb;font-weight:700}
.hfde{border:1px solid #e2e8f0;border-radius:8px;padding:8px;margin-bottom:8px}.hfds{margin-top:6px;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}.hfds label{display:inline-flex;gap:3px;align-items:center}

/* 部门权限设置：公司 / 各工厂 分块（默认折叠）；工厂部门只读 */
.dpblk{margin-bottom:8px;border:1px solid #e2e8f0;border-radius:8px;padding:4px 6px}.dpblk>summary{cursor:pointer;font-weight:700;padding:4px 2px}.dpfd{padding:5px 8px;font-size:13px;color:#334155}

/* 账户›部门 开关：绿 = 开，灰 = 关 */
.fdsw{position:relative;display:inline-block;width:46px;height:26px;cursor:pointer}.fdsw input{opacity:0;width:0;height:0}.fdsw i{position:absolute;inset:0;background:#cbd5e1;border-radius:13px;transition:.2s}.fdsw i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:.2s}.fdsw input:checked+i{background:#16a34a}.fdsw input:checked+i::after{left:23px}tr.fdoff td{color:#94a3b8}

/* 预览：老板看板 */
td.bgok{color:#16a34a;font-weight:700}td.bglow{color:#dc2626}

/* 交接台账 */
.hochip{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:10px;background:#e0e7ff;color:#1e3a8a;font-size:13px;font-weight:700}.hochip.ok{background:#dcfce7;color:#15803d}.hochip.neg{background:#fee2e2;color:#b91c1c}
.hobtn{margin-left:6px;padding:4px 10px;border-radius:8px;border:1px solid #0f2a4a;background:#fff;font-weight:700;font-size:14px}
.howho{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}.hochipb{padding:10px 16px;border-radius:22px;border:2px solid #cbd5e1;background:#fff;font-size:17px;font-weight:700;min-height:48px}.hochipb.on{border-color:#16a34a;background:#dcfce7}
.hokind{display:flex;gap:8px;margin-bottom:10px}.hokind button{flex:1;min-height:48px;font-size:18px;font-weight:800;border-radius:10px;border:2px solid #cbd5e1;background:#fff}.hokind button.on{background:#0f2a4a;color:#fff;border-color:#0f2a4a}
.hot td,.hot th{text-align:center;font-size:16px}.horow{cursor:pointer;height:52px}.horow td.hoq{font-size:20px;font-weight:800}td.hook{color:#16a34a;font-weight:800}td.honeg{color:#dc2626;font-weight:800}
#modal .box:has(.hokind){min-width:0;width:560px;max-width:94vw;box-sizing:border-box;padding:16px}#modal .box:has(.hokind) table.hot,#modal .box:has(.hokind) table{width:100%!important;display:table}
body:has(.mi) #modal .mask,body:has(.mi) #ovl .mask{left:0}

.stklock{position:fixed;right:0;bottom:0;z-index:8;background:rgba(100,116,139,.45);display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;cursor:not-allowed}.stklock div{background:#fff;border-radius:16px;padding:28px 40px;box-shadow:0 20px 50px rgba(15,23,42,.3);text-align:center;max-width:86vw}.stklock b{display:block;font-size:34px;color:#b91c1c;margin-bottom:8px}.stklock span{color:#475569;font-size:15px}.stkgray{filter:grayscale(1) opacity(.6);user-select:none;-webkit-user-select:none;pointer-events:none}
.msleft a{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;color:#0f2a4a;text-decoration:none;font-weight:600}.msgrp{margin-top:12px;color:#0f2a4a}.opsk{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.opsk .card{margin:0}

/* 自编送货单：识别失败时整块变红；底部栏右侧「清除图片」 */
.ocrbar{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.ocrbar #ocrclr{margin-left:auto}
.ocrg.ocrbad{display:block!important}
.ocrg.ocrbad #ocri,.ocrg.ocrbad .ocrl{display:none!important}
.ocrbadpanel{background:#c5221f;color:#fff;font-size:32px;font-weight:700;display:flex;align-items:center;justify-content:center;min-height:480px;border-radius:10px;letter-spacing:2px}
.stkoz{border:3px dashed #b9c4d6;border-radius:12px;padding:14px;margin:0 0 12px;cursor:pointer;background:#f7f9fc;min-height:88px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}
.stkoz:hover,.stkoz.drag,.stkoz:focus{border-color:#2f6fed;background:#eef4ff;outline:none}.stkoz.busy{cursor:wait;color:#2f6fed}
.stkoz .ocrt{font-size:16px;font-weight:600;color:#2a3550}.stkoz .ocrt small{display:block;font-size:12px;font-weight:400;color:#7a8499;margin-top:4px}

/* 手机工作页底栏导航（扫码入库 / 工厂扫码 / 手机盘点）：始终可去其他页 */
.mi{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
.minav{position:fixed;left:0;right:0;bottom:0;z-index:50;height:58px;display:flex;flex-direction:row;overflow-x:auto;background:rgba(245,245,247,.92);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -0.5px 0 rgba(0,0,0,.12);border-top:.5px solid rgba(0,0,0,.08)}
.minav .rg{min-width:58px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:10px;position:relative;padding:4px 2px;cursor:pointer}
.minav .rg.on,.minav .rg:active{color:var(--primary);background:rgba(0,122,255,.1)}
.minav .rg svg{width:22px;height:22px;fill:currentColor}
.minav .rgl{max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.minav .fly{display:none;position:fixed;bottom:58px;left:8px;right:8px;background:rgba(255,255,255,.96);backdrop-filter:blur(24px);border-radius:12px 12px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.12);max-height:50vh;overflow:auto;padding:8px;z-index:51;border:.5px solid rgba(0,0,0,.08)}
.minav .rg.open .fly{display:block}
.minav .fly .nav{display:block;padding:12px 14px;color:var(--txt);border-radius:8px;font-size:15px;text-decoration:none}
.minav .fly .nav.on,.minav .fly .nav:active{background:rgba(0,122,255,.14);color:var(--primary-deep)}
.mi .miinfo{margin-bottom:8px}

/* 采购产品 · 全部型号：按类型折叠卡（默认收起） */
.ppgrp{border:1px solid #e5e7eb;border-radius:10px;margin:0 0 8px;background:#fff;overflow:hidden}
.ppgrp>summary{list-style:none;cursor:pointer;padding:10px 12px;font-size:14px;display:flex;align-items:center;gap:8px;user-select:none;background:#f8fafc}
.ppgrp>summary::-webkit-details-marker{display:none}
.ppgrp>summary .arrow{width:1em;color:#64748b}
.ppgrp[open]>summary{border-bottom:1px solid #e5e7eb}
.ppgrp .ppgl{padding:4px}

/* 盘点：上传后左照片 / 右核对卡（仿打印单） */
.stksplit{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,420px);gap:16px;align-items:start;margin-top:8px}
@media(max-width:860px){.stksplit{grid-template-columns:1fr}}
.stkleftp .stkphwrap{border:1px solid #d0d7e2;border-radius:10px;background:#f3f5f9;overflow:auto;max-height:72vh;display:flex;align-items:center;justify-content:center;cursor:zoom-in;touch-action:none}
.stkleftp img{max-width:100%;max-height:70vh;width:auto;height:auto;object-fit:contain;display:block;transform-origin:center center;transition:transform .05s linear}
.stkleftp .stkphwrap.zoomed{cursor:grab}.stkleftp .stkphwrap.dragging{cursor:grabbing}
.skverify{border:1px solid #c5cdd8;border-radius:10px;padding:14px 16px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.06)}
.skvhd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;border-bottom:2px solid #111;padding-bottom:8px}
.skvhd b{font-size:18px;letter-spacing:.02em}
.skvsn{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:10px;flex-wrap:wrap}
.skvsn input{font:700 18px/1.2 ui-monospace,Menlo,monospace;width:160px}
.skvby{font-size:13px;color:#444}.skvby b{color:#111}
.skvpm{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.skvpm input,.skvpm select{width:100%}
.skvtb{width:100%;border-collapse:collapse;font-size:14px}
.skvtb th,.skvtb td{border:1px solid #cfd6e0;padding:4px 8px;text-align:center}
.skvtb th.z,.skvtb td.z{width:72px;background:#f7f9fc}
.skvtb td.q input{width:100%;border:0;background:transparent;text-align:center;font-size:15px;padding:4px}
.skvft{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:10px}

.phsheet{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;justify-content:center}.phsb{background:#fff;width:100%;max-width:480px;border-radius:14px 14px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}.phsb .btn{width:100%;padding:12px;font-size:16px}
.phsb .btn small{display:block;font-size:11px;font-weight:400;opacity:.8}
.acam{position:fixed;inset:0;z-index:10000;background:#000}.acam video{width:100%;height:100%;object-fit:cover}.acamf{position:absolute;left:8%;right:8%;top:14%;bottom:22%;border:3px solid rgba(255,255,255,.75);border-radius:14px;pointer-events:none;transition:border-color .15s}.acam.hit .acamf{border-color:#22c55e}.acamt{position:absolute;left:0;right:0;top:calc(10px + env(safe-area-inset-top));text-align:center;color:#fff;font-size:15px;text-shadow:0 1px 3px #000}.acamx{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom));min-width:140px}
.acamr{position:absolute;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));padding:10px 12px;border-radius:10px;color:#fff;font-size:14px;text-align:center;display:none}.acamr.ok{display:block;background:rgba(22,163,74,.9)}.acamr.bad{display:block;background:rgba(220,38,38,.9)}.acamn{position:absolute;right:12px;top:calc(40px + env(safe-area-inset-top));color:#fff;background:rgba(0,0,0,.5);padding:4px 10px;border-radius:12px;font-size:13px}

/* round15 PWA：主屏幕全屏打开（standalone）时避开 iPhone 刘海/横屏圆角；底部各栏已用 safe-area-inset-bottom */
@media (display-mode: standalone){html{background:#F4F4F6}body{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box;min-height:100vh;background:var(--bg)}}

/* round15b：触屏菜单分组 = 挂在 body 上的底部弹出单（不在横向滚动底栏里，iPhone 不裁不挡）；原 .fly 在触屏下不显示 */
.rgsheet{position:fixed;inset:0;z-index:9000;background:rgba(2,6,23,.35);display:flex;align-items:flex-end}
.rgsb{width:100%;max-height:70vh;overflow:auto;background:#fff;border-radius:16px 16px 0 0;padding:8px 10px calc(66px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #0004}
.rgst{font-size:13px;color:#64748b;padding:6px 12px 4px}
.rgsb .nav{display:flex;padding:13px 14px;color:#1e293b;border-radius:10px;font-size:16px;text-decoration:none;margin:1px 0}
.rgsb .nav.on,.rgsb .nav:active{background:rgba(0,122,255,.14);color:var(--primary-deep);font-weight:700}
@media (hover:none){.rg.open .fly{display:none!important}}
/* round15c：iPhone 全面屏（viewport-fit=cover 后 safe-area 有值）底栏被压扁 —— 原来 58px 高里再扣掉 safe-area 内边距，只剩 ~24px。改成 58px + safe-area，项目不压缩、可横滑，和普通页底栏一样大 */
.minav{height:calc(58px + env(safe-area-inset-bottom));box-sizing:border-box;align-items:stretch;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.minav::-webkit-scrollbar{display:none}
.minav .rg{flex:1 0 64px;min-width:64px;height:58px;box-sizing:border-box;font-size:11px}
.minav .rg svg,.minav .rg .ic{width:22px;height:22px;flex:none}
/* round15c：手机底栏「公司系统 | 工厂」分隔 = 一条细竖线（不再是上边距 + 横线，横向底栏里会把「工厂」挤下去） */
.minav .rg.rgext{margin-top:0;margin-left:9px;overflow:visible}.minav .rg.rgext::before{content:"";position:absolute;left:-5px;right:auto;top:12px;bottom:12px;width:0;border-top:0;border-left:1px solid rgba(0,0,0,.15)}
@media (max-width:760px){.side.rail .rg.rgext{margin-top:0;margin-left:9px;overflow:visible}.side.rail .rg.rgext::before{left:-5px;right:auto;top:10px;bottom:10px;width:0;border-top:0;border-left:1px solid rgba(0,0,0,.15)}}
/* round15c：手机底栏放大（工人看得清、点得准）：每格 ≥72×66px，字 15px 粗体，图标 26px，高对比；放不下就横滑；底部留 safe-area */
:root{--mnavh:66px}
.minav{height:calc(var(--mnavh) + env(safe-area-inset-bottom))}
.mi{padding-bottom:calc(var(--mnavh) + 8px + env(safe-area-inset-bottom))}
.minav .rg{flex:1 0 72px;min-width:72px;height:var(--mnavh);gap:3px;color:var(--muted);padding:6px 4px}
.minav .rg svg,.minav .rg .ic{width:26px;height:26px}
.minav .rgl{font-size:15px;font-weight:700;max-width:70px;line-height:1.15;color:inherit}
.minav .rg.on{color:var(--primary);background:rgba(0,122,255,.12);box-shadow:inset 0 -3px 0 var(--primary)}
@media (max-width:760px){
  .side.rail{height:calc(var(--mnavh) + env(safe-area-inset-bottom))!important;padding-bottom:env(safe-area-inset-bottom)}
  .side.rail .navs{height:var(--mnavh);scrollbar-width:none}.side.rail .navs::-webkit-scrollbar{display:none}
  .side.rail .rg{flex:1 0 72px;min-width:72px;height:var(--mnavh);gap:3px;color:var(--muted)}
  .side.rail .rg>svg,.side.rail .rg .ic{width:26px;height:26px}
  .side.rail .rgl{font-size:15px;font-weight:700;line-height:1.15}
  .main{padding-bottom:calc(var(--mnavh) + 12px + env(safe-area-inset-bottom))!important}
}
.rgsb{padding-bottom:calc(var(--mnavh) + 12px + env(safe-area-inset-bottom))}
.rgst{font-size:15px;font-weight:700;color:#334155;padding:8px 14px 6px}
.rgsb .nav{min-height:56px;align-items:center;font-size:18px;font-weight:600;padding:14px 16px;color:#0f172a}

/* round15c：手机横屏（宽 > 760 但高 ≤ 500）也用手机底栏布局，不是电脑侧栏；刘海一侧留 safe-area */
@media (orientation:landscape) and (max-height:500px) and (max-width:1100px){.layout{flex-direction:column}.side.rail{position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;height:58px;flex-direction:row;z-index:50}.side.rail .brand{display:none}.side.rail .navs{display:flex;flex-direction:row;overflow-x:auto;width:100%}.side.rail .rg{min-width:58px}.side.rail .fly{bottom:58px;top:auto!important;left:0!important;position:fixed}.main{margin-left:0!important;padding-bottom:64px}.top{flex-wrap:wrap;gap:6px;height:auto!important;padding:6px 10px}.top .clocks{display:none}.content{padding:10px!important}.tw,table{display:block;overflow-x:auto;max-width:100%}.row{flex-wrap:wrap}.card{padding:12px}h1{font-size:18px}input,select,button{font-size:16px}}
@media (orientation:landscape) and (max-height:500px) and (max-width:1100px){
  .side.rail{height:calc(var(--mnavh) + env(safe-area-inset-bottom))!important;padding-bottom:env(safe-area-inset-bottom)}
  .side.rail .navs{height:var(--mnavh);scrollbar-width:none}.side.rail .navs::-webkit-scrollbar{display:none}
  .side.rail .rg{flex:1 0 72px;min-width:72px;height:var(--mnavh);gap:3px;color:var(--muted,#6E6E73)}
  .side.rail .rg>svg,.side.rail .rg .ic{width:26px;height:26px}
  .side.rail .rgl{font-size:15px;font-weight:700;line-height:1.15}
  .main{padding-bottom:calc(var(--mnavh) + 12px + env(safe-area-inset-bottom))!important}
}
@media (orientation:landscape) and (max-height:500px) and (max-width:1100px){.side.rail .rg.rgext{margin-top:0;margin-left:9px;overflow:visible}.side.rail .rg.rgext::before{left:-5px;right:auto;top:10px;bottom:10px;width:0;border-top:0;border-left:1px solid rgba(0,0,0,.15)}}
@media (orientation:landscape) and (max-height:500px) and (max-width:1100px){
  .side.rail,.minav{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .main,.mi{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .rgsb{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);padding-left:calc(10px + env(safe-area-inset-left));padding-right:calc(10px + env(safe-area-inset-right));display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));align-content:start;gap:2px 8px}
  .rgst{grid-column:1/-1}
  .rgsb{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}
/* ======== round15c：手机底部标签栏（仿领星）+「应用」格子页；手机竖屏 ≤760 和手机横屏（高 ≤500）都用；电脑不显示 ======== */
#mtab{display:none}
/* 手机布局（html.phone：触屏手机/平板，或窄窗口；见 app.js layoutApply） */
html.phone{--mtabh:64px}
html.phone .side.rail,html.phone .side,html.phone .minav{display:none!important}
html.phone .layout{flex-direction:column}
html.phone .main{margin-left:0!important;padding-bottom:calc(var(--mtabh) + 12px + env(safe-area-inset-bottom))!important}
html.phone .mi{padding-bottom:calc(var(--mtabh) + 8px + env(safe-area-inset-bottom))!important}
html.phone #mtab{display:block}
html.phone .mtab{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;background:rgba(255,255,255,.92);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:.5px solid rgba(0,0,0,.1);box-shadow:none;
    height:calc(var(--mtabh) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box}
html.phone .mtab .mt{flex:1 1 0;min-width:0;height:var(--mtabh);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#65656D;text-decoration:none;-webkit-tap-highlight-color:transparent}
html.phone .mtab .mt svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7}
html.phone .mtab .mt svg.amz text{fill:currentColor}
html.phone .mtab .mt span{font-size:14px;font-weight:600;line-height:1.1;white-space:nowrap}
html.phone .mtab .mt.on{color:var(--primary,#007AFF)}
html.phone .mtab .mt.on span{font-weight:800}
html.phone .mtab .mt:active{background:#E9E9ED}
html.phone .rgsheet{display:none!important}
html.phone .main,html.phone .mi{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.apps{display:flex;flex-direction:column;gap:6px}
.appart{background:#fff;border-radius:14px;padding:12px 12px 4px;border:1px solid #DEDEE3;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.aphd{display:flex;align-items:center;gap:8px;margin:0 2px 6px}.aphd i{display:block;width:4px;height:20px;border-radius:2px;background:var(--primary,#007AFF)}.aphd b{font-size:18px;color:var(--txt,#252528)}
.appart+.appart .aphd i{background:#f59e0b}
.apsec{padding:6px 0 4px;border-top:1px solid #DEDEE3}.apsec:first-of-type{border-top:0}
.apsec h3{font-size:13px;font-weight:650;color:#65656D;margin:4px 4px 8px}
.apgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px 4px}
.aptile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 2px 10px;border-radius:12px;text-decoration:none;color:#252528;-webkit-tap-highlight-color:transparent}
.aptile:active{background:#E8F2FF}
.apic{width:54px;height:54px;border-radius:14px;background:var(--primary-soft,#E8F2FF);color:var(--primary,#007AFF);display:flex;align-items:center;justify-content:center}
.apic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7}.apic svg.amz text{fill:var(--primary,#007AFF)}
.apl{font-size:15px;font-weight:600;text-align:center;line-height:1.2;word-break:keep-all}
/* ======== round15c：手机页面风格（参考领星 / 跨境日报）：深蓝顶栏 + 大号粗标题；浅灰底 + 白色圆角卡片、留白足；深色粗标题 + 灰色次要文字；细分隔线；强调色少用。只在手机，电脑不变 ======== */
/* 手机布局（html.phone：触屏手机/平板，或窄窗口；见 app.js layoutApply） */
html.phone body,html.phone .main,html.phone .content,html.phone .mi{background:#F4F4F6}
html.phone .top{background:rgba(255,255,255,.86)!important;backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);color:var(--txt,#252528);border-bottom:.5px solid rgba(0,0,0,.08)!important;padding:calc(8px + env(safe-area-inset-top)) 14px 8px!important;min-height:52px;box-shadow:none}
html.phone .top .crumb b{color:var(--txt,#252528);font-size:20px;font-weight:800;letter-spacing:.02em}
html.phone .top .btn{background:transparent;color:var(--txt,#252528);border-color:rgba(0,0,0,.15)}
html.phone .top svg{color:var(--muted,#6E6E73)}
html.phone .content{padding:12px!important}
html.phone .phead{background:transparent;border:0;box-shadow:none;padding:4px 4px 10px;margin-bottom:6px}
html.phone .phead h1{font-size:22px;font-weight:700;color:#252528;letter-spacing:-.02em}
html.phone .phead h1 .ic{width:24px;height:24px}
html.phone .phead .muted{color:#65656D;font-size:13px}
html.phone .card{border:1px solid #DEDEE3;border-radius:14px;padding:14px 16px!important;margin-bottom:12px;box-shadow:0 1px 2px rgba(0,0,0,.04);background:#fff}
html.phone .card h3{font-size:15px;font-weight:650;color:#252528}
html.phone .muted{color:#65656D}
html.phone table td,html.phone table th{border-color:#DEDEE3}
html.phone .btn{border-radius:10px}
html.phone .mitop{background:rgba(255,255,255,.9);height:auto!important;min-height:56px;padding:calc(6px + env(safe-area-inset-top)) 10px 6px;border-bottom:.5px solid rgba(0,0,0,.08);color:var(--txt,#252528)}
html.phone .mitop b{font-size:21px;font-weight:800;letter-spacing:.02em}
html.phone .mitop .miuser{color:var(--muted,#65656D);font-size:14px}
html.phone .mibody{padding:12px}
html.phone .micard{background:#fff;border:1px solid #DEDEE3!important;border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.04);padding:14px 16px}
html.phone .micard b{font-size:16px;font-weight:700;color:#252528}
html.phone .micard span{color:#65656D}
html.phone .miscan{border-radius:18px;box-shadow:0 6px 18px rgba(26,102,210,.25)}
html.phone .mih{color:#65656D}

/* round15c：平板（iPad / 华为 MatePad，短边 ≥600）= 电脑侧栏布局，但适合手指：点按弹出菜单（不靠悬停）、点按区域 ≥44px、字稍大 */
@media (pointer:coarse) and (min-width:600px) and (min-height:600px){
  body{font-size:15px}
  .side.rail .rg{min-height:60px}
  .rgl{font-size:13px}
  .fly{width:230px}.fly .nav{min-height:46px;padding:12px 14px;font-size:16px;display:flex;align-items:center}
  .btn{min-height:40px}.btn.sm{min-height:36px}
  .top .btn,.top button{min-height:40px}
  input,select{min-height:38px}
}

/* round15c：平板（手机布局下宽屏）内容居中限宽，卡片两列；标签栏均分 */
@media (min-width:900px){html.phone .content{max-width:1080px;margin:0 auto}html.phone .apgrid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
  html.phone .mibody{max-width:900px;margin:0 auto;width:100%}}
.laysw{display:block;margin:14px auto 4px;padding:10px 18px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-size:15px;font-weight:600}
html.phone .top .clocks,html.phone .top .clocks *{color:var(--muted,#65656D)!important}

  /* 老板：手机/平板不显示 wifi/网络图标 */

/* round15d：盘点键盘 —— 美度大号红字靠左；款号·颜色右上对齐；空着不能 ✓；「← 上一个」；没填标红 */
.mipt.mipbig{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:36px;font-weight:900;color:#dc2626;line-height:1.15}
.mipt.mipbig .miptl{flex:none;color:#dc2626;font-size:36px;font-weight:900}
.mipt.mipbig small.miptr,.mipt.mipbig .miptr{display:block;flex:1;min-width:0;margin:8px 0 0;text-align:right;font-size:24px;font-weight:800;color:#0f172a;line-height:1.25;word-break:break-all}
.mipph{font-size:24px;color:#94a3b8;font-weight:700}
.mipok.mipdis{background:#94a3b8!important}
.mipprev{background:#e2e8f0;color:#1e293b;font-size:22px;font-weight:800;border:0;border-radius:14px;min-height:64px}.mipprev:disabled{opacity:.35}
.mipreq .mipb{display:grid;grid-template-columns:1fr 2fr;gap:10px}
.miphint{display:none;text-align:center;color:#dc2626;font-weight:800;font-size:17px;margin-top:8px}.miphint.on{display:block}
@keyframes mipsh{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}.mipshake{animation:mipsh .35s}
.msr.msmiss{background:#fef2f2;box-shadow:inset 4px 0 0 #dc2626}.msr.msmiss .miz{color:#dc2626}
.minum.ms0{color:#64748b}
.mipadm .mipb .mipprev{font-size:19px!important;white-space:nowrap;padding:0 6px}
/* round15d：交单吸顶避开实测顶栏高度；款号卡整块抬到标签栏+安全区之上，完整露出 */
.mifoot.mitopact{top:var(--mitoph,56px)}
.mi:has(.ms1col) .mifoot.mitopact{top:var(--mitoph,48px)}
html.phone .mifoot.mitopact,html.phone .mi:has(.ms1col) .mifoot.mitopact{top:var(--mitoph,56px)}
html.phone .mi:has(.ms1col) .migo{min-height:60px;height:60px;font-size:24px}
html.phone .miinfo,html.phone .mifoot:not(.mitopact){bottom:calc(var(--mtabh,64px) + env(safe-area-inset-bottom) + 8px);padding-bottom:10px!important;z-index:55}
html.phone .mi:has(.ms1col) .miinfo{padding:8px 12px 10px!important}
html.phone .mi:has(.miinfo) .mibody{padding-bottom:calc(var(--msinfo,120px) + 24px)!important}
html.phone .mi:has(.ms1col){height:100dvh;max-height:100dvh;overflow:hidden;box-sizing:border-box;padding-bottom:calc(var(--mtabh,64px) + env(safe-area-inset-bottom))!important}
html.phone .mi:has(.ms1col) .mibody{flex:1 1 0;min-height:0;overflow:hidden;padding-bottom:calc(var(--msinfo,120px) + 16px)!important}
html.phone .stklock{bottom:calc(var(--mtabh,64px) + env(safe-area-inset-bottom) + 8px)}

/* round15d：手机盘点「📷 扫描盘点单」 */
.msscan{display:flex;flex-direction:column;align-items:center;gap:4px;width:calc(100% - 24px);margin:12px 12px 4px;padding:16px;border:0;border-radius:16px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-size:20px;font-weight:800;box-shadow:0 6px 16px #2563eb40}
.msscan small{font-size:14px;font-weight:500;opacity:.9}
.msocr{padding:10px 12px 20px}
.msoph{position:relative;height:42vh;overflow:hidden;border-radius:12px;background:#0f172a;touch-action:manipulation}
.msoph img{width:100%;height:100%;object-fit:contain}
.msoph.zoom{overflow:auto;touch-action:pan-x pan-y pinch-zoom}
.msoph.zoom img{width:250%;height:auto;max-width:none;object-fit:initial}
.msoph i{position:absolute;right:8px;bottom:8px;font-style:normal;font-size:13px;background:#000a;color:#fff;padding:4px 10px;border-radius:12px;pointer-events:none}
.msoph.zoom i{position:sticky;float:right}
.msofl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.msofl label{font-size:14px;color:#475569}
.msofl input{width:100%;height:48px;font-size:20px;font-weight:700;padding:0 10px;border:1px solid #cbd5e1;border-radius:10px;margin-top:4px}
.msomt{grid-column:1/-1;display:flex;gap:8px}
.msomt button{flex:1;height:48px;font-size:18px;font-weight:700;border:2px solid #cbd5e1;border-radius:10px;background:#fff}
.msomt button.on{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}
.msocr .msrows .miz{color:#dc2626;font-size:26px;font-weight:800}
.msofill,.msore{display:block;width:100%;height:48px;font-size:16px;margin-top:10px}

.phsheet .phdis{opacity:.45;background:#f1f5f9!important;color:#64748b!important}
.phsheet .btn small{display:block;font-size:13px;font-weight:400;opacity:.85}

/* 自动连扫：底部大「结束扫描」（盖在底栏上面，留安全区） */
.acam .acamx{position:absolute;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));top:auto;transform:none;width:auto;height:60px;font-size:20px;font-weight:800;border:0;border-radius:16px;background:#dc2626;color:#fff;z-index:2}
.acam .acamr{bottom:calc(88px + env(safe-area-inset-bottom))}
.camfail{margin:6px 0 0;padding-left:20px;color:#b91c1c;font-size:15px;line-height:1.6}
.msdrl{display:block;width:calc(100% - 24px);margin:6px 12px 4px;height:46px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;font-size:16px;font-weight:700;color:#1e3a8a}
.msdr{padding:10px 12px}.msdri{display:flex;align-items:center;gap:10px;width:100%;padding:10px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;text-align:left;font-size:15px}
.msdri img{width:64px;height:64px;object-fit:cover;border-radius:8px}.msdri span{flex:1;display:flex;flex-direction:column}.msdri b{font-size:18px}.msdri small{color:#64748b}.msdri i{font-style:normal;color:#2563eb;font-weight:700}

.lsgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lsbtn{height:48px;border:2px solid #cbd5e1;border-radius:12px;background:#fff;font-size:16px;font-weight:700}
.lsbtn.on{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}
/* r15e-hotfix2：手机「核对盘点单」：照片固定在上面，只有下面（序列号/款号/颜色 + 美度行）独立滚动，方便对照 */
.mi:has(.msocr),html.phone .mi:has(.msocr){height:100dvh!important;max-height:100dvh!important;min-height:0!important;overflow:hidden!important;display:flex;flex-direction:column;box-sizing:border-box}
.mi:has(.msocr) .mibody,html.phone .mi:has(.msocr) .mibody{flex:1 1 0!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column;padding:8px 12px 0!important}
.msocr{flex:1 1 0;min-height:0;display:flex;flex-direction:column;padding:0!important}
.msocr .msoph{flex:none;height:min(42vh,45dvh)}
.msoscr{flex:1 1 0;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.msocr .msrows.ms1col{flex:none;grid-auto-rows:minmax(56px,auto)!important}
.msocr .ms1col .mirow.msr{min-height:56px}.msocr .ms1col .msr .minum{min-height:48px}
.msocr .msr.msact{background:#fef9c3;box-shadow:inset 4px 0 0 #f59e0b}
/* hotfix1：没认出颜色 → 标红要求人工选 */
.msoneed{grid-column:1/-1;color:#dc2626;font-weight:800;font-size:16px}
.msomt.need button{border-color:#dc2626;background:#fef2f2;animation:msneed 1s ease-in-out 3}
@keyframes msneed{50%{box-shadow:0 0 0 4px #fca5a5}}
#sk_mt.skneed{border:2px solid #dc2626;background:#fef2f2}
/* hf5 精简 */
.hf5home{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;align-items:start}
.hf5tabs{display:flex;gap:4px;margin:0 0 12px;border-bottom:1px solid var(--line,#e5e7eb)}
.hf5tabs a{padding:8px 14px;color:inherit;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.hf5tabs a.on{color:var(--blue,#0071dc);border-bottom-color:var(--blue,#0071dc);font-weight:600}
.top .crumb{flex:1 1 auto}.topr .clocks{flex:none;padding:0 4px 0 0;justify-content:flex-end}
@media (max-width:900px){.topr .clocks{display:flex}.topr .clocks .cl,.topr .clocks .flag{display:none}.topr .clocks .ct{font-size:12px}}

/* hf6 剩余未盘卡 */
.stkleftlist{display:flex;flex-wrap:wrap;gap:6px;max-height:60vh;overflow:auto}.stkleftlist span{padding:3px 8px;border-radius:8px;background:#f1f5f9;font-size:13px}.stksum .stkleftc:hover{outline:2px solid var(--blue,#0071dc)}

/* r15p：每张颜色卡的「按缺货填」，手机上拇指好按 */
.ppch .ppfill1{white-space:nowrap}
@media (max-width:760px){.ppch .ppfill1{min-height:44px;padding:0 16px;font-size:15px;font-weight:600}}

/* r15p：未来送货单 */
table.ppfut{width:100%}table.ppfut td{text-align:center;vertical-align:middle}table.ppfut td.n{text-align:right}table.ppfut td.ppfpo{min-width:150px}table.ppfut td.ppfpo .btn{margin-top:4px}
@media (max-width:760px){table.ppfut td.ppfpo{min-width:110px}table.ppfut td.ppfpo .btn{min-height:40px}}
/* r15p：退货单 = 送货单格式，标题栏玫红 */
.ssheet.qsheet th.sst,#qt.qsheet th.sst,#modal .ssheet.qsheet th.sst{background:rgb(214,90,130)!important;color:#fff!important;font-size:22px!important}
#qt.qsheet{counter-reset:qs}#qt.qsheet tr.qtr{counter-increment:qs}#qt.qsheet td.qsn::before{content:counter(qs)}#qt.qsheet td.n{text-align:right}
@media (max-width:760px){#qt.qsheet td,#qt.qsheet th{padding:4px 6px}}
@media print{.noprint,.phead,.top,.side,.mtab,.kpis,.k15>.card:not(.qcsheet){display:none!important}.qcsheet{box-shadow:none!important;border:none!important}}

/* r15p：请假一页 —— 左表单右记录；手机上下叠 */
.lv2{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.lv2>.card{margin:0}
@media (max-width:760px){.lv2{grid-template-columns:1fr}}
/* r15p 产品目录 */
.fc2{max-width:1100px}.fc2s{position:relative;margin-bottom:16px}
.fc2s input{width:100%;font-size:20px;padding:14px 18px;border:2px solid var(--pri,#1677ff);border-radius:12px;box-sizing:border-box}
.fc2ac{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #ddd;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.12);z-index:20;max-height:380px;overflow:auto}
.fc2o{display:flex;justify-content:space-between;padding:10px 16px;cursor:pointer}.fc2o.on,.fc2o:hover{background:#eef4ff}
.fc2e{padding:60px 0;text-align:center;font-size:15px}
.fc2h{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:12px}.fc2m{font-size:24px}.fc2t{color:#666}.fc2k{margin-left:auto;color:#555}
.fc2cs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.fc2chip{display:flex;align-items:center;gap:8px;border:1px solid #ddd;background:#fff;border-radius:999px;padding:5px 12px 5px 6px;cursor:pointer;font-size:13px;color:#444}
.fc2chip.on{border-color:var(--pri,#1677ff);box-shadow:0 0 0 2px rgba(22,119,255,.18)}
.fc2g{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fc2g .bth{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#f6f6f6;cursor:zoom-in}
.fc2g img{width:100%;height:100%;object-fit:contain}.fc2g .wm{position:absolute;inset:0;pointer-events:none}
.qm15 .kpi{padding:4px 18px;border-left:1px solid #eee}.qm15 .kpi .l{font-size:12px;color:#888}.qm15 .kpi .v{font-size:24px;font-weight:700}.qm15 .qmd{margin-top:8px}.qm15 summary{cursor:pointer;color:#555}
/* r15r 工人看板（手机优先） */
.wk2{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.wk2hero{background:linear-gradient(135deg,#16a34a,#0d9488);color:#fff;border-radius:22px;padding:22px;text-align:center}.wk2hero small{font-size:15px;color:#fff;opacity:.92}.wk2hero b{display:block;font-size:52px;font-weight:900;line-height:1.15;margin:6px 0}.wk2hero span{font-size:14px;background:rgba(255,255,255,.18);border-radius:999px;padding:3px 12px}
.wk2c{background:#fff;border-radius:18px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.wk2c h4{margin:0 0 10px;font-size:17px}
.wk2g{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wk2g>div{background:#f8fafc;border-radius:14px;padding:12px}.wk2g small{display:block;color:#64748b;font-size:13px}.wk2g b{font-size:26px;font-weight:800}
.wk2c .o{color:#d97706}.wk2c .r,.ff .r{color:#dc2626}.wk2c .g,.ff .g{color:#16a34a}
.wk2l{margin-top:10px;display:flex;flex-direction:column;gap:6px}.wk2l>div{display:flex;gap:10px;align-items:center;font-size:15px}.wk2l span{min-width:48px;color:#475569}.wk2l em{font-style:normal;font-size:13px}
.wk2p{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.wk2p>div{background:#ecfdf5;border-radius:14px;padding:12px}.wk2p small{display:block;color:#047857;font-size:13px}.wk2p b{font-size:20px}
.wk2s{margin-top:8px;color:#475569;font-size:14px}
.wk2d{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 2px;border-bottom:1px solid #f1f5f9;font-size:15px}.wk2d:last-child{border-bottom:0}
/* r15r 工厂财务（电脑优先） */
.ff .ffp{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ff .ffks,.ff .ffdk{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0}
.ff .ffk{background:#fff;border:1px solid #eef2f7;border-radius:12px;padding:12px 14px}.ff .ffk small{display:block;color:#64748b;font-size:12px}.ff .ffk b{font-size:20px}.ff .ffk.r b{color:#dc2626}.ff .ffk.g b{color:#16a34a}.ff .ffk.o b{color:#d97706}

.ff .ffsec{margin:16px 4px 6px}.ff .ffe,.ff .ffdf{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}.ff .ffe input,.ff .ffdf input,.ff .ffe select{max-width:150px}
.ff .ffdc{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.ff .ffdn{display:flex;gap:16px;margin:8px 0}
.ff .fftr{display:flex;gap:10px;align-items:flex-end;height:110px;padding-top:10px}.ff .fftr>div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.ff .fftr i{display:block;width:70%;background:#16a34a;border-radius:4px 4px 0 0}.ff .fftr i.neg{background:#dc2626}.ff .fftr small{color:#64748b}.ff .fftr em{font-style:normal;font-size:11px;color:#475569}
.r15m{border:1px solid #eef2f7;border-radius:10px;margin:6px 0;background:#fff}.r15m summary{display:flex;gap:12px;padding:10px 12px;cursor:pointer}.r15m summary .n{margin-left:auto}
html.phone .ff .ffks,html.phone .ff .ffdk{grid-template-columns:1fr 1fr}html.phone .ff .ffdc{grid-template-columns:1fr}
.wk2hero .lbl{font-size:15px;color:#ecfdf5;font-weight:600}
/* r16 合格率 / 冗余 / 余货 */
.r16 h4{margin:10px 0 4px;font-size:14px}.r16g{display:grid;grid-template-columns:1fr 1fr;gap:12px}.r16b{display:block;height:4px;background:#e5e7eb;border-radius:2px;margin-top:2px}.r16b s{display:block;height:100%;background:#16a34a;border-radius:2px}
.r16t i{background:#16a34a}.r16x{color:#b45309;margin-left:8px}.r16pl input{font:inherit}.r16d summary{cursor:pointer;margin:8px 0;font-weight:600}
@media (max-width:760px){.r16g{grid-template-columns:1fr}}

/* ops 品牌子系统 */
.opsbr{display:flex;align-items:center;gap:6px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 8px;padding:3px 12px;border:1.5px solid #dc2626;border-radius:999px;background:#fef2f2;color:#dc2626;font-size:13px;font-weight:700;line-height:20px}.opsbr b{font-size:15px;font-weight:800;line-height:20px}
.opsalert{display:flex;align-items:center;gap:6px;width:fit-content;max-width:100%;box-sizing:border-box;padding:4px 12px;border-radius:8px;background:#dc2626;color:#fff;font-size:13px;font-weight:700;line-height:20px;margin-bottom:8px}.opsalert b{font-size:16px;font-weight:900;line-height:20px}

.opssum{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0;font-size:15px}.opssum .g{color:#16a34a}.opssum .r{color:#dc2626}.opssum .o{color:#d97706}
tr.opsred td{background:#fee2e2;color:#991b1b}.opsmap{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.opsmap label{display:flex;gap:4px;align-items:center;font-size:13px}
.opsm summary{cursor:pointer;padding:6px 0;font-weight:600}.opsf{display:grid;grid-template-columns:160px 1fr 90px 80px;gap:8px;padding:4px 0;border-bottom:1px solid #f1f5f9}
@media (max-width:760px){.opsbr{font-size:13px}.opsbr b{font-size:15px}.opsalert b{font-size:16px}.opsf{grid-template-columns:1fr 1fr}}
.opsrev{border:2px solid #0b63ce;margin:0 0 12px;padding:14px}
.relv{font-size:11px;color:#94a3b8;margin-right:8px;white-space:nowrap}
.opsbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}.opsbar span{font-size:13px;color:#64748b;margin-right:4px}.opsbar button{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:5px 14px;cursor:pointer;font:inherit;font-size:14px}.opsbar button.on{background:#dc2626;border-color:#dc2626;color:#fff;font-weight:700}

/* AI助手按钮：电脑端标题右边，浅蓝胶囊；只有有权限的人才会渲染（服务器 /api/me ai_ok） */
.top .crumb:has(+ .ailink){flex:0 1 auto}
.top .ailink{flex:none;margin-right:auto;display:inline-flex;align-items:center;height:28px;padding:0 14px;border-radius:999px;background:#e6f2ff;border:1px solid #3b82f6;color:#3b82f6;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;line-height:1}
.top .ailink:hover{background:#d4e8ff;color:#2563eb;border-color:#2563eb}
html.phone .top .ailink{display:none!important}html.phone .top .crumb{flex:1 1 auto!important}  /* 手机端不显示 AI助手，只在电脑端 */
@media (max-width:760px),(orientation:landscape) and (max-height:500px) and (max-width:1100px){.top .ailink{display:none!important}.top .crumb{flex:1 1 auto!important}}
/* 手机审计（V2.18）：手机顶栏一行放下 —— 版本号只在电脑显示、名字过长省略，「退出」不再被挤出屏幕（老板账号原来看不到退出） */
@media (max-width:760px){.top{gap:8px}.top .crumb{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topr{min-width:0;flex:0 1 auto;gap:6px}.topr .relv{display:none}.topr .who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:30vw;min-width:0}.topr .btn.sm{flex:none}.topr .clocks .ct{font-size:11px;white-space:nowrap}}
/* V2.23.1：电脑左侧深色栏在矮窗口里放不下全部板块时，以前 .side.rail 是 overflow:visible → 图标溢出到 100vh 外、把整页撑高，
   页面一滚动侧栏底色就跟着上去，工厂/生产/账户 露在浅灰页面底色上。改成：侧栏固定一屏高、深色铺满，板块列表在栏内自己滚动（细滚动条）。
   弹出菜单 .fly 是 position:fixed，不会被裁掉。只管电脑侧栏（手机布局 / 窄窗口底部栏不受影响） */
@media (min-width:761px) and (min-height:501px), (min-width:1101px){
  html:not(.phone) .side.rail{height:100vh;max-height:100vh;overflow:hidden}
  html:not(.phone) .side.rail .navs{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent;overscroll-behavior:contain}
  html:not(.phone) .side.rail .brand{flex-shrink:0}  /* 品牌区不再被压扁（以前压扁后 FACAI ERP 字会叠到菜单上） */
}

/* V2.25.2 侧栏最底部小字：只给公司老板账号渲染（前端按服务器返回的角色判断）；只电脑端 */
.side .builtby{padding:10px 18px 14px;color:rgba(29,29,31,.38);font-size:11px;letter-spacing:.2px;white-space:nowrap;user-select:none}html.phone .side .builtby{display:none}

/* V2.30 桌面品牌筛选栏（领星式） */
.ofbar{display:flex;align-items:center;gap:8px;margin:0 0 12px;flex-wrap:wrap}
.ofdd{display:inline-flex;align-items:center;gap:6px;height:34px;min-width:132px;max-width:260px;box-sizing:border-box;padding:0 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:14px;color:#374151;cursor:pointer;user-select:none}
.ofdd:hover,.ofdd.open{border-color:#1677ff}.ofdd.on .ofl{color:#1677ff}.ofdd .ofl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.ofdd.ofro{cursor:default;background:#f9fafb}.ofdd.ofro:hover{border-color:#d1d5db}.ofk{color:#9ca3af;font-size:13px}
.ofcar{width:7px;height:7px;border-right:1.5px solid #9ca3af;border-bottom:1.5px solid #9ca3af;transform:rotate(45deg);margin:-3px 0 0 4px;transition:transform .15s}.ofdd.open .ofcar{transform:rotate(-135deg);margin-top:3px}
.ofhint{font-size:12px}
.ofmask{position:fixed;inset:0;z-index:900}
.ofpan{position:absolute;z-index:901;width:300px;background:#fff;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.16);padding:8px 0 0}
.ofsr{display:flex;align-items:center;gap:6px;margin:0 12px 6px;border-bottom:1px solid #1677ff;padding:6px 2px}.ofsr input{border:0;outline:0;flex:1;font-size:14px;background:none}
.ofls{max-height:300px;overflow:auto}
.ofit{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:14px;cursor:pointer;position:relative}.ofit:hover{background:#f5f7fa}
.ofit input{width:15px;height:15px;margin:0}.ofb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.ofo{color:#9ca3af;font-size:13px;white-space:nowrap}
.ofonly{display:none;margin-left:auto;color:#1677ff;font-size:13px;white-space:nowrap}.ofit:hover .ofonly{display:inline}
.offt{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid #f0f0f0;margin-top:4px}.offt .muted{flex:1;font-size:12px}.ofok{border-color:#1677ff!important;color:#1677ff!important}

/* V2.30 运营看板销售趋势：柱子上显示销售额 */
.obch{display:flex;align-items:flex-end;gap:6px;height:190px;padding:8px 0;overflow-x:auto}
.obb{flex:1;min-width:34px;max-width:90px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.obb i{display:block;width:70%;background:linear-gradient(#4DA3FF,#007AFF);border-radius:3px 3px 0 0}.obv{font-size:11px;color:#1f2937;margin-bottom:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.obd{font-size:11px;color:#6b7280;margin-top:4px}

/* V2.30 店铺筛选（照领星）：分组下拉 + 已选店铺标签 + 负责人纯文字 */
.ofwrap{margin:0 0 10px}.ofwrap .ofbar{margin:0}.ofown{font-size:13px;color:#374151;white-space:nowrap}.ofcur{font-size:13px;color:#6b7280;border:1px solid #e5e7eb;border-radius:6px;padding:4px 10px;background:#fff}
.ofdd .ofk{color:#9ca3af;margin-right:6px}.ofchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.ofchip{display:inline-flex;align-items:center;gap:6px;background:#eef4ff;border:1px solid #c9dafc;color:#1f4fbf;border-radius:4px;padding:2px 8px;font-size:12px}
.ofchip i{font-style:normal;cursor:pointer;color:#6b7280}.ofchip i:hover{color:#dc2626}.ofclr{cursor:pointer;color:#6b7280;display:inline-flex;padding:3px}.ofclr:hover{color:#dc2626}
.ofgrp{display:flex;align-items:center;gap:8px;padding:6px 12px 2px;font-size:12px;color:#374151}.ofgrp .ofo{color:#9ca3af;margin-left:auto}.ofit.ofsub{padding-left:30px}

/* V2.30 照领星首页卡片 */
.lxrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.obinv{padding:14px 16px;margin-top:0}.obinvsum{display:flex;gap:10px}.obinva,.obinvb{flex:1;border-radius:10px;padding:12px 14px;background:#E8F2FF;border:1px solid #DEDEE3;display:flex;flex-direction:column;gap:4px}.obinva small,.obinvb small{color:#65656D;font-size:12px}.obinva b,.obinvb b{font-size:22px;color:#007AFF;font-variant-numeric:tabular-nums;font-weight:700}.obinvtb th{text-align:right}.obinvtb th:first-child,.obinvtb td:first-child{text-align:left;color:#65656D}.obinvtb td{text-align:right}.obinvtot{color:#007AFF;font-weight:700}.lxc{padding:14px 16px}.lxh{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.lxh b{font-size:15px}
.lxtm{color:var(--muted,#65656D);font-size:12px}.lxsw{margin-left:auto;display:inline-flex;gap:0;background:rgba(0,0,0,.05);border:.5px solid rgba(0,0,0,.06);border-radius:8px;padding:2px;overflow:hidden}.lxsw a{padding:4px 12px;font-size:13px;cursor:pointer;color:var(--txt,#252528);border-radius:6px;text-decoration:none}.lxsw a.on{background:#fff;color:var(--txt,#252528);font-weight:600;box-shadow:0 .5px 1px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.06)}
.lxg{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.lxm .lxk,.lxp .lxk{color:#6b7280;font-size:12px}.lxm .lxv{font-size:20px;font-weight:700;margin:4px 0;color:#111827}.lxm.big .lxv{color:#2f6bff;font-size:24px}
.lxy{color:#9ca3af;font-size:12px}.lxnote{font-size:12px;margin-top:8px}.lxna{padding:18px;text-align:center}
.lxpc{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.lxp{border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;cursor:pointer}.lxp.on{border-color:#2f6bff;box-shadow:inset 0 3px 0 #2f6bff}.lxp .lxv{font-size:17px;font-weight:700;margin:3px 0}
.lxup{color:#16a34a}.lxdn{color:#dc2626}.lxsvg{width:100%;height:220px}.lxlab{font-size:12px;fill:#374151}.lxax{font-size:11px;fill:#9ca3af}
@media (max-width:1100px){.lxrow{grid-template-columns:1fr}.lxpc{grid-template-columns:repeat(4,1fr)}}
.ofpan{min-width:340px}.ofsub .ofb{overflow:visible;white-space:nowrap}

/* V2.39 运营看板：订单分布删掉，店铺绩效占宽、评论统计在右；业绩走势柱子多时不挤 */
.obpr{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,1fr);gap:10px}.obpr #ob_perf table{width:100%;white-space:nowrap}
@media (max-width:900px){.obpr{grid-template-columns:1fr}.obpr #ob_perf .tw{overflow-x:auto}}
#lx_pf .obch .obb{min-width:30px}#lx_pf .obv{font-size:10px}
.lxanim .obb i{transform-origin:bottom;animation:lxgrow .15s ease-out var(--dl,0ms) both}.lxanim .obv{animation:lxfade .12s ease-out calc(var(--dl,0ms) + .15s) both}
@keyframes lxgrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes lxfade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.lxanim .obb i,.lxanim .obv{animation:none}}
.dsac{background:#fff;border:1px solid #d1d5db;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.12);z-index:9999;max-height:260px;overflow:auto;font-size:13px}.dsaci{padding:5px 8px;cursor:pointer;white-space:nowrap}.dsaci.on,.dsaci:hover{background:#eff6ff}
.obcu{display:inline-flex;gap:4px;align-items:center;margin-left:8px;font-size:12px}.obcu input{padding:2px 4px;font-size:12px}
.dsclk{cursor:pointer}.dsclk:hover td{background:#fff7ed}.dsrv2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}.dsrv2 h4{margin:0 0 4px}.dsrvr{margin:6px 0}.dsrvf{display:flex;gap:12px;flex-wrap:wrap;align-items:center}@media (max-width:700px){.dsrv2{grid-template-columns:1fr}}
.opsk .r{color:#dc2626;font-weight:600}.opsk .o{color:#d97706;font-weight:600}
/* V2.40 业务报告 */
.bzr{padding:14px 16px}.bzt th,.bzt td{text-align:right;white-space:nowrap}.bzt th:first-child,.bzt td:first-child{text-align:left}.bzt tr.bztot td{border-top:2px solid #d9dee7;font-weight:600}.bzc{display:flex;gap:6px;align-items:center;margin:-4px 0 8px;flex-wrap:wrap}
@media (max-width:760px){.bzr .lxh .lxsw{margin-left:0!important;flex-wrap:wrap}.bzt{font-size:12px}}

/* V2.47.10 bizrep table fill */
#ob_biz .bzbizw{width:100%;box-sizing:border-box}
#ob_biz table.bzbiz{width:100%!important;table-layout:auto!important;border-collapse:collapse}
#ob_biz table.bzbiz th,#ob_biz table.bzbiz td{padding:4px 8px;white-space:nowrap;width:auto!important;text-align:center}
#ob_biz table.bzbiz th:first-child,#ob_biz table.bzbiz td:first-child{width:auto!important;min-width:72px;text-align:center}
#ob_biz table.bzbiz th:last-child,#ob_biz table.bzbiz td:last-child{width:auto!important;text-align:center}
/* V2.47.29 业务报告：表头与单元格居中（覆盖 macOS 数字右对齐） */
#ob_biz table.bzbiz th,#ob_biz table.bzbiz td,#ob_biz table.bzbiz td:not(:first-child),#ob_biz table.bzbiz td.n,#ob_biz table.bzbiz th.n{text-align:center!important}

/* ===== V2.47.20 覆盖深蓝：纯 macOS 浅灰侧栏（老板规范，覆盖 V2.47.13 navy） ===== */
:root{
  --bg:#F4F4F6;--surface:#FFFFFF;--sidebar:#E9E9ED;--sidebar-edge:#DEDEE3;
  --nav-on:#CFCFD5;--nav-on-txt:#242429;
  --text:#252528;--muted:#65656D;--border:#DEDEE3;--line:#DEDEE3;
  --txt:#252528;--sub:#65656D;--table-txt:#333339;--th-bg:#EFEFF2;--zebra:#F3F3F5;--alert:#A15B4F;
  --wm:#007AFF;--wm-d:#0066D6;--wm-n:#252528;--wm-y:#FF9F0A;
  --wm-bg:#E9E9ED;--wm-g:#F4F4F6;--wm-line:#DEDEE3;--wm-txt:#252528;--wm-sub:#65656D;--wm-ink:#252528;
  --primary:#007AFF;--primary-deep:#0066D6;--primary-soft:#E8F2FF;--navy:#007AFF;--navy2:#0066D6;--blue:#007AFF;--blue-l:#E8F2FF
}
.side,.side.rail{
  background:var(--sidebar,#E9E9ED)!important;color:var(--txt,#252528)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border-right:1px solid var(--border,#DEDEE3)!important
}
.side .brand,.rail .brand{border-bottom:1px solid rgba(0,0,0,.08)!important}
.side .bt,.rail .bt{color:var(--txt,#252528)!important}
.side .bs,.rail .bs{color:var(--muted,#65656D)!important;text-transform:none!important;font-size:12px!important;letter-spacing:0!important}
.side .nav,.fly .nav{color:var(--txt,#252528)!important}
.side .nav .ic,.fly .nav .ic,.rg>.ic,.rg>svg{color:var(--muted,#65656D)!important}
.side .nav:hover,.fly .nav:hover{background:rgba(0,0,0,.04)!important;color:var(--txt,#252528)!important}
.side .nav.on,.fly .nav.on{
  background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important;font-weight:600!important;
  box-shadow:none!important
}
.side .nav.on .ic,.fly .nav.on .ic,.rg.on>.ic,.rg.on>svg{color:var(--nav-on-txt,#242429)!important}
.rg,.rgl{color:var(--txt,#252528)}
.rg:hover,.rg.open{background:rgba(0,0,0,.04)!important;color:var(--txt,#252528)!important}
.rg.on{background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important;font-weight:700}
.rgd{box-shadow:0 0 0 2px var(--sidebar,#E9E9ED)!important;background:var(--accent,#FF9F0A)!important}
.fly{
  background:#fff!important;color:var(--txt,#252528)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border:1px solid var(--border,#DEDEE3)!important;box-shadow:0 8px 24px rgba(0,0,0,.08)!important
}
.fly .nav{color:var(--txt,#252528)!important}
.fly .nav:hover{background:rgba(0,0,0,.04)!important;color:var(--txt,#252528)!important}
.fly .nav.on,.fly .nav.on:hover{
  background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important;
  box-shadow:none!important
}
.fly .nav.on .ic{color:var(--nav-on-txt,#242429)!important}
.nav .bdg.cnt,.nav.on .bdg.cnt,.fly .nav .bdg.cnt,.fly .nav.on .bdg.cnt{
  background:rgba(0,0,0,.1)!important;color:var(--nav-on-txt,#242429)!important;border:none!important
}
.nav.on .bdg.cnt{background:rgba(0,0,0,.14)!important;color:var(--nav-on-txt,#242429)!important}
.nav .bdg.tagb,.fly .nav .bdg.tagb{
  background:rgba(0,0,0,.06)!important;color:var(--muted,#65656D)!important;border:none!important
}
.nav.on .bdg.tagb,.fly .nav.on .bdg.tagb{background:rgba(0,0,0,.08)!important;color:var(--nav-on-txt,#242429)!important}
.side .builtby{color:rgba(0,0,0,.35)!important}
/* 手风琴：浅灰侧栏深字 */
html.acc .side.rail{color:var(--txt,#252528)!important}
html.acc .rail .bt{color:var(--txt,#252528)!important}
html.acc .rg{color:var(--txt,#252528)!important}
html.acc .rg>svg,html.acc .rg>.ic{color:var(--muted,#65656D)!important}
html.acc .rg>.rgl{color:var(--txt,#252528)!important}
html.acc .rg>.rgc{color:var(--muted,#65656D)!important;opacity:.75}
html.acc .rg:hover,html.acc .rg.open{background:rgba(0,0,0,.04)!important}
html.acc .rg>.rgl:hover,html.acc .rg[data-go]:hover{color:var(--txt,#252528)!important}
html.acc .rg.on{background:none!important}
html.acc .rg.on>.rgl{color:var(--nav-on-txt,#242429)!important;font-weight:700}
html.acc .rg.on>svg,html.acc .rg.on>.ic{color:var(--nav-on-txt,#242429)!important}
html.acc .rg[data-go].on{background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important}
html.acc .rg[data-go].on>.rgl{color:var(--nav-on-txt,#242429)!important}
html.acc .rg>.fly{color:var(--txt,#252528)!important;background:none!important;box-shadow:none!important;border:0!important}
html.acc .fly .nav{color:var(--txt,#252528)!important}
html.acc .fly .nav .ic{color:var(--muted,#65656D)!important}
html.acc .fly .nav:hover{background:rgba(0,0,0,.04)!important;color:var(--txt,#252528)!important}
html.acc .fly .nav.on,html.acc .fly .nav.on:hover{
  background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important;font-weight:600!important;
  box-shadow:none!important
}
html.acc .fly .nav.on .ic{color:var(--nav-on-txt,#242429)!important}
html.acc .fly .rg{color:var(--txt,#252528)!important}
html.acc .fly .rg>.rgl{color:var(--txt,#252528)!important}
html.acc .fly .rg>.rgl:hover{color:var(--txt,#252528)!important}
html.acc .fly .rg .fly .nav{color:var(--muted,#65656D)!important}
html.acc .rg.rgext::before{border-top-color:rgba(0,0,0,.08)!important}
html.acc .side .builtby{color:rgba(0,0,0,.35)!important}
.minav .rg{color:var(--muted,#65656D)!important}
.minav .rg.on,.minav .rg:active{color:var(--primary,#007AFF)!important;background:rgba(0,122,255,.1)!important}
.minav .fly{background:#fff!important;color:var(--txt,#252528)!important}
.minav .fly .nav{color:var(--txt,#252528)!important}
.minav .fly .nav.on,.minav .fly .nav:active{background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important}
.rgsb{background:#fff!important}
.rgsb .nav{color:var(--txt,#252528)!important}
.rgsb .nav.on,.rgsb .nav:active{background:var(--nav-on,#CFCFD5)!important;color:var(--nav-on-txt,#242429)!important}
@media (max-width:760px){
  .side.rail{background:var(--sidebar,#E9E9ED)!important;color:var(--txt,#252528)!important}
  .side.rail .rg{color:var(--muted,#65656D)!important}
  .side.rail .rg.on{color:var(--nav-on-txt,#242429)!important}
}
/* 表：浅灰表头 + 隔行 + 数字等宽；无深色表头/密竖线 */
table.tnum th,table.bzbiz th,.tw th{background:var(--th-bg,#EFEFF2)!important;color:var(--muted,#65656D)!important;border-bottom:1px solid var(--border,#DEDEE3);font-weight:600;font-size:12px}
table.tnum td,table.bzbiz td,.tw td{color:var(--table-txt,#333339);border-bottom:1px solid rgba(0,0,0,.05);font-size:13px;font-variant-numeric:tabular-nums}
table.tnum tr:nth-child(even) td,table.bzbiz tr:nth-child(even) td{background:var(--zebra,#F3F3F5)}
table.tnum tr:nth-child(odd) td,table.bzbiz tr:nth-child(odd) td{background:#fff}
table.tnum .n,table.tnum td.n,table.bzbiz td:not(:first-child){text-align:right}
.alert,.rfhi,td .rfhi{color:var(--alert,#A15B4F)!important}

/* ===== V2.47.22 手机纯 macOS 浅色（对齐预览；功能不动） ===== */
html.phone{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif}
html.phone th{background:#EFEFF2!important;color:#65656D!important;font-weight:600}
html.phone tr:nth-child(even) td{background:#F3F3F5}
html.phone .alert,.rfhi,td .rfhi{color:#A15B4F!important}
html.phone .tabs,html.phone .wtabs{background:rgba(0,0,0,.05);border:.5px solid rgba(0,0,0,.06);padding:2px;border-radius:8px;gap:0}
html.phone .tabs a.on,html.phone .wtabs a.on,html.phone .tab.on{background:#fff!important;color:#252528!important;box-shadow:0 .5px 1px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.06);border:0!important;border-radius:6px}
html.phone .rgsheet,html.phone .side.drawer,html.phone .mdrawer{background:#E9E9ED!important}
html.phone .rgsheet .nav.on,html.phone .mdrawer .nav.on{background:#CFCFD5!important;color:#242429!important}

/* ===== V2.47.23 工厂端纯 macOS 浅色（PC+手机；功能/隔离不动） ===== */
/* 手机工厂壳：去深蓝顶栏/头卡，改浅灰+白卡 */
.mi{background:#F4F4F6!important;color:#252528;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif}
.mitop{background:rgba(255,255,255,.92)!important;color:#252528!important;border-bottom:.5px solid rgba(0,0,0,.08);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);box-shadow:none}
.mitop b{color:#252528!important}.mib0{color:#252528!important}.miuser{color:#65656D!important;opacity:1}
.miscan{background:#007AFF!important;box-shadow:0 4px 14px rgba(0,122,255,.28)!important;border-radius:18px}
.mih{color:#65656D!important}
.micard{border:1px solid #DEDEE3!important;border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.04);color:#252528}
.micard span{color:#65656D!important}.micard em{color:#252528!important}
.mihd,.miinfo .mihd,.mifoot .mihd.msfoot{background:#fff!important;color:#252528!important;border:1px solid #DEDEE3;border-radius:14px!important;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.mihd b{color:#252528!important}.mihd span{color:#65656D!important;opacity:1}
.mihd a,.stkht+a{color:#007AFF!important}
.mirow{border-bottom:1px solid #DEDEE3}.mirow:nth-child(even){background:#F3F3F5}
.minum{border-color:#DEDEE3!important;border-radius:12px;color:#252528}
.mifoot,.mifoot.mitopact,.miinfo{background:rgba(255,255,255,.94)!important;box-shadow:0 -0.5px 0 rgba(0,0,0,.08)!important}
.mipad{border-radius:20px 20px 0 0;border-top:1px solid #DEDEE3}
.mipt{color:#252528}.mipt small{color:#65656D!important}.mipv{color:#252528;font-variant-numeric:tabular-nums}
.mipk button,.mipk2 button,.mipb button:not(.mipok){background:#E9E9ED!important;color:#252528;border-radius:12px}
.mipk .mipm{background:#E8F2FF!important;color:#0066D6!important}.mipk .mipc{background:#F4F4F6!important}
/* 工序分段：浅灰轨道 + 白/灰选中（非深蓝） */
.mftab{border:1px solid #DEDEE3!important;background:#fff!important;color:#252528!important;border-radius:10px}
.mftab.on{background:#CFCFD5!important;color:#242429!important;border-color:#CFCFD5!important}
.mftrow{background:#E9E9ED!important;border-radius:12px}.mftl{color:#65656D!important}
.mftrow2{background:#E8F2FF!important}.mftrow2 .mftl{color:#0066D6!important}
.mfdept1{color:#252528!important}.mfdept{background:#E8F2FF!important;color:#0066D6!important}
.mfm{color:#007AFF!important}.mfm.on{color:#0066D6!important;font-weight:700}
.msjump{border:1px solid #DEDEE3!important;background:#fff!important;color:#007AFF!important}
.mstile{border:1px solid #DEDEE3!important;border-radius:14px}.mstile small{color:#65656D!important}
.mstile.part{border-color:#007AFF!important;background:#E8F2FF!important}
.msbig{background:#fff!important;color:#252528!important;border:1px solid #DEDEE3;border-radius:18px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.msbig b{color:#252528!important}
.mscol{border:1px solid #DEDEE3!important;border-radius:14px}
.msedb{border:1px solid #007AFF!important;color:#007AFF!important}
.msedc button{border-color:#DEDEE3;color:#252528}.msedc button.on{background:#CFCFD5;color:#242429;border-color:#CFCFD5}
.wbgrp{color:#252528!important;background:#EFEFF2!important}
.dpd{border:1px solid #DEDEE3!important}.dpd small{color:#65656D!important}
.dpd.on{background:#CFCFD5!important;color:#242429!important}.dpd.on small{color:#65656D!important}
.dpg{border:1px solid #DEDEE3!important;border-radius:12px}.dpgh{border-bottom:1px solid #DEDEE3}
.fbnote{border:1px solid #DEDEE3!important;border-radius:14px}.fbnote.un{box-shadow:inset 4px 0 0 #007AFF}
.fbnb small{color:#65656D!important}.fbc{border:1px solid #DEDEE3!important;border-radius:12px}
.fbc>b small{color:#65656D!important}
.hobtn{border:1px solid #DEDEE3!important;border-radius:8px;color:#252528}
.hokind button{border:1px solid #DEDEE3!important;background:#fff!important;color:#252528}
.hokind button.on{background:#CFCFD5!important;color:#242429!important;border-color:#CFCFD5!important}
.hochip{background:#E8F2FF!important;color:#0066D6!important}
.hochipb{border:1px solid #DEDEE3!important}.hochipb.on{border-color:#34C759!important;background:#F0FDF4!important}
.wbhd{border-bottom:1px solid #DEDEE3!important}
.wbt tr.wbsum td{border-top:1px solid #DEDEE3!important}
.wbq:hover{border-color:#007AFF;background:#E8F2FF}
input.wbq:focus{border-color:#007AFF;box-shadow:0 0 0 2px rgba(0,122,255,.25)}
.wbpkbig{box-shadow:0 2px 8px rgba(0,122,255,.22)!important}
.pill.pk-配货中,.pill.pst-b{background:#E8F2FF!important;color:#0066D6!important}
.wbpkd2{color:#007AFF!important}
.hfdp{border:1px solid #DEDEE3!important}.hfdp i{color:#007AFF!important}
.dpblk{border:1px solid #DEDEE3!important}
/* 绿/红状态语义保留（手套操作：完成/异常），仅中性壳改浅色 */
.mflkb.on{background:#A15B4F!important}

/* V2.47.73 老板看板：库存总结卡货值 + 亚马逊库存详情货值 */
.stksum .val,.obinva .val,.obinvb .val{display:block;font-size:13px;color:#C75A5A;font-weight:600;margin-top:2px;font-style:normal}
.bossallv{margin:12px 0}.bossallvrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.bossallvrow>div{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;min-width:0}.bossallvrow b{display:block;font-size:22px;color:#C75A5A;font-variant-numeric:tabular-nums;word-break:break-all}.bossallvrow small{color:#6b7280;font-size:12px}@media(max-width:900px){.bossallvrow{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bossv{font-size:11px;color:#C75A5A;font-weight:600;margin-top:2px}
.bossinvsum{margin-top:8px}

/* V2.47.79 库存侧栏徽章：绿色高亮 */
.bdg.ok{background:var(--success,#34C759);color:#fff;border-radius:10px;font-size:11.5px;font-weight:700;padding:1px 8px}
.nav .bdg.ok,.nav.on .bdg.ok,.fly .nav .bdg.ok,.fly .nav.on .bdg.ok{background:var(--success,#34C759)!important;color:#fff!important;border:none!important}

/* V2.47.105：采购计划顶栏颜色勾选 + 单卡删除 */
.ppmbar{display:inline-flex;align-items:center;gap:8px;margin-left:8px;flex-wrap:wrap}
.ppmck{display:inline-flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;user-select:none}
.ppmck input{margin:0}
.ppcard .ppch .ppmck{margin-right:2px}
.ppcard .ppx1{margin-left:4px;padding:0 8px;line-height:1.4}
.ppsh{flex-wrap:wrap;gap:6px}

/* V2.47.108：工厂独立域名登录页——沃尔玛风（蓝白、居中卡片、大按钮）；无 FACAI 痕迹 */
/* V2.47.110：ringsking 登录 — 干净蓝白 + macOS（公司站 .lgw 不动） */
.lgw-fac{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:36px 16px;box-sizing:border-box;background:linear-gradient(180deg,#F5F8FF 0%,#F5F7FA 55%,#F2F4F8 100%);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}
.lgfac-center{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:16px}
.lgfac-mark{text-align:center;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}
.lgfac-logo{width:220px;max-width:72%;height:auto;display:block;margin:0 auto 2.4em;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;object-fit:contain;filter:none!important}
.lgw-fac .lgword{color:#1B6FE8;font-size:26px;font-weight:700;letter-spacing:.3px;justify-content:center;text-align:center;width:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif}
.lgw-fac .lgsub{color:#6E6E73;margin-top:8px;font-size:13px;font-weight:500;letter-spacing:.2px;text-align:center;width:100%}
.lgw-fac .lgc{width:100%;max-width:400px;min-height:0;border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:28px 26px 24px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 40px rgba(27,111,232,.10)}
.lgw-fac .lgc h2{margin:0 0 16px;font-size:22px;font-weight:700;color:#1D1D1F;letter-spacing:-.2px}
.lgw-fac .lgc label{font-size:13px;font-weight:600;color:#1D1D1F;margin:10px 0 6px}
.lgw-fac .lgc input{height:46px;border:1px solid #D2D2D7;border-radius:12px;padding:0 14px;font-size:16px;background:#FAFAFA;transition:border-color .15s,box-shadow .15s,background .15s}
.lgw-fac .lgc input:focus{outline:none;border-color:#1B6FE8;background:#fff;box-shadow:0 0 0 4px rgba(27,111,232,.18)}
.lgw-fac .lghint{font-size:12px;color:#86868B;margin:14px 0 18px}
.lgw-fac .lgbtn{height:48px;border-radius:12px;background:#1B6FE8;font-size:16px;font-weight:700;letter-spacing:.2px;box-shadow:0 1px 2px rgba(27,111,232,.35);border:0;color:#fff}
.lgw-fac .lgbtn:hover{background:#0B5BD3}
.lgw-fac .lgbtn:disabled{background:#C7C7CC;color:#fff;box-shadow:none}
.lgw-fac .lgerr{color:#FF3B30;margin-top:12px;min-height:20px;font-weight:600;font-size:13px;text-align:center}
.lgw-fac .lgeye{top:7px;right:8px;width:32px;height:32px}
.lgfacnote{display:none}
@media (max-width:760px){.lgw-fac{padding:28px 16px}.lgfac-logo{width:200px;max-width:70%;margin-bottom:2.2em}.lgw-fac .lgword{font-size:22px}.lgw-fac .lgc{padding:22px 18px;border-radius:16px}}

/* V2.47.110：工厂整站皮肤 — 仅 html.rings（ringsking.com / 工厂账号）；facaierp.com 不加此类 */
html.rings{
  --primary:#1B6FE8;--primary-deep:#0B5BD3;--primary-soft:#EAF2FF;
  --navy:#1B6FE8;--navy2:#0B5BD3;--blue:#1B6FE8;--blue-l:#EAF2FF;
  --bg:#F5F7FA;--surface:#FFFFFF;--surface-2:#F5F7FA;
  --line:#E5E7EB;--txt:#1D1D1F;--sub:#6E6E73;--muted:#86868B;
  --shadow:0 1px 3px rgba(0,0,0,.05),0 10px 28px rgba(27,111,232,.07);
}
html.rings body{background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}
html.rings .side.rail{background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-right:1px solid rgba(0,0,0,.06)}
html.rings .brand.brand-rings{display:flex;align-items:center;justify-content:center;padding:14px 8px 12px;border-bottom:1px solid rgba(0,0,0,.06);cursor:pointer;min-height:72px}
html.rings .rings-mark{width:58px;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 2px 8px rgba(27,111,232,.2))}
html.rings .top{background:rgba(255,255,255,.78);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid rgba(0,0,0,.06)}
html.rings .card,html.rings .box{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
html.rings .card{border-radius:14px}
html.rings .btn{border-radius:10px;border:1px solid rgba(0,0,0,.08);background:#fff}
html.rings .btn.pri{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(27,111,232,.3)}
html.rings .btn.pri:hover{background:var(--primary-deep)}
html.rings .rg.on{background:rgba(27,111,232,.10);color:var(--primary-deep)}
html.rings .nav.on{background:rgba(27,111,232,.12);color:var(--primary-deep);font-weight:600}
html.rings .content{background:transparent}
html.rings .phead h1{letter-spacing:-.2px}
html.rings input,html.rings select,html.rings textarea{border-radius:10px;border:1px solid #D2D2D7;background:#FAFAFA}
html.rings input:focus,html.rings select:focus,html.rings textarea:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px rgba(27,111,232,.16);outline:none}
html.rings .mtab .mt.on{color:var(--primary)}
html.rings .apic{background:var(--primary-soft);color:var(--primary)}
html.rings .aphd i{background:var(--primary)}
.facpobar{gap:8px;flex-wrap:wrap;align-items:center}
.facpocard{padding:0;overflow:hidden}
.facpohd{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;cursor:pointer}
.facpohd:hover{background:#f8fafc}
.facpoarr{width:1.2em;color:#64748b}
.facpol{padding:0 12px 12px}

/* V2.47.111：公司站侧栏 RINGSKING 入口（跳转 ringsking.com） */
.rg-rings{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px;margin:8px 6px 6px;border-radius:12px;border:1px solid rgba(27,111,232,.18);background:linear-gradient(180deg,#F5F8FF,#FFFFFF);text-decoration:none;color:#1B6FE8;cursor:pointer}
.rg-rings:hover{background:#EAF2FF;border-color:rgba(27,111,232,.35)}
.rg-rings .rings-rail{width:40px;height:auto;display:block;filter:drop-shadow(0 2px 6px rgba(27,111,232,.2))}
.rg-rings .rgl{font-size:9px;font-weight:700;letter-spacing:.2px;line-height:1.1}
.apic-rings{background:#EAF2FF!important;padding:6px;box-sizing:border-box}
.apic-rings img{width:36px;height:auto;display:block}


/* V2.47.113：工厂顶栏无限 logo；无星标方块 */
html.rings .brand .gem{display:none!important}
html.rings .brand-rings{background:transparent!important;box-shadow:none!important;border-bottom:1px solid rgba(0,0,0,.06)}
html.rings .brand-rings .rings-mark{width:64px;height:auto;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
html.rings .top{display:flex;align-items:center;gap:10px}
html.rings .top-rings{width:36px;height:auto;flex:none;background:transparent;border:0;display:block;filter:drop-shadow(0 1px 4px rgba(27,111,232,.16))}
img.lgfac-logo,img.rings-mark,img.rings-rail,img.top-rings{background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important;filter:none!important}

.lgw-fac .lgpw{position:relative;width:100%}.lgw-fac .lgpw input{width:100%;padding-right:44px;box-sizing:border-box}.lgw-fac .lgeye{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:32px;height:32px;border:0;background:transparent;color:#86868B;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
