.table-page-search-wrapper[data-v-51c773ab]{margin-bottom:0}.pagination-wrapper[data-v-51c773ab],.table-page-search-submitButtons[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.pagination-wrapper[data-v-51c773ab]{-ms-flex-pack:center;justify-content:center;margin-top:20px;padding:16px 0}.gantt-container[data-v-51c773ab]{width:100%;overflow-x:auto;background:#fff;border-radius:8px;padding:0 20px 20px;min-height:400px}.loading-container[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-height:300px;background:#fafafa;border-radius:8px;padding:40px}.loading-container p[data-v-51c773ab]{margin-top:16px;color:#666;font-size:14px;font-weight:500}.error-container[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-height:300px;background:#fff1f0;border:1px solid #ffccc7;border-radius:8px;padding:40px}.error-container .ant-alert[data-v-51c773ab]{width:100%;max-width:600px}.error-container .ant-btn[data-v-51c773ab]{margin-top:16px}.gantt-wrapper[data-v-51c773ab]{width:100%;max-height:calc(100vh - 320px);overflow:auto;background:#fff;border-radius:8px;border:1px solid #e8e8e8;margin-bottom:20px}.gantt-table[data-v-51c773ab]{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;line-height:1.5}.gantt-header[data-v-51c773ab]{height:48px;background:#fafafa;border-bottom:1px solid #e8e8e8;display:table-row}.gantt-header th[data-v-51c773ab]{padding:0 12px;vertical-align:middle;text-align:center;font-weight:600;font-size:15px;color:#262626;border-right:1px solid #e8e8e8;height:56px;display:table-cell;background-color:#f8fafc;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;top:0;z-index:6}.gantt-header th[data-v-51c773ab]:last-child{border-right:none}.parent-column-header[data-v-51c773ab]{min-width:180px;max-width:180px;width:180px;left:0;z-index:9!important;border-radius:8px 0 0 0;background-color:#fffbe6!important;color:#5a4a00!important;border-right:1px solid #ffe58f}.bundled-project-cell-placeholder[data-v-51c773ab]{min-width:120px;width:auto;padding:0;margin:0;border:none;background-color:transparent;visibility:hidden}.project-column-header[data-v-51c773ab]{min-width:260px;max-width:260px;width:260px;left:180px;z-index:8!important;background-color:#f8fafc;box-shadow:1px 0 0 #e8eaed}.timeline-header[data-v-51c773ab]{width:auto;min-width:1800px;border-radius:0 12px 0 0;overflow:hidden;background-color:#f8fafc;position:relative;height:56px;display:table-cell;vertical-align:middle;box-sizing:border-box;padding:0}thead[data-v-51c773ab]{display:table-header-group;vertical-align:middle;border-color:inherit}th[data-v-51c773ab]{display:table-cell;vertical-align:inherit;font-weight:700;text-align:-internal-center}.main-node-header[data-v-51c773ab]{position:absolute;top:0;text-align:center;font-weight:600;padding:8px 10px;line-height:1.3;font-size:13px;color:#555;border-right:1px solid #edf2f7;height:100%;min-width:100px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box;transition:all .2s ease;white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.main-node-header.phase-investment[data-v-51c773ab]{background-color:#e6f7ff}.main-node-header.phase-permit[data-v-51c773ab]{background-color:#f6ffed}.main-node-header.phase-construction[data-v-51c773ab]{background-color:#fff7e6}.main-node-header[data-v-51c773ab]:hover{background-color:#e8e8e8}.gantt-row[data-v-51c773ab]{background:#fff;border-bottom:1px solid #f0f0f0;transition:background .2s ease;vertical-align:middle;min-height:100px}.gantt-row[data-v-51c773ab]:hover{background:#f5f7fa}.bundled-project-cell[data-v-51c773ab]{width:180px;min-width:180px;max-width:180px;padding:12px 14px;font-weight:600;font-size:13px;color:#5a4a00;background:#fffbe6;border-right:1px solid #ffe58f;border-bottom:1px solid #fff1b8;text-align:center;vertical-align:middle;line-height:1.6;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;height:100%;min-height:88px;position:sticky;left:0;z-index:5}.bundled-project-cell[data-v-51c773ab]:hover{background:#fff7cc}.bundled-project-cell.empty-name[data-v-51c773ab]{background:#fafafa;color:#999;border-right:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.bundled-project-cell.empty-name[data-v-51c773ab]:hover{background:#f5f5f5}.project-name-cell[data-v-51c773ab]{width:260px;min-width:260px;max-width:260px;padding:12px 16px;vertical-align:middle;border-right:2px solid #e8e8e8;background-color:#fff;position:sticky;left:180px;z-index:4;box-shadow:2px 0 4px rgba(0,0,0,.04)}.progress-bar-cell[data-v-51c773ab]{padding:10px 0;vertical-align:middle;min-width:1800px;position:relative;background-color:#fff;width:auto;-ms-flex:none;flex:none}.project-name[data-v-51c773ab]{width:100%;padding:10px 12px;font-weight:500;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:start;justify-content:flex-start;font-size:13px;color:#333;background:#fff;border-radius:4px;margin:0;min-height:88px;max-height:none;overflow:hidden;text-overflow:ellipsis;white-space:normal;cursor:pointer;transition:color .2s}.project-name[data-v-51c773ab]:hover{color:#1890ff}.child-project-icon[data-v-51c773ab],.parent-project-icon[data-v-51c773ab]{display:inline-block;width:16px;height:16px;text-align:center;font-size:10px;font-weight:700;margin-right:4px;color:#1890ff}.parent-project-icon[data-v-51c773ab]{color:#1890ff}.child-project-icon[data-v-51c773ab]{color:#52c41a}.project-name-text[data-v-51c773ab]{-ms-flex:1 1 auto;flex:1 1 auto;overflow:hidden;white-space:normal;word-wrap:break-word;line-height:1.5;max-height:none;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2}.parent-name-hint[data-v-51c773ab]{font-size:11px;color:#999;margin-left:4px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parent-project[data-v-51c773ab]{background:linear-gradient(135deg,#e6f7ff,#bae7ff);border-left:4px solid #1890ff;box-shadow:0 2px 6px rgba(24,144,255,.15)}.child-project[data-v-51c773ab]{background:linear-gradient(135deg,#f6ffed,#d9f7be);border-left:4px solid #52c41a;box-shadow:0 2px 6px rgba(82,196,26,.15)}.parent-project .project-name[data-v-51c773ab]{background:linear-gradient(135deg,#e6f7ff,#bae7ff)}.child-project .project-name[data-v-51c773ab]{background:linear-gradient(135deg,#f6ffed,#d9f7be)}.no-gantt[data-v-51c773ab]{-ms-flex-pack:start;justify-content:flex-start;min-height:60px;height:auto}.project-row[data-v-51c773ab]{min-height:100px}.no-gantt .parent-project-info[data-v-51c773ab],.no-gantt .project-name[data-v-51c773ab]{width:150px;min-width:150px}.parent-project[data-v-51c773ab]{min-height:60px}.progress-bar-container[data-v-51c773ab]{-ms-flex:1;flex:1;position:relative;min-height:88px;--gantt-axis-y:62%;padding:12px 10px 8px}.main-node-container[data-v-51c773ab],.progress-bar-container[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box}.main-node-container[data-v-51c773ab]{position:absolute;height:100%;border-right:1px solid #eef2f7;background:transparent;margin:0;border-radius:0;transition:all .3s cubic-bezier(.4,0,.2,1);opacity:1;padding:0 4px}.main-node-background[data-v-51c773ab]{position:absolute;top:0;bottom:0;z-index:0;box-sizing:border-box;border-right:1px solid #edf2f7}.main-node-background.phase-investment[data-v-51c773ab]{background-color:#e6f7ff}.main-node-background.phase-permit[data-v-51c773ab]{background-color:#f6ffed}.main-node-background.phase-construction[data-v-51c773ab]{background-color:#fff7e6}.main-node-container[data-v-51c773ab]:hover{background:linear-gradient(180deg,transparent,rgba(24,144,255,.03) 50%,transparent)}.main-node-container[data-v-51c773ab]:last-child{border-right:none}.main-node-line[data-v-51c773ab]{position:absolute;top:var(--gantt-axis-y);left:0;right:0;height:1px;background:#d9dee7;transform:translateY(-50%);z-index:1;border-radius:1px;transition:all .3s cubic-bezier(.4,0,.2,1)}.project-progress-bar[data-v-51c773ab]{top:50%;left:0;background:linear-gradient(90deg,#1890ff,#096dd9);transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px rgba(24,144,255,.4),inset 0 1px 2px hsla(0,0%,100%,.3)}.project-progress-bar[data-v-51c773ab],.project-progress-segment[data-v-51c773ab]{position:absolute;height:5px;transform:translateY(-50%);z-index:2;border-radius:3px}.project-progress-segment[data-v-51c773ab]{top:var(--gantt-axis-y);transition:all .5s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 6px rgba(0,0,0,.15),inset 0 1px 2px hsla(0,0%,100%,.3)}.child-knots-container[data-v-51c773ab]{-ms-flex-pack:distribute;justify-content:space-around;width:100%;padding:10px 4px 8px;-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:6px}.child-knot[data-v-51c773ab],.child-knots-container[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;box-sizing:border-box}.child-knot[data-v-51c773ab]{-ms-flex-direction:column;flex-direction:column;z-index:2;-ms-flex:1;flex:1;min-width:72px;max-width:none;padding:0 4px;background-color:transparent;border-radius:3px;box-shadow:none;transition:all .3s ease;position:relative;-ms-flex-pack:start;justify-content:flex-start}.knot-dot[data-v-51c773ab]{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,#fff,#f5f5f5);border:2px solid #e8e8e8;top:var(--gantt-axis-y);transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(0,0,0,.16),inset 0 1px 2px hsla(0,0%,100%,.8);margin-top:0;cursor:pointer;z-index:3}.knot-dot[data-v-51c773ab],.knot-label[data-v-51c773ab]{position:absolute;left:50%;transition:all .3s cubic-bezier(.4,0,.2,1)}.knot-label[data-v-51c773ab]{font-size:12px;text-align:center;line-height:1.35;white-space:normal;overflow:hidden;color:#555;font-weight:600;padding:0 2px;width:calc(100% - 4px);top:8px;transform:translateX(-50%);z-index:2;word-break:break-word;max-width:calc(100% - 4px);min-height:34px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;text-shadow:none}.child-knot[data-v-51c773ab]:hover{box-shadow:0 4px 12px rgba(0,0,0,.15);transform:translateY(-2px)}.knot-dot[data-v-51c773ab]:hover{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 4px 12px rgba(0,0,0,.25),inset 0 1px 2px hsla(0,0%,100%,.8)}.knot-dot[data-v-51c773ab]:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,currentColor,rgba(0,0,0,.15));transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 1px 2px hsla(0,0%,100%,.5)}.child-knot:hover .knot-label[data-v-51c773ab]{color:#1890ff;text-shadow:none;transform:translateX(-50%)}.status-0 .knot-dot[data-v-51c773ab]{border:2px solid #bfbfbf!important;color:#bfbfbf;background:linear-gradient(135deg,#bfbfbf,#999)!important}.status-0 .knot-label[data-v-51c773ab]{color:#999}.status-1 .knot-dot[data-v-51c773ab]{border:2px solid #bfbfbf!important;color:#bfbfbf;background:linear-gradient(135deg,#bfbfbf,#999)!important}.status-1 .knot-label[data-v-51c773ab]{color:#999}.status-2 .knot-dot[data-v-51c773ab]{border:2px solid #52c41a!important;color:#52c41a;background:linear-gradient(135deg,#52c41a,#389e0d)!important}.status-2 .knot-label[data-v-51c773ab]{color:#389e0d}.status-3 .knot-dot[data-v-51c773ab]{border:2px solid #1890ff!important;color:#1890ff;background:linear-gradient(135deg,#1890ff,#096dd9)!important}.status-3 .knot-label[data-v-51c773ab]{color:#096dd9}.status-4 .knot-dot[data-v-51c773ab]{border:2px solid #ff4d4f!important;color:#ff4d4f;background:linear-gradient(135deg,#ff4d4f,#cf1322)!important}.status-4 .knot-label[data-v-51c773ab]{color:#cf1322}.status-5 .knot-dot[data-v-51c773ab]{border:2px solid #faad14!important;color:#faad14;background:linear-gradient(135deg,#faad14,#d48806)!important}.status-5 .knot-label[data-v-51c773ab]{color:#d48806}.legend[data-v-51c773ab]{margin-top:0;margin-bottom:8px;padding:8px 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;-ms-flex-wrap:wrap;flex-wrap:wrap}.legend h4[data-v-51c773ab]{margin:0 8px 0 0;font-size:13px;color:#666;font-weight:500}.legend-item[data-v-51c773ab]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;margin-right:16px;font-size:13px;color:#666}.legend-dot[data-v-51c773ab]{width:10px;height:10px;margin-right:6px;display:inline-block;background:currentColor;border-radius:50%}.legend-dot.status-0[data-v-51c773ab],.legend-dot.status-1[data-v-51c773ab]{color:#999}.legend-dot.status-2[data-v-51c773ab]{color:#389e0d}.legend-dot.status-3[data-v-51c773ab]{color:#096dd9}.legend-dot.status-4[data-v-51c773ab]{color:#cf1322}.legend-dot.status-5[data-v-51c773ab]{color:#d48806}.knot-detail[data-v-51c773ab]{padding:20px 24px}.detail-info[data-v-51c773ab]{margin-bottom:24px}.detail-row[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:10px 0;border-bottom:1px solid #f5f5f5}.detail-row[data-v-51c773ab]:last-child{border-bottom:none}.detail-label[data-v-51c773ab]{font-weight:600;color:#333;min-width:100px;-ms-flex-negative:0;flex-shrink:0;font-size:14px}.detail-value[data-v-51c773ab]{color:#555;font-size:14px;-ms-flex:1;flex:1}.approval-items[data-v-51c773ab]{margin-top:0}.approval-items__title[data-v-51c773ab]{font-size:15px;font-weight:600;color:#333;margin-bottom:14px;padding-left:10px;border-left:3px solid #1890ff}.detailed-gantt-container[data-v-51c773ab]{width:100%;background:#fafafa;padding:20px;border-radius:8px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.loading-project-gantt[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-height:200px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:40px}.loading-project-gantt p[data-v-51c773ab]{margin-top:16px;color:#666;font-size:14px;font-weight:500}.detailed-gantt-header[data-v-51c773ab]{display:-ms-flexbox;display:flex;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px 8px 0 0;padding:14px 18px;font-weight:600;min-height:120px;-ms-flex-direction:column;flex-direction:column;overflow-x:hidden}.detailed-gantt-header-row[data-v-51c773ab]{display:-ms-flexbox;display:flex;width:100%}.detailed-project-column[data-v-51c773ab]{width:180px;text-align:center;padding:10px;border-right:1px solid #e8e8e8;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:#fafafa;min-height:42px;-ms-flex-negative:0;flex-shrink:0;font-weight:600;color:#333}.detailed-timeline[data-v-51c773ab]{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.detailed-timeline-header[data-v-51c773ab]{text-align:center;padding:10px;font-size:15px;color:#1890ff;margin-bottom:10px;background:#e6f7ff;-ms-flex-pack:center;justify-content:center;font-weight:600}.detailed-timeline-axis[data-v-51c773ab],.detailed-timeline-header[data-v-51c773ab]{border-bottom:1px solid #e8e8e8;min-height:42px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.detailed-timeline-axis[data-v-51c773ab]{background:#fafafa;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow-x:visible}.timeline-date[data-v-51c773ab]{min-width:100px;text-align:center;padding:10px 6px;font-size:12px;color:#666;border-right:1px solid #e8e8e8;white-space:nowrap;font-weight:500;-ms-flex-negative:0;flex-shrink:0}.detailed-gantt-body-wrapper[data-v-51c773ab]{overflow-x:auto;border:1px solid #e8e8e8;border-top:none;border-radius:0 0 8px 8px;background:#fff}.detailed-gantt-body[data-v-51c773ab]{background:#fff;padding:0 18px 18px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:max-content}.detailed-gantt-row[data-v-51c773ab]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0;height:26px;background:#fff;line-height:26px;margin:2px 0;width:100%;border-radius:4px}.detailed-gantt-row[data-v-51c773ab]:last-child{border-bottom:none}.detailed-gantt-row[data-v-51c773ab]:hover{background:#f5f5f5}.detailed-task-name[data-v-51c773ab]{width:180px;padding:0 10px;border-right:1px solid #e8e8e8;font-weight:500;font-size:13px;color:#333;line-height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-ms-flex-negative:0;flex-shrink:0}.detailed-task-bars[data-v-51c773ab]{-ms-flex:1;flex:1;position:relative;height:26px;margin-left:8px;background:#fafafa;border-radius:4px;overflow:hidden;min-width:1500px}.detailed-task-bar[data-v-51c773ab]{position:absolute;height:100%;top:0;border-radius:4px;cursor:pointer;min-width:80px;width:8%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.detailed-task-bar[data-v-51c773ab]:hover{opacity:.85;z-index:10}.task-bar-label[data-v-51c773ab]{font-size:11px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}.detailed-task-bar.status-1[data-v-51c773ab]{background:linear-gradient(135deg,#bfbfbf,#999)!important}.detailed-task-bar.status-2[data-v-51c773ab]{background:linear-gradient(135deg,#52c41a,#389e0d)!important}.detailed-task-bar.status-3[data-v-51c773ab]{background:linear-gradient(135deg,#1890ff,#096dd9)!important}.detailed-task-bar.status-4[data-v-51c773ab]{background:linear-gradient(135deg,#ff4d4f,#cf1322)!important}.detailed-task-bar.status-5[data-v-51c773ab]{background:linear-gradient(135deg,#faad14,#d48806)!important}.no-data[data-v-51c773ab]{background:#fff;border:1px solid #e8e8e8;border-top:none;border-radius:0 0 8px 8px;padding:40px;text-align:center;color:#999;font-size:14px}