/* Agregados para Gestión (usa los mismos colores y componentes que el Archivo) */

.marca-modulo { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--acento); }

.encabezado { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.encabezado h1 { margin-bottom: 0.2rem; }
.acciones { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 0.8rem; margin-bottom: 1.5rem; }
.kpi { background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); padding: 0.95rem 1.1rem; }
.kpi .etq { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--tinta-3); }
.kpi .valor { font-size: 1.55rem; font-weight: 700; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; margin-top: 0.15rem; }
.kpi .pie { font-size: 0.85rem; color: var(--tinta-2); margin-top: 0.2rem; }
.kpi.alerta .valor { color: var(--alerta); }

.chips { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.chip {
  font: inherit; font-size: 0.9rem; font-weight: 600; border: 1px solid var(--linea-2); background: var(--papel); color: var(--tinta);
  border-radius: 99px; padding: 0.4rem 0.85rem; cursor: pointer;
}
.chip[aria-pressed="true"] { background: var(--tinta); color: var(--papel); border-color: var(--tinta); }
.chip .n { font-weight: 500; opacity: 0.75; margin-left: 0.25rem; }

.filtros { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; margin-bottom: 0.9rem; }
.filtros input[type="search"] { max-width: 300px; }
.filtros select { width: auto; }

.btn-mini { padding: 0.25rem 0.6rem; font-size: 0.82rem; border-radius: 6px; }
.fila-accion { white-space: nowrap; text-align: right; }

.barra-aging { display: flex; height: 10px; border-radius: 99px; overflow: hidden; background: var(--linea); margin: 0.55rem 0 0.35rem; }
.barra-aging span { display: block; height: 100%; }
.leyenda { display: flex; gap: 0.9rem; flex-wrap: wrap; font-size: 0.82rem; color: var(--tinta-2); }
.leyenda i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 0.3rem; vertical-align: 0; }
.c1 { background: #4c8f86; } .c2 { background: #d9a441; } .c3 { background: #c25b36; } .c4 { background: #8b8f99; }

.meses { display: grid; gap: 0.5rem; }
.mes { display: grid; grid-template-columns: 70px 1fr; gap: 0.75rem; align-items: center; font-size: 0.88rem; }
.mes-barras { display: grid; gap: 3px; }
.mes-fila { display: grid; grid-template-columns: minmax(0, 1fr) 4.2rem; gap: 0.5rem; align-items: center; }
.mes-fila > div { height: 9px; border-radius: 3px; min-width: 2px; }
.mes-valor { font-size: 0.78rem; color: var(--tinta-2); white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.mes-barras .v { background: var(--acento); }
.mes-barras .cb { background: #5b7fb5; }
.mes-barras .co { background: #d9a441; }
.mes-barras .p { background: #8b8f99; }
.c5 { background: #5b7fb5; }
.visualmente-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.zona-archivo {
  border: 2px dashed var(--linea-2); border-radius: var(--radio); padding: 2rem 1.25rem; text-align: center;
  background: var(--papel); cursor: pointer; transition: border-color 0.15s, background 0.15s;
}
.zona-archivo.encima { border-color: var(--acento); background: var(--acento-suave); }
.zona-archivo strong { display: block; font-size: 1.05rem; margin-bottom: 0.25rem; }
.zona-archivo input { display: none; }
.guia { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 0.8rem; margin: 1.25rem 0; }
.guia .tarjeta h3 { margin-bottom: 0.4rem; }
.guia ol { margin: 0.3rem 0 0; padding-left: 1.1rem; font-size: 0.92rem; color: var(--tinta-2); }

dialog.modal {
  border: 0; border-radius: 14px; padding: 0; width: min(480px, calc(100vw - 32px));
  background: var(--papel); color: var(--tinta); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
  max-height: calc(100dvh - 32px); overflow: auto;
}
dialog.modal::backdrop { background: rgba(20, 28, 28, 0.45); }
.modal-cuerpo { padding: 1.25rem 1.4rem 1.4rem; }
.modal-cuerpo h2 { margin-bottom: 0.3rem; }
.modal-pie { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 1.2rem; }
.dos-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.75rem; }
textarea { font: inherit; width: 100%; padding: 0.6rem 0.75rem; border: 1px solid var(--linea-2); border-radius: 8px; background: var(--papel); color: var(--tinta); min-height: 70px; resize: vertical; }

.nota { border-left: 3px solid var(--acento); padding: 0.35rem 0 0.35rem 0.75rem; margin: 0.6rem 0; }
.nota .meta { font-size: 0.82rem; color: var(--tinta-3); }
.sugerencias { display: flex; gap: 0.35rem; flex-wrap: wrap; margin-top: 0.35rem; }

.tabla td.saldo { font-weight: 600; }
.texto-alerta { color: var(--alerta); font-weight: 600; }
.texto-ok { color: var(--ok); }

@media (max-width: 820px) {
  .dos-col { grid-template-columns: 1fr; }
  .kpi .valor { font-size: 1.3rem; }
}

.etiqueta { white-space: nowrap; }
.nowrap { white-space: nowrap; }

.acciones select { width: auto; }

/* Menú desplegable de la barra */
.barra-nav { align-items: center; }
.barra-nav details.menu { position: relative; }
.barra-nav summary {
  list-style: none; cursor: pointer; padding: 0.4rem 0.7rem; border-radius: 7px; font-weight: 500; color: var(--tinta-2); user-select: none;
}
.barra-nav summary::-webkit-details-marker { display: none; }
.barra-nav summary::after { content: "▾"; margin-left: 0.35rem; font-size: 0.75em; opacity: 0.7; }
.barra-nav summary:hover, .barra-nav details[open] > summary { background: var(--fondo); color: var(--tinta); }
.barra-nav summary.activo { background: var(--acento-suave); color: var(--acento); }
.barra-nav summary:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; }
.menu-panel {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 210px; z-index: 30;
  display: flex; flex-direction: column; gap: 2px; padding: 0.35rem;
  background: var(--papel); border: 1px solid var(--linea); border-radius: 10px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
}
.menu-panel a { display: block; padding: 0.5rem 0.75rem; }

/* Proveedores y precios */
.prov-lista { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
details.prov { background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); }
details.prov > summary { list-style: none; cursor: pointer; padding: 0.8rem 1rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
details.prov > summary::-webkit-details-marker { display: none; }
details.prov > summary:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; border-radius: var(--radio); }
.prov-titulo { min-width: 0; padding-left: 1.1rem; position: relative; }
.prov-titulo::before { content: "▸"; position: absolute; left: 0; top: 0.05rem; color: var(--tinta-3); transition: transform 0.15s; }
details.prov[open] .prov-titulo::before { transform: rotate(90deg); }
.prov-deuda { text-align: right; white-space: nowrap; display: grid; font-variant-numeric: tabular-nums; }
.prov-cuerpo { padding: 0.25rem 1rem 1rem; border-top: 1px solid var(--linea); }
.precios .tabla-envoltura { margin: 0.5rem 0 0.6rem; }
.precios > p { margin: 0.75rem 0 0.6rem; }
.precios { margin-bottom: 0.5rem; }
.precios .fila-accion button + button { margin-left: 0.3rem; }
.prov-pie { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.9rem; padding-top: 0.7rem; border-top: 1px dashed var(--linea); }
@media (max-width: 560px) {
  details.prov > summary { align-items: flex-start; }
  .prov-deuda { font-size: 0.9rem; }
}
.prov-acciones { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }

/* Percepciones */
.percep-eleccion { min-width: 260px; }
.percep-eleccion select { width: 100%; max-width: 360px; }
.percep-eleccion .sutil { margin: 0.3rem 0; }

/* Banco: atajos */
.atajos-banco { margin: 0.5rem 0 1.25rem; }
.atajos-banco h2 { font-size: 1.05rem; margin-bottom: 0.6rem; }
.atajo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.grupos-banco { background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); padding: 0.75rem 1rem; }
.grupos-banco > summary { cursor: pointer; font-weight: 600; }
.grupos-banco ul { list-style: none; margin: 0; padding: 0; }
.grupo-banco { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; flex-wrap: wrap; padding: 0.55rem 0; border-top: 1px solid var(--linea); }
.grupo-banco > div { min-width: 0; overflow-wrap: anywhere; }
label.recordar { display: flex; gap: 0.55rem; align-items: flex-start; font-weight: 400; margin-top: 0.9rem; padding: 0.6rem 0.7rem; background: var(--acento-suave); border-radius: 8px; }
label.recordar input { width: auto; margin-top: 0.2rem; }

/* Diferencias al asignar cobros */
.opciones-dif { display: grid; gap: 0.4rem; margin: 0.4rem 0 0.6rem; padding: 0.6rem 0.7rem; background: var(--acento-suave); border-radius: 8px; }
.opciones-dif label { display: flex; gap: 0.5rem; align-items: flex-start; font-weight: 400; margin: 0; }
.opciones-dif input { margin-top: 0.25rem; }

/* Secciones en construcción */
.pasos-construccion { display: grid; gap: 0.6rem; padding-left: 1.2rem; margin: 0; }
.pasos-construccion li { padding-left: 0.3rem; }
.guia ul { margin: 0.3rem 0 0; padding-left: 1.1rem; color: var(--tinta-2); }

.lista-vinculos { margin: 0.4rem 0 0; padding-left: 1.1rem; display: grid; gap: 0.35rem; }

/* Cobros del banco para confirmar */
.cobros-conf .cobro-conf { border-top: 1px solid var(--linea); padding: 0.7rem 0; }
.cobros-conf .cobro-conf .cab { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.cobros-conf .cobro-conf .cab > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.cobros-conf .sug { margin: 0.35rem 0; line-height: 1.45; }
.cobros-conf .acciones { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.3rem; }
.cobros-conf .otras { margin-top: 0.4rem; padding-left: 0.8rem; border-left: 2px solid var(--linea); }
.cobros-conf .etiqueta-planilla { display: inline-block; font-size: 0.78rem; background: var(--info-suave); color: var(--info); border-radius: 6px; padding: 0.05rem 0.45rem; margin-right: 0.4rem; }

/* Usuarios: elegir pantallas */
.pantallas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0.6rem 1rem; margin: 0.6rem 0; }
.grupo-pantallas { border: 1px solid var(--linea); border-radius: 8px; padding: 0.4rem 0.7rem 0.6rem; margin: 0; }
.grupo-pantallas legend { font-weight: 600; font-size: 0.85rem; padding: 0 0.3rem; }
.check-pantalla { display: flex; gap: 0.45rem; align-items: center; font-weight: 400; margin: 0.25rem 0; }
.check-pantalla input { width: auto; }

/* Profesionales, estudios y paquetes */
.barra-seleccion { position: sticky; top: 0.5rem; z-index: 5; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; background: var(--acento-suave); border: 1px solid var(--linea); border-radius: 10px; padding: 0.5rem 0.8rem; margin: 0.5rem 0; }
.col-check { width: 2rem; }
.form-grilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0.4rem 1rem; }
.lista-check { max-height: 220px; overflow: auto; border: 1px solid var(--linea); border-radius: 8px; padding: 0.3rem 0.6rem; margin: 0.4rem 0; }
.btn-peligro { color: var(--alerta); border-color: var(--alerta); }

/* Alertas para el equipo: arriba, en rojo y bien marcadas */
.alertas-bloque { border: 2px solid var(--alerta); background: var(--alerta-suave); border-radius: var(--radio); padding: 0.8rem 1rem; margin: 0 0 1.1rem; }
.alertas-titulo { color: var(--alerta); font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.95rem; margin-bottom: 0.3rem; }
.alerta-item { padding: 0.55rem 0; border-top: 1px dashed color-mix(in srgb, var(--alerta) 35%, transparent); }
.alerta-item:first-of-type { border-top: 0; padding-top: 0.2rem; }
.alerta-texto { font-weight: 700; font-size: 1.05rem; color: var(--tinta); white-space: pre-wrap; overflow-wrap: anywhere; margin: 0.3rem 0 0.2rem; }
.alerta-meta { font-size: 0.82rem; color: var(--tinta-2); display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.alertas-chico { padding: 0.6rem 0.8rem; }
.alertas-chico .alerta-texto { font-size: 0.95rem; }
.alertas-fila { list-style: none; margin: 0.35rem 0 0; padding: 0; color: var(--alerta); font-weight: 700; font-size: 0.88rem; }
.alertas-fila li { margin-top: 0.15rem; white-space: pre-wrap; }
.tabla tr.fila-alerta td { background: var(--alerta-suave); }
.tabla tr.fila-alerta td:first-child { box-shadow: inset 4px 0 0 var(--alerta); }
dialog.modal-alerta .modal-cuerpo > h2 { color: var(--alerta); }

/* Estadísticas */
.est-chart { display: flex; align-items: flex-end; gap: 6px; height: 230px; overflow-x: auto; padding: 4px 2px 0; }
.est-chart-chico { height: 170px; }
.est-col { flex: 1 0 36px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 36px; }
.est-barra { width: 100%; max-width: 46px; display: flex; flex-direction: column-reverse; border-radius: 4px 4px 0 0; overflow: hidden; min-height: 2px; }
.est-barra i { display: block; min-height: 1px; }
.est-n { font-size: 0.72rem; color: var(--tinta-2); font-variant-numeric: tabular-nums; margin-bottom: 2px; white-space: nowrap; }
.est-mes { font-size: 0.72rem; color: var(--tinta-3); margin-top: 4px; white-space: nowrap; }
.t-preocupacional { background: var(--acento); } .t-periodico { background: #5b7fb5; } .t-egreso { background: #d9a441; } .t-otros { background: #8b8f99; } .t-fact { background: #4c8f86; }
.leyenda i.t-preocupacional, .leyenda i.t-periodico, .leyenda i.t-egreso, .leyenda i.t-otros { display: inline-block; }
.tabla tr.fila-baja td:first-child { box-shadow: inset 4px 0 0 var(--alerta); }
.r-apto { background: #2f8a5b; } .r-apto_preexistencias { background: #4c8f86; } .r-apto_restricciones { background: #5b7fb5; } .r-apto_provisorio { background: #8fb3d9; }
.r-no_apto { background: #c25b36; } .r-aplazado { background: #d9a441; } .r-sin_definir { background: #8b8f99; } .r-en_curso { background: #c9cdd3; }
.barra-aging span[class^="r-"] { display: block; height: 100%; }

/* Factura de proveedor con foto o PDF */
.caja-factura { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; border-color: var(--acento); }
.caja-factura h3 { margin: 0 0 0.2rem; }
.caja-factura p { margin: 0; max-width: 60ch; }
.factura-form { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 1rem; align-items: start; }
.vista-factura img { width: 100%; border: 1px solid var(--linea); border-radius: var(--radio); background: #fff; }
@media (max-width: 640px) { .factura-form { grid-template-columns: 1fr; } .vista-factura img { max-height: 220px; object-fit: contain; } }
.vista-factura { all: unset; cursor: zoom-in; display: block; }
.vista-factura:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; }
.factura-form.vista-grande { grid-template-columns: 1fr; }
.factura-form.vista-grande .vista-factura { cursor: zoom-out; }
dialog.modal.modal-ancho { width: min(900px, calc(100vw - 32px)); max-width: none; }
.factura-form .form-grilla { grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); }
.importes-factura { border: 1px solid var(--linea); border-radius: var(--radio); padding: 0.4rem 0.9rem 0.7rem; margin: 0.6rem 0; }
.importes-factura legend { font-weight: 700; padding: 0 0.3rem; }
.cuadre { display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; align-items: center; margin-top: 0.5rem; font-size: 0.92rem; }
.cuadre-ok { color: var(--ok); font-weight: 600; }
.cuadre-mal { color: var(--alerta); font-weight: 700; }
.cuadre-botones { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.btn.btn-chico { padding: 0.25rem 0.6rem; font-size: 0.85rem; min-height: 0; }
.lista-precios-prev { max-height: 46vh; overflow: auto; border: 1px solid var(--linea); border-radius: 8px; margin: 0.5rem 0; }
label.deshabilitado { opacity: 0.6; pointer-events: none; }
.texto-corto { max-width: 38ch; white-space: pre-wrap; }
.t-consultorio { background: var(--acento); }
.t-domicilio { background: #d9a441; }
.lista-barras { list-style: none; padding: 0; margin: 0.3rem 0 0.8rem; display: grid; gap: 0.3rem; }
.lista-barras li { display: grid; grid-template-columns: minmax(0, 16rem) 1fr auto; gap: 0.6rem; align-items: center; font-size: 0.9rem; }
.barra-mini { height: 0.6rem; background: var(--fondo); border-radius: 4px; overflow: hidden; }
.barra-mini i { display: block; height: 100%; background: var(--acento); }
