/* Instrumento · 01 Planeación — muestra de contratos.
   Misma familia visual que las etapas: tinta #173b59, verde #087f6c,
   tarjetas blancas con borde azul pálido. Todo acotado a #expedienteContenido. */
#expedienteContenido{
  --plan-tinta:#173b59;--plan-texto:#3f5a72;--plan-suave:#617a8e;--plan-verde:#087f6c;
  --plan-borde:#d3dfed;--plan-fondo:#f5f8fb;--plan-alerta:#9a4a12;
}
#expedienteContenido :is(.plan-fuente,.plan-parametros,.plan-resultados,.plan-vacio){
  border:1px solid var(--plan-borde);border-radius:20px;background:#fff;box-shadow:0 10px 30px #142c4708;
}
#expedienteContenido .plan-fuente{padding:clamp(18px,3vw,28px);margin-bottom:24px}
#expedienteContenido .plan-fuente-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
#expedienteContenido .plan-fuente-cab h3,#expedienteContenido .plan-panel-cab h3,#expedienteContenido .plan-vacio h3{margin:0 0 5px;color:var(--plan-tinta);font-size:21px;line-height:1.25}
#expedienteContenido .plan-fuente-cab p,#expedienteContenido .plan-panel-cab p{margin:0;color:var(--plan-suave);font-size:14px;line-height:1.5}
#expedienteContenido .plan-fuente-cab strong{color:var(--plan-tinta)}
#expedienteContenido .plan-fuente-acciones{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
#expedienteContenido .plan-campo > label:not(.plan-subir),#expedienteContenido .plan-campo-titulo{display:block;margin-bottom:7px;color:#214160;font-size:13px;font-weight:650}

/* Carga desde el equipo: el control nativo queda oculto pero operable, y la
   etiqueta hace de botón y de zona para soltar el archivo. */
#expedienteContenido .plan-subir{
  position:relative;display:flex;align-items:center;gap:12px;min-height:40px;padding:7px 14px 7px 8px;
  border:1.5px dashed #9fb6cc;border-radius:12px;background:#f7fafd;color:var(--plan-tinta);
  cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
#expedienteContenido .plan-subir input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
#expedienteContenido .plan-subir-icono{
  display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:10px;
  background:#e2f2ec;color:var(--plan-verde);transition:transform .25s cubic-bezier(.22,1,.36,1),background .2s ease;
}
#expedienteContenido .plan-subir-icono svg{width:21px;height:21px}
#expedienteContenido .plan-subir-texto{display:grid;min-width:0;line-height:1.3}
#expedienteContenido .plan-subir-texto strong{color:var(--plan-verde);font-size:14px;font-weight:700}
#expedienteContenido .plan-subir-texto small{overflow:hidden;color:var(--plan-suave);font-size:12px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
#expedienteContenido .plan-subir:hover,#expedienteContenido .plan-subir.arrastrando{border-color:var(--plan-verde);background:#eef8f4}
#expedienteContenido .plan-subir:hover .plan-subir-icono,#expedienteContenido .plan-subir.arrastrando .plan-subir-icono{transform:translateY(-2px);background:#d3ede3}
#expedienteContenido .plan-subir.arrastrando{border-style:solid;box-shadow:0 0 0 4px #087f6c1f}
#expedienteContenido .plan-subir:focus-within{outline:3px solid var(--plan-verde);outline-offset:2px}
#expedienteContenido .plan-subir.ocupado{cursor:progress;opacity:.7}
#expedienteContenido .plan-subir.ocupado .plan-subir-icono svg{animation:plan-subir-latido 1.1s ease-in-out infinite}
@keyframes plan-subir-latido{50%{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){
  #expedienteContenido .plan-subir,#expedienteContenido .plan-subir-icono{transition:none}
  #expedienteContenido .plan-subir.ocupado .plan-subir-icono svg{animation:none}
}
#expedienteContenido .plan-fila{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#expedienteContenido .plan-fila select{flex:1;min-width:0}
#expedienteContenido :is(.plan-fuente,.plan-resultados,.plan-parametros) :is(select,input[type=search],input[type=text],input[type=number]){
  box-sizing:border-box;min-height:40px;padding:8px 11px;border:1px solid #aebfd1;border-radius:10px;
  background:#fcfdff;color:#17314c;font:400 14px/1.4 var(--fuente);
}
#expedienteContenido :is(.plan-fuente,.plan-resultados,.plan-parametros) :is(select,input,button):focus-visible{outline:3px solid var(--plan-verde);outline-offset:2px}
#expedienteContenido .plan-icono{min-width:40px;font-size:17px}
#expedienteContenido .plan-estado{margin:14px 0 0;color:#2c6a5f;font-size:13px}
#expedienteContenido .plan-estado:empty{display:none}
#expedienteContenido .plan-estado.error{color:var(--plan-alerta)}
#expedienteContenido .plan-avisos{margin:10px 0 0;padding:10px 14px 10px 30px;border-radius:10px;background:#fff6e8;color:#7a4a12;font-size:13px}
#expedienteContenido .plan-nota{margin:14px 0 0;color:var(--plan-suave);font-size:12.5px;line-height:1.5}
#expedienteContenido .plan-nota a{color:var(--plan-verde)}

