/* ==========================================================================
   VOX Agri — Ajustes para Desktops Médios (1366–1919px)
   Sistema foi desenvolvido em ultrawide 3440x1440; estas regras evitam
   overflow/scroll desnecessário em resoluções intermediárias comuns
   (notebooks 1366x768, monitores Full HD 1920x1080). Monitores maiores
   (≥1920px) não são afetados — o bloco @media só dispara abaixo.
   ========================================================================== */

/* --------------- Modais: scroll interno global --------------- */
/* Aplica-se a todas resoluções: garante que o conteúdo do modal
   role internamente ao invés de estourar a viewport. */
.modal-dialog-scrollable .modal-body,
.modal-body {
    max-height: calc(100vh - 210px);
    overflow-y: auto;
    overflow-x: hidden;
}

/* Conteúdo interno do modal não pode exceder a largura disponível.
   Evita vazamento lateral de imagens, divs com min-width fixo, etc. */
.modal-body > *,
.modal-body * {
    max-width: 100%;
    box-sizing: border-box;
}

/* Tabelas dentro de modais respeitam a largura do container */
.modal-body table {
    width: 100%;
    table-layout: auto;
}

/* Se uma tabela for genuinamente larga, o wrapper .table-responsive
   passa a ser o único elemento com scroll horizontal permitido. */
.modal-body .table-responsive {
    overflow-x: auto;
    max-width: 100%;
}

/* Modais "full"/grandes ganham um pouco mais de altura útil */
.modal-xl .modal-body,
.modal-fullscreen .modal-body {
    max-height: calc(100vh - 160px);
}

/* Exceções: modais que contêm custom-dropdowns/autocompletes posicionados
   absolutamente dentro do modal-body (não portados para <body>).
   Sem esta regra, o overflow-x: hidden do modal-body cortaria o painel
   do dropdown quando ele se estende além da coluna do trigger.
   Adicione aqui novos IDs conforme forem identificados, ou use a classe
   utilitária .modal-allow-overflow em modais novos. */
#modalBuscarInsumo .modal-body,
#modalBuscarInsumo .modal-content,
#modalBuscarInsumoEdit .modal-body,
#modalBuscarInsumoEdit .modal-content,
#modalBuscarInsumoReplicar .modal-body,
#modalBuscarInsumoReplicar .modal-content,
#modalConfirmarPlantio .modal-body,
#modalConfirmarPlantio .modal-content,
.modal-allow-overflow .modal-body,
.modal-allow-overflow .modal-content {
    overflow: visible;
}

/* --------------- Breakpoint Full HD (≤1919px) --------------- */
@media (max-width: 1919.98px) {
    /* Dashboards: cards col-3 (4 por linha) passam a 2 por linha
       quando não houver override explícito para esse breakpoint. */
    .row > [class*="col-3"]:not([class*="col-xl-"]):not([class*="col-xxl-"]) {
        flex: 0 0 auto;
        width: 50%;
    }

    /* Timeline: reduz largura mínima dos itens para evitar scroll horizontal */
    .timeline-item,
    .timeline .timeline-item {
        min-width: 220px;
    }

    /* Popover de filtros globais: menos largo em telas médias */
    .vox-filtro-popover,
    .filtros-globais-popover {
        max-width: 320px;
    }

    /* Paddings generosos de cards/containers ficam mais moderados */
    .card-body {
        padding: 1rem 1.25rem;
    }

    /* Modais: altura útil levemente maior (barra de OS consome menos) */
    .modal-body {
        max-height: calc(100vh - 180px);
    }
}

/* --------------- Tela de Login: compactação em telas curtas --------------- */
/* O logo vertical tem 16rem inline; em viewports com pouca altura (≤900px)
   o card estoura a tela. Compactamos logo, paddings e espaçamentos. */
@media (max-height: 900px) {
    /* Container do login: menor margem no topo */
    .row.justify-content-center[style*="margin-top: 3rem"] {
        margin-top: 1rem !important;
    }

    /* Logo do login: reduz de 16rem para 8rem */
    #login-form ~ .text-center img[alt][src*="vox_agri_vertical_logo"],
    .card img[alt][src*="vox_agri_vertical_logo"] {
        height: 8rem !important;
    }

    /* Card de login com padding menor */
    .card-body.p-5 {
        padding: 1.5rem !important;
    }

    /* "Bem-vindo" com menos margem */
    .text-center.mb-4 {
        margin-bottom: 0.75rem !important;
    }
    .text-center.mb-4 .mb-3 {
        margin-bottom: 0.5rem !important;
    }

    /* Borda superior do bloco de contato: padding reduzido */
    .text-center.mt-4.pt-4.border-top {
        margin-top: 1rem !important;
        padding-top: 1rem !important;
    }

    /* Footer copyright com menos margem */
    .text-center.mt-4 {
        margin-top: 0.75rem !important;
    }

    /* Form fields usam tamanho normal ao invés de lg */
    #login-form .form-control-lg {
        padding: 0.5rem 0.75rem;
        font-size: 1rem;
    }

    /* Botão grande vira normal */
    #login-form .btn-lg {
        padding: 0.5rem 1rem;
        font-size: 1rem;
    }

    /* Margens entre campos reduzidas */
    #login-form .mb-4 {
        margin-bottom: 1rem !important;
    }

    /* Bloco "Precisa de acesso?" compactado */
    #login-form ~ .text-center .card-body.py-3 {
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }

    #login-form ~ .text-center i[style*="1.5rem"] {
        font-size: 1rem !important;
        margin-bottom: 0.25rem !important;
    }
}

/* Em viewports ainda mais curtas (≤800px, ex.: 1366x768) */
@media (max-height: 800px) {
    #login-form ~ .text-center img[alt][src*="vox_agri_vertical_logo"],
    .card img[alt][src*="vox_agri_vertical_logo"] {
        height: 7rem !important;
    }

    .card-body.p-5 {
        padding: 1.25rem !important;
    }
}

/* --------------- Breakpoint laptops 14" / HD (≤1440px) --------------- */
@media (max-width: 1440px) {
    /* Containers com height: 100vh que não descontam navbar/sidebar */
    .full-height-content {
        height: calc(100vh - 70px);
    }

    /* Reduz padding lateral do main-content */
    .main-content {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
