/* Минимальные стили */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main {
  flex: 1;
}
.card-title a {
  color: #0d6efd;
}
.card-title a:hover {
  text-decoration: underline !important;
}
.badge {
  font-weight: 500;
}

/* ============================================================
   Мобильная вёрстка
   ============================================================ */

/* Общие улучшения */
body {
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

/* Навбар */
.navbar-mobile-improved .navbar-brand {
  font-weight: 600;
  font-size: 1.1rem;
}
.navbar-mobile-improved .navbar-nav .nav-link {
  padding: 0.75rem 0.5rem;
}
.navbar-mobile-improved .navbar-nav .btn-link {
  text-decoration: none;
  color: rgba(255, 255, 255, 0.85);
  text-align: left;
  width: 100%;
}
.navbar-mobile-improved .navbar-nav .btn-link:hover {
  color: #fff;
}

/* Мобильный режим */
@media (max-width: 768px) {
  /* Навбар */
  .navbar-mobile-improved .navbar-collapse {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin-top: 0.5rem;
    padding-top: 0.5rem;
  }
  .navbar-mobile-improved .nav-link {
    font-size: 1rem;
  }

  /* Контейнер */
  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  /* Заголовки */
  h1 { font-size: 1.5rem; }
  h2 { font-size: 1.3rem; }
  h3 { font-size: 1.15rem; }

  /* Карточки программ в каталоге */
  .card-body {
    padding: 0.85rem;
  }
  .card-title {
    font-size: 1.05rem;
  }
  .card-footer {
    padding: 0.6rem 0.85rem;
  }

  /* Кнопки */
  .btn {
    padding: 0.5rem 0.9rem;
    font-size: 0.95rem;
  }
  .btn-sm {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
  }

  /* Формы */
  .form-control, .form-select {
    font-size: 16px;  /* предотвращает zoom на iOS */
    padding: 0.55rem 0.75rem;
  }
  .form-label {
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
  }

  /* Фильтры каталога */
  .filter-card {
    padding: 0.75rem !important;
  }
  .filter-card .row.g-3 > [class*="col-"] {
    margin-bottom: 0.5rem;
  }

  /* Карточка программы */
  .program-header {
    flex-direction: column;
  }
  .program-actions .btn {
    width: 100%;
    margin-bottom: 0.5rem;
  }

  /* Таблицы в ЛК — горизонтальный скролл */
  .table-responsive-mobile {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-mobile table {
    min-width: 600px;
  }

  /* Пагинация */
  .pagination {
    flex-wrap: wrap;
    gap: 4px;
  }
  .pagination .page-link {
    padding: 0.4rem 0.7rem;
    font-size: 0.9rem;
  }

  /* Toast */
  .toast-container {
    left: 12px;
    right: 12px;
    bottom: 12px;
  }
  .toast {
    width: 100%;
  }

  /* Алерты */
  .alert {
    padding: 0.75rem;
    font-size: 0.95rem;
  }

  /* Расстояние в карточке */
  .distance-badge {
    font-size: 0.9rem;
  }
}

/* Очень узкие экраны */
@media (max-width: 480px) {
  h1 { font-size: 1.3rem; }
  h2 { font-size: 1.15rem; }
  h3 { font-size: 1.05rem; }

  .navbar-mobile-improved .navbar-brand {
    font-size: 1rem;
  }

  /* Карточки в каталоге — компактнее */
  .card-text.small {
    font-size: 0.85rem;
  }

  /* Кнопки в карточках */
  .card-footer .btn {
    font-size: 0.8rem;
    padding: 0.35rem 0.6rem;
  }
}

/* Планшеты */
@media (min-width: 769px) and (max-width: 1024px) {
  .card-title {
    font-size: 1.1rem;
  }
}

/* ============================================================
   Мобильная вёрстка
   ============================================================ */

/* Общие улучшения */
body {
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

/* Навбар */
.navbar-mobile-improved .navbar-brand {
  font-weight: 600;
  font-size: 1.1rem;
}
.navbar-mobile-improved .navbar-nav .nav-link {
  padding: 0.75rem 0.5rem;
}
.navbar-mobile-improved .navbar-nav .btn-link {
  text-decoration: none;
  color: rgba(255, 255, 255, 0.85);
  text-align: left;
  width: 100%;
}
.navbar-mobile-improved .navbar-nav .btn-link:hover {
  color: #fff;
}

/* Мобильный режим */
@media (max-width: 768px) {
  /* Навбар */
  .navbar-mobile-improved .navbar-collapse {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin-top: 0.5rem;
    padding-top: 0.5rem;
  }
  .navbar-mobile-improved .nav-link {
    font-size: 1rem;
  }

  /* Контейнер */
  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  /* Заголовки */
  h1 { font-size: 1.5rem; }
  h2 { font-size: 1.3rem; }
  h3 { font-size: 1.15rem; }

  /* Карточки программ в каталоге */
  .card-body {
    padding: 0.85rem;
  }
  .card-title {
    font-size: 1.05rem;
  }
  .card-footer {
    padding: 0.6rem 0.85rem;
  }

  /* Кнопки */
  .btn {
    padding: 0.5rem 0.9rem;
    font-size: 0.95rem;
  }
  .btn-sm {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
  }

  /* Формы */
  .form-control, .form-select {
    font-size: 16px;  /* предотвращает zoom на iOS */
    padding: 0.55rem 0.75rem;
  }
  .form-label {
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
  }

  /* Фильтры каталога */
  .filter-card {
    padding: 0.75rem !important;
  }
  .filter-card .row.g-3 > [class*="col-"] {
    margin-bottom: 0.5rem;
  }

  /* Карточка программы */
  .program-header {
    flex-direction: column;
  }
  .program-actions .btn {
    width: 100%;
    margin-bottom: 0.5rem;
  }

  /* Таблицы в ЛК — горизонтальный скролл */
  .table-responsive-mobile {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-mobile table {
    min-width: 600px;
  }

  /* Пагинация */
  .pagination {
    flex-wrap: wrap;
    gap: 4px;
  }
  .pagination .page-link {
    padding: 0.4rem 0.7rem;
    font-size: 0.9rem;
  }

  /* Toast */
  .toast-container {
    left: 12px;
    right: 12px;
    bottom: 12px;
  }
  .toast {
    width: 100%;
  }

  /* Алерты */
  .alert {
    padding: 0.75rem;
    font-size: 0.95rem;
  }

  /* Расстояние в карточке */
  .distance-badge {
    font-size: 0.9rem;
  }
}

/* Очень узкие экраны */
@media (max-width: 480px) {
  h1 { font-size: 1.3rem; }
  h2 { font-size: 1.15rem; }
  h3 { font-size: 1.05rem; }

  .navbar-mobile-improved .navbar-brand {
    font-size: 1rem;
  }

  /* Карточки в каталоге — компактнее */
  .card-text.small {
    font-size: 0.85rem;
  }

  /* Кнопки в карточках */
  .card-footer .btn {
    font-size: 0.8rem;
    padding: 0.35rem 0.6rem;
  }
}

/* Планшеты */
@media (min-width: 769px) and (max-width: 1024px) {
  .card-title {
    font-size: 1.1rem;
  }
}
