/* div.gantt_task_line.deadline-task,
.gantt_task_content.deadline-task ~ .gantt_task_line {
  border-left: 6px solid #ef4444 !important;
  border-left: 4px solid var(--deadline) !important;
}

div.gantt_task_line.deadline-task::after {
  content: "⚑" !important;
  position: absolute !important;
  top: -12px !important;
  right: -12px !important;
  background: #ef4444 !important;
  color: white !important;
  border-radius: 50% !important;
  width: 24px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  font-weight: bold !important;
  z-index: 20 !important;
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5) !important;
}

div.gantt_task_line.constraint-task {
  border-right: 5px solid #f59e0b !important;
}

div.task-label.constraint-task::before {
  content: "⛓" !important;
  margin-right: 6px !important;
  color: #f59e0b !important;
  font-size: 16px !important;
}

div.task-label {
  display: flex !important;
  align-items: center !important;
  font-weight: 500 !important;
}

.deadline-badge {
  margin-left: 6px !important;
  background: #ef4444 !important;
  color: white !important;
  border-radius: 50% !important;
  width: 18px !important;
  height: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 11px !important;
  font-weight: bold !important;
}

.gantt_task_line.has-baseline .gantt_task_progress {
  position: relative !important;
  background: linear-gradient(
    90deg,
    transparent 0%,
    #10b981 25%,
    #10b981 75%,
    transparent 100%
  ) !important;
}

.gantt_task_line.has-baseline .gantt_task_progress::before {
  content: "Planned" !important;
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 11px !important;
  color: #065f46 !important;
  font-weight: 600 !important;
  background: rgba(16, 185, 129, 0.3) !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
}

.completed-badge {
  margin-left: 6px;
  background: #10b981;
  color: white;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: bold;
}

.deadline-badge {
  margin-left: 6px;
  background: #ef4444;
  color: white;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: bold;
}

.gantt_task_row .gantt_task_line.deadline-task::after {
  content: "!";
  background: #dc2626;
  box-shadow: 0 2px 6px rgba(220, 38, 38, 0.35);
  font-size: 12px;
}

.t-project .gantt_task_content {
  border-left: 4px solid #64748b;
}

.t-task .gantt_task_content {
  background: #f5fbf7;
  border-left: 4px solid #16a34a;
  color: #14532d;
}

.gantt_task_row .gantt_task_line.constraint-task {
  border-right: 4px solid #d97706;
}

div.task-label.constraint-task::before {
  color: #d97706 !important;
}

.gantt_task_link.start_to_start .gantt_line_wrapper div {
  background-color: #9f1239;
}


.gantt_task_link.finish_to_finish .gantt_line_wrapper div {
  background-color: #15803d;
}

.grid-resizer {
  position: absolute;
  right: -8px;
  top: 0;
  width: 16px;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1));
  cursor: col-resize;
  z-index: 100;
  border-right: 2px solid #ccc;
}

.gantt_col_resize_handle {
  position: absolute;
  top: 0;
  right: -6px;
  width: 12px;
  height: 100%;
  cursor: col-resize;
  z-index: 9999;
}

.gantt_grid_head_cell {
  position: relative;
}

.gantt_task_line.t-project {
  --dhx-gantt-task-background: rgba(37, 99, 235, 0.75);
  --dhx-gantt-task-color: #fff;
}

.gantt_task_line.t-feature {
  --dhx-gantt-task-background: rgba(124, 58, 237, 0.25);
  --dhx-gantt-task-color: #4c1d95;
  border-left: 4px solid #7c3aed !important;
}

.gantt_task_line .task-label {
  color: var(--dhx-gantt-task-color);
}

.gantt_row,
.gantt_task_row {
  border-bottom-color: rgba(15, 23, 42, 0.08) !important;
}

.gantt_task_cell {
  border-right-color: rgba(15, 23, 42, 0.02) !important;
}

.gantt_row .gantt_cell {
  border-right-color: rgba(15, 23, 42, 0.02) !important;
} */

