:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;background:#f3f5f7;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif}*{box-sizing:border-box}body{background:#f3f5f7;min-width:1180px;min-height:100vh;margin:0;font-size:13px}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.52}input,select{color:#111827;background:#fff;border:1px solid #b9c4d0;border-radius:2px;min-width:0;height:30px;padding:3px 7px}.login-screen{background:#e8eef6;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #b7c4d6;border-radius:3px;gap:12px;width:410px;padding:24px;display:grid;box-shadow:0 16px 45px #1a30502e}.brand-row{align-items:center;gap:10px;display:flex}.brand-mark,.brand-badge{color:#fff;background:#1d5f9f;place-items:center;font-weight:800;display:grid}.brand-mark{border-radius:4px;width:42px;height:42px}.brand-row h1{letter-spacing:0;margin:0;font-size:20px}.brand-row p,.brand-row small{color:#64748b;margin:3px 0 0}.login-panel label{color:#475569;gap:5px;display:grid}.login-panel button{color:#fff;background:#1d5f9f;border-radius:2px;height:34px}.login-panel small{color:#64748b}.erp-frame{grid-template-rows:42px 35px 1fr;min-height:100vh;display:grid}.erp-topbar{color:#fff;background:#1d5f9f;border-bottom:1px solid #164b7d;justify-content:space-between;align-items:center;padding:0 10px;display:flex}.top-left,.top-user,.top-modules{align-items:center;gap:8px;display:flex}.brand-badge{color:#102a43;background:#f59e0b;border-radius:3px;width:30px;height:28px}.top-modules{margin-left:12px}.top-modules button,.top-user button{color:#eff6ff;background:#ffffff1f;border-radius:2px;align-items:center;gap:5px;height:28px;padding:0 10px;display:inline-flex}.top-modules button.active,.top-modules button:hover,.top-user button:hover{color:#17456f;background:#fff}.top-user span{color:#dbeafe}.favorite-tabs{background:#e8edf3;border-bottom:1px solid #b8c4d2;align-items:end;gap:3px;padding:5px 8px 0;display:flex}.favorite-tabs button{color:#334155;background:#f8fafc;border:1px solid #b8c4d2;border-bottom:0;border-radius:3px 3px 0 0;height:29px;padding:0 14px}.favorite-tabs button.active,.favorite-tabs .site-map{color:#0f4c81;background:#fff;font-weight:700}.erp-body{grid-template-columns:248px minmax(0,1fr);min-height:0;display:grid}.menu-tree{background:#fff;border-right:1px solid #b8c4d2;padding:8px;overflow:auto}.menu-search{margin-bottom:8px}.menu-search input{background:#f8fafc;width:100%}.tree-section{background:#fff;border:1px solid #d7dee8;margin-bottom:7px}.tree-section h3{color:#17456f;background:linear-gradient(#f6f9fc,#e8edf3);border-bottom:1px solid #d7dee8;margin:0;padding:6px 8px;font-size:13px}.tree-node{color:#243447;text-align:left;background:#fff;border-bottom:1px solid #eef2f6;align-items:center;gap:6px;width:100%;min-height:28px;padding:0 8px 0 16px;display:flex}.tree-node:hover,.tree-node.active{color:#0f4c81;background:#e8f2ff;font-weight:700}.tree-section small{color:#64748b;border-bottom:1px solid #f2f5f8;padding:5px 8px 5px 34px;display:block}.erp-workspace{min-width:0;padding:0 10px 18px;overflow:auto}.workspace-titlebar{z-index:4;background:#f7f8f9;border-bottom:1px solid #c8d2de;justify-content:space-between;align-items:center;min-height:51px;display:flex;position:sticky;top:0}.workspace-titlebar p{color:#64748b;margin:0 0 2px}.workspace-titlebar h1{letter-spacing:0;color:#111827;margin:0;font-size:18px}.title-actions{gap:5px;display:flex}.title-actions button,.section-title button,.table-row button,.form-panel button{color:#1f2937;background:linear-gradient(#fff,#edf2f7);border:1px solid #a9b6c6;border-radius:2px;min-height:29px;padding:0 11px}.title-actions button.primary,.form-panel button,.section-title button{color:#fff;background:#1d5f9f;border-color:#1d5f9f}.query-band{background:#fff;border:1px solid #c8d2de;margin:9px 0}.query-tabs{border-bottom:1px solid #d7dee8;gap:2px;padding:5px 7px 0;display:flex}.query-tabs button{color:#475569;background:#f5f7fa;border:1px solid #c8d2de;border-bottom:0;height:27px;padding:0 13px}.query-tabs button.active{color:#1d5f9f;background:#fff;font-weight:700}.query-fields{grid-template-columns:repeat(4,minmax(160px,1fr));gap:8px 12px;padding:9px;display:grid}.query-fields label{color:#475569;grid-template-columns:70px 1fr;align-items:center;gap:6px;display:grid}.message{color:#92400e;background:#fff8e7;border:1px solid #f4c773;margin:8px 0;padding:8px 10px}.metric-grid{grid-template-columns:repeat(8,minmax(96px,1fr));gap:6px;margin:8px 0;display:grid}.metric-grid article,.panel{background:#fff;border:1px solid #c8d2de;border-radius:2px}.metric-grid article{min-width:0;padding:8px 9px}.metric-grid span,.report-grid span{color:#64748b;font-size:12px;display:block}.metric-grid strong,.report-grid strong{color:#0f4c81;overflow-wrap:anywhere;margin-top:3px;font-size:18px;display:block}.dashboard-grid{grid-template-columns:minmax(0,1fr) 310px;gap:8px;margin-bottom:8px;display:grid}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}.three-column{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}.panel{min-width:0;padding:9px}.section-title{background:#f8fafc;border-bottom:1px solid #d7dee8;justify-content:space-between;align-items:center;gap:8px;min-height:31px;margin:-9px -9px 8px;padding:0 9px;display:flex}.section-title h2{color:#1f2937;margin:0;font-size:14px}.module-grid,.flow-grid,.report-grid{gap:7px;display:grid}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-grid,.report-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.flow-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}.module-grid article,.flow-grid article,.report-grid article,.todo,.compact-item{background:#fbfcfe;border:1px solid #d9e1ea;border-radius:2px;padding:8px}.module-grid strong,.flow-grid strong,.compact-item strong{color:#102a43;margin-bottom:3px;display:block}.module-grid span,.flow-grid span,.compact-item span,.report-grid p{color:#64748b;margin:2px 0 0;font-size:12px;line-height:1.45}.todo{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.todo strong{color:#1d5f9f;font-size:20px}.form-panel{align-content:start;gap:7px;display:grid}.divider{background:#d7dee8;height:1px;margin:4px 0}.data-table{border:1px solid #c8d2de;gap:0;display:grid;overflow-x:auto}.table-head,.table-row{align-items:center;gap:0;min-width:760px;display:grid}.table-head{color:#334155;background:#e7edf5;border-bottom:1px solid #b8c4d2;font-size:12px;font-weight:700}.table-row{background:#fff;border-bottom:1px solid #dce3eb;font-size:12px}.table-row:nth-child(2n){background:#f9fbfd}.table-head>*,.table-row>*{text-overflow:ellipsis;white-space:nowrap;border-right:1px solid #dce3eb;min-width:0;padding:6px 7px;overflow:hidden}.table-row button{min-height:24px;padding:0 8px;font-size:12px}.cols-stock{grid-template-columns:1.1fr .8fr 1.4fr .9fr .55fr .55fr .7fr .65fr}.cols-orders{grid-template-columns:1.15fr 1fr .9fr .7fr .75fr 1.8fr .65fr}.cols-simple{grid-template-columns:1.2fr 1fr .7fr .8fr .7fr}.cols-plan{grid-template-columns:1.1fr 1.3fr .9fr .55fr .75fr .75fr .65fr}.cols-finance{grid-template-columns:1.1fr .75fr .75fr 1.6fr .75fr .75fr .65fr}.cols-employee{grid-template-columns:.8fr .9fr .9fr 1fr .8fr .7fr}.cols-approval{grid-template-columns:1.1fr .85fr 1.5fr .8fr .9fr .75fr .75fr}.cols-menu{grid-template-columns:1fr 1.1fr .8fr 1.2fr .6fr}.cols-audit{grid-template-columns:1.6fr .85fr 1fr .8fr .55fr .75fr 1.3fr}.cols-extension{grid-template-columns:1.05fr .7fr 1.1fr 1.3fr .8fr .7fr .6fr}.tag{color:#0f4c81;background:#e8f2ff;border-radius:2px;justify-content:center;align-items:center;min-height:21px;padding:0 7px;font-size:12px;font-style:normal;display:inline-flex}.risk-low,.status-pending,.status-unpaid,.status-held,.status-ready{color:#92400e;background:#fff2cc}.risk-over,.status-partial,.status-partial_pass,.status-planned{color:#075985;background:#e0f2fe}.risk-ok,.status-active,.status-enabled,.status-posted,.status-confirmed,.status-normal,.status-published,.status-imported,.status-completed,.status-received,.status-shipped,.status-approved,.status-pass,.status-in_use,.status-done{color:#166534;background:#dcfce7}.status-open{color:#92400e;background:#fef3c7}@media (width<=1180px){body{min-width:980px}.metric-grid{grid-template-columns:repeat(4,1fr)}.dashboard-grid,.two-column,.three-column{grid-template-columns:1fr}.module-grid,.flow-grid,.report-grid{grid-template-columns:repeat(2,1fr)}}
