/*!
 * FILE: public/assets/ui/css/99-layout-stability.css
 *
 * PURPOSE / ZWECK:
 * - Letzte globale Sicherheitsstufe gegen Rechtsverschiebung und Seiten-Overflow.
 * - Spezielle Breitenstabilität für /admin/tables und /staff/tables.
 *
 * DOM-VERTRÄGE:
 * - #restaurantTablesBoard
 * - #rtDaySlider und dessen .splide__track/.splide__list
 *
 * BEWUSST NICHT:
 * - Keine Tables-Fachlogik.
 * - Keine JavaScript-Verträge.
 */

html {
  overflow-x: clip !important;
  overflow-y: auto;
}

/* The viewport remains the sole vertical scroll owner on every canonical route. */
body {
  overflow-x: clip !important;
  overflow-y: visible;
}

.ev-shell > .ev-footer,
.ev-footer {
  margin-left: 0 !important;
}

.ev-shell,
.ev-main {
  min-width: 0 !important;
}

body.rt-tables-page .ev-main,
body:has(#restaurantTablesBoard) .ev-main {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: clamp(11px, 1.5vw, 20px) !important;
  overflow: hidden;
}

body.rt-tables-page .ev-footer,
body:has(#restaurantTablesBoard) .ev-footer {
  width: 100% !important;
  margin-left: 0 !important;
}

#restaurantTablesBoard,
#restaurantTablesBoard > .card,
#restaurantTablesBoard > .card > .content,
#rtDaySlider,
#rtDaySlider .splide__track,
#rtRackMount,
#rtAreas {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

#restaurantTablesBoard {
  overflow: hidden;
}

#rtDaySlider {
  overflow: hidden;
}

#rtDaySlider .splide__track {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

#rtDaySlider .splide__list {
  max-width: none !important;
}

#rtFilterForm,
#restaurantTablesBoard .row {
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 1099.98px) {
  body.rt-tables-page .ev-main,
  body:has(#restaurantTablesBoard) .ev-main {
    padding: 11px !important;
  }
}

@media (max-width: 640px) {
  body.rt-tables-page .ev-main,
  body:has(#restaurantTablesBoard) .ev-main {
    padding: 8px !important;
  }

  #restaurantTablesBoard > .card > .content {
    padding: 13px !important;
  }
}
