:root{--navy:#0b1c2b;--menta:#76d2bc;--fondo:#f5f8f6;--borde:#dbe6e1;--gris:#4d6358;--verde:#1d7a5f;--rojo:#b3261e;--ambar:#9a6700}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--navy);font:15px/1.5 "DM Sans","Segoe UI",system-ui,sans-serif}
.cab{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--navy);color:#e9f6f1;padding:10px 22px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:#e9f6f1}.marca b{display:block;line-height:1.1}.marca i{font-style:normal;color:var(--menta)}.marca small{display:block;font-size:11px;color:var(--menta)}
.cab-der{display:flex;align-items:center;gap:12px;font-size:14px}
main{max-width:1180px;margin:0 auto;padding:22px 18px 60px}
h1{font-size:28px;margin:0 0 4px}h2{font-size:18px;margin:0 0 6px}
.sub{color:var(--gris);margin:0 0 14px}
.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:18px;padding:20px;margin:0 0 16px}
.angosta{max-width:460px;margin:40px auto}
label{display:grid;gap:4px;font-size:13px;color:var(--gris);margin-bottom:12px}
label.check{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--navy)}
input,select{padding:9px 11px;border:1px solid #b8cbc3;border-radius:10px;font:inherit}
input[type=checkbox]{width:18px;height:18px}
button{border:0;border-radius:999px;padding:9px 18px;cursor:pointer;font:inherit;font-weight:700}
button.prim{background:var(--menta);color:var(--navy)}button.sec{background:#e3ede9;color:var(--navy)}button.peligro{background:#fbe9e7;color:var(--rojo)}
.cab button.sec{background:rgba(255,255,255,.14);color:#e9f6f1}
.aviso{color:var(--gris);min-height:1.4em}.aviso.error{color:var(--rojo)}.aviso.ok{color:var(--verde)}
.titulo-fila{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-end}
.acciones{display:flex;gap:8px;flex-wrap:wrap}
.resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:14px 0}
.dato{background:#fff;border:1px solid var(--borde);border-radius:16px;padding:14px 16px}.dato b{display:block;font-size:26px}.dato span{color:var(--gris);font-size:13px}
.dato.alerta b{color:var(--rojo)}.dato.bien b{color:var(--verde)}
.leyenda{font-size:13px;color:var(--gris);display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center}
.chip{display:inline-block;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:700;white-space:nowrap}
.chip.ok{background:#dff3ea;color:var(--verde)}.chip.vacio{background:#e7eef5;color:#35506b}.chip.parcial{background:#fff3d6;color:var(--ambar)}
.chip.falta{background:#fde7e5;color:var(--rojo);cursor:pointer}.chip.na{background:#eee;color:#777;text-decoration:line-through;cursor:pointer}.chip.sin{background:transparent;color:#aab}
.cliente{background:#fff;border:1px solid var(--borde);border-radius:18px;margin:0 0 14px;overflow:hidden}
.cliente>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 18px}
.cliente>summary::-webkit-details-marker{display:none}
.cli-nombre{font-weight:700;font-size:17px}.cli-ruc{color:var(--gris);font-size:13px}
.estado-cli{font-weight:700}.estado-cli.bien{color:var(--verde)}.estado-cli.mal{color:var(--rojo)}
.cli-cuerpo{padding:0 18px 16px;overflow-x:auto}
.alias{display:flex;gap:8px;align-items:center;margin-bottom:10px}.alias input{flex:1;max-width:320px}

th,td{padding:7px 8px;text-align:left;border-bottom:1px solid #edf3f0;font-size:14px;vertical-align:middle}
th{font-size:12px;text-transform:uppercase;color:var(--gris)}
td.mes{font-weight:700;white-space:nowrap}td.dir{color:var(--gris);white-space:nowrap}
.mes-estado{font-size:12px;font-weight:700}.mes-estado.bien{color:var(--verde)}.mes-estado.mal{color:var(--rojo)}
.fecha{display:block;font-size:11px;color:var(--gris)}
.pref{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.pref label{margin:0}
.nota{font-size:13px;color:var(--gris)}

.solo-impresion{display:none}
@media print{
  body{background:#fff}.cab,main,.acciones{display:none!important}
  .solo-impresion{display:block!important;padding:0}
  .informe h1{font-size:20px}.informe h2{font-size:16px;margin:16px 0 4px}
  .informe table{min-width:0}.informe th,.informe td{font-size:11px;border:1px solid #999}
}
@media (max-width:640px){h1{font-size:23px}.cab{padding:10px 14px}}

/* Desplegables: Cliente > Mes > Recibidos/Emitidos > tipo */
details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}
.cliente>summary::before{content:"▸";margin-right:8px;color:var(--gris);display:inline-block;transition:transform .15s}
.cliente[open]>summary::before{transform:rotate(90deg)}
.cliente>summary{justify-content:space-between}
details.mes{border:1px solid var(--borde);border-radius:14px;margin:10px 0;background:#fbfdfc}
details.mes>summary{display:flex;justify-content:space-between;gap:10px;padding:11px 14px;font-weight:700}
details.mes>summary::before{content:"▸";margin-right:8px;color:var(--gris);display:inline-block;transition:transform .15s}
details.mes[open]>summary::before{transform:rotate(90deg)}
.mes-nombre{flex:1;text-transform:capitalize}
.mes-cuerpo{padding:0 14px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
details.dir{border:1px solid #e3ede9;border-radius:12px;background:#fff}
details.dir>summary{padding:9px 12px;font-weight:700;color:var(--gris);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
details.dir>summary::after{content:"+";float:right}details.dir[open]>summary::after{content:"–"}
.lista{padding:0 12px 10px}
.fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px solid #edf3f0;flex-wrap:wrap}
.fila .tipo{font-weight:600}.fila.excel .tipo{color:var(--gris)}
.estado{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.informe table{width:100%;border-collapse:collapse}.informe th,.informe td{padding:5px 6px;text-align:left}
.cliente>summary{text-align:left}.cliente>summary>div:first-child{flex:1}
