/* ═══ FACTURACIÓN (v233) ═══ */
.fac-banner { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--radius-md); margin-bottom: 14px;
  background: #fef3c7; color: #92400e; border: 1px solid #fde68a; font-size: 13px; }
html.dark .fac-banner { background: #422006; color: #fcd34d; border-color: #78350f; }
.fac-banner i { font-size: 18px; margin-top: 1px; }
.fac-resumen { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.fac-tile { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 12px 14px; }
.fac-tile span { display: block; font-size: 11.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: .4px; }
.fac-tile b { font-size: 18px; color: var(--text); font-variant-numeric: tabular-nums; }
.fac-tile.alerta b { color: #dc2626; }
@media (max-width: 760px) { .fac-resumen { grid-template-columns: 1fr 1fr; } }
.fac-filtros { grid-template-columns: repeat(3, minmax(0, 260px)); }
@media (max-width: 720px) { .fac-filtros { grid-template-columns: 1fr; } }
.fac-fila { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.fac-fila:last-child { border-bottom: none; }
.fac-cli { font-weight: 600; font-size: 14px; color: var(--text); }
.fac-meta { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.fac-det { font-size: 12.5px; color: var(--text-2); margin-top: 3px; }
.fac-err { font-size: 12px; color: #dc2626; margin-top: 4px; display: flex; gap: 4px; align-items: flex-start; }
.fac-ok { font-size: 12.5px; color: #16a34a; margin-bottom: 6px; display: flex; gap: 4px; align-items: center; }
.fac-col-imp { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.fac-imp { font-weight: 700; font-size: 15px; color: var(--text); font-variant-numeric: tabular-nums; }
.fac-badge { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; white-space: nowrap; display: inline-flex; gap: 3px; align-items: center; }
.fac-badge.verde { background: #dcfce7; color: #166534; } .fac-badge.verde-claro { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.fac-badge.amarillo { background: #fef3c7; color: #92400e; } .fac-badge.rojo { background: #fee2e2; color: #b91c1c; }
.fac-badge.gris { background: var(--surface-2); color: var(--text-3); }
html.dark .fac-badge.verde { background: #14532d; color: #bbf7d0; } html.dark .fac-badge.amarillo { background: #422006; color: #fcd34d; }
html.dark .fac-badge.rojo { background: #450a0a; color: #fca5a5; } html.dark .fac-badge.verde-claro { background: #052e16; color: #86efac; border-color: #14532d; }
.fac-acciones { display: flex; gap: 4px; align-items: center; }
@media (max-width: 640px) { .fac-fila { grid-template-columns: 1fr; } .fac-col-imp { align-items: flex-start; flex-direction: row; flex-wrap: wrap; } }
.fac-vacio { font-size: 12.5px; color: var(--text-3); text-align: center; padding: 10px; }
.fac-trabajos { border: 1px solid var(--border); border-radius: var(--radius-sm); max-height: 180px; overflow-y: auto; }
.fac-trab { display: flex; gap: 8px; align-items: center; padding: 7px 10px; border-bottom: 1px solid var(--border); font-size: 13px; cursor: pointer; }
.fac-trab:last-child { border-bottom: none; }
.fac-trab span { flex: 1; } .fac-trab small { font-size: 11px; color: var(--text-3); } .fac-trab small.ok { color: #16a34a; }
.fac-trab input { accent-color: var(--accent); }
.fac-hint { font-size: 12px; color: var(--text-3); margin-bottom: 10px; line-height: 1.5; }
.fac-code { display: block; margin-top: 4px; padding: 6px 8px; background: var(--surface-2); border-radius: 6px; font-size: 11.5px; word-break: break-all; user-select: all; }
.fac-emp { display: block; width: 100%; text-align: left; margin-top: 6px; padding: 8px 10px; border: 1px solid var(--border-md); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--text); cursor: pointer; font-size: 12.5px; }
.fac-emp:hover { border-color: var(--accent); background: var(--accent-bg); }
