.gantt{--gantt-header-bg:var(--bg-subtle);--gantt-header-fg:var(--fg-muted);--gantt-row-line:var(--border-subtle);--gantt-row-hover:var(--bg-hover);--gantt-row-selected:var(--accent-bg);--gantt-row-summary-bg:transparent;--gantt-bar-progress-critical:var(--red-700);--gantt-deadline:var(--warning);--gantt-deadline-missed:var(--danger);--gantt-handle:var(--gray-0);--gantt-handle-border:var(--gray-600);--gantt-link-hover:var(--accent);--gantt-link-selected:var(--accent);--gantt-ghost-border:var(--accent);--gantt-splitter:var(--border-default);--gantt-splitter-active:var(--accent);--gantt-cell-px:8px;--gantt-row-tint-pct:9%;--gantt-tl-tint-pct:4%;--gantt-row-selected-layer:color-mix(in srgb, var(--accent) 16%, transparent);background:var(--bg-surface);min-width:0;min-height:0;color:var(--fg-default);border:1px solid var(--border-default);border-radius:var(--r-lg);font-size:var(--text-sm,.8125rem);-webkit-user-select:none;user-select:none;flex-direction:column;line-height:1.2;display:flex;position:relative;overflow:hidden}.gantt__head{min-width:0;height:var(--gantt-header-h);background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-grid-line-strong);box-sizing:border-box;flex:none;display:flex}.gantt__head-left,.gantt__head-right{min-width:0;height:100%;position:relative;overflow:hidden}.gantt__head-right{flex:auto}.gantt__head-track{will-change:transform;height:100%;position:absolute;inset:0 auto 0 0}.gantt__hd-major,.gantt__hd-minor{box-sizing:border-box;position:relative}.gantt__hd-major{border-bottom:1px solid var(--gantt-grid-line);height:24px}.gantt__hd-minor{height:27px}.gantt__hd-cell{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-left:1px solid var(--gantt-grid-line);color:var(--gantt-header-fg);font-size:var(--text-2xs,.6875rem);font-variant-numeric:tabular-nums;align-items:center;padding:0 6px;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.gantt__hd-major .gantt__hd-cell{letter-spacing:.01em;color:var(--fg-default);border-left-color:var(--gantt-grid-line-strong);font-weight:600}.gantt__hd-minor .gantt__hd-cell{flex-direction:column;justify-content:center;gap:0;padding:0 2px;line-height:1.05}.gantt__hd-minor .gantt__hd-cell--day{font-size:var(--text-2xs,.6875rem)}.gantt__hd-dow{color:var(--fg-subtle);text-transform:uppercase;font-size:9px}.gantt__hd-cell--nonworking{background:var(--gantt-weekend-bg);color:var(--fg-subtle)}.gantt__hd-cell--holiday{background:var(--gantt-nonworking-bg);color:var(--fg-subtle)}.gantt__hd-cell--today{color:var(--accent);font-weight:700}.gantt__hd-cell--today .gantt__hd-dow{color:var(--accent)}.gantt__col-head{box-sizing:border-box;padding:0 var(--gantt-cell-px);white-space:nowrap;text-overflow:ellipsis;border-left:1px solid var(--gantt-grid-line);font-size:var(--text-2xs,.6875rem);text-transform:uppercase;letter-spacing:.03em;color:var(--gantt-header-fg);align-items:center;font-weight:600;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.gantt__col-head:first-child{border-left:none}.gantt__col-head--num{justify-content:flex-end}.gantt__colmenu-btn{z-index:5;background:linear-gradient(to right, transparent 0, var(--gantt-header-bg) 8px, var(--gantt-header-bg) 100%);width:22px;color:var(--fg-subtle);cursor:pointer;border:none;place-items:center;padding:0;display:grid;position:absolute;top:0;bottom:0;right:0}.gantt__colmenu-btn:hover,.gantt__colmenu-btn[aria-expanded=true]{color:var(--accent)}.gantt__colmenu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gantt__colmenu{top:var(--gantt-header-h);z-index:var(--z-dropdown,200);border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--bg-surface);width:204px;box-shadow:var(--elev-md);padding:4px;position:absolute}.gantt__colmenu-item{box-sizing:border-box;border-radius:var(--r-sm);width:100%;color:var(--fg-default);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:5px 8px;display:flex}.gantt__colmenu-item:hover{background:var(--bg-hover)}.gantt__colmenu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gantt__colmenu-item:disabled{color:var(--fg-muted);cursor:default}.gantt__colmenu-check{width:13px;height:13px;color:var(--accent);flex:none;place-items:center;display:grid}.gantt__colmenu-note{border-top:1px solid var(--border-subtle);color:var(--fg-muted);margin:4px 0 0;padding:6px 8px 4px;font-size:11px;line-height:1.4}.gantt__col-resize{cursor:col-resize;z-index:3;background:0 0;width:9px;margin-left:-5px;position:absolute;top:0;bottom:0}.gantt__col-resize:after{content:"";background:0 0;width:1px;position:absolute;top:4px;bottom:4px;left:4px}.gantt__col-resize:hover:after,.gantt__col-resize[data-active=true]:after{background:var(--accent)}.gantt__body{flex:auto;min-width:0;min-height:0;display:flex}.gantt__pane-left,.gantt__pane-right{min-width:0;min-height:0;position:relative}.gantt__pane-left{scrollbar-width:none;-ms-overflow-style:none;flex:none;overflow:hidden auto}.gantt__pane-left::-webkit-scrollbar{width:0;height:0}.gantt__pane-right{overscroll-behavior:contain;flex:auto;overflow:auto}.gantt__splitter{background:var(--gantt-grid-line-strong);cursor:col-resize;z-index:4;flex:none;width:1px;position:relative}.gantt__splitter:after{content:"";position:absolute;inset:0 -3px}.gantt__splitter:hover,.gantt__splitter[data-active=true]{background:var(--gantt-splitter-active)}.gantt__content{position:relative}.gantt__row{box-sizing:border-box;border-bottom:1px solid var(--gantt-row-line);contain:layout style;align-items:stretch;display:flex;position:absolute;left:0;right:0}.gantt__row:hover{background:var(--gantt-row-hover)}.gantt__row--summary{background:var(--gantt-row-summary-bg);font-weight:600}.gantt__row--selected,.gantt__row--selected:hover{background:var(--gantt-row-selected)}.gantt__row.gantt__row--tinted{background:linear-gradient(var(--gantt-row-layer,transparent), var(--gantt-row-layer,transparent)), color-mix(in srgb, var(--gantt-row-tint) var(--gantt-row-tint-pct), transparent)}.gantt__row--tinted:hover{--gantt-row-layer:var(--gantt-row-hover)}.gantt__row--tinted.gantt__row--selected,.gantt__row--tinted.gantt__row--selected:hover{--gantt-row-layer:var(--gantt-row-selected-layer)}.gantt__row--tinted.gantt__row--drop-inside,.gantt__row--tinted.gantt__row--drop-inside:hover{--gantt-row-layer:var(--accent-bg)}.gantt__row--tinted .gantt__type-dot:not(.gantt__type-dot--critical){background:var(--gantt-row-tint)}.gantt__row--selected:before{content:"";background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.gantt__row--cursor:after{content:"";pointer-events:none;box-shadow:inset 0 0 0 1px var(--accent);position:absolute;inset:0}.gantt__cell{box-sizing:border-box;padding:0 var(--gantt-cell-px);white-space:nowrap;border-left:1px solid var(--gantt-row-line);flex:none;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.gantt__cell:first-child{border-left:none}.gantt__cell--num{font-variant-numeric:tabular-nums;color:var(--fg-muted);justify-content:flex-end}.gantt__cell--date{font-variant-numeric:tabular-nums;color:var(--fg-muted)}.gantt__cell-text{text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext;min-width:0;overflow:hidden}.gantt__cell-key{color:var(--fg-muted);font-size:12px}.gantt__cell--critical{color:var(--danger-fg)}.gantt__tree{align-items:center;gap:2px;width:100%;min-width:0;display:flex}.gantt__twisty{border-radius:var(--r-xs);width:15px;height:15px;color:var(--fg-subtle);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;margin-right:1px;padding:0;display:grid}.gantt__twisty:hover{background:var(--bg-active);color:var(--fg-default)}.gantt__twisty svg{transition:transform .1s}.gantt__twisty[aria-expanded=false] svg{transform:rotate(-90deg)}.gantt__guide{background:var(--border-default);opacity:.7;pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.gantt__child-count{color:var(--fg-subtle);font-variant-numeric:tabular-nums;flex:none;margin-left:4px;font-size:11px;font-weight:400}.gantt__badge{white-space:nowrap;background:var(--bg-subtle);color:var(--fg-muted);box-shadow:inset 0 0 0 1px var(--border-default);border-radius:999px;flex:none;margin-left:6px;padding:0 6px;font-size:10.5px;font-weight:600;line-height:16px}.gantt__badge--success{background:var(--success-bg);color:var(--success-fg);box-shadow:inset 0 0 0 1px var(--success-border)}.gantt__badge--warning{background:var(--warning-bg);color:var(--warning-fg);box-shadow:inset 0 0 0 1px var(--warning-border)}.gantt__badge--danger{background:var(--danger-bg);color:var(--danger-fg);box-shadow:inset 0 0 0 1px var(--danger-border)}.gantt__add-child{border-radius:var(--r-xs);width:18px;height:18px;color:var(--fg-subtle);opacity:0;cursor:pointer;background:0 0;border:none;flex:none;place-items:center;margin-left:auto;padding:0;transition:opacity .1s;display:grid}.gantt__row:hover .gantt__add-child{opacity:1}.gantt__add-child:hover{background:var(--bg-active);color:var(--accent)}@media (hover:none){.gantt__row--selected .gantt__add-child{opacity:1}}.gantt__row--dragged{opacity:.45}.gantt__row--drop-inside,.gantt__row--drop-inside:hover{background:var(--accent-bg);box-shadow:inset 0 0 0 2px var(--accent)}.gantt__drop-line{background:var(--accent);pointer-events:none;z-index:3;height:2px;margin-top:-1px;position:absolute;right:0}.gantt__drop-line:before{content:"";box-sizing:border-box;border:2px solid var(--accent);background:var(--bg-surface);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.gantt[data-dragging=row]{cursor:grabbing}.gantt[data-row-drop=none]{cursor:no-drop}.gantt__twisty--leaf{visibility:hidden;cursor:default}.gantt__type-dot{background:var(--fg-disabled);border-radius:1px;flex:none;width:5px;height:5px;margin-right:5px}.gantt__type-dot--milestone{background:var(--gantt-milestone);transform:rotate(45deg)}.gantt__type-dot--summary{background:var(--gantt-bar-summary)}.gantt__type-dot--critical{background:var(--gantt-bar-critical)}.gantt__edit{box-sizing:border-box;border:1px solid var(--accent);border-radius:var(--r-xs);background:var(--bg-surface);width:100%;min-width:0;height:calc(100% - 6px);color:var(--fg-default);font:inherit;box-shadow:0 0 0 2px var(--accent-ring);outline:none;padding:0 4px}.gantt__edit--num{text-align:right}.gantt__cell--editing-date{z-index:2;overflow:visible}.gantt__edit--date{font-variant-numeric:tabular-nums;width:max(100% - 4px,136px);height:calc(100% - 6px);position:absolute;top:3px;left:2px}.gantt__cell--active:after{content:"";pointer-events:none;box-shadow:inset 0 0 0 2px var(--accent);border-radius:2px;position:absolute;inset:0}.gantt__insert{z-index:3;pointer-events:none;height:0;position:absolute;left:0;right:0}.gantt__insert-line{background:var(--accent);border-radius:1px;height:2px;position:absolute;top:-1px;left:0;right:0}.gantt__insert-btn{background:var(--accent);color:#fff;width:18px;height:18px;box-shadow:0 0 0 2px var(--bg-surface), 0 1px 3px #0000002e;cursor:pointer;pointer-events:auto;border:0;border-radius:50%;place-items:center;padding:0;animation:.12s ease-out gantt-insert-in;display:grid;position:absolute;top:-9px;left:4px}.gantt__insert-btn:hover{transform:scale(1.12)}@keyframes gantt-insert-in{0%{opacity:0;transform:scale(.6)}}.gantt__append{box-sizing:border-box;opacity:0;align-items:center;padding-right:8px;transition:opacity .12s;display:flex;position:absolute;left:0}.gantt__body:hover .gantt__append,.gantt__append:focus-within,.gantt__append--open{opacity:1}@media (hover:none){.gantt__append{opacity:1}}.gantt__append-btn{border:1px dashed var(--border-default);border-radius:var(--r-xs);height:calc(100% - 8px);color:var(--fg-muted);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.gantt__append-btn:hover{border-color:var(--accent);color:var(--accent)}.gantt__append-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gantt__append-input{max-width:420px}.gantt__append-hint{color:var(--fg-subtle);margin-left:4px;font-size:11px}.gantt__pct{align-items:center;gap:6px;width:100%;min-width:0;display:flex}.gantt__pct-track{background:var(--bg-muted);border-radius:2px;flex:auto;min-width:10px;height:4px;display:block;overflow:hidden}.gantt__pct-fill{background:var(--gantt-bar-progress);border-radius:2px;height:100%;display:block}.gantt__pct-fill--critical{background:var(--gantt-bar-critical)}.gantt__pct-value{font-variant-numeric:tabular-nums;color:var(--fg-muted);text-align:right;flex:none;min-width:30px}.gantt__pct--edit{box-sizing:border-box;cursor:text;border-radius:4px;width:calc(100% + 6px);height:calc(100% - 6px);margin:0 -4px;padding:0 2px 0 4px}.gantt__row:hover .gantt__pct--edit{box-shadow:inset 0 0 0 1px var(--border-default);background:var(--bg-surface)}.gantt__row:hover .gantt__pct--edit .gantt__pct-value{color:var(--fg-default)}.gantt__pct-more{width:14px;height:18px;color:var(--fg-subtle);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:3px;flex:none;place-items:center;margin-left:-3px;padding:0;display:grid}.gantt__row:hover .gantt__pct-more,.gantt__row--selected .gantt__pct-more{opacity:1}.gantt__pct-more:hover{background:var(--bg-hover);color:var(--fg-default)}.gantt__edit-wrap{align-items:center;gap:3px;width:100%;height:100%;display:flex}.gantt__edit-suffix{color:var(--fg-muted);flex:none}.gantt__reached--edit{appearance:none;width:calc(100% + 8px);height:calc(100% - 6px);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:0 -4px;padding:0 4px}.gantt__reached--edit:hover{background:var(--bg-hover);box-shadow:inset 0 0 0 1px var(--border-default)}.gantt__pct--rollup{cursor:help}.gantt__reached{min-width:0;color:var(--fg-subtle);justify-content:space-between;align-items:center;gap:6px;display:flex}.gantt__reached--on{color:var(--fg-default)}.gantt__reached-box{border:1.5px solid var(--border-strong,var(--gray-400));background:var(--bg-surface);border-radius:4px;flex:none;place-items:center;width:14px;height:14px;display:grid}.gantt__reached--on .gantt__reached-box{border-color:var(--accent);background:var(--accent);color:#fff}.gantt-pop{z-index:var(--z-dropdown,400);visibility:hidden;box-sizing:border-box;border:1px solid var(--border-default);border-radius:var(--r-md,8px);background:var(--bg-surface);width:232px;color:var(--fg-default);box-shadow:var(--elev-md,0 6px 24px #00000024);padding:10px 12px 9px;font-size:12px;animation:.12s ease-out gantt-card-in;position:fixed;top:0;left:0}.gantt-pop__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gantt-pop__label{font-size:13px;font-weight:600}.gantt-pop__field{color:var(--fg-muted);align-items:center;gap:3px;display:inline-flex}.gantt-pop__input{box-sizing:border-box;border:1px solid var(--border-default);background:var(--bg-surface);width:48px;height:26px;color:var(--fg-default);font:inherit;font-variant-numeric:tabular-nums;text-align:right;border-radius:6px;padding:0 6px;font-size:13px}.gantt-pop__input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.gantt-pop__range{width:100%;accent-color:var(--accent);cursor:pointer;margin:10px 0 8px;display:block}.gantt-pop__chips{gap:4px;display:flex}.gantt-pop__chip{border:1px solid var(--border-default);background:var(--bg-surface);height:24px;color:var(--fg-muted);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:999px;flex:1 1 0;padding:0}.gantt-pop__chip:hover{border-color:var(--accent);color:var(--accent)}.gantt-pop__chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-fg,var(--accent));font-weight:600}.gantt-pop__hint{color:var(--fg-subtle);margin-top:8px;font-size:11px}.gantt__bar-names{text-overflow:ellipsis;max-width:112px;overflow:hidden}.gantt__avatars{align-items:center;display:flex}.gantt__avatar{box-sizing:border-box;border:1px solid var(--bg-surface);color:#fff;letter-spacing:-.02em;border-radius:50%;place-items:center;width:18px;height:18px;margin-right:-4px;font-size:9px;font-weight:600;display:grid;position:relative}.gantt__avatar-img{object-fit:cover;pointer-events:none;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.gantt__bar-name{white-space:nowrap;color:#fff;text-shadow:0 0 2px #00000059,0 1px 1px #00000040;pointer-events:none;align-items:center;font:600 11px Inter,ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;top:0;bottom:0}.gantt__bar-name--dark{color:var(--gray-900,#111827);text-shadow:none}.gantt__bar-avatars{pointer-events:none;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:3px}.gantt__avatar--bar{border-color:#ffffffe6;width:16px;height:16px;font-size:7.5px}.gantt__avatar--more{background:var(--bg-muted);color:var(--fg-muted)}.gantt__avatar.gantt__avatar--over{border-color:var(--bg-surface);box-shadow:0 0 0 1.5px var(--danger)}.gantt__warn{color:var(--danger);flex:none;place-items:center;margin-left:4px;display:inline-grid}.gantt__tl-bg{pointer-events:none;background-repeat:repeat;position:absolute;inset:0}.gantt__tl-rows{pointer-events:none;position:absolute;inset:0}.gantt__tl-band{pointer-events:none;position:absolute;top:0;bottom:0}.gantt__tl-tint{pointer-events:none;background:color-mix(in srgb, var(--gantt-row-tint) var(--gantt-tl-tint-pct), transparent);position:absolute;left:0;right:0}.gantt__tl-band--weekend{background:var(--gantt-weekend-bg)}.gantt__tl-band--holiday{background:var(--gantt-nonworking-bg)}.gantt__tl-major-line{background:var(--gantt-grid-line-strong);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.gantt__today{background:var(--gantt-today-line);pointer-events:none;z-index:2;width:1px;position:absolute;top:0;bottom:0}.gantt__today-flag{border-left:4px solid #0000;border-right:4px solid #0000;border-bottom:5px solid var(--gantt-today-line);pointer-events:none;width:0;height:0;position:absolute;bottom:0;transform:translate(-50%)}.gantt__bars{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.gantt__bar-wrap{pointer-events:auto;position:absolute;overflow:visible}.gantt__slack,.gantt__deadline{pointer-events:none}.gantt__bar{box-sizing:border-box;border-radius:var(--gantt-bar-radius);background:var(--gantt-bar);border:1px solid var(--gantt-bar-border);cursor:grab;overflow:hidden}.gantt__bar--readonly{cursor:default}.gantt__bar--critical{background:var(--gantt-bar-critical);border-color:var(--gantt-bar-critical-border)}.gantt__bar:hover{filter:brightness(1.04)}.gantt__bar-wrap{--gantt-sel:var(--gantt-sel-light,var(--accent))}.gantt__bar--selected{box-shadow:0 0 0 1px var(--bg-surface), 0 0 0 2px var(--gantt-sel,var(--accent))}.gantt__bar-wrap[data-selected=true] .gantt__milestone{box-shadow:0 0 0 1.5px var(--bg-surface), 0 0 0 3px var(--gantt-sel,var(--accent))}.gantt__bar--dragging{opacity:.35}.gantt__bar-progress{background:var(--gantt-bar-progress);pointer-events:none;position:absolute;top:0;bottom:0;left:0}.gantt__bar--critical .gantt__bar-progress{background:var(--gantt-bar-progress-critical)}.gantt__bar-label{white-space:nowrap;font-size:var(--text-2xs,.6875rem);color:var(--fg-muted);pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;top:0;bottom:0;left:calc(100% + 15px)}.gantt__baseline{box-sizing:border-box;background:var(--gray-300,#d4d4d8);pointer-events:none;z-index:1;border-radius:2px;position:absolute}.gantt__baseline--milestone{border:1.5px solid var(--gray-400,#a1a1aa);background:0 0;border-radius:1px;transform:rotate(45deg)}.gantt__slip,.gantt__overdue{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;height:16px;padding:0 5px;font-size:10.5px;font-weight:600;line-height:1;display:inline-flex}.gantt__slip--late{background:var(--warning-bg);color:var(--warning-fg,var(--warning))}.gantt__slip--critical,.gantt__overdue{background:var(--danger-bg);color:var(--danger)}.gantt__slip--early{background:var(--success-bg);color:var(--success)}.gantt .gantt__bar--overdue{outline:2px solid var(--danger);outline-offset:1px}.gantt__milestone--overdue{outline:1.5px solid var(--danger);outline-offset:1px}.gantt__bar-behind{box-shadow:inset -2px 0 0 var(--fg-default);pointer-events:none;background:repeating-linear-gradient(-45deg,#fff9 0 2.5px,#0000 2.5px 5.5px);position:absolute;top:0;bottom:0}.gantt__expected{background:var(--fg-default);pointer-events:none;z-index:2;border-radius:1px 1px 0 0;width:2px;height:6px;margin-left:-2px;position:absolute;top:-6px}.gantt__changed-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 1.5px var(--bg-surface);z-index:6;cursor:help;border-radius:50%;position:absolute;top:-4px;left:-4px}.gantt__bar-wrap--changed{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--gantt-bar-radius)}.gantt__bar-wrap--dim{opacity:.35}.gantt__summary{clip-path:polygon(0 0,100% 0,100% 100%,calc(100% - 5px) 55%,5px 55%,0 100%);cursor:grab}.gantt__summary--narrow{clip-path:none;border-radius:1px}.gantt__summary{background:var(--gantt-summary-track,color-mix(in srgb, var(--gantt-bar-summary) 40%, var(--bg-surface)))}.gantt__summary-fill{background:var(--gantt-bar-summary);position:absolute;top:0;bottom:0;left:0}.gantt__milestone{box-sizing:border-box;background:var(--gantt-milestone);border:1px solid var(--gantt-milestone);cursor:grab;border-radius:1px;transform:rotate(45deg)}.gantt__milestone--critical{background:var(--gantt-bar-critical);border-color:var(--gantt-bar-critical-border)}.gantt__milestone--done{background:var(--gantt-bar-progress)}.gantt__handle{cursor:ew-resize;z-index:4;width:5px;position:absolute;top:0;bottom:0}.gantt__handle--start{left:0}.gantt__handle--finish{right:0}.gantt__bar:hover .gantt__handle:after,.gantt__bar--selected .gantt__handle:after{content:"";background:#ffffffd9;border-radius:1px;width:2px;position:absolute;top:3px;bottom:3px;left:1px}.gantt__pct-handle{cursor:col-resize;z-index:3;width:12px;margin-left:-6px;position:absolute;top:0;bottom:0}.gantt__bar-wrap:hover .gantt__pct-handle:after,.gantt__bar-wrap[data-selected=true] .gantt__pct-handle:after{content:"";background:var(--bg-surface);border:1.5px solid var(--gantt-bar-border);width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 1px 2px #00000040}.gantt__pct-handle:hover:after{border-color:var(--accent);transform:translate(-50%,-50%)rotate(45deg)scale(1.2)}.gantt__link-dot{background:var(--gantt-handle);border:1.5px solid var(--gantt-handle-border);cursor:crosshair;opacity:0;z-index:5;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;transition:opacity 80ms linear;position:absolute}.gantt__bar-wrap:hover .gantt__link-dot,.gantt__bar-wrap[data-selected=true] .gantt__link-dot{opacity:1}.gantt__link-dot:hover{opacity:1;background:var(--gantt-sel,var(--accent));border-color:var(--gantt-sel,var(--accent));transform:scale(1.15)}.gantt__bar-wrap[data-sel-color][data-selected=true] .gantt__link-dot{border-color:var(--gantt-sel)}.gantt__link-dot:before{content:"";position:absolute;inset:-4px}.gantt__link-dot--target{opacity:1;background:var(--gantt-sel,var(--accent));border-color:var(--gantt-sel,var(--accent))}.gantt__slack{background:repeating-linear-gradient(45deg, var(--gantt-slack) 0 2px, transparent 2px 4px);pointer-events:none;height:3px;position:absolute}.gantt__deadline{border-left:5px solid #0000;border-right:5px solid #0000;border-top:7px solid var(--gantt-deadline);pointer-events:none;z-index:4;width:0;height:0;margin-left:-5px;position:absolute}.gantt__deadline--missed{border-top-color:var(--gantt-deadline-missed)}.gantt__ghost{box-sizing:border-box;border:1px dashed var(--gantt-ghost-border);border-radius:var(--gantt-bar-radius);background:var(--accent-bg);pointer-events:none;z-index:6;position:absolute}.gantt__ghost-line{background:var(--accent);pointer-events:none;z-index:6;width:1px;position:absolute;top:0;bottom:0}.gantt__linking{pointer-events:none;z-index:7;position:absolute;inset:0;overflow:visible}.gantt__links{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:visible}.gantt__link-line{fill:none;stroke:var(--gantt-link);stroke-width:1px;shape-rendering:geometricprecision}.gantt__link-arrow{fill:var(--gantt-link);stroke:none}.gantt__link--critical .gantt__link-line{stroke:var(--gantt-link-critical)}.gantt__link--critical .gantt__link-arrow{fill:var(--gantt-link-critical)}.gantt__link-hit{fill:none;stroke:#0000;stroke-width:9px;pointer-events:stroke;cursor:pointer}.gantt__link:hover .gantt__link-line,.gantt__link--selected .gantt__link-line{stroke:var(--gantt-link-selected);stroke-width:1.75px}.gantt__link:hover .gantt__link-arrow,.gantt__link--selected .gantt__link-arrow{fill:var(--gantt-link-selected)}.gantt__link--delayed .gantt__link-line,.gantt__link--delayed:hover .gantt__link-line{stroke:var(--danger);stroke-width:2px;stroke-linejoin:round}.gantt__link--delayed .gantt__link-arrow,.gantt__link--delayed:hover .gantt__link-arrow{fill:var(--danger);stroke:var(--danger);stroke-width:1px;stroke-linejoin:round}.gantt__link-halo{fill:none;stroke:var(--danger);stroke-opacity:.16;stroke-width:6px;stroke-linejoin:round;stroke-linecap:round}.gantt__link--delayed:hover .gantt__link-line{stroke-width:2.5px}.gantt .gantt__link--delayed:hover .gantt__link-halo{stroke-opacity:.34}.gantt__link--delayed.gantt__link--selected .gantt__link-line{stroke-width:2.5px}.gantt .gantt__link--delayed.gantt__link--selected .gantt__link-halo{stroke:var(--gantt-link-selected);stroke-opacity:.5;stroke-width:8px}.gantt__link-hit--info{cursor:help}@media (pointer:coarse){.gantt__link--delayed .gantt__link-hit{stroke-width:20px}}.gantt-linktip{visibility:hidden;max-width:300px;top:0;left:0}.gantt__bar-label .gantt__overdue,.gantt__bar-label .gantt__slip--critical{background:linear-gradient(var(--danger-bg), var(--danger-bg)), var(--bg-surface)}.gantt__bar-label .gantt__slip--late{background:linear-gradient(var(--warning-bg), var(--warning-bg)), var(--bg-surface)}.gantt__bar-label .gantt__slip--early{background:linear-gradient(var(--success-bg), var(--success-bg)), var(--bg-surface)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .gantt__link-halo{stroke-opacity:.26}}[data-theme=dark] .gantt__link-halo{stroke-opacity:.26}.gantt__tooltip{z-index:var(--z-tooltip,500);pointer-events:none;border-radius:var(--r-sm);background:var(--gray-900);color:var(--gray-0);font-size:var(--text-2xs,.6875rem);box-shadow:var(--elev-md);white-space:nowrap;font-variant-numeric:tabular-nums;padding:5px 8px;line-height:1.45;position:absolute}.gantt__tooltip-row{justify-content:space-between;gap:6px;display:flex}.gantt__tooltip-key{color:var(--gray-400)}.gantt__empty{height:100%;color:var(--fg-subtle);place-items:center;padding:24px;display:grid}.gantt__grid:focus-visible{outline:none}.gantt__sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gantt[data-dragging=move]{cursor:grabbing}.gantt[data-dragging=resize],.gantt[data-dragging=progress]{cursor:ew-resize}.gantt[data-dragging=link]{cursor:crosshair}.gantt[data-dragging] .gantt__bar,.gantt[data-dragging] .gantt__summary,.gantt[data-dragging] .gantt__milestone,.gantt[data-dragging] .gantt__link-dot{cursor:inherit}@media (prefers-reduced-motion:reduce){.gantt__twisty svg,.gantt__link-dot{transition:none}}.gantt-card{z-index:var(--z-tooltip,500);visibility:hidden;pointer-events:none;box-sizing:border-box;border:1px solid var(--border-subtle);border-radius:var(--r-md,8px);background:var(--bg-surface);min-width:200px;max-width:300px;color:var(--fg-default);box-shadow:var(--elev-md);font-variant-numeric:tabular-nums;padding:10px 12px;font-size:12px;line-height:1.45;animation:.12s ease-out gantt-card-in;position:fixed;top:0;left:0}@keyframes gantt-card-in{0%{opacity:0;transform:translateY(2px)}}.gantt-card__key{color:var(--fg-subtle);font-size:11px}.gantt-card__swatch{vertical-align:.05em;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.gantt-card__title{overflow-wrap:anywhere;font-size:13px;font-weight:600}.gantt-card__range{color:var(--fg-muted);margin-top:2px}.gantt-card__meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.gantt-card__dot{color:var(--fg-subtle)}.gantt-card__pct{align-items:center;gap:6px;display:inline-flex}.gantt-card__pct-track{background:var(--bg-muted,var(--gray-100));border-radius:2px;width:44px;height:4px;overflow:hidden}.gantt-card__pct-fill{background:var(--accent);height:100%;display:block}.gantt-card__notes{border-top:1px solid var(--border-subtle);gap:2px;margin-top:6px;padding-top:6px;display:grid}.gantt-card__bad{color:var(--danger-fg);font-weight:600}.gantt-card__warn{color:var(--warning-fg)}.gantt-card__good{color:var(--success)}.gantt-card__accent{color:var(--accent)}.gantt-card__people{border-top:1px solid var(--border-subtle);margin-top:6px;padding-top:6px}.gantt-card__label{color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:600}.gantt-card__people ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.gantt-card__people li{align-items:center;gap:6px;min-width:0;display:flex}.gantt-card__people .gantt__avatar{flex:none;margin-right:0}.gantt-card__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt-card__muted{color:var(--fg-subtle)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .gantt__bar-wrap{--gantt-sel:var(--gantt-sel-dark,var(--accent))}:root:not([data-theme=light]) .gantt{--gantt-row-tint-pct:16%;--gantt-tl-tint-pct:7%;--gantt-row-selected-layer:color-mix(in srgb, var(--accent) 22%, transparent)}}[data-theme=dark] .gantt__bar-wrap{--gantt-sel:var(--gantt-sel-dark,var(--accent))}[data-theme=dark] .gantt{--gantt-row-tint-pct:16%;--gantt-tl-tint-pct:7%;--gantt-row-selected-layer:color-mix(in srgb, var(--accent) 22%, transparent)}.gantt-suggest{z-index:var(--z-dropdown,200);visibility:hidden;box-sizing:border-box;border:1px solid var(--border-default);border-radius:var(--r-lg,8px);background:var(--bg-surface);width:min(440px,100vw - 16px);color:var(--fg-default);box-shadow:var(--elev-md,0 6px 24px #00000024);padding:8px 10px 10px;font-size:12px;line-height:1.4;animation:.14s ease-out gantt-card-in;position:fixed;top:0;left:0}.gantt-suggest__head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.gantt-suggest__title{color:var(--fg-muted);white-space:nowrap;align-items:center;gap:5px;font-weight:600;display:inline-flex}.gantt-suggest__spark{color:var(--accent)}.gantt-suggest__hint{color:var(--fg-subtle);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:11px;overflow:hidden}.gantt-suggest__close{border-radius:var(--r-sm,4px);width:20px;height:20px;color:var(--fg-subtle);cursor:pointer;background:0 0;border:0;flex-shrink:0;place-items:center;display:inline-grid}.gantt-suggest__close:hover{background:var(--bg-hover);color:var(--fg-default)}.gantt-suggest__loading{color:var(--fg-subtle);align-items:center;gap:6px;margin:2px 0 0;display:flex}.gantt-suggest__dot{background:var(--accent);border-radius:999px;width:6px;height:6px;animation:1s ease-in-out infinite gantt-suggest-pulse}@keyframes gantt-suggest-pulse{50%{opacity:.35}}.gantt-suggest__rows{flex-direction:column;gap:6px;transition:opacity .16s ease-out;display:flex}.gantt-suggest__rows[data-stale]{opacity:.5}.gantt-suggest__row{grid-template-columns:92px minmax(0,1fr);align-items:start;gap:8px;display:grid}.gantt-suggest__label{color:var(--fg-subtle);padding-top:4px;font-size:11px;font-weight:500}.gantt-suggest__chips{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.gantt-suggest__chip{border:1px solid var(--border-default);border-radius:var(--r-md,6px);background:var(--bg-surface);min-width:0;max-width:100%;color:var(--fg-default);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:6px;padding:3px 8px;transition:border-color .15s ease-out,background-color .15s ease-out;display:inline-flex;position:relative;overflow:hidden}.gantt-suggest__chip:hover:not(:disabled){border-color:var(--accent-border)}.gantt-suggest__chip:disabled{cursor:default}.gantt-suggest__chip[data-next]{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 2px var(--accent-ring)}.gantt-suggest__chip[data-accepted]{border-color:var(--success-border);background:var(--success-bg);color:var(--success-fg)}.gantt-suggest__bar{background:color-mix(in srgb, var(--accent) 10%, transparent);pointer-events:none;transition:width .4s ease-out;position:absolute;inset:0 auto 0 0}.gantt-suggest__text{white-space:nowrap;text-overflow:ellipsis;min-width:0;position:relative;overflow:hidden}.gantt-suggest__pct,.gantt-suggest__check,.gantt-suggest__kbd{flex-shrink:0;position:relative}.gantt-suggest__pct{font-variant-numeric:tabular-nums;color:var(--fg-subtle)}.gantt-suggest__kbd{border:1px solid var(--border-default);border-radius:var(--r-sm,4px);background:var(--bg-surface);color:var(--fg-subtle);padding:0 4px;font-family:inherit;font-size:10px}@media (max-width:480px){.gantt-suggest__row{grid-template-columns:minmax(0,1fr);gap:2px}.gantt-suggest__label{padding-top:0}}@media (prefers-reduced-motion:reduce){.gantt-suggest,.gantt-suggest__dot{animation:none}.gantt-suggest__rows,.gantt-suggest__chip,.gantt-suggest__bar{transition:none}}
.gantt__risk{cursor:help;border-radius:50%;outline:none;flex:none;width:8px;height:8px;margin-left:6px;animation:.26s cubic-bezier(.2,.8,.2,1.2) both risk-pop;display:inline-block}.gantt__risk--at_risk{background:var(--amber-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--amber-500) 22%, transparent)}.gantt__risk--late{background:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 22%, transparent)}@keyframes risk-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.risk-tip{flex-direction:column;gap:6px;min-width:200px;padding:2px 0;display:flex}.risk-tip__title{font-weight:600}.risk-tip__rows{flex-direction:column;gap:3px;display:flex}.risk-tip__row{grid-template-columns:1fr 64px 34px;align-items:center;gap:6px;display:grid}.risk-tip__name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.risk-tip__track{background:color-mix(in srgb, currentColor 18%, transparent);border-radius:999px;height:5px;overflow:hidden}.risk-tip__fill{border-radius:inherit;transform-origin:0;height:100%;animation:.42s cubic-bezier(.2,.7,.2,1) both risk-grow;display:block}.risk-tip__fill--on_time{background:var(--green-500)}.risk-tip__fill--at_risk{background:var(--amber-500)}.risk-tip__fill--late{background:var(--red-500)}@keyframes risk-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.risk-tip__value{text-align:right;font-variant-numeric:tabular-nums}.risk-tip__factors{border-top:1px solid color-mix(in srgb, currentColor 18%, transparent);flex-direction:column;gap:1px;padding-top:5px;display:flex}.risk-tip__factor:before{content:"• ";opacity:.6}.risk-tip__source{opacity:.65;font-size:11px}.gantt-card .risk-tip__track{background:var(--bg-muted)}.gantt-card .risk-tip__factors{border-top-color:var(--border-subtle)}.gantt-card .risk-tip__source{color:var(--fg-subtle);opacity:1}@media (prefers-reduced-motion:reduce){.gantt__risk,.risk-tip__fill{animation:none}}.tooltip:has(.risk-tip){max-width:320px}
.gantt-marquee__track{column-gap:2em;width:max-content;display:flex}.gantt-marquee__item{white-space:nowrap;flex:none}
