/* ============================================================
   উন্নয়ন - Responsive Styles (Mobile First)
   Breakpoints: Tablet ≤ 1024px, Mobile ≤ 640px
   ============================================================ */

/* ---------- Tablet: ≤ 1024px ---------- */
@media (max-width: 1024px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }

  .pricing-grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .price-card.popular { order: -1; }

  .subject-grid { grid-template-columns: repeat(3, 1fr); }

  .footer-grid { grid-template-columns: 1fr 1fr; }

  .viewer-layout { grid-template-columns: 260px 1fr; }

  .section { padding: 58px 0; }
}

/* ---------- Sidebar collapsible on tablet ---------- */
@media (max-width: 900px) {
  .viewer-layout { grid-template-columns: 1fr; }

  .viewer-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(320px, 85vw);
    border-radius: 0;
    z-index: 2000;
    transform: translateX(-105%);
    transition: transform 0.3s ease;
    overflow-y: auto;
  }

  .viewer-sidebar.open { transform: translateX(0); }

  .sidebar-close { display: block; }
  .sidebar-open-btn { display: inline-flex; }
  .class-list { max-height: none; }

  .sidebar-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.5);
    z-index: 1999;
    display: none;
  }

  .sidebar-backdrop.show { display: block; }
}

/* ---------- Mobile navbar: ≤ 860px ---------- */
@media (max-width: 860px) {
  .nav-toggle { display: flex; }

  .nav-links {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #111827;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 14px 5% 22px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    display: none;
    box-shadow: var(--shadow-lg);
  }

  .nav-links.open { display: flex; }

  .nav-links > li > a {
    display: block;
    padding: 13px 14px;
    font-size: 1rem;
  }

  .nav-login-btn { width: 100%; margin-top: 6px; }

  .nav-user-btn { width: 100%; justify-content: center; }
  .nav-user-name { max-width: 180px; }

  .nav-dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
    box-shadow: none;
    margin-top: 8px;
    background: rgba(255, 255, 255, 0.06);
  }

  .nav-dropdown.open { display: block; }

  .nav-dropdown-item { color: #e5e7eb; }
  .nav-dropdown-item:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
}

/* ---------- Mobile: ≤ 640px ---------- */
@media (max-width: 640px) {
  .section { padding: 46px 0; }
  .section-head { margin-bottom: 30px; }

  .grid-4,
  .grid-3,
  .grid-2 { grid-template-columns: 1fr; }

  .subject-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .subject-card { padding: 16px; }

  .hero { padding: 66px 0 84px; }
  .hero-actions .btn { width: 100%; }
  .hero-stats { gap: 26px; margin-top: 38px; }

  .footer-grid { grid-template-columns: 1fr; gap: 26px; }

  .btn { width: auto; }
  .btn-block { width: 100%; }

  .form-card,
  .auth-card { padding: 28px 20px; }

  .chapter-row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px;
  }

  .chapter-row .btn { width: 100%; }

  .video-meta { padding: 18px; }

  .admin-card { flex-direction: column; }
  .admin-card .who { min-width: 0; }
  .admin-actions { width: 100%; }
  .admin-actions .btn { flex: 1; min-width: 140px; }

  .modal { padding: 22px 18px; }

  .toast-container { left: 16px; right: 16px; top: 76px; }
  .toast { max-width: none; }

  .status-actions .btn { width: 100%; }

  .cta-buttons .btn { width: 100%; }

  .member-card .row { flex-direction: column; align-items: flex-start; }

  .quick-start .btn { width: 100%; }

  .price .amount { font-size: 2.5rem; }

  .week-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 8px; }
  .week-tab { flex-shrink: 0; }
}

/* ---------- Small mobile: ≤ 400px ---------- */
@media (max-width: 400px) {
  .subject-grid { grid-template-columns: 1fr; }
  .nav-user-name { max-width: 110px; }
  .logo { font-size: 1.3rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
