/* 169-gantt-grid-edit.css
   Spreadsheet affordances for the Gantt left table (169-gantt-grid-edit.js).
   Selection outline, editable-cell hint, in-cell input, and the shared toast the
   edit engine (168) raises. Visual only — no layout metric is changed, so row
   heights and column widths stay exactly where the renderer put them. */

#ganttOut .p6-left.p6-act-row .p6-cell.gge-editable {
  cursor: cell;
}

#ganttOut .p6-left.p6-act-row .p6-cell.gge-editable:hover {
  background: rgba(249, 238, 205, 0.34) !important;
  box-shadow: inset 0 0 0 1px rgba(184, 145, 63, 0.55);
}

/* The selected cell reads like an Excel active cell: solid ring, no fill shift,
   so the row's WBS/critical colouring underneath stays readable. */
#ganttOut .p6-cell.gge-selected {
  box-shadow: inset 0 0 0 2px #1d4ed8, 0 0 0 1px rgba(29, 78, 216, 0.35) !important;
  position: relative;
  z-index: 30;
}

/* Editing must not change the cell's box at all — rows are only 16px tall, so
   any extra padding or height visibly shoves the table. The cell keeps its own
   geometry; only the caret tells the user it is live. */
#ganttOut .p6-cell.gge-editing {
  position: relative;
  z-index: 40;
}

/* Seamless in-place input: it inherits the font the cell was already painting
   (9.8px/600 inside .p6-name-main for a name, 11.5px tabular numerals for Dur),
   so the text does not grow or reflow when the editor opens. The blinking caret
   is the only edit affordance, and the cell's selection ring stays visible
   underneath. */
#ganttOut .gge-input {
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  caret-color: #1d4ed8;
  color: inherit;
  display: block;
  font: inherit !important;
  height: 100%;
  letter-spacing: inherit;
  line-height: inherit;
  margin: 0;
  min-width: 0;
  outline: none;
  padding: 0;
  text-align: inherit;
  width: 100%;
}

#ganttOut .p6-c-dur .gge-input {
  text-align: center;
}

/* The name input sits inside the real .p6-name-main wrapper, which is a flex
   row; let it take the remaining width next to any toggle chevron. */
#ganttOut .p6-c-name .p6-name-main .gge-input {
  flex: 1 1 auto;
}

/* A cell being edited drops the hover tint so the caret reads cleanly. */
#ganttOut .p6-cell.gge-editing.gge-editable:hover {
  background: transparent !important;
}

/* Shared toast for the edit engine (168). Mirrors #ganttInlineEditToast so both
   editors look identical while 147 is still on the page. */
#aipeScheduleEditToast {
  background: #202419;
  border: 1px solid rgba(212, 165, 58, 0.55);
  border-radius: 8px;
  bottom: 22px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
  color: #fff8e8;
  font: 800 12px/1.2 var(--font-body, system-ui, sans-serif);
  letter-spacing: 0.02em;
  opacity: 0;
  padding: 10px 13px;
  pointer-events: none;
  position: fixed;
  right: 22px;
  transform: translateY(8px);
  transition: opacity 0.16s ease, transform 0.16s ease;
  z-index: 9999;
}

#aipeScheduleEditToast.is-on {
  opacity: 1;
  transform: translateY(0);
}

#aipeScheduleEditToast.is-bad {
  background: #361818;
  border-color: rgba(196, 88, 88, 0.72);
}

/* While a commit is running the busy cursor (body[data-aipe-dt-busy]) owns the
   pointer; keep the text caret inside the open editor so typing still reads as
   typing. */
body[data-aipe-dt-busy="1"] #ganttOut .gge-input {
  cursor: text !important;
}
