/* ═══════════════════════════════════════════════════════════════
   LAYOUT — Page shell, grid utilities, consolidated breakpoints
   RobotBets Design System v2.0
   ═══════════════════════════════════════════════════════════════

   Breakpoints (mobile-first, min-width):
     sm:  640px   — Large phones / small tablets
     md:  768px   — Tablets
     lg:  1024px  — Laptops
     xl:  1280px  — Desktops
   ═══════════════════════════════════════════════════════════════ */


/* ── PAGE SHELL ────────────────────────────────────────────── */

.rb-page-shell {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space-4);
  padding-right: var(--space-4);
  padding-bottom: var(--space-12);
}

.rb-page-shell--narrow {
  max-width: 800px;
}

.rb-page-shell--wide {
  max-width: 1600px;
}

.rb-page-shell--full {
  max-width: none;
}

@media (min-width: 640px) {
  .rb-page-shell {
    padding-left: var(--space-5);
    padding-right: var(--space-5);
  }
}

@media (min-width: 1024px) {
  .rb-page-shell {
    padding-left: var(--space-6);
    padding-right: var(--space-6);
  }
}


/* ── GRID ──────────────────────────────────────────────────── */

.rb-grid {
  display: grid;
  gap: var(--space-4);
}

/* Fixed column grids */
.rb-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

.rb-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.rb-grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

/* Auto-fit (responsive) grids */
.rb-grid--auto-sm {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.rb-grid--auto {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.rb-grid--auto-lg {
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
}

/* Gap variants */
.rb-grid--gap-2 {
  gap: var(--space-2);
}

.rb-grid--gap-6 {
  gap: var(--space-6);
}

.rb-grid--gap-8 {
  gap: var(--space-8);
}

/* Responsive: collapse to fewer columns */
@media (max-width: 1023px) {
  .rb-grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .rb-grid--2,
  .rb-grid--3,
  .rb-grid--4 {
    grid-template-columns: 1fr;
  }
}


/* ── FLEX UTILITIES ────────────────────────────────────────── */

.rb-flex {
  display: flex;
}

.rb-flex--col {
  flex-direction: column;
}

.rb-flex--wrap {
  flex-wrap: wrap;
}

.rb-flex--center {
  align-items: center;
  justify-content: center;
}

.rb-flex--between {
  align-items: center;
  justify-content: space-between;
}

.rb-flex--gap-2 {
  gap: var(--space-2);
}

.rb-flex--gap-3 {
  gap: var(--space-3);
}

.rb-flex--gap-4 {
  gap: var(--space-4);
}

.rb-flex--gap-6 {
  gap: var(--space-6);
}


/* ── SPACING UTILITIES ─────────────────────────────────────── */

.rb-mt-0 { margin-top: 0; }
.rb-mt-2 { margin-top: var(--space-2); }
.rb-mt-4 { margin-top: var(--space-4); }
.rb-mt-6 { margin-top: var(--space-6); }
.rb-mt-8 { margin-top: var(--space-8); }

.rb-mb-0 { margin-bottom: 0; }
.rb-mb-2 { margin-bottom: var(--space-2); }
.rb-mb-4 { margin-bottom: var(--space-4); }
.rb-mb-6 { margin-bottom: var(--space-6); }
.rb-mb-8 { margin-bottom: var(--space-8); }

.rb-p-0 { padding: 0; }
.rb-p-4 { padding: var(--space-4); }
.rb-p-5 { padding: var(--space-5); }
.rb-p-6 { padding: var(--space-6); }


/* ── SECTION ───────────────────────────────────────────────── */

.rb-section {
  margin-bottom: var(--space-6);
}

.rb-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.rb-section__title {
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--rb-text-primary);
  margin: 0;
}

.rb-section__subtitle {
  font-size: var(--text-sm);
  color: var(--rb-text-secondary);
  margin: var(--space-1) 0 0;
}


/* ── RESPONSIVE SHOW/HIDE ──────────────────────────────────── */

.rb-hide-mobile {
  display: none;
}

@media (min-width: 768px) {
  .rb-hide-mobile {
    display: initial;
  }

  .rb-hide-desktop {
    display: none;
  }
}


/* ── SCROLL CONTAINER ──────────────────────────────────────── */

.rb-scroll-x {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--rb-border-strong) transparent;
}

.rb-scroll-x::-webkit-scrollbar {
  height: 6px;
}

.rb-scroll-x::-webkit-scrollbar-track {
  background: transparent;
}

.rb-scroll-x::-webkit-scrollbar-thumb {
  background: var(--rb-border-strong);
  border-radius: 0;
}
