/* Documentos, experiencia laboral y envío */
.progreso { position: relative; height: 38px; background: var(--cream-100); border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin: 1rem 0 1.4rem; }
.progreso-barra { position: absolute; inset: 0 auto 0 0; background: var(--lime); transition: width .4s ease; }
.progreso span { position: relative; display: block; line-height: 38px; padding: 0 1.2rem; font: 700 .95rem var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: var(--olive-800); }
.mini-progreso { height: 8px; background: var(--cream-200); border-radius: 999px; overflow: hidden; max-width: 360px; }
.mini-progreso i { display: block; height: 100%; background: var(--olive-500); border-radius: 999px; }
.mini-progreso.grande-barra { height: 14px; max-width: none; margin: .6rem 0 .4rem; }
.resumen-exp .grande { font: 800 3rem var(--font-display); color: var(--olive-800); }
.resumen-exp.cumple .mini-progreso i { background: var(--ok); }
.doc-acciones { display: flex; flex-direction: column; gap: .5rem; align-items: flex-end; }
.doc-acciones .btn { padding: .5rem 1rem; font-size: .9rem; }
.archivos { display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .9rem; }
.archivos a { text-decoration: none; border-bottom: 1px solid var(--line); word-break: break-all; }
.pendiente-msg { color: var(--danger) !important; font-weight: 600; }
.archivo-fila { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem 0; border-bottom: 1px dashed var(--line); }
.archivo-fila small { display: block; color: var(--sage); }
.archivo-fila form { margin: 0; }
.btn.chico { padding: .35rem .8rem; font-size: .8rem; }
.meta { margin: .15rem 0; color: var(--ink-soft); font-size: .93rem; }
.exp-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.field input[type=file] { padding: .55rem; background: var(--cream-50); border-style: dashed; cursor: pointer; }
.bloque-archivo { padding: .9rem 1rem; background: var(--cream-50); border: 1px solid var(--line); border-radius: 12px; }
.historial summary { cursor: pointer; font-weight: 600; color: var(--olive-500); }
@media (max-width: 800px) { .doc-acciones { align-items: flex-start; flex-direction: row; flex-wrap: wrap; } }

/* Fotografía de identificación */
.perfil { display: flex; align-items: center; gap: 1.2rem; margin-bottom: 1rem; flex-wrap: wrap; }
.avatar { width: 96px; height: 128px; object-fit: cover; border-radius: 14px; border: 3px solid var(--olive-800); background: var(--cream-100); box-shadow: 0 10px 20px -14px rgba(38,48,19,.7); display: block; flex: none; }
.avatar.grande { width: 120px; height: 160px; }
.avatar.mini { width: 42px; height: 56px; border-width: 2px; border-radius: 8px; box-shadow: none; }
.avatar.vacio { display: grid; place-items: center; text-decoration: none; border-style: dashed; border-color: var(--sage); color: var(--sage); }
.avatar.vacio span { font: 800 2.2rem var(--font-display); line-height: 1; }
.avatar.vacio small { font: 700 .75rem var(--font-display); letter-spacing: .12em; text-transform: uppercase; }
a.avatar.vacio:hover { border-color: var(--olive-800); color: var(--olive-800); background: var(--lime-soft); }
.col-foto { width: 64px; padding-right: 0 !important; }
.foto-previa { width: 150px; height: 200px; object-fit: cover; border-radius: 14px; border: 3px solid var(--olive-800); margin-bottom: 1rem; display: block; }