/* v9 HIGH specificity */

/* Deadlines */
div.gantt_task_line.deadline-task,
.gantt_task_content.deadline-task ~ .gantt_task_line {
  border-left: 4px solid var(--deadline, #ef4444) !important;
}

div.gantt_task_line.deadline-task::after {
  content: "⚑" !important;
  position: absolute !important;
  top: -12px !important;
  right: -12px !important;
  background: var(--deadline, #ef4444) !important;
  color: var(--badge-text-light, white) !important;
  border-radius: 50% !important;
  width: 24px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  font-weight: bold !important;
  z-index: 20 !important;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--deadline) 30%) !important;
}

div.gantt_task_line.constraint-task {
  border-right: 5px solid var(--constraint, #f59e0b) !important;
}

div.task-label.constraint-task::before {
  content: "⛓" !important;
  margin-right: 6px !important;
  color: var(--constraint, #f59e0b) !important;
  font-size: 16px !important;
}

div.task-label {
  display: flex !important;
  align-items: center !important;
  font-weight: 500 !important;
}

.deadline-badge {
  margin-left: 6px !important;
  background: var(--deadline, #ef4444) !important;
  color: var(--badge-text-light, white) !important;
  border-radius: 50% !important;
  width: 18px !important;
  height: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 11px !important;
  font-weight: bold !important;
}

.gantt_task_line.has-baseline .gantt_task_progress {
  position: relative !important;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--success, #10b981) 25%,
    var(--success, #10b981) 75%,
    transparent 100%
  ) !important;
}

.gantt_task_line.has-baseline .gantt_task_progress::before {
  content: "Planned" !important;
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 11px !important;
  color: color-mix(
    in srgb,
    var(--success) 60%
  ) !important; /* Darker green text */
  font-weight: 600 !important;
  background: color-mix(in srgb, var(--success) 15%) !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
}

.completed-badge {
  margin-left: 6px;
  background: var(--success, #10b981) !important;
  color: var(--badge-text-light, white) !important;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: bold;
}

.gantt_task_row .gantt_task_line.deadline-task::after {
  content: "!" !important;
  background: color-mix(in srgb, var(--deadline) 90%) !important;
  box-shadow: 0 2px 6px color-mix(in srgb, var(--deadline) 25%) !important;
  font-size: 12px;
}

/* =========================
   TASK HIERARCHY (CLEAN)
   ========================= */

.gantt_task_row .gantt_task_line.constraint-task {
  border-right: 4px solid var(--constraint, #d97706) !important;
}

div.task-label.constraint-task::before {
  color: var(--constraint, #d97706) !important;
}

/* Links - overrides for hierarchy */
.gantt_task_link.start_to_start .gantt_line_wrapper div {
  background-color: var(--hierarchy-link-ss, #9f1239) !important;
}
.gantt_task_link.finish_to_finish .gantt_line_wrapper div {
  background-color: #3b82f6 !important;
}

.gantt_task_link.finish_to_finish .gantt_line_wrapper,
.gantt_task_link.finish_to_finish > .gantt_line_wrapper > div {
  background-color: #3b82f6 !important;
}

/* Start-to-Start (Type 1) - Dashed Blue */
.start_to_start .gantt_line_wrapper div,
.start_to_start .gantt_line_wrapper .gantt_link_line_down {
  background: repeating-linear-gradient(
    to right,
    #ff6f8a 0px,
    #ff6f8a 6px,
    transparent 6px,
    transparent 10px
  );
}
.start_to_start .gantt_link_arrow {
  border-left-color: #3b82f6;
  /* --dhx-gantt-base-colors-icons: #3b82f6; */
}

.start_to_start .gantt_link_corner {
  border-color: #3b82f6;
}

/* } */

/* Finish-to-Finish (Type 2) - Dashed Purple */
.finish_to_finish .gantt_line_wrapper div {
  background: repeating-linear-gradient(
    to right,
    #a855f7 0px,
    #a855f7 8px,
    transparent 8px,
    transparent 12px
  );
}
.finish_to_finish .gantt_link_arrow {
  border-left-color: #a855f7 !important;
}

/* Start-to-Finish (Type 3) - Dotted Orange */
.finish_to_start .gantt_line_wrapper div,
.finish_to_start .gantt_line_wrapper .gantt_link_line_down {
  background: repeating-linear-gradient(
    to right,
    #fbbf24 0px,
    #fbbf24 3px,
    transparent 3px,
    transparent 6px
  ) !important;
}
.finish_to_start .gantt_link_corner {
  border-color: #fbbf24;
}

.finish_to_start .gantt_link_line_right {
  background-color: #f14d5f !important;
}

.finish_to_finish .gantt_link_arrow {
  border-left-color: #f14d5f !important;
}

/* Hover effects */
.gantt_task_link:hover .gantt_line_wrapper div {
  opacity: 0.8;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}

.grid-resizer {
  position: absolute;
  right: -8px;
  top: 0;
  width: 16px;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    color-mix(in srgb, var(--text-weak) 20%)
  ) !important;
  cursor: col-resize;
  z-index: 100;
  border-right: 2px solid var(--text-weak, #ccc) !important;
}

.gantt_col_resize_handle {
  position: absolute;
  top: 0;
  right: -6px;
  width: 12px;
  height: 100%;
  cursor: col-resize;
  z-index: 9999;
}

.gantt_grid_head_cell {
  position: relative;
}

/* Epic */
.t-project .gantt_task_content {
  border-left: 4px solid var(--hierarchy-epic, #64748b) !important;
}

.t-task .gantt_task_content {
  background: var(--hierarchy-story-bg, #f5fbf7) !important;
  border-left: 4px solid var(--success, #16a34a) !important;
  color: color-mix(in srgb, var(--success) 70%) !important;
}

/* Custom task vars (DHTMLX-compatible) */
.gantt_task_line.t-project {
  --dhx-gantt-task-background: rgba(37, 99, 235, 0.75);
  --dhx-gantt-task-color: #fff;
}

.gantt_task_line.t-feature {
  --dhx-gantt-task-background: var(--feature-bg, rgba(124, 58, 237, 0.25));
  --dhx-gantt-task-color: var(--feature-fg, #4c1d95);
  border-left: 4px solid var(--feature-accent, #7c3aed) !important;
}

.legend-project {
  background: var(--legend-project-bg, rgba(59, 130, 246, 0.32));
  border: 2px solid var(--legend-project-accent, #93c5fd);
}

.legend-task {
  background: var(--legend-task-bg, rgba(16, 185, 129, 0.28));
  border: 2px solid var(--legend-task-accent, #6ee7b7);
}

.legend-feature {
  background: var(--legend-feature-bg, rgba(147, 51, 163, 0.28));
  border: 2px solid var(--legend-feature-accent, #d948ef);
}

.legend-deadline {
  background: var(--legend-deadline-bg);
  border: 2px solid var(--legend-deadline-accent);
}

.gantt_task_line .task-label {
  color: var(--dhx-gantt-task-color) !important;
}

/* Separators */
.gantt_row,
.gantt_task_row {
  border-bottom-color: var(--grid-line, rgba(15, 23, 42, 0.08)) !important;
}

.gantt_task_cell {
  border-right-color: var(--cell-line, rgba(15, 23, 42, 0.02)) !important;
}

.gantt_row .gantt_cell {
  border-right-color: var(--cell-line, rgba(15, 23, 42, 0.02)) !important;
}

.draggable-legend {
  pointer-events: none;
}
.draggable-legend .pointer-events-auto {
  pointer-events: auto;
}
.draggable-legend:active {
  transition: none !important;
}
