/* CRM BlueIa · vue « Rendez-vous » (appointments) et composants partagés du module rdv-mail.
   Préfixes : .appointments- (vue), .rdvflow- (parts/rdv-flow.js), .mailmodal- (parts/mail-modal.js). */

/* --- Vue ----------------------------------------------------------------------------------------- */
.appointments-sync:not(:empty) { margin-bottom: var(--s-4); }
.appointments-intro { margin: 0 0 var(--s-3); max-width: 760px; }
.appointments-when .cell-main { white-space: nowrap; }
.appointments-kind { display: inline-flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); }
.appointments-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: var(--s-2); white-space: nowrap; }

/* --- Modale de clôture ----------------------------------------------------------------------------- */
.appointments-close__head { margin-bottom: var(--s-4); }
.appointments-close__choice { margin-bottom: var(--s-4); }
.appointments-close__choice .btn-result { background: var(--tone-bg); color: var(--tone-fg); border-color: var(--tone-line); }
.appointments-close__choice .btn-result:hover,
.appointments-close__choice .btn-result.is-selected { background: var(--tone); border-color: var(--tone); color: #fff; }
.appointments-close__panel { display: flex; flex-direction: column; gap: var(--s-4); }
.appointments-close__panel:empty { display: none; }

/* --- Modale de rattachement ------------------------------------------------------------------------ */
.appointments-link__appt { padding: var(--s-3) var(--s-4); border: 1px solid var(--line); border-radius: var(--r); background: var(--soft); margin-bottom: var(--s-4); }
.appointments-link__search { align-items: flex-end; gap: var(--s-2); margin-bottom: var(--s-3); }
.appointments-link__results { min-height: 160px; max-height: 360px; overflow-y: auto; }
.appointments-link__results.is-busy { opacity: .5; pointer-events: none; }
.appointments-link__count { margin-bottom: var(--s-2); }
.appointments-link__row { display: flex; align-items: center; gap: var(--s-3); min-height: 52px; padding: var(--s-2) var(--s-3); border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.appointments-link__row + .appointments-link__row { margin-top: var(--s-2); }
.appointments-link__row:hover { background: var(--hover); }

/* --- parts/rdv-flow.js ----------------------------------------------------------------------------- */
.rdvflow-lead, .mailmodal-lead { margin-bottom: var(--s-3); }
.rdvflow-choices { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.rdvflow-choice { display: flex; align-items: flex-start; gap: var(--s-3); min-height: 120px; padding: var(--s-4); text-align: left; font: inherit; color: var(--ink); cursor: pointer;
  background: var(--card); border: 1px solid var(--line-strong); border-radius: var(--r-lg); }
.rdvflow-choice:hover { background: var(--hover); border-color: var(--accent); }
.rdvflow-choice--primary { border-color: var(--accent); box-shadow: var(--shadow-1); }
.rdvflow-choice__icon { flex: none; color: var(--accent); }
.rdvflow-choice__text { display: flex; flex-direction: column; gap: var(--s-1); }
.rdvflow-choice__title { font-family: var(--font-title); font-weight: 600; font-size: var(--fs-md); }
.rdvflow-choice__sub { font-size: var(--fs-sm); color: var(--muted); line-height: 1.45; }
.rdvflow-steps { margin: 0; padding-left: var(--s-5); display: flex; flex-direction: column; gap: var(--s-4); }
.rdvflow-steps__label { font-weight: 600; }
.rdvflow-steps__hint { margin-top: 2px; }
.rdvflow-open { margin-top: var(--s-3); display: inline-flex; align-items: center; gap: var(--s-2); }
.rdvflow-quick { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.rdvflow-quick .chip { min-height: var(--control-h); }

/* --- parts/mail-modal.js --------------------------------------------------------------------------- */
.mailmodal-form .textarea { min-height: 260px; font-size: var(--fs); line-height: 1.5; }
.mailmodal-error:empty { display: none; }

@media (max-width: 900px) {
  .rdvflow-choices { grid-template-columns: 1fr; }
  .appointments-link__row { flex-wrap: wrap; }
}
