:root{color:#000000e0;font-synthesis:none;text-rendering:auto;-webkit-font-smoothing:auto;--panel:#fff;--line:#f0f0f0;--muted:#00000073;--text:#000000e0;--brand:#1677ff;--brand-dark:#0958d9;--good:#52c41a;--good-dark:#389e0d;--good-soft:#f6ffed;--warn:#faad14;--warn-dark:#d48806;--warn-soft:#fffbe6;--bad:#ff4d4f;--bad-soft:#fff2f0;--bad-panel:#fff2f0;--bad-line:#ffccc7;--success-panel:#f6ffed;--success-line:#b7eb8f;--surface:#fafafa;--surface-strong:#fafafa;--neutral-strong:#000000a6;--focus-ring:0 0 0 2px #0591ff1a;--shadow:0 1px 2px 0 #00000008, 0 1px 6px -1px #00000005, 0 2px 4px 0 #00000005;--shadow-canvas:0 6px 16px 0 #00000014, 0 3px 6px -4px #0000001f;--motion-fast:.2s ease;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body,.ant-app{min-height:100vh}.dms-pro-layout .ant-pro-layout-container{background:#f5f5f5}.dms-pro-layout .ant-layout{height:100vh}.dms-pro-layout .ant-layout-content{flex:auto;min-height:0;padding:0;overflow:auto}.dms-pro-layout:has(.terminals-view) .ant-layout-content{overflow:hidden}.dms-pro-layout .ant-pro-sider{border-right:1px solid var(--line);box-shadow:none}.dms-pro-layout .ant-layout-header{border-bottom:1px solid var(--line);box-shadow:none}.dms-pro-layout .ant-pro-global-header-logo h1{color:var(--text);letter-spacing:0;font-weight:600}.dms-pro-layout .ant-pro-sider-logo{border-bottom:1px solid var(--line)}.dms-pro-layout .ant-pro-layout-content{margin:0}.dms-pro-layout .ant-layout-content{padding:0}.side-menu-button{width:100%;height:100%;color:inherit;text-align:left;justify-content:flex-start;padding:0}.app-shell{flex-direction:column;width:100%;height:100%;min-height:0;margin:0;padding:0 16px 16px;display:flex}.admin-workspace{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.workspace-tabbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;min-height:38px;margin:0 -16px 12px;padding:4px 16px 0;display:flex}.ant-popover,.ant-select-dropdown,.ant-picker-dropdown,.ant-dropdown{z-index:1100}.workspace-tabs{background:0 0;flex:1;min-width:0;margin:0;padding:0 0 1px}.workspace-actions{flex:none;align-items:center;padding-bottom:4px;display:inline-flex}.workspace-actions .ant-space-item{align-items:center;display:inline-flex}.workspace-user{white-space:nowrap;align-items:center;min-height:24px;display:inline-flex}.workspace-tabs .ant-tabs-nav{margin-bottom:0}.workspace-tabs .ant-tabs-tab{min-height:34px;padding:6px 14px;font-weight:400}.workspace-tabs .ant-tabs-content-holder{display:none}.page-content{flex:auto;min-width:0;min-height:0}.page-pane[hidden]{display:none!important}.page-pane{height:100%;min-height:0;overflow:auto}.page-pane:has(.terminals-view){flex-direction:column;display:flex;overflow:hidden}.page-stack{flex-direction:column;gap:16px;display:flex}.dma-preview-card .ant-card-body{background:var(--surface);justify-content:center;min-height:180px;display:flex}.dma-preview-image{object-fit:contain;border:1px solid var(--line);background:#fff;max-width:100%;max-height:640px;display:block}.scanner-test-modal .ant-modal-body{max-height:min(70vh,720px);overflow-y:auto}.scanner-trace-list{flex-direction:column;gap:10px;display:flex}.scanner-trace-card .ant-card-head{min-height:38px}.scanner-trace-card .ant-card-head-title{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.page-toolbar{border-radius:8px}.terminal-list-toolbar{box-shadow:none;flex:none}.terminals-view,.terminals-view .terminals-table-card,.terminals-view .terminals-table-card>.ant-card-body,.terminals-view .terminals-table-card .ant-table-wrapper,.terminals-view .terminals-table-card .ant-spin-nested-loading,.terminals-view .terminals-table-card .ant-spin-container,.terminals-view .terminals-table-card .ant-table,.terminals-view .terminals-table-card .ant-table-container{flex-direction:column;flex:auto;min-height:0;display:flex}.terminals-view .terminals-table-card .ant-table-header{flex:none}.terminals-view .terminals-table-card .ant-table-body{flex:auto;min-height:0;max-height:none!important}.terminal-filter-form{align-items:end}.page-toolbar .ant-card-body{padding:12px 16px}.page-toolbar-title{color:var(--text);margin:0!important}.page-toolbar-extra{flex:none;min-width:max-content}.page-toolbar-extra .ant-space{flex-wrap:wrap}.page-toolbar-body{flex-direction:column;gap:12px;margin-top:12px;display:flex}.page-toolbar-inline-content{flex:auto;min-width:0}.page-toolbar-inline-content .ant-tabs-nav{margin:0}.terminal-type-row{min-width:0}.terminal-type-row .ant-tabs-nav{margin:0}.terminal-type-row .ant-tabs-content-holder{display:none}.filter-form{gap:8px 12px}.filter-form .ant-form-item{margin-bottom:0;margin-right:0}.filter-form .ant-form-item-control{min-width:148px}.filter-form .ant-form-item:has(.code-filter-input) .ant-form-item-control{min-width:158px}.filter-form .waybill-workid-field .ant-form-item-control{min-width:320px}.filter-form .filter-action-item .ant-form-item-control{flex:none;min-width:0}.identifier-filter-select,.code-filter-input{width:100%!important}.job-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-self:stretch;gap:12px;width:100%;margin-top:0;display:grid}.job-summary-card{border:1px solid var(--line);background:linear-gradient(#fff 0%,#fafafa 100%);border-radius:8px;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:6px;width:100%;min-width:0;min-height:92px;padding:10px 12px;display:grid}.job-summary-card-content{flex-direction:column;gap:6px;min-width:0;display:flex}.job-summary-card-head{align-items:center;min-height:26px;display:flex}.job-summary-icon{border-radius:8px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.job-summary-card .ant-statistic-content{font-size:24px;font-weight:600;line-height:1.1}.job-summary-progress{grid-template-columns:1fr;gap:2px;margin-top:auto;padding-right:32px;display:grid}.job-summary-progress .ant-progress{line-height:1}.job-summary-progress .ant-progress-line{margin-bottom:0}.job-summary-caption{margin-top:auto;line-height:1.4}.job-summary-icon.is-blue{color:#1677ff;background:#e6f4ff}.job-summary-icon.is-green{color:#52c41a;background:#f6ffed}.job-summary-icon.is-red{color:#ff4d4f;background:#fff2f0}.job-summary-icon.is-gold{color:#faad14;background:#fffbe6}.data-table-card .ant-card-body{padding:0}.data-table-card .local-filter-bar{border-bottom:1px solid #0505050f;padding:12px 16px}.data-table-card .ant-table-wrapper{margin:0}.dms-data-table.ant-table-wrapper .ant-table{font-size:14px;line-height:1.5}.dms-data-table.ant-table-wrapper table{border-collapse:separate;border-spacing:0}.dms-data-table.ant-table-wrapper .ant-table-thead>tr>th{vertical-align:middle;background:#fafafa;height:44px;padding:10px 12px;font-size:14px;font-weight:500;line-height:1.5}.dms-data-table.ant-table-wrapper .ant-table-tbody>tr>td{vertical-align:middle;height:48px;padding:10px 12px;font-size:14px;line-height:1.5}.dms-data-table.ant-table-wrapper .ant-table-tbody>tr:first-child>td{border-top:0}.dms-data-table.ant-table-wrapper .ant-table-measure-row{visibility:hidden;height:0!important}.dms-data-table.ant-table-wrapper .ant-table-measure-row td{border:0!important;height:0!important;padding:0!important;line-height:0!important}.dms-data-table.ant-table-wrapper .ant-table-placeholder .ant-table-cell{vertical-align:middle;padding:24px 12px}.dms-data-table.ant-table-wrapper .ant-table-cell .ant-space{row-gap:6px}.dms-data-table .job-failure-summary{max-width:100%;display:block}.dms-data-table.ant-table-wrapper .row-action-space{white-space:nowrap;flex-wrap:nowrap;align-items:center}.dms-data-table.ant-table-wrapper .row-action-space .ant-btn,.dms-data-table.ant-table-wrapper .row-action-space .ant-btn-icon{align-items:center;display:inline-flex}.dms-data-table.ant-table-wrapper .row-action-space .ant-btn-icon>svg{display:block}.ant-table-cell-fix-left,.ant-table-cell-fix-right{background:#fff}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-left-last:after{pointer-events:none}.login-shell{background:linear-gradient(135deg,#f0f5ff 0%,#f8fbff 55%,#fff 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-loading{flex-direction:column;align-items:center;gap:16px;display:flex}.auth-loading-text{color:#00000073;letter-spacing:1px;font-size:14px}.login-panel{width:420px;max-width:100%;transition:transform var(--motion-fast), box-shadow var(--motion-fast);border-radius:8px;animation:.5s ease-out both login-panel-enter;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000014}.login-panel:before{content:"";background:var(--brand);height:3px;position:absolute;top:0;left:0;right:0}.login-panel:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}.login-panel .ant-card-body{flex-direction:column;padding:40px 32px;display:flex}.login-panel .ant-typography{margin:0}.login-brand{align-items:center;gap:10px;display:flex}.login-brand-mark{width:32px;height:32px;color:var(--brand);background:#e6f4ff;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.login-brand-name{color:var(--neutral-strong);font-weight:600}.login-heading{flex-direction:column;gap:4px;margin:24px 0;display:flex}.login-heading .ant-typography{color:#1f1f1f;font-size:28px;font-weight:600;line-height:1.25}.login-mode-switch{margin-bottom:24px}.login-mode-switch .ant-segmented-item-label{justify-content:center;align-items:center;min-height:32px;display:flex}.login-mode-switch .ant-space{align-items:center}.login-form .ant-form-item{margin-bottom:24px}.login-form .ant-form-item-label>label{color:var(--text);font-weight:500}.login-panel .login-input,.login-panel .login-input.ant-input-affix-wrapper{min-height:40px;transition:border-color var(--motion-fast), box-shadow var(--motion-fast);border-radius:4px}.login-panel .login-input.ant-input-affix-wrapper .ant-input{min-height:auto}.login-panel .login-input::placeholder{color:#bfbfbf}.login-error{margin:-8px 0 16px}.login-support{margin:-8px 0 16px;font-size:13px}.login-submit{letter-spacing:2px;height:44px;transition:transform var(--motion-fast), background-color var(--motion-fast), box-shadow var(--motion-fast);border-radius:6px;font-weight:500}.login-submit:not(:disabled):hover{background:var(--brand-dark);transform:translateY(-1px);box-shadow:0 4px 8px #1677ff33}.login-submit:not(:disabled):active{transform:translateY(0)}.login-footer{text-align:center;flex-direction:column;gap:4px;margin-top:24px;font-size:13px;display:flex}@keyframes login-panel-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.layout-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin:0 0 14px;display:flex}.preview-image-wrap{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.preview-image-wrap img{object-fit:contain;max-width:100%;max-height:100%;display:block}.job-preview-modal .ant-modal-body{height:min(72vh,700px);overflow:hidden}.job-preview-content{flex-direction:column;gap:10px;width:100%;height:100%;min-height:0;display:flex}.job-preview-meta-grid{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;display:grid;overflow:hidden}.job-preview-meta-item{grid-template-columns:72px minmax(0,1fr);min-width:0;display:grid}.job-preview-meta-item+.job-preview-meta-item{border-left:1px solid var(--line)}.job-preview-meta-item span,.job-preview-meta-item strong{white-space:nowrap;text-overflow:ellipsis;min-width:0;padding:6px 10px;line-height:1.5;overflow:hidden}.job-preview-meta-item span{color:#00000073;background:#fafafa;font-weight:400}.job-preview-meta-item strong{color:var(--text);font-weight:500}.job-preview-modal .preview-image-wrap{flex:auto;height:100%;min-height:0}.job-preview-modal .preview-image-wrap img{object-fit:contain;width:100%;height:100%}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.terminal-form-grid{gap:16px 14px}.settings-action-grid{grid-template-columns:minmax(0,1fr) 220px;align-items:end;gap:14px;display:grid}.settings-action-field{margin-bottom:0}.settings-action-side{align-items:flex-end;display:flex}.dma-local-settings{flex-direction:column;gap:0;margin-bottom:0;display:flex}.dma-setting-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 132px;grid-template-areas:"label.""control action""hint.";align-items:center;gap:6px 16px;padding:16px 0;display:grid}.dma-setting-label{color:var(--text);grid-area:label;font-weight:500;line-height:1.5}.dma-setting-control{grid-area:control;min-width:0}.dma-setting-hint{color:#00000073;grid-area:hint;font-size:13px;line-height:1.5}.dma-setting-action{grid-area:action;width:100%}.dms-admin-modal .ant-btn-default:not(:disabled){color:#1d4f85;background:#f4f8fd;border-color:#c9d9ee}.dms-admin-modal .ant-btn-default:not(:disabled):hover{color:#0b5cad;background:#eaf3ff;border-color:#8db8eb}.dms-admin-modal .ant-btn-default:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #1677ff}.ant-modal.dms-admin-modal{padding-bottom:0;top:16px}.dms-admin-modal .ant-modal-content{flex-direction:column;max-height:calc(100dvh - 32px);display:flex;overflow:hidden}.dms-admin-modal .ant-modal-header,.dms-admin-modal .ant-modal-footer{flex:none}.dms-admin-modal .ant-modal-body{overscroll-behavior:contain;flex:auto;min-height:0;max-height:none;padding-right:4px;overflow:auto}.dms-admin-content{width:100%}.dms-status-overview{flex-direction:column;gap:12px;display:flex}.dms-status-overview .ant-descriptions-header{margin-bottom:8px}.dms-status-overview .ant-descriptions-title{font-size:14px;font-weight:500}.dms-admin-modal .ant-input[readonly]{background:#fafafa}.pdf-layout-modal .ant-modal-body{flex-direction:column;gap:12px;height:min(82vh,860px);display:flex;overflow:hidden}.printer-manage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.printer-action-row{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;display:flex}.instance-create-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.instance-card-subtitle{color:#000000a6;margin-bottom:12px;font-size:13px}.instance-card-grid{grid-template-columns:minmax(220px,280px) minmax(240px,320px) minmax(320px,1fr) minmax(240px,320px);align-items:start;gap:12px;display:grid}.instance-field{min-width:0;margin-bottom:0}.instance-info-field{flex-direction:column;gap:8px;min-width:0;display:flex}.instance-field-label{min-height:22px;color:var(--text);line-height:22px}.instance-url{word-break:break-word;white-space:normal}.error-detail-subtitle{color:#000000a6;margin-bottom:12px}.error-detail-content{border:1px solid var(--line);max-height:min(55vh,520px);color:var(--text);white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:8px;padding:14px 16px;line-height:1.7;overflow:auto}.instance-card-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.check-row{grid-column:1/-1;margin-bottom:0}.token-field{grid-column:1/-1}.image-loading{height:560px;color:var(--muted);justify-content:center;align-items:center;display:flex}.layout-editor{flex:1;grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:16px;min-height:0;display:grid;overflow:hidden}.layout-canvas-panel{flex-direction:column;gap:12px;min-height:0;display:flex}.layout-canvas-toolbar{border:1px solid var(--line);background:var(--panel);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.layout-toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.layout-zoom-indicator{text-align:center;min-width:60px;color:var(--brand-dark);background:#e6f4ff;border-radius:8px;padding:0 10px;font-size:13px;font-weight:500;line-height:34px}.layout-canvas-wrap{border:1px solid var(--line);background:var(--surface);overscroll-behavior:contain;touch-action:none;border-radius:8px;height:100%;min-height:0;position:relative;overflow:hidden}.layout-canvas-wrap.is-pan-mode{cursor:grab;background:#e6f4ff;border-color:#1677ff47}.layout-canvas-wrap.is-pan-mode.is-panning{cursor:grabbing}.layout-canvas-wrap.is-annotate-mode{background:var(--success-panel);cursor:crosshair;border-color:#16835e47}.layout-canvas{aspect-ratio:607/1039;background:var(--panel);-webkit-user-select:none;user-select:none;min-width:0;box-shadow:var(--shadow-canvas);transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.layout-canvas-wrap.is-pan-mode .layout-canvas{cursor:inherit}.layout-canvas img{object-fit:fill;width:100%;height:100%;display:block}.layout-canvas .image-loading{width:100%;height:100%;min-height:0}.layout-box{color:var(--text);cursor:move;pointer-events:auto;background:#ffffff29;border:2px solid;justify-content:flex-start;align-items:flex-start;padding:3px 5px;font-size:12px;font-weight:500;display:flex;position:absolute;overflow:visible}.layout-box.is-readonly,.layout-box.is-readonly *{pointer-events:none}.layout-box.active{box-shadow:0 0 0 2px #1677ff33}.layout-box-delete{width:22px;height:22px;color:var(--bad);background:#fff;border:1px solid #0f172a24;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:-12px;right:-12px;box-shadow:0 2px 8px #00000026}.layout-box-handle{background:var(--panel);border:2px solid;border-radius:999px;width:12px;height:12px;padding:0;position:absolute}.layout-box-handle.nw{cursor:nwse-resize;top:-7px;left:-7px}.layout-box-handle.ne{cursor:nesw-resize;top:-7px;right:-7px}.layout-box-handle.sw{cursor:nesw-resize;bottom:-7px;left:-7px}.layout-box-handle.se{cursor:nwse-resize;bottom:-7px;right:-7px}.box-label{background:#1677ff1c;border-color:#1677ff}.box-mask{border-color:var(--bad);background:#b63f3524}.box-source{background:#16835e24;border-color:#16835e}.box-target{background:#a36c1024;border-color:#a36c10}.layout-side{flex-direction:column;gap:14px;min-height:0;padding-right:4px;display:flex;overflow:auto}.layout-legend-item{width:100%;color:var(--text);align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.layout-legend-swatch{border:2px solid;border-radius:6px;width:18px;height:18px}.layout-legend-swatch.box-label,.layout-box.box-label .layout-box-handle{color:#1677ff}.layout-legend-swatch.box-mask,.layout-box.box-mask .layout-box-handle{color:var(--bad)}.layout-legend-swatch.box-source,.layout-box.box-source .layout-box-handle{color:#16835e}.layout-legend-swatch.box-target,.layout-box.box-target .layout-box-handle{color:#a36c10}.rect-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.rect-grid .ant-form-item{margin-bottom:0}.mini-qr-content{width:100%}.mini-qr-loading{justify-content:center;align-items:center;gap:10px;min-height:180px;display:flex}.mini-qr-issued-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;align-items:center;gap:12px;padding:16px;display:flex}.mini-qr-code{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:center;align-items:center;width:320px;height:320px;padding:16px;display:flex}.mini-qr-code svg{max-width:100%;display:block;height:auto!important}.mini-qr-download-source{display:none}.mini-qr-issued-copy{text-align:center;flex-direction:column;gap:4px;width:min(100%,460px);display:flex}.mini-qr-issued-panel .ant-input{width:min(100%,520px);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}@media (width<=800px){.ant-modal.dms-admin-modal{margin-bottom:8px;top:8px}.dms-admin-modal .ant-modal-content{max-height:calc(100dvh - 16px)}.app-shell{width:100%;padding:0 12px 12px}.form-grid,.settings-action-grid,.printer-manage-grid,.instance-create-grid,.instance-card-grid,.layout-editor{grid-template-columns:1fr}.image-loading{min-height:420px}.settings-action-side{align-items:stretch}.dma-setting-row{grid-template-columns:1fr;grid-template-areas:"label""control""hint""action";gap:8px}.dma-setting-action{width:100%;margin-top:4px}.job-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.printer-action-row{flex-direction:column;align-items:stretch}.workspace-tabbar{flex-direction:column;align-items:flex-start;padding:8px 12px;position:static}.page-toolbar .ant-flex{flex-direction:column;align-items:flex-start}.page-toolbar-extra{width:100%}.dms-data-table.ant-table-wrapper .ant-table-cell-fix-left,.dms-data-table.ant-table-wrapper .ant-table-cell-fix-right{z-index:auto!important;box-shadow:none!important;position:static!important;left:auto!important;right:auto!important}.dms-data-table.ant-table-wrapper .ant-table-cell-fix-left-last:after,.dms-data-table.ant-table-wrapper .ant-table-cell-fix-right-first:after{display:none!important}.dms-data-table.ant-table-wrapper .ant-table-thead>tr>th,.dms-data-table.ant-table-wrapper .ant-table-tbody>tr>td{padding:8px 10px}.mini-qr-issued-panel{padding:12px}.mini-qr-code{width:min(320px,100vw - 104px);height:min(320px,100vw - 104px);padding:12px}}@media (width<=576px){.login-shell{padding:16px}.login-panel{width:90vw}.login-panel .ant-card-body{padding:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
