.gantt{
  width:100%; height:100%; box-sizing:border-box; background:var(--md-neutral-background-1-rest);
  display:flex; flex-direction:column;
}
.gantt-chart{ flex:1; min-height:0; display:flex; flex-direction:column; }
.gantt-header{ flex-shrink:0; display:flex; align-items:center; padding:12px 0 8px; }
.gantt-task-col-header{
  flex:0 0 220px; width:220px; box-sizing:border-box; padding-left:8px; border-right:1px solid var(--md-neutral-stroke-1-rest);
  font-family:var(--font-sans); font-size:var(--md-typography-font-size-300); color:var(--md-neutral-foreground-3-rest);
}
.gantt-axis-ticks{ flex:1; min-width:0; position:relative; height:16px; margin:0 16px; }
.gantt-axis-tick{ position:absolute; top:0; font-family:var(--font-sans); font-size:var(--md-typography-font-size-200); color:var(--md-neutral-foreground-3-rest); white-space:nowrap; }
.gantt-body{ flex:1; min-height:0; overflow-y:auto; overflow-x:hidden; padding:10px 0; scrollbar-width:none; }
.gantt-body::-webkit-scrollbar{ display:none; }
.gantt-phase{ padding:5px 0; }
.gantt-row{ display:flex; align-items:center; }
.gantt-row-phase{ cursor:pointer; border-radius:var(--md-radius-80,8px); }
.deck-component.selected .gantt-phase:hover{ background:var(--md-neutral-background-2-rest); border-radius:var(--md-radius-80,8px); }
.gantt-phase.row-focused{ background:var(--md-neutral-background-2-rest); border-radius:var(--md-radius-80,8px); }
.gantt-task-col{
  flex:0 0 220px; width:220px; min-width:0; box-sizing:border-box; display:flex; flex-direction:column;
  justify-content:center; gap:2px; padding-left:8px;
}
.gantt-task-col-subtask{ padding-left:24px; padding-right: 12px }
.gantt-task-col-spacer{ flex:0 0 220px; width:220px; }
.gantt-phase-legend-row{ min-height:16px; }
.gantt-phase-legend-track{ flex:1; min-width:0; position:relative; height:14px; margin:0 16px; }
.gantt-legend-marker{
  position:absolute; top:0; width:8px; height:8px; transform:translateX(-50%);
  background:currentColor; color:var(--gantt-phase-fg); cursor:default;
}
.gantt-legend-marker-circle{ border-radius:50%; }
.gantt-legend-marker-diamond{ transform:translateX(-50%) rotate(45deg); }
.gantt-legend-marker-hexagon{ clip-path:polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); }
.gantt-legend-marker-triangle{ clip-path:polygon(50% 0%, 0% 100%, 100% 100%); }
.gantt-legend-marker-octagon{ clip-path:polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%); }
.gantt-task-name-row{ display:flex; align-items:center; gap:6px; min-width:0; }
.gantt-task-name{ flex:1; min-width:0; font-family:var(--font-display); font-weight:var(--font-weight-bold); font-size:13px; color:var(--md-neutral-foreground-1-rest); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gantt-task-date{ font-family:var(--font-sans); font-size:11px; color:var(--md-neutral-foreground-3-rest); white-space:nowrap; }
.gantt-task-tag{
  display:block; width:fit-content; max-width: 100%; box-sizing:border-box; padding:4px 10px; border-radius:var(--md-radius-60,6px);
  background:var(--gantt-phase-bg); color:var(--gantt-phase-fg); font-family:var(--font-sans); font-size:var(--md-typography-font-size-200);
  text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; outline:none; cursor:text;
}
.gantt-phase-track{ flex:1; min-width:0; position:relative; height:40px; margin:0 16px; }
.gantt-phase-bar{
  position:absolute; top:0; height:40px; min-width:96px; box-sizing:border-box; overflow:hidden;
  display:flex; align-items:center; gap:8px; padding:8px; border-radius:var(--md-radius-80,8px);
  background:var(--gantt-phase-bg); cursor:pointer;
}
.gantt-phase-bar-icon{
  flex-shrink:0; width:24px; height:24px; border-radius:4px; display:flex; align-items:center;
  justify-content:center; font-size:var(--md-typography-font-size-400); color:var(--gantt-phase-fg);
}
.gantt-phase-bar-label{
  flex:1; min-width:0; font-family:var(--font-sans); font-size:var(--md-typography-font-size-300); color:var(--gantt-phase-fg);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.gantt-phase-bar-percent{ font-family:var(--font-sans); font-size:var(--md-typography-font-size-300); color:var(--md-neutral-foreground-3-rest); flex-shrink:0; }
.gantt-phase-caret{ flex-shrink:0; font-size:11px; color:var(--gantt-phase-fg); display:flex; cursor:pointer; }
.gantt-phase-caret i{ transition:transform .15s ease; }
.gantt-phase.collapsed .gantt-phase-caret i{ transform:rotate(-90deg); }
.gantt-phase-progress{ position:absolute; left:0; right:0; bottom:0; height:4px; background:var(--md-neutral-background-3-rest); }
.gantt-phase-progress-fill{ position:absolute; left:0; top:0; bottom:0; background:var(--gantt-phase-fg); }
.gantt-subtasks{ display:flex; flex-direction:column; }
.gantt-phase.collapsed .gantt-subtasks{ display:none; }
.gantt-subtask-track{ flex:1; min-width:0; position:relative; height:34px; margin:4px 16px; }
.gantt-subtask-bar{
  position:absolute; top:0; height:34px; box-sizing:border-box; display:flex; align-items:center;
  gap:2px; padding:0 8px 0 0; border-radius:var(--md-radius-60,6px); white-space:nowrap;
  overflow:hidden; background:var(--md-neutral-background-2-rest);
}
.gantt-subtask-bar-stripe{ flex-shrink:0; width:4px; height:34px; border-radius:0; background:var(--gantt-phase-fg); margin-right:2px; }
.gantt-subtask-bar.is-flipped{ flex-direction:row-reverse; padding:0 0 0 8px; }
.gantt-subtask-bar.is-flipped .gantt-subtask-bar-stripe{ margin-right:0; margin-left:2px; }
.gantt-subtask-bar-icon{
  flex-shrink:0; width:24px; height:24px; display:flex; align-items:center; justify-content:center;
  font-size:var(--md-typography-font-size-300); color:var(--gantt-phase-fg);
}
.gantt-subtask-bar-label{
  font-family:var(--font-sans); font-size:var(--md-typography-font-size-300); color:var(--md-neutral-foreground-2-rest);
  outline:none; white-space:nowrap;
}
.gantt-subtask-track:has(> .gantt-subtask-bar.is-wrapped){ height:auto; min-height:34px; }
.gantt-subtask-bar.is-wrapped{ position:relative; width:fit-content; height:auto; min-height:34px; white-space:normal; }
.gantt-subtask-bar.is-wrapped .gantt-subtask-bar-stripe{ align-self:stretch; height:auto; }
.gantt-subtask-bar.is-wrapped .gantt-subtask-bar-label{ white-space:normal; overflow-wrap:anywhere; padding:7px 0; }
.gantt-subtask-focus-top{ display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.gantt-subtask-focus-top input{ flex:1; min-width:0; }
.icon-select-trigger.gantt-type-trigger{ width:100%; justify-content:flex-start; padding:0 10px; gap:8px; font-family:var(--font-sans); font-size:13px; }
.icon-select-trigger.gantt-item-type-trigger{ width:100%; justify-content:space-between; padding:0 10px; gap:8px; font-family:var(--font-sans); font-size:13px; }
.gantt-type-select{ position:relative; display:flex; }
.prop-field:has(> .gantt-type-select){ position:relative; display:block; }
.prop-field:has(> .gantt-type-select) > span:first-child{
  position:absolute; left:9px; top:0; transform:translateY(-50%);
  font-size:var(--text-xs); line-height:1; z-index:1; pointer-events:none;
  background:var(--md-color-grey-white); padding:0 3px; margin-left:-3px;
}
.prop-field:has(> .gantt-type-select) > .gantt-type-select{ width:100%; }
.gantt-type-menu{ min-width:160px; }
.gantt-type-trigger .icon-select-caret{ margin-left:auto; }
.row-edit.gantt-phase-edit{ align-items:flex-start; }
.row-edit.gantt-phase-edit > .content-row-grip{ margin-top:14px; }
.row-edit.gantt-phase-edit > .content-row-remove{ margin-top:12px; }
.gantt-phase-fields{ flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.gantt-phase-edit:hover{ background:var(--md-neutral-background-2-rest); }
.gantt-subtask-focus-top + .prop-field{ margin-top:-12px; }
.gantt-phase-summary-line{
  display:flex; align-items:center; justify-content:flex-start; gap:8px; cursor:pointer;
  padding:6px 9px; border-radius:8px; font-family:var(--font-sans); font-size:12.5px;
  color:var(--ui-muted);
}
.gantt-phase-summary-line:hover{ background:var(--md-neutral-background-2-rest); color:var(--md-neutral-foreground-1-rest); }
.gantt-phase-summary-line i{ font-size:11px; }
.gantt-phase-focus-subtask-remove:disabled{ opacity:.35; cursor:default; }

