/* Global safe responsive layer (non-destructive) */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
  height: auto;
}

/* Keep mobile inputs usable without forcing all links/buttons */
@media (max-width: 900px) {
  input,
  select,
  textarea {
    font-size: 16px !important;
  }
}

/* Front + user pages: only safe layout constraints */
@media (max-width: 992px) {
  body.front-unified .container,
  body.front-unified .wrap,
  body.front-unified .mobile-container,
  body.user-unified .container,
  body.user-unified .wrap,
  body.user-unified .mobile-container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.front-unified .side-nav,
  body.user-unified .side-nav {
    width: min(92vw, 360px) !important;
    max-width: 92vw !important;
  }

  body.front-unified table,
  body.user-unified table {
    display: block;
    width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 640px) {
  body.front-unified .user-dropdown,
  body.user-unified .user-dropdown,
  .global-user-dropdown {
    width: min(82vw, 200px) !important;
    min-width: 0 !important;
    right: 0 !important;
  }
}

/* Admin pages */
@media (max-width: 992px) {
  .admin-unified table {
    display: block;
    width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  .admin-unified .grid,
  .admin-unified .cards,
  .admin-unified .stats,
  .admin-unified .stats-grid,
  .admin-unified .mini {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .admin-unified [style*="grid-template-columns:repeat(4"],
  .admin-unified [style*="grid-template-columns: repeat(4"],
  .admin-unified [style*="grid-template-columns:repeat(3"],
  .admin-unified [style*="grid-template-columns: repeat(3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .admin-unified .grid,
  .admin-unified .cards,
  .admin-unified .stats,
  .admin-unified .stats-grid,
  .admin-unified .mini {
    grid-template-columns: 1fr !important;
  }

  .admin-unified [style*="grid-template-columns:repeat(4"],
  .admin-unified [style*="grid-template-columns: repeat(4"],
  .admin-unified [style*="grid-template-columns:repeat(3"],
  .admin-unified [style*="grid-template-columns: repeat(3"],
  .admin-unified [style*="grid-template-columns:repeat(2"],
  .admin-unified [style*="grid-template-columns: repeat(2"] {
    grid-template-columns: 1fr !important;
  }

  .admin-unified .top,
  .admin-unified .filters,
  .admin-unified .actions,
  .admin-unified .toolbar,
  .admin-unified form.inline {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  .admin-unified input,
  .admin-unified select,
  .admin-unified textarea,
  .admin-unified button,
  .admin-unified .btn {
    width: 100% !important;
    max-width: 100% !important;
  }
}
