/* Comptes en Famille — carte formulaire, réutilisée par toutes les pages de
   création/édition (comptes, catégories, tiers, échéances...). */

.form-error {
  margin-bottom: 1rem;
  border-radius: var(--radius);
  border: 1px solid var(--danger-border);
  background: var(--danger-bg);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: var(--danger-strong);
}

.form-success {
  margin-bottom: 1rem;
  border-radius: var(--radius);
  border: 1px solid var(--success-border);
  background: var(--success-bg);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: var(--success-strong);
}

.form-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface);
  padding: 1.25rem;
  box-shadow: var(--shadow-card);
}
.form-card--narrow {
  max-width: 28rem;
}
.form-card--compact {
  padding: 1rem;
}
.form-card + .form-card {
  margin-top: 1.25rem;
}

.form-card__heading {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}

/* Ligne de titre de carte avec une action alignée à droite (ex. « Suivi »
   + lien « Réglages du prêt »). */
.form-card__header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.form-card__group {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Ligne horizontale de deux champs courts côte à côte (ex. périodicité :
   nombre + unité) — à distinguer de form-card__group, qui empile en colonne. */
.form-card__row {
  display: flex;
  gap: 0.5rem;
}
.form-card__row > * {
  flex: 1;
  /* Sans cela, un <input type="date"> impose sa largeur minimale native et
     déborde du cadre sur mobile. */
  min-width: 0;
}

.form-card__label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
}

.form-card__input {
  width: 100%;
  border-radius: var(--radius);
  border: 1px solid var(--border-strong);
  background: var(--field-bg);
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  color: inherit;
}
/* Valeur affichée mais non modifiable (ex. e-mail et rôle de « Mon Compte »). */
.form-card__readonly {
  margin: 0;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface-subtle);
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}
.form-card__input--upper {
  text-transform: uppercase;
}
.form-card__input--compact {
  width: auto;
  padding: 0.25rem 0.5rem;
}
.form-card__input--amount {
  font-size: 1.5rem;
  font-weight: 700;
}

.form-card__hint {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: #94a3b8;
}

.form-card__hint--warning {
  color: var(--warning-text);
}

.form-card__note {
  font-size: 0.75rem;
  color: var(--text-subtle);
}

/* Ligne libellé + bouton radio (ex. choix « seule / et les suivantes »). */
.form-card__radio {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.375rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.form-back {
  margin-top: 1rem;
  font-size: 0.875rem;
}

/* --- Sélecteur Dépense / Revenu (interrupteur segmenté) --- */
.segmented {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.25rem;
  border-radius: var(--radius);
  background: var(--surface-muted);
  padding: 0.25rem;
}

.segmented__option {
  position: relative;
  cursor: pointer;
}

.segmented__label {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  padding: 0.625rem 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-subtle);
}

.segmented__input:checked + .segmented__label {
  background: var(--segment-active-bg);
  box-shadow: var(--shadow-card);
}
.segmented__input:checked + .segmented__label--expense {
  color: var(--danger);
}
.segmented__input:checked + .segmented__label--income {
  color: var(--success);
}
