/* Shared responsive refinements. Authentication and booking logic are unchanged. */
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; }
.shell > *, .main, .container, .panel, .field, .grid > *, .form-grid > * { min-width: 0; }
.table-wrap, .table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
button, a, input, select, textarea { touch-action: manipulation; }
:focus-visible { outline: 3px solid #c96f4a; outline-offset: 3px; }
@media (max-width: 900px) {
  .nav-inner, .nav, .top { flex-wrap: wrap; gap: 12px; }
  .nav-links { flex-wrap: wrap; gap: 10px; }
  .nav-links > a:not(.btn) { display: inline-flex; }
  .nav-links > a { min-height: 44px; align-items: center; }
  .site-nav { position: relative; }
  .shell { grid-template-columns: minmax(0, 1fr); }
  .sidebar { position: relative; height: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .sidebar .logo-wrap, .sidebar .side-title, .sidebar .sidebar-footer { grid-column: 1 / -1; }
  .sidebar .logo-wrap { padding-bottom: 12px; }
  .sidebar .side-title { margin: 12px 10px 4px; }
  .sidebar-footer { position: static; margin-top: 10px; }
  .nav-btn { margin: 0; overflow-wrap: anywhere; }
  .modal { padding: 12px; }
  .modal-card { max-height: 90dvh; }
}
@media (max-width: 620px) {
  body { overflow-wrap: anywhere; }
  .container { width: calc(100% - 28px); }
  .nav-inner { padding-top: 10px; padding-bottom: 10px; }
  .nav-links { width: 100%; }
  .nav-links .btn { flex: 1 1 auto; }
  .hero h1 { font-size: clamp(36px, 10vw, 48px); }
  .hero { padding-top: 36px; }
  .hero-grid, .portal-header, .editorial-grid { gap: 28px; }
  .wrap { padding-left: 14px; padding-right: 14px; }
  .wrap > .card { padding: 24px 18px; }
  h1 { overflow-wrap: normal; font-size: clamp(28px, 8vw, 38px); }
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size: 16px; min-width: 0; max-width: 100%; }
  input:not([type=checkbox]):not([type=radio]), select { min-height: 44px; }
  button, .btn, .logout { min-height: 44px; white-space: normal; }
  .actions, .form-actions, .rowlinks, .panel-head, .section-head, .footer { flex-wrap: wrap; gap: 12px; }
  .phone-row { grid-template-columns: minmax(0, 1fr); }
  .cards, .finance-cards, .pipeline-grid, .perf-grid, .detail-grid, .grid, .preview-grid, .summary { grid-template-columns: minmax(0, 1fr); }
  .availability-form { grid-template-columns: minmax(0, 1fr); }
  .main { padding: 22px 14px; }
  .topbar h1 { font-size: 32px; }
  .pill, .search { max-width: 100%; }
  .search { width: 100%; }
  .modal-body { padding: 16px; }
  .modal-head { gap: 12px; }
  .modal-head h3 { min-width: 0; }
  .close { min-width: 44px; flex-shrink: 0; }
  .detail.full { grid-column: auto; }
  .grid > .full, .preview-grid > .full { grid-column: 1 / -1; }
  .modal-card input, .modal-card select, .modal-card textarea { min-width: 0 !important; }
  .table-wrap::before, .table-scroll::before {
    content: "Faites glisser le tableau pour voir toutes les colonnes →";
    display: block; padding: 12px; width: min(100%, 360px);
    color: #69747d; font-size: 12px; line-height: 1.5;
  }
  .form-error { margin-left: 18px; margin-right: 18px; }
  .success-panel { padding: 32px 20px; }
  .diagnostic { overflow-wrap: anywhere; }
  .table-wrap, .table-scroll, .panel { -webkit-overflow-scrolling: touch; }
}
