/* Screen-only adaptations: leave PDF/print layouts and desktop tables unchanged. */
@media screen and (max-width: 991.98px) {
    .page, .page main, .page article.content,
    .content .card, .content .card-body, .content form,
    .content .row > *, .dados-prova-topo > * {
        min-width: 0;
        max-width: 100%;
    }

    .page main { width: 100%; }
    .content h1, .content h2, .content p, .content .alert {
        overflow-wrap: anywhere;
    }

    .content .btn, .content .form-control, .content .form-select {
        min-height: 44px;
    }
    .content .btn {
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .content .form-control, .content .form-select { font-size: 16px; }
    .content .input-group { flex-wrap: wrap; }
    .content .input-group > .form-control { min-width: 8rem; }
    .content fieldset { min-width: 0; }

    .content .table-responsive {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        overflow: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }
    .content .table-responsive::before {
        content: "Deslize a tabela para ver todas as colunas ↔";
        display: block;
        position: sticky;
        left: 0;
        width: 100%;
        box-sizing: border-box;
        padding: .45rem .65rem;
        color: #435d7d;
        background: #edf4fc;
        font-size: .78rem;
        line-height: 1.4;
    }
    .content .table-responsive > .table {
        margin-bottom: 0;
        font-size: .875rem;
    }
    .content .table-responsive th, .content .table-responsive td {
        padding: .55rem .4rem;
        vertical-align: middle;
    }
    .content .table-responsive .botao-ordenacao,
    .content .table-responsive .ordenar-registo { min-height: 44px; }
    .content .table-responsive td .d-flex { flex-wrap: wrap; }
    .content .table-responsive td.text-nowrap { white-space: normal !important; }
    .content .table-responsive td .btn { min-width: 44px; }

    /* Give numeric inputs room instead of shrinking the entire results table. */
    .content .tabela-introducao-resultados {
        width: 100%;
        min-width: 1040px;
        font-size: .875rem;
        --intro-dorsal: 2.5rem;
        --intro-fptac: 3.5rem;
        --intro-nome: 7rem;
        --intro-clube: 6rem;
        --intro-equipa: 2.5rem;
    }
    .content .tabela-introducao-resultados.tabela-final-progressiva { min-width: 1680px; }
    .content .tabela-introducao-resultados .col-intro-dorsal { width: var(--intro-dorsal) !important; }
    .content .tabela-introducao-resultados .col-intro-fptac { width: var(--intro-fptac) !important; }
    .content .tabela-introducao-resultados .col-intro-nome { width: var(--intro-nome) !important; }
    .content .tabela-introducao-resultados .col-intro-clube { width: var(--intro-clube) !important; }
    .content .tabela-introducao-resultados .col-intro-equipa { width: var(--intro-equipa) !important; }
    .content .tabela-introducao-resultados :is(th, td):nth-child(-n+5) {
        background: #fff;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .content .tabela-introducao-resultados thead th:nth-child(-n+5) { background: #dbe7f5; }
    .content .tabela-introducao-resultados thead th::after { display: none; }
    .content .tabela-introducao-resultados .form-control,
    .content .tabela-introducao-resultados .form-select { padding: .25rem; font-size: 16px; }

    .content .tabela-armas-licencas { min-width: 780px; }
    .content .tabela-armas-licencas :is(th, td):nth-child(1) { min-width: 4rem; }
    .content .tabela-armas-licencas :is(th, td):nth-child(2) { min-width: 9rem; max-width: 12rem; white-space: normal; }
    .content .tabela-armas-licencas td :is(input, select) { min-width: 9rem; }
    .content .resultados-series { min-width: max-content; }
    .content .resultados-series :is(th, td):nth-child(4) { white-space: normal; overflow-wrap: anywhere; }
    .content .resultados-series .resultado-prato-botao { min-width: 44px; min-height: 44px; }
    .content .tabela-historico-provas, .content .tabela-provas-abertas { min-width: 760px; }
    .content .tabela-series { min-width: 760px; }

    .resultados-publicos .resultados-publicos-grelha {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    }
}

@media screen and (max-width: 575.98px) {
    .page article.content { padding: .8rem .5rem 1.5rem !important; }
    .content .card-body { padding: .75rem; }
    .page .top-row { gap: .4rem; padding-left: .5rem !important; padding-right: .5rem !important; }
    .page .top-row .app-language-selector { gap: .2rem; }
    .page .top-row .app-language-selector select { min-width: 0; width: 8.8rem; }
    .page .top-row a.top-live-button { font-size: .8rem; padding: .5rem; }
    .page .app-footer { padding-left: .5rem !important; padding-right: .5rem !important; }
    .content .introducao-cabecalho-acoes, .content .introducao-cabecalho-botoes { width: 100%; }
    .content .introducao-cabecalho-botoes .btn { flex-basis: 100%; }
    .content .dados-prova-logotipos { flex-wrap: wrap; }

    .content .resultados-series {
        --pauta-col-p: 1.3rem;
        --pauta-col-dorsal: 1.8rem;
        --pauta-col-fptac: 3rem;
        --pauta-col-atirador: 5.6rem;
        --pauta-col-escalao: 2.8rem;
    }
    .content .resultados-series :is(th, td):nth-child(-n+5) { font-size: .72rem; padding: .3rem .12rem; overflow-wrap: anywhere; white-space: normal; }
    .content .tabela-introducao-resultados {
        --intro-dorsal: 2rem;
        --intro-fptac: 3rem;
        --intro-nome: 5.5rem;
        --intro-clube: 4rem;
        --intro-equipa: 2rem;
    }
    .content .tabela-introducao-resultados :is(th, td):nth-child(-n+5) { padding: .25rem .1rem; font-size: .72rem; }
    .content .tabela-introducao-resultados :is(th, td):nth-child(1) input { font-size: 14px; }
    .resultados-publicos .resultados-publicos-cabecalho { padding: .85rem; gap: .65rem; }
    .resultados-publicos .resultados-publicos-cabecalho img { width: 44px; height: 44px; }
}

/* Keep presentation headings readable while wide result tables scroll independently. */
.apresentacao-layout { min-width: 0; max-width: 100%; }
.apresentacao-layout .video-resultados { min-width: 0; width: 100%; }
.apresentacao-layout .video-tabela-scroll {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: auto;
    scrollbar-color: #617b9e #e7eef7;
    touch-action: auto;
    -webkit-overflow-scrolling: touch;
}
.apresentacao-layout .video-tabela-scroll::-webkit-scrollbar { height: 12px; }
.apresentacao-layout .video-tabela-scroll::-webkit-scrollbar-thumb {
    border: 2px solid #e7eef7;
    border-radius: 10px;
    background: #617b9e;
}
.apresentacao-layout .video-tabela-scroll::-webkit-scrollbar-track { background: #e7eef7; }
.apresentacao-layout .video-tabela-ajuda {
    display: none;
    margin: .25rem 0;
    color: #294463;
    font-size: .875rem;
    font-weight: 700;
}
@media screen and (max-width: 1199.98px) {
    .apresentacao-layout .video-tabela-ajuda { display: block; }
}
@media screen and (max-width: 991.98px) {
    .apresentacao-layout .video-resultados {
        min-width: 0;
        width: 100%;
        padding: .75rem;
        overflow: visible;
        --video-altura-linha: 44px;
    }
    .video-resultados .video-cabecalho {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: .5rem;
        min-height: 0;
    }
    .video-cabecalho .video-identificacao { grid-column: 1 / -1; grid-row: 2; overflow-wrap: anywhere; }
    .video-cabecalho .video-logos { min-width: 0; gap: .4rem; }
    .video-cabecalho .video-logos img { width: 52px; height: 52px; }
    .video-resultados .video-slide { min-width: 0; }
    .video-resultados .video-tabela { font-size: .875rem; }
    .video-resultados .video-tabela-equipas { min-width: 560px; }
    .video-resultados .video-botoes { flex-wrap: wrap; opacity: 1; }
    .video-resultados .video-botoes button { min-width: 44px; min-height: 44px; }
    .video-resultados .video-titulo-linha h3 { font-size: 1.25rem; }
}
