/*
 * CAMADA 7 — MÓDULOS · ACESSO
 *
 * Conteúdo permitido: telas de controle de acesso (templates/acessoNegado.handlebars,
 * templates/termos.handlebars) e o painel superadmin (templates/admin.handlebars).
 * As telas de acesso reaproveitam .login-page / .login-access-card de module.login.css.
 */

.access-academic {
    margin: 8px 0 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-muted);
    text-align: center;
}

.access-card {
    width: min(760px, 100%);
    margin: 0 auto;
    padding: 28px;
    background: var(--color-white);
    border: var(--border-thin);
    border-radius: 6px;
}

.access-card h2 {
    margin-top: 0;
}

.access-banner {
    margin: 0 0 12px;
}

.access-counter {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--color-muted);
    text-align: right;
}

.access-counter.is-invalid {
    color: var(--color-danger);
}

.access-justificativa {
    min-height: 140px;
    resize: vertical;
}

.access-legal-text {
    max-height: 320px;
    margin-bottom: 16px;
    padding: 12px 16px;
    overflow-y: auto;
    background: var(--color-surface-muted);
    border: var(--border-thin);
    border-radius: 4px;
}

.access-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
    margin-top: 16px;
}

.access-sync-banner {
    position: fixed;
    z-index: 2000;
    right: 16px;
    bottom: 16px;
    left: 16px;
    display: flex;
    gap: 12px;
    align-items: center;
    max-width: 560px;
    margin: 0 auto;
    padding: 12px 16px;
    color: var(--color-white);
    background: var(--color-danger);
    border-radius: 4px;
}

.access-sync-banner span {
    flex: 1 1 auto;
}

.access-sync-banner .close {
    color: var(--color-white);
    opacity: 0.9;
}

.admin-counters .label {
    display: inline-block;
    margin: 0 6px 6px 0;
    padding: 6px 10px;
    font-size: 12px;
    cursor: pointer;
}

.admin-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.admin-filters .form-control {
    width: auto;
    min-width: 160px;
}

.admin-filters .admin-search {
    flex: 1 1 240px;
}

.admin-table-wrap {
    overflow-x: auto;
}

.admin-table th[data-sort] {
    cursor: pointer;
    white-space: nowrap;
}

.admin-table td {
    vertical-align: middle;
}

.admin-table .admin-actions {
    white-space: nowrap;
}

.admin-pre {
    white-space: pre-wrap;
    word-break: break-word;
}
