/* ============================================================
   dashboard.css — Estilos del módulo de Estadísticas y Reportes
   ============================================================ */

.modal.modal-xl .modal-content{max-width:1280px;max-height:94vh;width:96%}

.stats-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.stats-dates{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stats-dates label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.stats-dates input[type=date]{padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:12.5px;background:#fff;color:var(--ink);font-family:inherit; outline:none; transition: border-color 0.2s;}
.stats-dates input[type=date]:focus { border-color: var(--primary); }
.stats-actions{display:flex;gap:8px; align-items: center;}

.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,30,60,.08)}
.kpi-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--kpi-color, var(--primary))}
.kpi-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin-bottom:6px}
.kpi-value{font-size:22px;font-weight:800;color:var(--ink);line-height:1.1}
.kpi-sub{font-size:11px;color:var(--muted);margin-top:4px}

.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.chart-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.chart-card h4{font-size:12.5px;color:var(--ink);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-weight:700}
.chart-svg{width:100%;height:auto;display:block}
.donut-wrap{display:flex;align-items:center;gap:14px}
.donut-svg{width:160px;height:160px;flex-shrink:0}
.donut-legend{flex:1;display:flex;flex-direction:column;gap:5px;font-size:12px;min-width:0}
.legend-row{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center}
.legend-dot{width:10px;height:10px;border-radius:3px}
.legend-name{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.legend-val{color:var(--ink);font-weight:700}
.legend-pct{color:var(--muted);font-size:11px;min-width:34px;text-align:right}

.stats-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.stats-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:12px}
.stats-card h4{font-size:12.5px;color:var(--ink);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-weight:700}

.status-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));gap:10px}
.status-item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink);padding:8px 10px;background:#f8fafc;border-radius:6px}
.status-item .dot{width:8px;height:8px;border-radius:50%}
.status-item b{margin-left:auto;font-weight:800;font-size:15px}

.stats-table{width:100%;border-collapse:collapse;font-size:12.5px}
.stats-table th{text-align:left;padding:8px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:1px solid var(--line);font-weight:700}
.stats-table th.num{text-align:right}
.stats-table td{padding:8px 6px;border-bottom:1px solid #f1f5f9;color:var(--ink)}
.stats-table td.num{text-align:right}
.stats-table tr:last-child td{border-bottom:none}
.tag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.8px;padding:3px 8px;border-radius:4px;color:#fff}
.tag-inv{background:#1e3a5f}
.tag-rec{background:#1f9d55}
.stats-footer{text-align:right;padding:8px 0 4px;font-size:11.5px}

/* ---------- Reporte CPA (Impresión) ---------- */
#reportPrint{display:none}

@media print{
  body.printing-report{background:#fff !important}
  body.printing-report .app-header,
  body.printing-report .layout,
  body.printing-report .modal,
  body.printing-report .toast{display:none !important}
  body.printing-report #reportPrint{display:block !important;background:#fff;color:#1c2331;font-family:'Segoe UI',Roboto,Arial,sans-serif}
}

.report-page{width:100%;max-width:780px;margin:0 auto;padding:10px;color:#1c2331;font-family:'Segoe UI',Roboto,Arial,sans-serif}
.report-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #1e3a5f;padding-bottom:10px;margin-bottom:16px}
.report-head h1{color:#1e3a5f;font-size:20px;letter-spacing:1.2px;margin:0 0 4px 0}
.report-sub{color:#556;font-size:11.5px;margin:0}
.report-meta{text-align:right;font-size:11px;color:#334;line-height:1.6}
.report-meta b{color:#111}

.report-section{margin-bottom:18px;page-break-inside:avoid}
.report-section h2{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#1e3a5f;border-bottom:1px solid #e2e8f0;padding-bottom:5px;margin-bottom:10px}

.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.report-kpis.small{grid-template-columns:repeat(5,1fr)}
.report-kpis > div{background:#f4f8fc;border-left:3px solid #1e3a5f;border-radius:5px;padding:8px 10px}
.report-kpis span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;color:#667;margin-bottom:3px}
.report-kpis b{font-size:14px;color:#111}

.report-table{width:100%;border-collapse:collapse;font-size:11px}
.report-table th{text-align:left;padding:6px 8px;background:#eef3f8;color:#334;font-size:9.5px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #e2e8f0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.report-table th.num,.report-table td.num{text-align:right}
.report-table td{padding:6px 8px;border-bottom:1px solid #eef1f6;color:#2a3244}
.report-table tr:nth-child(even) td{background:#fbfcfe;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.empty-cell{text-align:center;color:#888;font-style:italic}

.report-notes{margin-top:20px;padding:12px 14px;background:#f8fafc;border-left:3px solid #e8a020;border-radius:5px;font-size:10.5px;color:#334;line-height:1.5;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.report-notes b{color:#111}
.report-sign{margin-top:46px;text-align:center;font-size:11px;color:#334}
.sign-line{width:260px;border-top:1px solid #334;margin:0 auto 6px}