/* Container */
.gantt_container {
  background-color: var(--vp-bg-dark);
  border: none;
}

/* Grid (left panel) */
.gantt_grid {
  background-color: var(--vp-bg-dark);
}

.gantt_grid_head_cell {
  background-color: var(--vp-bg-elevated);
  color: var(--vp-text-primary);
  border-right: 1px solid var(--vp-border);
  border-bottom: 1px solid var(--vp-border);
  font-weight: 600;
}

.gantt_grid_data .gantt_row {
  background-color: var(--vp-bg-dark);
  border-bottom: 1px solid var(--vp-border-light);
}

.gantt_grid_data .gantt_row.odd {
  background-color: var(--vp-bg-surface);
}

.gantt_grid_data .gantt_row:hover,
.gantt_task_row:hover {
  background-color: rgba(52, 152, 219, 0.15) !important;
  color: #fff !important;
}

.gantt_grid_data .gantt_row:hover .gantt_cell {
  color: #fff !important;
}

.gantt_grid_data .gantt_row.gantt_selected,
.gantt_task_row.gantt_selected {
  background-color: rgba(52, 152, 219, 0.25) !important;
  border-left: 2px solid var(--vp-primary) !important;
  color: #fff !important;
}

.gantt_grid_data .gantt_row.gantt_selected .gantt_cell {
  color: #fff !important;
}

/* Ocultar flechitas incrementadoras (spinners) de los inputs en navegadores */
.gantt_grid .gantt_row input[type=number]::-webkit-inner-spin-button, 
.gantt_grid .gantt_row input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}
.gantt_grid .gantt_row input[type=number] {
  -moz-appearance: textfield;
}

/* Resaltado de celda activa con foco */
.gantt_cell.gantt_selected {
  outline: 1px solid var(--vp-primary) !important;
  background-color: rgba(52, 152, 219, 0.1) !important;
}

.gantt_cell {
  color: var(--vp-text-primary);
  border-right: 1px solid var(--vp-border-light);
}

.gantt_cell .gantt_tree_icon {
  filter: invert(0.8);
}

/* Timeline (right panel) */
.gantt_task {
  background-color: var(--vp-bg-dark);
}

.gantt_task_row {
  background-color: var(--vp-bg-dark);
  border-bottom: 1px solid var(--vp-border-light);
}

.gantt_task_row.odd {
  background-color: var(--vp-bg-surface);
}

.gantt_task_row:hover {
  background-color: rgba(255, 255, 255, 0.04) !important;
}

/* Scale (timeline header) */
.gantt_scale_line {
  background-color: var(--vp-bg-elevated);
  border-bottom: 1px solid var(--vp-border);
  color: var(--vp-text-secondary);
}

.gantt_scale_cell {
  border-right: 1px solid var(--vp-border-light);
  color: var(--vp-text-primary);
}

/* Task bars */
.gantt_task_line {
  background-color: var(--vp-primary);
  border: 1px solid var(--vp-primary-hover);
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

.gantt_task_line .gantt_task_progress {
  background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.4) 100%);
  background-color: var(--vp-primary-hover);
}

.gantt_task_line .gantt_task_content {
  color: white;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
}

.gantt_task_line.gantt_project {
  background-color: var(--vp-project-bar);
  border-color: var(--vp-project-bar);
}
.gantt_task_line.gantt_project .gantt_task_content {
  font-weight: bold;
}

.gantt_task_line.gantt_milestone {
  background-color: var(--vp-milestone);
  border: none;
}
.gantt_task_line.gantt_milestone .gantt_task_content {
  display: none;
}

