/* Admin portal — mobile overrides (sidebar, stat grid) */
body.admin-app {
  overflow-x: hidden;
}

body.admin-nav-open {
  overflow: hidden;
}

@media (max-width: 900px) {
  body.admin-app .sidebar {
    position: fixed !important;
    top: 0;
    left: 0;
    height: 100dvh;
    width: min(268px, 88vw) !important;
    min-width: 0 !important;
    max-width: 88vw;
    transform: translateX(-100%);
    transition: transform 0.26s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 70;
    flex: none !important;
    background: var(--surface);
    border-right: 1px solid var(--border);
    box-shadow: none;
    opacity: 1 !important;
  }

  body.admin-app .sidebar.mobile-open {
    transform: translateX(0);
    box-shadow: var(--shadow-lg);
  }

  body.admin-app .sidebar:hover {
    width: min(268px, 88vw) !important;
  }

  body.admin-app .sidebar:not(.mobile-open) {
    pointer-events: none;
  }

  body.admin-app .sidebar.mobile-open {
    pointer-events: auto;
  }

  body.admin-app .sidebar .sb-nm,
  body.admin-app .sidebar .nav-lbl,
  body.admin-app .sidebar .ni-label,
  body.admin-app .sidebar .sb-user-info,
  body.admin-app .sidebar .sb-signout-lbl {
    opacity: 0;
    transition: none;
  }

  body.admin-app .sidebar .ni-badge {
    opacity: 0;
    transition: none;
  }

  body.admin-app .sidebar.mobile-open .sb-nm,
  body.admin-app .sidebar.mobile-open .nav-lbl,
  body.admin-app .sidebar.mobile-open .ni-label,
  body.admin-app .sidebar.mobile-open .sb-user-info,
  body.admin-app .sidebar.mobile-open .sb-signout-lbl,
  body.admin-app .sidebar.mobile-open .ni-badge.show {
    opacity: 1;
  }

  body.admin-app .sb-overlay {
    z-index: 65;
    backdrop-filter: blur(2px);
  }

  body.admin-app .sg4,
  body.admin-app .sg3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
  }

  body.admin-app .stat-card {
    padding: 12px 14px;
    min-width: 0;
  }

  body.admin-app .s-val {
    font-size: clamp(18px, 5vw, 22px);
    word-break: break-word;
  }

  body.admin-app .sk-g4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 360px) {
  body.admin-app .sg4,
  body.admin-app .sg3 {
    gap: 8px;
  }

  body.admin-app .stat-card {
    padding: 10px 12px;
  }
}
