/* ============================================
   RESPONSIVE — Mobile-First Perfection Layer
   Consolidates ALL mobile-specific rules.
   Loaded LAST so overrides are clean and safe.
   ============================================ */

/* ============================================
   BREAKPOINT: Tablets & Below (≤ 768px)
   ============================================ */
@media (max-width: 768px) {

  /* --- GLOBAL CONTAINERS & WRAPPERS --- */
  .container {
    padding-left: var(--space-4) !important;
    padding-right: var(--space-4) !important;
  }

  .page-content {
    padding-top: calc(var(--navbar-height) + var(--space-2));
  }

  /* --- NAVBAR --- */
  .navbar {
    height: 60px !important;
  }

  .navbar-inner {
    padding: 0 var(--space-4) !important;
  }

  .navbar-brand {
    gap: var(--space-2) !important;
  }

  .navbar-logo {
    height: 32px !important;
  }

  .navbar-title {
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
  }

  .navbar-actions {
    gap: var(--space-2) !important;
  }

  .hamburger {
    display: flex !important;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-circle);
    background: var(--bg-tertiary);
    border: 1px solid var(--border-light);
    padding: 0;
  }

  .hamburger span {
    width: 20px;
  }

  .mobile-menu {
    display: flex !important;
    flex-direction: column;
    width: 85% !important;
    max-width: 320px !important;
    height: 100vh !important;
    background: var(--bg-elevated) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border-left: 1px solid var(--border-medium) !important;
    padding: calc(60px + var(--space-4)) var(--space-5) var(--space-5) !important;
    gap: var(--space-2) !important;
    box-shadow: var(--shadow-2xl) !important;
  }

  .mobile-nav-link {
    display: flex !important;
    align-items: center !important;
    gap: var(--space-3) !important;
    padding: var(--space-3) var(--space-4) !important;
    font-size: var(--fs-sm) !important;
    font-weight: 600 !important;
    color: var(--text-secondary) !important;
    border-radius: var(--radius-lg) !important;
    text-decoration: none !important;
    transition: all var(--transition-fast) !important;
  }

  .mobile-nav-link:hover,
  .mobile-nav-link.active {
    background: var(--status-info-bg) !important;
    color: var(--g-blue) !important;
  }

  /* --- HERO SECTION --- */
  .hero {
    padding: var(--space-6) 0 var(--space-4) !important;
    text-align: center !important;
  }

  .hero-content {
    align-items: center !important;
    text-align: center !important;
  }

  .hero h1 {
    font-size: clamp(1.75rem, 6vw, 2.25rem) !important;
    line-height: 1.25 !important;
    letter-spacing: -0.5px !important;
  }

  .hero-subtitle,
  .hero-description {
    font-size: var(--fs-sm) !important;
    line-height: 1.5 !important;
    color: var(--text-secondary) !important;
  }

  .hero-actions {
    flex-direction: column !important;
    width: 100% !important;
    gap: var(--space-3) !important;
    margin-top: var(--space-4) !important;
  }

  .hero-actions .btn {
    width: 100% !important;
    justify-content: center !important;
    min-height: 48px !important;
    font-size: var(--fs-sm) !important;
  }

  .hero-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--space-2) !important;
    width: 100% !important;
    margin-top: var(--space-6) !important;
    padding: var(--space-3) var(--space-2) !important;
    background: var(--bg-elevated) !important;
    border-radius: var(--radius-xl) !important;
    border: 1px solid var(--border-light) !important;
  }

  .hero-stat-item {
    text-align: center !important;
  }

  .hero-stat-number {
    font-size: var(--fs-lg) !important;
    font-weight: 800 !important;
  }

  .hero-stat-label {
    font-size: 9px !important;
  }

  /* --- MODALS (Bottom Sheet Drawer on Mobile) --- */
  .modal-overlay {
    padding: 0 !important;
    align-items: flex-end !important;
    justify-content: center !important;
  }

  .modal {
    max-width: 100% !important;
    width: 100% !important;
    max-height: 90vh !important;
    border-radius: var(--radius-2xl) var(--radius-2xl) 0 0 !important;
    padding: var(--space-5) !important;
    margin: 0 !important;
    box-shadow: var(--shadow-2xl) !important;
    animation: mobileModalSlideUp 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
    position: relative !important;
  }

  .modal::before {
    content: '' !important;
    display: block !important;
    width: 36px !important;
    height: 4px !important;
    background: var(--border-medium) !important;
    border-radius: 4px !important;
    margin: 0 auto var(--space-3) auto !important;
  }

  @keyframes mobileModalSlideUp {
    from {
      transform: translateY(100%);
      opacity: 0.8;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  .modal-header {
    margin-bottom: var(--space-3);
    position: sticky;
    top: 0;
    background: var(--bg-elevated);
    z-index: 2;
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--border-light);
  }

  .modal-header h3,
  .modal-header h4 {
    font-size: var(--fs-lg) !important;
  }

  .modal-footer {
    position: sticky;
    bottom: 0;
    background: var(--bg-elevated);
    padding-top: var(--space-3);
    padding-bottom: env(safe-area-inset-bottom, var(--space-2));
    border-top: 1px solid var(--border-light);
  }

  .modal-actions {
    flex-direction: column !important;
    gap: var(--space-2) !important;
  }

  .modal-actions .btn {
    width: 100% !important;
    justify-content: center !important;
    min-height: 44px !important;
  }

  /* --- TOAST NOTIFICATIONS --- */
  .toast-container {
    right: var(--space-3) !important;
    left: var(--space-3) !important;
    top: 68px !important;
    width: auto !important;
  }

  .toast {
    width: 100% !important;
    font-size: var(--fs-xs) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-lg) !important;
  }

  /* --- TABLES (Horizontal touch scroll) --- */
  .table-wrapper {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    margin: 0 0 var(--space-4) 0 !important;
    border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border-light) !important;
  }

  .table {
    min-width: 600px !important;
    width: 100% !important;
  }

  .table th,
  .table td {
    padding: var(--space-3) !important;
    font-size: var(--fs-xs) !important;
    white-space: nowrap !important;
  }

  /* --- FORM INPUTS --- */
  .form-input,
  .form-select,
  .form-textarea {
    font-size: 16px !important; /* Prevents iOS auto-zoom */
    padding: var(--space-3) !important;
    border-radius: var(--radius-md) !important;
  }

  /* --- CARDS & HOVER STATES --- */
  .card {
    padding: var(--space-4) !important;
    border-radius: var(--radius-xl) !important;
  }

  .card:hover,
  .hover-lift:hover {
    transform: none !important;
  }

  /* --- BUTTON TOUCH TARGETS --- */
  .btn {
    min-height: 44px !important;
    padding: var(--space-3) var(--space-4) !important;
    border-radius: var(--radius-lg) !important;
  }

  .btn-sm {
    min-height: 38px !important;
    padding: var(--space-2) var(--space-3) !important;
    font-size: var(--fs-xs) !important;
  }

  .btn:active {
    transform: scale(0.97) !important;
    transition: transform 0.1s ease !important;
  }

  /* --- EVENTS PAGE & FILTER PILLS --- */
  .events-header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--space-3) !important;
  }

  .events-header h2 {
    font-size: var(--fs-xl) !important;
  }

  .event-filters,
  .filter-pills {
    display: flex !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    gap: var(--space-2) !important;
    padding-bottom: var(--space-2) !important;
    margin-bottom: var(--space-4) !important;
    flex-wrap: nowrap !important;
  }

  .event-filters::-webkit-scrollbar,
  .filter-pills::-webkit-scrollbar {
    display: none !important;
  }

  .filter-pill {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    padding: var(--space-2) var(--space-4) !important;
    font-size: var(--fs-xs) !important;
    border-radius: var(--radius-pill) !important;
  }

  .events-grid {
    grid-template-columns: 1fr !important;
    gap: var(--space-4) !important;
  }

  .event-card {
    border-radius: var(--radius-xl) !important;
  }

  .event-card h4 {
    font-size: var(--fs-base) !important;
  }

  .event-card-body {
    padding: var(--space-4) !important;
  }

  .event-card-footer {
    flex-wrap: wrap !important;
    gap: var(--space-2) !important;
  }

  /* --- EVENT DETAIL PAGE --- */
  .event-detail {
    padding: var(--space-4) !important;
  }

  .event-detail-header h1 {
    font-size: var(--fs-xl) !important;
    line-height: var(--lh-tight) !important;
  }

  /* --- PARTICIPANT DASHBOARD & DIGITAL ID CARD --- */
  .participant-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--space-5) !important;
    margin-top: var(--space-4) !important;
    width: 100% !important;
  }

  .id-card-viewport {
    width: 100% !important;
    max-width: 300px !important;
    height: 460px !important;
    margin: 0 auto !important;
    perspective: 1000px !important;
  }

  /* Compact button row layout for ID Card actions */
  .id-card-viewport + div,
  .participant-grid .id-card-viewport + div,
  [style*="max-width:320px"] {
    width: 100% !important;
    max-width: 320px !important;
    margin: var(--space-3) auto 0 auto !important;
  }

  #btn-download-full-pass {
    min-height: 46px !important;
    font-size: var(--fs-xs) !important;
  }

  /* 3-column sub action buttons row */
  #btn-download-full-pass + div {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--space-1) !important;
    width: 100% !important;
  }

  #btn-flip-card-action,
  #btn-download-front-card,
  #btn-download-qr-card {
    padding: var(--space-2) var(--space-1) !important;
    font-size: 11px !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
    min-height: 40px !important;
  }

  .profile-mobile-header {
    background: var(--bg-elevated);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-xl);
    padding: var(--space-4) !important;
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-4) !important;
  }

  .profile-mobile-header h2 {
    font-size: var(--fs-lg) !important;
    margin: 0 !important;
  }

  /* Student Stats Row on Mobile */
  .student-stats-row {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--space-2) !important;
    margin-bottom: var(--space-4) !important;
  }

  .student-stat-card {
    flex-direction: column !important;
    text-align: center !important;
    padding: var(--space-2) !important;
    justify-content: center !important;
    gap: var(--space-1) !important;
    border-radius: var(--radius-lg) !important;
  }

  .student-stat-card .icon-wrapper {
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    margin: 0 auto !important;
  }

  .student-stat-card .stat-num {
    font-size: var(--fs-base) !important;
    line-height: 1 !important;
  }

  .student-stat-card .stat-label {
    font-size: 8px !important;
    line-height: 1.2 !important;
  }

  /* Staff / Participant Navigation Tabs: Horizontal Touch Scroll Bar */
  .staff-nav-tabs {
    display: flex !important;
    gap: var(--space-1) !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    flex-wrap: nowrap !important;
    padding-bottom: var(--space-2) !important;
    margin-bottom: var(--space-4) !important;
    border-bottom: 1px solid var(--border-light) !important;
  }

  .staff-nav-tabs::-webkit-scrollbar {
    display: none !important;
  }

  .staff-tab-btn {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    padding: var(--space-2) var(--space-3) !important;
    font-size: var(--fs-xs) !important;
    border-bottom-width: 2px !important;
    min-height: 40px !important;
  }

  /* --- CERTIFICATE PAGE ON MOBILE --- */
  .cert-step-card {
    padding: var(--space-4) !important;
    border-radius: var(--radius-xl) !important;
  }

  .cert-step-header {
    gap: var(--space-3) !important;
    margin-bottom: var(--space-4) !important;
  }

  .cert-events-grid {
    grid-template-columns: 1fr !important;
    gap: var(--space-3) !important;
  }

  .cert-event-card {
    padding: var(--space-3) var(--space-4) !important;
    gap: var(--space-3) !important;
  }

  .cert-iframe {
    height: 320px !important;
    border-radius: var(--radius-lg) !important;
  }

  .cert-actions-bar {
    flex-direction: column !important;
    gap: var(--space-2) !important;
  }

  .cert-actions-bar .btn {
    width: 100% !important;
    justify-content: center !important;
  }

  /* --- ADMIN & STAFF DASHBOARDS ON MOBILE --- */
  .admin-layout {
    flex-direction: column !important;
  }

  .admin-sidebar {
    width: 100% !important;
    position: relative !important;
    top: 0 !important;
    height: auto !important;
    padding: var(--space-2) var(--space-3) !important;
    background: var(--bg-elevated) !important;
    border-bottom: 1px solid var(--border-light) !important;
  }

  .sidebar-nav {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    gap: var(--space-1) !important;
    padding-bottom: var(--space-1) !important;
  }

  .sidebar-nav::-webkit-scrollbar {
    display: none !important;
  }

  .sidebar-link {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    padding: var(--space-2) var(--space-3) !important;
    font-size: 11px !important;
    border-radius: var(--radius-pill) !important;
  }

  .stats-grid,
  .staff-summary-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--space-3) !important;
    margin-bottom: var(--space-4) !important;
  }

  .stat-card,
  .staff-stat-card {
    padding: var(--space-3) !important;
    flex-direction: column !important;
    text-align: center !important;
    gap: var(--space-2) !important;
    border-radius: var(--radius-lg) !important;
  }

  .stat-card-icon,
  .staff-stat-icon {
    width: 36px !important;
    height: 36px !important;
    margin: 0 auto !important;
  }

  .stat-card-value,
  .staff-stat-info .stat-val {
    font-size: var(--fs-xl) !important;
  }

  .stat-card-label,
  .staff-stat-info .stat-lbl {
    font-size: 9px !important;
  }

  /* --- FOOTER ON MOBILE --- */
  .footer {
    padding: var(--space-8) 0 var(--space-4) !important;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: var(--space-5) var(--space-4) !important;
  }

  .footer-bottom {
    flex-direction: column !important;
    gap: var(--space-3) !important;
    text-align: center !important;
    padding-top: var(--space-4) !important;
  }

  /* --- SCANNER OVERLAY ON MOBILE --- */
  .scanner-overlay {
    padding: var(--space-3) !important;
  }

  .scanner-frame {
    width: 100% !important;
    max-width: 290px !important;
  }
}

