/*
 * /devis-groupe — le formulaire des groupes et des chaînes.
 *
 * Préfixe `devis`, vérifié sans collision. L'or `#8A6A2C`, la typographie et
 * les boutons viennent de `globals.css` et `offres.css` : cette feuille ne
 * fait qu'habiller le formulaire.
 */

main.pageDevisGroupe .offresSection--entete { padding-top: 128px; }

@media (max-width: 640px) {
  main.pageDevisGroupe .offresSection--entete { padding-top: 120px; }
}

.devisFormulaire {
  max-width: 760px;
  margin: 2.2rem 0 0;
}

.devisChamp { margin: 0 0 1.1rem; }

.devisChamp label {
  display: block;
  font-size: .88rem;
  font-weight: 600;
  margin: 0 0 .35rem;
  color: #2b2b2b;
}

.devisFacultatif { font-weight: 400; color: #8a8a8a; }

.devisChamp input,
.devisChamp select,
.devisChamp textarea {
  width: 100%;
  padding: .7rem .85rem;
  border: 1px solid #d9d2c5;
  border-radius: 8px;
  font: inherit;
  font-size: .95rem;
  color: #1E1E24;
  background: #fff;
}

.devisChamp textarea { resize: vertical; min-height: 120px; }

.devisChamp input:focus,
.devisChamp select:focus,
.devisChamp textarea:focus {
  outline: 2px solid #8A6A2C;
  outline-offset: 1px;
  border-color: #8A6A2C;
}

.devisChamp--faux input,
.devisChamp--faux select,
.devisChamp--faux textarea { border-color: #b03030; }

.devisAide {
  display: block;
  margin-top: .3rem;
  font-size: .8rem;
  color: #8a8a8a;
}

.devisErreur {
  display: block;
  margin-top: .3rem;
  font-size: .82rem;
  color: #b03030;
}

.devisDeux {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1rem;
}

@media (max-width: 640px) { .devisDeux { grid-template-columns: 1fr; } }

/* Le champ piège : hors de l'écran, hors du flux de tabulation, jamais
   annoncé. Ni `display:none` ni `hidden`, que certains robots repèrent. */
.devisPiege {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.devisActions { margin: 1.6rem 0 0; }

.devisMentions {
  margin: 1.2rem 0 0;
  font-size: .8rem;
  line-height: 1.6;
  color: #777;
  max-width: 62ch;
}

.devisAvis {
  margin: 1.6rem 0 0;
  padding: 1rem 1.2rem;
  border-radius: 8px;
  font-size: .92rem;
  line-height: 1.6;
  max-width: 760px;
}

.devisAvis--erreur { background: #fdf0f0; border-left: 3px solid #b03030; }
.devisAvis--attente { background: #faf7f1; border-left: 3px solid #8A6A2C; }

.devisConfirmation {
  margin: 2rem 0 0;
  padding: 1.6rem 1.8rem;
  border: 1px solid #e6e2da;
  border-top: 3px solid #8A6A2C;
  border-radius: 14px;
  max-width: 760px;
  background: #fff;
}

.devisConfirmationTitre { margin: 0 0 .6rem; font-size: 1.3rem; }
.devisConfirmation p { margin: 0 0 .8rem; line-height: 1.6; }
.devisConfirmationRetour { margin-top: 1.2rem; }

/* --- L'écran d'administration -------------------------------------------- */

.adminFiltres { margin: 1.2rem 0; font-size: .9rem; color: #777; }
.adminFiltres a { color: #5a5a5a; text-decoration: none; }
.adminFiltres a:hover { text-decoration: underline; }
.adminFiltres a.actif { color: #8A6A2C; font-weight: 700; }

.adminTable select {
  padding: .3rem .4rem;
  border: 1px solid #d9d2c5;
  border-radius: 6px;
  font: inherit;
  font-size: .85rem;
}

.adminTable .offresBouton { padding: .3rem .7rem; font-size: .8rem; }

.adminMessage td {
  background: #faf7f1;
  font-size: .88rem;
  line-height: 1.55;
  color: #4a4a4a;
}

/*
 * LA COQUILLE DES DEUX ÉCRANS QUI N'EN AVAIENT PAS.
 *
 * Écrit le 15/10/2026. `/admin/devis-groupe` et `/admin/cabinets-certifies`
 * employaient `.adminPage`, `.adminLarge` et `.adminTitre` — **trois classes
 * qui n'étaient définies dans aucune feuille**. Les deux écrans n'avaient donc
 * ni fond, ni carte, ni titre : ils rendaient leur contenu dans le flux de la
 * page, sous l'en-tête public du site, que les neuf autres écrans
 * d'administration n'affichent pas.
 *
 * Cela ne se voyait pas tant que les deux écrans étaient introuvables. La barre
 * de navigation les a mis sur le même chemin que les autres, et l'écart a sauté
 * aux yeux : bandeau doré du site, puis barre sombre d'administration.
 *
 * Les valeurs sont celles de `.container` et de `.content` dans
 * `admin-dashboard.css`, que ces deux écrans chargent déjà : il ne s'agit pas
 * d'inventer un second habillage, mais de rattacher ces pages au premier.
 */
.adminPage {
  min-height: 100vh;
  /* La charte du site, et non le dégradé violet du Next.js d'origine : cette
     feuille est chargée APRÈS `admin-dashboard.css`, elle l'emporterait. */
  background: var(--luxury-cream, #F9F5F0);
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  padding-bottom: 30px;
}

.adminLarge {
  margin: 25px;
  padding: 30px;
  background: #fff;
  border: 1px solid rgba(184, 134, 11, 0.12);
  border-radius: 12px;
  box-shadow: var(--luxury-shadow, 0 10px 30px rgba(15, 44, 82, 0.08));
}

/* La barre de navigation est au-dessus de la carte, donc enfant direct de
   `.adminPage` : elle garde sa propre marge et ne doit pas en recevoir deux. */
.adminPage > .adminNav {
  margin-top: 0;
  padding-top: 10px;
}

.adminTitre {
  margin: 0 0 25px;
  font-family: 'Playfair Display', 'Antic Didone', Georgia, serif;
  font-size: 28px;
  font-weight: 600;
  color: var(--luxury-navy, #0F2C52);
}
