/* Global Responsive Layout & Utilities
 * Breakpoints:
 * - mobile:  max-width 480px
 * - tablet:  max-width 768px
 * - laptop:  max-width 1024px
 * - desktop: max-width 1440px
 */

/* Box sizing and overflow safety */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Generic page containers */
.site-container,
.page-container,
.container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* Prevent media overflow */
img,
video,
canvas,
svg {
  max-width: 100%;
  height: auto;
}

/* Flexible grids (percentage / fr-based) */
.grid-flex {
  display: grid;
  gap: 1.5rem;
}

.grid-flex-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-flex-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-flex-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Mobile (max-width: 480px) */
@media (max-width: 480px) {
  .site-container,
  .page-container,
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .grid-flex-2,
  .grid-flex-3,
  .grid-flex-4 {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Tablet (max-width: 768px) */
@media (max-width: 768px) {
  .grid-flex-3,
  .grid-flex-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Laptop (max-width: 1024px) */
@media (max-width: 1024px) {
  .site-container,
  .page-container,
  .container {
    max-width: 960px;
  }
}

/* Desktop (max-width: 1440px) */
@media (max-width: 1440px) {
  .site-container,
  .page-container,
  .container {
    max-width: 1280px;
  }
}

/* =========================
 * Admin Layout Helpers
 * ========================= */

.admin-container {
  display: flex;
  min-height: 100vh;
}

.admin-sidebar {
  width: 240px;
  min-height: 100vh;
  flex-shrink: 0;
}

.admin-content {
  flex: 1;
  min-width: 0;
}

