/* client-booking.css — owned by P14 (client booking).
   Scope: the four booking screens, recap and confirmation.
   Created empty by P00 (2026-10-11) so the cascade order is fixed before any
   rule lands: styles.css → primary-hub.css → primary-hub-day.css →
   notary-howto.css → hub-*.css → client-*.css, all before action-controls.css.
   new-sheets-tokens.test.mjs holds this sheet to tokens only: no literal colour,
   no off-scale px spacing, no px font-size, and every selector has a consumer. */

/* Four booking screens retain app.js's data-at/hidden gates. No new screen or
   consent rule: the rail and actions simply fit the space they are given. */
#day-dialog .dlg-x {
  width: var(--dialog-close-size); height: var(--dialog-close-size);
  min-width: var(--dialog-close-size); min-height: var(--dialog-close-size);
  margin-block-start: var(--dialog-close-inset); margin-inline-end: var(--dialog-close-inset);
}
#day-dialog .dlg-x:is(:hover,:active) { transform: none; }
#day-dialog .day-head,
#day-dialog[data-interaction='preview'] .day-head { padding-inline-end: var(--dialog-close-clearance); }
#day-dialog .day-heading { min-width: 0; overflow-wrap: anywhere; }
#offer-form .book-rail {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(calc(var(--control-height) * 3), 100%), 1fr));
  gap: var(--space-4);
}
#offer-form .book-rail-b { min-height: var(--control-height); gap: var(--space-4); padding: var(--space-4); }
#offer-form .book-rail-t { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
#offer-form .book-rail-b:disabled { opacity: 1; color: var(--ink-muted); cursor: not-allowed; }
#offer-form .book-rail-b:not(:disabled):hover { background: var(--action-tint); }
#offer-form .book-rail-b:focus-visible { outline: var(--space-1) solid var(--ring); outline-offset: var(--space-1); }
#offer-form .book-step { min-width: 0; }
#offer-form .itip-btn { min-width: var(--control-height); min-height: var(--control-height); }
#offer-form .book-nav { flex-wrap: wrap; align-items: stretch; gap: var(--space-4); }
#offer-form .book-nav .btn { min-height: var(--control-height); max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
#offer-form .book-nav .book-fwd,
#offer-form .book-nav #offer-submit { flex: 1 1 calc(var(--control-height) * 4); min-width: 0; }
#offer-form .book-nav .book-back { flex: 0 1 auto; }
#offer-form .errors { font-size: var(--type-body); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
#offer-form .offer-hint,
#offer-form .consent-line { font-size: var(--type-h4); line-height: var(--type-body-lh); overflow-wrap: anywhere; }
#offer-form .book-identity { min-width: 0; }
#offer-form .book-identity-title,
#offer-form #offer-devis { overflow-wrap: anywhere; }
#offer-form button[aria-busy="true"] { cursor: progress; }
#day-dialog #dossier-next { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  #day-dialog .day-head,
  #day-dialog[data-interaction='preview'] .day-head { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-6); }
  #day-dialog .day-date-edit-btn { min-height: var(--control-height); max-width: 100%; white-space: normal; }
  #offer-form .book-nav .book-back { flex: 1 1 auto; }
}
