html,body,#root{height:100%;margin:0}.construction-overview-table-card,.construction-workspace-card{height:100%}.construction-workspace-card .ant-card-body{padding-top:8px}.construction-work-item-list{display:grid;gap:9px;max-height:min(62vh,620px);padding:2px 3px 4px 0;overflow:auto}.construction-workspace-card .construction-work-item-list>:nth-child(n+6){display:none}.construction-task-workbench-page{display:grid;gap:16px}.construction-task-workbench-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px 28px;color:#fff;border-radius:0 0 18px 18px;background:radial-gradient(circle at 88% -25%,rgba(255,255,255,.2) 0 110px,transparent 111px),linear-gradient(118deg,#126653,#28977d)}.construction-task-workbench-header .ant-typography,.construction-task-workbench-header h2.ant-typography{color:inherit}.construction-task-workbench-header h2.ant-typography{margin:3px 0 4px}.construction-task-workbench-header .ant-typography-paragraph{margin-bottom:0;color:#ffffffd6}.construction-task-workbench-card .ant-card-body{padding:8px 20px 20px}.construction-task-workbench-card .ant-tabs-nav{margin-bottom:14px}.construction-task-workbench-filters{display:grid;grid-template-columns:minmax(240px,1fr) minmax(190px,260px) 180px auto;align-items:center;gap:12px;padding:14px;margin-bottom:16px;border:1px solid #e1ece7;border-radius:12px;background:#f8fbf9}.construction-task-workbench-title{display:grid;gap:5px;width:100%;padding:0;color:#173b35;text-align:left;cursor:pointer;border:0;background:transparent}.construction-task-workbench-title strong{font-size:14px}.construction-task-workbench-title small{color:#6b817a}.construction-task-workbench-title:hover strong,.construction-task-workbench-title:focus-visible strong{color:#1f8a70}.construction-task-project-link.ant-btn{height:auto;padding:0}@media(max-width:900px){.construction-task-workbench-header{align-items:flex-start;flex-direction:column}.construction-task-workbench-filters{grid-template-columns:1fr 1fr}}@media(max-width:560px){.construction-task-workbench-header{padding:20px}.construction-task-workbench-filters{grid-template-columns:1fr}}.construction-field-task-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;min-height:104px;padding:12px 13px;color:#173b35;text-align:left;cursor:pointer;border:1px solid #dfece6;border-left:4px solid #319479;border-radius:11px;background:linear-gradient(120deg,#eaf7f1c7,#ffffffeb 62%),#fff;box-shadow:0 4px 12px #1c57460b;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.construction-field-task-card.type-rectification{border-left-color:#d87532;background:linear-gradient(120deg,#fff5e7d1,#fffffff0 62%),#fff}.construction-field-task-card:hover,.construction-field-task-card:focus-visible{border-color:#80bea9;outline:0;box-shadow:0 0 0 3px #1f8a701f,0 8px 20px #1c574614;transform:translateY(-1px)}.construction-field-task-card.type-rectification:hover,.construction-field-task-card.type-rectification:focus-visible{border-color:#dfa16f;box-shadow:0 0 0 3px #d875321f,0 8px 20px #6d462314}.construction-field-task-card-main{display:grid;gap:5px;min-width:0}.construction-field-task-card-main strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.construction-field-task-card-main small{overflow:hidden;color:#647d75;font-size:12px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.construction-field-task-card-tags{display:flex;flex-wrap:wrap;gap:4px}.construction-field-task-card .ant-tag,.construction-field-task-card-tags .ant-tag{margin-inline-end:0}.construction-field-drawer .ant-drawer-content-wrapper{max-width:100vw}.construction-field-drawer .ant-drawer-header{padding:20px 24px;border-bottom-color:#e1ece7;background:radial-gradient(circle at 88% -30%,rgba(123,198,167,.18) 0 105px,transparent 106px),#fbfefd}.construction-field-drawer .ant-drawer-title{color:#173b35;font-size:20px}.construction-field-drawer .ant-drawer-body{padding:20px 24px 28px;background:#f7faf8}.construction-field-drawer .ant-drawer-footer{padding:13px 24px;border-top-color:#dfeae5;background:#fffffff5}.construction-field-drawer .ant-btn-primary{border-color:#1f8a70;background:#1f8a70}.construction-field-drawer .ant-btn-primary:hover,.construction-field-drawer .ant-btn-primary:focus{border-color:#126653;background:#126653}.construction-drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.construction-form-section{padding:17px 18px 4px;margin-bottom:14px;border:1px solid #dfeae5;border-radius:13px;background:#fff;box-shadow:0 5px 14px #25534409}.construction-form-section.rectification{border-color:#ecd9c9;background:linear-gradient(140deg,#fffaf5,#fff 54%)}.construction-form-section h5.ant-typography{margin:0 0 15px;color:#1b5d4d}.construction-form-section .ant-form-item{margin-bottom:16px}.construction-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;margin-bottom:8px;border:1px solid #dce9e2;border-radius:12px;background:linear-gradient(120deg,#edf8f2,#fff 70%)}.construction-detail-heading>div{display:grid;gap:7px}.construction-detail-stack{display:grid;gap:16px}.construction-evidence-progress{margin:16px 0}.construction-detail-drawer .construction-evidence-upload .ant-upload-drag{height:auto}.construction-evidence-missing{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.construction-evidence-guide summary{cursor:pointer;font-weight:600}.construction-evidence-guide ul{padding-left:20px}.construction-evidence-guide li{margin:14px 0;overflow-wrap:anywhere}.construction-evidence-guide p{margin:6px 0}.construction-detail-stack .ant-descriptions{padding:15px;border:1px solid #e1ebe6;border-radius:12px;background:#fff}.construction-detail-note{padding:14px 16px;border:1px solid #e1ebe6;border-radius:12px;background:#fff}.construction-detail-note .ant-typography-paragraph{margin:5px 0 0;white-space:pre-wrap}.construction-detail-note ol{padding-left:22px;margin:8px 0 0}.construction-event-item{display:grid;gap:3px}.construction-event-item span,.construction-event-item small{color:#6b817a}.construction-recheck-checklist{padding:16px;border:1px solid #ead6bb;border-radius:12px;background:linear-gradient(135deg,#fff9ef,#fff)}.construction-rectification-text-evidence{padding:16px;border:1px solid #b9d9cd;border-radius:12px;background:linear-gradient(135deg,#f0faf6,#fff)}.construction-recheck-checklist h5.ant-typography{margin:0 0 12px;color:#86541d}.construction-recheck-checklist .ant-checkbox-wrapper{min-height:32px;color:#293f39}@media(max-width:720px){html,body,#root{max-width:100%;overflow-x:hidden}.app-shell>.ant-layout,.app-shell.app-shell-collapsed>.ant-layout{flex:0 0 calc(100% - 64px);width:calc(100% - 64px);margin-left:64px}.sidebar-toggle{display:none}.topbar{min-width:0;padding-inline:12px}.topbar-title .ant-typography:not(.topbar-brand),.topbar>.ant-space>.ant-space-item:not(:first-child):not(:last-child){display:none}.topbar-brand:after{display:none}.topbar>.ant-space{min-width:0;gap:4px!important}.topbar>.ant-space .ant-btn{padding-inline:8px}.content{min-width:0;padding:12px}.construction-drawer-footer{align-items:stretch;flex-direction:column-reverse}.construction-drawer-footer>.ant-space{display:grid;grid-template-columns:1fr 1fr;width:100%}.construction-drawer-footer .ant-btn{width:100%}.construction-field-drawer .ant-drawer-body{padding:14px}.construction-field-drawer .ant-drawer-header,.construction-field-drawer .ant-drawer-footer{padding-inline:14px}.construction-form-section{padding-inline:13px}.construction-detail-heading{flex-direction:column}.construction-field-task-card{min-height:112px}}.center-screen,.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f7fb}.login-card{width:420px;box-shadow:0 16px 40px #0f172a14}.app-shell{min-height:100vh}.app-shell>.ant-layout{min-width:0;margin-left:220px;transition:margin-left .2s ease}.app-shell.app-shell-collapsed>.ant-layout{margin-left:64px}.app-sidebar{position:fixed!important;inset:0 auto 0 0;height:100vh;z-index:40;border-right:1px solid #eef0f4;transition:all .2s ease}.app-sidebar .ant-layout-sider-children{height:100vh;display:flex;flex-direction:column;overflow:hidden}.brand{height:64px;display:flex;align-items:center;justify-content:flex-start;padding:0 24px;font-size:18px;font-weight:700;color:#1677ff;white-space:nowrap}.brand-short{display:none}.app-shell-collapsed .brand{justify-content:center;padding:0}.app-shell-collapsed .brand-full{display:none}.app-shell-collapsed .brand-short{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#e6f4ff;color:#1677ff;font-weight:800}.sidebar-toggle{position:absolute;top:76px;right:-8px;z-index:20;width:16px;height:28px;padding:0;border:1px solid #d6e4ff;border-radius:999px;background:#fff;color:#1677ff;font-size:14px;line-height:1;box-shadow:0 2px 8px #0f172a14}.sidebar-toggle:hover{color:#0958d9!important;background:#e6f4ff!important}.side-menu-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#f0f7ff;color:#1677ff;font-size:13px;font-weight:700}.app-sidebar:not(.ant-layout-sider-collapsed) .side-menu-icon{display:none}.app-sidebar .ant-menu{flex:1;overflow-x:hidden;overflow-y:auto;border-inline-end:0!important;padding-bottom:16px}.app-sidebar .ant-menu-item-group-title{margin:8px 16px 4px;padding:10px 8px 5px;border-top:1px solid #eef3f1;color:#81918c;font-size:12px;font-weight:700;letter-spacing:.08em}.app-sidebar .ant-menu-item-group:first-child .ant-menu-item-group-title{margin-top:0;border-top:0}.app-sidebar.ant-layout-sider-collapsed .ant-menu-item-group-title{height:1px;margin:8px 12px 4px;padding:0;overflow:hidden;color:transparent}.app-sidebar .ant-menu-inline-collapsed>.ant-menu-item{padding-inline:calc(50% - 16px)}.topbar{background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid #eef0f4}.topbar-title{min-width:0;display:inline-flex;align-items:center;gap:10px}.topbar-brand{color:#1677ff;font-size:18px;font-weight:800;white-space:nowrap}.topbar-brand:after{content:"";width:1px;height:16px;margin-left:10px;display:inline-block;vertical-align:-3px;background:#e5e7eb}.content{padding:24px;background:#f5f7fb;transition:padding .2s ease}.selected-row>td{background:#e6f4ff!important}.quote-editor{min-height:calc(100vh - 96px);padding-bottom:54px}.quote-header{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:8px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-header h4{margin:0 0 8px}.quote-budget-header h3{margin:0 0 6px;color:#111827;font-size:24px;line-height:1.12;font-weight:800}.quote-header-tags{max-width:860px}.quote-header-tags .ant-tag{margin-inline-end:4px;padding:0 7px;line-height:20px}.quote-metric-strip{display:grid;grid-template-columns:repeat(6,minmax(132px,1fr));gap:8px;margin-bottom:8px}.quote-metric{min-height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:8px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.quote-metric span{color:#6b7280;font-size:12px}.quote-metric strong{color:#111827;font-size:20px;line-height:1.1}.quote-metric small{color:#6b7280;font-size:11px;line-height:1.35}.quote-metric.danger{border-color:#ffccc7;background:#fff2f0}.quote-metric.danger strong{color:#cf1322}.quote-step-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:8px}.quote-step{min-height:34px;display:flex;align-items:center;gap:6px;padding:5px 10px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;text-align:left}.quote-step span{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#f3f4f6;color:#6b7280;font-size:12px}.quote-step.active{border-color:#91caff;background:#e6f4ff;color:#0958d9}.quote-step.active span{background:#1677ff;color:#fff}.quote-step.clickable{cursor:pointer}.quote-step em{min-width:20px;height:18px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto;padding:0 6px;border-radius:999px;background:#faad14;color:#fff;font-style:normal;font-size:12px}.quote-readonly-alert{margin-bottom:8px}.quote-editor-body{align-items:stretch}.quote-editor-main,.quote-editor-workspace,.quote-module-workbench{display:grid;gap:8px}.quote-module-toolbar{padding:10px 12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-module-series-select{min-width:168px}.quote-module-switch{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:8px}.quote-module-card{min-height:58px;display:grid;grid-template-columns:auto auto;align-items:center;justify-content:space-between;gap:4px 12px;padding:10px 14px;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer}.quote-module-card:hover{border-color:#91caff;background:#f8fbff}.quote-module-card.active{border-color:#1677ff;background:#eef6ff;box-shadow:inset 3px 0 #1677ff}.quote-module-card span{color:#374151;font-weight:700}.quote-module-card strong{color:#111827;font-size:18px}.quote-module-card small{grid-column:1 / -1;color:#6b7280}.quote-panel{height:calc(100vh - 298px);min-height:620px;overflow:auto;padding:12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-budget-panel{height:auto;min-height:0;overflow:visible;padding:0}.quote-budget-stack{display:grid;gap:8px;padding:10px 12px}.quote-budget-stack .ant-table-wrapper{min-width:0}.quote-budget-toolbar{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px}.quote-inline-add-collapsed{min-height:34px;display:flex;align-items:center}.quote-inline-add{display:grid;gap:10px;padding:6px 0}.quote-inline-add-controls{display:grid;grid-template-columns:132px minmax(260px,1fr) auto;gap:8px;align-items:center;max-width:760px}.quote-inline-add-results{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:8px}.quote-inline-add-option{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;text-align:left;background:#fff;border:1px solid #d9e8ff;border-radius:8px;cursor:pointer}.quote-inline-add-option:hover{border-color:#1677ff;background:#f0f7ff}.quote-inline-add-option:disabled{cursor:not-allowed;opacity:.62}.quote-inline-add-option span{min-width:0;display:grid;gap:4px}.quote-inline-add-option strong,.quote-inline-add-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-inline-add-option small{color:#6b7280}.quote-budget-panel .ant-table-thead>tr>th{background:#f3f4f6;color:#111827;font-weight:700;border-color:#d1d5db}.quote-budget-panel .ant-table-tbody>tr>td{border-color:#e5e7eb}.quote-budget-panel .ant-table-tbody>tr.quote-row-filled>td{background:#f0fdfa}.quote-budget-panel .ant-table-tbody>tr.quote-row-filled>td:first-child{box-shadow:inset 3px 0 #14b8a6}.quote-budget-panel .ant-table-tbody>tr.quote-row-filled:hover>td{background:#e6fffb!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-context>td{background:#fff8e6!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-filled .ant-input,.quote-budget-panel .ant-table-tbody>tr.quote-row-filled .ant-input-number,.quote-budget-panel .ant-table-tbody>tr.quote-row-filled .ant-select-selector{background:#fff}.manual-quote-item-alert{margin-bottom:12px}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual>td{background:#fff7e6!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual>td:first-child{box-shadow:inset 3px 0 #faad14}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual:hover>td{background:#fff1b8!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual-added>td{background:#f6ffed!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual-added>td:first-child{box-shadow:inset 3px 0 #52c41a}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual-added:hover>td{background:#efffdf!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual-rejected>td{background:#fff1f0!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual-rejected>td:first-child{box-shadow:inset 3px 0 #ff4d4f}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual-rejected:hover>td{background:#ffe7e6!important}.quote-budget-panel .ant-table-tbody>tr.quote-row-manual .ant-input,.quote-budget-panel .ant-table-tbody>tr.quote-row-manual .ant-input-number,.quote-budget-panel .ant-table-tbody>tr.quote-row-manual .ant-select-selector{background:#fff}.quote-row-space>td{background:#eef6ff!important;font-weight:700}.quote-row-subtotal>td{background:#f3f7fc!important;font-weight:700}.quote-row-add>td{background:#fbfdff!important;border-bottom-style:dashed!important}.quote-row-saving>td{background:#fffbe6!important}.quote-context-menu-anchor{position:fixed;z-index:1060;display:block;width:1px;height:1px}.quote-insert-modal{display:grid;gap:12px}.quote-insert-filter{display:grid;grid-template-columns:minmax(280px,1fr) 180px;gap:8px}.quote-fee-summary{overflow:hidden;border:1px solid #d1d5db;border-radius:8px}.quote-fee-summary-title{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#eef6ff;border-bottom:1px solid #d1d5db}.quote-fee-summary table{width:100%;border-collapse:collapse;table-layout:fixed}.quote-fee-summary th,.quote-fee-summary td{padding:9px 10px;border-bottom:1px solid #e5e7eb;text-align:left}.quote-fee-summary th{background:#f8fafc;color:#374151;font-weight:700}.quote-fee-summary th:nth-child(1),.quote-fee-summary td:nth-child(1){width:72px;text-align:center}.quote-fee-summary th:nth-child(3),.quote-fee-summary td:nth-child(3){width:90px;text-align:center}.quote-fee-summary th:nth-child(4),.quote-fee-summary td:nth-child(4){width:140px;text-align:right}.quote-fee-total-row td{background:#f3f7fc;font-weight:700}.quote-catalog-panel{position:static}.main-material-panel{display:grid;gap:10px}.main-material-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.main-material-summary>div{min-height:56px;display:grid;gap:4px;padding:10px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.main-material-summary span{color:#6b7280;font-size:12px}.main-material-summary strong{color:#111827;font-size:18px}.main-material-card{display:grid;gap:10px;padding:12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.main-material-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.main-material-card-title>div{min-width:0;display:grid;gap:2px}.main-material-toolbar{display:grid;grid-template-columns:180px minmax(220px,1fr) 128px;gap:8px;align-items:center}.main-material-space-select{width:100%}.main-material-category-strip{display:flex;gap:8px;width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.main-material-category-strip::-webkit-scrollbar{height:5px}.main-material-category-strip::-webkit-scrollbar-track{background:transparent}.main-material-category-strip::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.main-material-category-card{flex:0 0 auto;min-width:130px;min-height:56px;display:grid;gap:2px;padding:8px 10px;text-align:left;color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.main-material-category-card span{overflow:hidden;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.main-material-category-card strong{color:#1677ff;font-size:13px;line-height:1.1}.main-material-category-card small{color:#6b7280;font-size:12px}.main-material-category-card:hover{border-color:#91caff;box-shadow:0 2px 8px #1890ff1a}.main-material-category-card.active{background:#eaf4ff;border-color:#1677ff;box-shadow:inset 0 0 0 1px #1677ff29}.main-material-category-strip{margin:0 -12px;padding:0 12px 6px}.main-material-category-card{min-width:126px}.main-material-catalog-filter{display:grid;grid-template-columns:minmax(220px,1fr) 160px 112px;gap:8px}.main-material-catalog-table,.main-material-table{border:1px solid #eef0f4;border-radius:8px;overflow:hidden}.main-material-catalog-table .ant-table-thead>tr>th,.main-material-table .ant-table-thead>tr>th{background:#f8fafc}.main-material-catalog-table .ant-table-tbody>tr>td,.main-material-table .ant-table-tbody>tr>td{vertical-align:middle}.main-material-table-card{padding-bottom:0}.main-material-table{margin:0 -12px;border-right:0;border-left:0;border-radius:0}.main-material-context-row>td{background:#fff8e6!important}.main-material-table .ant-table-tbody>tr.main-material-row-filled>td{background:#f0fdfa}.main-material-table .ant-table-tbody>tr.main-material-row-filled>td:first-child{box-shadow:inset 3px 0 #14b8a6}.main-material-table .ant-table-tbody>tr.main-material-row-filled:hover>td{background:#e6fffb!important}.main-material-table .ant-table-tbody>tr.main-material-row-unquoted>td{background:#fbfdff;color:#6b7280}.main-material-table .ant-table-tbody>tr.main-material-row-unquoted:hover>td{background:#f8fafc!important}.main-material-table .ant-table-tbody>tr.main-material-row-edited>td{background:#fff7e6!important}.main-material-table .ant-table-tbody>tr.main-material-row-edited>td:first-child{box-shadow:inset 3px 0 #faad14}.main-material-table .ant-table-tbody>tr.main-material-row-filled .ant-input,.main-material-table .ant-table-tbody>tr.main-material-row-filled .ant-select-selector,.main-material-table .ant-table-tbody>tr.main-material-row-edited .ant-input,.main-material-table .ant-table-tbody>tr.main-material-row-edited .ant-select-selector{background:#fff}.main-material-quantity-editor{display:grid;gap:3px}.main-material-auto-quantity{display:flex;min-height:18px;align-items:center;justify-content:space-between;gap:4px;white-space:nowrap}.main-material-auto-quantity .ant-typography{font-size:11px}.main-material-auto-quantity .ant-btn{height:18px;padding:0;font-size:11px}.main-material-context-menu-anchor{position:fixed;z-index:1060;display:block;width:1px;height:1px}.main-material-insert-modal{display:grid;gap:12px}@media(max-width:1180px){.main-material-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.main-material-toolbar,.main-material-catalog-filter{grid-template-columns:1fr}}.quote-side-card,.quote-side-card-header{width:100%}.quote-side-card{padding:14px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-side-card-header{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:8px}.quote-space-strip{display:grid;gap:6px;padding:8px 10px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-space-strip-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px}.quote-space-list{width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:10px;scrollbar-color:#cbd5e1 transparent;scrollbar-width:thin;scrollbar-gutter:stable}.quote-space-list::-webkit-scrollbar{height:6px}.quote-space-list::-webkit-scrollbar-track{background:transparent}.quote-space-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.quote-space-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.quote-space-all-button,.quote-space-add-button{flex:none;min-width:112px;height:38px}.quote-space-button{position:relative;flex:none;width:138px;min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 8px;padding:5px 8px;text-align:left;background:#fff;border:1px solid #eef0f4;border-radius:6px;cursor:pointer}.quote-space-delete{position:absolute;top:4px;right:6px;z-index:1;color:#ff4d4f;font-size:12px;line-height:18px}.quote-space-delete:hover{color:#cf1322}.quote-space-button.active{border-color:#1677ff;background:#e6f4ff}.quote-space-button span,.quote-space-button strong,.quote-space-button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-space-button strong{color:#1677ff;font-size:12px;line-height:1}.quote-space-button small{grid-column:2;grid-row:1 / span 2;align-self:end;color:#374151;font-size:12px}.quote-space-template-hint{padding:10px 12px;color:#4b5563;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.quote-preview-modal .ant-modal-body{max-height:calc(100vh - 220px);overflow:auto}.quote-preview{display:grid;gap:14px;color:#111827}.quote-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.quote-preview-header h4{margin:4px 0 8px}.quote-preview-total-card{min-width:180px;display:grid;gap:6px;padding:12px 14px;text-align:right;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.quote-preview-total-card span,.quote-preview-space-chip span,.quote-preview-space-chip small{color:#6b7280}.quote-preview-total-card strong{font-size:22px}.quote-preview-space-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(138px,100%),1fr));gap:8px}.quote-preview-space-chip{min-width:0;display:grid;gap:3px;padding:9px 10px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.quote-preview-space-chip span{overflow-wrap:anywhere}.quote-preview-section,.quote-preview-fee-section,.quote-preview-explanation{overflow:hidden;border:1px solid #eef0f4;border-radius:8px}.quote-preview-section-header{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;background:#eef6ff}.quote-preview-table{width:100%;border-collapse:collapse;table-layout:auto}.quote-preview-fee-table{width:100%;border-collapse:collapse;table-layout:fixed}.quote-preview-table th,.quote-preview-table td,.quote-preview-fee-table th,.quote-preview-fee-table td{padding:7px 8px;border-top:1px solid #eef0f4;word-break:break-word;vertical-align:top}.quote-preview-table th,.quote-preview-fee-table th{background:#f8fafc;color:#374151;text-align:left}.quote-preview-table th:nth-child(1),.quote-preview-table td:nth-child(1){text-align:center}.quote-preview-table th:nth-child(3),.quote-preview-table td:nth-child(3){text-align:center}.quote-preview-table th:nth-child(4),.quote-preview-table td:nth-child(4){text-align:right}.quote-preview-table th:nth-child(5),.quote-preview-table td:nth-child(5){text-align:right}.quote-preview-table th:nth-child(6),.quote-preview-table td:nth-child(6){text-align:right}.quote-preview-table th:nth-child(7),.quote-preview-table td:nth-child(7){text-align:left;white-space:normal;line-height:1.45}.quote-preview-col-index{width:44px}.quote-preview-col-item{width:30%}.quote-preview-col-unit{width:52px}.quote-preview-col-quantity{width:68px}.quote-preview-col-price{width:88px}.quote-preview-col-amount{width:96px}.quote-preview-col-note{width:420px}.quote-preview-table th:nth-child(2),.quote-preview-table td:nth-child(2),.quote-preview-table th:nth-child(7),.quote-preview-table td:nth-child(7){overflow-wrap:anywhere;word-break:break-word}.quote-preview-row-manual td{background:#fff7e6}.quote-preview-row-manual:hover td{background:#fff1b8}.quote-preview-table tfoot td{background:#f8fafc;font-weight:700}.quote-preview-table tfoot td:first-child{text-align:right}.quote-preview-fee-table th:nth-child(1),.quote-preview-fee-table td:nth-child(1){width:58px;text-align:center}.quote-preview-fee-table th:nth-child(3),.quote-preview-fee-table td:nth-child(3){width:76px;text-align:center}.quote-preview-fee-table th:nth-child(4),.quote-preview-fee-table td:nth-child(4){width:120px;text-align:right}.quote-preview-fee-total td{background:#f3f7fc;font-weight:700}.quote-preview-main-material{display:grid;gap:12px;margin-top:6px;padding-top:18px;border-top:2px solid #111827}.quote-preview-main-material-title{text-align:center}.quote-preview-main-material-title h4{margin:4px 0 0}.quote-preview-main-material-meta{display:grid;grid-template-columns:1fr 1fr 2fr 1fr 1fr;gap:8px 14px;padding:10px 12px;color:#374151;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.quote-preview-main-category{overflow-x:auto}.quote-preview-main-material-table{width:100%;min-width:1080px;border-collapse:collapse;table-layout:fixed;font-size:12px}.quote-preview-main-material-table th,.quote-preview-main-material-table td{padding:7px 6px;border-top:1px solid #eef0f4;overflow-wrap:anywhere;vertical-align:top}.quote-preview-main-material-table th{color:#374151;background:#f8fafc;text-align:left}.quote-preview-main-material-table th:nth-child(1),.quote-preview-main-material-table td:nth-child(1){width:44px;text-align:center}.quote-preview-main-material-table th:nth-child(2),.quote-preview-main-material-table td:nth-child(2){width:17%}.quote-preview-main-material-table th:nth-child(3),.quote-preview-main-material-table td:nth-child(3){width:52px;text-align:center}.quote-preview-main-material-table th:nth-child(4),.quote-preview-main-material-table td:nth-child(4),.quote-preview-main-material-table th:nth-child(5),.quote-preview-main-material-table td:nth-child(5),.quote-preview-main-material-table th:nth-child(6),.quote-preview-main-material-table td:nth-child(6){width:86px;text-align:right}.quote-preview-main-material-table tfoot td{background:#f8fafc;font-weight:700}.quote-preview-main-material-table tfoot td:first-child{text-align:right}@media(max-width:900px){.quote-preview-main-material-meta{grid-template-columns:1fr 1fr}}.quote-preview-explanation{padding:12px 14px;background:#fff}.quote-preview-explanation ol{margin:8px 0 0;padding-left:22px}.quote-preview-explanation li{margin-bottom:6px;line-height:1.55}.quote-preview-grand-total{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:12px 0 0;border-top:2px solid #111827}.quote-preview-grand-total span{color:#6b7280}.quote-preview-grand-total strong{font-size:22px}.quote-warning-input{border-color:#faad14}.quote-warning-panel{max-height:260px;overflow:auto}.quote-warning-workbench{min-height:calc(100vh - 360px);padding:18px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-warning-workbench-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.quote-warning-workbench-header h4{margin:0 0 4px}.quote-warning-workbench .quote-warning-panel{max-height:none}.quote-warning-alert{margin:10px 0}.quote-warning-item{padding-left:0!important;padding-right:0!important}.quote-warning-code{font-size:12px}.quote-catalog-panel{height:auto;min-height:0;max-height:330px;overflow:hidden;padding:10px 12px}.quote-catalog-layout{display:grid;grid-template-columns:max-content minmax(360px,560px) minmax(0,1fr);grid-template-areas:"title controls ." "list list list";gap:8px 12px;align-items:center}.quote-catalog-header{grid-area:title;min-height:32px;align-items:center}.quote-catalog-header>div{display:grid;gap:2px}.quote-catalog-controls{grid-area:controls;display:grid;grid-template-columns:minmax(0,1fr) 118px auto;gap:8px;max-width:100%}.quote-catalog-list{grid-area:list;min-width:0;max-height:236px;overflow-x:hidden;overflow-y:auto;padding:0 4px 0 0;scrollbar-color:#cbd5e1 transparent;scrollbar-width:thin}.quote-catalog-list .ant-list-items{display:grid;grid-template-columns:1fr;gap:6px}.quote-catalog-list .ant-list-item{min-height:58px;display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid #eef0f4!important;border-radius:8px;background:#fff}.quote-catalog-list .ant-list-item-meta{flex:1;min-width:0;align-items:center;margin-bottom:0;padding-right:0}.quote-catalog-list .ant-list-item-action{position:static;flex:none;margin-left:0}.quote-catalog-list .ant-list-item-action>li{padding:0}.quote-catalog-list .ant-list-item-meta-content{min-width:0;display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.3fr);gap:12px;align-items:center}.quote-catalog-list .ant-list-item-meta-title{margin-bottom:0}.quote-catalog-list .ant-list-item-meta-title>.ant-space,.quote-catalog-list .ant-list-item-meta-description>.ant-space{width:100%}.quote-catalog-list .ant-list-item-meta-description>.ant-space{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:center}.quote-catalog-list .ant-list-item-meta-title .ant-typography,.quote-catalog-list .ant-list-item-meta-description .ant-typography{max-width:100%;display:block;overflow:hidden;text-overflow:ellipsis}.quote-catalog-list::-webkit-scrollbar{width:6px}.quote-catalog-list::-webkit-scrollbar-track{background:transparent}.quote-catalog-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.quote-summary-bar{position:fixed;right:24px;bottom:0;left:244px;z-index:10;min-height:44px;display:flex;align-items:center;padding:8px 16px;background:#fff;border-top:1px solid #eef0f4;box-shadow:0 -6px 20px #0f172a0f}.app-shell-collapsed .quote-summary-bar{left:88px}.quote-summary-bar span{display:inline-flex;align-items:center;gap:4px}@media(max-width:1180px){.quote-metric-strip{grid-template-columns:repeat(3,minmax(160px,1fr))}.quote-step-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}.customer-page{width:100%}.customer-page-header,.customer-toolbar,.customer-side-title,.customer-project-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.customer-page-header h3,.customer-project-header h4{margin:0}.customer-create-form{justify-content:flex-end;max-width:1120px;row-gap:8px}.customer-create-form .ant-form-item{margin-bottom:8px;margin-inline-end:8px}.customer-create-form .ant-input,.customer-create-form .ant-input-affix-wrapper{width:128px}.customer-create-form .ant-form-item:first-child .ant-input{width:150px}.customer-metric-card{min-height:96px}.customer-metric-button{width:100%;min-height:96px;padding:24px;color:inherit;text-align:left;background:#fff;border:1px solid #f0f0f0;border-radius:8px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.customer-metric-button:hover{border-color:#91caff;box-shadow:0 6px 18px #1677ff14;transform:translateY(-2px)}.customer-metric-button:focus-visible{outline:3px solid rgba(22,119,255,.22);outline-offset:2px}.customer-metric-button.active{border-color:#1677ff;background:#f0f7ff;box-shadow:0 0 0 1px #1677ff14}.customer-metric-button.active .ant-statistic-title,.customer-metric-button.active .ant-statistic-content{color:#0958d9}.customer-list-anchor{scroll-margin-top:76px}.customer-stage-dashboard{display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(0,3fr);gap:12px;align-items:stretch}.customer-current-stage-card{border-color:#d6e8ff;background:#f8fbff}.customer-current-stage-card h4,.customer-stage-action strong{margin:0}.customer-stage-actions{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));gap:10px}.customer-stage-action{display:flex;min-height:116px;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:12px;color:#172033;text-align:left;background:#fff;border:1px solid #eef0f4;border-radius:8px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.customer-stage-action:hover{border-color:#91caff;box-shadow:0 6px 18px #1677ff14}.customer-stage-action.active{background:#e6f4ff;border-color:#1677ff}.customer-stage-action-title{font-weight:600}.customer-stage-action strong{font-size:24px;line-height:1.1}.customer-stage-action small{min-height:36px;color:#7f8a9c;line-height:18px}.customer-stage-action em{font-style:normal;color:#1677ff;font-weight:600}.customer-stage-detail{min-height:300px}.customer-stage-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-toolbar{flex-wrap:wrap}.customer-list-card .ant-card-body{padding:16px 18px}.customer-tracking-table .ant-table{line-height:1.45}.customer-tracking-table .ant-table-thead>tr>th{padding:12px 10px;white-space:nowrap;background:#f8fafc}.customer-tracking-table .ant-table-tbody>tr>td{padding:13px 10px;vertical-align:middle}.customer-tracking-table .ant-tag{margin-inline-end:0}.customer-next-action.ant-btn-link{display:inline-flex;max-width:100%;height:auto;align-items:center;gap:7px;padding:3px 0;color:#1677ff;text-align:left;white-space:normal}.customer-next-action.ant-btn-link>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-next-action.ant-btn-link>span:last-child{flex:none;transition:transform .2s ease}.customer-next-action.ant-btn-link:hover>span:last-child,.customer-next-action.ant-btn-link:focus-visible>span:last-child{transform:translate(3px)}.customer-table-main,.customer-table-project,.customer-table-main .ant-typography,.customer-table-project .ant-typography{max-width:100%}.customer-table-actions{white-space:nowrap}.customer-table-actions .ant-btn{padding-inline:3px}.customer-side-panel,.customer-main-panel{min-height:calc(100vh - 300px)}.customer-side-panel .ant-card-body{padding:14px}.customer-side-panel .ant-segmented{max-width:100%;overflow-x:auto}.customer-project-item{margin-bottom:8px;padding:12px!important;border:1px solid #eef0f4;border-radius:8px;cursor:pointer;transition:border-color .2s ease,background .2s ease}.customer-project-item:hover{border-color:#91caff;background:#f5fbff}.customer-project-item.selected{border-color:#1677ff;background:#e6f4ff}.customer-workbench-page .ant-list-item{align-items:flex-start}.customer-quote-split .ant-typography{white-space:nowrap}.customer-quote-split .ant-typography span{display:inline-block;min-width:32px;margin-right:4px;color:#64748b;font-size:12px}.management-page{width:100%}.business-mainline-header{background:linear-gradient(120deg,#f2f8ff,#f0fffb);border:1px solid #d6eaf4;border-radius:16px;padding:24px}.business-mainline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 16px}.business-project-metrics .ant-card-body{min-height:112px;display:flex;align-items:center}.business-project-list-card .ant-card-head{min-height:62px}.business-project-list-card .ant-card-body{padding-top:18px}.business-project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.business-project-toolbar .ant-segmented{overflow-x:auto;max-width:100%}.business-project-row td{padding-top:18px!important;padding-bottom:18px!important}.business-stage-hint{font-size:12px}@media(max-width:768px){.business-mainline-toolbar,.business-project-toolbar{align-items:stretch;flex-direction:column}.business-project-toolbar .ant-input-search{width:100%!important}}.management-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.management-header h3{margin:0}.management-toolbar{gap:8px 12px}.management-toolbar .ant-form-item{margin-bottom:8px}.work-item-page{max-width:none}.work-item-header{align-items:flex-start}.work-item-summary-row .customer-metric-card{min-height:74px}.work-item-summary-row .customer-metric-card .ant-card-body{padding:16px 18px}.work-item-table-card .ant-card-body{padding:16px}.work-item-filter{align-items:flex-end}.work-item-filter .ant-form-item{margin-inline-end:8px}.work-item-filter .ant-form-item-label{padding-bottom:2px}.work-item-table .ant-table-thead>tr>th{padding:12px 10px;white-space:nowrap;background:#f8fafc}.work-item-table .ant-table-tbody>tr>td{padding:12px 10px;vertical-align:middle}.work-item-name-cell{max-width:260px}.work-item-price-cell{min-width:118px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.work-item-price-cell .ant-tag{margin-inline-end:0}.quote-meta-strip{display:grid;grid-template-columns:1.1fr 1.3fr 1fr;gap:10px}.quote-meta-strip>div,.quote-personnel-strip{min-height:54px;display:grid;align-content:center;gap:4px;padding:10px 12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-personnel-strip{grid-template-columns:auto 1fr;align-items:center}.quote-flow-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px}.quote-flow-summary-strip>div{min-height:64px;display:grid;align-content:center;gap:4px;padding:10px 12px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.quote-flow-summary-strip .ant-typography{margin:0}.quote-flow-summary-strip .highlight{background:#eef6ff;border-color:#91caff}.quote-flow-summary-strip .highlight h5{color:#1677ff}.contract-signing-panel,.construction-control-panel{display:grid;gap:12px}.contract-checklist{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px}.contract-checklist>div{min-height:54px;display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.contract-checklist>div.done{background:#f6ffed;border-color:#b7eb8f}.contract-workbench{display:grid;gap:14px}.contract-form{padding:14px 14px 0;background:#fff;border:1px solid #eef0f4;border-radius:8px}.contract-total-strip{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px}.contract-total-strip>div{min-height:70px;display:grid;align-content:center;gap:6px;padding:12px 14px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.contract-total-strip span{color:#8c96a5;font-size:12px}.contract-total-strip strong{color:#111827;font-size:20px}.contract-total-strip .highlight{background:#eef6ff;border-color:#91caff}.contract-total-strip .highlight strong{color:#1677ff}.contract-total-strip--compact{grid-template-columns:repeat(3,minmax(180px,1fr))}.contract-detail-section{display:grid;gap:12px}.contract-preview-grid{display:grid;grid-template-columns:1fr;gap:14px}.contract-preview-anchor{scroll-margin-top:20px}.contract-preview-panel{padding:16px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.contract-preview-table{margin-top:14px}.contract-preview-panel h4,.contract-preview-panel h5{margin-top:8px}.contract-preview-text{margin-top:14px}.contract-clause-list{margin:8px 0 0;padding-left:20px}.contract-clause-list li{margin:6px 0}.contract-sign-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px;padding-top:18px;border-top:1px dashed #d9d9d9}@media(max-width:1180px){.contract-total-strip,.contract-preview-grid{grid-template-columns:1fr}}.construction-control-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.construction-gantt{display:grid;gap:8px}.construction-phase-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:10px}.construction-phase-card,.construction-extension-card{min-height:104px;padding:12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.construction-phase-deliverable{color:#1677ff}.construction-gantt-row{display:grid;grid-template-columns:minmax(260px,1.25fr) minmax(320px,1fr) 74px minmax(180px,.8fr);gap:12px;align-items:center;min-height:78px;padding:10px 12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.construction-gantt-info{min-width:0;display:grid;gap:4px}.construction-gantt-meta{display:flex;flex-wrap:wrap;gap:4px}.construction-gantt-track{height:14px;overflow:hidden;background:#eef2f7;border-radius:999px}.construction-gantt-track span{height:100%;display:block;background:#1677ff;border-radius:999px}.construction-future-hook{font-size:12px}.construction-extension-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:10px}.construction-schedule-panel{min-height:260px}.construction-overview-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) repeat(4,minmax(150px,1fr));gap:10px}.construction-overview-card{min-height:86px;display:grid;align-content:center;gap:5px;padding:12px 14px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.construction-overview-card h5{margin:0}.construction-overview-card strong{color:#111827;font-size:20px}.construction-overview-card.danger strong{color:#f5222d}.construction-overview-card.progress{align-content:stretch}.construction-workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:12px;align-items:start}.construction-phase-card-list .ant-card-body{padding:10px}.construction-phase-filter-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.construction-phase-filter-row .ant-typography{min-width:0}.construction-phase-list{display:grid;gap:8px}.construction-phase-item{padding:10px;background:#fbfcff;border:1px solid #eef0f4;border-radius:8px;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease,transform .2s ease}.construction-phase-item:hover{background:#f8fbff;border-color:#91caff;box-shadow:0 4px 12px #1677ff14}.construction-phase-item.active{background:#eef6ff;border-color:#1677ff;box-shadow:inset 3px 0 #1677ff}.construction-phase-item.draggable{cursor:grab}.construction-phase-item.draggable:active{cursor:grabbing}.construction-phase-item.dragging{opacity:.58;border-style:dashed}.construction-phase-item.drag-over{background:#e6f4ff;border-color:#1677ff;transform:translateY(2px)}.construction-phase-item:focus-visible{outline:2px solid #91caff;outline-offset:2px}.construction-phase-drag-hint{-webkit-user-select:none;user-select:none}.construction-gantt-panel .ant-card-body{overflow-x:auto}.construction-gantt-filter-note{margin-bottom:10px;padding:8px 10px;background:#f0f7ff;border:1px solid #d6e8ff;border-radius:8px}.construction-gantt-scale{min-width:720px;display:grid;grid-template-columns:repeat(9,minmax(72px,1fr));gap:8px;margin-bottom:8px;padding-left:320px;color:#8c96a5;font-size:12px}.construction-gantt-task-list{min-width:720px;display:grid;gap:8px}.construction-gantt-task-group{display:grid;gap:6px}.construction-gantt-task-row{width:100%;min-height:62px;display:grid;grid-template-columns:300px minmax(360px,1fr);gap:14px;align-items:center;padding:10px 12px;background:#fff;border:1px solid #eef0f4;border-radius:8px;color:inherit;font:inherit;text-align:left;cursor:pointer}.construction-gantt-subtask-list{display:grid;gap:6px;margin-left:22px;padding-left:14px;border-left:2px solid #dbeafe}.construction-gantt-subtask-row{min-height:54px;grid-template-columns:286px minmax(360px,1fr);background:#fbfdff}.construction-gantt-empty-subtasks,.construction-gantt-add-subtask{margin-left:0}.construction-gantt-empty-subtasks{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;background:#f8fafc;border:1px dashed #d9e4f5;border-radius:8px}.construction-gantt-expand-button{min-width:24px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:#1677ff;font-size:12px;font-weight:600;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px}.construction-gantt-task-row:hover{border-color:#91caff;background:#f8fbff}.construction-gantt-task-row.draggable{cursor:grab}.construction-gantt-task-row.draggable:active{cursor:grabbing}.construction-gantt-task-row.dragging{opacity:.55;border-style:dashed}.construction-gantt-task-row.drag-over{border-color:#1677ff;background:#eff6ff;box-shadow:0 0 0 2px #1677ff29}.construction-gantt-task-row.is-completed{background:#f6ffed;border-color:#b7eb8f}.construction-gantt-task-row.is-overdue{border-color:#ffccc7;background:#fff1f0}.construction-gantt-task-info{min-width:0;display:grid;gap:4px}.construction-gantt-track-area{min-width:0;display:grid;gap:6px;align-content:center}.construction-gantt-track{position:relative;height:16px;overflow:hidden;background:#eef2f7;border-radius:999px}.construction-gantt-track .construction-gantt-bar{position:absolute;top:0;bottom:0;height:100%;display:block;border-radius:999px}.construction-gantt-bar.status-not-started{background:#cbd5e1}.construction-gantt-bar.status-in-progress{background:#1677ff}.construction-gantt-bar.status-due-today{background:#faad14}.construction-gantt-bar.status-overdue{background:#f5222d}.construction-gantt-bar.status-completed{background:#52c41a}.construction-gantt-bar.status-paused{background:#722ed1}.construction-gantt-bar.status-cancelled{background:#94a3b8}.construction-gantt-bar.milestone{box-shadow:inset 0 0 0 2px #ffffffb8}.construction-gantt-bar-note{max-width:100%;min-width:0;min-height:26px;display:flex;align-items:flex-start;gap:8px;padding:4px 8px;color:#664d03;background:#fff8e1;border:1px solid #ffe8a3;border-radius:6px;box-sizing:border-box;font-size:12px;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}.construction-gantt-bar-note span{flex:none;color:#ad6800;font-weight:600}.construction-gantt-bar-note strong{flex:1 1 auto;min-width:0;overflow:visible;color:inherit;font-weight:500;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.construction-gantt-subtask-row .construction-gantt-bar-note{background:#fffaf0}.construction-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.construction-reminder-item{display:grid;grid-template-columns:130px 1fr auto;gap:8px;align-items:center;padding:8px 10px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.construction-reminder-item>*{min-width:0}.construction-reminder-item .ant-typography{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.construction-note-image-link{padding-inline:0}.construction-note-image-drawer-list{display:grid;gap:8px}.construction-note-image-drawer-item{width:100%;display:grid;gap:4px;padding:10px 12px;background:#f8fbff;border:1px solid #d9e8ff;border-radius:8px;color:inherit;font:inherit;text-align:left;cursor:pointer}.construction-note-image-drawer-item:hover{background:#eef6ff;border-color:#91caff}.construction-note-image-drawer-item span{color:#111827;font-weight:600}.construction-note-image-drawer-item small{color:#667085;line-height:1.5;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.construction-note-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.construction-note-image-card .ant-card-body{display:grid;gap:8px;padding:10px}.construction-note-image-card .ant-typography{margin-bottom:0}.construction-note-image-card .ant-image{width:100%}.construction-note-image-card img{width:100%;max-height:360px;object-fit:contain;background:#fff7e6;border:1px solid #ffe7ba;border-radius:8px}.project-flow-table-row{cursor:pointer}.project-flow-create-panel{padding:12px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.project-flow-create-panel .ant-form{align-items:flex-start}.project-team-card{overflow:hidden;border-color:#e3e9f2;box-shadow:0 6px 20px #0f172a0a}.project-team-card .ant-card-head{min-height:64px;padding:0 16px;background:linear-gradient(90deg,#fbfdff,#f7faff)}.project-team-card .ant-card-head-title{padding:12px 0;white-space:normal}.project-team-card .ant-card-body{padding:16px}.project-team-title{display:grid;gap:2px}.project-team-title>span{color:#172033;font-size:16px;font-weight:700}.project-team-title .ant-typography{font-size:12px;font-weight:400}.project-team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.project-team-role-card{position:relative;display:flex;min-width:0;flex-direction:column;gap:14px;padding:16px;overflow:hidden;background:#fff;border:1px solid #e6ebf2;border-radius:12px}.project-team-role-card:before{position:absolute;top:0;right:0;left:0;height:3px;content:""}.project-team-role-sales:before{background:#c58a2a}.project-team-role-designer:before{background:#1677ff}.project-team-role-manager:before{background:#16856b}.project-team-role-quality:before{background:#6f42c1}.project-team-role-header{display:flex;align-items:center;gap:10px}.project-team-role-header .ant-tag{margin-inline-end:0;margin-left:auto}.project-team-role-icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;color:#fff;font-weight:700;border-radius:10px}.project-team-role-sales .project-team-role-icon{background:linear-gradient(135deg,#d8a64d,#ac7019)}.project-team-role-designer .project-team-role-icon{background:linear-gradient(135deg,#4096ff,#0958d9)}.project-team-role-manager .project-team-role-icon{background:linear-gradient(135deg,#32a68b,#106c59)}.project-team-role-quality .project-team-role-icon{background:linear-gradient(135deg,#8b5cf6,#5b21b6)}.project-team-role-heading{display:grid;min-width:0;gap:1px}.project-team-role-heading strong{color:#172033;font-size:15px}.project-team-role-heading span{overflow:hidden;color:#8a94a6;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.project-team-current{display:grid;min-height:86px;align-content:center;gap:3px;padding:12px 14px;background:#f7f9fc;border:1px solid #edf0f5;border-radius:9px}.project-team-current>span,.project-team-current>small{color:#8a94a6;font-size:12px}.project-team-current>strong{overflow:hidden;color:#172033;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.project-team-role-card .ant-form-item{margin-bottom:0}.project-team-role-card .ant-form-item-label{padding-bottom:5px}.project-team-save-button{margin-top:auto;font-weight:600}.project-team-role-sales .project-team-save-button:not(:disabled){color:#fff;background:#b7791f;border-color:#b7791f}.project-team-role-manager .project-team-save-button:not(:disabled){color:#fff;background:#16765f;border-color:#16765f}.project-team-role-quality .project-team-save-button:not(:disabled){color:#fff;background:#6f42c1;border-color:#6f42c1}@media(max-width:1500px){.project-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-team-sync-alert{margin-top:14px;border-radius:9px}@media(max-width:1100px){.project-team-grid{grid-template-columns:1fr}.project-team-current{min-height:74px}}.plan-create-panel,.plan-info-card,.plan-asset-card{padding:14px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.plan-create-panel{display:grid;gap:12px}.flow-create-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.flow-create-panel-header>div{display:grid;gap:3px}.contract-edit-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px}.contract-edit-toolbar>div{display:grid;gap:3px}.plan-workbench{display:grid;gap:12px}.plan-section-title{min-height:34px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.plan-section-title>div{display:grid;gap:2px}.plan-asset-grid{display:grid;grid-template-columns:minmax(340px,1.25fr) minmax(260px,.8fr) minmax(300px,.95fr);gap:12px}.plan-floor-plan-preview{min-height:260px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8fafc;border:1px dashed #d9e8ff;border-radius:8px}.plan-floor-plan-preview .ant-image{max-width:100%}.plan-floor-plan-preview img{max-height:420px;object-fit:contain}.plan-asset-empty{min-height:260px;display:flex;align-items:center;justify-content:center;color:#9ca3af;background:#f8fafc;border:1px dashed #d1d5db;border-radius:8px}.plan-cad-file{min-height:260px;display:grid;align-content:center;gap:12px;padding:18px;background:#f8fafc;border:1px dashed #d1d5db;border-radius:8px}.plan-effect-image{min-height:260px;display:grid;grid-template-rows:minmax(120px,1fr) auto auto;align-content:stretch;gap:12px;padding:12px;background:#f8fafc;border:1px dashed #d1d5db;border-radius:8px}.plan-effect-image .ant-image{display:flex;align-items:center;justify-content:center;min-height:120px;overflow:hidden;border-radius:6px}.plan-effect-image img{max-width:100%;max-height:230px;object-fit:contain}.plan-effect-image-placeholder{min-height:120px;display:flex;align-items:center;justify-content:center;padding:18px;color:#9ca3af;text-align:center}.measurement-workbench{width:100%}.measurement-section{width:100%;padding:16px;background:#fff;border:1px solid #e8edf4;border-radius:12px}.measurement-brief{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(110deg,#f7fbff,#fbfdff 55%,#f8fafc)}.measurement-version-header{min-height:132px;border-color:#dfe9f6}.measurement-version-copy{display:grid;min-width:0;gap:5px}.measurement-version-copy>.ant-typography:first-child{color:#172033;font-size:16px}.measurement-current-version{display:flex;min-height:42px;align-items:center;gap:8px;margin-top:8px}.measurement-current-version>span{color:#8a94a6;font-size:12px}.measurement-current-version>strong{overflow:hidden;color:#172033;font-size:20px;text-overflow:ellipsis;white-space:nowrap}.measurement-current-version .ant-tag{margin-inline-end:0}.measurement-current-version-empty{display:grid;gap:2px}.measurement-current-version-empty>strong{font-size:18px}.measurement-version-actions{display:flex;flex:0 0 auto;align-items:center;gap:10px}.measurement-version-select{width:260px}.measurement-grid-form{margin-top:12px}.measurement-grid-form .ant-form-item{margin-bottom:10px}.measurement-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.measurement-summary-card{position:relative;min-height:104px;display:grid;align-content:center;gap:4px;padding:16px;overflow:hidden;background:#fff;border:1px solid #e8edf4;border-radius:12px;box-shadow:0 4px 14px #0f172a08}.measurement-summary-card:before{position:absolute;top:0;bottom:0;left:0;width:3px;background:#1677ff;content:""}.measurement-summary-card span{color:#6b7280;font-size:12px}.measurement-summary-card strong{color:#111827;font-size:22px;line-height:1.2}.measurement-summary-card small{color:#9ca3af;font-size:12px}.measurement-table-grid{row-gap:16px}.measurement-table-card{height:100%;overflow:hidden;background:#fff;border:1px solid #e8edf4;border-radius:12px}.measurement-table-title{display:flex;min-height:48px;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #edf0f5}.measurement-table-title .ant-tag{margin-inline-end:0}.business-flow-next-step{display:flex;min-height:84px;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:linear-gradient(100deg,#f4f9ff,#fbfdff 70%);border:1px solid #cfe2ff;border-radius:12px}.business-flow-next-step-waiting{background:linear-gradient(100deg,#fffbf0,#fffdf8 70%);border-color:#f6d98a}.business-flow-next-step-warning{background:linear-gradient(100deg,#fff5f5,snow 70%);border-color:#ffc9c9}.business-flow-next-step-complete{background:linear-gradient(100deg,#f1fbf7,#f9fdfb 70%);border-color:#b9e6d4}.business-flow-next-copy{display:flex;min-width:0;align-items:center;gap:14px}.business-flow-next-copy>.ant-tag{flex:0 0 auto;margin-inline-end:0}.business-flow-next-copy>div{display:grid;min-width:0;gap:3px}.business-flow-next-copy strong{color:#172033;font-size:15px}.business-flow-next-copy span{color:#6f7a8c;font-size:13px}.business-flow-next-step>.ant-btn{min-width:156px;flex:0 0 auto;font-weight:600}.business-flow-next-step>.ant-btn span[aria-hidden=true]{margin-left:6px}@media(max-width:900px){.measurement-brief,.measurement-version-actions{align-items:stretch;flex-direction:column}.measurement-version-select{width:100%}.measurement-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.business-flow-next-step,.business-flow-next-copy{align-items:stretch;flex-direction:column}.business-flow-next-step>.ant-btn{width:100%}}.approval-page,.approval-detail-page{width:100%}.approval-detail-page-header{align-items:flex-start}.approval-detail-page-header h3{margin:0}.approval-detail-descriptions,.approval-detail-tabs{width:100%}.approval-detail-tabs>.ant-tabs-nav{margin-bottom:14px}.approval-detail-tabs>.ant-tabs-nav .ant-tabs-nav-wrap{overflow-x:auto;scrollbar-width:thin}.approval-detail-tabs>.ant-tabs-nav .ant-tabs-nav-list{gap:8px}.approval-detail-tabs>.ant-tabs-nav .ant-tabs-tab{min-width:112px;justify-content:center;margin:0;padding:9px 14px}.approval-detail-tabs>.ant-tabs-nav .ant-tabs-tab-btn{width:100%;text-align:center;font-weight:600}.manual-review-alert{cursor:pointer}.manual-review-alert:hover{border-color:#faad14;box-shadow:0 4px 14px #faad141f}.manual-review-tab-panel{scroll-margin-top:18px}.approval-metric-card{min-height:96px}.approval-metric-card--interactive{cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.approval-metric-card--interactive:hover,.approval-metric-card--interactive:focus-visible{border-color:#4096ff;box-shadow:0 6px 18px #1677ff1f;transform:translateY(-1px);outline:none}.approval-metric-card--active{border-color:#1677ff;background:#f0f7ff;box-shadow:0 0 0 2px #1677ff1a}.approval-detail{width:100%}.approval-summary-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.approval-summary-strip>div{min-height:86px;display:grid;align-content:center;gap:6px;padding:14px 16px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.approval-summary-strip span{color:#6b7280;font-size:12px}.approval-summary-strip strong{color:#111827;font-size:20px}.manual-item-review-panel{overflow:hidden;border:1px solid #ffe7ba;border-radius:8px;background:#fffaf0}.manual-item-review-header{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#fff7e6;border-bottom:1px solid #ffe7ba}.manual-item-review-panel .ant-table-thead>tr>th{background:#fffaf0}.manual-item-review-panel .ant-table-tbody>tr.manual-item-review-row>td{background:#fffdf7}.manual-item-review-panel .ant-table-tbody>tr.manual-item-review-row:hover>td{background:#fff7e6}.manual-item-review-panel .ant-table-tbody>tr.manual-item-review-row-rejected>td{background:#fff1f0}.manual-item-review-panel .ant-table-tbody>tr.manual-item-review-row-rejected:hover>td{background:#ffe7e6}.quote-cost-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;max-width:100%}.approval-detail-page .quote-cost-panel{width:100%}.approval-detail-page,.approval-detail-tabs,.approval-detail-tabs .ant-tabs-content-holder,.approval-detail-tabs .ant-tabs-content,.approval-detail-tabs .ant-tabs-tabpane,.quote-cost-panel>*,.quote-cost-two-column,.quote-cost-two-column>*,.quote-cost-mode-table,.quote-cost-stat-table{min-width:0;max-width:100%}.approval-detail-page .quote-cost-panel .ant-table{font-size:12px}.approval-detail-page .quote-cost-panel .ant-table-cell{padding:6px 8px}.approval-detail-page .quote-cost-panel .ant-input-number{width:100%}.quote-cost-control-bar{display:grid;gap:8px;padding:12px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.quote-cost-toggle-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.quote-cost-toggle-row .ant-checkbox-wrapper{color:#111827;font-size:13px;font-weight:500}.quote-cost-area-field{display:flex;gap:6px;align-items:center;margin-left:auto}.quote-cost-area-field .ant-input-number-group-wrapper{width:150px}.approval-missing-area-button{height:auto;padding:0;font-weight:600}.quote-cost-input-rows{display:grid;gap:10px}.quote-cost-input-row{display:grid;gap:12px;align-items:center}.quote-cost-input-row-primary,.quote-cost-input-row-points,.quote-cost-input-row-point-amounts,.quote-cost-input-row-amounts{grid-template-columns:repeat(4,minmax(0,1fr))}.quote-cost-input-field{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px;align-items:center;min-width:0}.quote-cost-input-field .ant-input-number,.quote-cost-input-field .ant-input-number-group-wrapper{width:100%;min-width:0}.quote-cost-calculated-input.ant-input-number,.quote-cost-calculated-input.ant-input-number-group-wrapper{background:#f3f4f6}.quote-cost-calculated-input input{color:#111827;font-weight:600}.quote-cost-control-bar span{color:#374151;font-size:12px}.quote-cost-control-hint{font-size:12px}@media(max-width:1080px){.quote-cost-input-row-primary,.quote-cost-input-row-points,.quote-cost-input-row-point-amounts,.quote-cost-input-row-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.quote-cost-input-row-primary,.quote-cost-input-row-points,.quote-cost-input-row-point-amounts,.quote-cost-input-row-amounts{grid-template-columns:1fr}}.quote-cost-config-pending.ant-input-number{border-color:#f59e0b;background:#fffbeb;box-shadow:0 0 0 2px #f59e0b1f}.quote-cost-price-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-cost-price-actions>div:first-child{display:grid;gap:4px}.price-table-page{width:100%}.price-table-header h3{margin:4px 0}.price-table-summary{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.price-table-summary>div{min-height:82px;display:grid;align-content:center;gap:6px;padding:14px 16px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.price-table-summary span{color:#6b7280;font-size:12px}.price-table-summary strong{color:#111827;font-size:20px}.quote-cost-summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.quote-cost-summary-strip-legacy{display:none}.quote-cost-summary-strip>div{min-height:82px;display:grid;align-content:center;gap:6px;padding:14px 16px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.quote-cost-summary-strip span{color:#6b7280;font-size:12px}.quote-cost-summary-strip strong{color:#111827;font-size:20px}.quote-cost-summary-strip .danger{background:#fff2f0;border-color:#ffccc7}.quote-cost-summary-strip .danger strong{color:#cf1322}.quote-cost-summary-hint{display:none;margin-top:8px}.quote-cost-summary-subline{line-height:1.5}.quote-cost-panel .quote-cost-negative-cell,.quote-cost-panel .quote-cost-negative-cell.ant-table-cell-row-hover,.quote-cost-panel .ant-table-row:hover>.quote-cost-negative-cell,.quote-cost-panel .quote-cost-negative-cell .ant-typography,.quote-cost-panel .ant-table-row:hover>.quote-cost-negative-cell .ant-typography{color:#cf1322!important}.quote-cost-tracking-panel{display:grid;gap:14px;padding:16px;overflow:hidden;background:linear-gradient(135deg,rgb(22 119 255 / 5%),transparent 42%),#fff;border:1px solid #dbeafe;border-radius:12px}.quote-cost-tracking-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.quote-cost-tracking-header>div{display:grid;gap:4px}.quote-cost-tracking-header>div>.ant-typography:first-child{color:#172033;font-size:16px}.quote-cost-tracking-header .ant-btn{min-width:152px;height:38px;flex:0 0 auto;font-weight:600}.quote-cost-tracking-groups{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:12px}.quote-cost-tracking-group{display:grid;gap:10px;min-width:0;padding:12px;background:#f8fbffe0;border:1px solid #e5edf8;border-radius:10px}.quote-cost-tracking-group.forecast{background:#fffaf2;border-color:#ffe7ba}.quote-cost-tracking-group-title{display:flex;align-items:center;gap:8px;color:#334155;font-size:13px}.quote-cost-tracking-group-title>span{padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700}.quote-cost-tracking-group-title>span.actual{color:#0958d9;background:#e6f4ff}.quote-cost-tracking-group-title>span.forecast{color:#ad4e00;background:#fff1b8}.quote-cost-metric-grid{display:grid;gap:8px}.quote-cost-ledger-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-cost-profit-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-cost-metric-card{display:grid;align-content:center;gap:5px;min-height:82px;padding:12px 14px;background:#fff;border:1px solid #e8edf4;border-radius:8px}.quote-cost-metric-card>span,.quote-cost-metric-card>small{color:#64748b;font-size:12px}.quote-cost-metric-card>strong{color:#1677ff;font-size:20px;line-height:1.15}.quote-cost-metric-card.featured{background:#edf6ff;border-color:#91caff}.quote-cost-metric-card.positive>strong{color:#08979c}.quote-cost-metric-card.danger{background:#fff2f0;border-color:#ffccc7}.quote-cost-metric-card.danger>strong{color:#cf1322}.quote-cost-formula-note{display:flex;flex-wrap:wrap;gap:6px 18px;padding-top:2px;color:#64748b;font-size:12px}.quote-cost-formula-note span:before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 2px 0;background:#91caff;border-radius:999px}@media(max-width:960px){.quote-cost-tracking-header{align-items:stretch;flex-direction:column}.quote-cost-tracking-header .ant-btn{width:100%}.quote-cost-tracking-groups{grid-template-columns:1fr}}@media(max-width:640px){.quote-cost-ledger-metrics,.quote-cost-profit-metrics{grid-template-columns:1fr}}.actual-cost-ledger-page{width:100%}.actual-cost-ledger-header{align-items:flex-start}.actual-cost-ledger-filter .ant-card-body{padding:12px 16px}.internal-control-page{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:100%;min-width:0}.internal-control-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;overflow:hidden;background:radial-gradient(circle at 85% 10%,rgb(8 151 156 / 14%),transparent 34%),linear-gradient(135deg,#eff8ff,#f7fffc 72%);border:1px solid #cfe8ea;border-radius:14px}.internal-control-hero>div:first-child{display:grid;gap:5px}.internal-control-hero h3{margin:0;color:#102a43}.internal-control-kicker{width:fit-content;padding:3px 9px;color:#006d75;background:#d9f7f5;border:1px solid #87e8de;border-radius:999px;font-size:12px;font-weight:700}.internal-control-project-bar{border-color:#e2e8f0;box-shadow:0 5px 18px #0f172a0a}.internal-control-project-select{display:flex;align-items:end;justify-content:space-between;gap:20px}.internal-control-project-select>div:first-child{display:grid;gap:6px;width:min(560px,100%)}.internal-control-project-select .ant-select{width:100%}.internal-control-summary-grid .ant-card{height:100%;overflow:hidden;border-color:#e5edf3;box-shadow:0 4px 14px #0f172a0a}.internal-control-summary-grid .ant-card-body{padding:16px}.internal-control-summary-grid .ant-statistic-title{color:#64748b;font-size:12px}.internal-control-summary-grid .ant-statistic-content{font-size:22px;font-weight:700}.internal-control-summary-drilldown-card{cursor:pointer}.internal-control-summary-drilldown-card:focus-visible{outline:3px solid rgb(22 119 255 / 28%);outline-offset:2px}.internal-control-tabs{min-width:0;padding:0 14px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.internal-control-tabs>.ant-tabs-nav{margin-bottom:14px}.internal-control-tabs .ant-tabs-content-holder,.internal-control-tabs .ant-tabs-content,.internal-control-tabs .ant-tabs-tabpane,.internal-control-tabs .ant-card,.internal-control-tabs .ant-table-wrapper{min-width:0;max-width:100%}.internal-control-tabs .ant-card-head-title{color:#1e293b}.internal-control-safe-value{color:#08979c}.internal-control-overview-page .ant-card{min-width:0;border-color:#e2e8f0;box-shadow:0 5px 18px #0f172a0a}.internal-control-overview-project-link{height:auto;padding:0;text-align:left;white-space:normal}.internal-control-overview-total-row>td{background:#f0f7ff!important;border-top:2px solid #91caff!important}.internal-control-overview-loading{display:grid;min-height:360px;place-items:center}.internal-control-expandable-row{cursor:pointer}.internal-control-expandable-row:hover>td{background:#f5faff!important}.internal-control-expand-indicator{display:inline-flex;align-items:center;justify-content:center;width:12px;color:#1677ff;font-size:18px;line-height:1}.internal-control-category-details{display:grid;gap:12px;padding:2px 0}.internal-control-category-details .ant-card{border-color:#dbeafe;box-shadow:none}.internal-control-category-details .ant-card-head{min-height:42px;background:#f8fbff}.internal-control-category-details .ant-card-head-title{padding:10px 0;font-size:14px}.internal-control-category-details .ant-empty{margin-block:18px}.expense-statistics-module{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.expense-statistics-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;background:linear-gradient(120deg,rgb(14 116 144 / 9%),transparent 56%),#f7fcff;border:1px solid #d7eaf1;border-radius:10px}.expense-statistics-heading>div{display:grid;gap:3px}.expense-statistics-heading h5{margin:0;color:#164e63}.expense-drilldown-link{height:auto;padding:0;font-weight:700}.expense-drilldown-link.secondary{color:#64748b}.expense-entry-alert{margin-bottom:18px}.expense-detail-editor{display:grid;gap:12px;margin-bottom:18px}.expense-detail-editor-header,.expense-detail-total{display:flex;align-items:center;justify-content:space-between;gap:16px}.expense-detail-editor-header{padding:12px 14px;color:#164e63;background:#f0f9ff;border:1px solid #cfe8f3;border-radius:10px}.expense-detail-editor-header>div{display:grid;gap:2px}.expense-detail-row{position:relative;padding:14px 14px 0 50px;background:#fbfdff;border:1px solid #dfe9f1;border-radius:10px}.expense-detail-row-index{position:absolute;top:14px;left:14px;display:grid;place-items:center;width:26px;height:26px;color:#0e7490;background:#cffafe;border-radius:7px;font-size:11px;font-weight:800}.expense-detail-row .ant-form-item{margin-bottom:12px}.expense-detail-total{padding:12px 15px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px}.expense-detail-total .ant-typography:last-child{color:#0f766e;font-size:18px}.project-receipt-module{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.project-receipt-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:linear-gradient(120deg,rgb(8 151 156 / 8%),transparent 55%),#f8fffd;border:1px solid #d9f0ea;border-radius:10px}.project-receipt-heading>div{display:grid;gap:3px}.project-receipt-heading h5{margin:0;color:#134e4a}.project-receipt-summary-grid .ant-card{height:100%;border-color:#e2ebe8}.project-receipt-summary-grid .ant-card-body{padding:14px}.project-receipt-summary-grid .ant-statistic-title{min-height:36px;color:#64748b;font-size:12px}.project-receipt-summary-grid .ant-statistic-content{font-size:19px;font-weight:700}.stage-cashflow-summary-row>td{background:#f7fbff!important;border-top:1px solid #d6e4ff!important}.stage-cashflow-summary-row.profit>td{background:#f6ffed!important;border-top-color:#b7eb8f!important}.project-cash-balance{background:#f0fdfa;border-color:#99f6e4!important}.project-cash-balance.danger{background:#fff2f0;border-color:#ffccc7!important}.receipt-adjustment-editor{display:grid;gap:10px;padding:14px;margin-bottom:18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.receipt-adjustment-editor-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.receipt-adjustment-editor-header>div{display:grid;gap:2px}.receipt-adjustment-row{padding:12px 12px 0;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.receipt-adjustment-row .ant-form-item{margin-bottom:10px}@media(max-width:960px){.internal-control-hero,.internal-control-project-select,.project-receipt-heading,.expense-statistics-heading,.expense-detail-editor-header,.expense-detail-total,.receipt-adjustment-editor-header{align-items:stretch;flex-direction:column}.internal-control-hero>.ant-space,.internal-control-hero>.ant-space .ant-btn{width:100%}}.quote-cost-two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%}.quote-cost-mode-table,.quote-cost-stat-table{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;overflow:hidden;padding:12px;background:#fff;border:1px solid #eef0f4;border-radius:8px}.quote-cost-mode-table .ant-table-wrapper,.quote-cost-stat-table .ant-table-wrapper{min-width:0;max-width:100%}.quote-cost-mode-table .ant-table-thead>tr>th,.quote-cost-stat-table .ant-table-thead>tr>th{padding:5px 6px;font-size:11px;white-space:nowrap}.quote-cost-mode-table .ant-table-tbody>tr>td,.quote-cost-stat-table .ant-table-tbody>tr>td,.quote-cost-mode-table .ant-table-summary>tr>td,.quote-cost-stat-table .ant-table-summary>tr>td{padding:5px 6px;font-size:11px}.quote-cost-half-package-summary .ant-table{table-layout:fixed;width:100%}.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(1),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(1),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(1){width:72px;min-width:72px;max-width:72px}.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(2),.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(3),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(2),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(3),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(2),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(3){width:96px;min-width:96px;max-width:96px}.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(4),.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(5),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(4),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(5),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(4),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(5){width:74px;min-width:74px;max-width:74px}.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(6),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(6),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(6){width:82px;min-width:82px;max-width:82px}.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(7),.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(8),.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(9),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(7),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(8),.quote-cost-half-package-summary .ant-table-tbody>tr>td:nth-child(9),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(7),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(8),.quote-cost-half-package-summary .ant-table-summary>tr>td:nth-child(9){width:88px;min-width:88px;max-width:88px;padding-inline:4px}.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(7),.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(8),.quote-cost-half-package-summary .ant-table-thead>tr>th:nth-child(9){white-space:normal;line-height:1.15;word-break:break-all}.quote-cost-stat-table h5{margin:0;text-align:center}.quote-cost-detail-toolbar{display:flex;align-items:center;justify-content:flex-end;min-height:32px;padding:0 4px 8px}.quote-cost-detail-toolbar-with-title{justify-content:space-between;padding:0}.quote-cost-detail-toolbar-with-title h5{flex:1}.config-inline-form{gap:8px}.interaction-page{width:100%}.interaction-filterbar,.interaction-detail-header,.interaction-stage-lane-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.interaction-filterbar{flex-wrap:wrap}.interaction-board-card,.interaction-detail-card{min-height:calc(100vh - 340px)}.interaction-board-card .ant-card-head,.interaction-detail-card .ant-card-head{min-height:42px;padding:0 14px}.interaction-board-card .ant-card-body{padding:10px}.interaction-detail-card .ant-card-body{padding:16px}.interaction-stage-board{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));gap:8px;overflow-x:auto;padding-bottom:4px}.interaction-stage-board-filtered{grid-template-columns:minmax(280px,420px);overflow-x:visible}.interaction-customer-matrix{overflow:auto;padding-bottom:4px}.interaction-customer-matrix-grid{min-width:980px;display:grid;grid-template-columns:minmax(128px,150px) repeat(7,minmax(104px,1fr));border:1px solid #eef0f4;border-radius:8px}.interaction-matrix-header-cell,.interaction-matrix-customer-cell,.interaction-matrix-stage-cell{min-height:72px;padding:6px;border-right:1px solid #eef0f4;border-bottom:1px solid #eef0f4;background:#fff}.interaction-matrix-header-cell{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:6px 8px;background:#f8fafc;font-weight:700;font-size:13px}.interaction-matrix-header-cell .ant-tag{margin-inline-end:0;padding-inline:6px;font-size:12px}.interaction-matrix-stage-cell{background:#fbfcfe}.interaction-matrix-stage-cell.current{background:#f0f7ff}.interaction-matrix-customer-button,.interaction-matrix-stage-button{min-height:58px;padding:7px 8px}.interaction-matrix-stage-button{box-shadow:none}.interaction-stage-lane{min-height:480px;padding:10px;background:#f8fafc;border:1px solid #eef0f4;border-radius:8px}.interaction-stage-lane-header{margin-bottom:8px}.interaction-customer-card,.interaction-project-chip{width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.interaction-customer-card{min-height:64px;padding:8px 10px;border-radius:8px;text-align:left}.interaction-customer-card:hover,.interaction-project-chip:hover{border-color:#91caff;background:#f5fbff}.interaction-customer-card.selected,.interaction-project-chip.selected{border-color:#1677ff;background:#e6f4ff;box-shadow:0 6px 18px #1677ff1f}.interaction-customer-card span{min-width:0;display:grid;gap:3px}.interaction-customer-card strong,.interaction-customer-card small,.interaction-project-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interaction-customer-card strong{font-size:13px}.interaction-customer-card small{color:#6b7280;font-size:12px}.interaction-customer-card em{flex:none;color:#1677ff;font-size:13px;font-style:normal;font-weight:700}.interaction-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.interaction-project-chip{min-height:44px;padding:8px 10px;border-radius:8px}.interaction-project-summary{background:#f8fafc}.interaction-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.interaction-flow-step{width:100%;min-height:72px;display:grid;align-content:center;gap:4px;padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease}.interaction-flow-step.available:hover,.interaction-flow-step.done:hover{border-color:#1677ff;background:#f0f7ff;box-shadow:0 8px 20px #1677ff1a;transform:translateY(-1px)}.interaction-flow-step.locked,.interaction-flow-step:disabled{cursor:not-allowed;opacity:.62}.interaction-flow-step.available{border-color:#d6e4ff;background:#f8fbff}.interaction-flow-step span{color:#111827;font-weight:700}.interaction-flow-step small{color:#6b7280}.interaction-flow-step.done{border-color:#b7eb8f;background:#f6ffed}.interaction-flow-step.done span{color:#237804}.pm-workbench{display:grid;gap:12px}.pm-role-alert{border-radius:8px}.pm-hero{align-items:flex-start}.pm-command-strip{display:grid;grid-template-columns:1.1fr 1.4fr repeat(3,1fr);gap:12px}.pm-metric-card{border-color:#edf1f7}.pm-metric-card .ant-card-body{min-height:104px;display:grid;align-content:center;gap:6px}.pm-metric-card .ant-typography{margin:0}.pm-metric-card.highlight{background:#f7fbff;border-color:#cfe5ff}.pm-metric-card.due{background:#fffaf0;border-color:#ffe7ba}.pm-metric-card.risk{background:#fff7f6;border-color:#ffccc7}.pm-metric-card.risk .ant-typography,.pm-risk-number{color:#cf1322!important}.pm-metric-card.warning{background:#fffdf0;border-color:#fff1b8}.pm-filter-card .ant-card-body{padding:12px}.pm-filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.pm-filter-row .ant-segmented{max-width:100%;overflow-x:auto}.pm-search{width:min(360px,100%)}.pm-summary-grid .ant-card{height:100%}.pm-summary-grid .ant-card-body{min-height:108px;display:grid;align-content:center;gap:8px}.pm-summary-grid .ant-typography{margin:0}.pm-main-grid{align-items:stretch}.pm-main-grid>.ant-col{display:flex;flex-direction:column}.pm-main-grid .ant-card{flex:1}.pm-progress-cell,.pm-project-cell,.pm-next-task{width:100%}.pm-task-link{cursor:pointer;transition:box-shadow .2s ease,transform .2s ease}.pm-task-link:hover,.pm-task-link:focus-visible{box-shadow:0 0 0 2px #1677ff2e;outline:none}.pm-table-row-overdue>td{background:#fff7f6!important}.pm-table-row-due>td{background:#fffaf0!important}.pm-table-row-warning>td{background:#fffdf0!important}.pm-table-row-overdue:hover>td,.pm-table-row-due:hover>td,.pm-table-row-warning:hover>td{background:#f5fbff!important}.pm-side-card+.pm-side-card{margin-top:12px}.pm-focus-list{width:100%}.pm-focus-task{width:100%;min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;text-align:left;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.pm-focus-task:hover{border-color:#91caff;background:#f5fbff;box-shadow:0 8px 20px #1677ff14}.pm-focus-task.overdue{border-color:#ffccc7;background:#fff7f6}.pm-focus-task.due_today{border-color:#ffe7ba;background:#fffaf0}.pm-focus-task span{min-width:0;display:grid;gap:4px}.pm-focus-task strong,.pm-focus-task small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pm-focus-task small{color:#6b7280}.pm-extension-grid{display:grid;gap:8px}.pm-extension-card{padding:12px;border:1px solid #eef0f4;border-radius:8px;background:#fbfcfe}.pm-extension-card .ant-btn{width:fit-content}.pm-workflow-list{display:grid;gap:10px}.pm-workflow-list div{display:flex;align-items:flex-start;gap:8px;color:#374151}.pm-workflow-list span{width:22px;height:22px;display:inline-grid;flex:0 0 auto;place-items:center;border-radius:50%;background:#e6f4ff;color:#1677ff;font-size:12px;font-weight:700}@media(max-width:960px){.customer-page-header,.customer-toolbar,.customer-project-header,.management-header,.quote-preview-header,.quote-space-strip-header{align-items:flex-start;flex-direction:column}.interaction-stage-board{grid-template-columns:repeat(7,minmax(220px,1fr))}.contract-checklist,.contract-total-strip,.contract-sign-row,.customer-stage-dashboard,.plan-asset-grid,.construction-phase-grid,.construction-gantt-row,.construction-extension-grid{grid-template-columns:1fr}.customer-create-form{justify-content:flex-start;width:100%}.interaction-project-list,.interaction-flow,.pm-summary-grid,.customer-stage-actions,.customer-stage-content-grid,.measurement-summary-grid,.quote-meta-strip,.quote-flow-summary-strip,.quote-inline-add-controls,.quote-inline-add-results,.price-table-summary,.quote-cost-summary-strip,.quote-cost-actual-strip,.quote-cost-two-column,.approval-summary-strip{grid-template-columns:1fr}.measurement-brief{align-items:flex-start;flex-direction:column}.quote-personnel-strip,.pm-command-strip{grid-template-columns:1fr}.pm-filter-row{align-items:stretch;flex-direction:column}.pm-search{width:100%}}.construction-v1{--construction-ink: #173b35;--construction-muted: #6d817b;--construction-line: #dce9e2;--construction-green: #1f8a70;--construction-green-dark: #126653;--construction-green-soft: #eaf7f1;--construction-completed: #537d94;--construction-completed-soft: #eef5f8;--construction-orange: #d87532;--construction-red: #ca5147;--construction-paper: #fffefd;color:var(--construction-ink);font-family:Noto Sans SC,Microsoft YaHei,sans-serif}.construction-v1 .ant-card{border-color:var(--construction-line);border-radius:14px;box-shadow:0 7px 20px #1a483b0b}.construction-v1 .ant-card-head{min-height:54px;border-bottom-color:#e7f0ec}.construction-v1 .ant-btn-primary{border-color:var(--construction-green);background:var(--construction-green)}.construction-v1 .ant-btn-primary:hover,.construction-v1 .ant-btn-primary:focus{border-color:var(--construction-green-dark);background:var(--construction-green-dark)}.construction-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:164px;padding:28px 32px;margin-bottom:18px;overflow:hidden;color:#f6fffb;border-radius:18px;background:radial-gradient(circle at 82% 20%,rgba(169,236,204,.28) 0 70px,transparent 71px),radial-gradient(circle at 92% 92%,rgba(255,212,141,.2) 0 110px,transparent 111px),linear-gradient(122deg,#164e43,#1e806d 52%,#42a184);box-shadow:0 14px 28px #185e4b2b}.construction-hero:after{position:absolute;top:-54px;right:26%;width:134px;height:134px;content:"";border:1px solid rgba(255,255,255,.2);border-radius:50%}.construction-hero>*{position:relative;z-index:1}.construction-hero.compact{min-height:124px;padding-block:22px}.construction-hero-actions{display:flex;align-items:flex-end;flex-direction:column;gap:16px;min-width:0;max-width:68%}.construction-project-switcher{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;width:400px;max-width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid rgba(255,255,255,.7);border-radius:14px;color:#174c40;background:#f5fcf9;box-shadow:0 4px 16px #0631281f;transition:box-shadow .16s ease,border-color .16s ease}.construction-project-switcher:focus-within{border-color:#aadcc9;box-shadow:0 0 0 3px #d0f9e84d}.construction-project-switcher-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:#22745f;background:#e0f1e9}.construction-project-switcher-body{min-width:0}.construction-project-switcher-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.construction-project-switcher-label{color:#6d8980;font-size:12px;font-weight:500;white-space:nowrap}.construction-project-switcher-select{width:100%;height:32px;font-size:15px;text-align:left}.construction-project-switcher-select .ant-select-selector{padding-inline:0!important;color:#174c40!important;font-weight:600;background:transparent!important;box-shadow:none!important}.construction-project-switcher-select .ant-select-arrow{inset-inline-end:0;color:#558b79}.construction-project-switcher-select .ant-select-selection-search{inset-inline-start:0!important}.construction-project-switcher-heading .ant-tag{margin-inline-end:0;border:0;border-radius:6px;font-size:11px;line-height:20px}.construction-project-switch-popup{padding:6px;border:1px solid #dfebe5;border-radius:12px;box-shadow:0 12px 36px #11413129}.construction-project-switch-option{display:grid;gap:6px;padding-block:6px}.construction-project-switch-option strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.construction-project-switch-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.construction-project-switch-popup .ant-select-item{border-radius:8px}.construction-project-switch-popup .ant-select-item-option-selected:not(.ant-select-item-option-disabled){background:#e8f4ee}.construction-project-switch-option>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.construction-project-switch-option .ant-tag{margin-inline-end:0}.construction-project-switch-option small{color:#7b8b86}.construction-project-action-row{justify-content:flex-end}.construction-lifecycle-alert{margin-bottom:14px;border-radius:12px}.construction-receipt-progress{display:grid;gap:12px;padding:15px 18px;margin-bottom:14px;border:1px solid #dce9e3;border-radius:12px;background:#fff;box-shadow:0 4px 14px #134e3e0d}.construction-receipt-progress.is-loading,.construction-receipt-progress.is-empty{display:flex;align-items:center;gap:10px;min-height:58px;color:var(--construction-muted)}.construction-receipt-progress.is-empty strong{color:var(--construction-ink)}.construction-receipt-progress.is-empty .ant-btn{margin-left:auto}.construction-receipt-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.construction-receipt-progress-title{display:flex;align-items:center;gap:12px}.construction-receipt-progress-title strong{color:var(--construction-ink);font-size:15px}.construction-receipt-progress-title span{color:var(--construction-muted);font-size:12px}.construction-receipt-progress-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.construction-receipt-progress-actions .ant-tag{margin-inline-end:0}.construction-receipt-progress-rows{display:grid;gap:11px}.construction-receipt-progress-row{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:center;gap:14px}.construction-receipt-progress-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.construction-receipt-progress-row-heading>div{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.construction-receipt-progress-row-heading>div span,.construction-receipt-progress-row-heading>span{color:var(--construction-muted);font-size:11px}.construction-receipt-progress-row-heading strong{color:#426d91;font-size:18px;line-height:1}.construction-receipt-progress-row.is-actual .construction-receipt-progress-row-heading strong{color:var(--construction-green-dark)}.construction-receipt-progress-row.is-behind .construction-receipt-progress-row-heading>span{color:#c4463d}.construction-receipt-progress-money{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px 18px;padding-top:9px;border-top:1px solid #edf2ef;color:var(--construction-muted);font-size:12px}.construction-receipt-progress-money strong{color:var(--construction-ink)}.construction-receipt-progress-track{display:grid;grid-template-columns:3fr 3fr 3fr 1fr;gap:4px;height:11px;overflow:hidden;border-radius:6px}.construction-receipt-progress-segment{position:relative;overflow:hidden;background:#e9efec}.construction-receipt-progress-segment:first-child{border-radius:6px 0 0 6px}.construction-receipt-progress-segment:last-child{border-radius:0 6px 6px 0}.construction-receipt-progress-segment i{display:block;height:100%;background:#2e8b70;transition:width .22s ease}.construction-receipt-progress-row.is-plan .construction-receipt-progress-segment i{background:#5884aa}.construction-receipt-progress-segment.status-current i{background:#d89032}.construction-receipt-progress-row.is-actual.is-behind .construction-receipt-progress-segment{background:#f4e4e1}.construction-receipt-progress-stages{display:grid;grid-template-columns:3fr 3fr 3fr 1fr;gap:4px}.construction-receipt-progress-stages>span{display:flex;justify-content:space-between;gap:8px;padding-right:8px;color:var(--construction-muted);font-size:11px}.construction-receipt-progress-stages strong{color:#38594f;font-weight:600}.construction-receipt-progress-stages small{white-space:nowrap}.construction-completion-confirm-input{display:grid;gap:8px}.construction-hero.overdue{background:radial-gradient(circle at 85% 20%,rgba(255,218,153,.2) 0 70px,transparent 71px),linear-gradient(120deg,#784036,#b75a42 56%,#de8154)}.construction-hero.template{background:radial-gradient(circle at 83% 22%,rgba(163,226,255,.25) 0 78px,transparent 79px),linear-gradient(120deg,#1e4552,#31746d 55%,#68a889)}.construction-hero.migration{background:radial-gradient(circle at 86% 20%,rgba(255,221,161,.25) 0 72px,transparent 73px),linear-gradient(120deg,#5b5640,#8b7350 54%,#b49a69)}.construction-hero .ant-typography{color:inherit}.construction-hero h2.ant-typography{margin:6px 0 4px;color:#fff;font-size:clamp(24px,3vw,32px);letter-spacing:.02em}.construction-hero .ant-typography-paragraph{max-width:720px;margin-bottom:0;color:#f7fffbdb}.construction-hero .ant-btn-default{border-color:#ffffff70;color:#fff;background:#ffffff1a}.construction-hero .ant-btn-primary{border-color:#fff;color:var(--construction-green-dark);background:#fff}.construction-eyebrow{color:#c5f4df!important;font-size:12px;font-weight:700;letter-spacing:.12em}.construction-metric-grid{margin-bottom:16px}.construction-metric-card{--construction-metric-accent: var(--construction-line);min-height:128px;overflow:hidden;cursor:pointer;border-top:3px solid var(--construction-metric-accent)!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.construction-metric-card.green{--construction-metric-accent: var(--construction-green)}.construction-metric-card.blue{--construction-metric-accent: #4183bd}.construction-metric-card.red{--construction-metric-accent: var(--construction-red)}.construction-metric-card.teal{--construction-metric-accent: #38a6a2}.construction-metric-card.orange{--construction-metric-accent: var(--construction-orange)}.construction-metric-card.slate{--construction-metric-accent: #7f9990}.construction-metric-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #1c473b1c}.construction-metric-card:focus-visible{outline:3px solid color-mix(in srgb,var(--construction-metric-accent) 28%,transparent);outline-offset:2px}.construction-metric-card.active{border-color:color-mix(in srgb,var(--construction-metric-accent) 52%,#dce8e3)!important;background:color-mix(in srgb,var(--construction-metric-accent) 7%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--construction-metric-accent) 15%,transparent),0 10px 24px #1c473b1a}.construction-metric-card .ant-card-body{display:flex;flex-direction:column;box-sizing:border-box;min-height:0;padding:18px 20px 14px}.construction-metric-card h2.ant-typography{margin:6px 0 0;color:var(--construction-ink)}.construction-metric-card-action{margin-top:auto;padding-top:6px;color:var(--construction-metric-accent);font-size:12px;font-weight:700}.construction-project-board-anchor{height:100%;scroll-margin-top:16px}.construction-project-focus{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 12px;padding:9px 12px;border:1px solid #cce1d8;border-radius:8px;background:#f2faf6}.construction-project-focus>span{display:grid;gap:2px}.construction-project-focus small{color:var(--construction-muted);font-size:12px}.construction-project-focus .ant-btn-link{flex:none;padding-inline:4px;color:var(--construction-green-dark);font-weight:700}@media(prefers-reduced-motion:reduce){.construction-metric-card{transition:none}}.construction-filter-card{margin-bottom:16px}.construction-filter-card .ant-card-body{padding:12px 16px}.construction-filter-row{display:flex;align-items:center;justify-content:space-between;width:100%}.construction-filter-row .ant-segmented-item-selected{color:var(--construction-green-dark)}.construction-search{width:min(100%,340px)}.construction-table-progress{min-width:180px}.construction-project-name-link,.construction-project-metric-link{padding:0;font:inherit;text-align:left;cursor:pointer;border:0;background:transparent}.construction-project-name-link{color:var(--construction-ink);font-weight:700}.construction-project-name-link:hover,.construction-project-name-link:focus-visible{color:var(--construction-green);text-decoration:underline;text-underline-offset:3px;outline:0}.construction-project-metric-link{border-radius:5px}.construction-project-metric-link .ant-tag{margin-inline-end:0;transition:transform .14s ease,box-shadow .14s ease}.construction-project-metric-link:hover .ant-tag,.construction-project-metric-link:focus-visible .ant-tag{box-shadow:0 0 0 2px #1f8a702e;transform:translateY(-1px)}.construction-project-metric-link:focus-visible{outline:0}.construction-row-overdue>td{background:#fff6f4!important}.construction-row-due>td{background:#fffaf0!important}.construction-next-task{display:grid;gap:3px;padding:0;color:inherit;text-align:left;cursor:pointer;border:0;background:transparent}.construction-next-task>span{color:var(--construction-muted);font-size:12px}.construction-next-task .ant-tag{width:fit-content;margin:2px 0 0}.construction-next-task:hover strong,.construction-next-task:focus-visible strong{color:var(--construction-green);text-decoration:underline;text-underline-offset:3px}.construction-next-task:focus-visible{outline:2px solid rgba(31,138,112,.24);outline-offset:3px;border-radius:4px}.construction-side-card{margin-bottom:16px}.construction-action-list{display:grid;gap:8px}.construction-action-task{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%;padding:10px 11px;color:var(--construction-ink);text-align:left;cursor:pointer;border:1px solid #e4eee9;border-left:3px solid #49a79a;border-radius:9px;background:#fbfefd;transition:transform .18s ease,box-shadow .18s ease}.construction-action-task.due{border-left-color:var(--construction-orange)}.construction-action-task:hover{transform:translate(3px);box-shadow:0 5px 14px #1b5d491a}.construction-action-task-main{display:grid;gap:3px;min-width:0}.construction-action-task small{color:var(--construction-muted);font-size:11px}.construction-action-task .ant-tag{margin-inline-end:0;white-space:nowrap}.construction-project-summary{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.1fr;gap:1px;margin-bottom:16px;overflow:hidden;border:1px solid var(--construction-line);border-radius:14px;background:var(--construction-line)}.construction-project-summary>div{display:grid;gap:5px;min-height:105px;padding:17px;background:var(--construction-paper)}.construction-project-summary span,.construction-project-summary small{color:var(--construction-muted)}.construction-project-summary strong{color:var(--construction-ink);font-size:25px;line-height:1.1}.construction-project-summary strong.danger{color:var(--construction-red)}.construction-project-summary-completion{min-width:0}.construction-summary-completion-count{display:flex;align-items:center;gap:8px;min-width:0}.construction-summary-completion-count button{padding:4px 7px;color:#9d6422;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer;border:1px solid #f0cf93;border-radius:6px;background:#fff8e8;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.construction-summary-completion-count button:hover,.construction-summary-completion-count button:focus-visible{border-color:var(--construction-orange);box-shadow:0 0 0 3px #d8753221;outline:0;transform:translateY(-1px)}.construction-project-summary-overdue{min-width:0}.construction-summary-overdue-count{display:flex;align-items:center;gap:8px;min-width:0}.construction-summary-overdue-count button{padding:4px 7px;color:#a9423a;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer;border:1px solid #f0b8b3;border-radius:6px;background:#fff4f2;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.construction-summary-overdue-count button:hover,.construction-summary-overdue-count button:focus-visible{border-color:var(--construction-red);box-shadow:0 0 0 3px #ca514721;outline:0;transform:translateY(-1px)}.construction-project-summary-today{min-width:0}.construction-summary-today-counts{display:flex;gap:8px}.construction-summary-today-counts button{display:grid;gap:1px;min-width:74px;padding:3px 7px 4px;color:var(--construction-ink);text-align:left;cursor:pointer;border:1px solid #cfe5da;border-radius:7px;background:#f5fbf8;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.construction-summary-today-counts button:hover,.construction-summary-today-counts button:focus-visible{border-color:var(--construction-green);box-shadow:0 0 0 3px #1f8a7021;outline:0;transform:translateY(-1px)}.construction-summary-today-counts button.due-today{border-color:#f1d7a2;background:#fffaf0}.construction-summary-today-counts button.due-today:hover,.construction-summary-today-counts button.due-today:focus-visible{border-color:var(--construction-orange);box-shadow:0 0 0 3px #d8753221}.construction-summary-today-counts button strong{font-size:22px}.construction-summary-today-counts button small{font-size:11px}.construction-today-task-tabs{display:flex;gap:8px;margin-bottom:14px}.construction-today-task-list{display:grid;gap:8px;max-height:min(48vh,420px);overflow:auto}.construction-today-task-list>button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 12px;color:var(--construction-ink);text-align:left;cursor:pointer;border:1px solid #e0ece6;border-radius:9px;background:#fbfefd}.construction-today-task-list>button:hover{border-color:#8bc7b1;background:#f1faf5}.construction-today-task-list>button>span{display:grid;min-width:0;gap:3px}.construction-today-task-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.construction-today-task-list small{overflow:hidden;color:var(--construction-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.construction-overdue-task-list>button{border-color:#f0d1cd;background:snow}.construction-overdue-task-list>button:hover{border-color:var(--construction-red);background:#fff6f4}.construction-task-list-modal .ant-modal-body{overflow:hidden}.construction-task-list-modal .construction-overdue-task-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(68vh,680px);padding-right:4px}@media(max-width:720px){.construction-task-list-modal .construction-overdue-task-list{grid-template-columns:1fr}}.construction-phase-tabs{display:flex;gap:7px;padding:0 0 12px;margin-bottom:4px;overflow-x:auto}.construction-phase-tabs button{flex:0 0 auto;padding:8px 11px;color:#547168;cursor:pointer;border:1px solid #dbe9e2;border-radius:999px;background:#fafffc}.construction-phase-tabs button span{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:4px;color:inherit;font-size:11px;border-radius:9px;background:#e7f2ed}.construction-phase-tabs button.status-completed{color:#237459;border-color:#b8dbc9;background:#effaf4}.construction-phase-tabs button.status-completed span{background:#d6f0e1}.construction-phase-tabs button.status-in-progress{color:#236f98;border-color:#b8d7e8;background:#eff8fc}.construction-phase-tabs button.status-in-progress span{background:#d8ebf5}.construction-phase-tabs button.status-not-started{color:#667d76;border-color:#d5e1dc;background:#f9fbfa}.construction-phase-tabs button.status-not-started span{background:#edf2ef}.construction-phase-tabs button.active{color:#fff;border-color:var(--construction-green);background:var(--construction-green);box-shadow:0 0 0 3px #1f8a7029,0 5px 12px #185e4b24;transform:translateY(-1px)}.construction-phase-tabs button.active span{background:#ffffff30}.construction-phase-tabs button.status-completed.active{border-color:#237459;background:#237459;box-shadow:0 0 0 3px #2374592b,0 5px 12px #23745929}.construction-phase-tabs button.status-in-progress.active{border-color:#236f98;background:#236f98;box-shadow:0 0 0 3px #236f982b,0 5px 12px #236f9829}.construction-phase-tabs button.status-not-started.active{border-color:#667d76;background:#667d76;box-shadow:0 0 0 3px #667d762b,0 5px 12px #3a4e4724}.construction-project-workspace{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.4fr) minmax(280px,.85fr);gap:16px;align-items:start}.construction-task-panel,.construction-gantt-panel,.construction-task-detail{min-height:620px}.construction-task-list{max-height:710px;overflow:auto;padding-right:3px}.construction-phase-group+.construction-phase-group{margin-top:16px}.construction-phase-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 3px 7px;color:var(--construction-green-dark);font-size:13px;font-weight:700;border-bottom:1px dashed #d3e4dc}.construction-phase-heading small{color:var(--construction-muted);font-size:11px;font-weight:400}.construction-task-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:54px;padding:8px 5px;color:var(--construction-ink);text-align:left;cursor:pointer;border:0;border-bottom:1px solid #edf3f0;background:transparent}.construction-task-row:hover{background:#f2faf6}.construction-task-row.active{margin:2px 0;padding-inline:8px;border-radius:8px;background:var(--construction-green-soft)}.construction-task-row.overdue{border-left:3px solid var(--construction-red);padding-left:8px}.construction-task-row.completed{background:linear-gradient(90deg,var(--construction-completed-soft),transparent 72%)}.construction-task-row.completed .construction-task-row-main strong{color:#617982;text-decoration:line-through;text-decoration-thickness:1px}.construction-task-row.completed.active{background:linear-gradient(90deg,#e2eff4,#f7fbfc)}.construction-task-row.subtask .construction-task-row-main{padding-left:14px}.construction-task-row-main{display:grid;min-width:0;gap:3px}.construction-task-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.construction-task-row-main small{overflow:hidden;color:var(--construction-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.construction-task-row-tags{display:flex;align-items:center;gap:0}.construction-task-row-tags .ant-tag{margin-inline-end:0;padding-inline:4px;font-size:11px}.construction-gantt-range{display:flex;justify-content:space-between;padding:0 4px 9px 158px;color:var(--construction-muted);font-size:11px;border-bottom:1px solid #e2eee8}.construction-gantt-grid{position:relative;max-height:720px;overflow:auto;background-image:linear-gradient(90deg,#eef5f1 1px,transparent 1px);background-size:20% 100%}.construction-gantt-row{position:relative;display:block;width:100%;height:41px;padding:0;color:var(--construction-ink);text-align:left;cursor:pointer;border:0;border-bottom:1px solid #eff5f2;background:#ffffffa6}.construction-gantt-row:hover,.construction-gantt-row.active{background:#e9f8f0e0}.construction-gantt-row.completed{background:#eef5f8b8}.construction-gantt-row.completed>span{color:#617982}.construction-gantt-row.completed.active{background:#e2eff4}.construction-gantt-row>span{position:absolute;top:12px;left:5px;width:146px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.construction-gantt-row>i{position:absolute;top:13px;height:14px;min-width:7px;border-radius:7px;background:linear-gradient(90deg,#55b49c,var(--construction-green));box-shadow:0 2px 5px #157a5b2e}.construction-gantt-row>i.overdue{background:linear-gradient(90deg,#df846f,var(--construction-red))}.construction-gantt-row>i.milestone{border-radius:3px;background:linear-gradient(90deg,#8d6ebe,#66509f)}.construction-gantt-row>i.completed{background:repeating-linear-gradient(135deg,#7da1b3 0,#7da1b3 7px,#5c8198 7px,#5c8198 14px);box-shadow:0 2px 5px #3f647a33}.construction-gantt-legend{color:var(--construction-muted);font-size:11px}.construction-gantt-legend span{display:inline-flex;align-items:center;gap:4px}.construction-gantt-legend span:before{width:13px;height:7px;content:"";border-radius:4px;background:linear-gradient(90deg,#55b49c,var(--construction-green))}.construction-gantt-legend span.completed:before{background:repeating-linear-gradient(135deg,#7da1b3 0,#7da1b3 5px,#5c8198 5px,#5c8198 10px)}.construction-gantt-legend span.overdue:before{background:linear-gradient(90deg,#df846f,var(--construction-red))}.construction-detail-stack{width:100%}.construction-task-detail h4.ant-typography{margin:9px 0 3px}.construction-task-workflow{display:grid;gap:11px;padding:13px;border:1px solid #dbe9e2;border-radius:11px;background:linear-gradient(145deg,#f8fcfa,#f1f8f5)}.construction-task-workflow-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.construction-task-workflow-heading>div{display:grid;gap:3px}.construction-task-workflow-heading .ant-typography-secondary{font-size:12px;line-height:1.55}.construction-task-workflow-actions{width:100%}.construction-guidance-list{display:grid;gap:8px}.construction-guidance-list>div{display:grid;gap:2px;padding:9px 10px;border-left:3px solid #78b9a4;border-radius:0 7px 7px 0;background:#f4faf7}.construction-guidance-list span{color:var(--construction-muted);font-size:12px}.construction-guidance-heading{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.construction-guidance-list>div.stop-point{border-left-color:#d76b5d;background:#fff7f5}.construction-guidance-list small{color:var(--construction-muted);font-size:11px}.construction-guidance-drawer-list{display:grid;gap:20px;margin-top:18px}.construction-guidance-drawer-list section{display:grid;gap:10px}.construction-guidance-drawer-list h5.ant-typography{margin:0}.construction-guidance-drawer-list article{padding:12px;border:1px solid #e5ebe8;border-radius:10px;background:#fbfdfc}.construction-guidance-drawer-list article.stop-point{border-color:#efb8ae;background:#fff8f6}.construction-guidance-drawer-list article .ant-typography{margin-bottom:6px}.construction-modal-alert{margin-bottom:16px}.construction-instance-modal .ant-modal-body{max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain}.construction-form-date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.construction-modal-actions,.construction-preview-actions,.construction-recovery-actions{display:flex;justify-content:flex-end;width:100%}.construction-instance-modal .construction-modal-actions{position:sticky;z-index:3;bottom:0;margin-top:4px;padding:12px 0 2px;border-top:1px solid #e8efeb;background:linear-gradient(180deg,#ffffffeb,#fff 28%)}.construction-reschedule-preview{display:grid;gap:14px;margin:2px 0 18px;padding:14px;border:1px solid #dcebe4;border-radius:12px;background:linear-gradient(145deg,#f8fcfa,#f1f8f5)}.construction-reschedule-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.construction-reschedule-summary>div{display:grid;gap:2px;min-width:0;padding:10px 11px;border:1px solid #dfebe5;border-radius:9px;background:#fff}.construction-reschedule-summary span,.construction-reschedule-summary small{color:var(--construction-muted);font-size:11px}.construction-reschedule-summary strong{overflow:hidden;color:var(--construction-green-dark);font-size:18px;text-overflow:ellipsis;white-space:nowrap}.construction-reschedule-section{display:grid;gap:8px}.construction-reschedule-change-list{display:grid;max-height:230px;overflow-y:auto;border:1px solid #dfebe5;border-radius:9px;background:#fff}.construction-reschedule-change-list>div{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(160px,1fr) minmax(210px,1.35fr);align-items:center;gap:10px;padding:9px 11px;border-bottom:1px solid #edf3f0;color:var(--construction-muted);font-size:12px}.construction-reschedule-change-list>div:last-child{border-bottom:0}.construction-reschedule-change-list span:first-child{display:grid;gap:2px;color:var(--construction-ink)}.construction-reschedule-change-list small{color:var(--construction-muted)}.construction-reschedule-change-list .next{color:var(--construction-green-dark);font-weight:600}.construction-reschedule-change-list .ant-tag{margin-inline:5px 0}.construction-reschedule-section.conflicts{padding:11px;border:1px solid #f1c7bd;border-radius:9px;background:#fff7f5}.construction-reschedule-conflict{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:10px}.construction-reschedule-conflict>span{display:grid;gap:2px}.construction-reschedule-conflict small{color:var(--construction-muted)}.construction-empty-plan{min-height:320px;display:grid;place-items:center}.construction-preview-form .ant-alert{margin-bottom:20px}.construction-preview-form .ant-form{margin-top:20px}.construction-preview-results{width:100%}.construction-preview-summary .ant-statistic-title{color:var(--construction-muted)}.construction-preview-summary .ant-statistic-content{color:var(--construction-ink);font-size:25px}.construction-preview-summary .ant-progress{margin:17px 0 6px}.construction-preview-phase-list{display:grid;gap:10px}.construction-preview-phase{overflow:hidden;border:1px solid #e0ede7;border-radius:10px}.construction-preview-phase-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;color:var(--construction-green-dark);background:#f1faf5}.construction-preview-phase-heading span{color:var(--construction-muted);font-size:12px}.construction-preview-task-list{display:grid}.construction-preview-task-list>div{display:grid;grid-template-columns:minmax(120px,1fr) auto auto;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid #edf3f0}.construction-preview-task-list small{color:var(--construction-muted);font-size:12px}.construction-preview-task-list .ant-tag{margin-inline-end:0}.construction-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-radius:12px;background:#edf8f3}.construction-preview-footer .ant-typography{max-width:620px}.construction-preview-placeholder{min-height:420px;display:grid;place-items:center}.construction-migration-stack{width:100%}.construction-migration-form .ant-form{margin-top:18px}.construction-migration-placeholder{min-height:320px;display:grid;place-items:center}.construction-migration-summary .ant-statistic-title{color:var(--construction-muted)}.construction-migration-summary .ant-statistic-content{color:var(--construction-ink);font-size:25px}.construction-migration-summary .ant-progress{margin:17px 0 6px}.construction-mapping-alert{margin-bottom:15px}.construction-migration-confirm{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px}.construction-migration-archive-card{margin-bottom:16px}.construction-migration-archive-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:16px;padding:5px 0;color:var(--construction-muted);font-size:13px}.construction-migration-archive-row>span:first-child{display:grid;gap:3px;color:var(--construction-ink)}.construction-migration-archive-row small{color:var(--construction-muted)}.construction-overdue-task-summary{width:100%}.construction-overdue-task-summary h3.ant-typography{margin:0}.construction-template-stack{width:100%}.construction-template-collapse .ant-collapse-item{border-color:#e2eee8}.construction-template-collapse .ant-collapse-header{align-items:center!important}.construction-template-task-list{display:grid}.construction-template-task-list>div{display:grid;grid-template-columns:46px minmax(160px,1fr) auto;gap:10px;align-items:center;padding:9px 4px;border-bottom:1px solid #ecf3ef}.construction-template-task-list>div.critical{background:linear-gradient(90deg,#fff7f5,transparent)}.construction-template-task-order{color:var(--construction-green-dark);font-size:12px;font-weight:700}.construction-template-task-main{display:grid;gap:2px}.construction-template-task-main small{color:var(--construction-muted);font-size:12px}.construction-template-task-tags{display:flex;justify-content:flex-end;gap:4px}.construction-template-task-tags .ant-tag{margin-inline-end:0}.construction-template-rule-card{margin-bottom:16px}.construction-payment-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.construction-payment-pills span{padding:6px 8px;color:var(--construction-green-dark);font-size:12px;font-weight:700;border-radius:6px;background:#e8f5ee}.project-flow-construction-entry{margin:6px 0;border-left:4px solid var(--construction-green, #1f8a70)!important}@media(max-width:1500px){.construction-project-workspace{grid-template-columns:minmax(280px,.9fr) minmax(370px,1.5fr)}.construction-task-detail{grid-column:1 / -1;min-height:auto}}@media(max-width:960px){.construction-hero{align-items:flex-start;flex-direction:column;padding:24px}.construction-hero-actions{align-items:stretch;width:100%;max-width:none}.construction-project-switcher{width:400px}.construction-project-action-row{justify-content:flex-start}.construction-project-summary{grid-template-columns:1fr 1fr}.construction-project-workspace{grid-template-columns:1fr}.construction-task-panel,.construction-gantt-panel{min-height:auto}.construction-task-list,.construction-gantt-grid{max-height:520px}}@media(max-width:640px){.construction-hero{min-height:0;padding:20px;border-radius:13px}.construction-hero.compact{min-height:0}.construction-hero h2.ant-typography{font-size:24px}.construction-project-switcher{width:100%;padding:10px 12px}.construction-filter-row{align-items:stretch;flex-direction:column}.construction-filter-row>.ant-segmented{width:100%;overflow-x:auto}.construction-filter-row>.ant-space{width:100%}.construction-filter-row>.ant-space>.ant-space-item:first-child{flex:1;min-width:0}.construction-search{width:100%}.construction-project-summary{grid-template-columns:1fr}.construction-receipt-progress-heading{align-items:stretch;flex-direction:column;gap:8px}.construction-receipt-progress-title{align-items:flex-start;flex-direction:column;gap:2px}.construction-receipt-progress-actions{justify-content:flex-start}.construction-receipt-progress-row{grid-template-columns:1fr;gap:5px}.construction-receipt-progress-money{justify-content:flex-start}.construction-receipt-progress-stages>span{display:grid;gap:1px}.construction-receipt-progress-stages strong{font-size:10px}.construction-preview-task-list>div{grid-template-columns:1fr auto}.construction-preview-task-list small{grid-column:1 / -1}.construction-preview-footer{align-items:stretch;flex-direction:column}.construction-preview-footer .ant-btn{width:100%}.construction-migration-confirm{align-items:stretch;flex-direction:column}.construction-migration-confirm .ant-btn{width:100%}.construction-migration-archive-row{grid-template-columns:1fr;gap:5px}.construction-form-date-row{grid-template-columns:1fr;gap:0}.construction-reschedule-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.construction-reschedule-change-list>div{grid-template-columns:1fr;gap:4px}.construction-reschedule-conflict{grid-template-columns:1fr auto}.construction-reschedule-conflict>small{grid-column:1 / -1}.construction-template-task-list>div{grid-template-columns:38px minmax(0,1fr)}.construction-template-task-tags{grid-column:2;justify-content:flex-start}.construction-gantt-range{padding-left:110px}.construction-gantt-row>span{width:100px;font-size:11px}}.internal-control-import-page{display:grid;gap:16px}.internal-control-import-cell{display:grid;gap:6px}.internal-control-module-shell{display:grid;gap:12px}.internal-control-module-actions{display:flex;justify-content:flex-end}.craft-admin-page{display:flex;flex-direction:column;gap:16px}.craft-admin-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 28px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#155f50,#0f766e 72%,#c6a868 160%)}.craft-admin-hero .ant-typography,.craft-admin-hero .construction-eyebrow{color:#fff}.craft-admin-hero .ant-typography-title{margin:4px 0 8px}.craft-admin-hero .ant-typography-paragraph{margin:0;color:#ffffffd6}.craft-metrics .ant-card{height:100%}.craft-stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.craft-stage-grid button{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 12px;padding:14px 16px;text-align:left;color:#26332f;cursor:pointer;border:1px solid #dbe7e2;border-radius:14px;background:#fff;transition:.2s ease}.craft-stage-grid button:hover,.craft-stage-grid button.active{border-color:#167566;box-shadow:0 8px 20px #125d4f1a;transform:translateY(-1px)}.craft-stage-grid button>span{grid-row:1 / 3;align-self:stretch;display:flex;align-items:center;justify-content:center;border-radius:10px;color:#d5b870;background:#175f50;font-size:24px;font-weight:700}.craft-stage-grid button strong{align-self:end}.craft-stage-grid button small{color:#73817c}.craft-filter-bar{display:flex;margin-bottom:16px}.craft-title-link{height:auto;padding:0;text-align:left;font-weight:600}.craft-image-progress{width:100%}.craft-asset-card{height:100%}.craft-asset-preview{display:flex;align-items:center;justify-content:center;min-height:160px;margin-bottom:10px;overflow:hidden;border-radius:10px;background:#f2f6f4}.craft-asset-preview .ant-image,.craft-asset-preview .ant-image-img{width:100%;max-height:190px;object-fit:cover}.craft-asset-meta{display:flex;margin-top:10px;width:100%}.craft-asset-actions{margin-top:10px}.craft-review-field{margin-top:20px;padding:16px;border-radius:12px;background:#fff7e6}.craft-drawer-footer{display:flex;justify-content:flex-end}.craft-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:26px 0 12px}.craft-section-heading .ant-typography{margin-bottom:0}@media(max-width:900px){.craft-admin-hero{flex-direction:column}.craft-stage-grid{grid-template-columns:1fr}.craft-section-heading{align-items:flex-start;flex-direction:column}}.construction-issue-page{display:flex;flex-direction:column}.construction-issue-page .page-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px;margin-bottom:16px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#163b57,#176b67 62%,#2f8f72);box-shadow:0 14px 32px #1448542e}.construction-issue-page .page-hero .ant-typography,.construction-issue-page .page-hero .ant-typography-title,.construction-issue-page .page-hero .ant-typography-paragraph{color:#fff}.construction-issue-page .page-hero .ant-typography-title{margin:4px 0 8px}.construction-issue-page .page-hero .ant-typography-paragraph{margin-bottom:0;color:#ffffffd6}@media(max-width:720px){.construction-issue-page .page-hero{flex-direction:column}}.pm-main-material-page{display:flex;flex-direction:column;gap:14px}.pm-main-material-page .page-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#173f5f,#1677ff 62%,#41a6e8);box-shadow:0 14px 32px #164d842e}.pm-main-material-page .page-hero .ant-typography,.pm-main-material-page .page-hero .ant-typography-title,.pm-main-material-page .page-hero .ant-typography-paragraph{color:#fff}.pm-main-material-page .page-hero .ant-typography-title{margin:4px 0 8px}.pm-main-material-page .page-hero .ant-typography-paragraph{margin-bottom:0;color:#ffffffdb}.pm-material-project-card .ant-typography-title{margin:0}.pm-material-metrics .ant-card{height:100%}.pm-material-metrics .pm-material-metric{cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.pm-material-metrics .pm-material-metric.is-active{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff29}.pm-material-metrics .pm-material-metric.is-active .ant-typography-title{color:#1677ff}.pm-material-metrics .ant-card.risk{border-color:#ff7875;background:#fff2f0}.pm-material-metrics .ant-card.risk.is-active{border-color:#ff4d4f;box-shadow:0 0 0 2px #ff4d4f2e}.pm-material-metrics .ant-card.risk.is-active .ant-typography-title{color:#cf1322}.pm-material-metrics .ant-typography-title{margin:6px 0 0}.pm-material-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.pm-material-overview-filters{max-width:100%;overflow-x:auto}.pm-material-metric:focus-visible{outline:3px solid #1677ff;outline-offset:2px}@media(max-width:720px){.pm-main-material-page .page-hero{flex-direction:column}}.pm-material-row-overdue>td{background:#fff1f0!important}.pm-material-row-urgent>td{background:#fffbe6!important}.pm-command-strip .pm-clickable-card{cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.pm-command-strip .pm-clickable-card.is-active{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff29}.pm-command-strip .pm-clickable-card.risk.is-active{border-color:#ff4d4f;box-shadow:0 0 0 2px #ff4d4f2e}.labor-scheduling-page{display:flex;flex-direction:column;gap:16px}.labor-scheduling-hero{background:linear-gradient(135deg,#f6ffed,#e6f4ff 58%,#fff7e6)}.labor-summary-grid .ant-card{min-height:116px;border-color:#d9e8df}.labor-summary-grid .ant-typography{margin-bottom:4px}.labor-control-card,.labor-assignment-card{border-color:#d8e5dc}.labor-control-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.labor-worker-conflict-row td{background:#fff2f0!important}.aux-material-calculator-page{display:flex;flex-direction:column;gap:16px}.aux-material-hero{background:linear-gradient(135deg,#fff7e6,#f6ffed 52%,#e6f4ff)}.aux-calculator-card{border-color:#eadfca}.aux-calculator-card>.ant-card-body>.ant-space>.ant-space-item:first-child{overflow-x:auto}.aux-calculator-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.aux-calculator-intro .ant-typography-title{margin:0 0 4px}.aux-calculator-intro>.ant-tag{max-width:52%;white-space:normal;line-height:22px;padding:5px 10px}@media(max-width:760px){.pm-main-material-page .page-hero{flex-direction:column}.pm-main-material-page .page-hero .ant-select{width:100%!important}.labor-control-heading .ant-segmented{width:100%;overflow-x:auto}.aux-calculator-intro{flex-direction:column}.aux-calculator-intro>.ant-tag{max-width:100%}}.labor-finance-page{display:flex;flex-direction:column;gap:16px}.labor-finance-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:24px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#17324d,#0f766e 58%,#2f9d78);box-shadow:0 14px 32px #14485433}.labor-finance-hero .ant-typography,.labor-finance-hero .ant-typography-title,.labor-finance-hero .ant-typography-paragraph{color:#fff}.labor-finance-hero .ant-typography-title{margin:4px 0 8px}.labor-finance-hero .ant-typography-paragraph{margin-bottom:0;color:#ffffffdb}.labor-finance-kicker{letter-spacing:.08em;opacity:.82}.labor-finance-content-card{border-color:#d6e7e3}@media(max-width:900px){.labor-finance-hero{flex-direction:column}.labor-finance-hero .ant-select{width:100%!important}}.employee-payroll-page{display:flex;flex-direction:column;gap:16px}.employee-payroll-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:24px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#312e81,#5b21b6 56%,#7c3aed);box-shadow:0 14px 32px #4c1d9533}.employee-payroll-hero .ant-typography,.employee-payroll-hero .ant-typography-title,.employee-payroll-hero .ant-typography-paragraph{color:#fff}.employee-payroll-hero .ant-typography-title{margin:4px 0 8px}.employee-payroll-hero .ant-typography-paragraph{margin-bottom:0;color:#ffffffdb}.employee-payroll-main{border-color:#e2d9f3}.payroll-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.payroll-net-value{color:#1677ff}@media(max-width:900px){.employee-payroll-hero{flex-direction:column}}.project-cashflow-overview-page{display:flex;flex-direction:column;gap:16px}.project-cashflow-overview-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:24px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#15324a,#075985 52%,#0f766e);box-shadow:0 14px 32px #0f4c5c33}.project-cashflow-overview-hero .ant-typography,.project-cashflow-overview-hero .ant-typography-title,.project-cashflow-overview-hero .ant-typography-paragraph{color:#fff}.project-cashflow-overview-hero .ant-typography-title{margin:4px 0 8px}.project-cashflow-overview-hero .ant-typography-paragraph{margin-bottom:0;color:#ffffffdb}.project-cashflow-overview-card{border-color:#d8e7e5}.project-cashflow-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.project-cashflow-toolbar h5{margin:0 0 4px}.project-cashflow-project-link{height:auto;padding:0;text-align:left;white-space:normal}.project-cashflow-total-row>td{background:#f0fdfa!important;border-top:1px solid #99f6e4!important}@media(max-width:900px){.project-cashflow-overview-hero,.project-cashflow-toolbar{flex-direction:column;align-items:stretch}}.knowledge-page{display:grid;gap:18px;padding:24px;background:#f6f8f7}.knowledge-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px 32px;color:#fff;border-radius:16px;background:linear-gradient(118deg,#123f3d,#137f6a 65%,#43a77a);box-shadow:0 14px 32px #19574b29}.knowledge-hero .ant-typography{color:#fff}.knowledge-hero .ant-typography-title{margin:7px 0 8px;font-size:clamp(28px,3vw,40px)}.knowledge-hero .ant-typography-paragraph{max-width:720px;margin-bottom:0;color:#ffffffd1}.knowledge-eyebrow{color:#bfe8d1!important;letter-spacing:.08em}.knowledge-alert{margin:0}.knowledge-module-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.knowledge-module-card{display:grid;gap:10px;min-height:145px;padding:16px;color:#24443e;text-align:left;cursor:pointer;border:1px solid #dbe9e2;border-radius:12px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.knowledge-module-card:hover,.knowledge-module-card:focus-visible,.knowledge-module-card.active{border-color:#56a88c;outline:0;box-shadow:0 7px 17px #25755e1f;transform:translateY(-2px)}.knowledge-module-card.active{background:linear-gradient(145deg,#f0faf5,#fff)}.knowledge-module-card-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}.knowledge-module-card-heading strong{font-size:15px}.knowledge-module-card-heading span{color:#89a49b;font-size:11px;letter-spacing:.1em}.knowledge-module-description{min-height:34px;color:#71847e;font-size:12px;line-height:1.55}.knowledge-module-count{color:#80928c;font-size:11px}.knowledge-module-count b{color:#23765e;font-size:16px}.knowledge-module-count i{padding:0 3px;color:#b6c8c1;font-style:normal}.knowledge-overview-card{display:flex;align-items:center;justify-content:space-between;gap:22px;border-color:#dbe9e2}.knowledge-overview-card .ant-card-body{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}.knowledge-overview-card h3.ant-typography{margin:0 0 5px;color:#163e37}.knowledge-overview-card .ant-typography-paragraph{max-width:700px;margin:0;color:#6b8078}.knowledge-overview-stats{display:flex;flex:0 0 auto;gap:24px}.knowledge-overview-stats>div{display:grid;gap:4px;min-width:84px}.knowledge-overview-stats span{color:#7c9088;font-size:12px}.knowledge-overview-stats strong{color:#1b654f;font-size:20px}.knowledge-content-card{overflow:hidden;border-color:#dbe9e2}.knowledge-content-card .ant-tabs-nav{padding:0 20px;margin:0}.knowledge-content-card .ant-tabs-content-holder{min-height:300px}.knowledge-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid #eef3f0}.knowledge-content-card .ant-table-wrapper{padding:0 20px 20px}.knowledge-table-main{display:grid;gap:5px;min-width:0}.knowledge-table-main strong{overflow:hidden;color:#234d43;text-overflow:ellipsis;white-space:nowrap}.knowledge-table-main span{overflow:hidden;color:#7b8e87;font-size:12px;line-height:1.45;text-overflow:ellipsis}.knowledge-muted{color:#a1b0ab}.knowledge-drawer-alert{margin-bottom:20px}.knowledge-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.knowledge-drawer-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:10px;margin-top:8px;border-top:1px solid #edf2ef}.knowledge-file-picker{display:flex;align-items:center;gap:9px;min-height:70px;padding:14px 16px;color:#35705d;cursor:pointer;border:1px dashed #9ccbb6;border-radius:10px;background:#f7fcf9}.knowledge-file-picker:hover{border-color:#3e9b7a;background:#effaf4}.knowledge-file-picker input{position:absolute;width:1px;height:1px;opacity:0}@media(max-width:1280px){.knowledge-module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.knowledge-page{padding:14px}.knowledge-hero,.knowledge-overview-card .ant-card-body,.knowledge-toolbar{align-items:stretch;flex-direction:column}.knowledge-hero{padding:22px}.knowledge-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-overview-stats{justify-content:space-between}.knowledge-form-row{grid-template-columns:1fr;gap:0}}@media(max-width:480px){.knowledge-module-grid{grid-template-columns:1fr}.knowledge-overview-stats{flex-wrap:wrap;gap:14px}}
