/* Área privada: cuenta, panel del abogado y diagnóstico */
.app { padding-top: clamp(24px, 4vw, 44px); display: grid; gap: 24px; }
.app h1 { font-size: clamp(2rem, 4.6vw, 2.8rem); }
.cargando { color: var(--suave); padding: 40px 0; text-align: center; }
.titulo-hoja { font-size: clamp(1.7rem, 4vw, 2.2rem) !important; }

/* Ingreso */
.ingreso { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: clamp(28px, 6vw, 80px); align-items: center; padding: clamp(8px, 4vw, 48px) 0; }
@media (max-width: 820px) { .ingreso { grid-template-columns: minmax(0, 1fr); } }
.puntos { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 10px; }
.puntos li { padding-left: 26px; position: relative; color: var(--suave); }
.puntos li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 11px; height: 6px; border-left: 2px solid var(--oro-tinta); border-bottom: 2px solid var(--oro-tinta); transform: rotate(-45deg); }
.ingreso-hoja { padding: clamp(22px, 4vw, 34px); }
.enviado h2 { font-family: var(--f-titulo); font-size: 1.9rem; }
.sobre { color: var(--oro-tinta); }

/* Panel del cliente */
.saludo { display: grid; gap: 6px; }
.empresas { display: grid; gap: 16px; }
.empresa-cabeza h2 { font-family: var(--f-texto); font-weight: 600; font-size: 1.2rem; letter-spacing: 0; }
.diagnosticos { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea); }
.diagnosticos li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--linea); }
.diag-datos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; min-width: 0; }
.diag-datos .chico { flex-basis: 100%; }
.diagnosticos-archivados > summary { cursor: pointer; padding: 6px 0; width: max-content; }
.diagnosticos-archivados .diagnosticos { opacity: .8; }
.nuevo-diag .campo { flex: 0 1 240px; }
.nueva-empresa summary { cursor: pointer; font-weight: 600; list-style: none; display: flex; align-items: center; gap: 10px; }
.nueva-empresa summary::-webkit-details-marker { display: none; }
.mas { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--linea-fuerte); position: relative; flex: none; }
.mas::before, .mas::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: var(--tinta); transform: translate(-50%, -50%); }
.mas::after { transform: translate(-50%, -50%) rotate(90deg); }
.nueva-empresa[open] .mas::after { display: none; }
.nueva-empresa .ruc { flex: 0 1 190px; }

