/* Facturación de ingresos: estilos propios del módulo */

.facturas-table thead th{text-align:center!important}
.factura-align-right{text-align:right!important}
.factura-align-center{text-align:center!important}
.factura-clickable-row{cursor:pointer}
.factura-empty-state{text-align:center;color:var(--color-text-muted);padding:var(--space-5)}
.factura-modal-intro{margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-4)}
.factura-modal-actions-flat{border-top:0;padding-top:0;margin-top:0}
.factura-form-group-spaced{margin-top:var(--space-4)}
.factura-form-group-notes{margin-top:var(--space-3)}
.factura-technical-note{font-size:var(--text-xs);margin-top:4px}
.factura-inline-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}
.factura-action-push-left{margin-right:auto}
.factura-detail-back{right:calc(var(--space-4) + 40px)}
.facturas-filter-stack{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-5)}
.facturas-filter-stack .filter-bar{margin-bottom:0}
.facturas-quarter-bar,.facturas-year-bar{align-items:center}
.facturas-combined-filter-bar{width:100%;align-items:center;flex-wrap:nowrap}
.facturas-year-bar,.facturas-quarter-options,.facturas-top-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:nowrap}
.facturas-quarter-options{gap:6px}
.facturas-top-actions .btn{height:32px;min-height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}
.facturas-delete-imported-btn{margin-left:auto;height:32px;min-height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}
.facturas-delete-imported-btn i{width:15px;height:15px}
.facturas-year-bar{flex-wrap:nowrap}
.facturas-year-select{min-width:96px;max-width:130px}

.detail-panel.detail-panel-factura{width:600px}

/* Facturación: líneas de detalle compactas */
.modal.modal-wide{max-width:760px}
.factura-lineas-head,
.factura-linea-row{
  display:grid;
  grid-template-columns:minmax(240px,1fr) 50px 96px 42px 88px 34px;
  gap:var(--space-2);
  align-items:center;
}
.factura-lineas-head{
  margin-bottom:var(--space-1);
  padding:0 2px;
  color:var(--color-text-muted);
  font-size:var(--text-xs);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
}
.factura-lineas-box{display:flex;flex-direction:column;gap:var(--space-2)}
.factura-linea-row{margin-bottom:0}
.factura-linea-estilo{min-width:0;padding-left:var(--space-1);padding-right:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}
.factura-lineas-head span:nth-child(n+2):nth-child(-n+5){text-align:right}
.factura-linea-uds,
.factura-linea-dto{text-align:right}
.factura-linea-precio{text-align:right}
.factura-linea-remove{min-width:34px;height:34px;padding:0;justify-content:center}
.factura-lineas-add-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}
.factura-lineas-title{margin-top:var(--space-3);margin-bottom:var(--space-2);text-align:center}
.factura-linea-row[data-estilo="negrita"] .factura-linea-descripcion{font-weight:700}
.factura-linea-row[data-estilo="cursiva"] .factura-linea-descripcion{font-style:italic;color:#595959}
.factura-linea-row[data-estilo="blanco"] .factura-linea-descripcion{font-style:italic;color:var(--color-text-muted)}
.detail-panel-factura .factura-lineas-detalle-table tr.factura-linea-detalle-negrita td:first-child{font-weight:700}
.factura-linea-detalle-cursiva td:first-child{font-style:italic;color:#595959}
.factura-linea-detalle-blanco td:first-child{height:1.5em}

/* Facturación: formulario más compacto en escritorio */
.form-row.form-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.factura-row-cliente-total .factura-cliente-crm{grid-column:span 2}
.modal.modal-factura{max-width:820px}
.modal.modal-cobro{max-width:620px}
.modal-cobro .modal-actions .btn{min-height:44px}
.factura-row-main .form-group,
.factura-row-localidad .form-group{margin-bottom:var(--space-3)}
.factura-linea-descripcion{min-width:0}
.factura-linea-uds{padding-left:var(--space-2);padding-right:var(--space-2)}
.factura-linea-dto{padding-left:var(--space-1);padding-right:var(--space-1)}
.factura-linea-precio{padding-left:var(--space-2);padding-right:var(--space-2)}

/* Facturación: acciones e importación de histórico */
.facturas-actions-bar{
  display:flex;
  justify-content:flex-end;
  gap:var(--space-2);
  margin:calc(-1 * var(--space-2)) 0 var(--space-3);
  flex-wrap:wrap;
}
.facturas-actions-bar .btn{height:32px;min-height:32px;padding:0 var(--space-3);font-size:var(--text-xs)}
.facturas-actions-bar .btn i{width:15px;height:15px;font-weight:700}
.factura-import-preview{
  margin-top:var(--space-3);
  max-height:50vh;
  overflow:auto;
}
.factura-import-table th,
.factura-import-table td{
  white-space:nowrap;
}
.factura-import-table td:nth-child(2),
.factura-import-table td:nth-child(5){
  white-space:normal;
  min-width:160px;
}
.import-row-warning{
  background:color-mix(in srgb, var(--color-warning) 8%, transparent);
}

.factura-import-list{display:grid;gap:var(--space-3)}
.factura-import-item{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-3);min-width:0}
.factura-import-item-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3)}
.factura-import-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);white-space:nowrap;color:var(--color-text-muted)}
.factura-import-numero{display:flex;flex-direction:column;gap:2px;min-width:0}
.factura-import-numero strong,.factura-import-numero span{overflow-wrap:anywhere}
.factura-import-meta{display:grid;grid-template-columns:1fr 2fr .65fr .85fr;gap:var(--space-2);margin-top:var(--space-3);align-items:start}
.factura-import-meta div{min-width:0}
.factura-import-meta span{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:2px}
.factura-import-meta strong{display:block;font-size:var(--text-sm);font-weight:600;overflow-wrap:anywhere}
.factura-import-errors{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-warning) 12%, transparent);color:var(--color-text);font-size:var(--text-sm);line-height:1.35;overflow-wrap:anywhere}
.factura-import-errors ul{margin:var(--space-1) 0 0 var(--space-4);padding:0}
.factura-import-errors li+li{margin-top:var(--space-1)}
.factura-import-errors-general{margin-bottom:var(--space-3);margin-top:0}
.modal-factura-rapida{max-width:680px}
.factura-import-match{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text);overflow-wrap:anywhere}
.factura-import-match .badge{margin-right:var(--space-2)}
.factura-import-match-warning{color:var(--color-text-muted)}

