/* ============================================================
   XY Inc. — TwinOfficers / ISSEMYN
   reporte360.css — Estilo del reporte ejecutivo "Expediente 360"
   (vista en pantalla tipo A4 + reglas @media print para PDF)
   ============================================================ */
:root{
  --rep-azul:#1e3a8a; --rep-azul2:#2563eb; --rep-cyan:#0891b2; --rep-verde:#1f9d55;
  --rep-naranja:#d97706; --rep-morado:#7c3aed; --rep-rosa:#db2777; --rep-gris:#475569;
  --rep-tinta:#0f172a; --rep-suave:#64748b; --rep-linea:#e2e8f0; --rep-fondo:#f1f5f9;
}
.rep-root{ background:var(--rep-fondo); min-height:100vh; padding:24px 0; font-family:'Segoe UI',system-ui,sans-serif; color:var(--rep-tinta); }

/* Barra de acciones (no se imprime) */
.rep-toolbar{ position:sticky; top:0; z-index:10; max-width:820px; margin:0 auto 16px; display:flex; gap:10px; justify-content:flex-end; }
.rep-btn{ border:0; border-radius:8px; padding:10px 16px; font-size:.9rem; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
.rep-btn-pdf{ background:var(--rep-azul2); color:#fff; }
.rep-btn-ghost{ background:#fff; color:var(--rep-tinta); border:1px solid var(--rep-linea); }

/* Hoja A4 */
.rep-page{ max-width:820px; margin:0 auto; background:#fff; box-shadow:0 6px 30px rgba(15,23,42,.12); }
.rep-section{ padding:26px 40px; }
.rep-section + .rep-section{ border-top:1px solid var(--rep-linea); }

/* Portada */
.rep-cover{ background:linear-gradient(135deg,var(--rep-azul),var(--rep-morado)); color:#fff; padding:46px 40px; }
.rep-cover .rep-brand{ display:flex; justify-content:space-between; align-items:center; font-size:.8rem; }
.rep-cover .rep-logo{ height:56px; background:#fff; padding:8px 12px; border-radius:10px; box-shadow:0 2px 10px rgba(0,0,0,.18); }
.rep-cover .rep-brand-right{ text-align:right; opacity:.92; line-height:1.35; letter-spacing:.04em; }
.rep-cover .rep-brand-right small{ opacity:.7; }
.rep-cover h1{ margin:26px 0 6px; font-size:2rem; font-weight:800; letter-spacing:-.02em; }
.rep-cover .rep-sub{ font-size:1.05rem; opacity:.9; }
.rep-cover .rep-person{ margin-top:24px; padding-top:18px; border-top:1px solid rgba(255,255,255,.25); }
.rep-cover .rep-person .rep-name{ font-size:1.5rem; font-weight:700; }
.rep-cover .rep-meta{ margin-top:8px; display:flex; gap:18px; flex-wrap:wrap; font-size:.85rem; opacity:.9; }
.rep-badges{ margin-top:16px; display:flex; gap:8px; flex-wrap:wrap; }
.rep-badge{ background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.3); border-radius:999px; padding:4px 12px; font-size:.78rem; font-weight:600; }
.rep-badge.off{ opacity:.35; }

/* Títulos de sección */
.rep-h{ display:flex; align-items:center; gap:10px; font-size:1.15rem; font-weight:800; color:var(--rep-azul); margin:0 0 14px; }
.rep-h .rep-num{ background:var(--rep-azul); color:#fff; width:26px; height:26px; border-radius:7px; display:grid; place-items:center; font-size:.82rem; }
.rep-lead{ color:var(--rep-suave); font-size:.9rem; margin:-6px 0 16px; }

/* Tarjetas resumen */
.rep-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.rep-c{ border:1px solid var(--rep-linea); border-radius:12px; padding:14px; }
.rep-c b{ display:block; font-size:1.35rem; color:var(--rep-azul2); }
.rep-c span{ font-size:.72rem; color:var(--rep-suave); text-transform:uppercase; letter-spacing:.03em; }

/* Grids y tablas */
.rep-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.rep-grid > div{ display:flex; flex-direction:column; }
.rep-grid label{ font-size:.68rem; color:var(--rep-suave); text-transform:uppercase; letter-spacing:.04em; }
.rep-grid span{ font-size:.95rem; font-weight:600; }
.rep-table{ width:100%; border-collapse:collapse; font-size:.82rem; }
.rep-table th{ background:var(--rep-fondo); color:var(--rep-gris); text-align:left; padding:7px 9px; border-bottom:2px solid var(--rep-linea); font-size:.72rem; text-transform:uppercase; letter-spacing:.03em; }
.rep-table td{ padding:6px 9px; border-bottom:1px solid var(--rep-linea); }
.rep-num{ text-align:right; }
.rep-src{ display:inline-block; font-size:.66rem; font-weight:700; padding:2px 6px; border-radius:5px; background:var(--rep-verde); color:#fff; }

/* Dominios (2 col) */
.rep-2col{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rep-kv{ display:flex; justify-content:space-between; padding:4px 0; font-size:.86rem; border-bottom:1px dashed var(--rep-linea); }
.rep-kv label{ color:var(--rep-suave); }
.rep-empty{ color:var(--rep-suave); font-style:italic; font-size:.85rem; }

/* Diagramas */
.rep-diag{ margin:8px 0 18px; }
.rep-diag svg{ width:100%; height:auto; display:block; }
.rep-figcap{ font-size:.76rem; color:var(--rep-suave); text-align:center; margin-top:6px; }
.rep-tech{ font-size:.88rem; line-height:1.55; }
.rep-tech li{ margin:5px 0; }
.rep-foot{ padding:16px 40px; color:var(--rep-suave); font-size:.74rem; border-top:1px solid var(--rep-linea); }
.rep-foot-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:6px; }
.rep-folio{ font-family:'Consolas','Courier New',monospace; letter-spacing:.02em; }
.rep-folio b{ color:var(--rep-azul); }
.rep-foot-legal{ text-align:center; opacity:.8; }
/* Pie corrido sólo al imprimir (se repite por página) */
.rep-print-foot{ display:none; }
@media print{
  .rep-print-foot{ display:block; position:fixed; bottom:4mm; left:0; right:0; text-align:center;
    font-family:'Consolas','Courier New',monospace; font-size:7.5pt; color:#475569; }
}

/* ===== Impresión / PDF ===== */
@media print{
  @page{ size:A4; margin:12mm; }
  body{ background:#fff; }
  .rep-root{ background:#fff; padding:0; }
  .rep-toolbar{ display:none !important; }
  .rep-page{ max-width:none; box-shadow:none; }
  .rep-section{ padding:14px 0; break-inside:avoid; }
  .rep-cover{ break-after:page; }
  .rep-diag, .rep-c, .rep-2col > div, table{ break-inside:avoid; }
  *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