/* Panel del abogado */
.abogado-panel { padding-top: 12px; border-top: 2px solid var(--noche); }
.indicadores { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--linea); border-radius: var(--r-hoja); background: var(--superficie); overflow: hidden; }
@media (max-width: 760px) { .indicadores { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.indicadores div { padding: 16px 18px; display: grid; gap: 2px; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); margin: 0 -1px -1px 0; }
.indicadores b { font-size: 1.9rem; font-weight: 600; line-height: 1.1; }
.indicadores span { font-size: .85rem; color: var(--suave); }
[role="tabpanel"] { padding-top: 18px; display: grid; gap: 14px; }
.reclamos { display: grid; gap: 16px; }
.reclamo { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 18px; display: grid; gap: 14px; background: var(--superficie); }
.reclamo h3 { font-size: 1.02rem; }
.datos-reclamo { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 20px; }
.datos-reclamo dt { font-size: .8rem; color: var(--suave); }
.datos-reclamo dd { margin: 0; }
.texto-reclamo { display: grid; gap: 4px; background: var(--superficie-2); border-radius: var(--r-control); padding: 14px; }
.conservar { white-space: pre-line; }
.respuesta { border-left: 3px solid var(--verde); padding-left: 14px; display: grid; gap: 4px; }
td.mensaje { min-width: 220px; white-space: normal; }

/* Diagnóstico */
.expediente-cabeza { display: grid; gap: 14px; }
.expediente-cabeza .entre { align-items: flex-start; }
.expediente-cabeza h1 { font-size: clamp(1.7rem, 4vw, 2.4rem); }
.migas { font-size: .9rem; }
.migas a { color: var(--suave); text-decoration: none; }
.migas a:hover { color: var(--tinta); text-decoration: underline; }
.que-sigue { background: var(--noche); color: var(--noche-tinta); border-radius: var(--r-hoja); padding: 18px 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.que-sigue p { color: #c9d1e0; max-width: 64ch; }
.que-sigue b { color: #fff; display: block; font-size: 1.05rem; margin-bottom: 2px; }
.archivos { display: grid; border-top: 1px solid var(--linea); }
.archivo { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--linea); }
.archivo-texto { display: grid; gap: 2px; min-width: 0; padding-left: 30px; position: relative; }
.archivo-texto::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--linea-fuerte); }
.archivo.cargado .archivo-texto::before { background: var(--verde); border-color: var(--verde); }
.archivo.cargado .archivo-texto::after { content: ""; position: absolute; left: 6px; top: 7px; width: 6px; height: 9px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(40deg); }
.archivo-texto b { font-weight: 600; }
.archivo-texto span { font-size: .875rem; color: var(--suave); overflow-wrap: anywhere; }
.archivo.cargado .archivo-texto span { color: var(--verde); }
.archivo .boton { flex: none; cursor: pointer; }
.cifras-diag { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--linea); border-radius: var(--r-control); overflow: hidden; }
@media (max-width: 760px) { .cifras-diag { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cifras-diag div { padding: 14px 16px; display: grid; gap: 2px; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); margin: 0 -1px -1px 0; }
.cifras-diag span { font-size: .82rem; color: var(--suave); }
.cifras-diag b { font-size: 1.25rem; font-weight: 600; }
.cifras-diag .bien b { color: var(--verde); } .cifras-diag .mal b { color: var(--rojo); }
.hallazgos { display: grid; gap: 10px; }
.hallazgo { border: 1px solid var(--linea); border-left: 4px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 16px 18px; display: grid; gap: 10px; background: var(--superficie); }
.hallazgo.Rojo { border-left-color: var(--rojo); } .hallazgo.Ámbar { border-left-color: var(--ambar); } .hallazgo.Verde { border-left-color: var(--verde); }
.hallazgo.descartado { opacity: .62; }
.hallazgo-cabeza { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.hallazgo-cabeza > div { display: grid; gap: 4px; justify-items: start; min-width: 0; }
.hallazgo-cabeza h3 { font-size: 1.02rem; }
.hallazgo .monto { text-align: right; display: grid; justify-items: end; flex: none; }
.hallazgo .monto b { font-size: 1.1rem; }
@media (max-width: 560px) { .hallazgo-cabeza { flex-direction: column; } .hallazgo .monto { justify-items: start; text-align: left; } }
.hallazgo dl { margin: 0; display: grid; gap: 8px; }
.hallazgo dt { font-size: .82rem; color: var(--suave); }
.hallazgo dd { margin: 0; }
.nota-abogado { background: var(--superficie-2); border-left: 3px solid var(--oro); border-radius: 0 var(--r-control) var(--r-control) 0; padding: 10px 14px; }
.revision { border-top: 1px dashed var(--linea-fuerte); padding-top: 12px; display: grid; gap: 10px; }
.opciones-revision { display: flex; gap: 6px; flex-wrap: wrap; border: 0; padding: 0; margin: 0; }
.opciones-revision legend { font-size: .85rem; font-weight: 600; margin-bottom: 6px; padding: 0; }
.opciones-revision label { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--linea-fuerte); border-radius: 999px; padding: 6px 14px; font-size: .9rem; cursor: pointer; }
.opciones-revision input { margin: 0; width: 16px; height: 16px; }
.opciones-revision label:has(input:checked) { border-color: var(--noche); background: var(--noche); color: #fff; }
.opciones-revision label.descartar:has(input:checked) { border-color: var(--rojo); background: var(--rojo); }
.barra-revision { position: sticky; bottom: 0; z-index: 10; background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--r-hoja) var(--r-hoja) 0 0; box-shadow: 0 -10px 30px -18px rgba(7, 13, 26, .45); padding: 14px 18px calc(14px + env(safe-area-inset-bottom, 0px)); display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.barra-revision p { font-size: .9rem; color: var(--suave); }
.barra-revision .fila { align-items: center; }
.barra-revision .origen-archivos { flex-basis: 100%; order: 1; color: var(--suave); }
.barra-revision .origen-archivos summary { cursor: pointer; color: var(--ambar); font-weight: 600; }
.barra-revision .origen-archivos ul { max-height: 30vh; overflow: auto; margin: 6px 0 0; padding-left: 18px; }
.integridad { font-size: .9rem; }

/* En celular: título, explicación y formulario primero; los beneficios después */
@media (max-width: 820px) {
  .ingreso { gap: 18px; }
  .ingreso-texto { display: contents; }
  .ingreso-texto h1 { order: 1; } .ingreso-texto .lectura { order: 2; } .ingreso-hoja { order: 3; } .ingreso-texto .puntos { order: 4; margin-top: 8px; }
}
/* El abogado ve primero su panel */
#v-panel { display: grid; }
#v-panel[hidden] { display: none !important; }
#v-panel > .saludo { order: -3; }
#v-panel > #v-abogado { order: -2; }
.nueva-empresa:not([open]) { gap: 0; }
.archivos .mas-archivos > summary { cursor: pointer; list-style: none; }
.archivos .mas-archivos > summary::-webkit-details-marker { display: none; }
.archivos .mas-archivos > summary .archivo-texto::before { border-style: dashed; }
.archivos .mas-archivos[open] > summary { border-bottom: 1px solid var(--linea); }

/* Pago */
.pago { border: 2px solid var(--oro); }
.pago .precio { font-size: 1.6rem; font-weight: 600; }
.opciones-comprobante { border: 0; padding: 0; margin: 0; display: flex; gap: 12px; flex-wrap: wrap; }
.opciones-comprobante legend { font-weight: 600; margin-bottom: 8px; padding: 0; }
.opciones-comprobante .casilla { flex: 1 1 240px; border: 1px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 12px 14px; }
.opciones-comprobante .casilla:has(input:checked) { border-color: var(--noche); box-shadow: inset 0 0 0 1px var(--noche); }
.acciones-pago { align-items: center; }

/* Medio de pago, desglose y transferencia directa */
.opciones-medio .casilla { align-items: center; }
.opciones-medio .medio-texto { flex: 1; min-width: 0; }
.medio-monto { font-size: 1.05rem; white-space: nowrap; }
.sello-ahorro { display: inline-block; font-size: .72rem; font-weight: 700; color: var(--verde); background: var(--verde-bg); border-radius: 999px; padding: 1px 9px; margin-left: 4px; vertical-align: 1px; white-space: nowrap; }
.sello-recargo { display: inline-block; font-size: .72rem; font-weight: 700; color: var(--oro-tinta); background: color-mix(in srgb, var(--oro) 18%, transparent); border-radius: 999px; padding: 1px 9px; margin-left: 4px; vertical-align: 1px; white-space: nowrap; }
.dj-anual { display: grid; gap: 10px; }
.dj-anual .dj-filas { display: grid; gap: 14px; }
/* Cada ejercicio: el año arriba y sus datos en columnas que se reparten el ancho (dos a cuatro según la pantalla). */
.dj-anual .dj-fila { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13.5rem), 1fr)); gap: 8px 12px; align-items: end; }
.dj-anual .dj-fila > b { grid-column: 1 / -1; }
/* En columnas angostas, la nota «opcional» va debajo del rótulo y no lo parte en dos líneas. */
.dj-anual .dj-fila .campo > span:first-child { display: block; }
.dj-anual .dj-fila .campo .opcional { display: block; font-size: .85em; }
.dj-anual .campo.dj-inicio { max-width: 22rem; }
.prioridad { font-weight: 600; color: var(--oro-tinta); }
.prioridad.vencida { color: var(--rojo); }
.desglose { border: 1px solid var(--linea); border-radius: var(--r-control); background: var(--superficie-2); padding: 12px 16px; display: grid; gap: 10px; }
.desglose dl { margin: 0; display: grid; gap: 6px; }
.desglose dl div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.desglose dt { color: var(--suave); font-size: .92rem; }
.desglose dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.desglose .total { border-top: 1px solid var(--linea-fuerte); padding-top: 8px; font-weight: 600; }
.desglose .total dt { color: var(--tinta); font-size: 1rem; }
.desglose .total dd { font-size: 1.1rem; }
.nota-legal { font-size: .86rem; color: var(--suave); border-left: 3px solid var(--oro); padding: 2px 0 2px 12px; }
.paso-cobro { display: grid; gap: 12px; }
.paso-cobro h3, .form-cobro h3 { display: flex; align-items: center; gap: 10px; }
.paso-n { width: 26px; height: 26px; border-radius: 50%; background: var(--noche); color: var(--oro); display: inline-grid; place-items: center; font-family: var(--f-mono); font-size: .8rem; font-weight: 500; flex: none; }
.datos-cuenta { margin: 0; border: 1px solid var(--linea); border-radius: var(--r-control); overflow: hidden; background: var(--superficie); }
.datos-cuenta > div { display: grid; grid-template-columns: minmax(130px, 36%) minmax(0, 1fr); gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--linea); }
.datos-cuenta > div:last-child { border-bottom: 0; }
.datos-cuenta > div.destacado { background: var(--superficie-2); }
.datos-cuenta dt { font-size: .85rem; color: var(--suave); }
.datos-cuenta dd { margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; min-width: 0; }
.datos-cuenta dd span { font-weight: 600; overflow-wrap: anywhere; }
.datos-cuenta .copiar { min-height: 32px; padding: 4px 8px; flex: none; }
.form-cobro { border-top: 1px dashed var(--linea-fuerte); padding-top: 18px; }
.form-cobro input[type="file"] { font: inherit; font-size: .9rem; padding: 10px; border: 1px dashed var(--linea-fuerte); border-radius: var(--r-control); background: var(--superficie-2); width: 100%; }
@media (max-width: 560px) {
  .datos-cuenta > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .opciones-medio .casilla { flex-wrap: wrap; align-items: flex-start; }
  .opciones-medio .medio-texto { flex: 1 1 calc(100% - 40px); }
  .medio-monto { margin-left: 32px; }
}

