/* Entregas · roadmap de cada cliente por servicio. Todo bajo .ent para no tocar el resto del Hub. */
.ent { --ok: var(--green); --okbg: rgba(74,222,128,.12); --warn: var(--yellow); --warnbg: rgba(250,204,21,.12);
  --bad: var(--red); --badbg: rgba(255,107,107,.12); --info: var(--blue); --infobg: rgba(91,140,255,.12); }
.ent .bad { color: var(--bad); }
.ent .warn { color: var(--warn); }
.ent-chip { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 2px 9px; font-size: 12px; font-weight: 700; white-space: nowrap;
  background: var(--card2); color: var(--mu); border: 1px solid var(--line); }
.ent-chip.ok { background: var(--okbg); color: var(--ok); border-color: transparent; }
.ent-chip.warn { background: var(--warnbg); color: var(--warn); border-color: transparent; }
.ent-chip.bad { background: var(--badbg); color: var(--bad); border-color: transparent; }
.ent-chip.info { background: var(--infobg); color: var(--info); border-color: transparent; }
.ent-chip.dim { background: transparent; border-style: dashed; }

.ent-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 14px 0 16px; }
.ent-kpi { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 10px 14px; display: grid; gap: 4px; }
.ent-kpi span { font-size: 12px; }
.ent-kpi b { font-size: 20px; }

.ent-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; margin-top: 14px; }
.ent-card { cursor: pointer; display: grid; gap: 10px; }
.ent-card:hover, .ent-card:focus-visible { border-color: var(--line2); outline: none; }
.ent-card h3 { margin: 0 0 4px; font-size: 16px; }
.ent-card-h { display: flex; gap: 12px; align-items: flex-start; }
.ent-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; }
.ent-pct { width: 90px; text-align: right; display: grid; gap: 4px; }
.ent-barra { height: 6px; background: var(--card2); border-radius: 999px; overflow: hidden; }
.ent-barra span { display: block; height: 100%; background: linear-gradient(90deg, var(--or), var(--or2)); }
.ent-sig { margin: 0; font-size: 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

.ent-obj { margin-bottom: 16px; }
.ent-obj summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.ent-obj-f { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; align-items: end; margin-top: 12px; }
.ent-obj-f label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; }

.ent-fases { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ent-fase { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; }
.ent-fase.actual { border-color: var(--or); box-shadow: 0 0 0 1px var(--orbg); }
.ent-fase.hecha { opacity: .8; }
.ent-fase-h { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ent-fase-h h2 { margin: 0; font-size: 17px; }
.ent-num { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line2); display: inline-grid; place-items: center; color: var(--ok); }
.ent-fase.hecha .ent-num { border-color: var(--ok); background: var(--okbg); }
.ent-fase.actual .ent-num { border-color: var(--or); }
.ent-pasos { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 2px; }
.ent-paso { display: grid; grid-template-columns: 1fr auto auto auto auto; gap: 8px; align-items: center; padding: 8px 6px; border-top: 1px solid var(--line); }
.ent-paso label { display: flex; gap: 10px; align-items: center; cursor: pointer; min-width: 0; }
.ent-paso input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--or); flex: none; }
.ent-paso input[type=date] { padding: 3px 6px; font-size: 12px; }
.ent-paso.hecho .ent-paso-t, .ent-paso.tarde .ent-paso-t { color: var(--mu); text-decoration: line-through; }
.ent-paso.vencido .ent-paso-t { color: var(--bad); font-weight: 600; }
.ent-paso.opcional .ent-paso-t::after { content: " (opcional)"; color: var(--mu); font-weight: 400; }
.ent-crit { grid-column: 1 / -1; margin: 0 0 0 28px; font-size: 12.5px; }
.ent-quien { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--mu); }
.ent-quien.cliente { color: var(--info); }
.ent-quien.openai { color: var(--warn); }
@media (max-width: 720px) {
  .ent-paso { grid-template-columns: 1fr auto; }
  .ent-paso .ent-quien, .ent-paso input[type=date] { grid-column: 1; }
  .ent-crit { margin-left: 0; }
}
