.project-gantt-page[data-v-69c0679e]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:#f0f2f5;padding:0}.page-header[data-v-69c0679e]{background:#fff;padding:10px 16px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #e8e8e8;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.04);box-shadow:0 2px 4px rgba(0,0,0,.04)}.page-header h2[data-v-69c0679e]{margin:0 16px 0 0;font-size:16px;color:#333}.page-header h2 .anticon[data-v-69c0679e]{margin-right:6px;color:#1890ff}.page-header .header-left[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.page-header .header-right[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px}.page-header .search-form[data-v-69c0679e]{margin:0}.page-header .search-form .ant-form-item[data-v-69c0679e]{margin-bottom:0}.gantt-container[data-v-69c0679e]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;background:#fff}.gantt-header[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:2px solid #e8e8e8;background:#fafafa;-ms-flex-negative:0;flex-shrink:0}.gantt-header-left[data-v-69c0679e]{-ms-flex-negative:0;flex-shrink:0;border-right:2px solid #1890ff;background:-webkit-gradient(linear,left top,left bottom,from(#f0f5ff),to(#e6f7ff));background:linear-gradient(180deg,#f0f5ff,#e6f7ff);-webkit-box-shadow:2px 0 8px rgba(24,144,255,.1);box-shadow:2px 0 8px rgba(24,144,255,.1)}.project-header[data-v-69c0679e]{font-size:14px;color:#1890ff;letter-spacing:.5px}.project-header[data-v-69c0679e]:before{content:"📋";margin-right:6px;font-size:16px}.gantt-header-right[data-v-69c0679e]{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.header-cell[data-v-69c0679e]{height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-weight:600;color:#333;border-bottom:1px solid #e8e8e8}.timeline-header[data-v-69c0679e]{min-width:100%;background:-webkit-gradient(linear,left top,left bottom,from(#f0f5ff),to(#e6f7ff));background:linear-gradient(180deg,#f0f5ff,#e6f7ff);border-bottom:2px solid #1890ff;-webkit-box-shadow:0 2px 8px rgba(24,144,255,.15);box-shadow:0 2px 8px rgba(24,144,255,.15)}.timeline-months[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:1px solid #d6e4ff;height:36px;background:rgba(24,144,255,.05)}.month-cell[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-right:2px solid #d6e4ff;font-size:14px;font-weight:600;color:#1890ff;background:transparent;letter-spacing:.5px}.month-cell[data-v-69c0679e]:hover{background:rgba(24,144,255,.08)}.timeline-days[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;height:32px}.day-cell[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-right:1px solid #e8e8e8;font-size:12px;color:#666;font-weight:500;-webkit-transition:all .2s;transition:all .2s}.day-cell.is-today[data-v-69c0679e]{background:-webkit-gradient(linear,left top,left bottom,from(#1890ff),to(#40a9ff));background:linear-gradient(180deg,#1890ff,#40a9ff);color:#fff;font-weight:700;font-size:13px;-webkit-box-shadow:0 2px 6px rgba(24,144,255,.4);box-shadow:0 2px 6px rgba(24,144,255,.4);border-radius:4px;margin:2px 1px;border-right-color:transparent}.day-cell.is-weekend[data-v-69c0679e]{background:#fafafa;color:#999}.day-cell .week-label[data-v-69c0679e]{font-size:11px;font-weight:600;color:#1890ff;background:rgba(24,144,255,.1);padding:2px 6px;border-radius:3px}.day-cell .month-label[data-v-69c0679e]{font-size:11px;font-weight:600;color:#52c41a;background:rgba(82,196,26,.1);padding:2px 6px;border-radius:3px}.gantt-body[data-v-69c0679e]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;overflow:auto}.gantt-body-left[data-v-69c0679e]{-ms-flex-negative:0;flex-shrink:0;border-right:2px solid #e8e8e8;background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#fafafa));background:linear-gradient(180deg,#fff,#fafafa);-webkit-box-shadow:2px 0 8px rgba(0,0,0,.06);box-shadow:2px 0 8px rgba(0,0,0,.06)}.gantt-body-right[data-v-69c0679e]{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;overflow-x:auto;overflow-y:hidden}.timeline-content[data-v-69c0679e]{position:relative;min-width:100%}.today-line[data-v-69c0679e]{position:absolute;top:0;bottom:0;width:2px;background:#ff4d4f;z-index:10}.today-line[data-v-69c0679e]:before{content:"";position:absolute;top:0;left:-4px;width:10px;height:10px;background:#ff4d4f;border-radius:50%}.gantt-row[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:1px solid #f0f0f0;-webkit-transition:all .25s cubic-bezier(.4,0,.2,1);transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.gantt-row[data-v-69c0679e]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;-webkit-transition:all .25s;transition:all .25s}.gantt-row[data-v-69c0679e]:hover:before{background:#1890ff;-webkit-box-shadow:0 0 6px rgba(24,144,255,.4);box-shadow:0 0 6px rgba(24,144,255,.4)}.gantt-row.project-row[data-v-69c0679e]{background:#fafafa;font-weight:600;border-bottom:2px solid #e8e8e8}.gantt-row.project-row[data-v-69c0679e]:hover{background:#f0f0f0}.gantt-row.project-row[data-v-69c0679e]:hover:before{background:#1890ff;width:4px}.gantt-row.project-row .row-title[data-v-69c0679e]{font-size:14px;max-width:160px;font-weight:600}.gantt-row.task-row[data-v-69c0679e]{background:#fff}.gantt-row.task-row[data-v-69c0679e]:hover{background:-webkit-gradient(linear,left top,right top,from(#f5f5f5),to(#fff));background:linear-gradient(90deg,#f5f5f5,#fff)}.gantt-row.task-row[data-v-69c0679e]:hover:before{background:#52c41a}.gantt-row.task-row .row-title[data-v-69c0679e]{max-width:280px}.gantt-row.child-task-row[data-v-69c0679e]{background:#fafafa}.gantt-row.child-task-row[data-v-69c0679e]:hover{background:-webkit-gradient(linear,left top,right top,from(#f0f0f0),to(#fafafa));background:linear-gradient(90deg,#f0f0f0,#fafafa)}.gantt-row.child-task-row[data-v-69c0679e]:hover:before{background:#fa8c16}.gantt-row.child-task-row .row-title[data-v-69c0679e]{max-width:240px;font-size:12px}.gantt-row.grandchild-task-row[data-v-69c0679e]{background:#fafafa}.gantt-row.grandchild-task-row[data-v-69c0679e]:hover{background:-webkit-gradient(linear,left top,right top,from(#f0f0f0),to(#fafafa));background:linear-gradient(90deg,#f0f0f0,#fafafa)}.gantt-row.grandchild-task-row[data-v-69c0679e]:hover:before{background:#722ed1}.gantt-row.grandchild-task-row .row-title[data-v-69c0679e]{max-width:200px;font-size:11px;color:#666}.gantt-row.greatgrandchild-task-row[data-v-69c0679e]{background:#fafafa}.gantt-row.greatgrandchild-task-row[data-v-69c0679e]:hover{background:-webkit-gradient(linear,left top,right top,from(#f0f0f0),to(#fafafa));background:linear-gradient(90deg,#f0f0f0,#fafafa)}.gantt-row.greatgrandchild-task-row[data-v-69c0679e]:hover:before{background:#eb2f96}.gantt-row.greatgrandchild-task-row .row-title[data-v-69c0679e]{max-width:160px;font-size:11px;color:#999}.row-cell[data-v-69c0679e]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:0 16px;font-size:13px;-webkit-transition:all .2s;transition:all .2s}.row-cell .expand-icon[data-v-69c0679e]{cursor:pointer;color:#1890ff;font-size:12px;-webkit-transition:all .2s;transition:all .2s;-ms-flex-negative:0;flex-shrink:0}.row-cell .expand-icon[data-v-69c0679e]:hover{color:#096dd9;-webkit-transform:scale(1.2);transform:scale(1.2)}.row-cell .row-icon[data-v-69c0679e]{font-size:14px;-ms-flex-negative:0;flex-shrink:0}.row-cell .row-title[data-v-69c0679e]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;-webkit-transition:color .2s;transition:color .2s}.row-cell .ant-tag[data-v-69c0679e]{-ms-flex-negative:0;flex-shrink:0}.row-cell .row-info[data-v-69c0679e]{font-size:11px;color:#999;white-space:nowrap;-ms-flex-negative:0;flex-shrink:0}.row-cell .task-assignee[data-v-69c0679e]{font-size:11px;color:#722ed1;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-ms-flex-negative:0;flex-shrink:0}.row-cell .exception-dot[data-v-69c0679e]{-ms-flex-negative:0;flex-shrink:0}.row-cell .row-right-items[data-v-69c0679e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-left:auto;-ms-flex-negative:0;flex-shrink:0}.timeline-cell[data-v-69c0679e]{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;height:100%;min-width:100%}.gantt-bar[data-v-69c0679e]{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:8px;border-radius:4px;padding:0;overflow:hidden;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:5;min-width:8px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15)}.gantt-bar[data-v-69c0679e]:hover{height:12px;-webkit-box-shadow:0 3px 8px rgba(0,0,0,.25);box-shadow:0 3px 8px rgba(0,0,0,.25);-webkit-filter:brightness(1.1);filter:brightness(1.1)}.gantt-bar .bar-content[data-v-69c0679e]{display:none}.gantt-bar.project-bar[data-v-69c0679e]{height:10px;border-radius:5px;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.2);box-shadow:0 2px 6px rgba(0,0,0,.2)}.gantt-bar.project-bar[data-v-69c0679e]:hover{height:14px}.gantt-bar.child-task-bar[data-v-69c0679e],.gantt-bar.subtask-bar[data-v-69c0679e]{height:6px;border-radius:3px}.gantt-bar.grandchild-task-bar[data-v-69c0679e]{height:5px;border-radius:2px}.gantt-bar.greatgrandchild-task-bar[data-v-69c0679e]{height:4px;border-radius:2px}.gantt-bar.is-overdue[data-v-69c0679e]{-webkit-box-shadow:0 0 8px rgba(255,77,79,.4);box-shadow:0 0 8px rgba(255,77,79,.4)}.gantt-bar.is-completed[data-v-69c0679e]{opacity:.85}.empty-state[data-v-69c0679e]{margin-top:60px}.exception-dot[data-v-69c0679e]{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:2px 8px!important;border-radius:4px;font-size:11px;margin-left:8px;-ms-flex-negative:0;flex-shrink:0;border-width:1px!important;border-style:solid!important;font-weight:600;white-space:nowrap;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);-webkit-transition:all .3s;transition:all .3s}.exception-dot[data-v-69c0679e]:hover{-webkit-transform:scale(1.05);transform:scale(1.05);-webkit-box-shadow:0 2px 6px rgba(0,0,0,.25);box-shadow:0 2px 6px rgba(0,0,0,.25)}.exception-dot-pending[data-v-69c0679e]{background-color:#fff2f0!important;color:#ff4d4f!important;border-color:#ff4d4f!important}.exception-dot-clearing[data-v-69c0679e]{background-color:#fffbe6!important;color:#fa8c16!important;border-color:#fa8c16!important}.exception-dot-cleared[data-v-69c0679e]{background-color:#f6ffed!important;color:#52c41a!important;border-color:#52c41a!important}.exception-dot-descendant[data-v-69c0679e]{background-color:#fff2f0!important;color:#ff4d4f!important;border-color:#ff4d4f!important;cursor:default!important}.project-row .ant-tag[data-v-69c0679e]{font-weight:600;font-size:11px;padding:0 6px;line-height:18px;border-radius:3px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);-ms-flex-negative:0;flex-shrink:0}.project-row .ant-tag[color=red][data-v-69c0679e]{-webkit-animation:pulse-red-data-v-69c0679e 2s infinite;animation:pulse-red-data-v-69c0679e 2s infinite}.project-row .ant-tag[color=orange][data-v-69c0679e]{-webkit-animation:pulse-orange-data-v-69c0679e 2s infinite;animation:pulse-orange-data-v-69c0679e 2s infinite}.child-task-row .ant-tag[data-v-69c0679e],.grandchild-task-row .ant-tag[data-v-69c0679e],.greatgrandchild-task-row .ant-tag[data-v-69c0679e],.task-row .ant-tag[data-v-69c0679e]{font-weight:500;border:none!important;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1);-ms-flex-negative:0;flex-shrink:0}@-webkit-keyframes pulse-red-data-v-69c0679e{0%,to{-webkit-box-shadow:0 0 3px rgba(255,77,79,.5);box-shadow:0 0 3px rgba(255,77,79,.5)}50%{-webkit-box-shadow:0 0 8px rgba(255,77,79,.8);box-shadow:0 0 8px rgba(255,77,79,.8)}}@keyframes pulse-red-data-v-69c0679e{0%,to{-webkit-box-shadow:0 0 3px rgba(255,77,79,.5);box-shadow:0 0 3px rgba(255,77,79,.5)}50%{-webkit-box-shadow:0 0 8px rgba(255,77,79,.8);box-shadow:0 0 8px rgba(255,77,79,.8)}}@-webkit-keyframes pulse-orange-data-v-69c0679e{0%,to{-webkit-box-shadow:0 0 3px rgba(250,140,22,.5);box-shadow:0 0 3px rgba(250,140,22,.5)}50%{-webkit-box-shadow:0 0 8px rgba(250,140,22,.8);box-shadow:0 0 8px rgba(250,140,22,.8)}}@keyframes pulse-orange-data-v-69c0679e{0%,to{-webkit-box-shadow:0 0 3px rgba(250,140,22,.5);box-shadow:0 0 3px rgba(250,140,22,.5)}50%{-webkit-box-shadow:0 0 8px rgba(250,140,22,.8);box-shadow:0 0 8px rgba(250,140,22,.8)}}.row-exception-pending[data-v-69c0679e]{background-color:#fff2f0!important}.row-exception-clearing[data-v-69c0679e]{background-color:#fffbe6!important}.row-exception-cleared[data-v-69c0679e]{background-color:#f6ffed!important}.bar-info-outside[data-v-69c0679e]{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;white-space:nowrap;font-size:11px;z-index:6;pointer-events:none}.bar-info-outside .info-name[data-v-69c0679e]{font-weight:600;color:#333;max-width:150px;overflow:hidden;text-overflow:ellipsis}.bar-info-outside .info-time[data-v-69c0679e]{color:#666;font-size:10px}.bar-info-outside .info-status[data-v-69c0679e]{font-size:9px;line-height:14px;padding:0 4px;height:16px;border:none;font-weight:600}