/* ==========================================================================
   SGEA-CFU — Estilos propios del sistema de expedientes.
   Se carga después de dashboard.css y componentes.css (comparte su paleta y componentes).
   ========================================================================== */

/* Tarjeta con pestañas: el contenido ocupa todo el ancho */
.panel-card { padding: 0; overflow: hidden; }
.panel-card > .tabs { padding: 0 14px; }
.panel-body { padding: 18px 22px 22px; }
.panel-body .table-wrap { margin: 0 -22px -22px; }

/* Insignias de rol */
.role-badge--ADMIN { color: var(--purple-700); background: var(--purple-100); }
.role-badge--SUPERVISOR { color: var(--blue-600); background: var(--blue-50); }
.role-badge--ASESOR { color: var(--gray-700); background: var(--gray-100); }
.role-badge--LECTOR { color: #92400e; background: var(--amber-50); }

/* Inicio de sesión con Google */
.btn--google {
  gap: 10px; height: 44px; border: 1px solid var(--gray-300); background: #fff; color: var(--gray-900);
}
.btn--google:hover { border-color: var(--gray-400); background: var(--gray-25); }
.btn--google svg { width: 18px; height: 18px; }
.login__divider { display: flex; align-items: center; gap: 10px; color: var(--text-muted); font-size: 12px; }
.login__divider::before, .login__divider::after { content: ""; flex: 1; height: 1px; background: var(--border); }

/* Barra de filtros sobre una tabla */
.filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 14px; }
.filters .field { min-width: 150px; }
.filters .field--grow { flex: 1; min-width: 220px; }

