UNPKG

jordium-gantt-vue3

Version:

A modern, flexible, and feature-rich Gantt chart component library for Vue 3

1 lines 122 kB
.confirm-timer-dialog-overlay[data-v-6b662ffc]{position:fixed;z-index:99999;top:0;left:0;right:0;bottom:0;background:#00000040;display:flex;align-items:center;justify-content:center}.confirm-timer-dialog[data-v-6b662ffc]{background:var(--gantt-bg-primary, #fff);border-radius:8px;box-shadow:0 4px 24px #0000001f;padding:24px 32px 18px;min-width:340px;max-width:90vw;display:flex;flex-direction:column;gap:16px}html[data-theme=dark]{background:var(--gantt-bg-primary, #6b6b6b)}.dialog-message[data-v-6b662ffc]{font-size:14px;margin-bottom:4px;line-height:1.7}.dialog-message .task-name-highlight[data-v-6b662ffc]{color:#f44336;font-size:18px;font-weight:700;margin:0 2px;display:inline-block}.dialog-textarea[data-v-6b662ffc]{border:1px solid #dcdfe6;border-radius:4px;font-size:14px;padding:8px 10px;resize:vertical;min-height:60px;margin-bottom:8px}.dialog-actions[data-v-6b662ffc]{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.btn[data-v-6b662ffc]{min-width:96px;padding:10px 0;border:none;border-radius:4px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s;text-align:center;display:inline-flex;align-items:center;justify-content:center}.btn-confirm[data-v-6b662ffc]{background:#4caf50;color:#fff}.btn-confirm[data-v-6b662ffc]:hover{background:#43a047}.btn{padding:10px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid;transition:background-color .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease;display:inline-flex;align-items:center;gap:6px;outline:none}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-default{background:var(--gantt-bg-secondary, #f5f7fa);border-color:var(--gantt-border-medium, #dcdfe6);color:var(--gantt-text-secondary, #8d9095)}.btn-default:hover:not(:disabled){border-color:var(--gantt-border-dark, #c0c4cc);color:var(--gantt-primary, #409eff);background:var(--gantt-bg-hover, #f0f1f3)}:global(html[data-theme=dark]) .btn-default{background:var(--gantt-bg-tertiary, #454545)!important;border-color:var(--gantt-border-color, #dcdfe6)!important;color:var(--gantt-text-white, #ffffff)!important}:global(html[data-theme=dark]) .btn-default:hover:not(:disabled){background:var(--gantt-bg-hover, rgba(255, 255, 255, .1))!important;border-color:var(--gantt-primary, #409eff)!important;color:var(--gantt-primary, #409eff)!important}.btn-primary{background:var(--gantt-primary, #409eff);border-color:var(--gantt-primary, #409eff);color:#fff}.btn-primary:hover:not(:disabled){background:#66b1ff;border-color:#66b1ff}.btn-danger{background:var(--gantt-danger, #f56c6c);border-color:var(--gantt-danger, #f56c6c);color:#fff}.btn-danger:hover:not(:disabled){background:#f78989;border-color:#f78989}.btn-warning{background:var(--gantt-warning, #e6a23c);border-color:var(--gantt-warning, #e6a23c);color:#fff}.btn-warning:hover:not(:disabled){background:#ebb563;border-color:#ebb563}html[data-theme=dark]{background:#1e1e1e!important;color-scheme:dark!important}html[data-theme=dark] body{background:#1e1e1e!important;color:#e5e5e5!important}html[data-theme=light]{background:#fff!important;color-scheme:light!important}html[data-theme=light] body{background:#fff!important;color:#333!important}.gantt-confirm-overlay[data-v-528e8fed]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000040;z-index:9999;display:flex;align-items:center;justify-content:center}.gantt-confirm-dialog[data-v-528e8fed]{background:var(--gantt-bg-primary, #fff);border-radius:8px;box-shadow:0 4px 24px #0000002e;min-width:320px;max-width:90vw;padding:24px 28px 18px;display:flex;flex-direction:column}.gantt-confirm-header[data-v-528e8fed]{margin-bottom:12px}.gantt-confirm-title[data-v-528e8fed]{font-size:18px;font-weight:600;color:var(--gantt-text-primary, #303133);margin:0}.gantt-confirm-content[data-v-528e8fed]{font-size:15px;color:var(--gantt-text-secondary, #606266);margin-bottom:18px}.gantt-confirm-footer[data-v-528e8fed]{display:flex;justify-content:space-between;align-items:center;gap:12px}.gantt-confirm-footer-right[data-v-528e8fed]{display:flex;gap:12px}html[data-theme=dark]{background:var(--gantt-bg-secondary, #f8f9fa)!important;border-color:var(--gantt-border-dark, #999999)!important}.task-context-menu[data-v-12581219]{position:fixed;background:#fff;border-radius:8px;box-shadow:0 2px 12px #00000026;padding:4px 0;width:180px;z-index:10000;-webkit-user-select:none;user-select:none;animation:fadeIn-12581219 .15s ease-out;border:1px solid #e4e7ed}.menu-item[data-v-12581219]{padding:6px 12px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;font-size:14px;transition:all .2s ease;color:#333;gap:10px;height:36px}.menu-item[data-v-12581219]:hover{background-color:#f5f7fa;color:#409eff}.icon-wrapper[data-v-12581219]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.menu-icon[data-v-12581219]{display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;border-radius:2px;overflow:visible}.timer-icon[data-v-12581219],.stop-icon[data-v-12581219]{width:32px;height:32px}.predecessor-icon[data-v-12581219],.successor-icon[data-v-12581219]{width:20px;height:20px}.timer-icon[data-v-12581219]:before{content:"";position:absolute;width:20px;height:20px;border:2px solid currentColor;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box}.timer-icon[data-v-12581219]:after{content:"";position:absolute;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid currentColor;top:50%;left:50%;transform:translate(-30%,-50%)}.predecessor-icon[data-v-12581219]:before{content:"";position:absolute;width:12px;height:2px;background-color:currentColor;top:50%;left:50%;transform:translate(-35%,-50%)}.predecessor-icon[data-v-12581219]:after{content:"";position:absolute;width:5px;height:5px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;top:50%;left:50%;transform:translate(-120%,-50%) rotate(45deg)}.successor-icon[data-v-12581219]:before{content:"";position:absolute;width:12px;height:2px;background-color:currentColor;top:50%;left:50%;transform:translate(-65%,-50%)}.successor-icon[data-v-12581219]:after{content:"";position:absolute;width:5px;height:5px;border-right:2px solid currentColor;border-top:2px solid currentColor;top:50%;left:50%;transform:translate(20%,-50%) rotate(45deg)}.stop-icon[data-v-12581219]:before{content:"";position:absolute;width:20px;height:20px;border:2px solid currentColor;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box}.stop-icon[data-v-12581219]:after{content:"";position:absolute;width:8px;height:8px;background-color:currentColor;border-radius:0;top:50%;left:50%;transform:translate(-50%,-50%)}.menu-arrow[data-v-12581219]{position:absolute;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #fff;transform-origin:center;filter:drop-shadow(0 -1px 2px rgba(0,0,0,.1));z-index:10001;pointer-events:none}@keyframes fadeIn-12581219{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}html[data-theme=dark]{background-color:#2c2c2c;border-color:#444;box-shadow:0 2px 12px #00000059}html[data-theme=dark]{color:#e5e5e5}html[data-theme=dark]{background-color:#3a3a3a;color:#409eff}html[data-theme=dark]{border-bottom-color:#2c2c2c;filter:drop-shadow(0 -1px 2px rgba(0,0,0,.25))}.menu-item-danger[data-v-12581219]{color:#e74c3c}.menu-item-danger[data-v-12581219]:hover{background-color:#faeaea;color:#c0392b}.menu-icon.delete-icon[data-v-12581219]{width:20px;height:20px;display:inline-block;background:none;position:relative}.menu-icon.delete-icon[data-v-12581219]:before{content:"";display:block;width:16px;height:16px;margin:2px auto;background:url('data:image/svg+xml;utf8,<svg fill="%23e74c3c" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m2 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14z" stroke="%23e74c3c" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>') no-repeat center center;background-size:contain}.menu-divider[data-v-12581219]{height:1px;background:#ececec;width:92%;margin:4px 0 4px 4%}[data-v-9c1569ff]:root{--gantt-bg-primary: #ffffff;--gantt-bg-secondary: #f5f7fa;--gantt-bg-tertiary: #f9f9f9;--gantt-bg-hover: rgba(225, 228, 231, .2);--gantt-bg-hover-parent: rgba(245, 247, 250, .8);--gantt-bg-toolbar: #f8f9fa;--gantt-text-primary: #333333;--gantt-text-secondary: #8d9095;--gantt-text-muted: #909399;--gantt-text-white: #ffffff;--gantt-text-header: #333333;--gantt-border-light: #ebeef5;--gantt-border-medium: #dcdfe6;--gantt-border-dark: #c0c4cc;--gantt-border-color: #dcdfe6;--gantt-primary: #409eff;--gantt-primary-light: #ecf5ff;--gantt-success: #67c23a;--gantt-warning: #e6a23c;--gantt-warning-light: #f5dab1;--gantt-danger: #f56c6c;--gantt-danger-light: #fab6b6;--gantt-scrollbar-thumb: #c1c1c1;--gantt-scrollbar-thumb-hover: #a8a8a8}html[data-theme=dark][data-v-9c1569ff]{--gantt-bg-primary: #6b6b6b;--gantt-bg-secondary: #4b4b4b;--gantt-bg-tertiary: #7b7b7b;--gantt-bg-hover: rgba(180, 180, 180, .35);--gantt-bg-hover-parent: rgba(140, 140, 140, .8);--gantt-bg-toolbar: #5b5b5b;--gantt-text-primary: #ffffff;--gantt-text-secondary: #f8f8f8;--gantt-text-muted: #e0e0e0;--gantt-text-white: #ffffff;--gantt-text-parent: #ffffff;--gantt-text-header: #ffffff;--gantt-border-light: #888888;--gantt-border-medium: #666666;--gantt-border-dark: #999999;--gantt-border-color: #808080;--gantt-primary: #3399ff;--gantt-primary-light: #4d6699;--gantt-success: #66cc33;--gantt-warning: #ff9933;--gantt-warning-light: #cc7722;--gantt-danger: #ff4444;--gantt-danger-light: #cc3333;--gantt-scrollbar-thumb: #888888;--gantt-scrollbar-thumb-hover: #999999}.col[data-v-9c1569ff]{display:flex;align-items:center;justify-content:center;height:100%;border-right:1px solid var(--gantt-border-light);box-sizing:border-box;overflow:hidden;flex:1 0 120px;min-width:120px;max-width:120px}.col-name[data-v-9c1569ff]{flex:2 0 300px;min-width:300px;max-width:300px;justify-content:flex-start}.col-pre[data-v-9c1569ff],.col-assignee[data-v-9c1569ff]{flex:1 0 120px;min-width:120px;max-width:120px}.col-date[data-v-9c1569ff]{flex:1.2 0 140px;min-width:140px;max-width:140px}.col-hours[data-v-9c1569ff],.col-progress[data-v-9c1569ff]{flex:1 0 100px;min-width:100px;max-width:100px}.col-taskName[data-v-9c1569ff]{flex:2 0 300px;min-width:300px;max-width:300px;justify-content:flex-start}.col-predecessor[data-v-9c1569ff]{flex:1 0 120px;min-width:120px;max-width:120px}.col-startDate[data-v-9c1569ff],.col-endDate[data-v-9c1569ff]{flex:1.2 0 140px;min-width:140px;max-width:140px}.col-estimatedHours[data-v-9c1569ff],.col-actualHours[data-v-9c1569ff]{flex:1 0 100px;min-width:100px;max-width:100px}.col[data-v-9c1569ff]:last-child{border-right:none}.task-row[data-v-9c1569ff]{display:flex;border-bottom:1px solid var(--gantt-border-light);height:51px;box-sizing:border-box;background:var(--gantt-bg-primary);align-items:center;color:var(--gantt-text-secondary);cursor:pointer;transition:all .3s ease;transform:scale(1);transform-origin:5px center;z-index:1;position:relative}.task-row[data-v-9c1569ff]:hover{background-color:var(--gantt-bg-hover);transform:scale(1.02);box-shadow:0 4px 12px #00000026;z-index:10}.task-row-hovered[data-v-9c1569ff]{background-color:var(--gantt-bg-hover)!important;transform:scale(1.02)!important;box-shadow:0 4px 12px #00000026!important;z-index:10!important}.task-row.parent-task[data-v-9c1569ff]{background:var(--gantt-bg-tertiary);font-weight:600}.task-row.parent-task[data-v-9c1569ff]:hover{background:var(--gantt-bg-hover-parent, var(--gantt-bg-hover));transform:scale(1.02);box-shadow:0 6px 16px #0003;z-index:10}.task-row.parent-task.task-row-hovered[data-v-9c1569ff]{background:var(--gantt-bg-hover-parent, var(--gantt-bg-hover))!important;transform:scale(1.02)!important;box-shadow:0 6px 16px #0003!important;z-index:10!important}.milestone-group-row[data-v-9c1569ff]{border-left:3px solid var(--gantt-danger, #f56c6c);background:linear-gradient(90deg,var(--gantt-bg-tertiary) 0%,var(--gantt-bg-primary) 100%)}.milestone-group-row[data-v-9c1569ff]:hover{background:linear-gradient(90deg,var(--gantt-bg-hover-parent) 0%,var(--gantt-bg-hover) 100%);transform:scale(1.02);box-shadow:0 6px 16px #f56c6c4d,0 2px 8px #0000001a;z-index:10;border-left-color:var(--gantt-danger, #f56c6c);border-left-width:4px}.task-type-story[data-v-9c1569ff]{border-left:3px solid var(--gantt-primary, #409eff)}.task-type-task[data-v-9c1569ff]{border-left:3px solid var(--gantt-warning, #e6a23c)}.task-type-milestone[data-v-9c1569ff]{border-left:3px solid var(--gantt-danger, #f56c6c)}.task-type-story[data-v-9c1569ff]:hover{border-left:5px solid var(--gantt-primary, #409eff)}.task-type-task[data-v-9c1569ff]:hover{border-left:5px solid var(--gantt-warning, #e6a23c)}.task-type-milestone[data-v-9c1569ff]:hover{border-left:5px solid var(--gantt-danger, #f56c6c)}.task-row-hovered.task-type-story[data-v-9c1569ff]{border-left:5px solid var(--gantt-primary, #409eff)!important}.task-row-hovered.task-type-task[data-v-9c1569ff]{border-left:5px solid var(--gantt-warning, #e6a23c)!important}.task-row-hovered.task-type-milestone[data-v-9c1569ff]{border-left:5px solid var(--gantt-danger, #f56c6c)!important}html[data-theme=dark]{border-left-color:var(--gantt-primary, #7db4f0)}html[data-theme=dark]{border-left-color:var(--gantt-warning, #f0b83c)}html[data-theme=dark]{border-left-color:var(--gantt-danger, #f67c7c)}.collapse-btn[data-v-9c1569ff]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:pointer;margin-right:4px;color:var(--gantt-primary);border-radius:2px;transition:background-color .2s ease}.collapse-btn[data-v-9c1569ff]:hover{background-color:var(--gantt-primary-light)}.collapse-btn svg[data-v-9c1569ff]{transition:transform .2s ease}.milestone-spacer[data-v-9c1569ff]{display:inline-flex;width:18px;height:18px;margin-right:4px}.task-name-text[data-v-9c1569ff]{display:inline-block;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.task-name-text.parent-task[data-v-9c1569ff]{font-weight:700;color:var(--gantt-text-parent, var(--gantt-text-primary))}.task-icon[data-v-9c1569ff]{margin-right:4px;color:var(--gantt-text-muted)}.task-icon svg[data-v-9c1569ff]{vertical-align:middle}.assignee-info[data-v-9c1569ff]{display:flex;align-items:center;gap:8px}.avatar[data-v-9c1569ff]{min-width:25px;min-height:25px;border-radius:50%;background:var(--gantt-primary);color:var(--gantt-text-white);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;border:2px solid var(--gantt-border-medium);box-sizing:border-box}.assignee-name[data-v-9c1569ff]{font-size:14px;color:var(--gantt-text-secondary)}.progress-value[data-v-9c1569ff]{font-weight:500;color:var(--gantt-text-secondary)}.progress-success[data-v-9c1569ff]{color:var(--gantt-success)}.progress-warning[data-v-9c1569ff]{color:var(--gantt-warning)}.progress-danger[data-v-9c1569ff]{color:var(--gantt-danger)}.status-badge[data-v-9c1569ff]{display:inline-block;padding:2px 6px;border-radius:2px;font-size:10px;font-weight:700;margin-left:6px;color:#fff}.status-badge.overtime[data-v-9c1569ff]{background-color:transparent;border:1px solid var(--gantt-danger);color:var(--gantt-danger)}.status-badge.overdue[data-v-9c1569ff]{background-color:var(--gantt-danger)}.milestone-group-icon[data-v-9c1569ff]{color:var(--gantt-danger, #f56c6c);fill:var(--gantt-danger, #f56c6c);opacity:.9;filter:drop-shadow(0 0 6px var(--gantt-danger, #f56c6c));animation:milestone-icon-glow-9c1569ff 2.5s ease-in-out infinite alternate}.task-row:hover .milestone-group-icon[data-v-9c1569ff]{filter:drop-shadow(0 0 10px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 16px rgba(245,108,108,.4));animation:milestone-icon-glow-intense-9c1569ff 1.8s ease-in-out infinite alternate}@keyframes milestone-icon-glow-9c1569ff{0%{filter:drop-shadow(0 0 3px var(--gantt-danger, #f56c6c))}to{filter:drop-shadow(0 0 8px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 12px rgba(245,108,108,.3))}}@keyframes milestone-icon-glow-intense-9c1569ff{0%{filter:drop-shadow(0 0 8px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 12px rgba(245,108,108,.3))}to{filter:drop-shadow(0 0 12px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 20px rgba(245,108,108,.5))}}.milestone-item-icon[data-v-9c1569ff]{color:var(--gantt-danger, #f56c6c)}.milestone-empty-col[data-v-9c1569ff]{color:var(--gantt-text-disabled, #c0c4cc);border-right-color:var(--gantt-border-light)!important}.milestone-empty-col[data-v-9c1569ff]:after{content:"-"}html[data-theme=dark]{color:var(--gantt-danger, #f67c7c)}html[data-theme=dark]{color:var(--gantt-danger, #f67c7c);fill:var(--gantt-danger, #f67c7c);filter:drop-shadow(0 0 6px var(--gantt-danger, #f67c7c));animation:milestone-icon-glow-dark-9c1569ff 2.5s ease-in-out infinite alternate}html[data-theme=dark]{filter:drop-shadow(0 0 10px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 16px rgba(246,124,124,.4));animation:milestone-icon-glow-intense-dark-9c1569ff 1.8s ease-in-out infinite alternate}@keyframes milestone-icon-glow-dark-9c1569ff{0%{filter:drop-shadow(0 0 3px var(--gantt-danger, #f67c7c))}to{filter:drop-shadow(0 0 8px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 12px rgba(246,124,124,.3))}}@keyframes milestone-icon-glow-intense-dark-9c1569ff{0%{filter:drop-shadow(0 0 8px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 12px rgba(246,124,124,.3))}to{filter:drop-shadow(0 0 12px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 20px rgba(246,124,124,.5))}}html[data-theme=dark]{color:var(--gantt-text-disabled, #606266);border-right-color:var(--gantt-border-light)!important}html[data-theme=dark]{box-shadow:0 4px 12px #ffffff1a,0 2px 8px #0000004d}html[data-theme=dark]{background-color:var(--gantt-bg-hover)!important;box-shadow:0 4px 12px #ffffff1a,0 2px 8px #0000004d!important}html[data-theme=dark]{box-shadow:0 6px 16px #ffffff26,0 2px 8px #0006}html[data-theme=dark]{background:var(--gantt-bg-hover-parent)!important;box-shadow:0 6px 16px #ffffff26,0 2px 8px #0006!important}html[data-theme=dark]{box-shadow:0 6px 16px #f67c7c66,0 2px 8px #ffffff1a}.timer-badge[data-v-9c1569ff]{display:inline-flex;align-items:center;font-size:12px;font-weight:700;margin-left:8px;padding:1px 6px;border-radius:10px;background-color:#0000000d;color:var(--text-color-secondary)}.timer-badge.timer-active[data-v-9c1569ff]{color:#e6a23c}.timer-dot[data-v-9c1569ff]{width:6px;height:6px;border-radius:50%;background-color:#67c23a;margin-right:4px;animation:pulse-9c1569ff 1s infinite}@keyframes pulse-9c1569ff{0%{transform:scale(.8);opacity:.8}50%{transform:scale(1.2);opacity:1}to{transform:scale(.8);opacity:.8}}html[data-theme=dark]{background-color:#ffffff1a;color:var(--text-color-secondary-dark)}html[data-theme=dark]{color:#e6c07b}html[data-theme=dark]{background-color:#85ce61}[data-v-6afc1aa7]:root{--gantt-bg-primary: #ffffff;--gantt-bg-secondary: #f5f7fa;--gantt-bg-tertiary: #f9f9f9;--gantt-bg-hover: rgba(225, 228, 231, .2);--gantt-bg-hover-parent: rgba(245, 247, 250, .8);--gantt-bg-toolbar: #f8f9fa;--gantt-text-primary: #333333;--gantt-text-secondary: #8d9095;--gantt-text-muted: #909399;--gantt-text-white: #ffffff;--gantt-text-header: #333333;--gantt-border-light: #ebeef5;--gantt-border-medium: #dcdfe6;--gantt-border-dark: #c0c4cc;--gantt-border-color: #dcdfe6;--gantt-primary: #409eff;--gantt-primary-light: #ecf5ff;--gantt-success: #67c23a;--gantt-warning: #e6a23c;--gantt-warning-light: #f5dab1;--gantt-danger: #f56c6c;--gantt-danger-light: #fab6b6;--gantt-scrollbar-thumb: #c1c1c1;--gantt-scrollbar-thumb-hover: #a8a8a8}html[data-theme=dark][data-v-6afc1aa7]{--gantt-bg-primary: #6b6b6b;--gantt-bg-secondary: #4b4b4b;--gantt-bg-tertiary: #7b7b7b;--gantt-bg-hover: rgba(180, 180, 180, .35);--gantt-bg-hover-parent: rgba(140, 140, 140, .8);--gantt-bg-toolbar: #5b5b5b;--gantt-text-primary: #ffffff;--gantt-text-secondary: #f8f8f8;--gantt-text-muted: #e0e0e0;--gantt-text-white: #ffffff;--gantt-text-parent: #ffffff;--gantt-text-header: #ffffff;--gantt-border-light: #888888;--gantt-border-medium: #666666;--gantt-border-dark: #999999;--gantt-border-color: #808080;--gantt-primary: #3399ff;--gantt-primary-light: #4d6699;--gantt-success: #66cc33;--gantt-warning: #ff9933;--gantt-warning-light: #cc7722;--gantt-danger: #ff4444;--gantt-danger-light: #cc3333;--gantt-scrollbar-thumb: #888888;--gantt-scrollbar-thumb-hover: #999999}.col[data-v-6afc1aa7]{display:flex;align-items:center;justify-content:center;height:100%;border-right:1px solid var(--gantt-border-light);box-sizing:border-box;overflow:hidden;flex:1 0 120px;min-width:120px;max-width:120px}.col-name[data-v-6afc1aa7]{flex:2 0 300px;min-width:300px;max-width:300px;justify-content:flex-start}.col-pre[data-v-6afc1aa7],.col-assignee[data-v-6afc1aa7]{flex:1 0 120px;min-width:120px;max-width:120px}.col-date[data-v-6afc1aa7]{flex:1.2 0 140px;min-width:140px;max-width:140px}.col-hours[data-v-6afc1aa7],.col-progress[data-v-6afc1aa7]{flex:1 0 100px;min-width:100px;max-width:100px}.col-taskName[data-v-6afc1aa7]{flex:2 0 300px;min-width:300px;max-width:300px;justify-content:flex-start}.col-predecessor[data-v-6afc1aa7]{flex:1 0 120px;min-width:120px;max-width:120px}.col-startDate[data-v-6afc1aa7],.col-endDate[data-v-6afc1aa7]{flex:1.2 0 140px;min-width:140px;max-width:140px}.col-estimatedHours[data-v-6afc1aa7],.col-actualHours[data-v-6afc1aa7]{flex:1 0 100px;min-width:100px;max-width:100px}.col[data-v-6afc1aa7]:last-child{border-right:none}.task-list[data-v-6afc1aa7]{width:100%;height:100%;font-size:15px;color:var(--gantt-text-primary);background:var(--gantt-bg-primary);display:flex;flex-direction:column;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--gantt-scrollbar-thumb) transparent}.task-list-header[data-v-6afc1aa7]{display:flex;background:var(--gantt-bg-secondary);border-bottom:1px solid var(--gantt-border-medium);border-left:3px solid transparent;font-weight:700;padding:0;height:80px;align-items:center;width:max-content;flex-shrink:0;position:sticky;top:0;z-index:10}.task-list-header .col[data-v-6afc1aa7]{justify-content:center;font-weight:700;background:var(--gantt-bg-secondary);color:var(--gantt-text-header);border-right-color:var(--gantt-border-medium);padding:0 10px}.task-list-body[data-v-6afc1aa7]{width:max-content;background:var(--gantt-bg-primary);flex:1;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--gantt-scrollbar-thumb) transparent}.task-list-body-spacer[data-v-6afc1aa7]{width:100%}.task-list-body[data-v-6afc1aa7]::-webkit-scrollbar{width:8px;height:8px}.task-list-body[data-v-6afc1aa7]::-webkit-scrollbar-track{background:transparent}.task-list-body[data-v-6afc1aa7]::-webkit-scrollbar-thumb{background-color:var(--gantt-scrollbar-thumb);border-radius:4px;border:2px solid transparent;background-clip:content-box}.task-list-body[data-v-6afc1aa7]::-webkit-scrollbar-thumb:hover{background-color:var(--gantt-scrollbar-thumb-hover)}.task-list-body[data-v-6afc1aa7]::-webkit-scrollbar-corner{background:transparent}.task-bar[data-v-b121c6c0]{position:absolute;border-radius:4px;-webkit-user-select:none;user-select:none;box-shadow:0 2px 8px #00000026;transition:box-shadow .2s,transform .3s,filter .3s;z-index:100;border:2px solid;overflow:visible}.task-bar[data-v-b121c6c0]:hover{box-shadow:0 4px 12px #0003;cursor:pointer}.task-bar.completed[data-v-b121c6c0]{cursor:pointer!important}.task-bar.completed[data-v-b121c6c0]:hover{box-shadow:0 2px 8px #00000026;cursor:pointer}.task-bar.dragging[data-v-b121c6c0]{opacity:.8;z-index:1000}.task-bar.resizing[data-v-b121c6c0]{z-index:1000}.task-bar.dimmed[data-v-b121c6c0]{opacity:.35!important;filter:grayscale(.3)!important;transition:all .3s ease!important}.task-bar.highlighted[data-v-b121c6c0]{z-index:1002!important;box-shadow:0 8px 24px #409eff80,0 6px 16px #0000004d!important;transform:translateY(-5px) scale(1.05)!important;transition:all .3s ease!important;cursor:grab!important}.task-bar.highlighted .task-bar-content[data-v-b121c6c0]{font-weight:700!important}.task-bar.primary-highlight[data-v-b121c6c0]{z-index:1003!important;box-shadow:0 12px 32px #409eff99,0 8px 20px #00000059!important;transform:translateY(-8px) scale(1.08)!important;transition:all .3s ease!important;cursor:grab!important}.task-bar.primary-highlight .task-bar-content[data-v-b121c6c0]{font-weight:700!important}.task-bar.parent-task[data-v-b121c6c0]{position:relative;border-radius:0;margin-bottom:20px;height:10px!important;border:none;background:#409eff!important;box-shadow:none;top:50%!important;transform:translateY(-50%);cursor:pointer!important;overflow:visible}.task-bar.parent-task.highlighted[data-v-b121c6c0]{box-shadow:0 8px 24px #409eff80,0 6px 16px #0000004d!important;filter:brightness(1.2) drop-shadow(0 0 8px rgba(64,158,255,.4))!important;transform:translateY(-50%) translateY(-5px) scale(1.05)!important}.task-bar.parent-task.primary-highlight[data-v-b121c6c0]{box-shadow:0 12px 32px #409eff99,0 8px 20px #00000059!important;filter:brightness(1.25) drop-shadow(0 0 12px rgba(64,158,255,.6))!important;transform:translateY(-50%) translateY(-8px) scale(1.08)!important}.task-bar.parent-task .parent-label[data-v-b121c6c0]{position:absolute;top:-8px;left:50%;transform:translate(-50%);background:#409eff;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;z-index:20}.task-bar.parent-task[data-v-b121c6c0]:before{content:"";position:absolute;top:10px;left:0;width:0;height:0;border-right:6px solid transparent;border-top:10px solid #409eff;z-index:15}.task-bar.parent-task[data-v-b121c6c0]:after{content:"";position:absolute;top:10px;right:0;width:0;height:0;border-left:6px solid transparent;border-top:10px solid #409eff;z-index:15}.progress-bar[data-v-b121c6c0]{position:absolute;top:0;left:0;height:100%;opacity:.3;transition:width .3s ease}.task-bar-content[data-v-b121c6c0]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:0 8px;font-size:12px;font-weight:500;text-align:center;overflow:visible;position:relative;z-index:1}.task-avatar[data-v-b121c6c0]{position:absolute;left:calc(var(--handle-width, 5px) + 3px);top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;overflow:hidden;background:#f0f0f0;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 3px #0003;z-index:15;pointer-events:none;flex-shrink:0;display:flex;align-items:center;justify-content:center}.task-avatar img[data-v-b121c6c0]{width:100%;height:100%;object-fit:cover;display:block}.task-avatar.avatar-default[data-v-b121c6c0]{background:var(--gantt-bg-tertiary, #e0e0e0);color:var(--gantt-text-tertiary, #9e9e9e)}.task-avatar .avatar-text[data-v-b121c6c0]{font-size:11px;font-weight:600;color:var(--gantt-text-white, #ffffff);background:var(--gantt-primary-color, #409eff);width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%}.task-avatar .avatar-icon[data-v-b121c6c0]{width:14px;height:14px;color:var(--gantt-text-tertiary, #9e9e9e)}.task-avatar.avatar-outside[data-v-b121c6c0]{left:-12px;z-index:20;border-width:2px;box-shadow:0 2px 6px #0000004d}.task-bar-content[data-v-b121c6c0]:has(.task-avatar){padding-left:36px}.task-bar-content[data-v-b121c6c0]:has(.task-avatar.avatar-outside){padding-left:8px}.task-name[data-v-b121c6c0]{white-space:nowrap;overflow:visible;line-height:1.2;font-size:12px;font-weight:700;z-index:10}.task-progress[data-v-b121c6c0]{opacity:.9;font-size:11px;font-weight:700;z-index:10}.resize-handle[data-v-b121c6c0]{position:absolute;top:0;height:100%;cursor:ew-resize;background:#0000001a;border-radius:2px;transition:all .2s;z-index:2}.resize-handle[data-v-b121c6c0]:hover{background:#00000040;transform:scaleX(1.2)}.resize-handle-left[data-v-b121c6c0]{left:0}.resize-handle-right[data-v-b121c6c0]{right:0}.task-bar.overflow-effect .resize-handle[data-v-b121c6c0]{z-index:20;background:#00000026}.task-bar.overflow-effect .resize-handle[data-v-b121c6c0]:hover{background:#0000004d;transform:scaleX(1.3)}.task-bar.overflow-effect .resize-handle-left[data-v-b121c6c0]{left:0}.task-bar.overflow-effect .resize-handle-right[data-v-b121c6c0]{right:0}.bubble-indicator[data-v-b121c6c0]{position:absolute;top:50%;width:8px;height:16px;z-index:15;cursor:pointer;border:2px solid;transform:translateY(-50%);box-shadow:0 2px 8px #00000026,0 1px 3px #0000004d;transition:all .3s cubic-bezier(.4,0,.2,1)}.bubble-left[data-v-b121c6c0]{border-radius:0 8px 8px 0;border-left:none;transform:translateY(-50%)}.bubble-right[data-v-b121c6c0]{border-radius:8px 0 0 8px;border-right:none;transform:translateY(-50%)}.bubble-indicator[data-v-b121c6c0]:hover{transform:translateY(-50%) scale(1.2);box-shadow:0 4px 12px #0003,0 2px 6px #0006}.bubble-left[data-v-b121c6c0]:hover,.bubble-right[data-v-b121c6c0]:hover{transform:translateY(-50%) scale(1.2)}@keyframes morphToLeftSemiCircle-b121c6c0{0%{width:60px;height:30px;border-radius:4px 0 0 4px;border-right:2px solid;border-left:none;opacity:.8;transform:translateY(-50%)}30%{width:30px;height:28px;border-radius:6px 0 0 6px;opacity:.9;transform:translateY(-50%)}70%{width:12px;height:20px;border-radius:0 10px 10px 0;border-right:2px solid;border-left:none;opacity:1;transform:translateY(-50%)}to{width:8px;height:16px;border-radius:0 8px 8px 0;border-right:2px solid;border-left:none;opacity:1;transform:translateY(-50%)}}@keyframes morphToRightSemiCircle-b121c6c0{0%{width:60px;height:30px;border-radius:0 4px 4px 0;border-left:2px solid;border-right:none;opacity:.8;transform:translateY(-50%)}30%{width:30px;height:28px;border-radius:0 6px 6px 0;opacity:.9;transform:translateY(-50%)}70%{width:12px;height:20px;border-radius:10px 0 0 10px;border-left:2px solid;border-right:none;opacity:1;transform:translateY(-50%)}to{width:8px;height:16px;border-radius:8px 0 0 8px;border-left:2px solid;border-right:none;opacity:1;transform:translateY(-50%)}}@keyframes semiCirclePulse-b121c6c0{0%{opacity:.8;transform:translateY(-50%) scale(1);box-shadow:0 2px 8px #00000026}50%{opacity:1;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #00000040}to{opacity:.8;transform:translateY(-50%) scale(1);box-shadow:0 2px 8px #00000026}}@keyframes leftSemiCirclePulse-b121c6c0{0%{opacity:.8;transform:translateY(-50%) scale(1);box-shadow:0 2px 8px #00000026}50%{opacity:1;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #00000040}to{opacity:.8;transform:translateY(-50%) scale(1);box-shadow:0 2px 8px #00000026}}@keyframes rightSemiCirclePulse-b121c6c0{0%{opacity:.8;transform:translateY(-50%) scale(1);box-shadow:0 2px 8px #00000026}50%{opacity:1;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #00000040}to{opacity:.8;transform:translateY(-50%) scale(1);box-shadow:0 2px 8px #00000026}}.bubble-animation-morphToSemiCircle[data-v-b121c6c0]{animation:semiCirclePulse-b121c6c0 2s ease-in-out infinite}.bubble-left.bubble-animation-morphToSemiCircle[data-v-b121c6c0]{animation:morphToLeftSemiCircle-b121c6c0 .8s cubic-bezier(.25,.46,.45,.94) forwards,leftSemiCirclePulse-b121c6c0 2s ease-in-out .8s infinite}.bubble-right.bubble-animation-morphToSemiCircle[data-v-b121c6c0]{animation:morphToRightSemiCircle-b121c6c0 .8s cubic-bezier(.25,.46,.45,.94) forwards,rightSemiCirclePulse-b121c6c0 2s ease-in-out .8s infinite}.task-tooltip[data-v-b121c6c0]{position:fixed;background:#000000e6;color:#fff;padding:12px;border-radius:8px;font-size:12px;z-index:10000;max-width:250px;box-shadow:0 8px 24px #0006,0 4px 12px #0000004d;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.tooltip-title[data-v-b121c6c0]{font-weight:700;font-size:13px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.2);color:#fff}.tooltip-content[data-v-b121c6c0]{display:flex;flex-direction:column;gap:4px}.tooltip-row[data-v-b121c6c0]{display:flex;justify-content:space-between;align-items:center;min-height:18px}.tooltip-label[data-v-b121c6c0]{opacity:.8;min-width:60px;color:#e5e5e5}.tooltip-value[data-v-b121c6c0]{font-weight:600;text-align:right;color:#fff}.drag-tooltip[data-v-b121c6c0]{position:fixed;background:#007bfff2;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:500;z-index:10001;box-shadow:0 2px 12px #007bff66;pointer-events:none;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drag-tooltip .tooltip-row[data-v-b121c6c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.drag-tooltip .tooltip-row[data-v-b121c6c0]:last-child{margin-bottom:0}.drag-tooltip .tooltip-label[data-v-b121c6c0]{opacity:.9;min-width:55px;font-size:11px}.drag-tooltip .tooltip-value[data-v-b121c6c0]{font-weight:600;text-align:right;font-size:11px;margin-left:8px}.sticky-text[data-v-b121c6c0]{position:absolute;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.2;z-index:10}html[data-theme=dark]{border-color:#111827!important;box-shadow:0 4px 12px #000000b3,0 2px 4px #0000004d!important}html[data-theme=dark]{box-shadow:0 6px 20px #000c,0 4px 8px #0006!important;transform:translateY(-2px);transition:all .2s ease}html[data-theme=dark]{background:#070a0ffa!important;color:#f9fafb!important;box-shadow:0 4px 12px #0009!important}html[data-theme=dark]{background:linear-gradient(135deg,#1e40af,#1e3a8a)!important;border-color:#1e3a8a!important}html[data-theme=dark]{background:linear-gradient(135deg,#c2410c,#9a3412)!important;border-color:#9a3412!important}html[data-theme=dark]{background:linear-gradient(135deg,#14532d,#16a34a)!important;border-color:#14532d!important}html[data-theme=dark]{background:linear-gradient(135deg,#991b1b,#dc2626)!important;border-color:#991b1b!important}html[data-theme=dark]{background:linear-gradient(135deg,#581c87,#7c3aed)!important;border-color:#581c87!important}html[data-theme=dark]{background:#fff3!important}html[data-theme=dark]{background:#fffc!important}html[data-theme=dark]{background:#ffffff1a!important}html[data-theme=dark]{background:#ffffff4d!important}.task-bar.week-view.short-task-bar[data-v-b121c6c0]{position:relative;overflow:visible}.task-bar.overflow-effect .task-bar-content[data-v-b121c6c0]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:0 8px;font-size:12px;font-weight:500;text-align:center;overflow:visible;position:relative;z-index:10;pointer-events:auto}.task-bar.overflow-effect .task-name[data-v-b121c6c0]{white-space:nowrap;overflow:visible;line-height:1.2;font-size:12px;font-weight:700;z-index:15;pointer-events:none;min-width:max-content}.task-bar.overflow-effect .task-progress[data-v-b121c6c0]{opacity:.9;font-size:11px;font-weight:700;z-index:16;pointer-events:none;padding:1px 3px;border-radius:2px}.task-bar.week-view[data-v-b121c6c0]{min-width:4px;border-width:1px;border-radius:2px}html[data-theme=dark]{background:#ffffff26}html[data-theme=dark]{background:#ffffff4d}html[data-theme=dark]{background:#000000e6;color:#fff}html[data-theme=dark]{border-color:var(--gantt-border-light, #555555)}html[data-theme=dark]{border-color:#ffffff4d;box-shadow:0 1px 3px #00000080}html[data-theme=dark]{background:var(--gantt-bg-tertiary, #4a5568);color:var(--gantt-text-tertiary, #718096)}html[data-theme=dark]{color:var(--gantt-text-tertiary, #718096)}html[data-theme=dark]{border-color:#fff6;box-shadow:0 2px 8px #000000b3}[data-v-0427278d]:root{--gantt-bg-primary: #ffffff;--gantt-bg-secondary: #f5f7fa;--gantt-bg-tertiary: #f9f9f9;--gantt-bg-hover: rgba(225, 228, 231, .2);--gantt-bg-hover-parent: rgba(245, 247, 250, .8);--gantt-bg-toolbar: #f8f9fa;--gantt-text-primary: #333333;--gantt-text-secondary: #8d9095;--gantt-text-muted: #909399;--gantt-text-white: #ffffff;--gantt-text-header: #333333;--gantt-border-light: #ebeef5;--gantt-border-medium: #dcdfe6;--gantt-border-dark: #c0c4cc;--gantt-border-color: #dcdfe6;--gantt-primary: #409eff;--gantt-primary-light: #ecf5ff;--gantt-success: #67c23a;--gantt-warning: #e6a23c;--gantt-warning-light: #f5dab1;--gantt-danger: #f56c6c;--gantt-danger-light: #fab6b6;--gantt-scrollbar-thumb: #c1c1c1;--gantt-scrollbar-thumb-hover: #a8a8a8}html[data-theme=dark][data-v-0427278d]{--gantt-bg-primary: #6b6b6b;--gantt-bg-secondary: #4b4b4b;--gantt-bg-tertiary: #7b7b7b;--gantt-bg-hover: rgba(180, 180, 180, .35);--gantt-bg-hover-parent: rgba(140, 140, 140, .8);--gantt-bg-toolbar: #5b5b5b;--gantt-text-primary: #ffffff;--gantt-text-secondary: #f8f8f8;--gantt-text-muted: #e0e0e0;--gantt-text-white: #ffffff;--gantt-text-parent: #ffffff;--gantt-text-header: #ffffff;--gantt-border-light: #888888;--gantt-border-medium: #666666;--gantt-border-dark: #999999;--gantt-border-color: #808080;--gantt-primary: #3399ff;--gantt-primary-light: #4d6699;--gantt-success: #66cc33;--gantt-warning: #ff9933;--gantt-warning-light: #cc7722;--gantt-danger: #ff4444;--gantt-danger-light: #cc3333;--gantt-scrollbar-thumb: #888888;--gantt-scrollbar-thumb-hover: #999999}.milestone[data-v-0427278d]{position:absolute;z-index:120;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none}.milestone.dimmed[data-v-0427278d]{opacity:.35!important;filter:grayscale(.3)!important;transition:all .3s ease!important}.milestone svg[data-v-0427278d]{filter:drop-shadow(0 0 8px var(--gantt-danger, #f56c6c));animation:milestone-glow-0427278d 2s ease-in-out infinite alternate}@keyframes milestone-glow-0427278d{0%{filter:drop-shadow(0 0 4px var(--gantt-danger, #f56c6c))}to{filter:drop-shadow(0 0 12px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 20px rgba(245,108,108,.3))}}.milestone:hover svg[data-v-0427278d]{filter:drop-shadow(0 0 16px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 24px rgba(245,108,108,.4));animation:milestone-glow-intense-0427278d 1.5s ease-in-out infinite alternate}@keyframes milestone-glow-intense-0427278d{0%{filter:drop-shadow(0 0 12px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 20px rgba(245,108,108,.4))}to{filter:drop-shadow(0 0 20px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 32px rgba(245,108,108,.6))}}.milestone-label[data-v-0427278d]{font-size:12px;font-weight:700;color:var(--gantt-text-primary, #222);white-space:nowrap;z-index:10}.milestone-label-right[data-v-0427278d]{margin-left:5px;align-self:center}.milestone-label[style*="position: absolute"][data-v-0427278d]{background:#ffffffe6;padding:2px 6px;border-radius:4px;box-shadow:0 2px 4px #0000001a;border:1px solid rgba(245,108,108,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rocket-emoji[data-v-0427278d]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;transform:rotate(-45deg);transition:transform .3s ease}.milestone:hover .rocket-emoji[data-v-0427278d]{transform:rotate(-45deg) scale(1.1)}html[data-theme=dark]{color:var(--gantt-text-white, #ffffff)!important}html[data-theme=dark]{background:#1e1e1ee6!important;border-color:#f67c7c4d!important;color:#fff!important}html[data-theme=dark]{filter:drop-shadow(0 0 8px var(--gantt-danger, #f67c7c));animation:milestone-glow-dark-0427278d 2s ease-in-out infinite alternate}html[data-theme=dark]{filter:drop-shadow(0 0 16px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 24px rgba(246,124,124,.4));animation:milestone-glow-intense-dark-0427278d 1.5s ease-in-out infinite alternate}@keyframes milestone-glow-dark-0427278d{0%{filter:drop-shadow(0 0 4px var(--gantt-danger, #f67c7c))}to{filter:drop-shadow(0 0 12px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 20px rgba(246,124,124,.3))}}@keyframes milestone-glow-intense-dark-0427278d{0%{filter:drop-shadow(0 0 12px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 20px rgba(246,124,124,.4))}to{filter:drop-shadow(0 0 20px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 32px rgba(246,124,124,.6))}}.milestone.dragging[data-v-0427278d]{z-index:1000;opacity:.8;transform:scale(1.1);cursor:grabbing}.milestone.dragging svg[data-v-0427278d]{filter:drop-shadow(0 0 20px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 32px rgba(245,108,108,.6));animation:none}html[data-theme=dark]{filter:drop-shadow(0 0 20px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 32px rgba(246,124,124,.6))}.milestone-sticky svg[data-v-0427278d]{z-index:150;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.milestone-sticky-left svg[data-v-0427278d]{animation:milestone-glow-sticky-0427278d 3s ease-in-out infinite alternate}.milestone-sticky-right svg[data-v-0427278d]{animation:milestone-glow-sticky-0427278d 3s ease-in-out infinite alternate}.milestone-sticky-left svg[style*=clip-path][data-v-0427278d],.milestone-sticky-right svg[style*=clip-path][data-v-0427278d]{animation:none;filter:none}@keyframes milestone-glow-sticky-0427278d{0%{filter:drop-shadow(0 0 6px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 12px rgba(245,108,108,.4))}to{filter:drop-shadow(0 0 10px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 20px rgba(245,108,108,.6))}}html[data-theme=dark]{animation:milestone-glow-sticky-dark-0427278d 3s ease-in-out infinite alternate}html[data-theme=dark]{animation:none;filter:none}@keyframes milestone-glow-sticky-dark-0427278d{0%{filter:drop-shadow(0 0 6px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 12px rgba(246,124,124,.4))}to{filter:drop-shadow(0 0 10px var(--gantt-danger, #f67c7c)) drop-shadow(0 0 20px rgba(246,124,124,.6))}}.milestone-sticky svg[style*=clip-path][data-v-0427278d]{transition:clip-path .4s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),filter .3s ease-in-out}.milestone-sticky-left svg[style*=clip-path][data-v-0427278d]{transform-origin:100% 50%}.milestone-sticky-right svg[style*=clip-path][data-v-0427278d]{transform-origin:0% 50%}.milestone-sticky svg[style*=clip-path][data-v-0427278d]:hover{transform:scale(1.15);filter:drop-shadow(0 0 18px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 30px rgba(245,108,108,.8))}.milestone-sticky.milestone-pushing svg[data-v-0427278d]{transform:scale(1.1);filter:drop-shadow(0 0 15px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 25px rgba(245,108,108,.7))}.milestone-sticky-left svg[data-v-0427278d],.milestone-sticky-right svg[data-v-0427278d]{animation:milestone-glow-sticky-enhanced-0427278d 2s ease-in-out infinite alternate}@keyframes milestone-glow-sticky-enhanced-0427278d{0%{filter:drop-shadow(0 0 8px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 16px rgba(245,108,108,.5))}to{filter:drop-shadow(0 0 12px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 24px rgba(245,108,108,.7)) drop-shadow(0 0 32px rgba(245,108,108,.3))}}.milestone-tooltip[data-v-0427278d]{position:fixed;background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;z-index:10000;max-width:300px;box-shadow:0 4px 12px #0000004d,0 2px 6px #0003;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.milestone-tooltip .tooltip-content[data-v-0427278d]{font-weight:600;color:#fff;line-height:1.4}html[data-theme=dark]{background:#1e1e1ef2!important;color:#fff!important}.milestone-pushing[data-v-0427278d]{animation:milestone-pushing-pulse-0427278d .6s ease-in-out}@keyframes milestone-pushing-pulse-0427278d{0%{transform:scale(1)}50%{transform:scale(1.1);filter:drop-shadow(0 0 12px var(--gantt-danger, #f56c6c)) drop-shadow(0 0 20px rgba(245,108,108,.6))}to{transform:scale(1)}}.milestone-pushed-out[data-v-0427278d]{opacity:0;transform:scale(.6) translateY(-10px);transition:all .4s cubic-bezier(.4,0,.2,1);pointer-events:none}.milestone-sticky svg[data-v-0427278d]:hover{transform:scale(1.05);cursor:pointer}.milestone-sticky svg[data-v-0427278d]:active{transform:scale(.95)}.gantt-links-canvas[data-v-31545560]{display:block;background:transparent;opacity:1}[data-v-3d04d9ac]:root{--gantt-bg-primary: #ffffff;--gantt-bg-secondary: #f5f7fa;--gantt-bg-tertiary: #f9f9f9;--gantt-bg-hover: rgba(225, 228, 231, .2);--gantt-bg-hover-parent: rgba(245, 247, 250, .8);--gantt-bg-toolbar: #f8f9fa;--gantt-text-primary: #333333;--gantt-text-secondary: #8d9095;--gantt-text-muted: #909399;--gantt-text-white: #ffffff;--gantt-text-header: #333333;--gantt-border-light: #ebeef5;--gantt-border-medium: #dcdfe6;--gantt-border-dark: #c0c4cc;--gantt-border-color: #dcdfe6;--gantt-primary: #409eff;--gantt-primary-light: #ecf5ff;--gantt-success: #67c23a;--gantt-warning: #e6a23c;--gantt-warning-light: #f5dab1;--gantt-danger: #f56c6c;--gantt-danger-light: #fab6b6;--gantt-scrollbar-thumb: #c1c1c1;--gantt-scrollbar-thumb-hover: #a8a8a8}html[data-theme=dark][data-v-3d04d9ac]{--gantt-bg-primary: #6b6b6b;--gantt-bg-secondary: #4b4b4b;--gantt-bg-tertiary: #7b7b7b;--gantt-bg-hover: rgba(180, 180, 180, .35);--gantt-bg-hover-parent: rgba(140, 140, 140, .8);--gantt-bg-toolbar: #5b5b5b;--gantt-text-primary: #ffffff;--gantt-text-secondary: #f8f8f8;--gantt-text-muted: #e0e0e0;--gantt-text-white: #ffffff;--gantt-text-parent: #ffffff;--gantt-text-header: #ffffff;--gantt-border-light: #888888;--gantt-border-medium: #666666;--gantt-border-dark: #999999;--gantt-border-color: #808080;--gantt-primary: #3399ff;--gantt-primary-light: #4d6699;--gantt-success: #66cc33;--gantt-warning: #ff9933;--gantt-warning-light: #cc7722;--gantt-danger: #ff4444;--gantt-danger-light: #cc3333;--gantt-scrollbar-thumb: #888888;--gantt-scrollbar-thumb-hover: #999999}.timeline[data-v-3d04d9ac]{height:100%;display:flex;flex-direction:column;background:var(--gantt-bg-primary, #ffffff);overflow-x:auto;overflow-y:hidden;width:100%;cursor:grab;transition:background-color .3s ease;position:relative;scrollbar-width:thin;scrollbar-color:var(--gantt-scrollbar-thumb) transparent}.timeline[data-v-3d04d9ac]:active{cursor:grabbing}.timeline[data-v-3d04d9ac]::-webkit-scrollbar{width:8px;height:8px}.timeline[data-v-3d04d9ac]::-webkit-scrollbar-track{background:transparent}.timeline[data-v-3d04d9ac]::-webkit-scrollbar-thumb{background-color:var(--gantt-scrollbar-thumb);border-radius:4px;border:2px solid transparent;background-clip:content-box}.timeline[data-v-3d04d9ac]::-webkit-scrollbar-thumb:hover{background-color:var(--gantt-scrollbar-thumb-hover)}.timeline[data-v-3d04d9ac]::-webkit-scrollbar-corner{background:transparent}.timeline-header[data-v-3d04d9ac]{height:80px;background:var(--gantt-bg-secondary);width:fit-content;display:flex;flex-direction:column}.timeline-header-row[data-v-3d04d9ac]{display:flex;height:50%;border-bottom:1px solid var(--gantt-border-medium);min-width:fit-content}.timeline-header-row[data-v-3d04d9ac]:last-child{border-bottom:none}.year-month-row[data-v-3d04d9ac]{align-items:center;position:relative}.days-row[data-v-3d04d9ac]{align-items:center}.timeline-month[data-v-3d04d9ac]{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--gantt-border-medium);box-sizing:border-box;height:100%;min-width:60px}.timeline-month[data-v-3d04d9ac]:last-child{border-right:none}.year-month-label[data-v-3d04d9ac]{font-size:14px;font-weight:600;color:var(--gantt-text-header);text-align:center}.timeline-month-days[data-v-3d04d9ac]{display:flex;height:100%;border-right:1px solid var(--gantt-border-medium);box-sizing:border-box;min-width:120px}.timeline-month-days[data-v-3d04d9ac]:last-child{border-right:none}.timeline-day[data-v-3d04d9ac]{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--gantt-border-light);width:30px;box-sizing:border-box;border-bottom:1px solid var(--gantt-border-medium);transition:background-color .2s}.timeline-day[data-v-3d04d9ac]:last-child{border-right:none}.timeline-day.today[data-v-3d04d9ac]{background-color:var(--gantt-primary);color:var(--gantt-text-white)}.timeline-day.today .day-label[data-v-3d04d9ac]{color:var(--gantt-text-white);font-weight:600}.timeline-day.weekend[data-v-3d04d9ac]{background-color:var(--gantt-bg-secondary);opacity:.6}.timeline-day.weekend .day-label[data-v-3d04d9ac]{color:var(--gantt-border-dark)}.day-label[data-v-3d04d9ac]{font-size:12px;color:var(--gantt-text-header);text-align:center}.timeline-month-weeks[data-v-3d04d9ac]{display:flex;height:100%;border-right:1px solid var(--gantt-border-medium);box-sizing:border-box;min-width:60px}.timeline-month-weeks[data-v-3d04d9ac]:last-child{border-right:none}.timeline-week[data-v-3d04d9ac]{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--gantt-border-light);width:60px;box-sizing:border-box;border-bottom:1px solid var(--gantt-border-medium);transition:background-color .2s;position:relative}.timeline-week[data-v-3d04d9ac]:last-child{border-right:none}.timeline-week.today[data-v-3d04d9ac]{background-color:var(--gantt-primary);color:var(--gantt-text-white)}.timeline-week.today .week-label[data-v-3d04d9ac]{color:var(--gantt-text-white);font-weight:600}.week-label[data-v-3d04d9ac]{font-size:12px;color:var(--gantt-text-header);text-align:center;margin-bottom:2px}.week-sub-days[data-v-3d04d9ac]{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none}.month-first-flag[data-v-3d04d9ac]{position:absolute;bottom:-40px;z-index:1;pointer-events:none;display:flex;flex-direction:column;align-items:center}.flag-content[data-v-3d04d9ac]{background-color:var(--gantt-primary, #409eff);color:#fff;font-size:10px;font-weight:600;padding:1px 4px;border-radius:2px;text-align:center;min-width:12px;box-shadow:0 1px 3px #0003;order:1}.flag-pole[data-v-3d04d9ac]{width:1px;height:50px;background-color:var(--gantt-primary, #409eff);order:2}html[data-theme=dark]{background-color:var(--gantt-primary-light, #66b1ff)}html[data-theme=dark]{background-color:var(--gantt-primary-light, #66b1ff);box-shadow:0 1px 3px #0006}.month-week-columns[data-v-3d04d9ac]{display:flex;position:relative}.week-column[data-v-3d04d9ac]{position:relative;border-right:1px solid var(--gantt-border-light, #e4e7ed);box-sizing:border-box;display:grid;grid-template-column