.calculation-menu-icon.rate { background:#fff0e4; color:#b55b16; }
.calculation-menu-icon.transport { background:#e6f5f6; color:#14737d; }

.project-plan-dialog { width:min(1880px,calc(100vw - 28px)); max-width:none; height:min(930px,calc(100vh - 28px)); max-height:none; padding:0; border:1px solid #b9cadb; border-radius:10px; background:#f7fafc; box-shadow:0 18px 55px rgba(28,52,78,.22); }
.project-plan-dialog::backdrop { background:rgba(32,50,68,.34); backdrop-filter:none; }
.project-plan-form { position:relative; height:100%; min-height:0; display:flex; flex-direction:column; padding:0; }
.project-plan-form > .dialog-head { flex:0 0 auto; align-items:center; padding:14px 20px 10px; border-bottom:1px solid #d6e1eb; background:#fbfdff; }
.project-plan-form > .dialog-head .dialog-close { flex:0 0 32px; width:32px; height:32px; padding:0; border:0; border-radius:6px; line-height:1; }
.project-plan-form > .dialog-head h3 { margin:2px 0 3px; font-size:22px; }
.project-plan-form > .dialog-head .consent-note { margin:0; }
.project-plan-toolbar { display:flex; align-items:flex-end; gap:9px; min-height:64px; padding:9px 20px; border-bottom:1px solid #d7e3ed; background:#edf4fa; }
.project-plan-toolbar label { display:grid; gap:4px; color:#49647d; font-size:12px; font-weight:700; }
.project-plan-toolbar select,.project-plan-toolbar input { height:36px; min-width:290px; border:1px solid #bfd0e1; border-radius:6px; background:#fff; color:#173853; padding:0 11px; }
.project-plan-toolbar button { height:36px; }
.project-plan-toolbar .scheme-delete-button:not(:disabled) { border-color:#ddb9b9; color:#a13c3c; background:#fff; }
.project-plan-toolbar .scheme-delete-button:not(:disabled):hover { border-color:#c98787; background:#fff3f3; }
.project-plan-toolbar .scheme-delete-button:disabled { opacity:.45; cursor:not-allowed; }
#rateSchemeToolbar { min-height:48px; height:48px; align-items:center; flex-wrap:nowrap; padding:6px 20px; overflow-x:auto; overflow-y:hidden; }
#rateSchemeToolbar label { display:flex; flex-direction:row !important; align-items:center; gap:8px; height:34px; margin:0 !important; white-space:nowrap; }
#rateSchemeToolbar select { height:34px; min-width:285px; }
#rateSchemeToolbar button { flex:0 0 auto; height:34px; }
#rateSchemeToolbar .plan-source-badge { flex:0 0 auto; }
#transportSchemeToolbar { min-height:48px; height:48px; align-items:center; flex-wrap:nowrap; padding:6px 20px; overflow-x:auto; overflow-y:hidden; }
#transportSchemeToolbar label { display:flex; flex-direction:row !important; align-items:center; gap:8px; height:34px; margin:0 !important; white-space:nowrap; }
#transportSchemeToolbar select,#transportSchemeToolbar input { height:34px; }
#transportSchemeToolbar #transportPlanSelect { min-width:285px; }
#transportSchemeToolbar #transportSearch { min-width:230px; }
#transportSchemeToolbar button,#transportSchemeToolbar .plan-source-badge { flex:0 0 auto; }
.transport-action-status { min-width:0; max-width:240px; overflow:hidden; color:#60788d; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.transport-action-status.pending { color:#9a6510; }
.transport-action-status.success { color:#16805c; font-weight:700; }
.transport-action-status.error { color:#bb4040; font-weight:700; }
.transport-route-table tbody,.transport-result-table tbody { user-select:none; -webkit-user-select:none; }
.transport-route-table input,.transport-route-table select,.transport-result-table input,.transport-result-table select { user-select:text; -webkit-user-select:text; }
.project-plan-dialog .transport-route-table tbody td.transport-range-selected,.project-plan-dialog .transport-result-table tbody td.transport-range-selected { background:#e4e4e4 !important; }
.project-plan-dialog .transport-route-table tbody td.transport-range-top,.project-plan-dialog .transport-result-table tbody td.transport-range-top { border-top:2px solid #2b8c61; }
.project-plan-dialog .transport-route-table tbody td.transport-range-right,.project-plan-dialog .transport-result-table tbody td.transport-range-right { border-right:2px solid #2b8c61; }
.project-plan-dialog .transport-route-table tbody td.transport-range-bottom,.project-plan-dialog .transport-result-table tbody td.transport-range-bottom { border-bottom:2px solid #2b8c61; }
.project-plan-dialog .transport-route-table tbody td.transport-range-left,.project-plan-dialog .transport-result-table tbody td.transport-range-left { border-left:2px solid #2b8c61; }
#saveTransportSchemeBtn.is-busy { cursor:wait; opacity:.75; }
.project-plan-search { margin-left:10px; }
.plan-source-badge { margin-left:auto; align-self:center; padding:7px 11px; border-radius:16px; background:#dff0fd; color:#1470ad; font-size:12px; font-weight:700; white-space:nowrap; }
.project-plan-body { position:relative; flex:1 1 auto; min-height:0; overflow:hidden; background:#fff; }
.project-plan-form > .dialog-actions { flex:0 0 auto; padding:10px 18px; border-top:1px solid #d7e1ea; background:#f8fbfd; }

.rate-plan-content { height:100%; min-height:0; display:flex; flex-direction:column; }
.plan-section-title { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:9px 18px; border-bottom:1px solid #d9e4ed; background:#f7fafc; }
.plan-section-title > div { display:grid; gap:2px; }
.plan-section-title strong { color:#163d5c; font-size:15px; }
.plan-section-title small { color:#71879b; font-size:12px; }
.project-plan-table-wrap { overflow:auto; min-height:0; }
.rate-options-panel { flex:0 1 auto; max-height:50%; overflow:hidden; border-bottom:1px solid #cedce8; }
.rate-options-panel > summary,.rate-matrix > summary { box-sizing:border-box; height:34px; padding:8px 18px; background:#f0f6fa; color:#214968; font-weight:800; cursor:pointer; white-space:nowrap; }
.rate-options-panel > summary small,.rate-matrix > summary small { margin-left:10px; color:#71879a; font-weight:400; }
.rate-options-panel[open] { display:block; flex:0 0 min(322px,50%); height:auto; overflow:auto; }
.rate-options-panel[open] > summary { position:sticky; top:0; z-index:5; }
.rate-options-panel[open] .project-plan-table-wrap { height:auto; overflow:visible; }
.rate-options-panel[open] .data-table th { top:34px; }
.rate-options-panel:not([open]) { flex:0 0 34px; }
.project-plan-body .data-table { width:100%; border-collapse:collapse; color:#354f66; font-size:12px; }
.project-plan-body .data-table th { position:sticky; top:0; z-index:2; height:34px; padding:6px 9px; border:1px solid #d7e2eb; background:#e9f2f8; color:#385974; text-align:left; white-space:nowrap; }
.project-plan-body .data-table td { height:35px; padding:5px 9px; border:1px solid #dfe7ee; background:#fff; vertical-align:middle; }
.project-plan-body .data-table tbody tr:nth-child(even) td { background:#fbfdff; }
.project-plan-body .data-table code { padding:2px 5px; border-radius:4px; background:#eef3f7; color:#315b78; }
.project-plan-body .data-table input,.project-plan-body .data-table select { width:100%; height:28px; min-width:72px; border:1px solid #bdd0e0; border-radius:4px; background:#fff; color:#294860; padding:2px 7px; font:inherit; }
.rate-option-table th:nth-child(1),.rate-option-table td:nth-child(1) { width:55px; text-align:center; }
.rate-option-table th:nth-child(2),.rate-option-table td:nth-child(2) { width:90px; }
.rate-option-table th:nth-child(3),.rate-option-table td:nth-child(3) { min-width:270px; }
.rate-option-table th:nth-child(4),.rate-option-table td:nth-child(4) { width:180px; }
.rate-option-table th:nth-child(5),.rate-option-table td:nth-child(5) { width:180px; }
.rate-option-table th:nth-child(6),.rate-option-table td:nth-child(6) { width:120px; }
.rate-option-table th:nth-child(7),.rate-option-table td:nth-child(7) { width:130px; }
.rate-option-table th { height:28px !important; padding:3px 8px !important; }
.rate-option-table td { height:28px !important; padding:2px 8px !important; }
.rate-option-table input,.rate-option-table select { height:24px !important; padding-top:0 !important; padding-bottom:0 !important; }
.rate-option-description { display:inline-block; max-width:calc(100% - 105px); margin-left:8px; overflow:hidden; color:#71879a; font-weight:400; line-height:1.2; text-overflow:ellipsis; vertical-align:middle; white-space:nowrap; }
.rate-preview { color:#0c6daf; font-weight:800; font-variant-numeric:tabular-nums; }
.rate-matrix { flex:1 1 0; min-height:170px; overflow:hidden; border-top:1px solid #cedce8; }
.rate-matrix > summary { flex:0 0 34px; }
.rate-matrix[open] { display:block; overflow:auto; }
.rate-matrix[open] > summary { position:sticky; top:0; z-index:5; }
.rate-matrix[open] .project-plan-table-wrap { height:auto; overflow:visible; }
.rate-matrix:not([open]) { flex:0 0 34px; min-height:34px; }
.rate-matrix .data-table { width:100%; min-width:1512px; table-layout:fixed; }
.rate-matrix .data-table th:nth-child(1),.rate-matrix .data-table td:nth-child(1) { width:72px; }
.rate-matrix .data-table th:nth-child(2),.rate-matrix .data-table td:nth-child(2) { width:360px; }
.rate-matrix .data-table th:nth-child(n+3),.rate-matrix .data-table td:nth-child(n+3) { width:120px; }
.rate-matrix .data-table th { top:34px; height:28px; padding:3px 7px; }
.rate-matrix .data-table td { height:28px; padding:3px 7px; }
.rate-code-name { display:block; width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:help; }
.rate-matrix .current-engineering td { background:#e8f5ff !important; color:#155f92; font-weight:700; }
.rate-matrix .rate-code-group td { height:26px; padding:4px 9px; background:#dfeaf3 !important; color:#274f6d; font-weight:800; }
.project-plan-body .number { text-align:right; font-variant-numeric:tabular-nums; }
.muted-zero { color:#afbdc8; }
.rate-not-counted { color:#8999a6 !important; font-weight:600; }
.rate-not-applicable { color:#b0bac2 !important; }
.rate-included-zero { color:#496177 !important; }

.transport-plan-layout { height:100%; min-height:0; display:grid; grid-template-columns:minmax(920px,1fr); }
.transport-settings { min-height:0; overflow:auto; border-right:1px solid #cfdeea; background:#f5f9fc; }
.transport-settings section { padding:11px 13px; border-bottom:1px solid #d7e3ec; }
.transport-settings section > strong { display:block; margin-bottom:10px; color:#174264; font-size:14px; }
.transport-settings section > label { display:grid; gap:4px; margin-bottom:10px; color:#4e687e; font-size:12px; font-weight:700; }
.transport-settings section > label select,.transport-settings section > label input { width:100%; height:32px; border:1px solid #bdcfdf; border-radius:5px; background:#fff; padding:0 8px; }
.transport-settings section > small { display:block; color:#748a9d; line-height:1.55; }
.unit-input { display:flex; align-items:center; gap:8px; }
.unit-input span { white-space:nowrap; color:#657d91; }
.transport-car-pricing { padding:10px !important; }
.transport-car-pricing .data-table { table-layout:fixed; }
.transport-car-pricing .data-table th,.transport-car-pricing .data-table td { height:30px; padding:3px 5px; }
.transport-car-pricing .data-table th:nth-child(1) { width:48px; }
.transport-car-pricing .data-table th:nth-child(2) { width:100px; }
.transport-car-pricing .data-table th:nth-child(3),.transport-car-pricing .data-table th:nth-child(4) { width:90px; }
.transport-car-pricing .data-table input { min-width:58px; height:25px; }
.transport-workspace { --transport-result-height:45%; min-width:0; min-height:0; display:flex; flex-direction:column; }
.transport-result-section { flex:0 0 var(--transport-result-height); min-height:180px; display:flex; flex-direction:column; }
.transport-result-section .project-plan-table-wrap { flex:1 1 auto; }
.transport-section-resizer { position:relative; flex:0 0 9px; height:9px; cursor:row-resize; background:#eef5fa; border-top:1px solid #b9cddd; border-bottom:1px solid #b9cddd; touch-action:none; }
.transport-section-resizer::after { content:""; position:absolute; top:3px; right:50%; width:44px; height:2px; border-radius:2px; background:#91aec3; transform:translateX(50%); }
.transport-section-resizer:hover,.transport-section-resizer:focus-visible { background:#dcecf8; outline:0; }
body.transport-resizing { cursor:row-resize; user-select:none; }
.transport-result-table { min-width:1190px; table-layout:fixed; }
.transport-result-table th,.transport-result-table td { height:29px !important; padding:3px 6px !important; }
.transport-result-table th:nth-child(1) { width:64px; }
.transport-result-table th:nth-child(2) { width:210px; }
.transport-result-table th:nth-child(3),.transport-result-table th:nth-child(4),.transport-result-table th:nth-child(8) { width:80px; }
.transport-result-table th:nth-child(5) { width:145px; }
.transport-result-table th:nth-child(6),.transport-result-table th:nth-child(7) { width:105px; }
.transport-result-table th:nth-child(9),.transport-result-table th:nth-child(10) { width:130px; }
.transport-result-table input,.transport-result-table select { height:24px !important; min-width:58px !important; }
.transport-summary-unit .transport-direct-price,.transport-summary-owner .transport-direct-price { width:100%; min-width:0 !important; padding-right:7px; text-align:right; font-variant-numeric:tabular-nums; }
.transport-summary-unit .transport-material-rate { color:#175f92; }
.transport-deferred-cell { position:relative; overflow:hidden; }
.transport-deferred-cell:focus-visible { outline:2px solid #2185d0; outline-offset:-2px; }
.transport-cell-display { display:block; width:100%; min-width:0; padding:2px 4px; overflow:hidden; border:0; background:transparent; color:inherit; font:inherit; line-height:18px; text-align:inherit; text-overflow:ellipsis; white-space:nowrap; }
button.transport-cell-display { cursor:pointer; }
.transport-method-cell .transport-cell-display::after { content:"⌄"; float:right; margin-left:5px; color:#6b8194; font-size:10px; }
.transport-deferred-cell .transport-cell-editor { display:none; width:100%; min-width:0 !important; margin:0; }
.transport-deferred-cell.is-editing { overflow:visible; padding:2px 4px !important; }
.transport-deferred-cell.is-editing .transport-cell-display { display:none; }
.transport-deferred-cell.is-editing .transport-cell-editor { display:block; }
.transport-route-row .transport-deferred-cell:not(.is-editing) { cursor:default; }
.transport-route-row .transport-deferred-cell:not(.is-editing):hover { background:#f1f7fc !important; box-shadow:inset 0 0 0 1px #d7e7f3; }
.transport-owner-cell .transport-cell-display { text-align:center; }
.transport-owner-cell.is-editing .transport-cell-editor { display:block; width:15px !important; height:15px; margin:3px auto; accent-color:#1677c8; }
.transport-summary-row.selected td { background:#e4f3ff !important; color:#175f92; }
.transport-readonly-parameter { display:inline-block; min-width:58px; padding:3px 6px; border-radius:4px; background:#f0f4f7; color:#526c80; cursor:help; }
.transport-category-select { width:100%; padding:0; overflow:hidden; border:0; background:transparent; color:inherit; font:inherit; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.transport-category-name { font-weight:700; }
.transport-summary-unit,.transport-summary-average { color:#096aa9; font-weight:800; }
.transport-route-section { flex:1 1 55%; min-height:245px; display:flex; flex-direction:column; background:#fff; }
.transport-route-inactive { align-items:center; justify-content:center; min-height:180px; }
.transport-route-inactive-message { display:grid; gap:7px; max-width:480px; padding:28px; color:#72889b; text-align:center; }
.transport-route-inactive-message strong { color:#174264; font-size:14px; }
.transport-route-inactive-message small { font-size:12px; line-height:1.7; }
.transport-route-heading { flex:0 0 48px; display:flex; align-items:center; gap:12px; padding:7px 12px; border-bottom:1px solid #d7e3ec; background:#f5f9fc; }
.transport-route-heading > div { min-width:0; display:grid; gap:2px; }
.transport-route-heading strong { color:#174264; font-size:14px; }
.transport-route-heading small { overflow:hidden; color:#72889b; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.transport-route-heading button { flex:0 0 auto; height:32px; margin-left:auto; }
.transport-route-layout { flex:1 1 auto; min-height:0; display:grid; grid-template-columns:minmax(710px,1fr) 205px; }
.transport-route-layout > .project-plan-table-wrap { min-width:0; }
.transport-route-table { min-width:1340px; table-layout:fixed; }
.transport-route-table th,.transport-route-table td { height:31px !important; padding:3px 5px !important; }
.transport-route-table th:nth-child(1) { width:48px; }
.transport-route-table th:nth-child(2) { width:160px; }
.transport-route-table th:nth-child(3) { width:75px; }
.transport-route-table th:nth-child(4),.transport-route-table th:nth-child(5),.transport-route-table th:nth-child(6),.transport-route-table th:nth-child(7),.transport-route-table th:nth-child(10),.transport-route-table th:nth-child(11) { width:85px; }
.transport-route-table th:nth-child(8),.transport-route-table th:nth-child(9) { width:145px; }
.transport-route-table th:nth-child(12) { width:105px; }
.transport-route-table input,.transport-route-table select { height:25px !important; min-width:52px !important; }
.transport-route-table input[type="checkbox"] { width:15px !important; min-width:15px !important; height:15px !important; }
.transport-route-actions { display:flex; align-items:center; gap:3px; }
.transport-route-actions button,.transport-add-tool { width:25px; height:24px; padding:0; border:1px solid #bfd1df; border-radius:4px; background:#fff; color:#27658f; }
.transport-route-actions button:hover,.transport-add-tool:hover { background:#e3f1fb; }
.route-subtotal { color:#096aa9; font-weight:800; }
.transport-tool-library { min-height:0; overflow:auto; border-left:1px solid #ccdae6; background:#f8fbfd; }
.transport-tool-library > strong { display:block; padding:9px 9px 2px; color:#175f92; font-size:14px; }
.transport-tool-library > small { display:block; padding:0 9px 7px; color:#7a8fa1; font-size:10px; }
.transport-tool-library .data-table th,.transport-tool-library .data-table td { position:static; height:29px; padding:3px 5px; }
.transport-tool-library .data-table th:nth-child(1) { width:48px; }
.transport-tool-library .data-table th:nth-child(3) { width:32px; }
.transport-tool-library .data-table td:nth-child(2) { max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.transport-parameter-panel { position:absolute; inset:0; z-index:12; display:flex; min-width:0; min-height:0; flex-direction:column; overflow:hidden; background:#f8fbfd; }
.transport-parameter-panel > header { flex:0 0 58px; display:flex; align-items:center; gap:14px; padding:8px 18px; border-bottom:1px solid #ccdae6; background:#fff; }
.transport-parameter-panel > header > div { display:flex; align-items:baseline; gap:14px; }
.transport-parameter-panel > header h4 { margin:0; color:#173f5e; font-size:19px; }
.transport-parameter-panel > header small { color:#74899a; }
.transport-parameter-panel > header button { width:32px; height:32px; margin-left:auto; padding:0; border:0; border-radius:6px; background:transparent; color:#61798e; font-size:24px; line-height:1; }
.transport-parameter-panel > header button:hover { background:#eaf2f8; }
.transport-parameter-toolbar { flex:0 0 auto; display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:9px 18px; border-bottom:1px solid #d5e1eb; background:#edf4fa; }
.transport-parameter-toolbar label { display:grid; gap:3px; color:#47647c; font-size:11px; font-weight:700; }
.transport-parameter-toolbar input,.transport-parameter-toolbar select { height:30px; border:1px solid #bdcfdf; border-radius:5px; background:#fff; padding:0 8px; }
.transport-rule-card { flex:1 1 420px; align-self:stretch; display:grid; grid-template-columns:minmax(210px,1fr) 175px; align-items:center; gap:10px; padding:7px 10px; border:1px solid #cfdeea; border-radius:8px; background:#fff; }
.transport-rule-card select { width:250px; }
.transport-rule-card .unit-input input { width:105px; }
.transport-price-card { flex:1 1 285px; align-self:stretch; display:grid; grid-template-columns:minmax(95px,1fr) 82px 82px; align-items:center; gap:8px; min-width:285px; padding:7px 10px; border:1px solid #c9ddeb; border-radius:8px; background:#fff; box-shadow:0 1px 3px rgba(34,76,108,.05); }
.transport-price-card > div { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:7px; }
.transport-price-card strong { overflow:hidden; color:#1f4e70; text-overflow:ellipsis; white-space:nowrap; }
.transport-price-card input { width:82px; }
.transport-parameter-search { flex:1 1 210px; margin-left:0; }
.transport-parameter-search input { width:100%; }
.transport-parameter-toolbar button { flex:0 0 auto; height:32px; }
#openTransportParameters.active { border-color:#85b8da; background:#dceefa; color:#116a9f; }
.transport-parameter-content { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.transport-material-parameters { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; background:#fff; }
.transport-parameter-title { flex:0 0 40px; display:flex; align-items:center; justify-content:space-between; padding:6px 16px; border-bottom:1px solid #d4e1eb; background:#f3f8fb; color:#214a69; }
.transport-parameter-title > div { display:flex; align-items:baseline; gap:10px; }
.transport-parameter-title small { color:#71899b; }
.transport-parameter-title > span { color:#607d94; font-size:12px; }
.transport-material-parameters > .project-plan-table-wrap { flex:1 1 auto; }
.transport-material-parameters .data-table { width:100%; min-width:1080px; table-layout:fixed; }
.transport-material-parameters .data-table th,.transport-material-parameters .data-table td { height:28px; padding:3px 7px; }
.transport-material-parameters .data-table th:nth-child(1) { width:65px; }
.transport-material-parameters .data-table th:nth-child(2) { width:245px; }
.transport-material-parameters .data-table th:nth-child(3) { width:180px; }
.transport-material-parameters .data-table th:nth-child(n+4):nth-child(-n+9) { width:92px; }
.transport-material-parameters .data-table th:nth-child(10) { width:100px; }
.transport-material-parameters .data-table input { height:24px; }
.parameter-material-name { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.parameter-readonly { display:block; overflow:hidden; color:#415e74; text-overflow:ellipsis; white-space:nowrap; }
.parameter-source { display:inline-block; padding:3px 7px; border-radius:10px; background:#edf3f7; color:#648096; font-size:10px; white-space:nowrap; }
.parameter-source.custom { background:#e7f5ec; color:#27724a; }
.transport-parameter-panel > footer { flex:0 0 48px; display:flex; align-items:center; gap:12px; padding:7px 18px; border-top:1px solid #d4e0e9; background:#f8fbfd; }
.transport-parameter-panel > footer span { overflow:hidden; color:#667f92; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.transport-parameter-panel > footer button { margin-left:auto; height:34px; }

.project-plan-close-choice { position:absolute; inset:0; z-index:20; display:none; place-items:center; background:rgba(35,52,68,.30); }
.project-plan-close-choice.show { display:grid; }
.project-plan-close-choice > div { width:360px; padding:20px; border:1px solid #c5d3df; border-radius:10px; background:#fff; box-shadow:0 16px 45px rgba(21,46,69,.22); }
.project-plan-close-choice strong { display:block; margin-bottom:6px; color:#173d5a; font-size:17px; }
.project-plan-close-choice p { margin:0 0 16px; color:#6a8194; }
.project-plan-close-choice button { float:right; margin-left:8px; }

@media (max-width:1100px) {
  .transport-plan-layout { grid-template-columns:minmax(900px,1fr); }
  .project-plan-toolbar { overflow-x:auto; }
}