#expedienteContenido .plan-vacio{grid-column:1/-1;padding:26px 30px}
#expedienteContenido .plan-vacio ol{margin:10px 0 0;padding-left:20px;color:var(--plan-texto);font-size:15px;line-height:1.7}

/* Parámetros a la izquierda, resultados a la derecha. */
#expedienteContenido .plan-cuerpo{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:22px;align-items:start}
#expedienteContenido .plan-parametros{position:sticky;top:90px;max-height:calc(100dvh - 110px);overflow:auto;padding:22px 20px;scrollbar-width:thin}
#expedienteContenido .plan-panel-cab{margin-bottom:12px}
#expedienteContenido .plan-parametros fieldset{margin:0;padding:14px 0;border:0;border-top:1px solid #e3ebf3}
#expedienteContenido .plan-parametros legend{padding:0;margin-bottom:10px;color:var(--plan-tinta);font-size:13px;font-weight:750;letter-spacing:.02em}
#expedienteContenido .plan-peso{margin-bottom:12px}
#expedienteContenido .plan-peso label{display:block;color:#214160;font-size:13.5px;font-weight:600}
#expedienteContenido .plan-peso small{display:block;color:var(--plan-suave);font-size:11.5px;font-weight:400}
#expedienteContenido .plan-peso-control{display:flex;align-items:center;gap:8px;margin-top:5px}
#expedienteContenido .plan-peso-control input[type=range]{flex:1;min-width:0;accent-color:var(--plan-verde)}
#expedienteContenido .plan-peso-control input[type=number]{width:66px;min-height:34px;padding:5px 7px;text-align:right}
#expedienteContenido .plan-peso-control span{color:var(--plan-suave);font-size:13px}
#expedienteContenido .plan-suma{margin:4px 0 10px;padding:8px 10px;border-radius:9px;background:#e6f4ef;color:#1d6155;font-size:12.5px;font-weight:600}
#expedienteContenido .plan-suma.alerta{background:#fff1e0;color:var(--plan-alerta)}
#expedienteContenido .plan-impacto{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#expedienteContenido .plan-impacto label{display:grid;gap:4px;color:#214160;font-size:12.5px;font-weight:600}
#expedienteContenido .plan-impacto input{width:100%;min-height:34px;padding:5px 8px}
#expedienteContenido .plan-check{display:flex;align-items:flex-start;gap:8px;margin:0 0 7px;color:var(--plan-texto);font-size:13px;line-height:1.4;cursor:pointer}
#expedienteContenido .plan-check input{flex:none;width:16px;height:16px;margin:1px 0 0;accent-color:var(--plan-verde)}
#expedienteContenido .plan-ayuda{margin:12px 0 7px;color:var(--plan-suave);font-size:12px;font-weight:600}
#expedienteContenido .plan-estados{display:grid;grid-template-columns:1fr;gap:0}
#expedienteContenido .plan-linea{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#214160;font-size:13.5px;font-weight:600}
#expedienteContenido .plan-linea select{min-height:36px}
#expedienteContenido .plan-restaurar{width:100%;margin-top:4px}