/* Configuración: navegación de catálogos */
.cfg-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 18px; align-items: start; }
.cfg-nav { position: sticky; top: calc(var(--topbar-h) + 12px); display: flex; flex-direction: column; gap: 2px; padding: 10px; }
.cfg-nav__group { margin: 10px 8px 4px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.cfg-nav__item {
  display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 0; border-radius: var(--radius-sm);
  background: transparent; text-align: left; font-size: 13px; font-weight: 600; color: var(--gray-600); cursor: pointer;
}
.cfg-nav__item:hover { background: var(--gray-50); color: var(--gray-900); }
.cfg-nav__item[aria-current="true"] { background: var(--purple-50); color: var(--purple-700); }
.cfg-nav__item small { color: var(--text-muted); font-weight: 500; }
.row-off td { opacity: .5; }
.cell-wrap { white-space: normal; min-width: 160px; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; }

/* Probador de reglas de nombres de archivo */
.tester { display: grid; grid-template-columns: 1fr 2fr auto; gap: 10px; align-items: end; }
.tester__result { margin-top: 12px; }

/* Auditoría: detalle de cambios */
.diff { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 12px; }
.cell-detalle { min-width: 320px; }
.diff dt { font-weight: 600; color: var(--gray-600); }
.diff dd { margin: 0; word-break: break-word; }
.diff__antes { color: var(--rose-600); }
.diff__despues { color: var(--green-600); }

/* Inicio: hoja de ruta de etapas */
.roadmap { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.roadmap__item { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.roadmap__item h3 { margin: 6px 0 4px; font-size: 14px; }
.roadmap__item p { margin: 0; font-size: 12px; color: var(--text-muted); line-height: 1.45; }
.roadmap__item--hecho { border-color: #a7f3d0; background: var(--green-50); }

.checklist { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: 13px; }
.checklist li { display: flex; gap: 8px; align-items: center; }
.checklist .icon { width: 16px; height: 16px; flex-shrink: 0; }

@media (max-width: 1023px) {
  .cfg-layout { grid-template-columns: 1fr; }
  .cfg-nav { position: static; flex-direction: row; flex-wrap: wrap; }
  .cfg-nav__group { width: 100%; }
  .tester { grid-template-columns: 1fr; }
}

/* ---------- Etapa 1: importaciones ---------- */
.imp-pasos { display: flex; flex-direction: column; gap: 18px; max-width: 980px; }
.imp-fuentes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin: 0; padding: 0; border: 0; }
.imp-fuentes legend { margin-bottom: 8px; }
.fuente-card { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 14px 40px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); cursor: pointer; }
.fuente-card input { position: absolute; left: 14px; top: 16px; }
.fuente-card:has(input:checked) { border-color: var(--purple-500); background: var(--purple-50); }
.fuente-card__nombre { font-weight: 700; font-size: 14px; }
.fuente-card__desc { font-size: 12px; color: var(--text-muted); line-height: 1.4; }
.fuente-card__clave { font-size: 11px; color: var(--purple-700); font-weight: 600; }
.progreso { height: 8px; border-radius: 99px; background: var(--gray-100); overflow: hidden; margin: 6px 0; }
.progreso__barra { height: 100%; background: var(--purple-500); transition: width .2s; }

.lote-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; flex-wrap: wrap; }
.lote-head__titulo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 4px 0; font-size: 18px; }
.lote-head__acciones { display: flex; gap: 8px; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 10px; }
.stat { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); cursor: pointer; text-align: left; font: inherit; }
.stat:hover { border-color: var(--gray-300); }
.stat.is-active { border-color: var(--purple-500); box-shadow: 0 0 0 2px var(--purple-100); }
.stat__valor { font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.stat__label { font-size: 12px; color: var(--text-muted); }
.resumen-extra { margin: 14px 0 0; padding: 12px 16px 12px 32px; border-radius: var(--radius); background: var(--gray-25, #fafafa); border: 1px solid var(--border); font-size: 13px; line-height: 1.7; }
.resumen-extra .is-warn { color: #92400e; }
.lista-compacta { margin: 6px 0; padding-left: 18px; font-size: 12px; line-height: 1.6; max-height: 260px; overflow: auto; }
.fila-adv { margin-top: 4px; font-size: 12px; color: #92400e; }
.fila-adv .icon { width: 12px; height: 12px; vertical-align: -1px; }
.paginador { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 0 0; font-size: 13px; }
.panel-body .table-wrap + .paginador { margin-top: 22px; }

/* ---------- Etapa 1: por clasificar ---------- */
.chips-cola { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; font-size: 13px; }
.barra-bloque { position: sticky; top: calc(var(--topbar-h) + 6px); z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; padding: 10px 14px; border: 1px solid var(--purple-200, #ddd6fe); border-radius: var(--radius); background: var(--purple-50); }
.barra-bloque .field__input { width: auto; min-width: 260px; height: 34px; }
.sugerencia { display: inline-flex; align-items: center; gap: 4px; margin: 2px 4px 2px 0; padding: 3px 9px; border: 1px dashed var(--purple-500); border-radius: 99px; background: #fff; color: var(--purple-700); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.sugerencia:hover { background: var(--purple-50); border-style: solid; }
.sugerencia small { color: var(--text-muted); font-weight: 500; white-space: nowrap; }

/* ---------- Etapa 1: ficha ---------- */
.ficha-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 18px; align-items: start; }
.datos { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0; }
.datos--3 { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); margin: 12px 0 4px; }
.datos dt { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); }
.datos dd { margin: 2px 0 0; font-size: 13px; word-break: break-word; }
.expediente__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.subtitulo { margin: 22px 0 8px; font-size: 14px; }
.conv-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.conv-grupo { margin: 6px 0; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.conv-grupo summary { padding: 9px 12px; cursor: pointer; font-size: 13px; }
.conv-grupo .table-wrap { margin: 0; }
.historial { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.historial li { display: grid; grid-template-columns: 130px minmax(0, 1fr) 200px; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.historial__fecha, .historial__autor { color: var(--text-muted); font-size: 12px; }

@media (max-width: 1023px) {
  .ficha-grid { grid-template-columns: 1fr; }
  .historial li { grid-template-columns: 1fr; gap: 2px; }
}
.cell-sug { white-space: normal; min-width: 260px; max-width: 380px; }

/* ---------- Etapa 2: asignación de asesores ---------- */
.chip-filtro { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border: 1px solid var(--border); border-radius: 99px; background: #fff; color: var(--gray-700); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.chip-filtro small { color: var(--text-muted); font-weight: 500; }
.chip-filtro .icon { width: 14px; height: 14px; }
.chip-filtro:hover { background: var(--purple-50); }
.chip-filtro[aria-pressed="true"] { border-color: var(--purple-500); background: var(--purple-50); color: var(--purple-700); }
.chip-filtro--alerta { color: #92400e; }
.aviso-filtro:empty { display: none; }
.asesor-ficha { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.asesor-ficha__etiqueta { display: block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); }
.kpi--accion { font: inherit; text-align: left; cursor: pointer; }
.kpi--accion:not(.kpi--featured) { color: inherit; }
.kpi--accion:focus-visible { outline: 2px solid var(--purple-500); outline-offset: 2px; }
.kpis.kpis--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kpis.kpis--3 > .kpi { grid-column: auto; }
@media (max-width: 767px) { .kpis.kpis--3 { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Etapa 2: matriz de requisitos ---------- */
.mx-barra { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.mx-barra .muted { font-size: 13px; margin-top: 2px; }
.mx-borrador { margin-top: 8px; padding: 6px 10px; border-radius: 8px; background: var(--amber-50); color: #78350f; font-size: 13px; }
.mx-borrador .icon { width: 15px; height: 15px; vertical-align: -3px; }
.mx-acciones { display: flex; flex-wrap: wrap; gap: 6px; }
.mx-leyenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 12px; }
.mx-c { display: inline-block; min-width: 76px; padding: 3px 8px; border-radius: 6px; font-size: 12px; font-weight: 600; text-align: center; white-space: nowrap; }
.mx-ob { color: var(--purple-700); background: var(--purple-100); }
.mx-ex { color: #065f46; background: var(--green-50); }
.mx-na { color: var(--gray-600); background: var(--gray-100); }
.mx-cv { color: #1e40af; background: var(--blue-50); }
.mx-ct { color: #6b21a8; background: #f3e8ff; }
.mx-pd { color: #78350f; background: var(--amber-50); border: 1px dashed var(--amber-600); }
.mx-cambio { outline: 2px solid var(--amber-600); outline-offset: 1px; }
.mx-tabla th, .mx-tabla td { text-align: center; vertical-align: middle; }
.mx-tabla th.mx-doc { text-align: left; min-width: 220px; font-weight: 600; white-space: normal; }
.mx-tabla tbody th.mx-doc .muted { font-weight: 400; font-size: 12px; }
.mx-grupo { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 500; color: var(--purple-700); background: var(--purple-50); }
.mx-desde { margin-top: 2px; font-size: 11px; color: var(--text-muted); }
.mx-btn { padding: 2px; border: 0; border-radius: 8px; background: none; font: inherit; cursor: pointer; }
.mx-btn:hover .mx-c { box-shadow: 0 0 0 2px var(--purple-200, #ddd6fe); }
.mx-btn:focus-visible { outline: 2px solid var(--purple-500); outline-offset: 2px; }
.mx-versiones { margin-top: 16px; }
.mx-versiones summary { cursor: pointer; font-weight: 600; margin-bottom: 8px; }
.mx-fila-actual { background: var(--purple-50); }
.mx-opciones { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; }
.mx-opcion { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 8px; cursor: pointer; }
.mx-opcion:has(input:checked) { border-color: var(--purple-500); background: var(--purple-50); }
.mx-impacto { padding: 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; }
.mx-tabla th.mx-doc { position: sticky; left: 0; z-index: 1; background: var(--surface); box-shadow: 1px 0 0 var(--border); }
.mx-tabla thead th { white-space: normal; min-width: 96px; line-height: 1.25; }

/* ---------- Etapa 2: exoneraciones ---------- */
.exo-titulo { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.exo-card { margin-bottom: 10px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.exo-card__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 8px; }
.exo-card__head .muted { font-size: 12px; margin-top: 2px; }
.exo-docs { margin: 8px 0 6px; padding-left: 18px; }
.exo-docs li { margin: 2px 0; }
.exo-si { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; font-size: 12px; font-weight: 600; color: var(--green-600); }
.exo-si .icon { width: 13px; height: 13px; }
.exo-no { margin-left: 6px; font-size: 12px; color: var(--rose-600); }
.exo-texto { margin: 4px 0; font-size: 13px; }
.exo-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.exo-check { display: flex; align-items: center; gap: 6px; margin: 4px 0; font-size: 14px; }
.modal select.field__input { width: 100%; max-width: 100%; min-width: 0; text-overflow: ellipsis; }

/* ---------- Etapa 2: estado según sistema ---------- */
.tag--obs { color: #9a3412; background: #ffedd5; }
.ce-barra { position: relative; display: inline-flex; flex: 1; min-width: 80px; height: 10px; border-radius: 99px; overflow: hidden; background: var(--gray-200, #e5e7eb); vertical-align: middle; }
.ce-ok { display: block; height: 100%; background: var(--green-600); }
.ce-ca { display: block; height: 100%; background: var(--amber-600); }
.ce-bloque { margin: 12px 0 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.ce-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.ce-fecha { margin-left: auto; font-size: 12px; }
.ce-linea { display: flex; align-items: center; gap: 10px; margin: 6px 0; }
.ce-lab { width: 86px; font-size: 13px; color: var(--text-muted); }
.ce-pct { min-width: 150px; font-size: 13px; }
.ce-leyenda { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 8px; font-size: 12px; color: var(--text-muted); }
.ce-leyenda i { display: inline-block; width: 10px; height: 10px; margin-right: 4px; border-radius: 3px; background: var(--gray-200, #e5e7eb); vertical-align: -1px; }
.ce-leyenda i.ce-ok { background: var(--green-600); }
.ce-leyenda i.ce-ca { background: var(--amber-600); }
.ce-grupos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.ce-titulo { margin: 6px 0 4px; font-weight: 600; font-size: 13px; }
.ce-lista { margin: 0; padding: 0; list-style: none; }
.ce-req { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.ce-motivo { display: block; font-size: 12px; color: var(--text-muted); }
.ce-resto { margin-top: 10px; }
.ce-resto summary { cursor: pointer; font-size: 13px; color: var(--text-muted); }
.es-niveles { display: flex; flex-direction: column; gap: 6px; }
.es-nivel { display: grid; grid-template-columns: 74px minmax(0, 1fr) 150px; align-items: center; gap: 8px; }
.es-nivel__avance { display: flex; align-items: center; gap: 6px; font-size: 12px; }
@media (max-width: 767px) { .es-nivel { grid-template-columns: 1fr; } .ce-pct { min-width: 0; } }

/* ---------- Etapa 2: navegación (buscador rápido y contadores) ---------- */
.nav-link__badge--alerta { color: #fff; background: var(--rose-600); }
.buscador { position: relative; flex: 1; max-width: 560px; margin-right: 16px; }
.buscador__icono { position: absolute; left: 12px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: var(--text-muted); pointer-events: none; }
.buscador__input { width: 100%; height: 38px; padding: 0 70px 0 36px; border: 1px solid var(--border); border-radius: 10px; background: var(--gray-50, #f9fafb); font: inherit; font-size: 14px; color: inherit; }
.buscador__input:focus { outline: none; border-color: var(--purple-500); background: var(--surface); box-shadow: 0 0 0 3px var(--purple-100); }
.buscador__atajo { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); padding: 1px 6px; border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 5px; font: 11px/1.4 inherit; color: var(--text-muted); background: var(--surface); pointer-events: none; }
.buscador__lista { position: absolute; z-index: 50; top: calc(100% + 6px); left: 0; right: 0; max-height: 420px; overflow-y: auto; padding: 6px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow, 0 10px 30px rgba(0, 0, 0, .12)); }
.buscador__item { display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; border-radius: 8px; color: inherit; text-decoration: none; font-size: 13px; }
.buscador__item[aria-selected="true"], .buscador__item:hover { background: var(--purple-50); }
.buscador__niveles { font-size: 12px; color: var(--text-muted); }
.buscador__vacio { margin: 0; padding: 10px; color: var(--text-muted); font-size: 13px; }
@media (max-width: 767px) { .buscador { margin-right: 8px; } .buscador__atajo { display: none; } .buscador__input { padding-right: 10px; font-size: 13px; } }
.cola-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 12px; }
.cola-cabecera .chips-cola { margin-bottom: 0; }
.uno-card { max-width: 820px; padding: 16px 18px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.uno-cab { margin-bottom: 6px; font-size: 13px; }
.uno-nombre { margin: 0 0 4px; font-size: 18px; font-weight: 600; word-break: break-word; }
.uno-sugerencias { margin-bottom: 12px; }
.sugerencia.is-elegida { border-style: solid; background: var(--purple-100); }
.uno-acciones { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.uno-acciones .field__input { flex: 1; min-width: 220px; width: auto; height: 34px; }
/* Los contadores siguen visibles (como punto) con el menú contraído y en tablet: las reglas que ocultan los textos del menú no los alcanzan */
.app .nav-link span.nav-link__badge:not([hidden]) { display: inline-block; }

/* ---------- Etapa 3: Mi bandeja, doble confirmación y Control ---------- */
.bj-grid { display: grid; grid-template-columns: minmax(0, 250px) minmax(0, 1fr); gap: 18px; align-items: start; }
.bj-colas { display: flex; flex-direction: column; gap: 2px; padding: 8px; }
.bj-cola { display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: inherit; font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.bj-cola:hover { background: var(--gray-50, #f9fafb); }
.bj-cola[aria-current="true"] { background: var(--purple-50); color: var(--purple-700); font-weight: 600; }
.bj-num { min-width: 26px; padding: 1px 8px; border-radius: 99px; font-size: 12px; font-weight: 600; text-align: center; background: var(--purple-100); color: var(--purple-700); }
.bj-num--alerta { background: var(--rose-50); color: var(--rose-600); }
.bj-num--cero { background: var(--gray-100); color: var(--text-muted); }
.bj-pronto { padding: 6px 10px; font-size: 13px; color: var(--text-muted); display: flex; justify-content: space-between; }
.bj-pronto small { font-size: 11px; }
.bj-sep { margin: 6px 0; border-top: 1px dashed var(--border); }
.bj-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.bj-cab h2 { margin: 0; font-size: 17px; }
.bj-niveles { display: flex; flex-wrap: wrap; gap: 4px; }
.bj-fuera { opacity: .55; }
.bj-fila { cursor: pointer; }
.bj-fila:hover td { background: var(--purple-50); }
.cola-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; padding: 8px 12px; border: 1px solid var(--purple-100); border-radius: var(--radius); background: var(--purple-50); font-size: 13px; }
.cola-nav__texto { flex: 1; min-width: 180px; }
.dc-bloque { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.dc-bloque--alerta { border-color: #fecdd3; background: var(--rose-50); }
.dc-estados { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-bottom: 6px; font-size: 13px; }
.dc-situacion { margin: 2px 0 6px; font-size: 15px; font-weight: 600; }
.dc-bloque--alerta .dc-situacion { color: var(--rose-600); }
.dc-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.dc-nota { margin: 8px 0 0; font-size: 12px; color: var(--text-muted); }
.dc-hist { margin-top: 10px; }
.dc-hist summary { cursor: pointer; font-size: 13px; color: var(--text-muted); }
.dc-hist ol { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.dc-hist li { margin-bottom: 6px; }
.dc-foto { margin: 4px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px; }
.tag--vi { color: var(--purple-700); background: var(--purple-50); }
.ct-resumen td, .ct-resumen th { text-align: center; }
.ct-resumen td:first-child, .ct-resumen th:first-child { text-align: left; }
@media (max-width: 900px) { .bj-grid { grid-template-columns: 1fr; } .bj-colas { flex-direction: row; flex-wrap: wrap; } .bj-cola { width: auto; } .bj-sep, .bj-pronto { display: none; } }

/* ---------- Etapa 4: gestión de contactos (ficha) ---------- */
.gs-resumen { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 0 0 14px; font-size: 13px; }
.gs-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, 1fr); gap: 22px; align-items: start; }
.gs-grid--solo { grid-template-columns: 1fr; }
.gs-lista { margin: 0; padding: 0; list-style: none; }
.gs-item { padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 14px; }
.gs-item .muted { font-size: 13px; }
.gs-comentario { margin-top: 3px; font-size: 13px; }
.gs-mas summary { cursor: pointer; margin-top: 8px; font-size: 13px; color: var(--text-muted); }
.gs-form { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--gray-50, #f9fafb); display: flex; flex-direction: column; gap: 8px; }
.gs-form .field__label { margin: 4px 0 0; }
.gs-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gs-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gs-pie { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; }
@media (max-width: 900px) { .gs-grid { grid-template-columns: 1fr; } .gs-dos { grid-template-columns: 1fr; } }
.bj-grupo { margin: 2px 10px 2px; font-size: 11px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--text-muted); }
@media (max-width: 900px) { .bj-grupo { flex-basis: 100%; } }
.gs-atajo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin: 10px 0 12px; padding: 8px 10px; border: 1px solid var(--purple-100); border-radius: var(--radius); background: var(--purple-50); font-size: 13px; }
