/***** Planner chart *****/
.planner-chart .planner-row {
  height: 20px;
  line-height: 20px;
  position: relative;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.planner-chart .planner-subjects { font-size: 0.8em; }
.planner-chart .planner-subject > span.icon { display: inline; }
.planner-chart .planner-subjects .avatar { margin-inline-end: 4px; }
.planner-chart .planner-subject > span.expander { cursor: pointer; display: inline-block; width: 18px; }
.planner-chart .issue-closed a { text-decoration: line-through; }

.planner-chart .planner-subject { padding-right: var(--planner-cells-width); }
.planner-chart .planner-cells { position: absolute; top: 0; right: 0; height: 100%; display: flex; background: inherit; }
.planner-chart .planner-cell {
  flex: none;
  box-sizing: border-box;
  padding: 0 4px;
  border-right: 1px solid var(--oc-gray-3, #dee2e6);
  overflow: hidden;
  text-overflow: ellipsis;
}
.planner-chart .planner-cell:first-child { border-left: 1px solid transparent; }
.planner-chart .planner-subject .planner-cell { border-color: transparent; }
.planner-chart .planner-subject .planner-cell .progress { margin-top: 5px; }
.planner-chart .gantt_hdr .planner-cells { right: -1px; }
.planner-chart .gantt_hdr .planner-cell { border-color: var(--oc-gray-4, #c0c0c0); }
.planner-chart .planner-cells-hdr .planner-cell { position: relative; overflow: visible; }
.planner-chart .planner-cells-hdr .planner-cell .gantt_hdr_selected_column_name { margin: 0; }
.planner-chart .planner-cells-hdr .planner-cell > .ui-resizable-e { right: -4px; }
.planner-chart .planner-cells-hdr .planner-cell:last-child > .ui-resizable-e { right: 0; }
.planner-options > fieldset { display: inline-block; }
.planner-chart td.gantt_subjects_column > .ui-resizable-e { right: calc(var(--planner-cells-width) - 3px); }
.planner-chart > tbody > tr > td { vertical-align: top; }
.planner-chart .planner-subjects { display: flow-root; }
@media screen and (max-width: 899px) {
  .planner-chart { --planner-cells-width: 0px !important; }
  .planner-chart .planner-cells { display: none; }
}

.planner-chart .planner-group-subject,
.planner-chart .planner-group-line,
.planner-chart .planner-versions-subject,
.planner-chart .planner-versions-line {
  height: 28px;
  line-height: 28px;
  border-top: 1px solid var(--oc-gray-4, #c0c0c0);
  border-bottom: 1px solid var(--oc-gray-4, #c0c0c0);
  background: var(--oc-gray-0, #f6f7f8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.planner-chart .planner-row:first-child,
.planner-chart :not(.planner-row) + .planner-row { margin-top: 4px; }
.planner-chart .planner-row:has(+ .planner-group-subject),
.planner-chart .planner-row:has(+ .planner-group-line) { margin-bottom: 4px; }
.planner-chart .planner-group-subject,
.planner-chart .planner-group-line { margin-top: -1px; }
.planner-chart .planner-group-subject:first-child,
.planner-chart .planner-group-line:first-child { margin-top: 0; }
.planner-chart .planner-group-subject { padding-left: 4px; font-weight: bold; }
.planner-chart .planner-versions-subject { padding-left: 22px; font-weight: bold; }
.planner-chart .planner-group-subject .expander { cursor: pointer; }
.planner-chart .planner-group-subject .count { color: #aaa; font-weight: normal; margin-left: 4px; }

.planner-chart .planner-bar {
  position: absolute;
  top: 2px;
  height: 14px;
  background: #c3dfca;
  border: 1px solid #6fa881;
  border-radius: 2px;
  box-sizing: content-box;
}
.planner-chart .planner-bar.parent {
  height: 11px;
  background: var(--oc-gray-3, #dee2e6);
  border-color: var(--oc-gray-5, #adb5bd);
  border-radius: 0;
}
.planner-chart .planner-bar.parent::before,
.planner-chart .planner-bar.parent::after {
  content: ''; position: absolute; bottom: -6px; border-top: 5px solid var(--oc-gray-5, #adb5bd);
}
.planner-chart .planner-bar.parent::before { left: -1px; border-right: 5px solid transparent; }
.planner-chart .planner-bar.parent::after { right: -1px; border-left: 5px solid transparent; }
.planner-chart .planner-bar.parent .planner-label { line-height: 11px; }
.planner-chart .planner-bar.no-due { border-right-style: dashed; border-top-right-radius: 8px; border-bottom-right-radius: 8px; }
.planner-chart .planner-bar.no-start { border-left-style: dashed; border-top-left-radius: 8px; border-bottom-left-radius: 8px; }
.planner-chart .planner-bar.issue-closed { opacity: 0.5; }
.planner-chart .planner-done { height: 100%; background: #9cc8a8; }
.planner-chart .planner-bar.parent .planner-done { opacity: 0; }
.planner-chart .planner-line { overflow: visible; }
.planner-chart div.tooltip:hover span.tip { top: 16px; }

.planner-chart #gantt_area .gantt_hdr.nwday-blur {
  border-left: none;
  border-right: none;
  background-color: #f1f1f1;
  color: #999;
  opacity: 0.5;
  z-index: 1;
  pointer-events: none;
}
.planner-chart .gantt_subjects_container .gantt_hdr { z-index: auto; }
.planner-chart div.gantt_hdr.bookings-column small {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.planner-chart a.toggle-all {
  color: #aaa;
  font-size: 80%;
  margin: auto 4px auto auto;
  padding: 0 4px;
  display: none;
}
.planner-chart .gantt_hdr:hover a.toggle-all { display: block; }

/***** Relations *****/
.planner-chart svg.planner-relations { position: absolute; top: 0; left: 0; pointer-events: none; z-index: 3; overflow: visible; }
.planner-chart .planner-relation { fill: none; stroke-width: 2px; }
.planner-chart .planner-relation.precedes { stroke: var(--oc-blue-6, #228be6); }
.planner-chart .planner-relation.blocks { stroke: var(--oc-gray-6, #868e96); stroke-dasharray: 4 3; }
.planner-chart .planner-relation.violation { stroke: var(--oc-red-6, #fa5252); }
.planner-chart .planner-arrowhead { stroke: none; pointer-events: none; }
.planner-chart .planner-arrowhead.precedes { fill: var(--oc-blue-6, #228be6); }
.planner-chart .planner-arrowhead.blocks { fill: var(--oc-gray-6, #868e96); }
.planner-chart .planner-arrowhead.violation { fill: var(--oc-red-6, #fa5252); }

/***** Draft editing *****/
.planner-chart .planner-bar.editable { cursor: pointer; }
.planner-chart .planner-bar.draft { background: var(--oc-yellow-1, #fff3bf); border-color: var(--oc-yellow-6, #fab005); }
.planner-chart .planner-bar.draft .planner-done { background: var(--oc-yellow-6, #fab005); opacity: 0.4; }
.planner-chart .planner-bar.draft.parent::before,
.planner-chart .planner-bar.draft.parent::after { border-top-color: var(--oc-yellow-6, #fab005); }
.planner-chart .planner-original { position: absolute; top: 17px; height: 2px; background: var(--oc-gray-5, #adb5bd); }
.planner-chart .planner-draft-info { border-bottom: 1px solid var(--oc-gray-4, #ced4da); margin-bottom: 4px; padding-bottom: 4px; }
.planner-chart .tip { white-space: normal; }
.planner-chart div.tooltip:hover span.tip { visibility: hidden; }
.planner-chart div.tooltip.show-tip:hover span.tip { visibility: visible; }
.planner-chart .planner-bar.ui-draggable-dragging,
.planner-chart .planner-bar.ui-resizable-resizing { z-index: 4; background: var(--oc-yellow-2, #ffec99); }
.planner-chart .ui-resizable-handle { opacity: 0; }
.planner-chart .planner-bar:hover .ui-resizable-handle { opacity: 1; }
.planner-chart .ui-resizable-e, .planner-chart .ui-resizable-w, .planner-chart .ui-resizable-resizing { cursor: ew-resize; }
.planner-chart .ui-resizable-e { right: 0; }
.planner-chart .ui-resizable-w { left: 0; }
.planner-chart .ui-resizable-handle:after {
  content: ''; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto;
  width: 0; height: 8px; border-left: 2px dotted #595959;
}
.planner-chart .planner-lines.is-active .tooltip span.tip,
.planner-chart .planner-lines.is-active .planner-add:not(.is-active) { display: none; }
.planner-chart .planner-add {
  position: absolute; top: 2px; left: 0; height: 12px; cursor: cell; opacity: 0;
  background: var(--oc-gray-2, #e5e5e5); border: 1px dotted var(--oc-gray-5, #aaa);
}
.planner-chart .planner-line:hover .planner-add { opacity: 1; }
.planner-chart .planner-add.is-active { background: var(--oc-yellow-1, #fff3bf); border: 1px solid var(--oc-yellow-6, #fab005); opacity: 1; }
.planner-chart .planner-add .ui-resizable-e { width: 100%; cursor: cell; }
.planner-chart .planner-add.is-active .ui-resizable-e { cursor: ew-resize; }
#planner-undo, #planner-redo { margin-left: 0.5em; }
#planner-undo:not(:has(svg)) { background-image: url("/assets/plugin_assets/redmineup_planner/arrow_undo-22117cd9.png"); }
#planner-redo:not(:has(svg)) { background-image: url("/assets/plugin_assets/redmineup_planner/arrow_redo-933bf1f3.png"); }
.planner-options p { white-space: nowrap; margin: 2px; }
.planner-options p > label:first-child { min-width: 100px; display: inline-block; }
.planner-disabled { opacity: 0.4; pointer-events: none; }

/***** Dependencies editing *****/
.planner-chart .planner-relation { pointer-events: stroke; cursor: pointer; }
.planner-chart .planner-relation.draft { stroke-dasharray: 6 3; }
.planner-chart .planner-relation.rubber { stroke: var(--oc-gray-6, #868e96); stroke-dasharray: 4 3; pointer-events: none; }
.planner-chart .planner-link {
  position: absolute; top: 3px; width: 6px; height: 6px; border-radius: 50%; background: #fff; border: 1px solid var(--oc-gray-6, #868e96);
  cursor: crosshair; opacity: 0; z-index: 5;
}
.planner-chart .planner-bar:hover .planner-link, .planner-chart .planner-link:hover { opacity: 1; }
.planner-chart .planner-link:hover { background: var(--oc-gray-6, #868e96); }
.planner-chart .planner-link-start { left: -11px; }
.planner-chart .planner-link-end { right: -11px; }
.planner-chart .planner-lines.is-linking .planner-bar { cursor: crosshair; }
.planner-chart .planner-lines.is-linking .planner-link { opacity: 0; }
.planner-chart .planner-bar.planner-link-target { box-shadow: 0 0 0 2px var(--oc-gray-6, #868e96); }
.planner-chart.no-relations .planner-link { display: none; }


/***** Bar labels and colours *****/
.planner-chart .planner-label {
  position: absolute; top: 0; left: 8px; right: 8px; line-height: 14px; font-size: 0.7em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; color: var(--oc-gray-8, #343a40);
}
.planner-chart .planner-color-green { --planner-bg: var(--oc-green-1, #d3f9d8); --planner-fg: var(--oc-green-6, #40c057); }
.planner-chart .planner-color-blue { --planner-bg: var(--oc-indigo-1, #dbe4ff); --planner-fg: var(--oc-indigo-6, #4c6ef5); }
.planner-chart .planner-color-turquoise { --planner-bg: var(--oc-teal-1, #c3fae8); --planner-fg: var(--oc-teal-6, #12b886); }
.planner-chart .planner-color-lightgreen { --planner-bg: var(--oc-lime-1, #e9fac8); --planner-fg: var(--oc-lime-6, #82c91e); }
.planner-chart .planner-color-yellow { --planner-bg: var(--oc-yellow-1, #fff3bf); --planner-fg: var(--oc-yellow-6, #fab005); }
.planner-chart .planner-color-orange { --planner-bg: var(--oc-orange-1, #ffe8cc); --planner-fg: var(--oc-orange-6, #fd7e14); }
.planner-chart .planner-color-red { --planner-bg: var(--oc-red-1, #ffe3e3); --planner-fg: var(--oc-red-6, #fa5252); }
.planner-chart .planner-color-purple { --planner-bg: var(--oc-grape-1, #f3d9fa); --planner-fg: var(--oc-grape-6, #be4bdb); }
.planner-chart .planner-color-gray { --planner-bg: var(--oc-gray-1, #f1f3f5); --planner-fg: var(--oc-gray-6, #868e96); }
.planner-chart .planner-bar[class*="planner-color-"] { background: var(--planner-bg); border-color: var(--planner-fg); }
.planner-chart .planner-bar[class*="planner-color-"] .planner-done { background: var(--planner-fg); opacity: 0.4; }


/***** Review changes *****/
#planner-review-table tr.planner-review-blocked td { color: #999; }
#planner-review-table td.checkbox { width: 1%; }
#planner-review-table td.planner-review-change { text-align: left; }
#planner-review-form .planner-review-scroll { max-height: 60vh; overflow-y: auto; }
#planner-review-table thead th { position: sticky; top: 0; z-index: 1; }
#planner-review-table tbody tr { background: transparent; }

/***** Milestones *****/
.planner-chart .planner-versions-line,
.planner-chart .planner-group-line { overflow: visible; position: relative; }
.planner-chart .planner-milestone { position: absolute; top: 9px; width: 12px; height: 10px; }
.planner-chart .planner-milestone::before {
  content: ''; position: absolute; left: 2px; top: 1px; width: 7px; height: 7px;
  background: var(--oc-gray-9, #212529); transform: rotate(45deg);
}
.planner-chart div.planner-milestone:hover span.tip { top: 10px; font-weight: normal; }
.planner-chart .planner-milestone-label {
  position: absolute; top: 4px; line-height: 20px; z-index: 2; font-size: 0.8em; font-weight: normal;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--oc-gray-7, #495057);
}
.planner-chart .planner-milestone-guide { position: absolute; width: 0; border-left: 1px dashed var(--oc-gray-7, #495057); pointer-events: none; z-index: 1; }


/***** Bars outside the visible range *****/
.planner-chart .planner-bar.clipped-start { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.planner-chart .planner-bar.clipped-end { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.planner-chart .planner-bar.parent.clipped-start::before,
.planner-chart .planner-bar.parent.clipped-end::after { display: none; }
.planner-chart .planner-bar .planner-offscreen.clipped { position: absolute; top: 0; height: 14px; line-height: 14px; margin: 0; padding: 0; visibility: visible; float: none; z-index: 1; }
.planner-chart .planner-bar .planner-offscreen.clipped.left { left: 0; }
.planner-chart .planner-bar .planner-offscreen.clipped.right { right: 0; }
.planner-chart .planner-bar.parent .planner-offscreen.clipped { height: 11px; line-height: 11px; }
.planner-chart .planner-bar .planner-offscreen.clipped svg.icon-svg { width: 14px; height: 14px; vertical-align: top; stroke: var(--oc-gray-7, #495057); }
.planner-chart .planner-bar.parent .planner-offscreen.clipped svg.icon-svg { width: 11px; height: 11px; }
.planner-chart .clipped-start .planner-label { left: 16px; }
.planner-chart .clipped-end .planner-label { right: 16px; }
.planner-chart .planner-offscreen { position: sticky; display: inline-block; height: 14px; line-height: 14px; margin-top: 3px; padding: 0; visibility: hidden; }
.planner-chart .planner-line:hover .planner-offscreen { visibility: visible; }
.planner-chart .planner-offscreen.left { left: 0; }
.planner-chart .planner-offscreen.right { float: right; right: 0; }
.planner-chart .planner-offscreen svg.icon-svg { width: 14px; height: 14px; vertical-align: top; stroke: var(--oc-gray-7, #495057); }
