/* Lifecycle-Stepper für PMBOK Process Groups (Initiating → Closing) */
.lifecycle-stepper { display: flex; gap: 0; align-items: center; }
.lifecycle-stepper .step {
  flex: 1;
  text-align: center;
  padding: .5rem .25rem;
  font-size: .85rem;
  color: #6c757d;
  position: relative;
}
.lifecycle-stepper .step.done   { color: #198754; font-weight: 500; }
.lifecycle-stepper .step.active { color: #0d6efd; font-weight: 600; }
.lifecycle-stepper .step::before {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #dee2e6;
  margin: 0 auto .35rem;
}
.lifecycle-stepper .step.done::before   { background: #198754; }
.lifecycle-stepper .step.active::before {
  background: #0d6efd;
  box-shadow: 0 0 0 4px rgba(13, 110, 253, .2);
}
.lifecycle-stepper .step + .step::after {
  content: "";
  position: absolute;
  top: .85rem;
  left: -50%;
  width: 100%;
  height: 2px;
  background: #dee2e6;
  z-index: -1;
}

/* === Gantt-Chart === */
.gantt-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.gantt-table th, .gantt-table td { padding: .35rem .5rem; vertical-align: middle; }
.gantt-table tbody tr:nth-child(odd) { background: #fafbfc; }
.gantt-table tbody tr:hover { background: #f1f3f5; }
.gantt-label { min-width: 220px; max-width: 320px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-right: 1px solid #dee2e6; }
.gantt-meta { width: 50px; text-align: right; border-right: 1px solid #dee2e6; }
.gantt-bars { position: relative; min-width: 600px; }
.gantt-bar-wrap { position: relative; height: 24px; background: linear-gradient(to right, #f8f9fa 0%, #f8f9fa 100%); border-radius: 3px; }
.gantt-bar { position: absolute; top: 0; height: 100%; border-radius: 3px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: .75rem; font-weight: 500; min-width: 4px; padding: 0 .35rem; }
.gantt-bar.normal   { background: linear-gradient(135deg, #6f9bd1, #4a7ec0); }
.gantt-bar.critical { background: linear-gradient(135deg, #d4674a, #c83e1f); box-shadow: 0 0 0 1px #c83e1f; }
.gantt-bar-label { white-space: nowrap; overflow: hidden; }
.gantt-week-ticks { position: relative; height: 18px; }
.gantt-tick { position: absolute; transform: translateX(-50%); font-size: .7rem; color: #6c757d; }

/* === Kanban-Board === */
.kanban-board {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .75rem;
  align-items: start;
}
@media (max-width: 1100px) { .kanban-board { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .kanban-board { grid-template-columns: 1fr; } }
.kanban-col {
  background: #f7f8fa;
  border-radius: 6px;
  border: 1px solid #e9ecef;
  min-height: 200px;
  display: flex;
  flex-direction: column;
}
.kanban-col-header {
  padding: .5rem .75rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(0,0,0,.05);
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
  font-size: .9rem;
}
.kanban-col-body {
  padding: .5rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  flex: 1;
  min-height: 140px;
  transition: background .15s;
}
.kanban-col-body.drag-over { background: rgba(13, 110, 253, .08); }
.kanban-empty { text-align: center; padding: 1rem 0; }
.kanban-card {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  padding: .5rem .6rem;
  font-size: .85rem;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  cursor: grab;
  transition: box-shadow .15s, transform .1s;
}
.kanban-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.kanban-card.dragging { opacity: .4; cursor: grabbing; }
.kanban-card:active { cursor: grabbing; }
/* === Mention === */
.mention {
  display: inline-block;
  padding: 0 .25rem;
  background: rgba(13, 110, 253, .12);
  color: #0a58ca;
  border-radius: 3px;
  font-weight: 500;
  font-size: .95em;
}

.kanban-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #6c757d;
  color: #fff;
  font-size: .7rem;
  font-weight: 600;
  line-height: 1;
}
