/* AEG UI — Frappe Gantt customizations + FSM palette override */

/* Container */
#gantt-container .gantt-container {
  background: var(--bg-surface);
  border-radius: 6px;
  overflow-x: auto;
}

/* Grid / tick lines */
.gantt .grid-header { fill: var(--bg-app); }
.gantt .grid-row    { fill: var(--bg-surface); }
.gantt .grid-row:nth-child(even) { fill: var(--bg-app); }
.gantt .tick        { stroke: var(--border-color); stroke-width: 0.5; }
.gantt .today-highlight { fill: var(--color-primary); opacity: 0.08; }

/* Upper header text (months/weeks) */
.gantt .upper-text { fill: var(--color-text-dim); font-size: 11px; }
.gantt .lower-text { fill: var(--color-text); font-size: 11px; }

/* Row labels */
.gantt .bar-label {
  fill: var(--color-text);
  font-size: 12px;
  font-family: var(--font-mono);
}

/* Default bar */
.gantt .bar {
  fill: var(--color-primary);
  rx: 4;
  ry: 4;
}
.gantt .bar-progress { fill: rgba(255,255,255,0.25); }
.gantt .bar-wrapper:hover .bar { filter: brightness(1.15); }

/* Handle circles */
.gantt .handle { fill: var(--color-primary); opacity: 0.6; }
.gantt .handle:hover { opacity: 1; }

/* FSM state overrides — injected dynamically by _injectFsmColors() in gantt.js */
/* Explicit fallbacks for critical states */
.gantt .fsm-draft        .bar { fill: #6b7280; }
.gantt .fsm-ready        .bar { fill: #2563eb; }
.gantt .fsm-agent_running .bar { fill: #0891b2; }
.gantt .fsm-human_pending .bar { fill: #d97706; }
.gantt .fsm-approved     .bar { fill: #059669; }
.gantt .fsm-done         .bar { fill: #16a34a; }
.gantt .fsm-rejected     .bar { fill: #dc2626; }
.gantt .fsm-failed_recoverable .bar { fill: #ea580c; }
.gantt .fsm-blocked      .bar { fill: #9333ea; }
.gantt .fsm-deadlock_human_pending .bar { fill: #b45309; }
.gantt .fsm-killed       .bar { fill: #4b5563; }
.gantt .fsm-stale        .bar { fill: #78716c; }

/* Arrow between dependent tasks */
.gantt .arrow { stroke: var(--color-text-dim); stroke-width: 1.4; fill: none; }

/* Popup tooltip */
.gantt-popup-wrapper { z-index: 1000; }
.gantt-popup {
  background: var(--bg-surface);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  box-shadow: var(--shadow-md);
  padding: 10px 14px;
  font-size: 12px;
  color: var(--color-text);
  max-width: 240px;
}
.gantt-popup .title { font-weight: 600; margin-bottom: 4px; }
.gantt-popup .subtitle { color: var(--color-text-dim); font-size: 11px; }

/* Zoom toolbar button active state */
.zoom-btn.active {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

/* Plan proposal banner */
#plan-banner {
  animation: slideDown 0.2s ease;
}
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Responsive: hide on mobile (gantt.js shows a message but add CSS guard) */
@media (max-width: 1023px) {
  #gantt-container { display: none; }
}
