:root{color-scheme:light;font-family:Inter,Pretendard,Noto Sans KR,Segoe UI,Arial,sans-serif;background:#f6f7f9;color:#20242c}*{box-sizing:border-box}body{margin:0;min-width:0;min-height:100vh;background:#f6f7f9}.subtle{color:#697386}button,input,textarea,select{font:inherit}button{cursor:pointer}.root-shell{display:grid;grid-template-columns:240px minmax(0,1fr);width:100%;min-height:100vh}.module-sidebar{min-height:100vh;border-right:1px solid #dde2ea;background:#fff;padding:22px 16px}.sidebar-brand{display:grid;gap:5px;padding:0 6px 20px}.sidebar-brand strong{color:#111827;font-size:18px;line-height:1.2}.sidebar-brand span{color:#697386;font-size:12px;font-weight:700}.sidebar-logout-button{width:100%;min-height:30px;margin:0 0 16px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;font-size:13px;font-weight:700}.module-nav{display:grid;gap:14px}.module-nav-group{display:grid;gap:6px}.module-nav-group h2{margin:0;padding:0 6px;color:#2563eb;font-size:21px;font-weight:900}.module-nav-items{display:grid;gap:3px}.module-nav-button{display:grid;width:100%;min-height:30px;border-color:transparent;background:transparent;color:#374151;padding:5px 10px;text-align:left}.module-nav-primary{font-size:14px;line-height:1.2}.module-nav-button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.module-page{min-width:0;overflow-x:auto}.module-loading-panel{display:grid;gap:10px;align-content:start;width:min(420px,100%);margin:24px 0;padding:16px;border:1px solid #d7dde8;border-radius:8px;background:#fff;color:#1f2937}.module-loading-copy{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:13px}.module-loading-copy strong{font-size:14px}.module-loading-copy span{color:#5f6b7a}.module-loading-bar{position:relative;overflow:hidden;height:8px;border-radius:999px;background:#e8edf5}.module-loading-progress{display:block;height:100%;border-radius:inherit;background:#2f6fed;transition:width .16s ease}.module-loading-percent{justify-self:end;font-size:12px;color:#5f6b7a}.app-shell{display:grid;gap:20px;width:100%;max-width:1600px;min-height:calc(100vh - 62px);padding:24px}.workspace-header{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-bottom:4px}.eyebrow{margin:0 0 8px;color:#2563eb;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}h1{margin:0 0 12px;font-size:30px;line-height:1.1}h2{margin:0;font-size:18px}p{margin:0}.workspace{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}.editor-panel,.table-panel,.log-panel{background:#fff;border:1px solid #dde2ea;border-radius:8px}.editor-panel{width:860px;padding:18px}.form-title,.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}form,.field,.search-field{display:grid;gap:8px}form{grid-template-columns:repeat(3,260px);gap:14px;align-items:end;justify-content:start}.editor-form{align-items:end}.form-title,.message,.field-wide{grid-column:1 / -1}.field span,.search-field span{color:#4b5563;font-size:13px;font-weight:700}input{min-width:0;border:1px solid #cfd6e3;border-radius:6px;padding:10px 11px;background:#fff;color:#20242c}select{width:260px;min-width:0;border:1px solid #cfd6e3;border-radius:6px;padding:10px 11px;background:#fff;color:#20242c}.field:not(.field-wide) input{width:260px}.field-wide input{width:780px}input:focus{border-color:#2563eb;outline:3px solid #dbeafe}select:focus{border-color:#2563eb;outline:3px solid #dbeafe}button{border:1px solid #cfd6e3;border-radius:6px;padding:9px 11px;background:#fff;color:#20242c;font-weight:700}.primary-button{width:260px;border-color:#2563eb;background:#2563eb;color:#fff}.secondary-button,.ghost-button{background:#f8fafc}.table-panel{overflow:hidden}.table-toolbar{padding:12px;border-bottom:1px solid #e5eaf2}.search-field{flex:1 1 auto}.toggle-field{display:inline-flex;align-items:center;gap:8px;color:#374151;font-size:14px;font-weight:700}.toggle-field input{width:16px;height:16px}.table-wrap{overflow-x:auto}table{width:max-content;min-width:1280px;table-layout:fixed;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid #e5eaf2;padding:4px 7px;text-align:left;white-space:nowrap}th{background:#f8fafc;color:#4b5563;font-size:12px;font-weight:800}.column-sort-button{display:flex;width:100%;min-height:24px;align-items:center;justify-content:space-between;gap:6px;border:0;padding:0;background:transparent;color:inherit;font-size:12px;font-weight:800;text-align:left}.column-sort-button:focus{outline:2px solid #bfdbfe;outline-offset:2px}.column-sort-button.active{color:#1d4ed8}.sort-indicator{color:#64748b;font-size:10px}.column-filter-row th{padding:3px 5px;background:#fff}.column-filter-input{width:100%;border-radius:4px;padding:3px 5px;font-size:12px}.column-filter-input::placeholder{color:#9aa4b2}.search-chip{display:inline-flex;width:100%;min-height:22px;align-items:center;justify-content:space-between;gap:6px;border:1px solid #bfdbfe;border-radius:4px;padding:2px 4px 2px 6px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:800}.search-chip-value{min-width:0;overflow:hidden;text-overflow:ellipsis}.search-chip-clear{display:inline-grid;width:16px;height:16px;flex:0 0 auto;place-items:center;border-color:#bfdbfe;border-radius:4px;padding:0;background:#fff;color:#1d4ed8;font-size:11px;line-height:1}.empty-row{padding:18px 12px;color:#697386;text-align:center}.id-column{width:76px;min-width:76px}.dimension-column{width:58px;min-width:58px}.fabric-column{width:64px;min-width:64px}.item-name-column{width:160px;min-width:160px}.note-column{width:180px;min-width:180px}.item-name-column,.note-column{overflow:hidden;text-overflow:ellipsis}.date-column{width:92px;min-width:92px}.date-time-column{width:126px;min-width:126px}.status-column{width:70px;min-width:70px}.action-column{width:136px;min-width:136px}.row-actions{display:flex;gap:6px}.row-actions button{padding:3px 6px;font-size:12px}.row-actions .secondary-button{background:#f8fafc}.status{display:inline-flex;min-width:64px;justify-content:center;border-radius:999px;padding:2px 6px;font-size:12px;font-weight:800}.status.active{background:#e8f5ef;color:#087443}.status.inactive{background:#fff1f2;color:#be123c}.message{border-radius:6px;padding:10px 12px;font-size:14px;font-weight:700}.message.info{background:#eff6ff;color:#1d4ed8}.message.warning{background:#fffbeb;color:#b45309}.message.error{background:#fef2f2;color:#b91c1c}.empty-table{padding:18px 12px;color:#697386;text-align:center}.log-panel{padding:18px}.log-table{min-width:1320px;margin-top:10px}.wide-cell{max-width:360px;white-space:normal;line-height:1.45}.mold-workspace,.material-workspace{align-items:stretch}.mold-editor-panel,.mold-table-panel,.mold-log-panel,.material-history-panel{width:100%}.mold-table-panel table{min-width:894px}.mold-header-summary{display:grid;grid-template-columns:126px 132px 190px 96px;gap:6px;align-items:stretch;min-width:568px}.mold-header-summary div{display:grid;gap:3px;min-width:0;border:1px solid #dbe4f0;border-radius:6px;padding:7px 9px;background:#f8fafc}.mold-header-summary span{color:#64748b;font-size:11px;font-weight:900}.mold-header-summary strong{min-width:0;overflow:hidden;color:#1f2937;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mold-tab-bar{display:flex;gap:6px;margin:-4px 0 12px}.mold-tab{border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#334155;font-size:13px;font-weight:800;padding:7px 12px}.mold-tab.active{border-color:#2563eb;background:#dbeafe;color:#1d4ed8}.mold-status-panel{width:100%}.mold-status-summary{justify-content:flex-start}.common-mold-grid-wrap{max-width:1320px}.common-mold-grid{min-width:1120px;table-layout:fixed}.common-mold-grid th,.common-mold-grid td{padding:5px 6px;text-align:center;vertical-align:middle}.common-mold-grid th{font-size:12px}.common-mold-cell{border:1px solid #cbd5e1}.common-mold-cell strong,.common-mold-cell span,.common-mold-cell small{display:block}.common-mold-cell strong{font-size:12px}.common-mold-cell span,.common-mold-cell small{font-size:11px;font-weight:800}.common-mold-cell.owned{background:#dbeafe;color:#1e3a8a}.common-mold-cell.virtual{background:#e5e7eb;color:#4b5563}.mold-editor-form{grid-template-columns:150px 150px 270px 330px 160px 140px}.mold-editor-form .form-title,.mold-editor-form .message{grid-column:1 / -1}.mold-editor-form .field-help{color:#64748b;font-size:11px;font-weight:800;line-height:1.35}.mold-form-basis{align-self:stretch;margin:0;border:1px solid #dbe4f0;border-radius:6px;padding:8px 10px;background:#f8fafc;color:#334155;font-size:12px;font-weight:800;line-height:1.35}.mold-editor-form .field-wide{grid-column:auto}.mold-editor-form .field:not(.field-wide) input,.mold-editor-form .field-wide input,.mold-editor-form .primary-button,.material-editor-form .field:not(.field-wide) input,.material-editor-form .field-wide input,.material-editor-form select,.material-editor-form .primary-button{width:100%}.mold-danger-button{border-color:#fecdd3;background:#fff1f2;color:#be123c}.mold-danger-button:hover,.mold-danger-button:focus{border-color:#fb7185;outline-color:#fecdd3}.material-workspace{grid-template-columns:1fr}.material-header-summary{display:grid;grid-template-columns:126px 128px 206px 92px 92px;gap:6px;align-items:stretch;min-width:668px}.material-header-summary div{display:grid;gap:3px;min-width:0;border:1px solid #dbe4f0;border-radius:6px;padding:7px 9px;background:#f8fafc}.material-header-summary span{color:#64748b;font-size:11px;font-weight:900}.material-header-summary strong{min-width:0;overflow:hidden;color:#1f2937;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.material-editor-panel{width:100%;padding:12px}.material-editor-form{grid-template-columns:1fr;gap:8px}.material-editor-form .form-title,.material-editor-form .message{grid-column:1 / -1}.material-editor-form .form-title h2{font-size:16px}.material-price-entry-row{display:grid;grid-template-columns:104px 160px 150px 118px 76px 128px minmax(180px,1fr);gap:6px;align-items:end}.material-price-entry-row .field{gap:4px}.material-price-entry-row .field span{font-size:12px}.material-price-entry-row .field-help{color:#64748b;font-size:11px;font-weight:800;line-height:1.3}.material-price-entry-row input,.material-price-entry-row select{width:100%;height:32px;border-radius:4px;padding:5px 7px}.material-price-entry-row button{height:32px;border-radius:4px;padding:5px 8px}.material-submit-cell .primary-button{width:100%}.material-summary-panel{min-width:0}.material-history-panel table{min-width:950px}.material-column{width:112px;min-width:112px;overflow:hidden;text-overflow:ellipsis}.customer-column{width:140px;min-width:140px;overflow:hidden;text-overflow:ellipsis}.price-column{width:92px;min-width:92px;text-align:right}.specific-gravity-column{width:72px;min-width:72px;text-align:right}.material-summary-table{min-width:508px}.material-danger-button{border-color:#fecdd3;background:#fff1f2;color:#be123c}.material-danger-button:hover,.material-danger-button:focus{border-color:#fb7185;outline-color:#fecdd3}.module-placeholder{display:grid;gap:10px;width:720px;padding:18px}.costing-shell{gap:12px;padding:18px 18px 72px}.costing-header{padding-bottom:0}.costing-header h1{margin-bottom:6px;font-size:25px}.costing-status-strip{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(112px,.8fr)) minmax(240px,1.5fr);gap:6px;border:1px solid #d7dde8;background:#f8fafc;padding:6px}.costing-status-item{display:grid;gap:2px;min-width:0;border:1px solid #e1e6ef;background:#fff;padding:5px 7px}.costing-status-item span{color:#64748b;font-size:11px;font-weight:800}.costing-status-item strong{overflow:hidden;color:#111827;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.costing-status-item.ok strong{color:#166534}.costing-status-item.warn strong{color:#92400e}.costing-status-item.wait strong{color:#4b5563}.costing-input-band,.costing-ledger-panel,.costing-validation-panel{border:1px solid #d7dde8;background:#fff}.costing-input-band{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding:10px}.costing-band-copy,.costing-settings-grid{display:grid;align-items:end}.costing-band-copy{align-items:center;gap:2px}.costing-band-copy h2,.costing-band-copy p{margin:0}.costing-band-copy h2{font-size:14px}.costing-band-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:6px}.costing-band-actions button,.costing-settings-grid button{min-height:30px;padding:7px 10px;white-space:nowrap}.costing-message{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px}.costing-message strong{flex:0 0 auto;font-size:12px;font-weight:900}.costing-message span{font-size:12px;font-weight:800}.reference-warning-panel{border:1px solid #c78b12;background:#fff8e6;margin:0;padding:12px}.reference-warning-panel--blocking{border-color:#b42318;background:#fff1f0}.reference-warning-panel h2{margin:0 0 8px;font-size:15px}.reference-warning-panel p{margin:0}.reference-change-table th,.reference-change-table td{white-space:nowrap}.costing-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:12px;align-items:start}.costing-ledger-panel{min-width:0}.costing-toolbar{min-height:44px;border-bottom:1px solid #e4e9f2;padding:10px 12px}.costing-toolbar h2,.validation-head h2{font-size:16px}.quote-input-table-wrap{overflow:auto;border-bottom:1px solid #e4e9f2;padding:8px;background:#fafbfc}.quote-input-table{width:100%;min-width:880px;border-collapse:collapse;table-layout:fixed;background:#fff;font-size:12px}.quote-input-table th,.quote-input-table td{border:1px solid #e1e6ef;padding:4px 6px;line-height:1.2}.quote-input-table th{background:#eef2f7;color:#374151;font-size:11px;text-align:left}.quote-input-table th:nth-child(1){width:78px}.quote-input-table th:nth-child(2){width:108px}.quote-input-table th:nth-child(3){width:180px}.quote-input-table th:nth-child(4){width:58px}.quote-input-table th:nth-child(5){width:78px}.quote-input-table input,.settings-input-table input{width:100%;min-height:26px;border:1px solid #cfd6e3;border-radius:3px;padding:4px 6px;font-size:12px}.quote-input-value{min-width:0}.quote-input-table [data-material-field]{background:#eaf6ff}.costing-shell .field{gap:4px}.costing-shell .field span{font-size:11px}.costing-shell .field input{width:100%;min-height:28px;border-radius:3px;padding:5px 7px;font-size:12px}.costing-table-wrap{overflow:auto;max-height:calc(100vh - 310px)}.costing-ledger-table{width:100%;min-width:1440px;border-collapse:collapse;font-size:12px;table-layout:fixed}.costing-ledger-table th,.costing-ledger-table td{border:1px solid #e1e6ef;padding:5px 6px;line-height:1.2;white-space:nowrap}.costing-ledger-table th{position:sticky;top:0;z-index:1;background:#eef2f7;color:#374151;font-size:11px;text-align:left}.costing-ledger-table td.num{text-align:right}.costing-ledger-table td.formula{overflow:hidden;color:#4b5563;text-overflow:ellipsis}.costing-ledger-table th:nth-child(1){width:34px}.costing-ledger-table th:nth-child(2){width:76px}.costing-ledger-table th:nth-child(3){width:118px}.costing-ledger-table th:nth-child(4){width:82px}.costing-ledger-table th:nth-child(5){width:58px}.costing-ledger-table th:nth-child(6){width:76px}.costing-ledger-table th:nth-child(7){width:68px}.costing-ledger-table th:nth-child(8){width:76px}.costing-ledger-table th:nth-child(9){width:260px}.costing-ledger-table th:nth-child(10),.costing-ledger-table th:nth-child(11){width:86px}.costing-ledger-table th:nth-child(12){width:70px}.costing-ledger-table th:nth-child(13){width:66px}.costing-row.manual td:nth-child(4),.costing-row.manual td:nth-child(9){background:#fff8d9}.costing-row.db td:nth-child(4),.costing-row.db td:nth-child(7),.costing-row.db td:nth-child(9){background:#eaf6ff}.costing-row.calculated .result-cell,.costing-row.calculated td:nth-child(10),.costing-row.calculated td:nth-child(11){background:#ecfdf3}.costing-row.warning .result-cell{background:#fff1f2}.costing-validation-panel{display:grid;gap:12px;padding:12px}.validation-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.validation-head.compact h3,.costing-print-options h3{margin:0;font-size:13px}.validation-list{display:grid;gap:6px;margin:0}.validation-list div{display:grid;grid-template-columns:118px 1fr;gap:8px;align-items:center;border-bottom:1px solid #eef2f7;padding-bottom:6px}.validation-list dt{color:#4b5563;font-size:12px;font-weight:800}.validation-list dd{display:flex;justify-content:space-between;gap:8px;margin:0;font-size:12px;font-weight:800}.status-pill{display:inline-flex;align-items:center;min-height:20px;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}.status-pill.ok{background:#dcfce7;color:#166534}.status-pill.wait{background:#e5e7eb;color:#4b5563}.status-pill.warn,.status-pill.error{background:#fee2e2;color:#991b1b}.impact-pill{display:inline-flex;min-width:42px;justify-content:center;border-radius:999px;padding:2px 6px;font-size:11px;font-weight:900}.impact-pill.impact{background:#fef3c7;color:#92400e}.impact-pill.no-impact{background:#e5e7eb;color:#4b5563}.unit-cost-pill{display:inline-flex;min-width:46px;justify-content:center;border-radius:999px;padding:2px 6px;font-size:11px;font-weight:900}.unit-cost-pill.shown{background:#dcfce7;color:#166534}.unit-cost-pill.hidden{background:#eef2f7;color:#64748b}.material-picker-field{min-width:0}.material-picker-button{width:100%;min-height:28px;overflow:hidden;padding:5px 7px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.table-material-button{min-height:26px;padding:4px 6px}.compact-material-field input{background:#eaf6ff}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#0f172a57}.module-modal-backdrop{z-index:30;padding:18px}.module-modal-panel{width:min(1420px,calc(100vw - 36px));max-height:calc(100vh - 36px);overflow:auto;border:1px solid #cfd6e3;background:#fff;padding:12px;box-shadow:0 18px 42px #0f172a33}.material-picker-dialog,.paper-rate-dialog,.throughput-manager-dialog{display:grid;gap:12px;width:min(760px,calc(100vw - 32px));max-height:72vh;overflow:auto;border:1px solid #cfd6e3;background:#fff;padding:14px;box-shadow:0 18px 40px #0f172a2e}.paper-rate-dialog{width:min(980px,calc(100vw - 32px))}.dialog-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-title-row h2{margin:0;color:#111827;font-size:18px}.throughput-manager-dialog{width:min(560px,calc(100vw - 32px))}.material-picker-table-wrap{border:1px solid #e5eaf2}.material-picker-table{width:100%;min-width:650px}.material-picker-table .material-column{width:150px}.material-picker-table .customer-column{width:130px}.material-picker-table .price-column{width:100px}.material-picker-table .specific-gravity-column{width:72px}.material-picker-table .date-column{width:106px}.material-picker-table .action-column{width:64px;text-align:center}.row-select-button,.row-delete-button{min-height:24px;border-radius:4px;padding:3px 7px;background:#f8fafc;font-size:12px;font-weight:800}.row-delete-button,.row-delete-button.danger-button{border-color:#fecaca;background:#fff7f7;color:#991b1b}.row-delete-button.danger-button:hover{border-color:#fca5a5;background:#fee2e2}.material-choice-row{display:grid;grid-template-columns:1.2fr 1fr 82px 62px 94px;gap:8px;align-items:center;min-height:32px;border:1px solid #e1e6ef;border-radius:4px;padding:6px 8px;background:#fff;text-align:left}.material-choice-row:hover{border-color:#2563eb;background:#eff6ff}.material-choice-row strong,.material-choice-row small{text-align:right}.unit-cost-summary-panel{display:grid;gap:8px;border-bottom:1px solid #e4e9f2;padding:8px;background:#fbfcfe}.unit-cost-summary-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.unit-cost-summary-head h3,.unit-cost-summary-head p{margin:0}.unit-cost-summary-head h3{font-size:12px}.unit-cost-summary-head p{font-size:14px;font-weight:900}.unit-cost-summary-head span{color:#697386;font-size:11px;font-weight:700}.unit-cost-summary-table{width:100%;min-width:620px;border-collapse:collapse;background:#fff;font-size:12px;table-layout:fixed}.unit-cost-summary-table th,.unit-cost-summary-table td{border:1px solid #e1e6ef;padding:4px 6px}.unit-cost-summary-table th{background:#eef2f7}.unit-cost-summary-table th:nth-child(1){width:86px}.unit-cost-summary-table th:nth-child(2){width:132px}.unit-cost-summary-table th:nth-child(3),.unit-cost-summary-table th:nth-child(4){width:86px}.unit-cost-summary-table .num{text-align:right}.moq-result-panel{border-top:1px solid #e4e9f2}.moq-result-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.moq-result-table th,.moq-result-table td{border:1px solid #e1e6ef;padding:5px 7px}.moq-result-table .num{text-align:right}.costing-settings-box,.costing-print-options{display:grid;gap:8px;border:1px solid #e4e9f2;padding:10px;background:#fbfcfe}.costing-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.settings-input-table{width:100%!important;min-width:0!important;border-collapse:collapse;table-layout:fixed;background:#fff;font-size:12px}.settings-input-table th,.settings-input-table td{border:1px solid #e1e6ef;padding:4px 6px}.settings-input-table th{background:#eef2f7;font-size:11px;text-align:left}.settings-input-table th:nth-child(1){width:48%}.settings-input-table td:first-child{white-space:normal;line-height:1.25}.rate-settings-table th:nth-child(1){width:52%}.rate-settings-table th:nth-child(2){width:48%}.throughput-input-table th:nth-child(1){width:46%}.throughput-manage-row,.throughput-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.throughput-manage-row span{color:#4b5563;font-size:12px;font-weight:800}.throughput-editor{display:grid;gap:8px}.throughput-manager-table .action-column{width:116px;min-width:116px;text-align:center;white-space:nowrap}.throughput-manager-table{width:100%!important;min-width:0!important;table-layout:fixed}.throughput-manager-table th:nth-child(1){width:92px}.throughput-manager-table th:nth-child(2){width:140px}.quote-compact-table{width:100%!important;min-width:0!important;border-collapse:collapse;font-size:12px}.quote-compact-table th,.quote-compact-table td{border:1px solid #e1e6ef;padding:5px 6px}.costing-print-options label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.costing-print-options input{min-height:0}.costing-summary-bar{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;overflow:hidden;border:1px solid #cfd6e3;background:#cfd6e3}.costing-summary-bar div{display:grid;gap:3px;padding:9px 12px;background:#fff}.costing-summary-bar span{color:#4b5563;font-size:11px;font-weight:800}.costing-summary-bar strong{color:#111827;font-size:17px;text-align:right}@media print{body{min-width:0;background:#fff}.module-sidebar,.costing-band-actions,.costing-validation-panel,.costing-support-fields{display:none}.root-shell,.app-shell,.costing-grid{display:block;width:auto;min-height:0;padding:0}.costing-table-wrap{max-height:none;overflow:visible}.costing-ledger-table{min-width:0;font-size:9px}.costing-summary-bar{position:static;margin-top:8px}}.app-stack{display:grid;gap:28px}.layout-workspace{display:grid;gap:12px;width:1360px;padding:14px 16px 24px}.layout-workspace.module-frame--visual{max-width:none}.layout-header{display:flex;align-items:end;justify-content:space-between;padding-top:4px}.layout-summary-strip{display:grid;grid-template-columns:1fr 1fr 1.35fr auto;gap:8px;align-items:center;border:1px solid #dbe4f0;border-radius:6px;padding:8px 10px;background:#f8fafc}.layout-summary-strip div{display:grid;gap:3px;min-width:0}.layout-summary-strip span{color:#64748b;font-size:11px;font-weight:900}.layout-summary-strip strong{min-width:0;overflow:hidden;color:#1f2937;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.layout-workspace .status.pending,.layout-workspace .status.wait{background:#f1f5f9;color:#475569}.layout-workspace .message{display:flex;gap:8px;align-items:center}.layout-workspace .message strong{flex:none}.layout-workspace .message span{min-width:0}.layout-middle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.layout-panel{min-width:0;border:1px solid #dde2ea;border-radius:6px;padding:10px;background:#fff}.module-status-strip{display:grid;grid-template-columns:86px repeat(3,1fr);gap:8px;align-items:stretch}.module-status-strip h2{align-self:center;color:#20242c;font-size:15px}.status-card{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;min-height:56px;border:1px solid #dde2ea;border-radius:6px;padding:8px 10px;background:#fff}.status-card div{display:grid;gap:3px}.status-card span{color:#697386;font-size:12px;font-weight:700}.status-card b{grid-column:1;color:#2563eb}.status-card .status{grid-column:2;grid-row:1 / span 2}.calculation-progress{display:grid;grid-template-columns:180px 1fr 52px;gap:10px;align-items:center;border:1px solid #bfdbfe;border-radius:6px;padding:8px 10px;background:#eff6ff}.calculation-progress div:first-child{display:grid;gap:2px}.calculation-progress strong{color:#1d4ed8;font-size:13px}.calculation-progress span{color:#475569;font-size:12px;font-weight:700}.calculation-progress b{color:#1d4ed8;font-size:13px;text-align:right}.calculation-progress-bar{height:8px;overflow:hidden;border-radius:999px;background:#dbeafe}.calculation-progress-bar span{display:block;height:100%;border-radius:inherit;background:#2563eb;transition:width .16s ease}.layout-input-row{min-width:0;border:1px solid #dde2ea;background:#fff;padding:8px 10px 10px}.layout-input-row h2{margin:0 0 7px;font-size:15px}.input-table-form{min-width:0}.input-control-table{width:100%;min-width:1120px;table-layout:fixed;border-collapse:collapse;font-size:12px}.input-control-table th,.input-control-table td{border:1px solid #e1e6ef;padding:4px 5px;vertical-align:middle;white-space:nowrap}.input-control-table th{background:#eef2f7;color:#374151;font-size:11px;line-height:1.25;white-space:normal}.input-control-table .table-number-input,.input-control-table .table-file-input{width:100%;min-height:28px}.input-control-table .primary-button{width:100%}.svg-action-stack{display:grid;gap:5px;min-width:120px}.svg-action-stack .secondary-button{width:100%;min-height:28px;padding-inline:6px;font-size:12px;white-space:normal}.svg-paste-input-table textarea{width:100%;min-width:240px;height:34px;resize:vertical;border:1px solid #cfd6e3;border-radius:4px;padding:5px 7px;font:inherit;font-size:12px;line-height:1.35}.svg-paste-zone{display:block}.svg-paste-zone:focus-within{outline:2px solid rgba(37,99,235,.22);outline-offset:1px}.input-mode-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.input-tab{min-height:28px;border-color:#cfd6e3;border-radius:4px;padding:4px 5px;background:#fff;color:#4b5563;font-size:11px}.input-tab.active{border-color:#2563eb;background:#eff6ff;color:#2563eb}.input-help{margin:10px 0 0;color:#697386;font-size:12px;line-height:1.5}.mold-source-list{display:grid;gap:6px}.mold-source-list h2{font-size:15px}.mold-source-list table{min-width:100%;font-size:12px}.mold-source-list th,.mold-source-list td{padding:4px 6px}.empty-source{margin:0;border:1px dashed #cbd5e1;border-radius:6px;padding:12px;color:#697386;font-size:12px}.compact-form,.editor-controls{display:grid;gap:7px}.compact-form{grid-template-columns:1fr}.layout-panel .field,.layout-panel .search-field{gap:4px}.layout-panel .field span,.layout-panel .search-field span{font-size:12px}.layout-panel .field:not(.field-wide) input,.layout-panel .field-wide input,.layout-panel select{width:100%;border-radius:4px;padding:6px 8px;font-size:12px}.layout-panel .primary-button,.layout-panel .secondary-button{min-height:30px;padding:5px 8px;font-size:12px}.divider{height:1px;margin:10px 0;background:#e5eaf2}.panel-title-row,.action-row,.result-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.preview-panel,.result-panel{min-height:260px}.shape-preview,.layout-preview svg{width:100%;min-height:140px;max-height:260px;border:1px solid #d8e0ec;border-radius:6px;background-color:#fbfcfe;background-image:linear-gradient(#eef2f8 1px,transparent 1px),linear-gradient(90deg,#eef2f8 1px,transparent 1px);background-size:24px 24px}.shape-preview{margin-bottom:8px}.source-svg-preview{display:grid;place-items:center;min-height:120px;max-height:220px;margin-bottom:8px;overflow:hidden;border:1px solid #d8e0ec;border-radius:6px;background:#fff}.source-svg-preview img{display:block;width:100%;max-height:210px;object-fit:contain}.product-outline{fill:#2563eb14;stroke:#2563eb;stroke-width:1.5;vector-effect:non-scaling-stroke}.selectable-edge{stroke:#2563eb52;stroke-width:7;stroke-linecap:round;vector-effect:non-scaling-stroke}.selectable-edge.selected{stroke:#0ea5e9c7}.shape-select-handle{width:100%;height:100%;min-height:0;border:2px solid #2563eb;border-radius:999px;padding:0;background:#fff;box-shadow:0 0 0 3px #ffffffe6;cursor:pointer}.shape-select-handle.edge{border-color:#0ea5e9;border-radius:4px}.shape-select-handle.selected{border-color:#111827;background:#2563eb}.shape-select-handle.edge.selected{background:#0ea5e9}.selection-summary{display:flex;flex-wrap:wrap;gap:5px;margin:-2px 0 8px}.selection-summary span{border:1px solid #bfdbfe;border-radius:999px;padding:3px 7px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800}.reference-note{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:-4px 0 12px}.reference-note span,.reference-note strong{border:1px solid #bae6fd;border-radius:999px;padding:5px 9px;background:#f0f9ff;color:#0369a1;font-size:12px;font-weight:800}.frame-rect{fill:#fff;stroke:#111827;stroke-width:1.8;vector-effect:non-scaling-stroke}.placed-product{fill:#2563eb1a;stroke:#2563eb;stroke-width:1.2;vector-effect:non-scaling-stroke}.placement-bounds{fill:#94a3b80f;stroke:#64748b;stroke-dasharray:4 4;stroke-width:.9}.reference-product{fill:#f973162e;stroke:#f97316;stroke-width:1.8;vector-effect:non-scaling-stroke}.dimension-line{stroke:#2563eb;stroke-width:.8;vector-effect:non-scaling-stroke}.dimension-label{fill:#334155;font-size:10px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px}.editor-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;padding-top:2px}.compact-editor-panel{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 8px;border:1px solid #dbe4f0;border-radius:6px;padding:6px;background:#f8fafc}.editor-toolbar{display:flex;flex-wrap:wrap;gap:4px;margin:8px -10px 0;padding:6px 10px;border-top:1px solid #e5eaf2;border-bottom:1px solid #e5eaf2;background:#f8fafc}.tool-button{min-height:30px;border-color:transparent;background:transparent;font-size:11px}.tool-button.active{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.editor-controls button,.editor-controls .ratio-toggle{min-height:32px}.editor-panel-note{align-self:center;color:#4b5563;font-size:12px;font-weight:800}.placement-preview-panel,.candidate-panel{min-height:0}.candidate-table-wrap{overflow-x:auto}.candidate-table{width:100%;min-width:1120px;font-size:12px}.candidate-table th,.candidate-table td{overflow:hidden;padding:4px 5px;text-overflow:ellipsis}.candidate-group-row th{background:#eef3f8;color:#243447;font-weight:700;text-align:left}.candidate-empty-row td{color:#687386}.candidate-table th:nth-child(1){width:42px}.candidate-table th:nth-child(2){width:172px}.candidate-table th:nth-child(3){width:62px}.candidate-table th:nth-child(4),.candidate-table th:nth-child(5){width:76px}.candidate-table th:nth-child(6),.candidate-table th:nth-child(7){width:74px}.candidate-table th:nth-child(8){width:78px}.candidate-table th:nth-child(9){width:82px}.candidate-table td strong,.candidate-table td small{display:block}.frame-cell-grid{display:grid;grid-template-columns:minmax(78px,1fr) 48px minmax(76px,1fr);gap:5px;align-items:center}.frame-cell-grid strong,.frame-cell-grid small{display:inline-flex;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame-cell-grid .source-chip{justify-self:start}.custom-frame-cell{grid-template-columns:154px 48px minmax(76px,1fr)}.candidate-table td small,.formula-note,.result-summary span{color:#4b5563;font-size:11px;font-weight:700}.selected-candidate{background:#eff6ff;outline:1px solid #2563eb;outline-offset:-1px}.unavailable-candidate{color:#9f1239;background:#fff1f2}.candidate-rank-button{min-width:38px;padding:4px 6px;color:#1d4ed8}.custom-candidate-row{background:#fbfcfe}.custom-candidate-actions{display:grid;gap:4px}.custom-candidate-actions .secondary-button{width:100%;min-height:26px;padding:3px 5px}.table-input-pair{display:grid;grid-template-columns:74px 74px;gap:4px;margin-bottom:4px}.table-number-input{width:74px;min-height:26px;border:1px solid #cfd6e3;border-radius:4px;padding:3px 5px;font-size:12px}.source-chip{display:inline-flex;width:fit-content;min-width:42px;justify-content:center;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}.source-chip.saved{background:#dff8ea;color:#087443}.source-chip.custom{background:#f1f5f9;color:#475569}.source-chip.common{background:#dbeafe;color:#1d4ed8}.formula-note{margin-top:10px}.preview-detail-grid{display:grid;grid-template-columns:1fr 150px;gap:12px}.preview-metrics{display:grid;gap:12px;margin:0;font-size:13px}.preview-metrics div{display:grid;gap:3px}.preview-metrics dt{color:#4b5563;font-weight:800}.preview-metrics dd{margin:0;font-weight:900}.layout-preview{min-width:0}.quote-handoff-panel{display:grid;gap:8px;margin-top:10px;border:1px solid #dbeafe;border-radius:6px;padding:10px;background:#f8fbff}.quote-handoff-panel h3{margin:0;font-size:14px}.quote-handoff-panel dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.quote-handoff-panel div{display:grid;gap:3px}.quote-handoff-panel dt{color:#4b5563;font-size:12px;font-weight:800}.quote-handoff-panel dd{margin:0;font-size:13px;font-weight:900}.file-field{margin-top:14px}.quote-workspace{display:grid;gap:8px;min-width:0;font-size:12px}.quote-workspace-readonly{border:1px solid #d7dde8;border-radius:6px;padding:8px;background:#fbfcfe}.quote-readonly-badge{display:inline-flex;align-items:center;min-height:22px;border:1px solid #b7d4ff;border-radius:4px;padding:2px 7px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:900}.quote-workspace-actions,.quote-workspace-toolbar,.quote-workspace-inputs{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.quote-workspace-band{padding:7px 8px}.quote-workspace label{display:grid;gap:4px;color:#374151;font-size:12px;font-weight:800}.quote-workspace input,.quote-workspace select,.quote-workspace textarea{min-height:26px;border:1px solid #cfd6e3;border-radius:4px;padding:3px 6px;font-size:12px}.quote-workspace textarea{min-height:100%;resize:vertical}.quote-workspace button{min-height:26px;padding:4px 8px;font-size:12px}.quote-pending-change-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #f4c56f;border-radius:6px;padding:7px 8px;background:#fff8e8;color:#5f3b00}.quote-pending-change-banner>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.quote-pending-change-banner strong{font-size:12px;font-weight:900}.quote-pending-change-banner span{font-size:12px;font-weight:700}.unsaved-quote-dialog{display:grid;gap:10px;width:min(420px,calc(100vw - 32px));border:1px solid #d7dde8;border-radius:8px;padding:16px;background:#fff;box-shadow:0 20px 45px #0f172a33}.unsaved-quote-dialog h2{margin:0;font-size:16px}.unsaved-quote-dialog p{margin:0;color:#334155;font-size:13px;font-weight:700}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.quote-workspace h2{padding:7px 8px;border-bottom:1px solid #e5eaf2;font-size:14px;line-height:1.15}.quote-info-panel{padding:0}.quote-info-grid,.quote-main-fields{display:grid;margin:0}.quote-info-grid{grid-template-columns:150px 210px 170px 210px 150px 110px minmax(220px,1fr)}.quote-section-title-row,.quote-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #e5eaf2}.quote-section-title-row h2,.quote-list-toolbar h2{border-bottom:0}.quote-section-title-row button{margin-right:8px}.quote-list-toolbar input{width:260px;margin-right:8px}.quote-info-grid div,.quote-main-fields div{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;min-height:27px;border-right:1px solid #e5eaf2;border-bottom:1px solid #e5eaf2}.quote-info-grid dt,.quote-main-fields dt{height:100%;padding:5px 6px;background:#f8fafc;color:#4b5563;font-size:11px;font-weight:800}.quote-info-grid dd,.quote-main-fields dd{min-width:0;margin:0;overflow:hidden;padding:5px 6px;color:#111827;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.quote-main-card-grid{display:grid;grid-template-columns:minmax(500px,max-content) minmax(420px,1fr);align-items:start;gap:8px}.quote-main-card-blister{grid-column:auto}.quote-main-card-design{grid-column:1 / -1}.quote-main-card{min-width:0;overflow:hidden;border:1px solid #dde2ea;border-radius:6px;background:#fff}.quote-main-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;border-bottom:1px solid #e5eaf2;padding:5px 7px}.quote-main-card-header h2{border-bottom:0;padding:0}.quote-main-card-header>div{display:flex;align-items:center;gap:7px;min-width:0}.quote-main-card-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:4px}.quote-main-status{border-radius:4px;padding:2px 5px;font-size:11px;font-weight:900}.quote-main-status.complete{background:#e8f5ef;color:#087443}.quote-main-status.draft,.quote-main-status.needsReview{background:#fffbeb;color:#b45309}.quote-main-status.empty{background:#f1f5f9;color:#64748b}.quote-module-button{width:auto;flex:0 0 auto}.quote-handoff-action-bar{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;font-size:12px;font-weight:800}.quote-handoff-action-bar>span{color:#334155;white-space:nowrap}.quote-handoff-action-bar>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.quote-handoff-action-bar button:disabled{cursor:not-allowed;opacity:.48}.quote-main-fields,.quote-main-card-blister .quote-main-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.blister-summary-grid{display:grid;grid-template-columns:max-content max-content 180px;justify-content:start;gap:0;width:fit-content;max-width:100%;border-bottom:1px solid #e5eaf2}.blister-summary-table{width:max-content;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:12px}.blister-summary-table th,.blister-summary-table td{height:27px;border-right:1px solid #d7dde8;border-bottom:1px solid #d7dde8;padding:2px 3px;text-align:center;white-space:nowrap}.blister-summary-table tbody th{width:68px;min-width:68px}.blister-summary-table tbody td{width:70px;min-width:70px}.blister-summary-table thead th{background:#f8fafc;color:#111827;font-size:13px;font-weight:900}.blister-summary-table tbody th{background:#fbfcfe;color:#374151;font-weight:900}.blister-note-cell{display:grid;grid-template-rows:28px 1fr;width:180px;min-height:190px;border-bottom:1px solid #d7dde8;border-right:1px solid #d7dde8;color:#111827;font-size:12px;font-weight:900}.blister-note-cell span{display:grid;place-items:center;border-bottom:1px solid #d7dde8;background:#f8fafc}.blister-note-cell textarea{width:100%;border:0;border-radius:0}.blister-editable-value{display:flex;align-items:center;justify-content:center;gap:4px}.blister-editable-value input{width:7ch;min-height:19px;border:1px solid transparent;border-radius:2px;padding:1px;background:transparent;color:#111827;font-size:12px;font-weight:800;text-align:center;appearance:textfield}.blister-editable-value input:focus{border-color:#94a3b8;background:#fff;outline:none}.blister-editable-value input::-webkit-inner-spin-button,.blister-editable-value input::-webkit-outer-spin-button{margin:0;appearance:none}.blister-original-value{color:#9ca3af;font-size:11px;font-weight:800;text-decoration:line-through}.quote-main-card-paperAccessory .quote-main-fields,.quote-main-card-design .quote-main-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.paper-accessory-summary{margin:0;border-bottom:1px solid #e5eaf2;padding:5px 7px;color:#111827;font-size:12px;font-weight:900;line-height:1.25}.paper-accessory-table-wrap{max-height:230px}.paper-accessory-table{min-width:860px;font-size:11px}.paper-accessory-table th,.paper-accessory-table td{padding:4px 5px;white-space:nowrap}.paper-accessory-table td:nth-child(6){max-width:160px;overflow:hidden;text-overflow:ellipsis}.quote-main-fields div.primary dd{color:#0f172a;font-weight:900}.quote-source-line{padding:4px 7px;color:#697386;font-size:11px;line-height:1.2}.quote-workspace-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quote-current-list-table,.quote-branch-history-table,.quote-moq-price-table{min-width:680px;font-size:12px}.quote-branch-table th,.quote-branch-table td,.quote-history-table th,.quote-history-table td,.quote-current-list-table th,.quote-current-list-table td,.quote-branch-history-table th,.quote-branch-history-table td,.quote-moq-price-table th,.quote-moq-price-table td{white-space:nowrap}.quote-moq-price-table th,.quote-moq-price-table td{text-align:right}.quote-moq-price-table th:first-child{text-align:left}.quote-moq-price-table th:nth-child(2){text-align:left}.moq-column-heading{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px}.moq-delete-button{width:18px;height:18px;border:1px solid #d5dbe7;border-radius:4px;background:#fff;color:#6b7280;font-size:13px;line-height:1;cursor:pointer}.moq-calculate-button{min-height:24px;padding:2px 6px;font-size:11px}.moq-calculate-placeholder{color:#9ca3af}.moq-editable-cell{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px}.moq-editable-cell input{width:68px;border:0;border-bottom:1px solid transparent;background:transparent;padding:1px 0;text-align:right;font:inherit;color:#111827}.moq-editable-cell input:focus{outline:none;border-bottom-color:#2563eb;background:#f8fbff}.moq-editable-cell del{color:#9ca3af;font-size:11px}.moq-cell-quantity{color:#6b7280;font-size:11px}.paper-quantity-per-set-input{width:54px;border:0;border-bottom:1px solid #d5dbe7;background:transparent;padding:1px 0;text-align:right;font:inherit}.paper-quantity-per-set-input:focus{outline:none;border-bottom-color:#2563eb;background:#f8fbff}.quote-list-cards{display:grid;gap:6px;padding:8px}.quote-list-card{display:grid;gap:5px;border:1px solid #d7dde8;border-radius:6px;padding:6px;background:#fff}.quote-list-card-main,.quote-list-branch-row{display:grid;grid-template-columns:100px 1.3fr 1.5fr 82px 190px;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:#111827;text-align:left}.quote-list-card-main strong{font-size:13px}.quote-list-card-main em{font-style:normal;font-weight:900}.quote-list-schedule-cards{display:flex;flex-wrap:wrap;gap:5px}.quote-list-schedule-card,.quote-list-schedule-empty{display:inline-grid;grid-template-columns:auto auto;gap:5px;border:1px solid #dbe4f0;border-radius:4px;padding:3px 6px;background:#f8fafc;font-size:11px;font-weight:800}.quote-list-branch-rows{display:grid;gap:3px;padding-top:4px;border-top:1px solid #e5eaf2}.quote-list-branch-row{grid-template-columns:1fr 100px 190px;min-height:26px;border:1px solid #e5eaf2;border-radius:4px;padding:3px 6px}.quote-list-branch-row.dormant{background:#f1f5f9;color:#94a3b8}.quote-history-entry-line{display:flex;justify-content:flex-end;padding:0 8px 8px}.schedule-app{display:grid;gap:12px;width:1480px;padding:18px}.schedule-calendar-fixed{display:grid;grid-template-columns:repeat(7,190px);gap:8px;align-items:start;width:1382px}.schedule-calendar-mode-tabs{display:flex;gap:6px;width:240px;border-bottom:1px solid #d7dde8}.schedule-calendar-mode-tabs button{min-width:86px;border-bottom:0;border-radius:6px 6px 0 0;background:#f8fafc;font-weight:900}.schedule-calendar-mode-tabs button[aria-pressed=true]{border-color:#2563eb;background:#2563eb;color:#fff}.schedule-project-form,.schedule-post-form,.schedule-item-form,.schedule-asset-form{display:grid;gap:6px;align-items:end;border:1px solid #d7dde8;border-radius:6px;padding:8px;background:#fff}.schedule-project-form{grid-template-columns:1fr 190px;width:720px}.schedule-project-form h2{font-size:15px}.schedule-project-form p{grid-column:1 / -1;color:#64748b;font-size:13px;font-weight:750}.schedule-project-form label{display:grid;gap:3px;color:#475569;font-size:12px;font-weight:850}.schedule-project-form input,.schedule-project-form select,.schedule-post-form input,.schedule-item-form input,.schedule-item-form select,.schedule-asset-form input,.schedule-asset-form select,.schedule-items-table input,.schedule-items-table select{width:100%;height:28px;border-radius:4px;padding:4px 6px;font-size:12px}.schedule-quote-picker-dialog{display:grid;gap:10px;width:920px;max-height:calc(100vh - 80px);overflow:hidden;border:1px solid #d7dde8;border-radius:8px;padding:14px;background:#fff;box-shadow:0 20px 45px #0f172a33}.schedule-quote-picker-dialog .search-field{width:360px}.schedule-quote-picker-table{min-width:880px}.schedule-unscheduled-projects{display:grid;gap:7px;width:720px;border:1px solid #d7dde8;border-radius:6px;padding:8px;background:#fff}.schedule-unscheduled-projects h2{font-size:15px}.schedule-unscheduled-projects div{display:flex;flex-wrap:wrap;gap:6px}.schedule-unscheduled-projects button{width:auto}.schedule-calendar-day{display:grid;gap:6px;align-content:start;width:190px;min-height:128px;border:1px solid #d7dde8;border-radius:6px;padding:8px;background:#fff;text-align:left}.schedule-calendar-day strong{color:#111827;font-size:12px}.schedule-calendar-summary-pills{display:flex;flex-wrap:wrap;gap:4px}.schedule-calendar-summary-pill,.schedule-calendar-empty{display:inline-flex;min-height:22px;align-items:center;border:1px solid #dbe2ee;border-radius:4px;padding:2px 6px;background:#f8fafc;color:#475569;font-size:12px;font-weight:900;line-height:1.2}.schedule-calendar-summary-pill.delayed{border-color:#fecaca;background:#fff1f2;color:#be123c}.schedule-calendar-summary-pill.today{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.schedule-calendar-summary-pill.soon{border-color:#fde68a;background:#fffbeb;color:#92400e}.schedule-calendar-summary-pill.total{border-style:dashed;background:#fff;color:#64748b}.schedule-week-board{display:grid;gap:8px;width:1382px;border:1px solid #d7dde8;border-radius:6px;background:#fff}.schedule-week-head{display:flex;align-items:center;justify-content:space-between;min-height:38px;border-bottom:1px solid #e5eaf2;padding:8px 10px}.schedule-week-head h2{margin:0;font-size:15px}.schedule-week-head span{color:#64748b;font-size:12px;font-weight:850}.schedule-week-days{display:grid;gap:10px;padding:10px;background:#f8fafc}.schedule-week-day{display:grid;gap:4px}.schedule-week-day h3{margin:0;color:#334155;font-size:13px}.schedule-week-row-head,.schedule-week-row{display:grid;grid-template-columns:96px 250px 150px 92px 250px 100px 104px 80px;gap:0;align-items:center;width:1324px}.schedule-week-row-head{min-height:28px;border:1px solid #dbe2ee;background:#eef2f7;color:#475569;font-size:12px;font-weight:900}.schedule-week-row-head span,.schedule-week-row span{overflow:hidden;border-right:1px solid #dbe2ee;padding:6px 7px;text-overflow:ellipsis;white-space:nowrap}.schedule-week-row-head span:last-child,.schedule-week-row span:last-child{border-right:0}.schedule-week-row{min-height:34px;border:1px solid #dbe2ee;background:#fff;color:#111827;font-size:12px;font-weight:800;text-align:left}.schedule-week-row:hover{border-color:#2563eb;background:#eff6ff}.schedule-week-row.blocked{border-color:#fecaca;background:#fff1f2;color:#9f1239}.schedule-week-row.doing{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.schedule-week-empty{margin:0;border:1px solid #e5eaf2;padding:7px;background:#fff;color:#64748b;font-size:12px;font-weight:800}.schedule-calendar-chip,.schedule-calendar-more{display:block;overflow:hidden;border-radius:4px;padding:4px 5px;font-size:12px;font-weight:850;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.schedule-calendar-chip{border:1px solid #dbe2ee;background:#f8fafc;color:#263241}.schedule-calendar-chip.blocked{border-color:#fecaca;background:#fff1f2;color:#be123c}.schedule-calendar-chip.doing{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.schedule-calendar-chip.done{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.schedule-calendar-more{border:1px dashed #cfd6e3;background:#fff;color:#64748b}.schedule-detail-fixed{display:grid;gap:12px;width:1480px;min-width:1480px;padding:18px}.schedule-detail-header{align-items:center}.schedule-module-kicker{display:inline-flex;margin-bottom:4px;color:#2563eb;font-size:12px;font-weight:900}.schedule-header-actions{display:flex;gap:6px;justify-content:flex-end}.schedule-header-actions .secondary-button{min-height:30px;padding:6px 10px;font-size:12px}.schedule-primary-action-strip{display:grid;grid-template-columns:180px 290px 130px 150px 1fr;overflow:hidden;border:1px solid #d7dde8;border-radius:6px;background:#fff}.schedule-primary-action-strip>div{display:grid;gap:3px;min-height:52px;border-right:1px solid #e5eaf2;padding:8px 10px}.schedule-primary-action-strip>div:last-child{border-right:0}.schedule-primary-action-strip span{color:#64748b;font-size:12px;font-weight:800}.schedule-primary-action-strip strong{overflow:hidden;color:#111827;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.schedule-primary-action-cell{align-content:center}.schedule-primary-action{width:150px;min-height:30px;padding:5px 8px;font-size:12px}.schedule-summary-strip{display:grid;grid-template-columns:130px 140px 260px 90px 100px 110px 130px 130px 1fr;overflow:hidden;border:1px solid #d7dde8;border-radius:6px;background:#fff}.schedule-summary-strip div,.schedule-summary-status-cell{display:grid;gap:3px;min-height:52px;border-right:1px solid #e5eaf2;padding:8px 10px}.schedule-summary-strip div:last-child,.schedule-summary-status-cell:last-child{border-right:0}.schedule-summary-strip span,.schedule-summary-status-cell span{color:#64748b;font-size:12px;font-weight:800}.schedule-summary-strip strong{overflow:hidden;color:#111827;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.schedule-summary-status-cell select{width:100%;height:26px;border-radius:4px;padding:3px 5px;font-size:12px;font-weight:850}.schedule-latest-post-line{border:1px solid #fde68a;border-radius:6px;padding:8px 10px;background:#fffbeb;color:#7c2d12;font-size:13px;font-weight:850}.schedule-board-section{display:grid;gap:8px;border:1px solid #d7dde8;border-radius:6px;background:#fff}.schedule-section-title{display:flex;align-items:center;justify-content:space-between;min-height:38px;border-bottom:1px solid #e5eaf2;padding:8px 10px}.schedule-section-title h2{font-size:15px}.schedule-section-title span{color:#64748b;font-size:12px;font-weight:800}.schedule-board-scroll{display:grid;gap:10px;height:390px;overflow-y:auto;padding:10px;background:#f8fafc}.schedule-board-toolbar{border-bottom:1px solid #e5eaf2;padding:8px 10px}.schedule-board-toolbar label{display:grid;grid-template-columns:44px 320px;gap:8px;align-items:center;color:#475569;font-size:12px;font-weight:850}.schedule-board-toolbar input{height:28px;border:1px solid #cfd6e3;border-radius:4px;padding:4px 7px;font-size:12px}.schedule-board-post{display:grid;gap:8px;border:1px solid #dbe2ee;border-radius:6px;background:#fff}.schedule-board-post header,.schedule-board-post footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px}.schedule-board-post header{border-bottom:1px solid #e5eaf2}.schedule-board-post header span{border-radius:4px;padding:2px 6px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:850}.schedule-board-post footer{border-top:1px solid #e5eaf2;color:#64748b;font-size:12px;font-weight:800}.schedule-board-post-actions{display:flex;gap:5px;justify-content:flex-end}.schedule-board-post-actions button{min-height:24px;padding:3px 7px;font-size:12px}.schedule-board-post-actions .danger{border-color:#fecaca;background:#fff7f7;color:#991b1b}.schedule-board-post-body{padding:9px;color:#111827;font-size:13px;line-height:1.45}.schedule-board-post-body table{min-width:0;width:100%;margin-top:7px;table-layout:auto}.schedule-board-post-body th,.schedule-board-post-body td{border:1px solid #dbe2ee;white-space:normal}.schedule-post-form{grid-template-columns:220px 1fr 120px 86px;border-width:1px 0 0;border-radius:0}.schedule-board-editor{min-height:72px;overflow:auto;border:1px solid #cfd6e3;border-radius:4px;padding:6px;background:#fff;color:#111827;font-size:13px}.schedule-board-editor:focus{border-color:#2563eb;outline:3px solid #dbeafe}.schedule-stage-tabs{display:flex;gap:6px;border-bottom:1px solid #d7dde8}.schedule-template-toolbar{display:grid;grid-template-columns:260px 190px 170px 150px 130px;gap:8px;align-items:end;border:1px solid #d7dde8;border-radius:6px;padding:10px;background:#fff}.schedule-template-toolbar label{display:grid;gap:4px;color:#475569;font-size:12px;font-weight:850}.schedule-template-toolbar input{height:28px;border-radius:4px;padding:4px 6px;font-size:12px}.schedule-template-toolbar small{color:#64748b;font-size:11px;font-weight:750}.schedule-stage-tab{border-bottom:0;border-radius:6px 6px 0 0;background:#f8fafc}.schedule-stage-tab.active{border-color:#2563eb;background:#2563eb;color:#fff}.schedule-progress-board{display:grid;gap:0;overflow:hidden;border:1px solid #d7dde8;border-radius:6px;background:#fff}.schedule-progress-scroll{display:grid;gap:10px;overflow-x:auto;padding:10px;background:#f8fafc}.schedule-progress-group{display:grid;grid-template-columns:180px 1fr;gap:10px;align-items:stretch;min-width:1180px}.schedule-progress-group-label{display:grid;align-content:center;gap:4px;border:1px solid #dbe2ee;border-radius:6px;padding:8px;background:#fff}.schedule-progress-group-label strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.schedule-progress-group-label span{color:#64748b;font-size:12px;font-weight:800}.schedule-progress-rail{display:flex;align-items:stretch;gap:8px;min-width:0}.schedule-progress-card{position:relative;display:grid;align-content:center;width:160px;min-width:160px;min-height:84px;border:1px solid #fde68a;border-radius:6px;padding:7px 8px;background:#fffbeb;color:#78350f;text-align:left}.schedule-progress-card:after{content:"";position:absolute;top:50%;right:-9px;width:8px;border-top:2px solid #cbd5e1}.schedule-progress-card:last-child:after{content:none}.schedule-progress-card span{overflow:hidden;font-size:12px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.schedule-progress-card small{margin-top:4px;font-size:11px;font-weight:850}.schedule-progress-card em{overflow:hidden;margin-top:4px;color:inherit;font-size:11px;font-style:normal;font-weight:750;line-height:1.25;opacity:.82;text-overflow:ellipsis;white-space:nowrap}.schedule-progress-card.doing{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.schedule-progress-card.blocked{border-color:#fecaca;background:#fff1f2;color:#be123c}.schedule-progress-card.done,.schedule-progress-card.skipped{border-color:#d1d5db;background:#f3f4f6;color:#6b7280}.schedule-progress-empty{margin:0;color:#64748b;font-size:13px;font-weight:800}.schedule-main-grid{display:grid;grid-template-columns:920px 548px;gap:12px}.schedule-main-grid .table-panel,.schedule-assets-panel,.schedule-quote-slot-panel{overflow:hidden;border:1px solid #d7dde8;border-radius:6px;background:#fff}.schedule-main-grid h2,.schedule-assets-panel h2,.schedule-quote-slot-panel h2{border-bottom:1px solid #e5eaf2;padding:9px 10px;font-size:15px}.schedule-panel-action-row{display:flex;justify-content:flex-end;border-bottom:1px solid #e5eaf2;padding:8px 10px}.schedule-small-action{min-height:26px;padding:3px 8px;font-size:12px}.schedule-item-form{grid-template-columns:170px 100px 130px 100px 100px 1fr 118px;border-width:0 0 1px;border-radius:0}.schedule-item-dialog{display:grid;gap:10px;width:820px;border:1px solid #d7dde8;border-radius:8px;padding:14px;background:#fff;box-shadow:0 20px 45px #0f172a33}.schedule-item-dialog .schedule-item-form{grid-template-columns:170px 100px 130px 100px 100px 1fr;border:0;padding:0}.schedule-item-dialog .dialog-actions{grid-column:1 / -1}.schedule-items-table{min-width:900px}.schedule-item-row.todo{background:#fffbeb}.schedule-item-row.overdue,.schedule-item-row.blocked{background:#fff1f2}.schedule-item-row.overdue td,.schedule-item-row.blocked td{color:#9f1239;font-weight:850}.schedule-item-row.done,.schedule-item-row.skipped{background:#f8fafc;opacity:.62}.schedule-assets-table{min-width:720px}.schedule-asset-form{grid-template-columns:145px 1fr 92px 92px 90px;border-width:1px 0 0;border-radius:0}.schedule-asset-error{grid-column:1 / -1;margin:0;border:1px solid #fecaca;border-radius:4px;padding:6px 8px;background:#fff1f2;color:#be123c;font-size:12px;font-weight:850}.schedule-form-note{grid-column:1 / -1;margin:0;color:#475569;font-size:12px;font-weight:800}.schedule-quote-slot{max-height:720px;overflow:auto;padding:10px;background:#f8fafc}.schedule-quote-slot-title{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e5eaf2;padding:9px 10px}.schedule-quote-slot-title h2{border-bottom:0;padding:0}.paper-module{display:grid;gap:12px;min-width:0}.paper-module-header{align-items:flex-start;border:1px solid #dbe2ee;border-radius:6px;background:#fff;padding:12px 14px}.paper-module-header h1{margin:1px 0 0}.module-header-copy{margin:4px 0 0;color:#475569;font-size:13px;font-weight:750}.paper-summary-strip{display:grid;grid-template-columns:minmax(320px,1.6fr) minmax(110px,.45fr) minmax(110px,.45fr) minmax(130px,.5fr);overflow:hidden;border:1px solid #dbe2ee;border-radius:6px;background:#fff}.paper-summary-strip>div{display:grid;gap:3px;padding:8px 10px;border-right:1px solid #e5eaf2}.paper-summary-strip>div:last-child{border-right:0}.paper-summary-strip span{color:#64748b;font-size:11px;font-weight:850}.paper-summary-strip strong{color:#111827;font-size:13px;font-weight:850}.paper-module form{grid-template-columns:1fr;align-items:stretch;justify-content:stretch}.paper-section{display:grid;gap:0;overflow:hidden;border:1px solid #dbe2ee;border-radius:6px;background:#fff}.paper-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #e5eaf2;padding:8px 10px}.paper-section-title h2{margin:0;color:#111827;font-size:15px;line-height:1.25}.paper-section-title span{color:#64748b;font-size:12px;font-weight:800}.quote-module-modal-paper-costing .paper-module{gap:8px}.quote-module-handoff-bar,.paper-costing-meta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border:1px solid #dbe2ee;background:#f8fafc;padding:7px 8px;font-size:12px;font-weight:800}.quote-module-handoff-bar>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.quote-module-handoff-bar button:disabled{cursor:not-allowed;opacity:.48}.paper-costing-meta-row{justify-content:flex-start;background:#fff}.paper-costing-meta-row label{display:grid;grid-template-columns:auto minmax(180px,260px);align-items:center;gap:6px}.paper-costing-meta-row input{min-height:30px;border:1px solid #cfd6e3;border-radius:2px;padding:5px 7px;font-size:13px}.paper-input-wrap{width:100%;max-width:100%}.paper-input-table th,.paper-input-table td{white-space:nowrap}.paper-input-table th small{display:block;margin-top:2px;color:#64748b;font-size:10px;font-weight:800}.paper-input-table input,.paper-input-table select{width:100%;min-width:86px;min-height:24px;border:1px solid #cfd6e3;border-radius:2px;padding:2px 4px;font-size:12px}.paper-input-table input[name=itemName],.paper-input-table input[name=note]{min-width:220px}.paper-spreadsheet-input{table-layout:auto}.paper-spreadsheet-input th,.paper-spreadsheet-input td{border:1px solid #b8c2d2}.paper-spreadsheet-input input:focus,.paper-spreadsheet-input select:focus{outline:2px solid #2563eb;outline-offset:-2px;background:#fff}.paper-dialog-hint{margin:0 0 8px;border:1px solid #bfdbfe;border-radius:4px;background:#eff6ff;color:#1d4ed8;padding:6px 8px;font-size:12px;font-weight:850}.paper-module .row-delete-button{border-color:#fecaca;background:#fff7f7;color:#991b1b}.paper-costing-input-table{width:1900px;min-width:1900px;font-size:11px;table-layout:fixed}.paper-costing-input-table th,.paper-costing-input-table td{width:76px}.paper-costing-input-table th{padding:2px 4px}.paper-costing-input-table td{padding:0}.paper-costing-input-table th:nth-child(1),.paper-costing-input-table td:nth-child(1){width:150px}.paper-costing-input-table th:nth-child(2),.paper-costing-input-table td:nth-child(2),.paper-costing-input-table th:nth-child(3),.paper-costing-input-table td:nth-child(3){width:62px}.paper-costing-input-table th:nth-child(4),.paper-costing-input-table td:nth-child(4){width:94px}.paper-costing-input-table th:nth-child(5),.paper-costing-input-table td:nth-child(5){width:84px}.paper-costing-input-table th:nth-child(6),.paper-costing-input-table td:nth-child(6){width:56px}.paper-costing-input-table th:nth-child(7),.paper-costing-input-table td:nth-child(7),.paper-costing-input-table th:nth-child(9),.paper-costing-input-table td:nth-child(9),.paper-costing-input-table th:nth-child(11),.paper-costing-input-table td:nth-child(11){width:104px}.paper-costing-input-table th:nth-child(8),.paper-costing-input-table td:nth-child(8),.paper-costing-input-table th:nth-child(10),.paper-costing-input-table td:nth-child(10),.paper-costing-input-table th:nth-child(16),.paper-costing-input-table td:nth-child(16),.paper-costing-input-table th:nth-child(17),.paper-costing-input-table td:nth-child(17){width:70px}.paper-costing-input-table th:nth-child(18),.paper-costing-input-table td:nth-child(18){width:82px}.paper-costing-input-table th:nth-child(n+19):nth-child(-n+24),.paper-costing-input-table td:nth-child(n+19):nth-child(-n+24){width:92px}.paper-costing-input-table th:nth-child(25),.paper-costing-input-table td:nth-child(25){width:72px}.paper-costing-input-table input,.paper-costing-input-table select{display:block;height:24px;min-width:0;min-height:24px;border:0;border-radius:0;background:transparent;padding:2px 3px;font-size:11px}.paper-item-cell{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:0;align-items:center}.paper-row-delete,.paper-row-action{min-height:22px;border-radius:2px;padding:2px 4px;font-size:11px}.paper-item-cell .paper-row-delete{width:100%;min-height:24px;border-width:0 0 0 1px;border-radius:0;background:#f8fafc}.paper-costing-input-table .num{text-align:right}.paper-costing-error-cell{color:#991b1b;font-weight:800}.paper-actions{display:flex;justify-content:flex-end;gap:6px}.paper-process-checks{display:flex;gap:8px;align-items:center}.paper-process-checks label{display:inline-flex;gap:4px;align-items:center;font-size:12px;font-weight:800}.paper-process-checks input{min-width:14px}.paper-result{display:grid;gap:10px}.paper-result-table-wrap{max-width:100%}.paper-costing-detail-table{min-width:1120px}.paper-costing-detail-table th,.paper-costing-detail-table td{white-space:nowrap}.paper-statement-total-row td{background:#f8fafc;font-weight:800}.paper-cost-detail-dialog{display:grid;gap:10px;width:min(1180px,calc(100vw - 32px));max-height:calc(100vh - 36px);overflow:auto;border:1px solid #cfd6e3;background:#fff;padding:12px;box-shadow:0 18px 42px #0f172a33}.palletizing-module{display:grid;gap:12px;width:1048px;min-width:0}.palletizing-module .module-eyebrow{margin:0 0 3px;color:#475569;font-size:12px;font-weight:900}.palletizing-summary-strip{display:grid;grid-template-columns:90px 190px 250px 170px 1fr;width:1048px;border:1px solid #dbe3ef;border-radius:6px;background:#fff}.palletizing-summary-strip div{display:grid;gap:2px;min-width:0;border-right:1px solid #e5eaf2;padding:7px 9px}.palletizing-summary-strip div:last-child{border-right:0}.palletizing-summary-strip span{color:#64748b;font-size:11px;font-weight:800}.palletizing-summary-strip strong{overflow:hidden;color:#111827;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.palletizing-input-panel{display:grid;gap:8px;width:1048px;padding:10px}.palletizing-input-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.palletizing-input-snapshot{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:34px;border:1px solid #cfd6e3;border-radius:6px;background:#f8fafc;padding:5px 6px;color:#334155;font-size:11px;font-weight:700}.palletizing-input-snapshot span{display:inline-flex;align-items:center;gap:4px;min-height:22px;border-right:1px solid #dbe3ef;padding:0 8px 0 0}.palletizing-input-snapshot span:last-child{border-right:0;padding-right:0}.palletizing-input-snapshot strong{color:#0f172a}.palletizing-color-snapshot i{width:14px;height:14px;border:1px solid #1f2937;border-radius:3px}.palletizing-compact-inputs{display:grid;grid-template-columns:268px 318px 436px;gap:8px;align-items:stretch}.palletizing-input-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:6px;border:1px solid #dbe3ef;border-radius:6px;background:#fff;padding:6px}.palletizing-input-group-options{grid-template-columns:112px 94px 62px 74px 74px}.palletizing-input-group-title{grid-column:1 / -1;margin-bottom:-2px;color:#475569;font-size:12px;font-weight:900}.palletizing-compact-field{display:grid;gap:2px;min-width:0}.palletizing-compact-field span{overflow:hidden;color:#475569;font-size:11px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.palletizing-compact-field input,.palletizing-compact-field select{width:100%;min-width:0;height:28px;border:1px solid #cfd6e3;border-radius:4px;background:#fff;padding:3px 6px;font-size:12px;font-weight:700}.palletizing-input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center}.palletizing-input-with-unit input{border-radius:4px 0 0 4px}.palletizing-input-with-unit b{display:grid;height:28px;place-items:center;border:1px solid #cfd6e3;border-left:0;border-radius:0 4px 4px 0;background:#f8fafc;color:#475569;font-size:10px;font-weight:900}.palletizing-checkbox-field{justify-items:center}.palletizing-checkbox-field input[type=checkbox]{width:18px;min-width:18px;height:18px;margin:5px 0}.palletizing-color-field input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.palletizing-actions,.palletizing-preview-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.palletizing-comparison{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.palletizing-candidate{display:grid;gap:5px;min-height:104px;border:1px solid #d6deea;border-radius:6px;padding:10px;background:#fff;color:#1f2937;text-align:left}.palletizing-candidate strong{font-size:24px;line-height:1}.palletizing-candidate.selected{border-color:#2563eb;background:#f8fbff;box-shadow:inset 0 0 0 1px #2563eb}.candidate-title{font-size:13px;font-weight:900}.design-draft-module{display:grid;gap:12px;min-width:0;padding:24px}.design-draft-module .module-header{align-items:flex-start}.design-draft-module .module-kicker{margin:0 0 4px;color:#5f6b7a;font-size:12px;font-weight:900}.design-draft-header-status{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:220px;color:#4b5563;font-size:12px;font-weight:800;text-align:right}.design-draft-workflow-strip{display:grid;grid-template-columns:160px minmax(280px,1fr) 220px 220px;gap:1px;overflow:hidden;border:1px solid #d6deea;border-radius:6px;background:#d6deea}.design-draft-workflow-strip>div{display:grid;gap:3px;min-width:0;padding:9px 10px;background:#fff}.design-draft-workflow-strip span:first-child{color:#5f6b7a;font-size:11px;font-weight:800}.design-draft-workflow-strip strong{min-width:0;overflow:hidden;color:#111827;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.design-draft-input-panel{display:grid;gap:10px;padding:12px}.design-draft-input-head,.design-draft-panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.design-draft-input-head h2,.design-draft-panel-title h2{margin:0;font-size:16px}.design-draft-input-head p{margin:3px 0 0;color:#5f6b7a;font-size:12px;font-weight:700}.design-draft-input-table th,.design-draft-input-table td{white-space:nowrap}.design-draft-input-table input,.design-draft-input-table select{width:100%;min-width:100px;min-height:26px;border:1px solid #cfd6e3;border-radius:4px;padding:3px 6px;font-size:12px}.design-draft-unit{display:inline-block;min-width:28px;color:#111827;font-weight:900}.design-draft-basis{color:#5f6b7a;font-size:11px;font-weight:700}.design-draft-actions,.design-draft-candidates{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.design-draft-actions{justify-content:flex-end;border-top:1px solid #e5eaf2;padding-top:10px}.design-draft-actions .message{flex:1 1 360px;min-height:38px;padding:8px 10px;font-size:12px}.design-draft-preview-panel{display:grid;gap:10px;padding:12px;overflow:hidden;border:1px solid #d6deea;border-radius:6px;background:#fff}.design-draft-preview-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.design-draft-preview-head p,.design-draft-preview-card p{color:#5f6b7a;font-size:12px}.design-draft-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.design-draft-preview-card{display:grid;gap:7px;min-width:0}.design-draft-preview-card h3{margin:0;font-size:14px}.design-draft-preview-svg{width:100%;height:260px;border:1px solid #d6deea;border-radius:6px;background:#f8fafc}.preview-box-outer,.preview-pallet{fill:#fff;stroke:#111827;stroke-width:2}.preview-box-back{fill:#b1cc8b;stroke:#111827;stroke-width:2}.preview-flap{fill:#b1cc8b;stroke:#111827;stroke-width:1}.preview-usable{fill:#eff6ff;stroke:#2563eb;stroke-dasharray:6 4;stroke-width:1.5}.preview-product,.preview-product-top{fill:#ebf1d2;stroke:#111827;stroke-width:1.5}.preview-box{fill:#b1cc8b;stroke:#111827;stroke-width:2}.preview-box.rotated{fill:#c6dba7;stroke:#111827}.preview-pallet-hole{fill:#fff;stroke:#111827;stroke-width:1.5}.design-draft-results{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.design-draft-result-panel,.design-draft-summary{display:grid;gap:8px;min-width:0;border:1px solid #d6deea;border-radius:6px;background:#fff;padding:12px}.design-draft-summary{grid-column:1 / -1}.design-draft-candidate{min-height:34px;border-radius:6px;text-align:left}.design-draft-candidate.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow:inset 0 0 0 1px #2563eb}.design-draft-export-note{color:#5f6b7a;font-size:12px}.palletizing-preview{display:grid;grid-template-columns:1fr;gap:12px;min-width:0}.palletizing-preview-main,.palletizing-drawings,.palletizing-drawing{min-width:0}.palletizing-preview-main{display:grid;gap:8px}.palletizing-preview-toolbar{justify-content:space-between}.palletizing-preview-toolbar h2,.palletizing-drawing h3{margin:0;font-size:14px}.palletizing-canvas-host{min-height:420px;overflow:hidden;border:1px solid #dbe3ef;border-radius:6px;background:#f7f9fb}.palletizing-canvas-host canvas{display:block;width:760px;height:auto}.palletizing-drawings{display:grid;grid-template-areas:"top dimension" "front side";grid-template-columns:520px 520px;width:1048px;gap:8px}.palletizing-drawing{width:520px;border:1px solid #dbe3ef;border-radius:6px;padding:8px;background:#fff}.palletizing-drawing-top{grid-area:top}.palletizing-drawing-front{grid-area:front}.palletizing-drawing-side{grid-area:side}.palletizing-dimension-table{grid-area:dimension;width:520px;border:1px solid #dbe3ef;border-radius:6px;padding:8px;background:#fff}.palletizing-drawing svg{display:block;width:100%;height:auto}.palletizing-drawing rect[data-box-division]{vector-effect:non-scaling-stroke}.dimension-line{stroke:#1f2937;stroke-width:1.2;vector-effect:non-scaling-stroke}.dimension-label-callout{pointer-events:none}.dimension-label-bg{fill:#0f172a;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}.dimension-label-text{fill:#fff;font-size:10px;font-weight:900;letter-spacing:0}.dimension-ledger{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:12px}.dimension-ledger th,.dimension-ledger td{border:1px solid #e1e6ef;padding:5px 7px;white-space:nowrap}.dimension-ledger th{background:#eef2f7;color:#334155;font-size:11px}.dimension-ledger th:nth-child(2){width:90px}.dimension-ledger th:nth-child(3){width:94px}.dimension-code{display:inline-flex;min-width:30px;justify-content:center;border-radius:4px;padding:2px 5px;background:#0f172a;color:#fff;font-size:11px;font-weight:900}.dimension-value{color:#1d4ed8;fill:#1d4ed8;font-weight:950}.palletizing-drawing p{margin:3px 0 0;font-size:12px;font-weight:800}
