.custom-gantt-chart{background:#fff;border:1px solid #e9eaeb;border-radius:8px;font-family:Montserrat,Arial,sans-serif;display:flex;overflow:hidden}.custom-gantt-sidebar{border-right:1px solid #e9eaeb;flex-shrink:0;width:320px;overflow:hidden auto}.custom-gantt-sidebar-header{z-index:10;background:#fff;border-bottom:1px solid #e9eaeb;padding:16px;position:sticky;top:0}.custom-gantt-sidebar-header-title{color:#111827;margin:0;font-size:18px;font-weight:600}.custom-gantt-sidebar-content{padding:8px}.custom-gantt-sidebar-rows{flex-direction:column;padding:0;display:flex}.custom-gantt-sidebar-row{border-bottom:1px solid #e9eaeb;flex-shrink:0;align-items:stretch;display:flex}.custom-gantt-sidebar-row:last-child{border-bottom:none}.custom-gantt-sidebar-row--phase{height:48px;min-height:48px}.custom-gantt-sidebar-row--task{height:40px;min-height:40px}.custom-gantt-sidebar-row-inner{flex:1;align-items:center;gap:8px;min-width:0;padding:0 8px;display:flex;overflow:hidden}.custom-gantt-sidebar-row-inner .custom-gantt-phase-info{min-width:0;overflow:hidden}.custom-gantt-sidebar-task-row .custom-gantt-phase-info{overflow:hidden}.custom-gantt-sidebar-task-row .custom-gantt-phase-dates{display:none}.custom-gantt-sidebar-task-row .custom-gantt-task-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.custom-gantt-sidebar-spacer{flex-shrink:0;width:16px}.custom-gantt-sidebar-spacer-20{flex-shrink:0;width:20px}.custom-gantt-phase-progress-badge{color:#111827;background-color:#f3f4f6;border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:12px}.custom-gantt-task-priority{color:#6c757d;flex-shrink:0;font-size:12px}.custom-gantt-phase-item{margin-bottom:8px}.custom-gantt-phase-header{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:8px;transition:background-color .2s;display:flex}.custom-gantt-phase-header:hover{background-color:#f8f9fa}.custom-gantt-expand-btn{cursor:pointer;color:#374151;background:0 0;border:none;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:12px;transition:transform .3s cubic-bezier(.4,0,.2,1);display:inline-flex;transform:rotate(-90deg)}.custom-gantt-expand-btn.expanded{transform:rotate(0)}.custom-gantt-phase-info{flex:1;min-width:0}.custom-gantt-phase-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.custom-gantt-phase-header:hover .custom-gantt-phase-name{white-space:normal;word-break:break-word}.custom-gantt-phase-dates{color:#6c757d;margin-top:4px;font-size:12px}.custom-gantt-status-indicator{border-radius:2px;flex-shrink:0;width:12px;height:12px}.custom-gantt-status-indicator-small{border-radius:2px;flex-shrink:0;width:8px;height:8px}.custom-gantt-chart .bg-purple-500{background-color:#a855f7!important}.custom-gantt-chart .bg-blue-500{background-color:#3b82f6!important}.custom-gantt-chart .bg-pink-500{background-color:#ec4899!important}.custom-gantt-chart .bg-green-500{background-color:#10b981!important}.custom-gantt-chart .bg-gray-400{background-color:#9ca3af!important}.custom-gantt-main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.custom-gantt-time-selector{background:#fff;border-bottom:1px solid #e9eaeb;justify-content:flex-end;align-items:center;gap:16px;padding:12px 24px;display:flex}.custom-gantt-time-buttons{flex-wrap:wrap;gap:4px;display:flex}.custom-gantt-time-btn{cursor:pointer;color:#111827;background:0 0;border:none;border-radius:4px;padding:4px 12px;font-family:inherit;font-size:14px;transition:background-color .2s,color .2s}.custom-gantt-time-btn:hover{background-color:#f8f9fa}.custom-gantt-time-btn.active{color:#2563eb;background-color:#dbeafe;font-weight:500}.custom-gantt-chart-area{flex:1;position:relative;overflow:auto}.custom-gantt-chart-area.bar-dragging{-webkit-user-select:none;user-select:none}.custom-gantt-phase-bar.custom-gantt-bar-dragging,.custom-gantt-task-bar.custom-gantt-bar-dragging{cursor:grabbing;opacity:.9}.custom-gantt-bar-resize-handle{z-index:2;cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.custom-gantt-bar-resize-handle--left{left:0}.custom-gantt-bar-resize-handle--right{right:0}.custom-gantt-bar-resize-handle:hover{background:#ffffff40}.custom-gantt-chart-area{scrollbar-width:thin;scrollbar-color:#888 #f1f1f1}.custom-gantt-chart-area::-webkit-scrollbar{width:12px;height:12px}.custom-gantt-chart-area::-webkit-scrollbar-track{background:#f1f1f1;border-radius:999px}.custom-gantt-chart-area::-webkit-scrollbar-thumb{background:#888;border:2px solid #f1f1f1;border-radius:6px}.custom-gantt-chart-area::-webkit-scrollbar-thumb:hover{background:#555}[data-bs-theme=dark] .custom-gantt-chart-area{scrollbar-color:#475569 transparent}[data-bs-theme=dark] .custom-gantt-chart-area::-webkit-scrollbar-track{background:var(--bg-surface)}[data-bs-theme=dark] .custom-gantt-chart-area::-webkit-scrollbar-thumb{border:2px solid var(--bg-surface);background:#475569}[data-bs-theme=dark] .custom-gantt-chart-area::-webkit-scrollbar-thumb:hover{background:#64748b}.custom-gantt-timeline-wrapper{width:max-content;min-width:100%;display:inline-block}.custom-gantt-timeline-header{z-index:10;background-color:#f8f9fa;border-bottom:1px solid #e9eaeb;position:sticky;top:0}.custom-gantt-timeline-group{border-bottom:1px solid #e9eaeb;display:flex}.custom-gantt-timeline-group-item{text-align:center;color:#374151;border-right:1px solid #e9eaeb;flex:none;padding:8px;font-size:14px;font-weight:500}.custom-gantt-timeline-group-item:last-child{border-right:none}.custom-gantt-timeline-units{display:flex}.custom-gantt-timeline-unit{text-align:center;color:#4b5563;border-right:1px solid #e9eaeb;flex:none;padding:8px;font-size:14px}.custom-gantt-timeline-unit:last-child{border-right:none}.custom-gantt-chart-rows{position:relative}.custom-gantt-grid-lines{pointer-events:none;display:flex;position:absolute;inset:0}.custom-gantt-grid-line{border-right:1px solid #e5e7eb;flex:none}.custom-gantt-grid-line:last-child{border-right:none}.custom-gantt-current-date-indicator{z-index:10;pointer-events:none;background-color:#ef4444;width:2px;position:absolute;top:0;bottom:0}.custom-gantt-current-date-dot{background-color:#ef4444;border-radius:50%;width:12px;height:12px;margin-top:-6px;margin-left:-5px}.custom-gantt-data-rows{z-index:0;position:relative}.custom-gantt-chart-tasks{opacity:0;pointer-events:none;will-change:max-height,opacity;max-height:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.custom-gantt-chart-tasks.expanded{opacity:1;pointer-events:auto;max-height:2000px}.custom-gantt-chart-tasks.collapsed{opacity:0;max-height:0}.custom-gantt-chart-tasks .custom-gantt-task-row{opacity:0;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .3s;transform:translate(-30px)}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row{opacity:1;transform:translate(0)}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:first-child,.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:first-child .custom-gantt-task-bar{transition-delay:20ms}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(2),.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(2) .custom-gantt-task-bar{transition-delay:60ms}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(3),.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(3) .custom-gantt-task-bar{transition-delay:.1s}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(4),.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(4) .custom-gantt-task-bar{transition-delay:.14s}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(5),.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(5) .custom-gantt-task-bar{transition-delay:.18s}.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(n+6),.custom-gantt-chart-tasks.expanded .custom-gantt-task-row:nth-child(n+6) .custom-gantt-task-bar{transition-delay:.22s}.custom-gantt-phase-row{border-bottom:1px solid #e9eaeb;height:48px;position:relative}.custom-gantt-phase-row:hover{background-color:#f8f9fa}.custom-gantt-phase-bar{opacity:.9;cursor:pointer;z-index:1;transform-origin:0;border-radius:4px;min-width:7px;height:32px;transition:min-width .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.34,1.56,.64,1),filter .2s,opacity .3s;position:absolute;top:8px;overflow:hidden;box-shadow:0 1px 2px #0000001a}.custom-gantt-phase-bar:hover{opacity:1;z-index:5;filter:brightness(1.03)}.custom-gantt-phase-bar.expanded{z-index:5;opacity:1;transform:scaleY(1.05);box-shadow:0 4px 12px #0003}.custom-gantt-phase-bar-text{color:#fff;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;opacity:.95;padding:4px 12px;font-size:12px;font-weight:500;line-height:24px;transition:opacity .2s,transform .2s;display:block;overflow:hidden;transform:translateY(2px)}.custom-gantt-phase-bar:hover .custom-gantt-phase-bar-text,.custom-gantt-phase-bar.expanded .custom-gantt-phase-bar-text{opacity:1;transform:translateY(0)}.custom-gantt-task-row{border-bottom:1px solid #e9eaeb;height:40px;position:relative}.custom-gantt-task-row:hover{background-color:#f8f9fa}.custom-gantt-task-bar{cursor:pointer;z-index:1;transform-origin:0;border-radius:4px;min-width:7px;height:28px;transition:min-width .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.34,1.56,.64,1),filter .2s,opacity .3s;position:absolute;top:6px;overflow:hidden;box-shadow:0 1px 2px #0000001a}.custom-gantt-chart-tasks .custom-gantt-task-bar{clip-path:inset(0 100% 0 0);transition:clip-path .4s cubic-bezier(.34,1.56,.64,1),min-width .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.34,1.56,.64,1),filter .2s}.custom-gantt-chart-tasks.expanded .custom-gantt-task-bar{clip-path:inset(0)}.custom-gantt-task-bar:hover{z-index:5;filter:brightness(1.03)}.custom-gantt-task-bar.expanded{z-index:5;overflow:hidden;transform:scaleY(1.05);box-shadow:0 4px 12px #0003}.custom-gantt-task-bar-text{color:#fff;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;opacity:.95;padding:4px 8px;font-size:12px;line-height:20px;transition:opacity .2s,transform .2s;display:block;overflow:hidden;transform:translateY(2px)}.custom-gantt-task-bar:hover .custom-gantt-task-bar-text,.custom-gantt-task-bar.expanded .custom-gantt-task-bar-text{opacity:1;transform:translateY(0)}.custom-gantt-phase-bar.clickable,.custom-gantt-task-bar.clickable{cursor:pointer;transition:all .2s,box-shadow .2s}.custom-gantt-phase-bar.clickable:hover,.custom-gantt-task-bar.clickable:hover{transform:scaleY(1.08);box-shadow:0 4px 12px #0003,0 0 0 2px #ffffff80}.custom-gantt-phase-bar.clickable:active,.custom-gantt-task-bar.clickable:active{transform:scaleY(.98)}.custom-gantt-tooltip{z-index:50;color:#fff;pointer-events:none;background-color:#111827;border-radius:8px;max-width:384px;padding:16px;font-family:inherit;position:fixed;box-shadow:0 10px 15px -3px #0000001a}.custom-gantt-tooltip-title{margin-bottom:8px;font-weight:600}.custom-gantt-tooltip-description{color:#d1d5db;margin-bottom:12px;font-size:14px}.custom-gantt-tooltip-info{flex-direction:column;gap:4px;font-size:14px;display:flex}.custom-gantt-tooltip-row{justify-content:space-between;display:flex}.custom-gantt-tooltip-label{color:#9ca3af}@media (max-width:768px){.custom-gantt-sidebar{width:260px}.custom-gantt-time-buttons{flex-wrap:wrap}.custom-gantt-time-btn{padding:4px 10px;font-size:13px}}