/* Demo 21 · Seguimiento de obra y atención al cliente (reformas): avance, cronograma con «hoy», lo que le cuenta, el parte del día y sus notas */
.d-obr .fuera{ display:none !important; }
.dob-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; padding:10px 16px 10px; overflow:hidden; }

/* Cabecera: obra y avance */
.dob-cab{ display:flex; flex-direction:column; gap:6px; padding-bottom:8px; border-bottom:1px solid var(--linea); }
.dob-t{ display:flex; align-items:baseline; gap:8px; min-width:0; }
.dob-t b{ font-size:14.5px; font-weight:600; letter-spacing:-.015em; flex:none; }
.dob-t em{ font-style:normal; font-size:11.5px; color:var(--tinta-60); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dob-avance{ display:flex; align-items:center; gap:10px; }
.dob-av-t{ display:flex; align-items:baseline; gap:5px; flex:none; }
.dob-av-t em{ font-style:normal; font-size:11px; color:var(--tinta-45); }
.dob-av-t b{ font-size:15px; font-weight:600; }
.dob-av-b{ flex:1; height:7px; border-radius:4px; background:var(--nieve-2); overflow:hidden; }
.dob-av-b i{ display:block; height:100%; border-radius:4px; background:var(--verde); }
.dob-entrega{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:500; color:var(--tinta-80); white-space:nowrap; }
.dob-entrega .ico{ width:13px; height:13px; color:var(--tinta-45); }
.dob-tiempo{ display:inline-flex; align-items:center; gap:5px; 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; }
.dob-tiempo .ico{ width:12px; height:12px; stroke-width:2.6; }

/* Cronograma (3 semanas = 15 días laborables) */
.dob-gantt{ position:relative; display:flex; flex-direction:column; gap:3px; padding-bottom:4px; }
.dob-g-cab, .dob-fila{ display:grid; grid-template-columns:200px 1fr; gap:8px; align-items:center; }
.dob-g-cab > span:first-child{ font-size:10.5px; color:var(--tinta-45); }
.dob-sem{ display:grid; grid-template-columns:repeat(3, 1fr); }
.dob-sem span{ font-size:10.5px; font-weight:500; color:var(--tinta-60); padding-left:4px; border-left:1px solid var(--linea); }
.dob-et{ display:flex; align-items:baseline; gap:6px; min-width:0; white-space:nowrap; overflow:hidden; }
.dob-et b{ font-size:11.6px; font-weight:600; flex:none; }
.dob-et em{ font-style:normal; font-size:10px; color:var(--tinta-60); overflow:hidden; text-overflow:ellipsis; }
.dob-pista{ position:relative; height:21px; border-radius:5px; background:repeating-linear-gradient(90deg, transparent 0 calc(33.333% - 1px), var(--linea) calc(33.333% - 1px) 33.333%), var(--nieve); }
.dob-barra{ position:absolute; top:4px; bottom:4px; left:calc(var(--ini) * 100% / 15); width:calc(var(--dur) * 100% / 15); border-radius:4px; display:grid; place-items:center; }
.dob-barra .ico{ width:11px; height:11px; stroke-width:2.8; }
.dob-fila.hecha .dob-barra{ background:var(--verde); color:#0a0a0a; }
.dob-fila.sig .dob-barra{ background:#fff; box-shadow:inset 0 0 0 1.5px var(--verde); }
.dob-fila.pend .dob-barra{ background:repeating-linear-gradient(135deg, var(--nieve-2) 0 5px, #fff 5px 10px); box-shadow:inset 0 0 0 1px var(--linea-fuerte, rgba(10,10,10,.14)); }
.dob-fila.pend .dob-et b{ color:var(--tinta-60); }
.dob-sig, .dob-ped{ position:absolute; top:50%; transform:translateY(-50%); font-style:normal; font-size:9.5px; font-weight:600; white-space:nowrap; padding:2px 7px; border-radius:999px; }
.dob-sig{ left:calc((var(--ini, 9) + 1) * 100% / 15 + 6px); left:calc(10 * 100% / 15 + 6px); background:var(--verde-agua); color:var(--verde-osc); }
.dob-ped{ left:6px; display:inline-flex; align-items:center; gap:4px; background:var(--verde-agua); color:var(--verde-osc); }
.dob-ped .ico{ width:10px; height:10px; stroke-width:2.8; }
.dob-ped.oculto{ display:none; }
/* hoy */
.dob-hoy{ position:absolute; top:16px; bottom:0; left:calc(208px + (100% - 208px) * var(--ini) / 15); width:0; border-left:2px solid #e5484d; }
.dob-hoy span{ position:absolute; top:-15px; left:0; transform:translateX(-50%); padding:1px 6px; border-radius:999px; background:#e5484d; color:#fff; font-size:9.5px; font-weight:600; white-space:nowrap; }
/* el agente repasa la planificación: una banda que baja */
.dob-scan-c{ position:absolute; inset:16px 0 0 0; pointer-events:none; }
.dob-scan{ position:absolute; inset:0; border-radius:8px; overflow:hidden; background:rgba(60,193,160,.05); box-shadow:inset 0 0 0 1.5px rgba(60,193,160,.4); }
.dob-scan::before{ content:''; position:absolute; left:0; right:0; height:36px; top:-36px; background:linear-gradient(180deg, transparent, rgba(60,193,160,.28), transparent); animation:dob-baja 2.2s ease-in-out infinite; }
@keyframes dob-baja{ to{ top:100%; } }
.dob-scan span{ position:absolute; right:8px; bottom:6px; display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:999px; background:var(--tinta); color:#fff; font-size:10.5px; font-weight:500; }
.dob-scan span .ico{ width:11px; height:11px; color:var(--verde); }

/* Parte inferior: lo que le cuenta · parte de hoy y notas */
.dob-bajo{ flex:1; min-height:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.dob-cuenta{ display:flex; flex-direction:column; gap:6px; padding:9px 11px; border-radius:9px; border:1px solid var(--linea); }
.dob-cuenta ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.dob-cuenta li{ display:flex; gap:8px; font-size:11.4px; line-height:1.4; color:var(--tinta-80); }
.dob-r-ic{ flex:none; width:20px; height:20px; border-radius:50%; display:grid; place-items:center; background:var(--nieve); color:var(--tinta-60); }
.dob-r-ic .ico{ width:11px; height:11px; }
.dob-cuenta li.hecho .dob-r-ic{ background:var(--verde-agua); color:var(--verde-osc); }
.dob-cuenta li.hecho .dob-r-ic .ico{ stroke-width:2.8; }
.dob-cuenta li.ahora .dob-r-ic{ background:#fdf3e1; color:#8a5a00; }
.dob-dcha{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.dob-parte{ display:flex; flex-direction:column; gap:4px; padding:7px 11px; border-radius:9px; background:var(--nieve); }
.dob-parte p{ margin:0; font-size:11.2px; line-height:1.4; color:var(--tinta-80); }
.dob-fotos{ display:flex; align-items:center; gap:4px; }
.dob-fotos i{ width:28px; height:22px; border-radius:4px; background:linear-gradient(135deg, #d9cfc1, #b7a996); display:grid; place-items:center; color:#fff; }
.dob-fotos i .ico{ width:11px; height:11px; }
.dob-fotos em{ font-style:normal; font-size:10px; color:var(--tinta-45); margin-left:4px; }
.dob-notas{ display:flex; flex-direction:column; gap:4px; padding:7px 11px; border-radius:9px; border:1px solid var(--linea); }
.dob-notas-cab{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.dob-sat{ font-size:10.5px; font-weight:600; padding:2px 8px; border-radius:999px; background:var(--verde-agua); color:var(--verde-osc); white-space:nowrap; }
.dob-notas p{ margin:0; font-size:10.8px; line-height:1.4; color:var(--tinta-60); }
.dob-n-nueva{ padding:6px 8px; border-radius:6px; background:var(--verde-agua); color:var(--tinta-80) !important; border-left:3px solid var(--verde); }
.dob-n-nueva time{ display:block; font-size:10px; font-weight:600; color:var(--verde-osc); margin-bottom:1px; }

/* el aviso final, arriba sobre el chat, para no tapar las notas */
.d-obr .toast{ left:52px; right:auto; top:118px; bottom:auto; margin:0; max-width:300px; }
