/* ============================================= */
/* CALL RESPONSIVE STYLES (общие адаптивные правки) */
/* ============================================= */

/* ------ Планшеты (768px - 1024px) ------ */
@media (min-width: 769px) and (max-width: 1024px) {
    .call-controls {
        gap: 18px;
        padding: 12px;
    }
    .call-btn {
        width: 50px;
        height: 50px;
        font-size: 22px;
    }
    /* Групповой звонок: 2 колонки */
    .call-group .videos-grid {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
    /* Прямой звонок: PiP чуть меньше */
    .call-direct .call-local-pip {
        width: 150px;
        height: 200px;
    }
}

/* ------ Мобильные устройства (до 768px) ------ */
@media (max-width: 768px) {
    /* Общие настройки */
    .call-controls {
        gap: 16px;
        padding: 10px;
        bottom: 20px;
    }
    .call-btn {
        width: var(--call-btn-mobile-size);
        height: var(--call-btn-mobile-size);
        font-size: 20px;
    }

    /* Прямой звонок */
    .call-direct .call-local-pip {
        width: 100px;
        height: 120px;
        bottom: 90px;
    }
    .call-direct .placeholder-avatar {
        width: 80px;
        height: 80px;
    }
    .call-direct .placeholder-name {
        font-size: 18px;
    }
    .call-direct .placeholder-status {
        font-size: 14px;
    }

    /* Групповой звонок */
    .call-group .videos-grid {
        grid-template-columns: 1fr;
        padding: 8px;
    }
    .call-group .participant-label {
        font-size: 11px;
    }
    .call-group .fullscreen-btn {
        opacity: 0.6; /* всегда видна на мобильных для удобства */
    }

    /* Панель участников на мобильных – выезжающая снизу (управляется JS) */
    .call-group .participants-panel {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-height: 60vh;
        border-radius: 20px 20px 0 0;
        transform: translateY(100%);
        transition: transform 0.3s cubic-bezier(0.2, 0.9, 0.4, 1.1);
        z-index: 40;
    }
    .call-group .participants-panel.open {
        transform: translateY(0);
    }

    /* Кнопка закрытия панели на мобильных (добавляется динамически) */
    .call-group .panel-close-btn {
        display: block;
        background: none;
        border: none;
        color: inherit;
        font-size: 20px;
        position: absolute;
        top: 12px;
        right: 16px;
    }
}

/* ------ Очень маленькие экраны (до 480px) ------ */
@media (max-width: 480px) {
    .call-controls {
        gap: 12px;
        padding: 8px;
    }
    .call-btn {
        width: 44px;
        height: 44px;
        font-size: 18px;
    }
    .call-direct .call-local-pip {
        width: 70px;
        height: 70px;
        bottom: 80px;
        right: 8px;
        border-radius: 50%;
    }
    .call-group .videos-grid {
        gap: 6px;
    }
    .call-group .participant-label {
        font-size: 10px;
        bottom: 4px;
        left: 4px;
        padding: 2px 6px;
    }
}

/* ------ Альбомная ориентация на мобильных ------ */
@media (max-width: 768px) and (orientation: landscape) {
    .call-group .videos-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .call-direct .call-local-pip {
        width: 90px;
        height: 120px;
        bottom: 20px;
        right: 12px;
    }
    .call-controls {
        bottom: 10px;
    }
}

/* ------ Уважение prefers-reduced-motion ------ */
@media (prefers-reduced-motion: reduce) {
    .call-group .participants-panel,
    .call-controls,
    .call-local-pip {
        transition: none;
    }
}