#expedienteContenido .plan-resultados{min-width:0;padding:20px}
#expedienteContenido .plan-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}
#expedienteContenido .plan-cifra{min-width:0;padding:13px 14px;border-radius:14px;background:var(--plan-fondo)}
#expedienteContenido .plan-cifra span{display:block;color:var(--plan-suave);font-size:11.5px;font-weight:650;letter-spacing:.03em}
#expedienteContenido .plan-cifra strong{display:block;margin:3px 0 1px;color:var(--plan-tinta);font-size:21px;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}
#expedienteContenido .plan-cifra small{display:block;color:var(--plan-suave);font-size:11.5px;line-height:1.35}
#expedienteContenido .plan-cifra:nth-child(4){background:#e6f4ef}
#expedienteContenido .plan-cifra:nth-child(4) strong{color:#075e54}

#expedienteContenido .plan-pestanas{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid #e3ebf3}
#expedienteContenido .plan-pestanas button{min-height:40px;padding:8px 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--plan-suave);font:600 14px/1.3 var(--fuente);cursor:pointer}
#expedienteContenido .plan-pestanas button[aria-selected=true]{border-bottom-color:var(--plan-verde);color:var(--plan-tinta)}
#expedienteContenido .plan-pestanas button:hover{color:var(--plan-tinta)}
#expedienteContenido .plan-herramientas{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
#expedienteContenido .plan-herramientas input[type=search]{flex:1 1 220px;min-width:0}
#expedienteContenido .plan-herramientas select{flex:0 1 210px;min-width:0}
#expedienteContenido .plan-herramientas select[hidden]{display:none}
#expedienteContenido .plan-conteo{margin:0 0 8px;color:var(--plan-suave);font-size:12.5px}

#expedienteContenido .plan-tabla-marco{overflow:auto;max-height:70dvh;border:1px solid #e3ebf3;border-radius:12px}
#expedienteContenido .plan-tabla table{width:100%;border-collapse:collapse;font-size:13px;color:var(--plan-texto)}
#expedienteContenido .plan-tabla th{position:sticky;top:0;z-index:1;padding:9px 10px;background:#f1f5f9;color:var(--plan-tinta);font-size:11.5px;font-weight:700;letter-spacing:.03em;text-align:left;white-space:nowrap}
#expedienteContenido .plan-tabla td{padding:8px 10px;border-top:1px solid #edf2f7;vertical-align:top}
#expedienteContenido .plan-tabla .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#expedienteContenido .plan-tabla tr.plan-apagada td{color:#8a99a8}
#expedienteContenido .plan-tabla tr.abierta td{background:#f3f9f7}
#expedienteContenido .plan-tabla .plan-sin td,#expedienteContenido .plan-tabla td.plan-sin{color:#8a99a8;font-style:italic}
#expedienteContenido .plan-contrato{padding:0;border:0;background:none;color:var(--plan-verde);font:650 13px/1.35 var(--fuente);text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:pre-line}
#expedienteContenido .plan-contrato:focus-visible{outline:3px solid var(--plan-verde);outline-offset:2px;border-radius:3px}
#expedienteContenido .plan-situacion{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:650;line-height:1.5;white-space:nowrap}
#expedienteContenido .plan-situacion.ok{background:#dcf2e6;color:#075e54}
#expedienteContenido .plan-situacion.bloqueado{background:#eef1f4;color:#5c6c75}
#expedienteContenido .plan-situacion.manual{background:#fff1dc;color:#8a4b0f}

#expedienteContenido .plan-detalle-fila > td{padding:0;background:#f8fbfa}
#expedienteContenido .plan-detalle{padding:16px 18px 18px;border-left:3px solid var(--plan-verde)}
#expedienteContenido .plan-objeto{margin:0 0 12px;color:var(--plan-tinta);font-size:13.5px;line-height:1.55}
#expedienteContenido .plan-desglose{max-width:620px;margin-bottom:10px;border:1px solid #e3ebf3;background:#fff}
#expedienteContenido .plan-desglose th{position:static}
#expedienteContenido .plan-desglose .plan-total td{font-weight:750;color:var(--plan-tinta);background:#f1f5f9}
#expedienteContenido .plan-datos{margin:6px 0;font-size:12.5px;line-height:1.6}
#expedienteContenido .plan-decision fieldset{max-width:620px;margin:12px 0 0;padding:12px 14px;border:1px solid #e3ebf3;border-radius:12px;background:#fff}
#expedienteContenido .plan-decision legend{padding:0 4px;color:var(--plan-tinta);font-size:12.5px;font-weight:750}
#expedienteContenido .plan-motivo{display:grid;gap:5px;margin:8px 0 10px;color:#214160;font-size:12.5px;font-weight:600}
#expedienteContenido .plan-motivo input{width:100%}
#expedienteContenido .plan-decision-estado{color:#2c6a5f;font-size:12.5px}