/* Panel: pagos por verificar y cuentas de cobro */
.por-verificar { display: grid; gap: 12px; margin-bottom: 18px; }
.verificar { border: 1px solid var(--linea); border-left: 4px solid var(--ambar); border-radius: var(--r-control); padding: 14px 16px; display: grid; gap: 10px; background: var(--superficie); }
.verificar header { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; }
.verificar .datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px 16px; margin: 0; }
.verificar .datos dt { font-size: .78rem; color: var(--suave); }
.verificar .datos dd { margin: 0; font-weight: 600; }
.verificar .acciones { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.verificar .acciones .campo { flex: 1 1 260px; }
.cuentas-cobro { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 8px; }
.cuentas-cobro form { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 16px; display: grid; gap: 12px; align-content: start; }
.cuentas-cobro h4 { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.separador { border: 0; border-top: 1px solid var(--linea); margin: 22px 0 6px; }
.codigo-acceso { font-size: 1.6rem; letter-spacing: .35em; text-align: center; padding-block: 12px; }

/* Paquete de ejercicios */
.ejercicios-paquete { display: grid; gap: 10px; }
.lista-ejercicios { display: grid; gap: 8px; }
.ejercicio-fila { display: flex; align-items: center; gap: 12px; border: 1px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 10px 14px; background: var(--superficie); }
.ejercicio-fila:has(input:checked) { border-color: var(--noche); box-shadow: inset 0 0 0 1px var(--noche); }
.ejercicio-fila.inactiva { background: var(--superficie-2); color: var(--suave); }
.ejercicio-fila input[type="checkbox"] { width: 20px; height: 20px; flex: none; accent-color: var(--noche); }
.ejercicio-fila .ej-texto { flex: 1; min-width: 0; display: grid; gap: 2px; }
.ejercicio-fila .ej-texto b { color: var(--tinta); }
.ejercicio-fila .ej-precio { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.ejercicio-fila .ej-precio s { color: var(--suave); font-weight: 400; margin-right: 6px; }
.ejercicio-fila .boton { flex: none; }
.ahorro-paquete { color: var(--verde); font-weight: 600; }
@media (max-width: 560px) {
  .ejercicio-fila { flex-wrap: wrap; }
  .ejercicio-fila .ej-precio { margin-left: 32px; text-align: left; }
}
.opciones-medio .casilla:has(input:disabled) { opacity: .62; }

/* Planes PRO e Integral Ultra: precio por transferencia o Yape a la izquierda y con tarjeta a la derecha */
.planes { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.planes legend { font-weight: 600; margin-bottom: 10px; padding: 0; }
.plan { position: relative; display: grid; gap: 14px; align-content: start; border: 1px solid var(--linea-fuerte); border-radius: var(--r-hoja); padding: 20px 18px 18px; background: var(--superficie); cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease; }
.plan input[type="radio"] { position: absolute; top: 20px; right: 18px; width: 20px; height: 20px; margin: 0; accent-color: var(--noche); }
.plan:hover { border-color: var(--noche); }
.plan:has(input:checked) { border-color: var(--noche); box-shadow: inset 0 0 0 1px var(--noche), var(--sombra); }
.plan:has(input:focus-visible) { outline: 2px solid var(--foco); outline-offset: 3px; }
.plan-cabeza { display: grid; gap: 3px; padding-right: 32px; }
.plan-nombre { font-family: var(--f-titulo); font-size: 1.5rem; font-weight: 400; line-height: 1.1; color: var(--tinta); }
.plan-lema { font-size: .86rem; color: var(--suave); }
.plan-cinta { justify-self: start; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--noche); background: var(--oro); border-radius: 999px; padding: 2px 10px; margin-bottom: 4px; }
.plan-precios { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--linea); border-radius: var(--r-control); overflow: hidden; }
.plan-precio { display: grid; gap: 2px; padding: 10px 12px; min-width: 0; }
.plan-precio + .plan-precio { border-left: 1px solid var(--linea); text-align: right; }
.plan-precio small { font-size: .74rem; color: var(--suave); }
.plan-precio b { font-size: 1.3rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--tinta); white-space: nowrap; }
.plan-precio + .plan-precio b { font-size: 1.05rem; font-weight: 500; color: var(--suave); }
.plan-lista { display: grid; gap: 7px; font-size: .88rem; color: var(--tinta); }
.plan-lista > span { position: relative; padding-left: 20px; }
.plan-lista > span::before { content: ""; position: absolute; left: 2px; top: .45em; width: 9px; height: 5px; border-left: 2px solid var(--oro-tinta); border-bottom: 2px solid var(--oro-tinta); transform: rotate(-45deg); }
.plan.ultra { background: linear-gradient(160deg, var(--noche) 0%, var(--noche-2) 68%, var(--noche-3) 100%); border-color: var(--oro); }
.plan.ultra .plan-nombre { color: var(--oro-claro); }
.plan.ultra .plan-lema, .plan.ultra .plan-precio small { color: var(--noche-suave); }
.plan.ultra .plan-precios { border-color: var(--noche-linea); }
.plan.ultra .plan-precio + .plan-precio { border-left-color: var(--noche-linea); }
.plan.ultra .plan-precio b { color: var(--oro-claro); }
.plan.ultra .plan-precio + .plan-precio b { color: var(--noche-suave); }
.plan.ultra .plan-lista { color: var(--noche-tinta); }
.plan.ultra .plan-lista > span::before { border-color: var(--oro); }
.plan.ultra input[type="radio"] { accent-color: var(--oro); }
.plan.ultra:hover { border-color: var(--oro-claro); }
.plan.ultra:has(input:checked) { border-color: var(--oro-claro); box-shadow: inset 0 0 0 1px var(--oro), 0 18px 42px -22px rgba(212, 178, 107, .6); }
.plan.a-medida { cursor: default; }
.plan.a-medida .plan-precio b { font-size: 1rem; }
@media (max-width: 560px) { .plan-precio b { font-size: 1.15rem; } }
/* Plan contratado (después del pago) */
.plan-contratado { border: 1px solid var(--oro); }
.plan-incluye { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px 18px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.plan-incluye li { position: relative; padding-left: 22px; font-size: .92rem; }
.plan-incluye li::before { content: ""; position: absolute; left: 3px; top: .42em; width: 10px; height: 5px; border-left: 2px solid var(--verde); border-bottom: 2px solid var(--verde); transform: rotate(-45deg); }
.etiqueta.plan-sello.pro { background: var(--noche); color: var(--oro); border-color: var(--noche); letter-spacing: .04em; }
.etiqueta.plan-sello.ultra { background: var(--oro); color: var(--noche); border-color: var(--oro); letter-spacing: .04em; }
.nota-defensa { font-size: .86rem; color: var(--oro-tinta); font-weight: 600; }
/* Panel: montos de los planes por banda */
#lista-planes .monto-plan { width: 7.5em; padding: 6px 10px; text-align: right; }
#lista-planes th[scope="row"] { white-space: nowrap; text-align: left; }
#lista-planes td, #lista-planes th[scope="row"] { vertical-align: middle; }
.agregar-banda { margin: 12px 0; }
.agregar-banda > summary { cursor: pointer; font-weight: 600; }
.agregar-banda > form, .agregar-banda > div { margin-top: 10px; }
#f-planes-cond { margin-top: 12px; }

/* Centinela de proveedores */
.alertas-centinela { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.alertas-centinela li { font-size: .9rem; padding: 8px 12px; border-radius: var(--r-control); border-left: 3px solid var(--verde); background: var(--verde-bg); display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.alertas-centinela li.grave { border-left-color: var(--rojo); background: var(--rojo-bg); }
.alertas-centinela li span:not(.etiqueta) { color: var(--suave); }
.centinela-empresa { border-top: 1px solid var(--linea); padding-top: 14px; display: grid; gap: 10px; }
/* Beneficios del plan por empresa (migración 055) y cortesías del abogado */
.beneficios-empresa { border-top: 1px solid var(--linea); padding-top: 14px; display: grid; gap: 10px; }
.lista-beneficios { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.lista-beneficios li { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; font-size: .92rem; }
.beneficios-empresa .cortesias summary { cursor: pointer; }
.beneficios-empresa .cortesias[open] { display: grid; gap: 10px; }
.cortesia-nueva { align-items: flex-end; }
.portal-activar { display: grid; gap: 12px; margin-bottom: 18px; }
.centinela-empresa .entre { align-items: center; }

/* Conexión con SUNAT */
.limites-sunat { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 20px; }
.limites-sunat > div { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 14px 16px; display: grid; gap: 8px; align-content: start; }
.limites-sunat ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: .92rem; }
.limites-sunat li { padding-left: 22px; position: relative; }
.limites-sunat .si li::before { content: "✓"; position: absolute; left: 0; color: var(--verde); font-weight: 700; }
.limites-sunat .no li::before { content: "✕"; position: absolute; left: 0; color: var(--rojo); font-weight: 700; }
.guia-sunat { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px 16px; background: var(--superficie-2); }
.guia-sunat summary { cursor: pointer; font-weight: 600; display: flex; align-items: center; gap: 10px; }
.guia-sunat ol { margin: 12px 0 6px; padding-left: 1.3em; display: grid; gap: 6px; font-size: .93rem; }
.paso-titulo { display: flex; align-items: center; gap: 10px; font-size: 1.02rem; }
.datos-sunat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
@media (max-width: 620px) { .datos-sunat { grid-template-columns: minmax(0, 1fr); } }
.texto-autorizacion { border: 1px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 14px 16px; max-height: 280px; overflow-y: auto; font-size: .88rem; line-height: 1.55; background: var(--superficie); display: grid; gap: 8px; }
.opcion-automatico { border: 1px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 12px 14px; }
.opcion-automatico:has(input:checked) { border-color: var(--oro-tinta); box-shadow: inset 0 0 0 1px var(--oro); }
.texto-autorizacion p { margin: 0; }
.generar-clave { border: 1px dashed var(--oro); border-radius: var(--r-control); padding: 14px 16px; display: grid; gap: 10px; font-size: .92rem; }
.sunat-estado .datos-cuenta dd span { font-weight: 500; }

/* Descarga desde SUNAT en el diagnóstico */
.sire-grilla { width: 100%; border-collapse: collapse; font-size: .82rem; }
.sire-grilla th, .sire-grilla td { padding: 6px 4px; text-align: center; border-bottom: 1px solid var(--linea); }
.sire-grilla th:first-child, .sire-grilla td:first-child { text-align: left; padding-left: 10px; white-space: nowrap; }
.sire-celda { display: inline-block; width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid var(--linea-fuerte); vertical-align: middle; }
.sire-celda.pendiente { background: var(--superficie-2); }
.sire-celda.solicitado { border-color: var(--ambar); background: var(--ambar-bg); animation: sire-pulso 1.6s ease-in-out infinite; }
.sire-celda.descargado { border-color: var(--verde); background: var(--verde); }
.sire-celda.sin_datos { border-style: dashed; background: transparent; }
.sire-celda.error { border-color: var(--rojo); background: var(--rojo-bg); }
@keyframes sire-pulso { 50% { opacity: .45; } }
/* Período recién descargado: destello de oro que se apaga (el tamaño lo anima movimiento.js) */
.sire-celda.recien { animation: sire-recien 1.2s ease-out 1; }
@keyframes sire-recien { 0% { box-shadow: 0 0 0 0 rgba(212, 178, 107, .9); } 100% { box-shadow: 0 0 0 9px rgba(212, 178, 107, 0); } }
/* Espera pedida por SUNAT: la tira se vacía hasta que la descarga sigue sola */
.sire-pausa { height: 3px; border-radius: 3px; background: var(--linea); overflow: hidden; margin-top: 10px; }
.sire-pausa span { display: block; height: 100%; background: var(--oro); transform-origin: left center; }
@media (prefers-reduced-motion: reduce) { .sire-celda.solicitado, .sire-celda.recien { animation: none; } }
.sire-leyenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: .8rem; color: var(--suave); }
.sire-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.sire-leyenda .sire-celda { width: 14px; height: 14px; border-radius: 4px; }
.empresa-cabeza { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.empresa-enlaces { align-items: center; gap: 4px 8px; }
.sunat-enlace.conectada { color: var(--verde); }
.sunat-enlace.conectada::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: currentColor; margin-right: 6px; vertical-align: 1px; }
.sire-leyenda { margin-top: 10px; }

/* Constancias de declaración (lector en el diagnóstico) */
.acciones-archivo { align-items: center; justify-content: flex-end; gap: 6px 10px; flex: none; }
.constancias { border-top: 1px dashed var(--linea-fuerte); margin-top: 6px; padding-top: 16px; display: grid; gap: 12px; }
.tabla-constancias { font-size: .85rem; }
.tabla-constancias th { vertical-align: bottom; white-space: normal; min-width: 92px; }
.tabla-constancias th .ayuda { display: block; font-weight: 400; color: var(--suave); font-size: .72rem; font-family: var(--f-mono); }
.tabla-constancias td { vertical-align: top; }
.tabla-constancias td:nth-child(2) { min-width: 170px; }
.tabla-constancias input.num { width: 100%; min-width: 96px; min-height: 36px; padding: 6px 8px; text-align: right; font-variant-numeric: tabular-nums; font-size: .85rem; }
.aviso-celda { display: block; color: var(--ambar); font-size: .76rem; margin-top: 4px; }
.conciliacion-anual { margin: 0; padding-left: 1.1em; display: grid; gap: 8px; font-size: .92rem; }
.conciliacion-anual .dif { color: var(--rojo); }
.conciliacion-anual .ok { color: var(--verde); }
@media (max-width: 620px) { .archivo { flex-wrap: wrap; } .acciones-archivo { justify-content: flex-start; padding-left: 30px; } }
/* Estados de cuenta en PDF (lector en el diagnóstico): una tarjeta por cuenta y período, con su control de saldo */
.estados-cuenta { border-top: 1px dashed var(--linea-fuerte); margin-top: 6px; padding-top: 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.ec-tarjeta { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 14px 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; background: var(--superficie); min-width: 0; }
.ec-cabeza { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; justify-content: space-between; }
.ec-cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); gap: 8px 16px; margin: 0; }
.ec-cifras div { display: grid; gap: 2px; }
.ec-cifras dt { font-size: .78rem; color: var(--suave); }
.ec-cifras dd { margin: 0; font-variant-numeric: tabular-nums; font-weight: 600; }
.ec-control { margin: 0; padding: 8px 12px; border-radius: var(--r-control); font-size: .9rem; border-left: 3px solid currentColor; }
.ec-control.ok { color: var(--verde); background: var(--verde-bg); }
.ec-control.dif { color: var(--rojo); background: var(--rojo-bg); }
.ec-control.atencion { color: var(--ambar); background: var(--ambar-bg); }
.ec-avisos { margin: 0; padding-left: 1.1em; color: var(--ambar); font-size: .86rem; display: grid; gap: 4px; }
.ec-opciones { align-items: end; gap: 10px 20px; }
.ec-moneda { max-width: 13rem; }
.ec-incluir { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: .92rem; cursor: pointer; }
.ec-incluir input { width: 18px; height: 18px; accent-color: var(--oro-tinta); }
.ec-detalle summary { cursor: pointer; font-size: .9rem; color: var(--oro-tinta); min-height: 32px; display: flex; align-items: center; }
.tabla-ec { font-size: .84rem; }
/* El texto para lectores de pantalla de la tabla (posición absoluta) queda dentro del desplazamiento horizontal */
.ec-detalle .tabla { position: relative; }
.tabla-ec td { vertical-align: top; }
.tabla-ec td:nth-child(2) { min-width: 200px; }
.tabla-ec tr.revisar td { background: var(--ambar-bg); }
/* Sin comprobar con el saldo: un borde a la izquierda, sin el fondo de lo que hay que corregir */
.tabla-ec tr.sin-comprobar td:first-child { box-shadow: inset 3px 0 0 var(--ambar); }
.tabla-ec input.num { width: 100%; min-width: 92px; min-height: 36px; padding: 6px 8px; text-align: right; font-variant-numeric: tabular-nums; font-size: .84rem; }
.ec-clave { border: 1px dashed var(--linea-fuerte); border-radius: var(--r-control); padding: 12px 14px; display: grid; gap: 10px; }
.ec-clave input { max-width: 20rem; }
/* Tabla pegada y declaración de partes vinculadas: abiertas, ocupan su propia línea debajo del archivo */
.archivo:has(> .pegar-tabla:not([hidden]), > .declarar-vinculados:not([hidden])) { flex-wrap: wrap; }
.archivo:has(> .pegar-tabla:not([hidden]), > .declarar-vinculados:not([hidden])) > .archivo-texto { flex: 1 1 0; }
.archivo > .pegar-tabla, .archivo > .declarar-vinculados { flex: 1 1 100%; }
.declarar-vinculados { border-top: 1px dashed var(--linea-fuerte); padding-top: 14px; gap: 14px; }
.parte-v, .rl-v { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px 14px; margin: 0; display: grid; gap: 10px; min-width: 0; }
.parte-v legend, .rl-v legend { font-weight: 600; font-size: .9rem; padding: 0 6px; }
/* Escritorio: documento, número y nombre (con el país de un no domiciliado) en una línea; supuesto y fechas en la otra */
.parte-v-campos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; }
.parte-v-campos .campo-nombre, .parte-v-campos .campo-supuesto { grid-column: span 2; }
.parte-v.con-pais .parte-v-campos .campo-nombre { grid-column: span 1; }
.check-v { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; font-weight: 500; cursor: pointer; }
.parte-v select[aria-invalid="true"], .rl-v input[aria-invalid="true"] { border-color: var(--rojo); }
@media (max-width: 900px) { .parte-v-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .parte-v.con-pais .parte-v-campos .campo-nombre, .parte-v-campos .campo-pais { grid-column: span 2; } }
@media (max-width: 620px) { .parte-v-campos { grid-template-columns: 1fr; } .parte-v-campos .campo-nombre, .parte-v-campos .campo-supuesto, .parte-v.con-pais .parte-v-campos .campo-nombre, .parte-v-campos .campo-pais { grid-column: auto; } }
.siguiente-sunat { border-left: 3px solid var(--oro); padding: 6px 0 6px 12px; font-size: .92rem; }
.siguiente-sunat a { font-weight: 600; }
.prueba-sunat { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; font-size: .92rem; }
.prueba-sunat .falta-sire { color: var(--rojo); }

/* Auditoría PRO · índice de riesgo AT y cruces */
.pro-resumen { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 14px; margin: 16px 0 6px; }
@media (max-width: 760px) { .pro-resumen { grid-template-columns: 1fr; } }
.pro-resumen > div { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 14px 16px; background: var(--superficie-2); }
.pro-resumen .h3 { font-size: 1rem; margin: 0 0 6px; }
.pro-resumen ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; font-size: .9rem; }
.indice-at { grid-row: span 2; background: linear-gradient(160deg, var(--noche) 0%, var(--noche-2) 100%) !important; color: var(--noche-tinta); border-color: var(--noche-linea) !important; }
.indice-at p { color: var(--noche-suave); margin: 10px 0 0; }
.indice-at p b { color: var(--noche-tinta); }
.indice-cifra { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.indice-cifra span { width: 100%; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--oro); }
.indice-cifra b { font-family: var(--f-titulo); font-size: 3rem; font-weight: 400; line-height: 1; }
.indice-cifra i { font-style: normal; color: var(--noche-suave); }
.indice-barra { position: relative; height: 8px; margin-top: 12px; border-radius: 99px; background: linear-gradient(90deg, #2f8f5b 0%, #c9a227 50%, #c2410c 75%, #b42318 100%); opacity: .95; }
.indice-barra span { position: absolute; top: -5px; left: calc(var(--pc, 0) * 1%); width: 3px; height: 18px; margin-left: -1px; background: #fff; border-radius: 2px; box-shadow: 0 0 0 2px rgba(7, 13, 26, .55); }
.indice-barra span.tras { background: var(--oro); height: 12px; top: -2px; }
.banda-crítico .indice-cifra b, .banda-alto .indice-cifra b { color: #ffb4a8; }
.banda-moderado .indice-cifra b { color: var(--oro-claro); }
.banda-bajo .indice-cifra b { color: #9be3bf; }
.pro-archivos > summary b::after { content: " PRO"; font-size: .7rem; letter-spacing: .08em; color: var(--oro-tinta); vertical-align: super; }

/* Bóveda de fehaciencia */
.boveda-lista { display: grid; gap: 8px; }
.boveda-prov { display: flex; justify-content: space-between; align-items: center; gap: 14px; width: 100%; text-align: left; font: inherit; color: inherit; background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px 14px; cursor: pointer; flex-wrap: wrap; }
.boveda-prov.sugerido { cursor: default; background: var(--superficie-2); }
.boveda-prov > span:first-child { display: grid; gap: 2px; min-width: 0; }
.boveda-prov.activo, .boveda-prov:hover:not(.sugerido) { border-color: var(--oro); }
.boveda-prov .avance { display: flex; align-items: center; gap: 8px; }
.barra-avance { width: 120px; height: 6px; border-radius: 99px; background: var(--linea); overflow: hidden; display: block; }
.barra-avance i { display: block; width: calc(var(--pc, 0) * 1%); height: 100%; background: linear-gradient(90deg, var(--oro-tinta), var(--oro)); border-radius: 99px; }
.boveda-items { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 8px; counter-reset: item; }
.boveda-item { counter-increment: item; display: flex; justify-content: space-between; gap: 14px; border: 1px solid var(--linea); border-left: 3px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 12px 14px; flex-wrap: wrap; }
.boveda-item > div:first-child { flex: 1 1 320px; min-width: 0; }
.boveda-item > div:first-child > b::before { content: counter(item) ". "; color: var(--oro-tinta); font-family: var(--f-mono); font-size: .85em; }
.boveda-item.listo { border-left-color: var(--verde); }
.boveda-item p { margin: 2px 0 0; }
.evidencias { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 2px; font-size: .9rem; }
.evidencias li.reemplazado { opacity: .6; text-decoration: line-through; }
.evidencias li.no_aplica span { color: var(--suave); }

/* Blindaje probatorio (bóveda): operaciones observadas, documentos por conseguir y requerimiento simulado */
#p-blindaje h3 { font-size: 1rem; margin: 18px 0 8px; }
.bl-acciones { margin: 12px 0 4px; gap: 8px; }
.bl-prov { border: 1px solid var(--linea); border-radius: var(--r-control); margin: 0 0 8px; background: var(--superficie); }
.bl-prov > summary { display: flex; justify-content: space-between; align-items: center; gap: 6px 14px; flex-wrap: wrap; padding: 12px 14px; cursor: pointer; list-style: none; }
.bl-prov > summary::-webkit-details-marker { display: none; }
.bl-prov > summary::before { content: "▸" / ""; color: var(--oro-tinta); margin-right: -6px; }
.bl-prov[open] > summary::before { content: "▾" / ""; }
.bl-prov > summary > .pila { flex: 1 1 260px; min-width: 0; }
.bl-prov[open] > summary { border-bottom: 1px solid var(--linea); }
.bl-prov-cifras { color: var(--suave); }
.bl-prov-cuerpo { display: grid; gap: 8px; padding: 12px 14px; }
.bl-prov-cuerpo p { margin: 0; }
.bl-prov tr.completa td { color: var(--suave); }
.en-linea select { width: auto; display: inline-block; min-height: 0; }
.ok-texto { color: var(--verde); font-weight: 600; }
.acciones-archivo { justify-items: end; min-width: 0; max-width: 100%; }
.acciones-archivo [data-ayuda] { white-space: normal; text-align: right; max-width: 34ch; }
@media (max-width: 560px) { .boveda-item > .acciones-archivo { flex: 1 1 100%; justify-items: start; } .acciones-archivo [data-ayuda] { text-align: left; } }
details.cubre { font-size: .85rem; }
details.cubre summary { cursor: pointer; color: var(--oro-tinta); font-weight: 600; }
details.cubre fieldset { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 8px 10px; margin: 6px 0 0; display: grid; gap: 4px; max-height: 260px; overflow-y: auto; text-align: left; }
details.cubre .check-v { font-weight: 400; font-size: .85rem; align-items: center; }
.cubre-editor { display: grid; gap: 6px; margin: 6px 0 4px; justify-items: start; }
.requerimiento-simulado h3 { font-size: 1rem; margin: 16px 0 6px; }
.requerimiento-simulado ul, .rq-puntos { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 6px; }
.requerimiento-simulado td.mono, #bl-operaciones td.mono { white-space: nowrap; }
.requerimiento-simulado td.motivo { min-width: 16ch; overflow-wrap: normal; word-break: normal; hyphens: auto; }
#bl-cifras .cifra { white-space: nowrap; }
/* Con la quinta cifra (lo que la prueba no revierte): cinco columnas en escritorio y, en el celular, a todo el ancho. */
@media (min-width: 761px) { #bl-cifras:has(> div:nth-child(5)) { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 760px) { #bl-cifras > div:nth-child(5):last-child { grid-column: 1 / -1; } }
#bl-alcance { display: grid; gap: 6px; margin: 10px 0 0; }
#bl-alcance p { margin: 0; }
.bl-notas { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.sel-ops { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px 14px; margin: 0 0 14px; display: grid; gap: 8px; background: var(--superficie-2); }
.sel-ops h3 { font-size: .98rem; margin: 0; }
.sel-ops p { margin: 0; }
.sel-acciones { gap: 6px 12px; align-items: center; flex-wrap: wrap; }
.sel-lista { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 8px 10px; margin: 0; display: grid; gap: 4px; max-height: 280px; overflow-y: auto; background: var(--superficie); }
.sel-lista .check-v { font-weight: 400; font-size: .85rem; align-items: center; }
.sel-lista .check-v.no-revierte { color: var(--suave); }
label.boton.deshabilitado { opacity: .45; cursor: not-allowed; pointer-events: none; }
.boveda-item.evaluar { border-left-color: var(--oro); }
.rq-pie { display: none; }
@media print {
  body.imprimir-req main > *:not(#p-requerimiento), body.imprimir-req .barra, body.imprimir-req .pie { display: none !important; }
  body.imprimir-req #p-requerimiento { display: block !important; border: 0; box-shadow: none; padding: 0; }
  body.imprimir-req #p-requerimiento .tabla { overflow: visible; }
  body.imprimir-req #p-requerimiento tr { break-inside: avoid; }
  body.imprimir-req #p-requerimiento .rq-pie { display: block; position: fixed; bottom: 0; left: 0; right: 0; margin: 0; text-align: center; font-size: 9pt; color: #555; }
  body.imprimir-req #p-requerimiento { padding-bottom: 14mm; }
}
.en-linea select { font: inherit; padding: 2px 6px; }
.pro-acciones { grid-column: 1 / -1; background: none !important; border: 0 !important; padding: 0 !important; }

/* Del hallazgo a la defensa */
details.solicitar { margin-top: 10px; border-top: 1px dashed var(--linea); padding-top: 8px; }
details.solicitar summary { cursor: pointer; font-weight: 600; color: var(--oro-tinta); font-size: .9rem; }
details.solicitar form { margin-top: 8px; }
.solicitud-hecha { margin-top: 10px; color: var(--verde); }

/* Contadores aliados */
.aliado-vincular { border: 1px solid var(--oro) !important; }
.programa-aliados #al-enlace { flex: 1 1 280px; min-width: 0; }

/* Inicio del SIRE (dato del ejercicio para REG-01 y CF-07) */
.dato-ejercicio { display: grid; gap: 8px; padding: 14px 0 4px; }
.dato-ejercicio select, .dato-ejercicio input[type="month"] { max-width: 100%; }
.dato-ejercicio .archivo-texto::before { border-color: var(--oro); }

/* Pregúntale a tu auditoría */
.etiqueta.pro { background: var(--noche); color: var(--oro); border-color: var(--noche); letter-spacing: .04em; }
.preg-teaser { border: 1px dashed var(--oro); border-radius: var(--r-control); padding: 14px 16px; background: var(--superficie-2); }
.preg-teaser p { margin: 0 0 6px; }
.preg-consentimiento ul { margin: 0; padding-left: 18px; display: grid; gap: 4px; color: var(--suave); }
.preg-sugerencias { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; font: inherit; font-size: .82rem; line-height: 1.3; color: var(--tinta); background: var(--superficie); border: 1px solid var(--linea-fuerte); border-radius: 999px; padding: 6px 12px; cursor: pointer; text-decoration: none; text-align: left; }
.chip:hover, .chip:focus-visible { border-color: var(--oro); }
span.chip { cursor: default; }
.preg-respuestas { display: grid; gap: 12px; margin-top: 16px; }
.preg-item { border: 1px solid var(--linea); border-left: 3px solid var(--oro); border-radius: var(--r-control); padding: 14px 16px; background: var(--superficie); display: grid; gap: 8px; }
.preg-q { margin: 0; font-weight: 600; color: var(--tinta); }
.preg-q::before { content: "Tu pregunta · "; font-weight: 400; color: var(--suave); font-size: .85rem; }
.preg-a p { margin: 0 0 8px; line-height: 1.6; }
.preg-a a { font-family: var(--f-mono); font-size: .88em; }
.preg-fuentes { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.preg-alertas { margin: 0; padding: 8px 12px 8px 28px; background: var(--ambar-bg); color: var(--ambar); border-radius: var(--r-control); font-size: .88rem; display: grid; gap: 4px; }
.hallazgo:target { outline: 2px solid var(--oro); outline-offset: 2px; }

/* Autorizaciones (Ley 29733): consentimientos separados y su gestión en Mi cuenta */
fieldset.autorizaciones { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px 16px 14px; margin: 0; }
fieldset.autorizaciones legend { font-weight: 600; font-size: .92rem; padding: 0 6px; }
.autorizaciones-lista { display: grid; gap: 8px; }
.autorizacion { display: flex; justify-content: space-between; align-items: center; gap: 14px; border: 1px solid var(--linea); border-radius: var(--r-control); padding: 10px 14px; background: var(--superficie); flex-wrap: wrap; }
.autorizacion > div { display: grid; gap: 2px; flex: 1 1 260px; min-width: 0; }

/* Contador y accesos (Mis empresas y portal del contador) */
.h3 { font-family: var(--f-texto); font-size: 1.125rem; font-weight: 600; letter-spacing: 0; line-height: 1.35; }
.h4 { font-family: var(--f-texto); font-size: .98rem; font-weight: 600; letter-spacing: 0; }
.invitacion-recibida { border: 1px solid var(--oro); }
.invitacion-recibida:focus { outline: none; }
.elegir-empresas { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 12px 16px 14px; margin: 0; display: grid; gap: 10px; }
.elegir-empresas legend { font-weight: 600; font-size: .92rem; padding: 0 6px; }
.solicitudes-acceso { border-left: 3px solid var(--oro); }
.solicitud-acceso { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 14px 16px; display: grid; gap: 10px; background: var(--superficie); }
.solicitud-acceso .campo.corto, .accesos-empresa .campo.corto, .portal-accesos .campo.corto { flex: 0 1 200px; }
.accesos-empresa { border-top: 1px solid var(--linea); padding-top: 12px; }
.accesos-empresa > summary { cursor: pointer; font-weight: 600; font-size: .92rem; color: var(--oro-tinta); }
.accesos-empresa[open] > summary { margin-bottom: 12px; }
.accesos-cuerpo { gap: 14px; }
.accesos-cuerpo .tabla td { vertical-align: middle; }
.accesos-cuerpo select.en-linea { width: auto; min-height: 36px; padding: 6px 34px 6px 10px; font-size: .9rem; }
.invitaciones-pendientes { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .9rem; }
.invitaciones-pendientes li { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1px dashed var(--linea-fuerte); border-radius: var(--r-control); padding: 6px 6px 6px 12px; }
.f-invitar { border-top: 1px dashed var(--linea-fuerte); padding-top: 14px; }
.enlace-creado { border: 1px solid var(--oro); background: var(--superficie-2); border-radius: var(--r-control); padding: 12px 14px; display: grid; gap: 10px; }
.enlace-creado .fila { align-items: center; }
.enlace-creado .enlace-valor { flex: 1 1 320px; min-width: 0; font-size: .85rem; }

/* Tablas que en el celular se apilan en tarjetas (cada celda muestra el nombre de su columna) */
@media (max-width: 640px) {
  .tabla.apilada { border: 0; overflow: visible; }
  .tabla.apilada table, .tabla.apilada tbody, .tabla.apilada tr, .tabla.apilada td { display: block; width: auto; }
  .tabla.apilada thead { display: none; }
  .tabla.apilada tr { border: 1px solid var(--linea); border-radius: var(--r-control); padding: 10px 12px; margin-bottom: 10px; background: var(--superficie); }
  .tabla.apilada td { border: 0; padding: 3px 0; text-align: left; white-space: normal; }
  .tabla.apilada td[data-etq]:not([data-etq=""])::before { content: attr(data-etq); display: block; font-size: .72rem; color: var(--suave); font-weight: 600; }
  .tabla.apilada td:empty { display: none; }
}
.miembros-lista { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--linea); }
.miembros-lista li { display: flex; justify-content: space-between; align-items: center; gap: 8px 16px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--linea); }
.miembro-datos { display: grid; gap: 1px; min-width: 0; flex: 1 1 240px; }
.miembro-acciones { display: flex; align-items: center; gap: 6px 12px; flex-wrap: wrap; }
.portal-enlace { align-items: center; }

/* Validez de cada comprobante en SUNAT (cierre mensual y diagnóstico) */
.validez-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.validez-chips li { border: 1px solid var(--linea); border-radius: 999px; padding: 4px 12px; font-size: .86rem; background: var(--superficie); }
.validez-chips li b { font-variant-numeric: tabular-nums; }
.validez-chips li.ok b { color: var(--verde); }
.validez-chips li.rojo:not(.cero) { border-color: transparent; background: var(--rojo-bg); color: var(--rojo); }
.validez-chips li.ambar:not(.cero) { border-color: transparent; background: var(--ambar-bg); color: var(--ambar); }
.validez-chips li.cero { color: var(--suave); }
.validez-observados summary { cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--oro-tinta); }
.validez-observados .tabla { margin-top: 8px; }
.validez-progreso { display: grid; gap: 6px; }
.validez-barra { height: 8px; border-radius: 99px; background: var(--linea); overflow: hidden; }
.validez-barra span { display: block; width: calc(var(--pc, 0) * 1%); height: 100%; background: linear-gradient(90deg, var(--oro-tinta), var(--oro)); border-radius: 99px; transition: width .4s ease; }
