/* Base */
body { --bg:#f7f9fb; background-color: var(--bg); }
.navbar-brand{ letter-spacing:.2px; }
.card{ border-radius:12px; }
.table thead th{ background:#fbfbfd; }
.progress{ background:#eef2f6; }

/* Orange helpers */
.bg-orange { background-color:#ffa94d !important; }
.alert-orange { background-color:#fff4e6; border:1px solid #ffd8a8; color:#7a4b00; }

/* === Cores por status na lista de etapas (project_detail.php) === */
tr.st-todo td { background: #edf5ff; border-color: #e7eef9 !important; }   /* A fazer (azul claro) */
tr.st-doing td { background: #fff8db; border-color: #ffe8a1 !important; }  /* Em andamento (amarelo) */
tr.st-done td { background: #eafaf1; border-color: #e3f5eb !important; }   /* Concluída (verde claro) */
tr.st-overdue td { background: #ffecec; }                                   /* Atrasada */
tr.st-soon td { box-shadow: inset 0 0 0 2px #ffa94d; }                      /* Vence ≤5d: contorno laranja */

/* ===== GANTT Redesign (refinado) ===== */
.gantt-wrap { max-height: 70vh; overflow:auto; border:1px solid #edf0f3; border-radius:12px; background:#fff; }
.gantt { width:100%; border-collapse:separate; border-spacing:0; table-layout: fixed; font-size: 0.80rem; }
.gantt thead th { position:sticky; top:0; background:#fff; z-index:2; border-bottom:2px solid #e7ecf1; padding:.25rem .15rem; font-size:.70rem; }
.gantt td, .gantt th { border:1px solid #eef2f6; padding:.18rem; }
.gantt .leftcol { width:520px; min-width:520px; max-width:520px; background:#fbfcfe; position: sticky; left:0; z-index:1; border-right:2px solid #e7ecf1; }
@media (min-width: 1400px){
  .gantt .leftcol { width:640px; min-width:640px; max-width:640px; }
}
.gantt tbody tr:nth-child(even) .leftcol { background:#f7f9fc; }
.gantt tbody tr:nth-child(even) td { background: #fcfdff; }
.gantt .dow { color:#6c757d; font-size:.62rem; display:block; margin-top:1px; line-height:1; }
.gantt .today { background: #fff3cd !important; } /* highlight col hoje */
.gantt .weekend { background: #faf6f2; }
.gantt .month-start { border-left: 2px solid #d0d7de; }

/* bars */
.gantt .cell { position: relative; height: 30px; }
.gantt .bar { position:absolute; left:2px; right:2px; top:3px; bottom:3px; border-radius: 10px; border:2px solid transparent; box-shadow: 0 1px 0 rgba(0,0,0,.04); }
.gantt .bar.todo  { background:#e7f1ff; border-color:#9ec5fe; }
.gantt .bar.doing { background:#fff3bf; border-color:#ffd166; }
.gantt .bar.done  { background:#e4f8ea; border-color:#6fdb97; }

.gantt .bar.start { border-top-left-radius: 12px; border-bottom-left-radius: 12px; }
.gantt .bar.end   { border-top-right-radius: 12px; border-bottom-right-radius: 12px; }
.gantt .bar.solo  { border-radius: 12px; }

/* Project header row */
.gantt tr.proj-header td.leftcol {
  background: var(--proj-bg, #f6f7fb);
  border-left: 10px solid var(--proj, #6ea8fe);
  font-weight: 600;
}
.gantt tr.proj-header td:not(.leftcol){ background: var(--proj-bg, #f6f7fb); }

/* Project dot */
.proj-dot { width:10px; height:10px; display:inline-block; border-radius:50%; margin-right:.4rem; vertical-align:middle; }

/* Filters bar */
.filters .form-check { margin-right: .6rem; }
.filters .chip { display:inline-flex; align-items:center; gap:.4rem; padding:.2rem .5rem; border:1px solid #e8eef4; border-radius:999px; background:#f8fbff; font-size:.78rem; }
.filters .chip .sw { width:10px; height:10px; border-radius:50%; }
