.app-shell{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;overflow:auto}.brand{display:block;padding:18px 24px;color:#fff;font-size:18px;font-weight:700}.app-header{display:flex;align-items:center;gap:12px;padding:0 20px;background:#fff;border-bottom:1px solid #dcdfe6}.app-title{flex:1;font-weight:600}@media (max-width: 992px){.app-sider{position:fixed!important;z-index:20}}:root{color:#1f2937;background:#f5f7fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px}.page{padding:20px}.page-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}.page-toolbar h1{margin:0;font-size:20px}.erp-page-toolbar{align-items:flex-start}.erp-page-toolbar>div:first-child{display:grid;gap:4px}.erp-page-toolbar>div:first-child>span{color:#64748b;font-size:13px}.erp-products-search,.erp-materials-search{margin-bottom:16px;max-width:360px}.erp-materials-tracking-card{margin-top:16px}.erp-bom-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.erp-bom-filters .ant-input-search{max-width:360px}.erp-bom-filters .ant-select{min-width:260px}.erp-bom-lines-table{margin:4px 32px;max-width:720px}.bom-editor-fields{display:grid;gap:0 12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 120px 90px}.bom-lines-toolbar{align-items:center;color:#64748b;display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px}.bom-editor-lines .ant-table-cell{vertical-align:middle}.erp-inventory-tab>.ant-btn{margin-bottom:16px}.erp-sales-filters,.erp-sales-batch{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.erp-sales-filters .ant-input-search{max-width:340px}.erp-sales-filters .ant-select,.erp-sales-batch .ant-select{min-width:150px}.erp-sales-summary{color:#64748b;margin-bottom:14px}.erp-sales-summary strong{color:#1677ff;font-size:16px;margin-left:6px}.erp-sales-batch{background:#fafcff;border-block:1px solid #edf0f5;padding:10px 0}.sales-editor-fields{display:grid;gap:0 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.sales-lines-toolbar{align-items:center;color:#64748b;display:flex;justify-content:space-between;margin-bottom:8px}.erp-sales-detail-items{margin-top:16px}.system-settings-form{max-width:680px}.system-users-toolbar,.erp-youzan-page .ant-tabs-nav{margin-bottom:16px}.youzan-config-form{max-width:980px}.youzan-config-form .ant-form-item{margin-bottom:16px}.youzan-switches{align-items:center;border-top:1px solid #edf0f5;padding-top:16px}.youzan-switches .ant-form-item{align-items:center;display:inline-flex;gap:8px;margin:0}.youzan-switches .ant-form-item-label{padding:0}.youzan-tab-content .erp-section-toolbar{margin-bottom:16px}.youzan-product-image{border-radius:4px;height:42px;object-fit:cover;width:42px}.youzan-sku-table{margin:2px 34px 4px;max-width:820px}.quick-order-page{margin:0 auto;max-width:760px;padding:max(16px,env(safe-area-inset-top)) 16px calc(112px + env(safe-area-inset-bottom))}.quick-order-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.quick-order-header h1{font-size:20px;margin:0 0 4px}.quick-order-header span,.quick-order-section-heading small,.quick-order-variant-card>span,.quick-order-line span{color:#718096;font-size:12px}.quick-order-card{margin-bottom:14px}.quick-order-fields{display:grid;gap:0 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.quick-order-remark{grid-column:1 / -1}.quick-order-section-heading{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:12px}.quick-order-section-heading>span{color:#1f3655;font-weight:600}.quick-order-loading{display:grid;min-height:150px;place-items:center}.quick-order-variant-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.quick-order-variant-card{background:#fcfdff;border:1px solid #e3eaf3;border-radius:6px;display:grid;gap:4px;min-height:118px;padding:11px}.quick-order-variant-card>strong{color:#1e3a5f;line-height:1.4}.quick-order-variant-card footer{align-items:center;align-self:end;display:flex;justify-content:space-between;margin-top:6px}.quick-order-variant-card footer>b{color:#c2410c;font-size:15px}.quick-order-stepper em{color:#334155;font-size:13px;font-style:normal;min-width:20px;text-align:center}.quick-order-lines{border-top:1px solid #edf1f5}.quick-order-line{align-items:center;border-bottom:1px solid #edf1f5;display:grid;gap:8px;grid-template-columns:minmax(150px,1fr) auto auto auto;padding:10px 0}.quick-order-line>div{display:grid;gap:3px;min-width:0}.quick-order-line>div strong,.quick-order-line>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-order-line>b{color:#64748b;font-size:12px;font-weight:400;white-space:nowrap}.quick-order-line>strong{color:#1e3a5f;font-size:13px;white-space:nowrap}.quick-order-submit-bar{align-items:center;background:#fff;border:1px solid #e3eaf3;border-radius:6px;bottom:max(10px,env(safe-area-inset-bottom));box-shadow:0 5px 14px #0f172a1a;display:flex;gap:16px;justify-content:space-between;padding:10px 12px;position:sticky;z-index:3}.quick-order-totals{display:grid;gap:2px}.quick-order-totals span{color:#64748b;font-size:12px}.quick-order-totals span b{color:#334155;font-weight:600}.quick-order-totals strong{color:#c2410c;font-size:16px}.contract-loading{display:grid;min-height:420px;place-items:center}.contracts-controls{margin-bottom:14px}.contracts-controls .ant-card-body{align-items:center;display:flex;flex-wrap:wrap;gap:14px 22px}.contracts-control-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.contracts-control-group>label{color:#475569;font-size:13px;font-weight:600}.contracts-control-group>.ant-select{min-width:260px}.contracts-control-group.compact .ant-input-number{width:100px}.contracts-control-group.compact>span{color:#64748b;font-size:12px}.contracts-upload-button input{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}.contracts-fields-card .ant-card-body{padding:16px}.contracts-fields-toolbar{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.contracts-new-field{width:155px}.contracts-field-config{display:grid;gap:5px;max-height:380px;overflow:auto;width:min(560px,calc(100vw - 48px))}.contracts-field-config>div{align-items:center;border-bottom:1px solid #f0f3f7;display:flex;gap:12px;justify-content:space-between;padding:3px 0}.contracts-field-config .ant-checkbox-wrapper{min-width:0}.contracts-field-config .ant-checkbox+span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contracts-template-meta{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:12px;gap:5px;justify-content:flex-end;max-width:52%}.contracts-template-meta>span:first-child{color:#334155;font-weight:600}.contracts-template-meta .ant-tag{margin:0}.contracts-warning{align-items:flex-start;background:#fffbe6;border:1px solid #ffe58f;color:#8c6d1f;display:flex;font-size:13px;gap:10px;margin-top:14px;padding:9px 12px}.contracts-warning strong{flex:0 0 auto}.contracts-computed-value{color:#1e3a5f;display:block;font-variant-numeric:tabular-nums;min-width:45px;padding-inline:4px}@media (max-width: 768px){.contracts-controls .ant-card-body,.contracts-fields-toolbar{align-items:stretch;flex-direction:column}.contracts-control-group>.ant-select{min-width:min(260px,100%)}.contracts-template-meta{justify-content:flex-start;max-width:none}}@media (max-width: 520px){.quick-order-page{padding-inline:12px}.quick-order-header{align-items:flex-start}.quick-order-fields,.quick-order-variant-grid{grid-template-columns:1fr}.quick-order-line{grid-template-columns:minmax(0,1fr) auto auto}.quick-order-line>div{grid-column:1 / -1}.quick-order-line>.ant-btn{grid-column:3}.quick-order-submit-bar{gap:8px}.quick-order-submit-bar .ant-btn{padding-inline:12px}}@media (max-width: 768px){.erp-bom-filters .ant-input-search,.erp-bom-filters .ant-select{max-width:none;width:100%}.erp-bom-lines-table{margin:4px 0}.bom-editor-fields{grid-template-columns:1fr}.bom-lines-toolbar{align-items:flex-start;flex-direction:column}.sales-editor-fields{grid-template-columns:1fr}.erp-sales-filters .ant-input-search,.erp-sales-filters .ant-picker{max-width:none;width:100%}.sales-lines-toolbar{align-items:flex-start;flex-direction:column}}.erp-section-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}.erp-series-search{max-width:300px}.erp-dictionary-intro{color:#64748b;font-size:13px;line-height:1.6;margin:0 0 16px;max-width:720px}.erp-products-page .ant-table-cell{vertical-align:middle}.product-table-image{border-radius:4px;height:42px;object-fit:cover;width:42px}.product-editor-preview{border:1px solid #e5e7eb;border-radius:4px;height:120px;margin-top:30px;object-fit:contain;width:100%}.erp-editor-loading{display:grid;min-height:420px;place-items:center}.erp-variants-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 10px}.erp-variants-table .ant-form-item{margin:0}.form-hint{color:#64748b;font-size:12px}@media (max-width: 768px){.erp-section-toolbar{align-items:stretch}.erp-series-search{max-width:none;width:100%}}.login-page,.home-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-page{background:#eef2f7}.login-card{width:min(400px,100%)}.home-content{width:min(860px,100%)}.system-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.system-grid .anticon{font-size:28px;color:#3498db}@media (max-width: 768px){.page{padding:12px}.page-toolbar{flex-direction:column}}.schedule-matrix{overflow:auto}.schedule-matrix table{border-collapse:collapse;min-width:max-content;width:100%}.schedule-matrix th,.schedule-matrix td{border:1px solid #e8edf3;min-width:58px;padding:6px;text-align:center;vertical-align:top}.schedule-matrix th{background:#fafcff;position:sticky;top:0;z-index:1}.schedule-matrix th:first-child{left:0;min-width:130px;z-index:2}.schedule-matrix td{height:44px;cursor:cell}.schedule-chip{border:0;border-radius:3px;color:#fff;cursor:pointer;display:block;font-size:12px;line-height:20px;margin:1px 0;max-width:110px;overflow:hidden;padding:0 5px;text-overflow:ellipsis;white-space:nowrap;width:100%}.schedule-controls{margin-bottom:16px}.schedule-month-nav{align-items:center;display:flex;gap:10px;min-height:38px}.schedule-month-nav strong{font-size:18px;min-width:118px}.schedule-view-tabs{margin-left:auto}.schedule-view-tabs .ant-tabs-nav{margin:0}.schedule-filters{align-items:center;border-top:1px solid #edf0f5;display:flex;gap:10px;margin-top:14px;padding-top:10px}.schedule-filters .ant-select{width:132px}.schedule-selection{align-items:center;display:flex;gap:12px;margin-bottom:16px;padding-block:10px}.schedule-matrix th small{color:#94a3b8;font-weight:400}.schedule-matrix tbody th{cursor:pointer;font-weight:600;text-align:left}.schedule-matrix tbody tr.is-selected th{background:#e6f4ff;color:#1677ff}@media (max-width: 768px){.schedule-month-nav{align-items:flex-start;flex-wrap:wrap}.schedule-view-tabs{margin-left:0;width:100%}.schedule-filters{flex-wrap:wrap}}.schedule-day-view .ant-card-head-title span{color:#64748b;font-size:13px;font-weight:400}.schedule-day-timeline-scroll{overflow-x:auto}.day-timeline{min-width:1040px}.day-timeline-axis,.day-timeline-row{display:grid;grid-template-columns:240px minmax(720px,1fr)}.day-timeline-axis>div{border-bottom:1px solid #e7edf5;padding:10px 12px}.timeline-hours,.day-timeline-track{background-image:linear-gradient(to right,#e7edf5 1px,transparent 1px);background-size:calc(100% / 24) 100%}.timeline-hours{display:grid;grid-template-columns:repeat(24,1fr);padding:0!important}.timeline-hours span{color:#94a3b8;font-size:11px;padding:10px 0;text-align:center}.day-timeline-employee{align-self:stretch;background:#fafcff;border-bottom:1px solid #e7edf5;padding:12px}.day-timeline-employee strong,.day-timeline-employee span{display:block}.day-timeline-employee span{align-items:flex-start;color:#64748b;display:flex;font-size:12px;line-height:18px;margin-top:4px}.day-timeline-employee i{background:#64748b;border-radius:50%;flex:0 0 auto;height:8px;margin:5px 6px 0 0;width:8px}.day-timeline-track{border-bottom:1px solid #e7edf5;position:relative}.day-timeline-bar{background:color-mix(in srgb,var(--timeline-bar-color) 14%,#fff);border:1px solid var(--timeline-bar-color);border-radius:5px;color:var(--timeline-bar-color);cursor:pointer;font-size:12px;height:28px;overflow:hidden;padding:0 7px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap}.day-timeline-bar.template_task{opacity:.62}.schedule-day-empty{color:#64748b;padding:36px 20px;text-align:center}.reservation-toolbar .ant-form-item{margin-bottom:10px}.reservation-commands{margin:0 0 12px}.reservation-grid{margin-top:16px}.reservation-grid .ant-table-cell{vertical-align:top}.reservation-cell{min-height:74px;min-width:180px}.reservation-cell .ant-btn{padding-inline:0}.reservation-cell ul{margin:5px 0 0;padding-left:17px}.reservation-cell li{line-height:22px}.parent-tasks-page{margin:0 auto;max-width:1440px}.parent-task-search{margin:0 16px 40px}.parent-task-search .ant-input-affix-wrapper{border-color:#dce5f0;box-shadow:none}.parent-task-command{display:flex;justify-content:flex-end;margin:-28px 16px 12px}.parent-task-list{display:grid;gap:14px}.parent-task-card{overflow:hidden}.parent-task-card .ant-card-head{min-height:76px;padding:0 16px 0 20px}.parent-task-card .ant-card-head-title{overflow:visible;padding:0}.parent-task-card .ant-card-extra{align-items:center;display:flex;padding:0}.parent-task-heading{align-items:center;background:transparent;border:0;color:#102a4c;cursor:pointer;display:flex;gap:16px;min-height:76px;padding:0;text-align:left;width:100%}.parent-task-heading .anticon{color:#8aa0bb;font-size:14px}.parent-task-heading span{display:grid;gap:4px}.parent-task-heading strong{font-size:16px;font-weight:650}.parent-task-heading small{color:#71829a;font-size:12px;font-weight:400}.parent-task-heading:focus-visible{outline:2px solid #1677ff;outline-offset:-3px}.parent-task-actions{align-items:center}.parent-task-actions .ant-progress{width:120px}.parent-task-actions .ant-progress-text{color:#8aa0bb;font-size:11px}.parent-task-actions .ant-btn{border-radius:5px}.parent-task-table-toolbar{border-bottom:1px solid #e7edf5;display:flex;justify-content:flex-end;padding:10px 16px}.parent-task-loading{display:grid;min-height:140px;place-items:center}.parent-subtask-table .ant-table{font-size:12px}.parent-subtask-table .ant-table-thead>tr>th{background:#fafcff;color:#8293aa;font-weight:600;white-space:nowrap}.parent-subtask-table .ant-table-tbody>tr>td{color:#153355;vertical-align:top}.parent-subtask-table .ant-table-cell{border-color:#e7edf5;padding:10px 12px!important}.parent-subtask-table .ant-table-tbody>tr:nth-child(3n+1)>td{border-top-color:#d9e3ee}.phase-time{display:grid;gap:3px;min-width:76px}.phase-time strong{color:#153355;font-weight:600}.phase-time span{color:#8092b0;white-space:nowrap}.phase-time-trigger{background:transparent;border:0;cursor:pointer;padding:0;text-align:left;width:100%}.phase-time-trigger:hover strong,.phase-time-trigger:focus-visible strong{color:#1677ff}.phase-time-trigger:hover span{color:#1677ff;text-decoration:underline}.phase-time-trigger:focus-visible{outline:2px solid #1677ff;outline-offset:2px}.phase-time-editor{display:grid;gap:10px;width:310px}.phase-time-editor>strong{color:#153355}.phase-time-editor>.ant-picker{width:100%}.phase-time-editor>div{align-items:center;display:flex;gap:6px}.phase-time-editor>div .ant-picker{flex:1;min-width:0}.phase-time-editor>div span{color:#64748b}.phase-time-editor>.ant-space{justify-content:flex-end}.personnel-summary{display:block;line-height:1.55;min-width:160px;white-space:pre-line}.personnel-summary-trigger{background:transparent;border:0;cursor:pointer;padding:0;text-align:left;width:100%}.personnel-summary-trigger:hover{color:#1677ff;text-decoration:underline}.personnel-summary-trigger:focus-visible{outline:2px solid #1677ff;outline-offset:2px}.personnel-editor{display:grid;gap:10px;width:360px}.personnel-editor>strong{color:#153355}.personnel-editor>label{color:#64748b;font-size:12px}.personnel-editor-list{display:grid;gap:8px;max-height:240px;overflow:auto}.personnel-editor-list>div{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 150px}.personnel-editor-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.personnel-editor-empty{color:#64748b;font-size:12px}.personnel-editor>.ant-space{justify-content:flex-end}.performance-page-toolbar{margin-bottom:18px}.performance-rules-panel{background:#fff;border:1px solid #e4eaf2;border-radius:6px;overflow:hidden}.performance-rule-toolbar{align-items:center;background:#fafcff;border-bottom:1px solid #e4eaf2;display:flex;gap:16px;justify-content:space-between;min-height:58px;padding:10px 14px}.performance-selection-summary{color:#8a9ab0;font-size:13px;white-space:nowrap}.performance-rule-table .ant-table{font-size:13px}.performance-rule-table .ant-table-thead>tr>th{background:#fafcff;color:#536982;font-weight:600;white-space:nowrap}.performance-rule-table .ant-table-tbody>tr>td{border-color:#e4eaf2;color:#18385c;padding-block:11px;vertical-align:middle}.performance-rule-tag{background:#f0f5ff;border:0;color:#356fdc;font-weight:600;margin-inline-end:0}.performance-rule-category,.performance-rule-item,.performance-rule-score{display:grid;gap:4px}.performance-rule-category>span{color:#587391}.performance-rule-category small,.performance-rule-item span,.performance-rule-score span{color:#8295af;font-size:12px;line-height:1.45}.performance-rule-item strong,.performance-rule-score strong{color:#153355;font-weight:650}.performance-rule-score strong{font-size:12px;font-weight:600}.performance-result-summary{display:grid;gap:3px;max-width:100%}.performance-result-summary>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.parent-tasks-page{padding-inline:0}.parent-task-search{margin:0 0 32px}.parent-task-command{margin-right:0}.parent-task-card .ant-card-head{min-height:60px;padding:0 10px}.parent-task-heading{min-height:60px;gap:9px}.parent-task-heading strong{font-size:14px}.parent-task-actions .ant-progress,.parent-task-actions .ant-btn:nth-of-type(1){display:none}.performance-rule-toolbar{align-items:stretch;flex-direction:column}.performance-rule-toolbar .ant-space{justify-content:flex-end}}
