*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f4f0;--surface:#fff;--s2:#f8f7f4;--border:#e4e2dc;--border2:#d0cec7;--text:#1a1917;--t2:#6b6860;--t3:#9a9890;--accent:#1a4a8a;--al:#e8eef7;--danger:#c0392b;--ok:#1a7a4a;--sh:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);--r:8px;--rl:12px}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;min-height:100vh}input,textarea,select{font-family:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px 10px;width:100%;outline:none;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a4a8a14}textarea{resize:vertical;line-height:1.5}button{font-family:inherit;cursor:pointer}.hdr{background:var(--surface);border-bottom:1px solid var(--border);padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:52px;position:sticky;top:0;z-index:100;box-shadow:var(--sh)}.hdr-l{display:flex;align-items:center;gap:14px}.logo{font-size:14px;font-weight:700;color:var(--accent);letter-spacing:-.3px;white-space:nowrap}.dtabs{display:flex;gap:2px;background:var(--bg);border-radius:var(--r);padding:3px}.dtab{padding:4px 12px;border-radius:6px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--t2);cursor:pointer;transition:all .15s;white-space:nowrap}.dtab.on{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px #0000001a}.hdr-r{display:flex;gap:6px;align-items:center}.btn{padding:6px 12px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.btn:hover{background:var(--s2);border-color:var(--border2)}.btn-p{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-p:hover{background:#153d7a}.btn-ok{background:var(--ok);color:#fff;border-color:var(--ok)}.btn-ok:hover{background:#145f3a}.btn-d{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-sm{padding:3px 9px;font-size:11px}.btn-xs{padding:2px 6px;font-size:10px}.lay{display:flex;height:calc(100vh - 52px);overflow:hidden}.lay-sidebar{width:320px;min-width:180px;max-width:600px;display:flex;flex-direction:row;overflow:hidden;flex-shrink:0}.lay-divider{width:5px;background:var(--border);cursor:col-resize;flex-shrink:0;position:relative;transition:background .15s}.lay-divider:hover,.lay-divider.dragging{background:var(--accent)}.lay-divider:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:32px;border-radius:2px;background:var(--t3)}.lay-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.sb{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:row;overflow:hidden;flex:1}.sb-tabs{display:flex;flex-direction:column;border-right:1px solid var(--border);flex-shrink:0;width:138px;padding:8px 6px;background:var(--s2);gap:2px;overflow-y:auto}.sb-tabs::-webkit-scrollbar{width:0}.st{width:100%;padding:8px 9px;text-align:left;font-size:12px;font-weight:600;color:var(--t2);border:none;background:transparent;cursor:pointer;border-left:3px solid transparent;transition:all .15s;white-space:nowrap;line-height:1.2;display:flex;flex-direction:row;align-items:center;gap:8px;border-radius:8px}.st.on{color:var(--accent);border-left-color:var(--accent);background:var(--al);box-shadow:inset 0 0 0 1px #1a4a8a14}.st:hover{background:#eef3fa;color:var(--accent)}.sb-section{font-size:11px;color:var(--t3);font-weight:700;padding:10px 8px 4px;border-top:1px solid var(--border);margin-top:4px;text-align:left}.st-sep{height:1px;background:var(--border);margin:4px 8px;flex-shrink:0}.sb-body{flex:1;overflow-y:auto;padding:14px}.fg{margin-bottom:12px}.fl{font-size:11px;font-weight:500;color:var(--t2);margin-bottom:3px;display:flex;align-items:center;gap:4px;text-transform:uppercase;letter-spacing:.3px}.sh{font-size:11px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.cnt{display:flex;flex-direction:column;overflow:hidden}.ctb{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.vtog{display:flex;gap:2px;background:var(--bg);border-radius:var(--r);padding:3px}.vb{padding:4px 11px;border:none;background:transparent;border-radius:5px;font-size:12px;font-weight:500;color:var(--t2);cursor:pointer}.vb.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}.ea{flex:1;overflow-y:auto;padding:18px}.its{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}.ith{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--s2);border-bottom:1px solid var(--border)}.ittbl{width:100%;border-collapse:collapse;font-size:12px}.ittbl th{padding:7px;text-align:left;font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;background:var(--s2);border-bottom:1px solid var(--border);white-space:nowrap}.ittbl td{padding:3px 5px;border-bottom:1px solid var(--border);vertical-align:middle}.ittbl tr:last-child td{border-bottom:none}.ittbl tr:hover td{background:var(--al)}.ittbl input,.ittbl select{border:1px solid transparent;background:transparent;border-radius:4px;padding:3px 5px;font-size:12px}.ittbl input:focus,.ittbl select:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 2px #1a4a8a1a}.itf{padding:9px 14px;background:var(--s2);border-top:2px solid var(--border);display:flex;justify-content:flex-end;gap:18px;font-size:12px}.ti{display:flex;align-items:center;gap:5px}.tl{color:var(--t2)}.tv{font-weight:600;font-size:14px}.pva{flex:1;overflow-y:auto;padding:20px;background:var(--bg);display:flex;justify-content:center}.pvp{background:#fff;width:794px;min-height:1123px;box-shadow:0 4px 24px #0000001f;border-radius:2px;padding:32px 40px;font-family:Arial,sans-serif;font-size:10.5px;color:#111}.sigc{border:1px dashed var(--border2);border-radius:var(--r);width:100%;height:80px;cursor:crosshair;background:var(--s2);display:block}.stup{border:2px dashed var(--border);border-radius:var(--r);padding:12px;text-align:center;cursor:pointer;color:var(--t2);font-size:12px;transition:all .15s}.stup:hover{border-color:var(--accent);color:var(--accent);background:var(--al)}.mov{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.mo{background:var(--surface);border-radius:var(--rl);padding:22px;width:100%;max-width:580px;box-shadow:0 20px 60px #00000038;max-height:88vh;overflow-y:auto}.mo-t{font-size:15px;font-weight:600;margin-bottom:14px}.ddr{position:relative}.dds{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:var(--sh);z-index:60;max-height:200px;overflow-y:auto}.ddi{padding:7px 11px;cursor:pointer;font-size:12px;border-bottom:1px solid var(--border)}.ddi:last-child{border-bottom:none}.ddi:hover{background:var(--al)}.ddi-n{font-weight:500;color:var(--text)}.ddi-s{font-size:11px;color:var(--t2);margin-top:1px}.cl{display:flex;flex-direction:column;gap:6px}.ci{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:9px 11px}.ci:hover{border-color:var(--accent);background:var(--al)}.ci-r{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.ci-n{font-weight:600;font-size:12px}.ci-s{font-size:11px;color:var(--t2);margin-top:1px}.tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500;background:var(--al);color:var(--accent);margin:2px}.loup{border:2px dashed var(--border);border-radius:var(--r);padding:10px;text-align:center;cursor:pointer;color:var(--t2);font-size:11px;transition:all .15s;min-height:54px;display:flex;align-items:center;justify-content:center}.loup:hover{border-color:var(--accent);background:var(--al)}.sel-s{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b6860'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:26px}@media print{@page{size:A4;margin:20mm 14mm 15mm}body{background:#fff}.hdr,.sb,.ctb{display:none!important}.lay{display:block;height:auto}.cnt{overflow:visible}.pva{padding:0;background:#fff;display:block}.pvp{box-shadow:none;width:100%;min-height:auto;padding:12mm 14mm}[data-internal]{display:none!important}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}input[type=checkbox],input[type=radio]{width:auto!important;min-width:14px;height:14px;flex:0 0 auto;padding:0}.field-dropdown-menu{width:320px;max-height:420px;overflow-y:auto}.field-dropdown-menu label,.field-dropdown-option{display:flex!important;align-items:center!important;gap:8px!important;white-space:nowrap!important;line-height:1.4}.field-dropdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.field-dropdown-grid label{min-width:0}.batchbar{display:flex;align-items:center;gap:8px;padding:7px 9px;margin:0 0 8px;background:#eef6ff;border:1px solid #cfe2ff;border-radius:8px;color:#1a4a8a;font-size:12px;font-weight:600;flex-wrap:wrap}.batch-select{width:auto;min-width:132px;font-size:11px;padding:3px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.btn{min-height:30px;font-size:11px;border-radius:6px;padding:5px 10px;line-height:1.35}.btn-sm{min-height:28px;padding:4px 9px;font-size:11px;border-radius:6px}.btn-xs{min-height:24px;padding:3px 7px;font-size:10px;border-radius:5px}.btn-d:hover{filter:brightness(.96)}.sel-s{height:30px;font-size:11px;border-radius:6px}.ittbl{font-size:11px;background:var(--surface)}.ittbl th{padding:6px 8px;font-size:11px;font-weight:600;color:var(--text);text-transform:none;background:var(--s2);border-bottom:1px solid var(--border)}.ittbl td{padding:6px 8px;font-size:11px;border-bottom:1px solid var(--border);vertical-align:middle}.ittbl tr:hover td{background:#f8fafc}.mo-t{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.mo input,.mo textarea,.mo select{height:32px;font-size:11px;border-radius:6px;border:1px solid var(--border)}.mo textarea{height:auto;min-height:72px}.tag{font-size:11px;border-radius:999px;padding:2px 8px;font-weight:500}.app{--erp-page-padding:16px;--erp-split-direction:row;--erp-split-left-min:300px;--erp-split-right-min:280px;--erp-split-divider-width:6px;--erp-split-divider-height:auto}@media (max-width: 1180px){.app{--erp-page-padding:12px;--erp-split-left-min:260px;--erp-split-right-min:260px}.hdr{height:48px;padding:0 12px}.lay{height:calc(100vh - 48px)}.sb-tabs{width:124px;padding:6px 5px}.sb-submenu{padding-left:10px!important;padding-right:4px!important}.sb-group{font-size:11px!important;padding:8px!important}.st{font-size:11px;padding:7px;gap:6px}.btn{font-size:11px;padding:5px 9px}.btn-sm{font-size:10px;padding:3px 7px}table{font-size:11px}}@media (max-width: 820px){.app{--erp-page-padding:10px;--erp-split-direction:column;--erp-split-left-width:100%;--erp-split-left-min:0px;--erp-split-right-min:0px;--erp-split-divider-width:100%;--erp-split-divider-height:6px}.lay{flex-direction:column;overflow:hidden}.sb-tabs{width:100%;height:118px;flex-direction:row;align-items:flex-start;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--border);gap:4px;padding:6px}.menu-group{flex:0 0 124px;min-width:124px}.sb-submenu{max-height:76px;overflow:auto;padding:2px 4px 4px!important}.lay-main{width:100%;min-width:0;flex:1}.hdr .logo{font-size:13px}.hdr-r{gap:4px}.hdr-r .btn{padding:4px 8px}input,textarea,select{font-size:12px}.dtabs,.lay-divider{display:none}.pva{padding:10px!important}table{min-width:720px}}@media (max-width: 560px){.app{--erp-page-padding:8px}.hdr{height:44px;padding:0 8px}.lay{height:calc(100vh - 44px)}.hdr .logo span{display:none}.sb-tabs{height:108px}.menu-group{flex-basis:112px;min-width:112px}.sb-group{font-size:10px!important;padding:7px 6px!important}.st{font-size:10px;padding:6px}.btn,.btn-sm{font-size:10px;padding:4px 7px;min-height:26px}input,textarea,select{font-size:11px;padding:5px 8px}table{min-width:760px}}.erp-table-wrapper{border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:auto;min-height:0}.erp-data-table{width:100%;border-collapse:collapse;font-size:11px;color:var(--text);background:var(--surface)}.erp-data-table th{font-size:11px;font-weight:600;color:var(--text);background:var(--s2);padding:7px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.erp-data-table td{font-size:11px;color:var(--text);padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.erp-data-table tr:last-child td{border-bottom:none}.erp-search-to-table{margin-bottom:8px}.erp-split-right-white{background:var(--surface)!important}@media (max-width: 920px){.erp-login-page{align-items:flex-start!important;justify-content:center!important;min-height:100dvh!important;padding:18px!important;overflow-y:auto!important;overflow-x:hidden!important}.erp-login-card{max-width:520px!important;min-height:auto!important;display:grid!important;grid-template-columns:1fr!important;border-radius:22px!important;overflow:visible!important}.erp-login-brand-panel{padding:28px 26px!important;min-height:auto!important}.erp-login-brand-panel>div:nth-child(2){margin-top:22px!important;font-size:28px!important;line-height:1.18!important}.erp-login-brand-panel>div:nth-child(3){margin-top:12px!important;font-size:13px!important;line-height:1.6!important}.erp-login-feature-grid{grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:22px!important}.erp-login-brand-footer{position:static!important;margin-top:20px!important}.erp-login-form-panel{padding:28px 26px 30px!important;justify-content:flex-start!important}}@media (max-width: 560px){html,body,#root{min-height:100%}.erp-login-page{padding:12px!important;min-height:100dvh!important;height:auto!important}.erp-login-grid-bg{background-size:34px 34px!important}.erp-login-card{width:100%!important;max-width:none!important;border-radius:18px!important;box-shadow:0 18px 46px #0000004d!important}.erp-login-brand-panel{padding:20px 18px!important}.erp-login-brand-panel>div:first-child{font-size:10px!important;padding:6px 9px!important}.erp-login-brand-panel>div:nth-child(2){margin-top:16px!important;font-size:22px!important;letter-spacing:-.4px!important}.erp-login-brand-panel>div:nth-child(3){font-size:12px!important;line-height:1.55!important}.erp-login-feature-grid{display:none!important}.erp-login-brand-footer{font-size:10px!important;margin-top:14px!important}.erp-login-form-panel{padding:22px 18px 24px!important}.erp-login-form-panel input{min-height:44px!important;font-size:16px!important}.erp-login-form-panel button[type=submit]{min-height:46px!important;font-size:14px!important}.erp-login-form-panel form label{font-size:12px!important}}@media (max-width: 820px){.lay-main,.cnt,.ea{min-width:0!important}.cnt{overflow:auto!important}.ea{padding:10px!important}.erp-table-wrapper{max-width:100%}.field-dropdown-menu{max-width:calc(100vw - 24px)!important}}.lay-main .erp-table-wrapper,.lay-main [style*="overflow: auto"][style*="border: 1px solid var(--border)"]{background:var(--surface)}.lay-main table:not(.ittbl){font-size:11px;color:var(--text);background:var(--surface)}.lay-main table:not(.ittbl) th{font-size:11px!important;font-weight:600!important;color:var(--text)!important;background:var(--s2)!important;border-bottom:1px solid var(--border)!important;padding:7px 8px!important}.lay-main table:not(.ittbl) td{font-size:11px!important;color:var(--text);border-bottom:1px solid var(--border)!important;padding:7px 8px!important}.lay-main input[placeholder^=搜索]{margin-bottom:8px!important;border:1px solid var(--border)!important}.pvp table th,.pvp table td{font-size:inherit;color:inherit;background:inherit}