.facturas-duplicate-warning{
  margin:var(--space-3) 0;
  padding:var(--space-3);
  border:1px solid color-mix(in srgb, var(--color-warning) 45%, transparent);
  border-radius:var(--radius-md);
  background:color-mix(in srgb, var(--color-warning) 10%, transparent);
  color:var(--color-text);
  font-size:var(--text-sm);
  line-height:1.35;
}
.facturas-duplicate-warning p{margin:.35rem 0 .5rem;color:var(--color-text-muted)}
.facturas-duplicate-warning ul{margin:0;padding-left:1.1rem;display:grid;gap:.45rem}
.facturas-duplicate-warning li div{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.1rem;overflow-wrap:anywhere}

.facturas-warning-section + .facturas-warning-section{
  margin-top:var(--space-3);
  padding-top:var(--space-3);
  border-top:1px solid color-mix(in srgb, var(--color-warning) 28%, transparent);
}

/* Facturación: permisos, filtros compactos y resumen */
html[data-crm-role="gestoria"] [data-role-admin-only]{display:none!important}
.facturas-period-summary{
  margin:0 0 var(--space-4);
  border:1px solid var(--color-border);
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  padding:var(--space-4) var(--space-5);
  box-shadow:var(--shadow-sm);
  text-align:right;
}
.facturas-period-summary-title{
  text-align:left;
  font-size:var(--text-xs);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--color-text-muted);
  margin:0;
  align-self:center;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}
.facturas-period-summary-title span{margin:0}
.facturas-summary-status{display:grid;grid-template-columns:repeat(2,minmax(76px,1fr));gap:var(--space-1);align-items:stretch}
.facturas-summary-status .filter-btn{width:100%;justify-content:center}
.facturas-period-summary-grid{
  display:grid;
  grid-template-columns:max-content repeat(4,minmax(0,1fr));
  column-gap:var(--space-2);
  align-items:center;
}
.facturas-period-summary-grid span{
  display:block;
  font-size:var(--text-xs);
  color:var(--color-text-muted);
  margin-bottom:2px;
  white-space:nowrap;
}
.facturas-period-summary-grid strong{
  display:block;
  font-size:1.05rem;
  color:var(--color-text);
  white-space:nowrap;
}
.facturas-period-summary-grid strong.facturas-period-partial{
  color:var(--color-success);
  font-weight:900;
}
.factura-mobile-importes{display:none}
@media (min-width: 768px){
  .facturas-filter-stack{
    flex-direction:row;
    align-items:center;
    gap:var(--space-3);
    flex-wrap:wrap;
  }
  .facturas-filter-stack .filter-bar{
    align-items:center;
  }
}

.invoice-client-candidates{display:grid;gap:var(--space-3);margin-top:var(--space-4);max-height:min(62vh,560px);overflow:auto;padding-right:2px}
.invoice-client-candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-3)}
.invoice-client-candidate-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.invoice-client-candidate-actions{display:flex;justify-content:flex-end}
.contactos-facturas-btn{margin-left:auto}
.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}

/* Importador de facturas: resumen y estados de carga */
.factura-import-summary{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  align-items:center;
  margin-bottom:var(--space-3);
  padding:var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  background:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));
  color:var(--color-text);
  font-size:var(--text-sm);
}
.factura-import-summary span{
  display:inline-flex;
  gap:4px;
  align-items:baseline;
  white-space:nowrap;
}
.factura-import-summary-warning{
  color:var(--color-warning);
}
.factura-import-loading{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  padding:var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  background:var(--color-surface);
  color:var(--color-text);
}
.factura-import-loading p{margin:2px 0 0 0}
.factura-import-working{margin-bottom:var(--space-3)}

