/* generador-recibo-alquiler: herramienta tools/recibo-alquiler.php. Solo tokens. */

.fx-recibo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--fx-space-8);
  align-items: start;
  color: var(--fx-text);
}
.fx-recibo__form {
  display: flex; flex-direction: column; gap: var(--fx-space-6);
  background: var(--fx-surface);
  border: 1px solid var(--fx-border);
  border-radius: var(--fx-radius-lg);
  box-shadow: var(--fx-shadow-md);
  padding: var(--fx-space-6);
}
.fx-recibo__priv {
  display: flex; gap: var(--fx-space-2); align-items: flex-start; margin: 0;
  padding: var(--fx-space-3) var(--fx-space-4);
  border-radius: var(--fx-radius-sm);
  background: var(--fx-success-bg); color: var(--fx-success);
  font-size: var(--fx-text-sm); line-height: var(--fx-leading-snug);
}
.fx-recibo__priv svg { flex: none; margin-top: 2px; }
.fx-recibo__set { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--fx-space-4); }
.fx-recibo__set legend { padding: 0; margin-bottom: var(--fx-space-3); font-family: var(--fx-font-display); font-size: var(--fx-text-lg); font-weight: var(--fx-weight-semi); color: var(--fx-text); }
.fx-recibo__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fx-space-3); }
.fx-recibo__form input[type="date"] {
  width: 100%; min-height: 3rem; box-sizing: border-box;
  padding: var(--fx-space-3) var(--fx-space-4);
  font-family: var(--fx-font-body); font-size: var(--fx-text-md); color: var(--fx-text);
  background: var(--fx-surface); border: 1px solid var(--fx-border-strong); border-radius: var(--fx-radius-sm);
}
.fx-recibo__checks { display: flex; flex-direction: column; gap: var(--fx-space-2); }
.fx-recibo__check { display: flex; gap: var(--fx-space-2); align-items: center; font-size: var(--fx-text-sm); font-weight: var(--fx-weight-semi); cursor: pointer; }
.fx-recibo__check input { width: 1.125rem; height: 1.125rem; accent-color: var(--fx-brand-600); }
.fx-recibo__check input:disabled + span { color: var(--fx-text-subtle); }

.fx-recibo__side { position: sticky; top: var(--fx-space-24); }
.fx-recibo__doc {
  background: var(--fx-white);
  color: var(--fx-neutral-900);
  border: 1px solid var(--fx-border);
  border-radius: var(--fx-radius-md);
  box-shadow: var(--fx-shadow-lg);
  padding: var(--fx-space-8);
  font-size: var(--fx-text-sm);
  line-height: var(--fx-leading-body);
}
.fx-recibo__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--fx-space-2); padding-bottom: var(--fx-space-4); border-bottom: 2px solid var(--fx-neutral-900); }
.fx-recibo__head h3 { margin: 0; font-family: var(--fx-font-display); font-size: var(--fx-text-xl); letter-spacing: var(--fx-tracking-snug); text-transform: uppercase; }
.fx-recibo__head p { display: flex; flex-direction: column; align-items: flex-end; margin: 0; color: var(--fx-neutral-600); }
.fx-recibo__parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fx-space-4); margin: var(--fx-space-6) 0; }
.fx-recibo__parties dt { font-size: var(--fx-text-xs); font-weight: var(--fx-weight-semi); letter-spacing: var(--fx-tracking-wide); text-transform: uppercase; color: var(--fx-neutral-500); }
.fx-recibo__parties dd { margin: 0; overflow-wrap: anywhere; }
.fx-recibo__body { margin: 0 0 var(--fx-space-4); }
.fx-recibo__tbl { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.fx-recibo__tbl th, .fx-recibo__tbl td { padding: var(--fx-space-2) 0; border-bottom: 1px solid var(--fx-neutral-200); text-align: left; font-weight: var(--fx-weight-regular); }
.fx-recibo__tbl td { text-align: right; white-space: nowrap; padding-left: var(--fx-space-4); }
.fx-recibo__tbl thead th { font-size: var(--fx-text-xs); font-weight: var(--fx-weight-semi); letter-spacing: var(--fx-tracking-wide); text-transform: uppercase; color: var(--fx-neutral-500); }
.fx-recibo__tbl thead th:last-child { text-align: right; }
.fx-recibo__tbl tfoot th, .fx-recibo__tbl tfoot td { border-bottom: 0; border-top: 2px solid var(--fx-neutral-900); font-weight: var(--fx-weight-bold); font-size: var(--fx-text-md); }
.fx-recibo__pay { margin: var(--fx-space-4) 0 0; }
.fx-recibo__sign { margin-top: var(--fx-space-12); display: flex; justify-content: flex-end; }
.fx-recibo__sign span { min-width: 60%; padding-top: var(--fx-space-2); border-top: 1px solid var(--fx-neutral-400); text-align: center; color: var(--fx-neutral-600); font-size: var(--fx-text-xs); }
.fx-recibo__legal { margin: var(--fx-space-6) 0 0; font-size: var(--fx-text-xs); color: var(--fx-neutral-500); }
.fx-recibo__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fx-space-3); margin: var(--fx-space-4) 0 0; }

@media (max-width: 900px) {
  .fx-recibo { grid-template-columns: minmax(0, 1fr); }
  .fx-recibo__side { position: static; }
}
@media (max-width: 560px) {
  .fx-recibo__row, .fx-recibo__parties { grid-template-columns: minmax(0, 1fr); }
  .fx-recibo__doc { padding: var(--fx-space-6) var(--fx-space-4); }
}

/* Impresión / «Guardar como PDF»: el JS copia el recibo a #fxrb-print-root, hijo directo de body, y solo se imprime eso. */
#fxrb-print-root { display: none; }
@media print {
  @page { margin: 18mm; }
  body > *:not(#fxrb-print-root) { display: none !important; }
  #fxrb-print-root { display: block; }
  #fxrb-print-root .fx-recibo__doc { border: 0; box-shadow: none; padding: 0; }
}
