/*
 * Groupes, séminaires, privatisations (R6, E9, A4) : page publique et demande de devis, espace de
 * l'organisateur (devis, règlement, répartition), tableau et fiche de l'équipe, programme des participants.
 * Préfixe « groups- ».
 */

/* Origine « groupe » sur le planning et les listes de séjours. */
.staff { --ops-src-group: #5b6f2e; }
.ops-src--group { --src: var(--ops-src-group); }

/* --- Page publique ------------------------------------------------------------------------ */

.groups-hero { background: linear-gradient(180deg, #d9e7e2 0%, var(--sand) 100%); border-bottom: 1px solid var(--line); }
.groups-hero__inner { padding: clamp(40px, 8vw, 88px) var(--space-4) clamp(28px, 5vw, 56px); max-width: 780px; margin-left: auto; margin-right: auto; }
.groups-hero__inner .btn { align-self: flex-start; }

.groups-offer { list-style: none; margin: 0; padding: 0; }
.groups-offer h3 { font-size: 1.05rem; }

.groups-steps-section { background: var(--sand-2); }
.groups-steps { list-style: none; margin: 0; padding: 0; counter-reset: groups-step; }
.groups-steps li { position: relative; padding-top: calc(var(--space-5) + 28px); }
.groups-steps li::before {
  counter-increment: groups-step; content: counter(groups-step);
  position: absolute; top: var(--space-4); left: var(--space-5);
  display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 999px;
  background: var(--sea); color: var(--on-sea); font-weight: 700; font-size: 0.9rem;
}

.groups-form { gap: var(--space-4); }
.groups-optional { font-weight: 400; font-size: 0.85rem; }
.groups-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.groups-fieldset legend { margin-bottom: 6px; padding: 0; }
.groups-trap { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.groups-home { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4); }
.groups-home > .stack { flex: 1 1 320px; }

/* --- Espace de l'organisateur ----------------------------------------------------------- */

.groups-space__main { max-width: 760px; padding-top: var(--space-5); padding-bottom: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); }
.groups-space__head h1 { font-size: clamp(1.6rem, 4.5vw, 2.1rem); }
.groups-h2 { display: flex; align-items: center; gap: var(--space-2); font-family: var(--font-sans); font-size: 1.08rem; font-weight: 700; }
.groups-h2 .icon { color: var(--sea); }
.groups-warn { color: var(--warn); }
.groups-amounts dd { text-align: right; }
.groups-iban { word-break: break-all; letter-spacing: 0.02em; }

.groups-rooming { display: flex; flex-direction: column; }
.groups-rooming > li.groups-rooming__item { display: grid; grid-template-columns: 1fr; gap: var(--space-2); align-items: start; padding: var(--space-4) 0; }
.groups-rooming__unit { display: flex; flex-direction: column; }
@media (min-width: 700px) {
  .groups-rooming > li.groups-rooming__item { grid-template-columns: minmax(140px, 0.8fr) minmax(180px, 1fr); }
  .groups-rooming__item .groups-copy { grid-column: 1 / -1; }
}

.groups-copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.groups-link {
  display: block; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--sand-2); color: var(--ink-2);
  font-size: 0.82rem; overflow-wrap: anywhere; user-select: all;
}

/* --- Devis et facture (imprimables) ---------------------------------------------------------- */

.groups-doc { display: flex; flex-direction: column; gap: var(--space-5); }
.groups-doc__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); }
.groups-doc__meta { text-align: right; align-items: flex-end; }
.groups-doc__meta h1 { font-size: 1.7rem; }
.groups-doc__parties { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.groups-doc__table td:first-child { min-width: 180px; }
.groups-doc__totals { margin-left: auto; min-width: min(100%, 320px); }
.groups-doc__totals dd { text-align: right; }
.groups-doc__grand { font-weight: 700; color: var(--ink); font-size: 1.05rem; }
.groups-doc__h2 { font-family: var(--font-sans); font-size: 0.95rem; font-weight: 700; }
.groups-doc__conditions p + p { margin-top: var(--space-2); }
.groups-doc__accepted { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); background: var(--ok-soft); color: var(--ok); font-weight: 600; }
@media (max-width: 560px) {
  .groups-doc__meta { text-align: left; align-items: flex-start; }
}

@media print {
  body:has(.groups-doc) .staff-side, body:has(.groups-doc) .staff-top, body:has(.groups-doc) .staff-tabbar,
  body:has(.groups-doc) .public-header, body:has(.groups-doc) .public-footer, body:has(.groups-doc) .flash,
  .groups-no-print { display: none !important; }
  body:has(.groups-doc) { background: #fff; }
  body:has(.groups-doc) .staff-body { margin-left: 0; }
  body:has(.groups-doc) .staff-main, .groups-space__main { padding: 0; max-width: none; }
  .groups-doc { border: 0; box-shadow: none; padding: 0; }
  .groups-doc .table-wrap { overflow: visible; }
}

/* --- Programme -------------------------------------------------------------------------------- */

.groups-day + .groups-day { margin-top: var(--space-3); }
.groups-day__title { font-family: var(--font-sans); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.groups-programme > li { align-items: flex-start; }
.groups-programme__time { min-width: 4.6em; font-weight: 700; color: var(--sea); display: flex; flex-direction: column; line-height: 1.3; }
.groups-programme__day { font-size: 0.75rem; font-weight: 650; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.groups-programme > li.is-today .groups-programme__day { color: var(--sea); }
.groups-edit > summary { cursor: pointer; color: var(--sea); min-height: 32px; display: inline-flex; align-items: center; }
.groups-edit[open] { padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--sand); }
.groups-edit[open] > summary { margin-bottom: var(--space-2); }

/* --- Tableau de l'équipe ------------------------------------------------------------------------ */

.groups-board { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.groups-board__empty { padding: var(--space-2) var(--space-1); }
.groups-cards { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.groups-card { display: flex; flex-direction: column; gap: 4px; }
.groups-card__top { display: flex; justify-content: space-between; gap: var(--space-2); align-items: flex-start; }
.groups-card__name { font-size: 1.02rem; line-height: 1.3; }
.groups-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--space-2); margin-top: 4px; }

.groups-notice { padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: var(--warn-soft); color: var(--warn); }
.groups-notice--danger { background: var(--danger-soft); color: var(--danger); }

.groups-units { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: var(--space-3); margin: 0; min-width: 0; }
.groups-units legend { padding: 0 6px; }
.groups-units__grid { display: grid; gap: 2px var(--space-3); grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
.groups-unit { min-height: var(--tap); align-items: center; }
.groups-unit input { margin-top: 0; }
.groups-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.groups-bookings .badge { flex: none; }

/* Lignes du devis : une carte par ligne sur téléphone, une rangée sur grand écran. */
.groups-lines { display: flex; flex-direction: column; gap: var(--space-3); }
.groups-line {
  display: grid; gap: var(--space-2) var(--space-3); margin: 0; min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--sand);
}
.groups-line__label, .groups-line__warn, .groups-line__type { grid-column: 1 / -1; }
.groups-line .field > label { font-size: 0.8rem; }
.groups-line__remove { align-self: end; min-height: var(--tap); align-items: center; }
.groups-line__remove input { margin-top: 0; }
@media (min-width: 1100px) {
  .groups-line { grid-template-columns: 150px minmax(200px, 2.4fr) 150px 84px 84px 120px 92px auto; align-items: end; }
  .groups-line__label, .groups-line__type { grid-column: auto; }
}

.groups-block { display: block; }
.groups-wrap-list > li { flex-wrap: wrap; }
