/* Lector de expediente SUNAT */
.expediente { padding-top: clamp(28px, 5vw, 52px); padding-bottom: 48px; }
.expediente .cifras { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 980px) { .expediente .cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); } .expediente .cifra-bloque:nth-child(2) { border-right: 0; } .expediente .cifra-bloque:nth-child(-n+2) { border-bottom: 1px solid var(--linea); } }
@media (max-width: 560px) { .expediente .cifras { grid-template-columns: minmax(0, 1fr); } .expediente .cifra-bloque { border-right: 0; border-bottom: 1px solid var(--linea); } .expediente .cifra-bloque:last-child { border-bottom: 0; } }
.expediente .cifra-bloque b { font-size: clamp(1.25rem, 2.6vw, 1.6rem); overflow-wrap: anywhere; }
.expediente .cifra-bloque small { overflow-wrap: anywhere; }

/* Zona de carga */
.zona { position: relative; display: grid; gap: 6px; justify-items: center; text-align: center; padding: clamp(22px, 4vw, 36px) 18px; border: 1.5px dashed var(--linea-fuerte); border-radius: var(--r-hoja); background: var(--superficie-2); cursor: pointer; transition: border-color .15s, background-color .15s; }
.zona:hover, .zona.encima { border-color: var(--oro); background: color-mix(in srgb, var(--oro) 8%, var(--superficie-2)); }
.zona:focus-within { outline: 2px solid var(--foco); outline-offset: 2px; }
.zona input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.zona b { font-size: 1.05rem; }
.zona span { font-size: .875rem; max-width: 62ch; }
.archivos { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--linea); max-height: 320px; overflow-y: auto; }
.archivos li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 2px; border-bottom: 1px solid var(--linea); font-size: .86rem; min-width: 0; }
.archivos .nombre-archivo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--suave); min-width: 0; font-family: var(--f-mono); font-size: .8rem; }
.archivos .tipo-archivo { flex: none; font-weight: 600; text-align: right; max-width: 60%; }
.archivos li.ok .tipo-archivo { color: var(--verde); }
.archivos li.no .tipo-archivo, .archivos li.imagen .tipo-archivo { color: var(--ambar); }
.archivos li.error .tipo-archivo { color: var(--rojo); }
.archivos li.leyendo .tipo-archivo { color: var(--suave); font-weight: 400; }
@media (max-width: 560px) { .archivos li { flex-direction: column; gap: 2px; } .archivos .tipo-archivo { text-align: left; max-width: none; } }
#estado-carga:empty { display: none; }
#estado-carga.n-ok { color: var(--verde); }
#estado-carga.n-aviso, #estado-carga.n-error { color: var(--rojo); }