/* Revisión del verificador (hito 3) */
details.accion { margin: .6rem 0 0; }
details.accion summary { cursor: pointer; color: var(--accent, #1f4d2b); font-weight: 600; }
details.accion form { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
details.accion input, details.accion select { flex: 1 1 14rem; }
.obs { margin: .4rem 0 0; font-size: .9rem; }
.obs.enviada { color: #6b5b00; } .obs.borrador { color: #555; font-style: italic; }
button.link { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
.btn.ok { background: #3f6b1f; color: #fff; } .btn.bad { background: #a32020; color: #fff; }
.btn.sec { background: transparent; color: inherit; border: 1px solid currentColor; }
.resultado.apto { border-left: 6px solid #3f6b1f; } .resultado.inapto { border-left: 6px solid #a32020; }
tr.no-aplica { opacity: .5; }

/* Etiquetas rotuladas del encabezado del postulante */
.perfil .etq { display: inline-flex; flex-direction: column; margin: .25rem 1.1rem .25rem 0; line-height: 1.2; vertical-align: top; }
.perfil .etq small { font: 700 .68rem var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-500); }
.perfil .etq { font-weight: 600; }

/* Entrega 4: documentos, requisitos y carga de archivos */
.sub { display: block; font-size: .5em; letter-spacing: .08em; color: var(--olive-500); margin-top: .2em; }
.resumen-post { display: flex; flex-wrap: wrap; gap: .6rem 2rem; margin: 1rem 0 .8rem; padding: .9rem 1.2rem; border-radius: 12px; background: rgba(222,228,43,.12); border: 1px solid var(--line); }
.resumen-post .etq { display: flex; flex-direction: column; font-weight: 600; line-height: 1.25; }
.resumen-post .etq small { font: 700 .68rem var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-500); }
.lead-suave { color: var(--ink-soft); margin: .2rem 0 1.2rem; }
.formatos { display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; flex-wrap: wrap; margin-bottom: 1.2rem; border-left: 5px solid var(--lime); }
.formatos h3 { margin: 0 0 .2rem; } .formatos p { margin: 0; color: var(--ink-soft); max-width: 46ch; }
.progreso span { text-align: center; padding: 0 1rem; }
.doc-acciones { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; }

.edad-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .8rem; margin: 1rem 0 1.2rem; }
.edad-card { padding: .9rem 1.1rem; border-radius: 12px; background: #fffffa; border: 1px solid var(--line); font-size: .95rem; }
.edad-card small { display: block; font: 700 .7rem var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-500); margin-bottom: .2rem; }
.edad-card b { font: 800 1.5rem/1 var(--font-display); color: var(--olive-800); }
.edad-card.ok { border-color: var(--ok); } .edad-card.excede { border-color: var(--danger); background: var(--danger-bg); }
.reqs { list-style: none; margin: 0; padding: 0; counter-reset: r; }
.reqs .decl { display: grid; grid-template-columns: 2.4rem 1fr auto; gap: .5rem 1rem; align-items: start; }
.reqs .num { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--olive-800); color: var(--lime); font: 800 1rem var(--font-display); }
.reqs .req-texto p { margin: 0; }
.reqs .porque { margin-top: .35rem; font-size: .88rem; color: var(--ink-soft); }
@media (max-width: 640px) { .reqs .decl { grid-template-columns: 2.4rem 1fr; } .reqs .yn { grid-column: 2; } }

.dropzone { position: relative; display: grid; place-items: center; min-height: 170px; padding: 1.4rem; text-align: center; border: 2px dashed var(--sage); border-radius: 14px; background: rgba(222,228,43,.07);
  transition: background var(--t-normal) var(--ease), border-color var(--t-normal) var(--ease), transform var(--t-normal) var(--ease); }
.dropzone.activo { background: rgba(222,228,43,.28); border-color: var(--olive-800); transform: scale(1.01); }
.dropzone input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.dz-msg { display: grid; gap: .25rem; pointer-events: none; }
.dz-icono { font-size: 2rem; line-height: 1; color: var(--olive-500); }
.dz-msg b { font: 700 1.15rem var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--olive-800); }
.dz-msg small { color: var(--ink-soft); }
.dz-lista { list-style: none; margin: .7rem 0 0; padding: 0; font-size: .92rem; }
.dz-lista li { padding: .35rem .7rem; border-radius: 8px; background: var(--ok-bg); margin-bottom: .3rem; }
.dz-lista li.mal { background: var(--danger-bg); color: var(--danger); font-weight: 600; }
.dz-previa { margin-top: .8rem; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; }
.dz-previa embed { display: block; width: 100%; height: min(60vh, 520px); } .dz-previa img { display: block; max-width: 100%; max-height: 420px; margin: 0 auto; }

/* ---- Documentos del postulante: botones sin amontonarse ---- */
.doc { gap: .6rem 1.2rem; }
.doc-acciones { display: grid; grid-template-columns: 1fr; gap: .45rem; justify-items: stretch; min-width: 9.5rem; align-self: start; }
.doc-acciones .btn { width: 100%; white-space: nowrap; }
.doc-acciones .chip { justify-self: center; }
.doc-acciones .tramite { border-style: dashed; }
.tramite-card { border-left-color: var(--olive-500); background: rgba(222,228,43,.08); }
@media (max-width: 640px) { .doc { grid-template-columns: auto 1fr; } .doc-acciones { grid-column: 1 / -1; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); } }

/* ---- Revisión del verificador: más aire, menos carga ---- */
.rev-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.5rem; align-items: start; margin-top: 1rem; }
.rev-lateral { position: sticky; top: 1rem; }
@media (max-width: 1000px) { .rev-layout { grid-template-columns: 1fr; } .rev-lateral { position: static; order: -1; } }
.plegable { background: #fffffa; border: 1px solid var(--line); border-radius: var(--radius); padding: .2rem 1.2rem; margin-bottom: 1rem; }
.plegable > summary { cursor: pointer; padding: .8rem 0; font: 700 1.05rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--olive-800); }
.plegable[open] > summary { border-bottom: 1px dashed var(--line); margin-bottom: .8rem; }
.plegable dl.datos, .plegable ul.decls { padding-bottom: 1rem; }
.rev-seccion h2 { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; font-size: 1.5rem; margin: 1.6rem 0 .8rem; }
.rev-seccion h2 small { font: 600 .9rem var(--font-body); letter-spacing: 0; text-transform: none; color: var(--ink-soft); }
.rev-doc { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr) auto; gap: .4rem 1rem; padding: 1rem 1.1rem; margin-bottom: .7rem; background: #fffffa; border: 1px solid var(--line); border-left: 4px solid var(--cream-200); border-radius: 12px; scroll-margin-top: 1rem; transition: border-color var(--t-normal) var(--ease), box-shadow var(--t-normal) var(--ease); }
.rev-doc:hover { box-shadow: 0 10px 22px -18px rgba(38,48,19,.7); }
.rev-doc.ok { border-left-color: var(--ok); } .rev-doc.obs { border-left-color: #c9a400; }
.rev-doc:target { box-shadow: 0 0 0 3px rgba(222,228,43,.7); }
.rev-n { font: 800 1.4rem/1 var(--font-display); color: var(--sage); padding-top: .15rem; }
.rev-cuerpo h3 { margin: 0 0 .3rem; font-size: 1.12rem; line-height: 1.2; text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-weight: 700; color: var(--ink); }
.rev-meta { display: flex; flex-wrap: wrap; gap: .2rem 1rem; margin: 0 0 .5rem; font-size: .88rem; color: var(--ink-soft); }
.rev-archivos { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.arch { display: inline-flex; align-items: center; gap: .5rem; max-width: 100%; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--cream-50); cursor: pointer; font: inherit; font-size: .88rem; color: var(--ink); transition: background var(--t-rapido) var(--ease), border-color var(--t-rapido) var(--ease); }
.arch:hover { background: var(--lime-soft); border-color: var(--olive-500); }
.arch-ico { font: 800 .68rem var(--font-display); letter-spacing: .08em; padding: .1rem .4rem; border-radius: 4px; background: var(--olive-800); color: var(--lime); }
.arch-nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 26ch; }
.arch small { color: var(--ink-soft); }
.rev-nota { margin: .5rem 0 0; font-size: .88rem; color: var(--ink-soft); } .rev-nota.warn { color: #6b5b00; } .rev-nota.ok { color: var(--ok); }
.rev-menus { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; margin-top: .4rem; }
.rev-menus details.accion { margin: 0; }
.rev-menus details.accion summary { font-size: .9rem; }
.captura { display: grid; gap: .25rem; font-size: .85rem; color: var(--ink-soft); flex: 1 1 16rem; }
.rev-estado { display: flex; flex-direction: column; align-items: flex-end; gap: .45rem; min-width: 7.5rem; }
.rev-estado form { margin: 0; }
.rev-pie { margin: .6rem 0 0; font-size: .9rem; }
@media (max-width: 640px) { .rev-doc { grid-template-columns: 2rem 1fr; } .rev-estado { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; } }

/* Cierre de la revisión: texto normal, un solo llamado a la acción */
.cierre { padding: 1.2rem; }
.cierre h3 { margin-bottom: .6rem; }
.cierre .btn.block { width: 100%; }
.cierre .btn + form, .cierre form + form, .cierre details { margin-top: .8rem; }
.cierre-txt { margin: .6rem 0; font: 400 .95rem/1.45 var(--font-body); text-transform: none; letter-spacing: 0; color: var(--ink-soft); }
.avance { height: 10px; border-radius: 99px; background: var(--cream-200); overflow: hidden; }
.avance i { display: block; height: 100%; background: var(--ok); border-radius: 99px; transition: width var(--t-lento) var(--ease); }
.avance-txt { margin: .4rem 0 .8rem; font-size: .9rem; color: var(--ink-soft); }
.falta { font: 400 .92rem/1.4 var(--font-body); }
.falta summary { cursor: pointer; font-weight: 600; color: #6b5b00; }
.falta ul { margin: .5rem 0 0; padding-left: 1.1rem; max-height: 14rem; overflow: auto; text-transform: none; letter-spacing: 0; font-weight: 400; }
.falta li { margin-bottom: .25rem; font-family: var(--font-body); font-weight: 400; text-transform: none; letter-spacing: 0; font-size: .88rem; }
.cierre .accion form { display: grid; gap: .5rem; margin-top: .5rem; }

/* Visor de documentos */
.visor { width: min(1100px, 96vw); height: min(92vh, 900px); border: 0; border-radius: 16px; padding: 0; overflow: hidden; background: #fffffa; box-shadow: 0 30px 70px -20px rgba(0,0,0,.6); }
.visor[open] { display: flex; flex-direction: column; animation: entra var(--t-normal) var(--ease); }
.visor::backdrop { background: rgba(28,35,13,.6); }
.visor-cab { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; padding: .7rem 1rem; background: var(--olive-800); color: var(--cream-50); }
.visor-cab small { opacity: .75; }
.visor-acciones { display: flex; align-items: center; gap: .4rem; }
.visor-acciones form { margin: 0; }
.visor-acciones .btn.ghost { color: var(--cream-50); border-color: var(--sage); } .visor-acciones .btn.ghost:hover { background: var(--lime); color: var(--olive-800); }
#visor-pos { font-size: .85rem; min-width: 3.5rem; text-align: center; }
.visor-cuerpo { flex: 1; min-height: 0; background: #e9e8d6; display: grid; place-items: center; overflow: auto; }
.visor-cuerpo iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.visor-cuerpo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.visor-pie { padding: .7rem 1rem; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; }
.avatar-btn { padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 14px; }
.chips { margin: 0; display: flex; gap: .4rem; flex-wrap: wrap; }
.registro-excel { margin: 1rem 0; }
.registro-excel .buscador { padding-bottom: 1rem; }
.registro-excel summary small { font: 400 .85rem var(--font-body); text-transform: none; letter-spacing: 0; color: var(--ink-soft); }

/* Agenda de visitas */
.agenda-cab { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin: .6rem 0 1rem; }
.agenda-cab h2 { margin: 0 .4rem; font-size: 1.7rem; text-transform: capitalize; } .agenda-cab small { font: 600 .9rem var(--font-body); color: var(--ink-soft); text-transform: none; }
.agenda-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 1.2rem; align-items: start; }
@media (max-width: 960px) { .agenda-layout { grid-template-columns: 1fr; } }
.calendario { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-dia-nombre { text-align: center; font: 700 .8rem var(--font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--olive-500); padding: .3rem 0; }
.cal-celda { min-height: 92px; padding: .35rem; border: 1px solid var(--line); border-radius: 8px; background: #fffffa; display: flex; flex-direction: column; gap: 3px; overflow: hidden; }
.cal-celda.vacia { background: transparent; border-style: dashed; opacity: .5; }
.cal-celda.hoy { border: 2px solid var(--olive-800); background: rgba(222,228,43,.15); }
.cal-num { font: 800 .95rem var(--font-display); color: var(--olive-500); }
.cal-cita { display: block; font-size: .74rem; line-height: 1.2; padding: 2px 5px; border-radius: 5px; background: var(--olive-800); color: var(--cream-50); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: background var(--t-rapido) var(--ease); }
.cal-cita:hover { background: var(--olive-500); } .cal-cita b { color: var(--lime); } .cal-cita small { margin-left: .3rem; opacity: .75; }
.proximas h3 { margin-bottom: .6rem; }
.prox { display: grid; gap: 1px; padding: .55rem .7rem; margin-bottom: .4rem; border-radius: 10px; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: background var(--t-rapido) var(--ease); }
.prox:hover { background: var(--lime-soft); } .prox small { color: var(--ink-soft); }
@media (max-width: 640px) { .cal-celda { min-height: 64px; } .cal-cita { font-size: .62rem; } }
.visita .cita-fila { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.visita label { display: grid; gap: .2rem; font-size: .85rem; color: var(--ink-soft); }
.visita form { display: grid; gap: .6rem; margin-top: .5rem; }
.cita-vigente { margin: .4rem 0; font-size: 1rem; text-transform: capitalize; } .cita-vigente small { text-transform: none; color: var(--ink-soft); }
.cuenta + .cierre, .rev-lateral .cierre + .cierre { margin-top: 1rem; }

.aviso.spam { margin: 1rem 0; border-left: 5px solid #c9a400; background: var(--warn-bg); }
.llevar { display: flex; gap: 1.2rem; align-items: flex-start; margin-top: .9rem; padding: 1rem; background: rgba(255,255,250,.7); border: 1px dashed var(--sage); border-radius: 12px; }
.llevar img { flex: 0 0 150px; width: 150px; height: 150px; object-fit: contain; border-radius: 10px; background: #fff; border: 1px solid var(--line); }
.llevar h4 { margin: 0 0 .4rem; font: 700 1.1rem var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--olive-800); }
.llevar ul { margin: 0; padding-left: 1.1rem; } .llevar li { margin-bottom: .3rem; }
.folder-detalle { margin-top: .3rem !important; font-size: .92rem; color: var(--ink-soft); }
@media (max-width: 560px) { .llevar { flex-direction: column; align-items: center; } }

/* Bandeja: pestañas por responsable */
.pestanas { display: flex; gap: .3rem; flex-wrap: wrap; border-bottom: 2px solid var(--line); margin: .5rem 0 1rem; }
.pestana { padding: .6rem 1.1rem; border-radius: 10px 10px 0 0; text-decoration: none; font: 700 1rem var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--olive-500); transition: background var(--t-rapido) var(--ease); }
.pestana b { margin-left: .3rem; padding: .05rem .5rem; border-radius: 99px; background: var(--cream-200); color: var(--olive-800); font-size: .85rem; }
.pestana:hover { background: rgba(222,228,43,.25); }
.pestana.on { background: var(--olive-800); color: var(--lime); } .pestana.on b { background: var(--lime); }
.carga-ver .tabla { margin-bottom: 1rem; }

/* Cabecera del sitio: la navegación no se parte en dos filas */
.masthead .wrap { flex-wrap: nowrap; }
.brand { min-width: 0; flex: 0 1 auto; }
.masthead nav { flex-wrap: nowrap; gap: .5rem; flex: 0 0 auto; }
.masthead nav .who { max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.masthead .btn { padding: .4rem .8rem; white-space: nowrap; }
@media (max-width: 1000px) { .masthead .wrap { flex-wrap: wrap; row-gap: .5rem; } .masthead nav { flex-wrap: wrap; margin-left: 0; } }
