/*
 * MODAL
 * Janela de confirmação centralizada sobre um fundo escurecido.
 * Usada pelo confirm-modal (substitui o confirm nativo do navegador).
 */
.modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-5);
  background-color: var(--color-overlay);
}

.modal__box {
  width: 100%;
  max-width: 24rem;
  padding: var(--space-5);
  background-color: var(--color-surface);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

.modal__message {
  margin: 0 0 var(--space-5);
  font-size: var(--text-base);
  color: var(--color-text);
}

.modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
}

/* Variante maior, para formulários carregados no modal. */
.modal__box--lg {
  max-width: 32rem;
  position: relative;
}

/* Botão de fechar (x) no canto do modal de formulário. */
.modal__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-xl);
  line-height: 1;
  color: var(--color-text-muted);
  background: none;
  border: none;
  border-radius: var(--radius-full);
  cursor: pointer;
}

.modal__close:hover {
  background-color: var(--color-hover);
  color: var(--color-text);
}

/* Título e subtítulo de formulários carregados no modal. */
.modal__title {
  margin: 0 0 var(--space-2);
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
}

.modal__subtitle {
  margin: 0 0 var(--space-5);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Resumo de encargos na baixa em atraso: aluguel + multa + juros + total.
   Bloco discreto acima do campo de valor recebido. */
.charge-summary {
  margin-bottom: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-md);
  background-color: var(--color-surface);
}

.charge-summary__row {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-1) 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.charge-summary__row--total {
  margin-top: var(--space-1);
  padding-top: var(--space-2);
  border-top: var(--border-width) solid var(--color-border);
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}

.charge-summary__note {
  margin: calc(var(--space-2) * -1) 0 var(--space-4);
  font-size: var(--text-xs);
  color: var(--color-text-subtle);
}
