.plan-overlay { position:fixed; inset:0; z-index:220; background:#16233870; padding:24px; display:flex; }
.plan-panel { width:100%; background:#f8fafc; border-radius:14px; overflow:auto; padding:24px; box-shadow:0 12px 50px #16233840; color:#243248; }
.plan-panel-integrado { min-width:0; padding:0; border-radius:0; overflow:visible; background:transparent; box-shadow:none; }
.plan-panel-integrado>.plan-cabecera { display:none; }
.plan-panel-integrado .plan-detalle-cabecera { display:none; }
.plan-cabecera,.plan-titulo,.plan-barra { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.plan-cabecera h2,.plan-titulo h3 { margin:5px 0; }
.plan-detalle-cabecera { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr); align-items:center; gap:24px; margin:0 0 14px; padding:0 0 12px; border-bottom:1px solid #e2e8f0; }
.plan-detalle-identidad,.plan-detalle-contexto { display:flex; align-items:center; gap:12px; min-width:0; }
.plan-detalle-identidad h3 { margin:0; font-size:16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-detalle-contexto { justify-content:flex-end; font-size:12px; white-space:nowrap; }
.plan-detalle-contexto small { color:#64748b; overflow:hidden; text-overflow:ellipsis; }
.plan-cabecera small { letter-spacing:.1em; color:#64748b; font-size:10px; }
.plan-filtros { display:flex; gap:12px; align-items:end; flex-wrap:wrap; padding:18px; background:white; border:1px solid #e2e8f0; border-radius:10px; }
.plan-panel label { display:flex; flex-direction:column; gap:6px; font-size:12px; color:#536277; }
.plan-panel input,.plan-panel select,.plan-panel textarea { border:1px solid #cbd5e1; border-radius:6px; background:white; padding:8px; color:#243248; font:inherit; max-width:100%; }
.plan-panel .btn-secundario { border:1px solid #cbd5e1; border-radius:6px; padding:8px 12px; background:white; color:#405670; cursor:pointer; font:inherit; font-size:12px; }
.plan-panel .btn-secundario:hover { background:#edf3f8; border-color:#879fb7; }
.plan-panel button:focus-visible { outline:2px solid #245b88; outline-offset:2px; }
.plan-editor td button { border:1px solid #cbd5e1; background:#f8fafc; border-radius:5px; padding:6px 9px; margin:2px; cursor:pointer; color:#405670; }
.plan-panel button:disabled { opacity:.5; cursor:default; }
.plan-filtros input[type=number] { width:80px; }
.plan-filtros .plan-filtro-proceso { flex:1 1 230px; max-width:320px; min-width:0; }
.plan-filtro-proceso select { width:100%; text-overflow:ellipsis; }
.plan-panel .plan-check { flex-direction:row; align-items:center; padding:8px 0; }
.plan-cifras { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:20px 0; }
.plan-cifras button { text-align:left; border:1px solid #e2e8f0; background:white; padding:14px 18px; border-radius:10px; cursor:pointer; color:#243248; }
.plan-cifras strong { font-size:25px; display:block; font-weight:600; margin-bottom:6px; }
.plan-cifras span { font-size:12px; }
.plan-cifras-seguimiento .plan-cifra { --tono:#64748b; position:relative; border-top:3px solid var(--tono); padding:16px 18px; }
.plan-cifra.plazo { --tono:#24845b; }.plan-cifra.riesgo { --tono:#ae7814; }.plan-cifra.atrasado { --tono:#b94b48; }
.plan-cifras-seguimiento .plan-cifra-titulo { display:flex; align-items:center; gap:7px; font-weight:600; }
.plan-cifra-titulo i { width:7px; height:7px; border-radius:50%; background:var(--tono); }
.plan-cifras-seguimiento strong { font-size:30px; line-height:1.2; margin:10px 0 5px; font-variant-numeric:tabular-nums; }
.plan-cifra-pie { color:#64748b; }
.plan-cifra-barra { display:block; height:4px; margin-top:14px; background:#edf1f5; border-radius:4px; overflow:hidden; }
.plan-cifra-barra i { display:block; height:100%; background:var(--tono); }
.plan-cifra:hover { box-shadow:0 3px 10px #24324812; }
.plan-seguimiento table { min-width:1100px; }
.plan-seguimiento td:first-child { min-width:190px; }
.plan-seguimiento .plan-abrir { white-space:normal; text-align:left; }
.plan-seguimiento tbody tr:hover { background:#f8fafc; }
.plan-seguimiento .plan-metrica { white-space:nowrap; font-variant-numeric:tabular-nums; color:#29445b; }
.plan-metrica-avance progress { display:block; width:84px; height:6px; margin-top:7px; accent-color:#326d8c; border:0; border-radius:5px; overflow:hidden; }
.plan-metrica-avance progress::-webkit-progress-bar { background:#e9eff4; }
.plan-metrica-avance progress::-webkit-progress-value { background:#326d8c; }
.plan-panel .activo { outline:2px solid #3b6e9e; outline-offset:-2px; }
.plan-barra { font-size:12px; margin:18px 0; }
.plan-barra nav { display:flex; gap:8px; }
.plan-tabla { overflow:auto; background:white; border:1px solid #e2e8f0; border-radius:10px; }
.plan-tabla table { border-collapse:collapse; width:100%; font-size:12px; }
.plan-tabla th { text-align:left; padding:14px 12px; color:#64748b; background:#f1f5f9; font-weight:500; white-space:nowrap; }
.plan-tabla td { padding:18px 12px; border-top:1px solid #edf1f5; vertical-align:middle; min-width:85px; }
.plan-tabla small { display:block; color:#64748b; margin-top:5px; max-width:250px; overflow-wrap:anywhere; }
.plan-abrir { border:0; background:none; padding:0; color:#245b88; font-weight:600; cursor:pointer; white-space:nowrap; }
.plan-salud { display:inline-block; border-radius:5px; padding:5px 8px; font-size:10px; font-weight:700; white-space:nowrap; }
.plan-salud.plazo { background:#e5f2eb; color:#226843; }.plan-salud.riesgo { background:#fff3d6; color:#8a6208; }.plan-salud.atrasado { background:#fce8e6; color:#a23a34; }.plan-salud.sinplan { background:#edf0f5; color:#66758b; }
/* Fixed metadata columns leave the same coordinate system in every timeline. */
.plan-gantt { position:relative; min-width:1100px; --plan-meta:620px; }
.plan-gantt table { table-layout:fixed; }
.plan-c-proceso { width:190px; }.plan-c-responsable { width:120px; }.plan-c-salud { width:90px; }.plan-c-proxima { width:130px; }.plan-c-variacion { width:90px; }
.plan-gantt th { height:58px; box-sizing:border-box; padding:10px 12px; font-size:11px; }
.plan-gantt td { padding:12px; height:82px; box-sizing:border-box; font-size:11px; }
.plan-gantt td:first-child small { color:#475569; line-height:1.5; }
.plan-gantt td strong { font-weight:550; }
.plan-gantt .plan-salud { font-size:9px; padding:5px 6px; }
.plan-total { font-size:12px; font-weight:400; color:#7b8797; margin-left:12px; white-space:nowrap; }
.plan-subtitulo { font-size:12px; color:#64748b; margin:6px 0 0; }
.plan-separador { padding:0 8px; color:#a1aab6; }
.plan-pistas { width:100%; }
.plan-pista { display:flex; align-items:center; height:26px; }
.plan-pista-nombre { width:32px; flex:none; font-size:9px; font-weight:600; letter-spacing:.04em; color:#6b798c; }
.plan-tramos { height:20px; position:relative; flex:1; min-width:0; background:linear-gradient(#f3f5f7,#f3f5f7) center/100% 1px no-repeat; }
.plan-etapa-barra { position:absolute; top:0; height:20px; box-sizing:border-box; border-radius:3px; padding:0; cursor:pointer; min-width:0; overflow:hidden; color:#39506b; }
.plan-etapa-barra.lb { border:1px solid #ba9b68; background:#f1dfb8; box-shadow:inset -1px 0 #fff9eb; }
.plan-etapa-barra.lb.tono-1 { background:#e9d2a5; }
.plan-etapa-barra.real { border:1px solid #3a627d; background:#577c96; color:white; box-shadow:inset -1px 0 #e8eef3; }
.plan-etapa-barra.real.tono-1 { background:#416880; }
.plan-etapa-barra.real.en-curso { border-right:2px dashed #2b465d; background:repeating-linear-gradient(135deg,#607f9630 0 4px,#607f9660 4px 7px); color:#243e54; box-shadow:none; }
.plan-etapa-barra:hover { filter:brightness(.91); outline:1px solid #2b587a; z-index:3; }
.plan-etapa-barra:focus-visible { overflow:visible; z-index:4; }
.plan-hito-punto { position:absolute; width:9px; height:9px; padding:0; transform:translate(-50%,-50%) rotate(45deg); border:1px solid #ba9b68; background:#f1dfb8; cursor:pointer; }
.plan-hito-punto.real { background:#416880; }
.plan-hito-punto:hover,.plan-hito-punto:focus-visible { z-index:4; outline:2px solid #245b88; outline-offset:2px; }
.plan-etapa-barra>span { position:relative; display:block; font-size:9px; line-height:18px; padding:0 5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none; }
.plan-margen { position:absolute; top:0; bottom:0; background:repeating-linear-gradient(135deg,#8da0b438 0 2px,transparent 2px 4px); border-left:1px dotted #8d9cae; pointer-events:none; }
.plan-eje { position:relative; margin-left:32px; height:26px; font-size:10px; color:#66768b; }
.plan-eje>span { position:absolute; bottom:0; white-space:nowrap; }.plan-eje>.medio { transform:translateX(-50%); }.plan-eje>.ultimo { transform:translateX(-100%); }
.plan-guia-hoy { position:absolute; left:calc(var(--plan-meta,0px) + 44px); right:12px; top:0; bottom:0; pointer-events:none; z-index:2; }
.plan-guia-hoy>i { position:absolute; top:26px; bottom:0; width:1px; background:#9a8253a6; font-style:normal; }
.plan-guia-hoy span { position:absolute; top:-18px; left:0; transform:translateX(-50%); font-size:9px; letter-spacing:.06em; color:#79653e; background:#f8fafc; padding:2px 4px; }
.plan-sinfecha { color:#8794a5; font-size:10px; }
.plan-leyenda { display:flex; align-items:center; gap:20px; flex-wrap:wrap; font-size:11px; color:#64748b; margin-top:14px; }
.plan-leyenda>span { display:flex; align-items:center; gap:6px; }
.plan-leyenda i { display:inline-block; width:20px; height:9px; border-radius:2px; }
.muestra-lb { background:#f1dfb8; border:1px solid #ba9b68; }.muestra-real { background:#416880; }.muestra-curso { background:repeating-linear-gradient(135deg,#607f9630 0 3px,#607f9660 3px 5px); border:1px dashed #607f96; }.muestra-margen { background:repeating-linear-gradient(135deg,#8da0b438 0 2px,transparent 2px 4px); border:1px dotted #8d9cae; }
.plan-ayuda-etapa { margin-left:auto; }.plan-vacio { text-align:center; padding:25px; color:#64748b; }
.plan-detalle-tiempo { position:relative; padding:12px; border:1px solid #e2e8f0; border-radius:8px; background:white; margin:20px 0; }
.plan-detalle-tiempo .plan-eje { margin-bottom:18px; }
.plan-etapas-lista { display:flex; flex-wrap:wrap; gap:8px; }
.plan-etapas-lista button { text-align:left; }.plan-etapas-lista small { display:block; color:#64748b; margin-top:5px; font-size:10px; }
.plan-etapa-detalle { position:fixed; inset:0; margin:auto; height:fit-content; width:480px; max-width:calc(100vw - 48px); max-height:85vh; box-sizing:border-box; overflow:auto; border:1px solid #dbe3ec; border-radius:12px; padding:24px; color:#243248; background:#fff; box-shadow:0 20px 90px #16233840; }
.plan-etapa-detalle::backdrop { background:#14223560; }
.plan-etapa-detalle header { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.plan-etapa-detalle header small { letter-spacing:.08em; color:#64748b; font-size:10px; }
.plan-etapa-detalle h3 { margin:8px 0; font-size:13px; }.plan-etapa-estado { color:#64748b; font-size:12px; margin:0 0 22px; }
.plan-real-editor { display:grid; gap:12px; margin-top:18px; padding-top:16px; border-top:1px solid #e2e8f0; }
.plan-real-editor[hidden],.plan-lb-editor[hidden] { display:none; }
.plan-etapa-tarjeta-cabecera { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.plan-etapa-tarjeta .plan-etapa-tarjeta-cabecera h4 { margin:0; }
.plan-etapa-tarjeta-cabecera .btn-secundario { padding:5px 8px; font-size:11px; white-space:nowrap; }
.plan-etapa-tarjeta-cabecera .btn-secundario:disabled { opacity:.55; cursor:not-allowed; }
.plan-lb-editor { display:grid; gap:11px; margin-top:14px; padding-top:12px; border-top:1px solid #ddc8a5; font-size:12px; }
.plan-lb-editor p { margin:0; color:#617186; }
.plan-lb-editor label { display:grid; gap:4px; }
.plan-lb-editor label small { font-weight:400; color:#617186; }
.plan-lb-editor input,.plan-lb-editor select,.plan-lb-editor textarea { width:100%; box-sizing:border-box; }
.plan-lb-relaciones { display:grid; gap:8px; }
.plan-lb-relaciones > .btn-secundario { justify-self:start; }
.plan-lb-relacion { display:grid; grid-template-columns:1.5fr 1.2fr .6fr auto; align-items:end; gap:6px; }
.plan-lb-relacion > .btn-secundario { align-self:end; }
.plan-lb-editor [data-lb-estado] { color:#617186; }
@media (max-width:520px) { .plan-lb-relacion { grid-template-columns:1fr 1fr; } }
.plan-real-fechas { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.plan-real-hito-ayuda { margin:-5px 0 0; color:#617186; font-size:11px; }
.plan-real-editor input,.plan-real-editor textarea { width:100%; box-sizing:border-box; }
.plan-real-pie,.plan-ejecucion-control { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.plan-ejecucion-acciones { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.plan-excel { margin:12px 0; }
.plan-excel-acciones { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.plan-excel p { margin:6px 0 0; color:#586a7c; font-size:12px; }
.plan-panel .plan-ejecucion-acciones .btn-peligro { border:1px solid #d8a6a1; border-radius:6px; padding:8px 12px; background:#fff5f3; color:#9b3b32; cursor:pointer; font:inherit; font-size:12px; }
.plan-panel .plan-ejecucion-acciones .btn-peligro:hover { background:#fce9e5; }
.plan-real-pie { min-height:34px; color:#64748b; font-size:11px; }
.plan-real-pie .btn-peligro { width:34px; height:34px; padding:0; font-size:18px; }
.plan-ejecucion-control { margin:18px 0; padding:14px 16px; border:1px solid #d9e3ec; background:#f5f8fb; border-radius:9px; }
.plan-ejecucion-control small { display:block; margin-top:4px; color:#64748b; }
.plan-etapa-tarjetas { display:grid; gap:9px; }
.plan-etapa-tarjeta { border:1px solid #dce4eb; border-radius:8px; padding:11px 12px; background:#f7f9fb; }
.plan-etapa-tarjeta.lb { background:#fbf3e5; border-color:#ddc8a5; }.plan-etapa-tarjeta.real { background:#eaf3f8; border-color:#b6d0df; }
.plan-etapa-tarjeta h4 { margin:0 0 10px; font-size:13px; color:#30465b; }
.plan-etapa-datos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.plan-etapa-datos.dos { grid-template-columns:repeat(2,minmax(0,1fr)); }
.plan-etapa-datos span { display:block; color:#617186; font-size:11px; }.plan-etapa-datos strong { display:block; margin-top:3px; color:#253b50; font-size:14px; font-weight:700; white-space:nowrap; }
.plan-etapa-datos small { display:block; margin-top:3px; color:#667589; font-size:11px; }.plan-etapa-datos small.adelantada { color:#27664c; }.plan-etapa-datos small.atrasada { color:#9b3b32; }.plan-etapa-datos small.en-fecha { color:#405670; }
.plan-traza { border-top:1px solid #e2e8f0; padding-top:14px; margin-top:18px; font-size:12px; overflow-wrap:anywhere; }
.plan-traza h4 { margin:0 0 8px; font-size:11px; color:#64748b; }.plan-traza small { display:block; color:#64748b; margin-top:4px; }.plan-traza p { white-space:pre-wrap; }
.plan-vista { background:#fff; border:1px solid #d9e2eb; border-radius:12px; padding:14px; margin:10px 0 12px; min-width:0; }
.plan-vista-barra { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:12px; }
.plan-vista-barra h4 { margin:0; font-size:13px; color:#243248; }
.plan-vista-acciones { display:flex; align-items:center; gap:8px; flex:none; }.plan-panel .plan-vista-acciones .btn-secundario[aria-pressed=true] { background:#385f7a; border-color:#385f7a; color:white; }
.plan-vista:fullscreen { box-sizing:border-box; width:100%; height:100%; padding:20px 28px; margin:0; border:0; border-radius:0; display:flex; flex-direction:column; background:#f8fafc; }
.plan-vista:fullscreen [data-plan-grafico] { flex:1; min-height:0; display:flex; flex-direction:column; }
.plan-vista:fullscreen .plan-comparacion { flex:1; min-height:0; display:flex; flex-direction:column; }
.plan-vista:fullscreen .plan-comparacion-scroll { flex:1; min-height:0; overflow:auto; }
.plan-vista:fullscreen .plan-comparacion-grafico { min-height:100%; box-sizing:border-box; display:flex; flex-direction:column; }
.plan-vista:fullscreen .plan-comparacion-filas { flex:1; display:flex; flex-direction:column; }
.plan-vista:fullscreen .plan-comparacion-fila { flex:1; min-height:72px; }
.plan-vista:fullscreen .plan-datos { flex:none; }
.plan-anexo { border:1px solid #e1e7ee; background:#fff; border-radius:9px; margin:10px 0; overflow:hidden; }
.plan-anexo>summary { cursor:pointer; padding:9px 13px; color:#34485d; font-size:13px; font-weight:650; }
.plan-anexo>summary:hover { background:#f7f9fb; }
.plan-datos { border:0; background:transparent; margin:10px 0 0; }.plan-datos>summary { padding:5px 2px 9px; }
.plan-resumen { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px; }
.plan-resumen-grupo { border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; background:#f5f7fa; }
.plan-resumen-grupo.lb { background:#fbf3e5; border-color:#ddc8a5; }.plan-resumen-grupo.real { background:#eaf3f8; border-color:#b6d0df; }
.plan-resumen-grupo h5 { font-size:13px; font-weight:700; margin:0; padding:6px 10px 0; color:#695338; }
.plan-resumen-grupo.real h5 { color:#315e77; }.plan-resumen-grupo.balance h5 { color:#4a596b; }
.plan-resumen-valores { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:4px 10px 8px; }
.plan-resumen-valores span { display:block; font-size:10px; color:#667589; white-space:nowrap; }.plan-resumen-valores strong { display:block; margin-top:2px; font-size:14px; font-weight:700; color:#263c50; white-space:nowrap; }
.plan-resumen-observacion { grid-column:1 / -1; min-width:0; margin-top:6px; }
.plan-resumen-observacion strong { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; font-weight:400; }
.plan-resumen-explicacion { grid-column:1 / -1; min-width:0; margin:6px 0 0; font-size:12px; line-height:1.5; color:#526578; overflow-wrap:anywhere; }
.plan-resumen-grupo.balance .plan-resumen-valores span { white-space:normal; }
.plan-comparacion { margin:0; }.plan-comparacion-tabla { margin:0; }
.plan-comparacion-tabla h4 { display:none; }
.plan-comparacion-scroll { width:100%; max-width:100%; box-sizing:border-box; overflow-x:auto; border:1px solid #dde5ee; border-radius:9px; background:#fff; }
.plan-comparacion-grafico { box-sizing:border-box; min-width:730px; padding:16px; }
.plan-comparacion-eje,.plan-comparacion-fila { display:grid; grid-template-columns:calc(170px + 2%) minmax(0,1fr); gap:10px; }
.plan-comparacion-eje { margin-bottom:8px; }.plan-comparacion-eje .plan-eje { margin:0 8px 0 38px; font-size:12px; font-weight:700; }
.plan-comparacion-filas { position:relative; }.plan-comparacion-fila { align-items:center; min-height:58px; border-top:1px solid #d3dde7; }
.plan-comparacion-nombre { font-size:15px; font-weight:600; color:#34485d; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.plan-comparacion-pistas { padding-right:8px; }.plan-comparacion-pista { display:flex; align-items:center; height:24px; }
.plan-comparacion-pista>span { width:38px; flex:none; font-size:10px; font-weight:700; color:#64748b; }
.plan-solo-lb .plan-comparacion-pista { height:34px; }.plan-solo-lb .plan-comparacion-tramo .plan-etapa-barra { height:22px; top:-3px; }
.plan-comparacion-tramo { position:relative; flex:1; height:16px; background:linear-gradient(#e8edf2,#e8edf2) center/100% 1px no-repeat; }
.plan-comparacion-tramo .plan-etapa-barra { top:0; height:16px; }
.plan-comparacion-tramo .plan-etapa-barra.real.en-curso { border-right:2px dashed #2b465d; }
.plan-comparacion-guia { position:absolute; left:calc(218px + 2%); right:8px; top:0; bottom:0; pointer-events:none; z-index:2; }
.plan-separador-periodo { position:absolute; top:0; bottom:0; border-left:1px solid #c3cfdd; pointer-events:none; }
.plan-dependencias { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; overflow:visible; }
.plan-dependencias path[data-dependencia] { fill:none; stroke:#b49869; stroke-width:1.5; opacity:.9; }
.plan-dependencias marker path { fill:#b49869; }
.plan-comparacion-fila { position:relative; z-index:2; }
.plan-comparacion-hoy { position:absolute; top:0; bottom:0; width:1px; background:#a78b5caa; }
.plan-comparacion-hoy span { position:absolute; top:-19px; left:0; transform:translateX(-50%); font-size:9px; font-weight:700; letter-spacing:.05em; color:#78613c; background:white; padding:1px 4px; }
.plan-comparacion-leyenda { display:flex; flex-wrap:wrap; gap:16px; margin:9px 0 0; font-size:11px; color:#64748b; }
.plan-comparacion-leyenda span { display:flex; align-items:center; gap:5px; }.plan-comparacion-leyenda i { width:17px; height:8px; display:inline-block; border-radius:2px; }
.plan-comparacion-tabla .plan-tabla { max-width:100%; }.plan-comparacion-tabla table { min-width:850px; }
.plan-comparacion-tabla th,.plan-comparacion-tabla td { white-space:nowrap; padding:11px 10px; min-width:0; font-size:11px; }.plan-comparacion-tabla td:not(:first-child) { font-size:13px; font-weight:700; }
.plan-comparacion-tabla tbody th { text-align:left; font-weight:600; border-top:1px solid #edf1f5; }
.plan-comparacion-tabla td small { margin:2px 0 0; }.plan-comparacion-tabla .plan-var-atraso { color:#9b3b32; }.plan-comparacion-tabla .plan-var-adelanto { color:#27664c; }.plan-comparacion-tabla .plan-var-enfecha { color:#405670; }
.plan-editor { margin:24px 0; }.plan-editor>label { max-width:220px; }.plan-editor input[name=nombre] { min-width:220px; }.plan-editor input[type=number] { width:85px; }.plan-editor select { width:240px; }
.plan-edicion-lb-barra { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding:10px 14px; border:1px solid #e3d6bc; border-radius:9px; background:#faf6ee; color:#5b4b31; }
.plan-editor-etapas { display:grid; gap:12px; margin-top:16px; }
.plan-editor-etapa { border:1px solid #dce4ed; border-radius:10px; padding:16px; background:white; }
.plan-editor-fila { display:flex; align-items:end; flex-wrap:wrap; gap:12px; }
.plan-editor .plan-nombre { flex:1; min-width:230px; }.plan-editor .plan-nombre input { width:100%; box-sizing:border-box; }
.plan-numero { color:#718096; font-size:13px; align-self:center; min-width:18px; }
.plan-editor-fila select { width:180px; }.plan-editor-fila input[type=number] { width:105px; }
.plan-orden { display:flex; gap:4px; }.plan-orden button,.plan-relacion>button { border:1px solid #cbd5e1; background:#f8fafc; color:#405670; border-radius:5px; padding:8px 11px; cursor:pointer; }
.plan-editor-secundaria { display:flex; flex-wrap:wrap; gap:24px; align-items:start; margin:16px 0 0 30px; }
.plan-relaciones { flex:1; min-width:300px; font-size:12px; }.plan-relaciones summary { cursor:pointer; color:#405670; padding:6px 0; }
.plan-relacion { display:flex; align-items:end; flex-wrap:wrap; gap:8px; padding:8px 0; }
.plan-relacion select[name=relacion] { width:270px; }.plan-relacion input[name=lag] { width:95px; }
.plan-evento-cierre { max-width:290px; }.plan-evento-cierre select { width:290px; }
.plan-fechas-calculadas { margin:12px 0 0 30px; font-size:12px; color:#47647e; }
.plan-proximo>label { max-width:550px; }.plan-proximo select { width:100%; }
.plan-ayuda { font-size:12px; max-width:950px; color:#64748b; line-height:1.7; }.plan-acciones { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.plan-proximo { margin:24px 0; background:#edf4fa; padding:20px; border-radius:10px; }.plan-proximo form { display:flex; align-items:end; flex-wrap:wrap; gap:16px; }.plan-proximo textarea { min-width:300px; }
.plan-evento { border-top:1px solid #cbd5e1; width:100%; padding:10px 0; font-size:12px; }
.plan-error { background:#fce8e6; color:#9b322a; padding:14px; border-radius:6px; }.plan-historia { margin:24px 0; font-size:12px; }.plan-historia pre { white-space:pre-wrap; overflow-wrap:anywhere; background:white; padding:15px; }.plan-historia summary { cursor:pointer; padding:8px 0; }
@media(max-width:800px) { .plan-overlay { padding:8px; }.plan-panel { padding:14px; }.plan-cifras { grid-template-columns:repeat(2,1fr); }.plan-barra { align-items:start; flex-direction:column; }.plan-cabecera h2 { font-size:20px; }.plan-detalle-cabecera { grid-template-columns:minmax(0,1fr); gap:8px; }.plan-detalle-contexto { justify-content:flex-start; flex-wrap:wrap; white-space:normal; } }
@media(max-width:800px) { .plan-panel-integrado { padding:0; } }
@media(max-width:800px) { .plan-vista-barra { align-items:flex-start; flex-wrap:wrap; }.plan-resumen { grid-template-columns:1fr; }.plan-vista:fullscreen { padding:12px; } }

.plan-comparacion-tramo .plan-etapa-barra > .plan-duracion-barra { display:flex; align-items:center; justify-content:center; height:100%; padding:0 1px; font-size:10px; font-weight:600; line-height:1; text-overflow:clip; }

/* Una franja por tarea agrupa LB y REAL sin ocultar las dependencias. */
.plan-comparacion-fila:nth-child(odd) { background:rgba(72,107,140,.045); }
.plan-comparacion-fila:last-child { border-bottom:1px solid #d3dde7; }
.plan-comparacion-fila:hover, .plan-comparacion-fila:focus-within { background:rgba(72,107,140,.085); }
.plan-comparacion-nombre { padding-left:6px; }

.plan-editor .plan-observacion-lb { display:flex; flex-direction:column; gap:5px; margin:12px 0; max-width:640px; }
.plan-editor .plan-observacion-lb input { width:100%; box-sizing:border-box; }

/* Escala civil compartida por las pistas LB y REAL. */
.plan-escala { display:flex; align-items:center; gap:6px; font-size:12px; color:#52667d; }
.plan-escala select { padding:7px 10px; border:1px solid #cbd8e5; border-radius:6px; background:#fff; color:#34485d; }
.plan-eje-periodos>span { box-sizing:border-box; text-align:center; border-left:1px solid #dbe4ed; padding:5px 2px; text-transform:capitalize; }

.plan-eje-periodos>.plan-dia-no-habil { color:#b42318; background:#fff3f2; }

.plan-eje-periodos>span:first-child { text-align:left; }
.plan-eje-periodos>span:last-child { text-align:right; }
