/* Ajustes responsivos compartilhados; Bootstrap continua sendo a base visual. */

.skip-link {
    background: var(--bs-white);
    border-radius: 0 0 var(--bs-border-radius) 0;
    left: 0;
    padding: 0.5rem 1rem;
    position: absolute;
    top: -100%;
    z-index: 1031;
}

.skip-link:focus {
    box-shadow: var(--bs-box-shadow);
    color: var(--bs-primary);
    top: 0;
}

.navbar .nav-link.active {
    text-decoration: underline;
    text-underline-offset: 0.35rem;
}

.card,
.card-body,
.list-group-item,
.page-header > *,
.mobile-stack > * {
    min-width: 0;
}

.card,
.list-group-item,
td,
th {
    overflow-wrap: anywhere;
}

.table-responsive {
    -webkit-overflow-scrolling: touch;
}

.timer-display {
    font-size: clamp(2.6rem, 14vw, 5rem);
    letter-spacing: -0.05em;
    line-height: 1.1;
    white-space: nowrap;
}

.chart-container {
    height: 20rem;
    position: relative;
}

.chart-container canvas {
    max-width: 100%;
}

.edital-tree .edital-tree {
    margin-left: 1.5rem;
}

.conteudo-plano-arvore {
    margin-inline-start: calc(var(--nivel-conteudo, 0) * 1.25rem);
    min-width: 0;
    position: relative;
}

.conteudo-plano-arvore--filho {
    border-inline-start: 2px solid var(--bs-border-color);
    padding-inline-start: 0.75rem;
}

.conteudo-plano-arvore--filho::before {
    border-top: 2px solid var(--bs-border-color);
    content: "";
    inline-size: 0.5rem;
    inset-inline-start: 0;
    position: absolute;
    top: 0.75rem;
}

@media (min-width: 768px) {
    .assuntos-prioritarios-desktop {
        flex: 1;
    }

    .assuntos-prioritarios-desktop > .assuntos-prioritarios__item {
        flex: 1 1 0;
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .assuntos-prioritarios-desktop >
        .assuntos-prioritarios__item >
        .assuntos-prioritarios__conteudo {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .tabela-historico-estudos__coluna-disciplina {
        overflow-wrap: normal;
        word-break: normal;
    }

    .tabela-prioridades th,
    .tabela-prioridades__texto-quebravel {
        overflow-wrap: normal;
        word-break: normal;
    }

    .tabela-caderno-erros {
        min-width: 48rem;
    }

    .tabela-caderno-erros th,
    .tabela-caderno-erros td {
        overflow-wrap: normal;
        word-break: normal;
    }

    .tabela-caderno-erros__coluna-curta {
        white-space: nowrap;
    }

    .tabela-caderno-erros__assunto,
    .tabela-caderno-erros__descricao {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .tabela-caderno-erros__assunto {
        width: clamp(12rem, 16vw, 18rem);
    }

    .tabela-caderno-erros__descricao {
        width: clamp(9rem, 13vw, 14rem);
    }

    .tabela-concursos {
        min-width: 64rem;
        table-layout: fixed;
    }

    .tabela-concursos__coluna-concurso {
        width: 24.5%;
    }

    .tabela-concursos__coluna-orgao {
        width: 12.5%;
    }

    .tabela-concursos__coluna-cargo {
        width: 15%;
    }

    .tabela-concursos__coluna-situacao {
        width: 10%;
    }

    .tabela-concursos__coluna-prova {
        width: 8.5%;
    }

    .tabela-concursos__coluna-meta {
        width: 10.5%;
    }

    .tabela-concursos__coluna-acoes {
        width: 19%;
    }

    .tabela-concursos__texto {
        overflow-wrap: break-word;
        word-break: normal;
    }

    .tabela-concursos__texto-curto {
        overflow-wrap: normal;
        word-break: normal;
    }
}

@media (min-width: 992px) {
    .tabela-caderno-erros {
        min-width: 64rem;
    }
}

@media (min-width: 1200px) {
    .tabela-caderno-erros {
        min-width: 68rem;
    }
}

@media (max-width: 991.98px) {
    .navbar-collapse {
        padding-block: 0.75rem 1rem;
    }

    .navbar-nav .nav-link,
    .navbar-nav .dropdown-toggle {
        min-height: 2.75rem;
        padding: 0.625rem 0.75rem;
        text-align: left;
        width: 100%;
    }

    .navbar-nav .dropdown-menu {
        border: 0;
        margin: 0 0 0.5rem;
    }

    .navbar-nav .dropdown-item {
        min-height: 2.75rem;
        padding-block: 0.625rem;
        white-space: normal;
    }
}

@media (max-width: 767.98px) {
    main .btn:not(.btn-close) {
        align-items: center;
        display: inline-flex;
        justify-content: center;
        min-height: 2.75rem;
    }

    main .btn-sm:not(.btn-close) {
        min-height: 2.5rem;
    }

    main select.form-select,
    main input.form-control:not([type="checkbox"]):not([type="radio"]) {
        min-height: 2.75rem;
    }

    main .form-check-input {
        height: 1.25rem;
        margin-right: 0.25rem;
        width: 1.25rem;
    }

    .chart-container {
        height: 16rem;
    }

    .edital-tree .edital-tree {
        margin-left: 0.75rem;
    }

    .conteudo-plano-arvore--mobile {
        margin-inline-start: min(
            calc(var(--nivel-conteudo, 0) * 0.625rem),
            2.5rem
        );
    }

    .page-header,
    .mobile-stack {
        align-items: stretch !important;
        flex-direction: column;
    }

    .page-actions,
    .form-actions,
    .mobile-actions {
        align-items: stretch !important;
        flex-direction: column;
        width: 100%;
    }

    .page-actions > *,
    .form-actions > *,
    .mobile-actions > :not(.badge),
    .page-actions form,
    .form-actions form,
    .mobile-actions form,
    .page-actions form .btn,
    .form-actions form .btn,
    .mobile-actions form .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .navbar-brand {
        font-size: 1rem;
    }

    .mobile-actions > .badge {
        align-self: flex-start;
    }

    .card-body.responsive-card-body,
    .responsive-card-body {
        padding: 1rem !important;
    }

    .pagination .page-link {
        padding-inline: 0.625rem;
    }

    .table-mobile-compact {
        font-size: 0.875rem;
    }

    .table-mobile-compact > :not(caption) > * > * {
        padding: 0.625rem 0.5rem;
    }
}

/* FRONT-05 — indicador de loading de selects dependentes HTMX.
   O elemento indicador fica oculto por padrão e é exibido somente
   enquanto o htmx mantém a classe `htmx-request` nele. */
.htmx-indicator {
    display: none;
}

.htmx-request.htmx-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.25rem;
}