/* Ejecución: contrato traído de la muestra de Planeación. */
#expedienteContenido .exp-contrato{margin:14px 0 20px;padding:16px 18px;border:1px solid #cfe5dc;border-radius:16px;background:#f4faf7}
#expedienteContenido .exp-contrato:empty{display:none}
#expedienteContenido .exp-contrato-cab h4{margin:0 0 4px;color:var(--plan-tinta);font-size:16px}
#expedienteContenido .exp-contrato-cab p{margin:0;color:var(--plan-suave);font-size:13.5px;line-height:1.5}
#expedienteContenido .exp-contrato-cab a{color:var(--plan-verde)}
#expedienteContenido .exp-contrato-elegir{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
#expedienteContenido .exp-contrato-elegir select{flex:1 1 320px;min-width:0;min-height:40px;padding:8px 11px;border:1px solid #aebfd1;border-radius:10px;background:#fff;color:#17314c;font:400 14px/1.4 var(--fuente)}
#expedienteContenido .exp-contrato-elegir select:focus-visible{outline:3px solid var(--plan-verde);outline-offset:2px}
#expedienteContenido .exp-contrato-nota{margin:8px 0 0;color:var(--plan-suave);font-size:12px}
#expedienteContenido .exp-contrato-estado{margin:8px 0 0;color:#2c6a5f;font-size:13px;font-weight:600}
#expedienteContenido .exp-contrato-estado:empty{display:none}
#expedienteContenido .exp-contrato-ficha{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:14px 0 0;border:1px solid #d6e6de;border-radius:12px;overflow:hidden;background:#d6e6de}
#expedienteContenido .exp-contrato-ficha > div{min-width:0;padding:9px 12px;background:#fff}
#expedienteContenido .exp-contrato-ficha > div.ancho{grid-column:1/-1}
#expedienteContenido .exp-contrato-ficha > div.doble{grid-column:span 2}
#expedienteContenido .exp-contrato-ficha > div.doble dd{font-weight:700}
#expedienteContenido .exp-contrato-ficha dt{color:var(--plan-suave);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
#expedienteContenido .exp-contrato-ficha dd{margin:3px 0 0;color:var(--plan-tinta);font-size:13.5px;line-height:1.45;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#expedienteContenido .exp-contrato-resumen{margin:0 0 18px;padding:10px 14px;border:1px solid #cfe5dc;border-radius:12px;background:#f4faf7}
#expedienteContenido .exp-contrato-resumen summary{color:var(--plan-texto);font-size:13.5px;cursor:pointer}
#expedienteContenido .exp-contrato-resumen summary span{color:var(--plan-verde);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
#expedienteContenido .exp-contrato-resumen summary strong{color:var(--plan-tinta)}
#expedienteContenido .exp-contrato-resumen summary:focus-visible{outline:3px solid var(--plan-verde);outline-offset:3px;border-radius:4px}
#expedienteContenido .exp-contrato-resumen .exp-contrato-ficha{margin-top:10px}

@media(max-width:960px){
  #expedienteContenido .plan-cuerpo{grid-template-columns:minmax(0,1fr)}
  #expedienteContenido .plan-parametros{position:static;max-height:none}
  #expedienteContenido .plan-estados{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  #expedienteContenido .plan-fuente-cab{flex-direction:column}
  #expedienteContenido .plan-fuente-acciones{grid-template-columns:minmax(0,1fr)}
  #expedienteContenido .plan-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}
  #expedienteContenido .plan-cifra strong{font-size:18px}
  #expedienteContenido .exp-contrato-ficha{grid-template-columns:repeat(2,minmax(0,1fr))}
  #expedienteContenido .exp-contrato-elegir .btn{flex:1 1 100%}
  #expedienteContenido .plan-estados{grid-template-columns:minmax(0,1fr)}
  #expedienteContenido .plan-resultados{padding:14px}
  #expedienteContenido .plan-herramientas select,#expedienteContenido .plan-herramientas .btn{flex:1 1 100%}
  #expedienteContenido :is(.plan-fuente,.plan-resultados,.plan-parametros) :is(select,input[type=search],input[type=text],input[type=number]){font-size:16px}
}
