/* ==========================================================
   DOCUMENTOS IMPRIMIBLES
   Dos plantillas sobre la misma hoja A4: el diseño de cobertura
   y el acta de visita técnica. La paginación la hace reporte.js
   repartiendo bloques en hojas, así el pie puede decir
   "Página X de Y" (los navegadores no imprimen @page margin-box).
   ========================================================== */
/* Paleta ZW aplicada al papel: gris para bandas y encabezados, dorado como
   acento y blanco de fondo. Los colores de estado (verde, rojo) son
   funcionales y se mantienen legibles en gris.
   Los --doc-* YA NO llevan hex propio: antes declaraban su propia paleta con
   valores fijos, así que este documento no heredaba --marca ni el resto de
   la rampa aunque vive en la misma aplicación — la pisaba. Ahora son alias
   de los tokens de app.css: si la marca cambia, el documento impreso cambia
   con ella, y no hay dos paletas que mantener sincronizadas a mano. */
:root{
  --doc-tinta:var(--gris);
  --doc-tinta-2:var(--gris-hondo);
  --doc-gris:var(--muted);
  --doc-gris-2:var(--muted-2);
  --doc-linea:var(--line);
  --doc-linea-2:var(--panel-2);
  --doc-fondo:var(--bg);
  --doc-cebra:var(--bg-2);
  --doc-marca:var(--marca);
  --doc-marca-2:var(--marca-2);
  --doc-acento:var(--marca-txt);
  --doc-ambar:var(--pend-txt);
  --doc-ambar-bg:var(--warn-bg);
  --doc-rojo:var(--bad-txt);
  --doc-rojo-bg:var(--bad-bg);
  --doc-verde:var(--ok-txt);
  --doc-cian-bg:var(--panel);
}

#doc-back{
  /* z-index en --z-doc: todo lo que flota declara su nivel en la escala de :root
     de app.css (§3); antes estaba escrito a mano aquí mismo. */
  position:fixed;inset:0;background:#6E6E68;z-index:var(--z-doc);display:none;flex-direction:column;
}
#doc-back.show{display:flex;}
#doc-toolbar{
  background:var(--panel);border-bottom:1px solid var(--line);
  padding:9px 14px;display:flex;gap:8px;align-items:center;flex:none;
}
#doc-toolbar .rt-title{flex:1;font-size:12.5px;font-weight:600;color:var(--text);}
#doc-toolbar .rt-info{font-size:10.5px;color:var(--muted);}
#doc-scroll{flex:1;overflow:auto;padding:22px;}
#doc{margin:0 auto;width:210mm;}