/* Critical path tasks */
.gantt_task_line.critical-task {
  background-color: var(--vp-critical) !important;
  border-color: #b91c1c !important;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.6);
  animation: pulseCritical 2s infinite;
}
@keyframes pulseCritical {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
  70% { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

/* Dependency links */
.gantt_line_wrapper div {
  background-color: var(--vp-text-muted) !important;
}
.gantt_link_arrow {
  border-left-color: var(--vp-text-muted) !important;
}
.gantt_link_arrow_right {
  border-left-color: var(--vp-text-muted) !important;
}
.gantt_link_arrow_left {
  border-right-color: var(--vp-text-muted) !important;
}
.gantt_link_arrow_up {
  border-bottom-color: var(--vp-text-muted) !important;
}
.gantt_link_arrow_down {
  border-top-color: var(--vp-text-muted) !important;
}
.gantt_link_control div {
  background-color: var(--vp-text-muted);
}

/* Splitter/resizer between grid and timeline */
.gantt_layout_cell_separator {
  background-color: var(--vp-border);
  width: 3px;
  cursor: col-resize;
}
.gantt_layout_cell_separator:hover {
  background-color: var(--vp-primary);
}

/* Inline editor */
.gantt_grid .gantt_row input, 
.gantt_grid .gantt_row select {
  background-color: var(--vp-bg-surface);
  color: var(--vp-text-primary);
  border: 1px solid var(--vp-primary);
  border-radius: 3px;
  padding: 0 4px;
  font-family: inherit;
}

/* Lightbox (task edit dialog) */
.gantt_cal_light {
  background-color: var(--vp-bg-elevated);
  border: 1px solid var(--vp-border);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  color: var(--vp-text-primary);
  font-family: var(--font-family);
}
.gantt_cal_light_title {
  background-color: var(--vp-bg-surface);
  border-bottom: 1px solid var(--vp-border);
  color: var(--vp-text-primary);
  border-radius: 8px 8px 0 0;
}
.gantt_cal_light select, 
.gantt_cal_light input, 
.gantt_cal_light textarea {
  background-color: var(--vp-bg-dark);
  color: var(--vp-text-primary);
  border: 1px solid var(--vp-border);
  border-radius: 4px;
  padding: 4px;
}
.gantt_section_time {
  background-color: var(--vp-bg-surface) !important;
  color: var(--vp-text-primary);
}
.gantt_btn_set {
  background-color: var(--vp-bg-surface);
  color: var(--vp-text-primary);
  border: 1px solid var(--vp-border);
  border-radius: 4px;
}
.gantt_btn_set:hover {
  background-color: var(--vp-bg-surface-hover);
}

/* Today marker line */
.gantt_marker {
  background-color: rgba(239, 68, 68, 0.4);
  border-left: 1px dashed var(--vp-critical);
}
.gantt_marker .gantt_marker_content {
  color: var(--vp-text-primary);
  background: var(--vp-critical);
  border-radius: 3px;
  padding: 2px 4px;
  font-size: 10px;
}

/* Tooltip */
.gantt_tooltip {
  background-color: rgba(34, 38, 46, 0.95);
  backdrop-filter: blur(5px);
  border: 1px solid var(--vp-border);
  color: var(--vp-text-primary);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  font-family: var(--font-family);
  padding: 8px 12px;
}

/* Grid header sort icons */
.gantt_grid_head_cell .gantt_sort {
  opacity: 0.7;
}

/* Tree indent connector lines */
.gantt_tree_indent {
  background-image: none !important;
}

/* Atenuar cuadrícula (suprimir líneas blancas molestas) */
.gantt_task_cell {
  border-right: 1px solid rgba(255, 255, 255, 0.015) !important;
  background-color: var(--vp-bg-dark) !important;
}
.gantt_task_cell.week_end {
  background-color: rgba(255, 255, 255, 0.005) !important;
}
.gantt_task_row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.015) !important;
  background-color: var(--vp-bg-dark) !important;
}
.gantt_task_row.odd .gantt_task_cell {
  background-color: var(--vp-bg-surface) !important;
}
.gantt_cell {
  border-right: 1px solid rgba(255, 255, 255, 0.02) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.02) !important;
}
.gantt_grid_data .gantt_row {
  border-bottom: 1px solid rgba(255, 255, 255, 0.02) !important;
}
.gantt_scale_cell {
  border-right: 1px solid rgba(255, 255, 255, 0.03) !important;
}
.gantt_scale_line {
  border-bottom: 1px solid rgba(255, 255, 255, 0.03) !important;
}

/* Resaltar editor inline activo */
.gantt_grid .gantt_row input,
.gantt_grid .gantt_row select {
  background-color: var(--vp-bg-elevated) !important;
  color: #fff !important;
  border: 1px solid var(--vp-primary) !important;
  box-shadow: 0 0 5px var(--vp-primary-glow) !important;
  font-family: var(--font-family) !important;
  font-size: 13px !important;
}

/* Etiquetas a los costados de las barras Gantt */
.gantt-leftside-label {
  color: var(--vp-text-primary) !important;
  font-family: var(--font-family) !important;
  font-size: 11px !important;
  font-weight: 500;
  padding-right: 5px;
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
}

.gantt-resource-label {
  color: var(--vp-text-secondary) !important;
  background-color: rgba(255, 255, 255, 0.05);
  font-family: var(--font-family) !important;
  font-size: 10px !important;
  font-weight: 600;
  border-radius: 4px;
  padding: 2px 6px;
  margin-left: 5px;
}