.invoice-client-section-title{
  margin:var(--space-4) 0 var(--space-2);
  font-size:var(--text-xs);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--color-text-muted);
}
.invoice-client-candidate-diff{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:3px;
}
.invoice-client-candidate-diff span{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--color-border);
  border-radius:var(--radius-full);
  padding:1px 7px;
  font-size:11px;
  color:var(--color-text-muted);
  background:var(--color-surface-offset);
}

.factura-label-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}
.factura-label-action label{margin:0}
.btn-xs{padding:2px var(--space-2);font-size:var(--text-xs);line-height:1.2}
.factura-contado-inline{white-space:nowrap}
.factura-cobro-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}

.facturas-duplicate-warning{
  position:relative;
}
.facturas-warning-close{
  position:absolute;
  top:var(--space-2);
  right:var(--space-2);
  width:28px;
  height:28px;
  border:1px solid color-mix(in srgb, var(--color-warning) 26%, var(--color-border));
  border-radius:var(--radius-full);
  background:color-mix(in srgb, var(--color-surface) 86%, var(--color-warning));
  color:var(--color-text-muted);
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.facturas-warning-close:hover{
  color:var(--color-text);
  background:var(--color-surface);
}

/* Acciones de factura: en escritorio se muestran Entregar y Cobrar separados; en móvil se usa una acción principal dinámica. */
.factura-action-mobile{display:none!important}

/* Facturación: modal compacto para corregir entrega */
.modal.modal-entrega-correccion{max-width:440px}

/* Facturación: detalle de factura compacto en escritorio y tarjetas en móvil */
.factura-detail-data-lines{
  display:block;
  margin:0;
}
.factura-detail-data-lines p{
  margin:0 0 var(--space-1);
  line-height:1.45;
}
.factura-detail-data-lines p:last-child{
  margin-bottom:0;
}
.factura-detail-data-lines strong{
  font-weight:800;
}
.factura-detail-line-separator{
  margin:0 var(--space-1);
}
.factura-detail-data-grid{
  display:none;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--space-3);
}
.factura-detail-data-item{
  min-width:0;
  padding:var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface-offset);
}
.factura-detail-data-item-full{
  grid-column:1 / -1;
}
.factura-detail-data-item span{
  display:block;
  margin-bottom:4px;
  color:var(--color-text-muted);
  font-size:var(--text-xs);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.factura-detail-data-item strong,
.factura-detail-data-item div{
  display:block;
  min-width:0;
  color:var(--color-text);
  font-size:var(--text-sm);
  overflow-wrap:anywhere;
}
.factura-detail-data-item .badge{
  display:inline-flex;
}
.factura-detail-data-item-pair{
  grid-column:1 / -1;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  align-items:start;
  column-gap:var(--space-4);
  row-gap:var(--space-2);
}
.factura-detail-data-field{
  min-width:0;
}
.factura-detail-data-field-right{
  text-align:right;
}
.factura-detail-data-field-right .badge{
  justify-content:flex-end;
}
.factura-detail-data-item-pair .factura-detail-data-field span{
  margin-bottom:4px;
}
.factura-detail-data-item-pair .factura-detail-data-field strong{
  display:block;
  min-width:0;
  color:var(--color-text);
  font-size:var(--text-sm);
  overflow-wrap:anywhere;
}
.factura-detalle-total{
  margin-top:var(--space-3);
  padding:var(--space-3);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface-offset);
  text-align:right;
  font-weight:800;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:var(--space-4);
  flex-wrap:wrap;
}


/* Refuerzo: pares del detalle de factura como una sola tarjeta con dos columnas reales. */
.factura-detail-data-item-pair-force{
  grid-column:1 / -1;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  align-items:start;
  column-gap:var(--space-4);
  row-gap:var(--space-2);
}
.factura-detail-data-item-pair-force > .factura-detail-data-field{
  display:block !important;
  min-width:0;
}
.factura-detail-data-item-pair-force > .factura-detail-data-field-right{
  text-align:right;
}
.factura-detail-data-item-pair-force > .factura-detail-data-field-right .badge{
  justify-content:flex-end;
}

/* 20260620u: detalle de factura más compacto */
.factura-lineas-detalle-table th:nth-child(2),
.factura-lineas-detalle-table td:nth-child(2){width:58px;white-space:nowrap}
.factura-lineas-detalle-table th:nth-child(3),
.factura-lineas-detalle-table td:nth-child(3){width:96px;white-space:nowrap}
.factura-lineas-detalle-table th:nth-child(4),
.factura-lineas-detalle-table td:nth-child(4){width:44px;white-space:nowrap}
.factura-detalle-total span,
.factura-detalle-total strong{white-space:nowrap}
.factura-linea-estilo-label{display:none}

/* 20260620v: cabecera más compacta en detalle de factura */
.factura-detail-header h2{
  display:flex;
  align-items:baseline;
  gap:var(--space-1);
  flex-wrap:wrap;
}
.factura-detail-header-date{
  font-size:var(--text-base);
  font-weight:700;
}
.factura-detail-header-client{
  margin-bottom:2px;
  font-weight:700;
}
.factura-detail-header-address{
  margin-top:0;
  overflow-wrap:anywhere;
}

