/* ============================================================
   ФАЙЛ: css/mobile-fix.css
   НАЗНАЧЕНИЕ: Хирургические исправления для мобильных устройств.
   Этот файл должен подключаться ПОСЛЕДНИМ из всех CSS-файлов.
   ============================================================ */

/* ===== БАЗОВАЯ ЗАЩИТА ОТ ГОРИЗОНТАЛЬНОЙ ПРОКРУТКИ ===== */
html,
body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
    position: relative;
}

/* Все элементы используют border-box, чтобы padding не увеличивал ширину */
*,
*::before,
*::after {
    box-sizing: border-box !important;
}

/* ===== КАРТА И ШАПКА ===== */
@media (max-width: 768px) {
    .modern-header {
        width: 100vw !important;
        max-width: 100vw !important;
    }

    .header-container {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    #map {
        width: 100vw !important;
        max-width: 100vw !important;
        overflow: hidden !important;
    }

    /* Кнопки управления картой не должны вылезать за пределы */
    .map-management-controls {
        left: 8px !important;
        max-width: calc(100vw - 80px) !important;
    }

    .map-controls-right {
        right: 8px !important;
        max-width: calc(100vw - 80px) !important;
    }
}

/* ===== ВЫПАДАЮЩИЕ МЕНЮ НА КАРТЕ ===== */
@media (max-width: 768px) {
    .map-add-dropdown-menu,
    .map-visibility-dropdown-menu,
    .map-filters-dropdown-menu {
        max-width: calc(100vw - 20px) !important;
        overflow-x: hidden !important;
    }

    .map-visibility-dropdown-menu {
        left: 0 !important;
        right: auto !important;
    }
}

/* ===== ЛИЧНЫЙ КАБИНЕТ (profile.html) ===== */
@media (max-width: 768px) {
    /* Контейнер профиля */
    .profile-container {
        width: 100% !important;
        max-width: 100vw !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow-x: hidden !important;
    }

    /* Сайдбар и основной контент — на всю ширину */
    .sidebar,
    .main-content,
    .tab-content.active {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow-x: hidden !important;
    }

    /* Все карточки и блоки внутри вкладок */
    .tab-content.active > *,
    .tab-content.active > * > *,
    .fishing-profile-content,
    .fishing-info-section,
    .fishing-info-card {
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }

    /* Сетки переводим в одну колонку */
    .fishing-profile-content,
    .profile-stats-grid,
    .stats-grid,
    .detailed-stats-grid {
        display: block !important;
        grid-template-columns: 1fr !important;
    }

    /* Таблицы в профиле (рейтинг) — прокрутка только внутри блока */
    .rating-table-wrapper {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        max-width: 100% !important;
    }

    .rating-table {
        min-width: 700px !important; /* внутренняя прокрутка */
    }
}

/* ===== АДМИН-ПАНЕЛЬ (profile.html, вкладка admin) ===== */
@media (max-width: 768px) {
    .admin-sections,
    .admin-section,
    .admin-section.active {
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px !important;
        overflow-x: hidden !important;
    }

    /* Контейнеры таблиц — прокрутка только внутри */
    .users-table-container,
    .table-responsive,
    .reports-table-minimal,
    .users-table-minimal {
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Навигация админки */
    .admin-nav-tabs {
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Статистика админки */
    .admin-stats-minimal,
    .stats-grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }
}

/* ===== МОДАЛЬНЫЕ ОКНА ===== */
@media (max-width: 768px) {
    .modal {
        padding: 8px !important;
        width: 100vw !important;
        max-width: 100vw !important;
    }

    .modal-content,
    .login-modal-content,
    .register-modal-content,
    .fishing-report-modal-content {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        border-radius: 16px !important;
    }

    /* Контент модалки не выходит за пределы */
    .modal-body,
    .fishing-report-modal-body,
    .register-modal-body,
    .login-modal-body {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    /* Формы внутри модалок */
    .form-control,
    .form-control-file,
    .login-input,
    .register-input {
        max-width: 100% !important;
    }
}

/* ===== ФОРМЫ И ИНПУТЫ (защита от зума в iOS) ===== */
@media (max-width: 768px) {
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="tel"],
    select,
    textarea {
        font-size: 16px !important; /* iOS не зумит при фокусе */
        max-width: 100% !important;
    }
}

/* ===== ФУТЕР ===== */
@media (max-width: 768px) {
    .modern-footer,
    footer {
        max-width: 100vw !important;
        width: 100vw !important;
        overflow: hidden !important;
    }
}

/* ===== ВСПОМОГАТЕЛЬНЫЕ БЛОКИ ===== */
@media (max-width: 768px) {
    /* Блок с картой масштаба */
    .map-scale-compact {
        left: 8px !important;
        bottom: 8px !important;
    }

    /* Уведомления */
    .anchor-notification,
    .waterbody-not-found-notification,
    .welcome-toast {
        max-width: calc(100vw - 20px) !important;
        left: 10px !important;
        right: 10px !important;
        transform: none !important;
    }

    /* Попапы на карте (MapLibre) */
    .maplibregl-popup {
        max-width: calc(100vw - 20px) !important;
    }

    .maplibregl-popup-content {
        max-width: calc(100vw - 40px) !important;
    }
}

/* ===== ОЧЕНЬ МАЛЕНЬКИЕ ЭКРАНЫ ===== */
@media (max-width: 360px) {
    .header-logo .logo-text {
        max-width: 90px !important;
        font-size: 13px !important;
    }

    .btn,
    button {
        font-size: 12px !important;
    }
}