/* ---------- HOJA ---------- */
.hoja{
  width:210mm;height:297mm;background:var(--doc-fondo);color:var(--doc-tinta);
  margin:0 auto 18px auto;box-shadow:0 8px 26px rgba(0,0,0,.42);
  display:flex;flex-direction:column;overflow:hidden;position:relative;
  font-size:9.6pt;line-height:1.45;
  font-family:"Segoe UI",-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
.hoja-head{
  flex:none;display:flex;align-items:center;gap:10mm;
  padding:9mm 14mm 4mm 14mm;border-bottom:2.4pt solid var(--doc-tinta);
  box-shadow:inset 0 3pt 0 var(--doc-marca);
}
.hoja-head .hh-logo{flex:none;display:flex;align-items:center;gap:6mm;}
.hoja-head .hh-logo img{max-height:13mm;max-width:38mm;object-fit:contain;}
.hoja-head .hh-txt{flex:1;min-width:0;}
.hoja-head .hh-t{font-size:10.5pt;font-weight:700;letter-spacing:.2px;}
.hoja-head .hh-s{font-size:8pt;color:var(--doc-gris);}
.hoja-head .hh-doc{flex:none;text-align:right;font-size:7.5pt;color:var(--doc-gris);line-height:1.5;}
.hoja-body{flex:1 1 auto;padding:6mm 14mm 4mm 14mm;overflow:hidden;}
.hoja-foot{
  flex:none;padding:3mm 14mm 7mm 14mm;border-top:.6pt solid var(--doc-linea);
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:7.2pt;color:var(--doc-gris);
}

/* ---------- PORTADA ---------- */
.hoja.portada .hoja-head{display:none;}
.hoja.portada .hoja-body{padding:0;display:flex;flex-direction:column;}
.pt-banda{
  background:var(--doc-tinta);color:#fff;padding:12mm 14mm 10mm 14mm;
}
.pt-logos{display:flex;justify-content:space-between;align-items:center;gap:10mm;margin-bottom:11mm;min-height:14mm;}
.pt-logos img{max-height:17mm;max-width:55mm;object-fit:contain;background:#fff;border-radius:2mm;padding:1.5mm 2mm;}
.pt-logos .vacio{
  font-size:7pt;color:rgba(255,255,255,.5);border:.6pt dashed rgba(255,255,255,.35);
  border-radius:2mm;padding:3mm 5mm;
}
.pt-tipo{font-size:8pt;letter-spacing:2.4px;text-transform:uppercase;color:var(--doc-marca);margin-bottom:4mm;}
.pt-titulo{font-size:24pt;font-weight:700;line-height:1.15;margin:0 0 3mm 0;}
.pt-sub{font-size:12pt;color:#E2E2DD;font-weight:400;}
.pt-cuerpo{flex:1;padding:10mm 14mm;display:flex;flex-direction:column;}
.pt-datos{width:100%;border-collapse:collapse;font-size:9pt;margin-bottom:8mm;}
.pt-datos td{padding:2.4mm 0;border-bottom:.6pt solid var(--doc-linea-2);vertical-align:top;}
.pt-datos td.k{width:44mm;color:var(--doc-gris);text-transform:uppercase;font-size:7.4pt;letter-spacing:.5px;padding-top:3mm;}
.pt-datos td.v{font-weight:600;}
.pt-mapa{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;}
.pt-mapa svg{max-width:100%;height:auto;}
.pt-mapa .cap{font-size:7.4pt;color:var(--doc-gris);margin-top:2mm;text-align:center;}
.pt-firmas{display:flex;gap:8mm;margin-top:auto;padding-top:10mm;}
.pt-firmas .fbox{flex:1;border-top:1.4pt solid var(--doc-marca);padding-top:2mm;font-size:8pt;}
.pt-firmas .fbox .rol{font-size:7pt;color:var(--doc-gris);text-transform:uppercase;letter-spacing:.5px;}
.pt-pie{background:var(--doc-cebra);padding:4mm 14mm;font-size:7.2pt;color:var(--doc-gris);
  display:flex;justify-content:space-between;border-top:.6pt solid var(--doc-linea);}

/* ---------- TIPOGRAFIA DEL CUERPO ---------- */
.hoja h2{font-size:13pt;margin:0 0 3mm 0;font-weight:700;}
.hoja h3{
  font-size:11pt;margin:0 0 2.5mm 0;padding-bottom:1.2mm;font-weight:700;
  border-bottom:1.6pt solid var(--doc-tinta);display:flex;align-items:baseline;gap:2.5mm;
}
.hoja h3 .num{color:var(--doc-acento);}
.hoja h4{font-size:9pt;margin:4mm 0 1.5mm 0;color:var(--doc-tinta-2);font-weight:700;}
.hoja p{margin:0 0 2.5mm 0;}
.hoja .bloque{margin-bottom:5mm;}
.hoja .bloque:last-child{margin-bottom:0;}
.hoja ul,.hoja ol{margin:0 0 3mm 0;padding-left:5mm;}
.hoja li{margin-bottom:1.2mm;}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:7.6pt;white-space:nowrap;}

/* ---------- TABLAS ---------- */
.hoja table.t{width:100%;border-collapse:collapse;font-size:8pt;}
.hoja table.t th{
  background:var(--doc-tinta);color:#fff;text-align:left;padding:1.7mm 2mm;
  font-weight:600;font-size:7.2pt;text-transform:uppercase;letter-spacing:.3px;
}
.hoja table.t td{border-bottom:.5pt solid var(--doc-linea-2);padding:1.7mm 2mm;vertical-align:top;}
.hoja table.t tbody tr:nth-child(even) td{background:var(--doc-cebra);}
.hoja table.t tr.row-exist td{color:var(--doc-gris);font-style:italic;}
.hoja table.t td.num{text-align:right;font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:7.6pt;}
.hoja table.t .sm{font-size:7pt;color:var(--doc-gris);}
.tabla-cont{font-size:7pt;color:var(--doc-gris);text-align:right;margin-top:1mm;}

.badge{
  display:inline-block;font-size:6.4pt;font-weight:700;text-transform:uppercase;
  letter-spacing:.3px;padding:.6mm 1.4mm;border-radius:1mm;
}
.badge.new{background:var(--doc-marca);color:#2B2200;}
.badge.exist{background:var(--doc-linea);color:var(--doc-tinta-2);}
.badge.si{background:#E4F1E9;color:var(--doc-verde);}
.badge.no{background:var(--doc-rojo-bg);color:var(--doc-rojo);}
.badge.pend{background:var(--doc-ambar-bg);color:var(--doc-ambar);}

/* estados de verificación en tablas */
.vf{font-weight:700;font-size:7.6pt;}
.vf.si{color:var(--doc-verde);}
.vf.no{color:var(--doc-rojo);}
.vf.pend{color:var(--doc-ambar);}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5mm;}
.kpi{border:.6pt solid var(--doc-linea);border-radius:1.5mm;padding:2.5mm 3mm;border-top:2.2pt solid var(--doc-marca);}
.kpi .k{font-size:15pt;font-weight:700;line-height:1.1;}
.kpi .t{font-size:6.8pt;text-transform:uppercase;letter-spacing:.4px;color:var(--doc-gris);}
.kpi.ambar{border-top-color:var(--doc-marca-2);}
.kpi.verde{border-top-color:var(--doc-verde);}
.kpi.rojo{border-top-color:var(--doc-rojo);}

/* ---------- NOTAS ---------- */
.nota-doc{
  border-left:2.4pt solid var(--doc-marca);background:var(--doc-ambar-bg);
  padding:2.5mm 3mm;font-size:8pt;line-height:1.5;
}
.nota-doc.tec{border-left-color:var(--doc-tinta);background:var(--doc-cian-bg);}
.nota-doc.alerta{border-left-color:var(--doc-rojo);background:var(--doc-rojo-bg);}
.nota-doc b{color:var(--doc-tinta);}

/* ---------- INDICE ---------- */
.indice{list-style:none;padding:0;margin:0;}
.indice li{display:flex;align-items:baseline;gap:2mm;padding:2mm 0;border-bottom:.5pt dotted var(--doc-linea);font-size:9.2pt;}
.indice li .n{width:8mm;color:var(--doc-acento);font-weight:700;}
.indice li .t{flex:1;}
.indice li .p{font-weight:600;font-variant-numeric:tabular-nums;}

/* ---------- MAPA DE CALLES ---------- */
.mapa-rep{
  position:relative;overflow:hidden;margin:0 auto;
  border:.6pt solid var(--doc-linea);background:var(--doc-cebra);
}
.mapa-rep .mt-teselas{position:absolute;inset:0;}
.mapa-rep .mt-teselas img{display:block;}
.mapa-rep .mt-cred{
  position:absolute;right:0;bottom:0;background:rgba(255,255,255,.8);
  font-size:5.6pt;color:var(--doc-gris);padding:.4mm 1mm;
}

/* ---------- CROQUIS Y PERFILES ---------- */
.sk-wrap{text-align:center;}
.sk-wrap svg{max-width:100%;height:auto;}
.sk-cap{font-size:7.2pt;color:var(--doc-gris);margin-top:1.5mm;line-height:1.4;}
.perfiles{display:grid;grid-template-columns:1fr 1fr;gap:4mm;}
.perfiles .pf .tt{font-size:7.8pt;font-weight:700;margin-bottom:.8mm;}
.perfiles .pf .dd{font-size:6.8pt;color:var(--doc-gris);margin-top:.8mm;}
.perfiles .pf svg{width:100%;height:auto;}

/* ---------- ACTA DE VISITA ---------- */
.acta{border:.8pt solid var(--doc-tinta);border-radius:1.5mm;overflow:hidden;}
.acta-head{background:var(--doc-tinta);color:#fff;padding:2.5mm 3mm;display:flex;align-items:baseline;gap:3mm;}
.acta-head .np{font-size:13pt;font-weight:700;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;}
.acta-head .nm{flex:1;font-size:10pt;font-weight:600;}
.acta-head .es{font-size:7pt;text-transform:uppercase;letter-spacing:.6px;color:#B9D3E8;}
.acta-cuerpo{padding:3mm;}
.acta-datos{display:grid;grid-template-columns:1fr 1fr;gap:0 5mm;font-size:8pt;}
.acta-datos .dl{display:flex;gap:2mm;padding:1.2mm 0;border-bottom:.5pt dotted var(--doc-linea-2);}
.acta-datos .dl .k{color:var(--doc-gris);min-width:26mm;text-transform:uppercase;font-size:6.8pt;letter-spacing:.4px;padding-top:.4mm;}
.acta-datos .dl .v{font-weight:600;flex:1;}
.acta-check{width:100%;border-collapse:collapse;margin-top:3mm;font-size:8.4pt;}
.acta-check th{
  background:var(--doc-cebra);color:var(--doc-tinta);text-align:center;font-size:6.8pt;
  text-transform:uppercase;letter-spacing:.4px;padding:1.4mm;border:.5pt solid var(--doc-linea);
}
.acta-check th.q{text-align:left;}
.acta-check td{border:.5pt solid var(--doc-linea);padding:1.6mm;}
.acta-check td.q{font-weight:600;}
.acta-check td.c{text-align:center;width:18mm;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9pt;}
.acta-check td.c.marcada{background:var(--doc-cebra);font-weight:700;}
.acta-obs{margin-top:3mm;font-size:8pt;}
.acta-obs .lbl{font-size:6.8pt;text-transform:uppercase;letter-spacing:.4px;color:var(--doc-gris);margin-bottom:1mm;}
.acta-obs .caja{border:.5pt solid var(--doc-linea);border-radius:1mm;min-height:12mm;padding:2mm;}
.acta-foto{border:.5pt dashed var(--doc-linea);border-radius:1mm;height:26mm;display:flex;
  align-items:center;justify-content:center;color:var(--doc-gris-2);font-size:7.4pt;}
.acta-firmas{display:flex;gap:6mm;margin-top:4mm;}
.acta-firmas .fb{flex:1;border-top:.6pt solid var(--doc-tinta);padding-top:1.5mm;font-size:7.4pt;color:var(--doc-gris);}
.acta-2col{display:grid;grid-template-columns:1.35fr 1fr;gap:4mm;}

/* ---------- IMPRESION ---------- */
@media print{
  #shell,#doc-toolbar,.modal-back,#toasts{display:none !important;}
  #doc-back{position:static;display:block !important;background:#fff;}
  #doc-scroll{overflow:visible;padding:0;}
  #doc{width:auto;}
  .hoja{
    width:auto;height:auto;min-height:0;margin:0;box-shadow:none;
    break-after:page;page-break-after:always;
  }
  .hoja:last-child{break-after:auto;page-break-after:auto;}
  .hoja-body{overflow:visible;}
  .hoja table.t th{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .hoja,.pt-banda,.badge,.kpi,.nota-doc,.acta-head,.acta-check th,.hoja table.t tbody tr:nth-child(even) td{
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  @page{size:A4 portrait;margin:0;}
}