/* Informe */
.informe h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); overflow-wrap: anywhere; }
.informe h2 .mono { font-size: .55em; letter-spacing: 0; }
.etiqueta.etapa { background: var(--noche); color: var(--oro); border-color: transparent; }
.acciones-informe { align-items: center; }
.plazos { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--linea); }
.vence-item { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--linea); }
.vence-fecha { display: grid; gap: 2px; }
.vence-fecha b { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.vence-fecha span { font-size: .8rem; color: var(--suave); }
.vence-item.urgente .vence-fecha b { color: var(--rojo); }
.vence-item.vencido .vence-fecha b { color: var(--suave); text-decoration: line-through; }
.vence-texto { display: grid; gap: 3px; min-width: 0; }
@media (max-width: 640px) { .vence-item { grid-template-columns: minmax(0, 1fr) auto; } .vence-texto { grid-column: 1 / -1; grid-row: 2; } }
.vencidos summary { cursor: pointer; font-weight: 600; padding: 8px 0; }

.alertas-exp { display: grid; gap: 12px; }
.alerta-exp { border: 1px solid var(--linea); border-left: 4px solid var(--linea-fuerte); border-radius: var(--r-control); padding: 14px 16px; display: grid; gap: 8px; background: var(--superficie); min-width: 0; }
.alerta-exp p { margin: 0; line-height: 1.55; overflow-wrap: anywhere; }
.alerta-cab { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.alerta-cab h3 { font-family: var(--f-texto); font-size: 1.02rem; font-weight: 600; margin: 0; flex: 1 1 280px; }
.alerta-exp .nivel { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-radius: 999px; padding: 2px 9px; flex: none; }
.alerta-exp.critico { border-left-color: var(--rojo); } .alerta-exp.critico .nivel { background: var(--rojo-bg); color: var(--rojo); }
.alerta-exp.alto { border-left-color: var(--ambar); } .alerta-exp.alto .nivel { background: var(--ambar-bg); color: var(--ambar); }
.alerta-exp.medio { border-left-color: var(--oro); } .alerta-exp.medio .nivel { background: color-mix(in srgb, var(--oro) 18%, transparent); color: var(--oro-tinta); }
.alerta-exp.info .nivel { background: var(--superficie-2); color: var(--suave); }

.ruta { margin: 0; padding-left: 1.3em; display: grid; gap: 8px; }
.ruta li { line-height: 1.55; padding-left: 4px; }

.ficha-fisc { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px 20px; margin: 0; }
.ficha-fisc dt { font-size: .8rem; color: var(--suave); font-weight: 500; }
.ficha-fisc dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }

.cronologia { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--linea); }
.cronologia li { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--linea); }
.cr-fecha { display: grid; gap: 4px; align-content: start; }
.cr-fecha input { padding: 6px 8px; min-height: 36px; font-size: .9rem; }
.cr-texto { display: grid; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.fuente { font-size: .72rem; font-weight: 600; color: var(--suave); }
.fuente.supuesta, .fuente.falta { color: var(--ambar); }
.fuente.usuario { color: var(--verde); }
@media (max-width: 560px) { .cronologia li { grid-template-columns: minmax(0, 1fr); gap: 6px; } .cr-fecha { grid-template-columns: auto 1fr; align-items: center; } }
.h3 { font-family: var(--f-texto); font-size: 1rem; font-weight: 600; }

@media print {
  .barra, .pie, .carga, .acciones-informe, .invitacion, .zona, .mis-expedientes, .guardar-exp, .guardado-exp, .guardar-invitacion, .plazo-control, #aviso-exp { display: none !important; }
  body { background: #fff; }
  .hoja { box-shadow: none; break-inside: avoid-page; }
  .alerta-exp, .vence-item, .cronologia li { break-inside: avoid; }
  .cr-fecha input { border: 0; padding: 0; min-height: 0; }
}
.expediente td.mono { white-space: nowrap; }

/* ¿Pagar con rebaja o reclamar? */
.pg-resumen { margin: 0 0 14px; line-height: 1.6; max-width: 78ch; }
.pago-tabla td { vertical-align: top; }
.pago-tabla td b { font-variant-numeric: tabular-nums; }
.pago-tabla { table-layout: fixed; }
.pago-tabla th { white-space: normal; vertical-align: bottom; }
.pago-tabla th:nth-child(1) { width: 15%; } .pago-tabla th:nth-child(2) { width: 19%; }
.pago-tabla td small { display: block; color: var(--suave); font-size: .78rem; line-height: 1.4; margin-top: 2px; white-space: normal; }
.pago-tabla td small.ahorro { color: var(--verde); font-weight: 600; }
.pago-tabla .pg-valores span { display: block; font-size: .8rem; overflow-wrap: anywhere; }
.pago-tabla .etiqueta { display: flex; width: fit-content; margin-top: 4px; }
.pago-tabla .no-aplica { color: var(--suave); font-size: .85rem; }
.pago-tabla tfoot td { font-weight: 700; border-top: 2px solid var(--linea-fuerte); }
.notas-pago { margin: 14px 0 0; padding-left: 1.2em; display: grid; gap: 6px; line-height: 1.5; }
@media (max-width: 720px) {
  .pago-tabla thead { display: none; }
  .pago-tabla, .pago-tabla tbody, .pago-tabla tfoot, .pago-tabla tr, .pago-tabla td { display: block; width: 100%; }
  .pago-tabla tr { padding: 10px 12px; border-bottom: 1px solid var(--linea); }
  .pago-tabla td { border: 0; padding: 4px 0; text-align: left; }
  .pago-tabla td.num { text-align: left; }
  .pago-tabla td[data-et]:not([data-et=""])::before { content: attr(data-et); display: block; font-size: .74rem; color: var(--suave); font-weight: 600; }
    .pago-tabla tfoot td { border-top: 0; }
}

/* Solicitar la defensa con el plazo más próximo (con sesión) */
.solicitar-defensa { align-items: flex-end; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.solicitar-defensa .campo { min-width: 240px; flex: 1 1 260px; }
.solicitar-defensa select { width: 100%; }

/* Expedientes guardados en la cuenta (migración 050) */
.guardar-exp, .guardado-exp { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--linea); display: grid; gap: 8px; }
.guardar-exp .fila { align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.guardar-exp .campo { flex: 1 1 240px; min-width: 0; }
.guardar-exp select, .guardar-exp input { width: 100%; }
.guardar-exp p, .guardado-exp p { margin: 0; max-width: 78ch; line-height: 1.5; }
.guardado-exp .fila { gap: 10px; flex-wrap: wrap; align-items: center; }
.guardar-invitacion { margin: 14px 0 0; max-width: 78ch; }
.plazo-control { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; margin-top: 6px; }
.plazo-control .casilla { display: inline-flex; gap: 6px; align-items: center; min-height: 32px; }
.vence-item.atendido .vence-fecha b { color: var(--suave); }
.vence-item.atendido .vence-texto > b { color: var(--suave); }
.mis-exp { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--linea); }
.mis-exp li { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 4px 14px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--linea); }
.mis-exp li a { font-weight: 600; overflow-wrap: anywhere; }
.mis-exp li.actual a { color: var(--oro-tinta); }
.mis-exp li span { min-width: 0; overflow-wrap: anywhere; }
.mis-expedientes .archivados summary { cursor: pointer; padding: 8px 0; font-weight: 600; }
@media (max-width: 720px) { .mis-exp li { grid-template-columns: minmax(0, 1fr); } }

/* Decisor de deuda: pagar, fraccionar o impugnar (js/decisor-deuda.js) */
.decisor > p { max-width: 78ch; line-height: 1.55; }
.dd-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 12px 0 16px; }
.dd-preguntas { border: 1px solid var(--linea); border-radius: 10px; padding: 0 14px; min-width: 0; }
.dd-preguntas > summary { cursor: pointer; padding: 12px 0; font-weight: 600; }
.dd-preguntas[open] > summary { border-bottom: 1px solid var(--linea); margin-bottom: 12px; }
.dd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 12px 18px; padding-bottom: 14px; }
.dd-grid .campo { min-width: 0; }
.dd-grid .campo span { line-height: 1.4; }
.dd-grid select, .dd-grid input { width: 100%; min-width: 0; }
.dd-grid .dd-fijo { font-weight: 400; color: var(--suave); padding: 6px 0; overflow-wrap: anywhere; }
.dd-grid small.dd-alerta { grid-column: 1 / -1; display: block; color: var(--oro-tinta); font-weight: 600; line-height: 1.4; }
.dd-valores { display: grid; gap: 12px; padding-bottom: 14px; }
.dd-valor { border: 1px solid var(--linea); border-radius: 8px; padding: 10px 12px 0; margin: 0; min-width: 0; }
.dd-valor legend { padding: 0 6px; font-weight: 600; overflow-wrap: anywhere; }
.dd-tabla, .dd-fracc { table-layout: auto; }
.dd-tabla td, .dd-fracc td { vertical-align: top; }
.dd-tabla td small, .dd-fracc td small { display: block; color: var(--suave); font-size: .78rem; line-height: 1.4; margin-top: 3px; white-space: normal; }
.dd-tabla td small.ahorro { color: var(--verde); font-weight: 600; }
.dd-tabla td small.dd-alerta { color: var(--oro-tinta); font-weight: 600; }
.dd-tabla td b, .dd-fracc td b { font-variant-numeric: tabular-nums; }
.dd-tabla .etiqueta { display: inline-flex; width: fit-content; }
.dd-tabla td:first-child .mono { white-space: nowrap; }
.dd-tabla tr.dd-principal td { border-bottom: 0; }
.dd-tabla tr.dd-detalle-fila td { padding-top: 0; }
.dd-detalle { margin: 0 0 6px; }
.dd-detalle-cuerpo { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 4px 24px; }
.dd-detalle > summary { cursor: pointer; font-size: .8rem; font-weight: 600; color: var(--oro-tinta); }
.dd-detalle p { margin: 8px 0 2px; }
.dd-detalle ul { margin: 0; padding-left: 1.1em; display: grid; gap: 3px; line-height: 1.45; max-width: 70ch; }
.decisor .h3 { margin: 22px 0 8px; }
.decisor .h4 { margin: 16px 0 6px; font-size: 1rem; }
.dd-requisitos { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 6px; line-height: 1.5; }
@media (max-width: 720px) {
  .dd-tabla thead, .dd-fracc thead { display: none; }
  .dd-tabla, .dd-tabla tbody, .dd-tabla tr, .dd-tabla td, .dd-fracc, .dd-fracc tbody, .dd-fracc tr, .dd-fracc td { display: block; width: 100%; }
  .dd-tabla tr, .dd-fracc tr { padding: 10px 12px; border-bottom: 1px solid var(--linea); }
  .dd-tabla td, .dd-fracc td { border: 0; padding: 4px 0; text-align: left; }
  .dd-tabla td.num, .dd-fracc td.num { text-align: left; }
  .dd-tabla td[data-et]::before, .dd-fracc td[data-et]::before { content: attr(data-et); display: block; font-size: .74rem; color: var(--suave); font-weight: 600; }
}
@media print { .dd-form { display: none; } }
