/* Demo 19 · Planificación del proyecto (reformas): la obra, el cronograma por partidas y gremios, la carga del equipo y la recomendación */
.d-pla .fuera{ display:none !important; }
.dpl-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:7px; padding:10px 16px 10px; overflow:hidden; position:relative; }

/* La obra */
.dpl-obra{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px solid var(--linea); }
.dpl-obra-t{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.dpl-obra-t b{ font-size:14.5px; font-weight:600; letter-spacing:-.015em; }
.dpl-obra-t em{ font-style:normal; font-size:11.5px; color:var(--tinta-60); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dpl-obra-d{ display:flex; align-items:flex-end; gap:12px; flex:none; }
.dpl-obra-d > span:not(.dpl-estado){ display:flex; flex-direction:column; gap:1px; }
.dpl-obra-d em{ font-style:normal; font-size:10.5px; color:var(--tinta-45); }
.dpl-obra-d b{ font-size:13px; font-weight:600; white-space:nowrap; }
.dpl-estado{ display:inline-flex; align-items:center; gap:6px; height:24px; padding:0 10px; border-radius:999px; background:var(--verde-agua); color:var(--verde-osc); font-size:11.5px; font-weight:600; white-space:nowrap; }
.dpl-ok-i{ width:7px; height:7px; border-radius:50%; background:var(--verde); }
.dpl-pl{ width:7px; height:7px; border-radius:50%; background:#d99a1e; animation:waPunto 1.2s infinite ease-in-out; }
.dpl-estado:has(.dpl-pl){ background:#fdf3e1; color:#8a5a00; }

/* Cronograma: 20 días laborables (4 semanas) */
.dpl-gantt{ position:relative; display:flex; flex-direction:column; gap:3px; }
.dpl-g-cab, .dpl-fila{ display:grid; grid-template-columns:200px 1fr; gap:8px; align-items:center; }
.dpl-et-cab{ font-size:10.5px; color:var(--tinta-45); }
.dpl-sem{ display:grid; grid-template-columns:repeat(4, 1fr); }
.dpl-sem span{ font-size:10.5px; font-weight:500; color:var(--tinta-60); padding-left:4px; border-left:1px solid var(--linea); }
.dpl-et{ display:flex; align-items:baseline; gap:6px; min-width:0; white-space:nowrap; overflow:hidden; }
.dpl-et b{ font-size:11.6px; font-weight:600; flex:none; }
.dpl-et em{ display:flex; align-items:center; gap:3px; font-style:normal; font-size:10px; color:var(--tinta-60); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.dpl-et em .ico{ width:10px; height:10px; }
.dpl-pista{ position:relative; height:23px; border-radius:5px;
  background:repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), var(--linea) calc(25% - 1px) 25%), var(--nieve); }
.dpl-barra{ position:absolute; top:4px; bottom:4px; left:calc(var(--ini) * 5%); width:calc(var(--dur) * 5%); border-radius:4px; background:var(--verde); color:#0a0a0a;
  display:flex; align-items:center; justify-content:center; font-size:9.5px; font-weight:600; transform-origin:left center; box-shadow:0 2px 6px -2px rgba(47,163,135,.5); }
.dpl-fila.entra .dpl-barra{ animation:dpl-crece .7s cubic-bezier(.16,1,.3,1) both; }
@keyframes dpl-crece{ from{ transform:scaleX(0); opacity:.4; } }
.dpl-ali .dpl-barra{ background:#e5484d; color:#fff; box-shadow:0 2px 8px -2px rgba(229,72,77,.6); }
.dpl-gantt:has(.dpl-refuerzo:not(.oculto)) .dpl-ali .dpl-barra{ background:var(--verde); color:#0a0a0a; box-shadow:0 2px 6px -2px rgba(47,163,135,.5); }
.dpl-refuerzo{ position:absolute; top:-7px; left:calc((var(--ini) + var(--dur)) * 5% + 4px); font-style:normal; font-size:9.5px; font-weight:600; color:var(--verde-osc); background:var(--verde-agua); padding:2px 6px; border-radius:999px; white-space:nowrap; }
/* entrega y «sin refuerzo» */
.dpl-entrega{ position:absolute; top:16px; bottom:4px; left:calc(208px + (100% - 208px) * var(--ini) / 20); width:0; border-left:2px dashed var(--verde-osc); }
.dpl-entrega span{ position:absolute; bottom:-18px; right:0; display:inline-flex; align-items:center; gap:4px; padding:2px 7px; border-radius:999px;
  font-size:10px; font-weight:600; white-space:nowrap; background:var(--verde-agua); color:var(--verde-osc); }
.dpl-entrega span .ico, .dpl-tarde span .ico{ width:10px; height:10px; stroke-width:2.6; }
.dpl-tarde{ border-left-color:#e5484d; }
.dpl-tarde span{ background:#fdecec; color:#c23a3a; }
.dpl-gantt{ padding-bottom:15px; }

/* Carga del equipo */
.dpl-carga{ display:flex; flex-direction:column; gap:4px; }
.dpl-per{ display:grid; grid-template-columns:200px repeat(4, 1fr); gap:4px 6px; align-items:stretch; }
.dpl-per-cab span{ font-size:10px; color:var(--tinta-45); padding-left:2px; }
.dpl-quien{ display:flex; align-items:baseline; gap:6px; }
.dpl-quien b{ font-size:11.6px; font-weight:600; }
.dpl-quien em{ font-style:normal; font-size:10px; color:var(--tinta-60); white-space:nowrap; }
.dpl-c{ display:flex; align-items:center; justify-content:center; min-height:24px; padding:2px 6px; border-radius:6px; font-size:10px; line-height:1.2; text-align:center; }
.dpl-c b{ flex:none; width:18px; height:18px; border-radius:50%; display:grid; place-items:center; font-size:10px; font-weight:700; background:rgba(255,255,255,.7); }
.dpl-c em{ font-style:normal; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dpl-c.v{ background:var(--verde-agua); color:var(--verde-osc); }
.dpl-c.a{ background:#fdf3e1; color:#8a5a00; }
.dpl-c.r{ background:#fdecec; color:#c23a3a; box-shadow:inset 0 0 0 1.5px rgba(229,72,77,.45); }
.dpl-c.vacia{ justify-content:center; color:var(--tinta-30); background:var(--nieve); }
.dpl-c .dpl-c-b{ display:none; }
.dpl-c.r.arreglada{ background:var(--verde-agua); color:var(--verde-osc); box-shadow:none; }
.dpl-c.r.arreglada .dpl-c-a{ display:none; } .dpl-c.r.arreglada .dpl-c-b{ display:inline; }
.d-pla .entra .dpl-c.r:not(.arreglada), .dpl-carga.entra .dpl-c.r:not(.arreglada){ animation:dpl-late 1.4s ease-in-out 3; }
@keyframes dpl-late{ 50%{ box-shadow:inset 0 0 0 1.5px rgba(229,72,77,.45), 0 0 0 4px rgba(229,72,77,.18); } }
.dpl-nuevo{ animation:entra .45s var(--ease) both; }

/* Recomendación */
.dpl-reco{ display:flex; flex-direction:column; gap:5px; padding:8px 12px; border-radius:9px; background:#fffaf0; border:1px solid #f1d9a7; }
.dpl-reco-t{ display:flex; align-items:center; gap:7px; color:#8a5a00; }
.dpl-reco-t .ico{ width:15px; height:15px; }
.dpl-reco-t b{ font-size:12.6px; font-weight:600; }
.dpl-reco ul{ margin:0; padding:0 0 0 2px; list-style:none; display:flex; flex-direction:column; gap:3px; }
.dpl-reco li{ position:relative; padding-left:12px; font-size:11.4px; line-height:1.4; color:var(--tinta-80); }
.dpl-reco li::before{ content:''; position:absolute; left:0; top:.55em; width:5px; height:5px; border-radius:50%; background:#d99a1e; }
.dpl-reco p{ display:flex; gap:7px; margin:0; padding:6px 9px; border-radius:7px; font-size:11.4px; line-height:1.4; }
.dpl-reco p .ico{ flex:none; width:14px; height:14px; margin-top:1px; }
.dpl-reco-p{ background:#fff; color:var(--tinta-80); border:1px solid var(--linea); transition:background .5s, color .5s; }
.dpl-reco-p > .ico:nth-of-type(2), .dpl-reco-p .dpl-r-b{ display:none; }
.dpl-reco-p.resuelta{ background:var(--verde-agua); color:var(--verde-osc); border-color:transparent; }
.dpl-reco-p.resuelta > .ico:first-of-type, .dpl-reco-p.resuelta .dpl-r-a{ display:none; }
.dpl-reco-p.resuelta > .ico:nth-of-type(2), .dpl-reco-p.resuelta .dpl-r-b{ display:inline; }
.dpl-reco-p.resuelta > .ico:nth-of-type(2){ display:block; stroke-width:2.6; }
.dpl-reco-p .ico{ color:var(--verde-osc); }
.dpl-reco-ok{ background:var(--verde-agua); color:var(--verde-osc); }
.dpl-reco-ok .ico{ stroke-width:2.6; }
.dpl-reco:has(.dpl-reco-p.resuelta){ background:#f7fdfb; border-color:rgba(47,163,135,.35); }
.dpl-reco:has(.dpl-reco-p.resuelta) .dpl-reco-t{ color:var(--verde-osc); }

/* el aviso final, arriba sobre el chat, para no tapar la recomendación resuelta */
.d-pla .toast{ left:52px; right:auto; top:118px; bottom:auto; margin:0; max-width:300px; }
