/* Prognoza / Aktualne: lewa część tego samego paska, jaśniejszy odcień jego koloru. */
.gantt_aktualne_past {
  --past-bar: var(--gantt-pastel-task-bg, #d0e3f3);
  --past-edge: var(--gantt-pastel-task-border, #a8c5dd);
  position: absolute;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--past-bar) 42%, #fff) !important;
  border: 1px solid var(--past-edge) !important;
  border-right-width: 0 !important;
  border-radius: 6px 0 0 6px;
  pointer-events: none;
  z-index: 0;
}
.gantt_aktualne_past.past-projekt {
  --past-bar: var(--gantt-pastel-projekt-bg, #ddd6fe);
  --past-edge: var(--gantt-pastel-projekt-border, #c4b5fd);
}
.gantt_aktualne_past.past-parent {
  --past-bar: var(--gantt-pastel-parent-bg, #d1fae5);
  --past-edge: var(--gantt-pastel-parent-border, #6ee7b7);
}
.gantt_aktualne_past.past-worker {
  --past-bar: var(--gantt-pastel-worker-bg, #c7e9d5);
  --past-edge: var(--gantt-pastel-worker-border, #86efac);
}
.gantt_aktualne_past.past-overdue {
  --past-bar: var(--gantt-pastel-overdue-bg, #ffedd5);
  --past-edge: var(--gantt-pastel-overdue-border, #fdba74);
}
.gantt_aktualne_past.past-done {
  --past-bar: var(--gantt-pastel-done-bg, #4b5563);
  --past-edge: var(--gantt-pastel-done-border, #374151);
}
.gantt_aktualne_past.past-overplan {
  --past-bar: var(--gantt-pastel-overplan-bg, #fecaca);
  --past-edge: var(--gantt-pastel-overplan-border, #ef4444);
}
.gantt_task_line.gantt_has_past,
.gantt_task_line.domino_zadanie.gantt_has_past,
.gantt_task_line.domino_zadanie_parent.gantt_has_past,
.gantt_task_line.domino_projekt.gantt_has_past,
.gantt_task_line.domino_overdue.gantt_has_past,
.gantt_task_line.gantt_obc_person.gantt_has_past {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-left-width: 0 !important;
}

/* Znacznik dnia dzisiejszego na osi Gantta */
.gantt_task_cell.gantt_today,
.gantt_scale_cell.gantt_today {
  background-color: rgba(239, 68, 68, 0.14) !important;
}

.gantt_scale_cell.gantt_today {
  color: #dc2626;
  font-weight: 700;
}

.gantt_marker.gantt_today_marker {
  background-color: #ef4444;
  width: 2px;
  z-index: 4;
}

.gantt_marker.gantt_today_marker .gantt_marker_content {
  background: #ef4444;
  color: #fff;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  padding: 2px 5px;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.18);
}

.gantt_views [data-gantt-today] {
  margin-left: 2px;
}

/* Widok „wg zadań i wykonawców”: pasek osoby to jaśniejszy, wyblakły odcień zadania. */
.gantt_task_line.domino_zadanie.gantt_obc_person,
.gantt_page .gantt_task_line.domino_zadanie.gantt_obc_row.gantt_obc_person {
  --dhx-gantt-task-background: color-mix(in srgb, var(--gantt-pastel-task-bg, #d0e3f3) 46%, #fff);
  --dhx-gantt-task-progress-color: color-mix(in srgb, var(--gantt-pastel-task-bg, #d0e3f3) 46%, #fff);
  background-color: color-mix(in srgb, var(--gantt-pastel-task-bg, #d0e3f3) 46%, #fff) !important;
  border: 1px solid color-mix(in srgb, var(--gantt-pastel-task-border, #a8c5dd) 42%, #fff) !important;
}
.gantt_task_line.gantt_obc_person.domino_zadanie_done,
.gantt_page .gantt_task_line.gantt_obc_row.gantt_obc_person.domino_zadanie_done {
  --dhx-gantt-task-background: color-mix(in srgb, var(--gantt-pastel-done-bg, #4b5563) 38%, #fff);
  --dhx-gantt-task-progress-color: color-mix(in srgb, var(--gantt-pastel-done-bg, #4b5563) 38%, #fff);
  background-color: color-mix(in srgb, var(--gantt-pastel-done-bg, #4b5563) 38%, #fff) !important;
  border-color: color-mix(in srgb, var(--gantt-pastel-done-border, #374151) 36%, #fff) !important;
}
.gantt_task_line.gantt_obc_person.domino_zadanie_overplan,
.gantt_page .gantt_task_line.gantt_obc_row.gantt_obc_person.domino_zadanie_overplan {
  --dhx-gantt-task-background: color-mix(in srgb, var(--gantt-pastel-overplan-bg, #fecaca) 48%, #fff);
  --dhx-gantt-task-progress-color: color-mix(in srgb, var(--gantt-pastel-overplan-bg, #fecaca) 48%, #fff);
  background-color: color-mix(in srgb, var(--gantt-pastel-overplan-bg, #fecaca) 48%, #fff) !important;
  border-color: color-mix(in srgb, var(--gantt-pastel-overplan-border, #ef4444) 40%, #fff) !important;
}
.gantt_task_line.gantt_obc_person.domino_overdue,
.gantt_page .gantt_task_line.gantt_obc_row.gantt_obc_person.domino_overdue {
  --dhx-gantt-task-background: color-mix(in srgb, var(--gantt-pastel-overdue-bg, #ffedd5) 52%, #fff);
  --dhx-gantt-task-progress-color: color-mix(in srgb, var(--gantt-pastel-overdue-bg, #ffedd5) 52%, #fff);
  background-color: color-mix(in srgb, var(--gantt-pastel-overdue-bg, #ffedd5) 52%, #fff) !important;
  border-color: color-mix(in srgb, var(--gantt-pastel-overdue-border, #fdba74) 42%, #fff) !important;
}
.gantt_task_line.gantt_obc_person .gantt_task_content,
.gantt_task_line.gantt_obc_person .obl-tl-task-hours,
.gantt_task_line.gantt_obc_person .obl-tl-task-title,
.gantt_task_line.gantt_obc_person .obl-task-path,
.gantt_task_line.gantt_obc_person .obl-task-path span {
  color: color-mix(in srgb, var(--gantt-pastel-task-fg, #004080) 72%, #64748b) !important;
}
.gantt_row.gantt_obc_person .gantt_cell {
  background-color: color-mix(in srgb, var(--gantt-pastel-task-bg, #d0e3f3) 28%, #fff);
}

/* Zestawienie Pracownik: płaski kolor i liczba, bez paska wypełnienia. */
.gantt_histogram_fill {
  display: none !important;
}
.gantt_histogram_cell.column_ok {
  background-color: #d4edda !important;
}
.gantt_histogram_cell.column_overload {
  background-color: #f8d7da !important;
}
.gantt_histogram_cell .gantt_histogram_label {
  line-height: 22px;
}

/* Widok wg Projektów: na projekcie i wykonawcy liczby obciążenia, bez paska. */
.gantt_task_line.domino_load_parent {
  display: none !important;
}
.gantt_task_row.domino_load_parent {
  position: relative;
}
.gantt_task_row.domino_load_parent .gp2-worker-load-host {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}
.gantt_task_row.domino_load_parent .gp2-worker-load-cell {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0 2px;
  overflow: hidden;
  pointer-events: none;
}
.gantt_task_row.domino_load_parent .gp2-worker-load-cell .obl-cell {
  width: calc(100% - 6px);
  min-height: 22px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 0 3px;
  box-sizing: border-box;
  white-space: nowrap;
  background: #dcfce7;
  color: #166534;
}
.gantt_task_row.domino_load_parent .gp2-worker-load-cell.is-over .obl-cell {
  background: #fee2e2;
  color: #991b1b;
}

.gantt_views [data-gantt-today].is-muted,
.gantt_views [data-gantt-today]:disabled {
  opacity: 0.45;
  color: #9ca3af;
  background: #f3f4f6;
  border-color: #e5e7eb;
  cursor: default;
}

/* Wnioski urlopowe — wirtualny projekt + pasek nieobecności */
.gantt_task_line.domino_projekt_leave {
  background: #c7d2fe !important;
  border-color: #818cf8 !important;
}
.gantt_task_line.domino_zadanie_leave:not(.domino_zadanie_parent) {
  background: #a5b4fc !important;
  border-color: #6366f1 !important;
}
.gantt_task_line.domino_zadanie_leave .gantt_task_content {
  color: #312e81;
  font-weight: 600;
}
.gantt_grid_data .gantt_row.domino_projekt_leave .gantt_tree_content,
.gantt_grid_data .gantt_row.domino_zadanie_leave .gantt_tree_content {
  color: #4338ca;
}


/* >< czerwone = zwiń (zostaje Zadanie), <> zielone = rozwiń kolumny. */
.gantt_toolbar .gantt_tree_btns > button.gantt_tree_toggle,
.gantt_toolbar .gantt_tree_btns > button.gantt_tree_toggle:hover,
.gantt_toolbar .gantt_toolbar_right > button.gantt_cols_toggle,
.gantt_toolbar .gantt_toolbar_right > button.gantt_cols_toggle:hover {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  width: auto;
  min-width: var(--gantt-toolbar-h, 32px);
  height: var(--gantt-toolbar-h, 32px);
  padding: 0 8px;
  border: 1px solid var(--ctrl-border, #e5e7eb);
  border-radius: 6px;
  background: #fff;
  font-weight: 700;
  font-size: 15px;
  line-height: 1;
  letter-spacing: -0.4px;
  color: #dc2626;
  cursor: pointer;
  box-sizing: border-box;
}
.gantt_toolbar .gantt_tree_btns > button.gantt_tree_toggle.is-collapsed,
.gantt_toolbar .gantt_tree_btns > button.gantt_tree_toggle.is-collapsed:hover,
.gantt_toolbar .gantt_toolbar_right > button.gantt_cols_toggle.is-collapsed,
.gantt_toolbar .gantt_toolbar_right > button.gantt_cols_toggle.is-collapsed:hover {
  background: #fff;
  color: #16a34a;
}

.gantt_toolbar_right [data-gantt-compact] {
  min-width: var(--gantt-toolbar-h, 32px);
  padding: 0 10px;
  font-weight: 600;
  letter-spacing: -0.5px;
}

.gantt_ico_compact {
  width: 14px;
  height: 14px;
  display: block;
}
.gantt_toolbar > .gantt_tree_btns {
  align-self: flex-end;
}
.gantt_dane_tools {
  display: flex;
  align-items: flex-end;
  gap: 6px;
}
.gantt_dane_tools > .gantt_tree_btns {
  align-self: flex-end;
}

/* Plan i Realizacja: Xh/Yh na wierszu pracownika (widok wg wykonawców). */
.gantt_page[data-gantt="realizacja"] .gantt_task_line.domino_worker_group,
.gantt_page[data-gantt="szanse"] .gantt_task_line.domino_worker_group,
.gantt_page[data-gantt="realizacja"] .gantt_task_line.group_row,
.gantt_page[data-gantt="szanse"] .gantt_task_line.group_row {
  display: none !important;
}
.gantt_page[data-gantt="realizacja"] .gantt_task_row.domino_worker_group,
.gantt_page[data-gantt="szanse"] .gantt_task_row.domino_worker_group {
  position: relative;
}
.gantt_page[data-gantt="realizacja"] .gantt_task_row.domino_worker_group .gp2-worker-load-host,
.gantt_page[data-gantt="szanse"] .gantt_task_row.domino_worker_group .gp2-worker-load-host {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}
.gantt_page[data-gantt="realizacja"] .gantt_task_row.domino_worker_group .gp2-worker-load-cell,
.gantt_page[data-gantt="szanse"] .gantt_task_row.domino_worker_group .gp2-worker-load-cell {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0 2px;
  pointer-events: none;
}
.gantt_page[data-gantt="realizacja"] .gp2-worker-load-cell .obl-cell,
.gantt_page[data-gantt="szanse"] .gp2-worker-load-cell .obl-cell {
  width: calc(100% - 6px);
  min-height: 22px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 0 3px;
  box-sizing: border-box;
  white-space: nowrap;
}
.gantt_page[data-gantt="realizacja"] .gp2-worker-load-cell .obl-cell .obl-cell-sep,
.gantt_page[data-gantt="szanse"] .gp2-worker-load-cell .obl-cell .obl-cell-sep {
  opacity: 0.55;
  font-weight: 500;
  margin: 0 1px;
}
.gantt_page[data-gantt="realizacja"] .gp2-worker-load-cell.is-ok .obl-cell,
.gantt_page[data-gantt="szanse"] .gp2-worker-load-cell.is-ok .obl-cell {
  background: #dcfce7;
  color: #166534;
}
.gantt_page[data-gantt="realizacja"] .gp2-worker-load-cell.is-over .obl-cell,
.gantt_page[data-gantt="szanse"] .gp2-worker-load-cell.is-over .obl-cell {
  background: #fee2e2;
  color: #991b1b;
}

/* Pola edycyjne w siatce — jak reszta tabeli, ramka dopiero po najechaniu. */
.gantt_cell:has(.gantt_grid_inp) {
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.gantt_tree_content:has(.gantt_grid_inp) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  line-height: normal;
}
.gantt_grid_inp {
  box-sizing: border-box;
  display: block;
  width: calc(100% - 8px);
  max-width: 100%;
  min-width: 0;
  height: 20px;
  margin: 0;
  padding: 0 4px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 11px;
  font-weight: inherit;
  line-height: 20px;
  text-align: center;
  box-shadow: none;
}
.gantt_grid_inp:hover,
.gantt_grid_inp:focus {
  background: #fff;
  border-color: #c5d0e6;
  outline: none;
  box-shadow: none;
}
.gantt_grid_inp.is-saving { opacity: 0.55; }
.gantt_grid_inp_num {
  -moz-appearance: textfield;
  appearance: textfield;
}
.gantt_grid_inp_num::-webkit-outer-spin-button,
.gantt_grid_inp_num::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.gantt_date_edit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: calc(100% - 8px);
  height: 20px;
  margin: 0;
  padding: 0 18px 0 4px;
  border: 1px solid transparent;
  border-radius: 4px;
  line-height: 20px;
}
.gantt_date_edit:hover,
.gantt_date_edit:focus-within {
  background: #fff;
  border-color: #c5d0e6;
}
.gantt_date_edit_txt {
  pointer-events: none;
  font-size: 11px;
  white-space: nowrap;
}
.gantt_date_edit::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 3px;
  width: 14px;
  height: 14px;
  pointer-events: none;
  opacity: 0.55;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Crect x='1.5' y='2.5' width='11' height='10' rx='1.2' fill='none' stroke='%236b7280' stroke-width='1.2'/%3E%3Cpath d='M1.5 5.5h11M4.5 1.5v2M9.5 1.5v2' stroke='%236b7280' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat;
}
.gantt_date_edit .gantt_grid_inp {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  opacity: 0;
  cursor: pointer;
}
.gantt_date_edit:has(.is-saving) { opacity: 0.55; }
.resourceGrid_cell .gantt_grid_head_cell {
  cursor: pointer;
}
