/* =====================================================================
   responsive.css — mobile-first breakpoint overrides
   Loaded last so it wins the cascade for layout/visibility overrides.
   ===================================================================== */

@media (max-width: 1200px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .mini-cards-grid { grid-template-columns: 1fr; }
  .dash-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .sidebar {
    transform: translateX(-100%);
    width: min(280px, 82vw);
  }
  .sidebar.mobile-open { transform: translateX(0); }
  .sidebar.collapsed { width: min(280px, 82vw); }
  .sidebar-collapse-btn { display: none; }

  .main-area, .main-area.sidebar-collapsed { margin-left: 0; }

  .navbar-menu-btn { display: flex; }
  .navbar-search { display: none; }
  .page-title-mobile { display: block; }
}

@media (max-width: 720px) {
  .content { padding: 18px; }
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .stat-card { padding: 16px; }
  .stat-value { font-size: 24px; }
  .page-header { flex-direction: column; align-items: stretch; }
  .page-header-actions { width: 100%; }
  .page-header-actions .btn { flex: 1; }
  .panel { padding: 16px; }
  .table-toolbar { flex-direction: column; align-items: stretch; }
  .table-search { max-width: 100%; }
}

@media (max-width: 520px) {
  .stats-grid { grid-template-columns: 1fr; }
  .navbar { padding: 0 14px; }
  .login-card { max-width: 100%; }
}