/* ============================================
   BREAKPOINT: Small Phones (≤ 400px)
   ============================================ */
@media (max-width: 400px) {
  .hero h1 {
    font-size: 1.6rem !important;
  }

  .hero-stats {
    grid-template-columns: 1fr !important;
    gap: var(--space-2) !important;
  }

  .student-stats-row {
    grid-template-columns: 1fr !important;
  }

  .student-stat-card {
    flex-direction: row !important;
    text-align: left !important;
    padding: var(--space-3) !important;
    gap: var(--space-3) !important;
  }

  .student-stat-card .icon-wrapper {
    margin: 0 !important;
  }

  .id-card-viewport {
    width: 260px !important;
    height: 400px !important;
  }

  .id-photo {
    width: 75px !important;
    height: 75px !important;
  }

  .stats-grid,
  .staff-summary-grid {
    grid-template-columns: 1fr !important;
  }

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

/* ============================================
   SAFE AREA INSETS (Notched devices)
   ============================================ */
@supports (padding: env(safe-area-inset-bottom)) {
  @media (max-width: 768px) {
    .footer-bottom {
      padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-2));
    }

    .mobile-menu {
      padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-4));
    }

    .modal-footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-3));
    }
  }
}

/* ============================================
   REDUCED MOTION (Accessibility)
   ============================================ */
@media (prefers-reduced-motion: reduce) {
  .card-tap-hint {
    animation: none !important;
  }

  .modal {
    animation: none !important;
    transition: none !important;
  }

  .btn:active,
  .card:active {
    transform: none !important;
  }
}
