/* =====================================================
   Life School — Shared Mobile / Responsive Styles
   Used across all LS pages. Inlined per-template for now.
   ===================================================== */

/* ── Responsive breakpoints ── */
@media (max-width: 640px) {
  .header { padding: 12px 16px !important; }
  .header h1 { font-size: 16px !important; }
  .content { padding: 20px 16px 80px !important; }
  .page-title { font-size: 20px !important; }
  .page-subtitle { font-size: 13px !important; }
}

@media (max-width: 480px) {
  .header h1 { font-size: 14px !important; }
  .content { padding: 16px 12px 80px !important; }
}

/* ── Hamburger nav (parent + other portals) ── */
.ls-hamburger-btn {
  display: none;
  background: rgba(255,255,255,0.15);
  border: none;
  color: white;
  font-size: 22px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  line-height: 1;
  flex-shrink: 0;
}
.ls-mobile-nav {
  display: none;
  position: fixed;
  top: 60px;
  right: 0;
  left: 0;
  background: linear-gradient(135deg, #2d1b69, #4c1d95);
  padding: 16px 20px;
  z-index: 99;
  flex-direction: column;
  gap: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.ls-mobile-nav.open { display: flex; }
.ls-mobile-nav a {
  color: white;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
  padding: 12px 16px;
  border-radius: 10px;
  display: block;
}
.ls-mobile-nav a:hover { background: rgba(255,255,255,0.15); }
.ls-mobile-nav .nav-divider {
  width: 100%;
  height: 1px;
  background: rgba(255,255,255,0.15);
  margin: 6px 0;
}
@media (max-width: 640px) {
  .ls-nav-links { display: none !important; }
  .ls-hamburger-btn { display: flex !important; align-items: center; justify-content: center; }
}

/* ── Min tap target: 44px ── */
button, .btn, a[role="button"] {
  min-height: 44px;
  min-width: 44px;
}

/* ── Scrollbar hiding for horizontal scroll rows ── */
.hide-scrollbar { scrollbar-width: none; }
.hide-scrollbar::-webkit-scrollbar { display: none; }

/* ── Form inputs mobile ── */
@media (max-width: 480px) {
  .form-row { flex-direction: column; }
  .form-row input, .form-row select { min-width: 100%; font-size: 16px; }
}

/* ── Cards mobile ── */
@media (max-width: 480px) {
  .card { padding: 20px !important; border-radius: 14px !important; }
  .students-grid { grid-template-columns: 1fr !important; }
  .quests-list { grid-template-columns: 1fr !important; }
  .stats-row { gap: 8px !important; }
}

/* ── Header right nav (parent pages) ── */
.ls-header-right { display: flex; gap: 12px; align-items: center; }
@media (max-width: 640px) {
  .ls-header-right a { display: none; }
  .ls-header-right span { display: none; }
}