/*
 * SESB — Fundação visual compartilhada
 *
 * Camada progressiva e compatível com as telas existentes. As classes
 * prefixadas por "sesb-" formam o contrato visual comum dos três sistemas.
 * Não redefine os componentes legados de forma destrutiva.
 */

:root {
    --sesb-font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --sesb-text: #172033;
    --sesb-text-muted: #64748b;
    --sesb-surface: #ffffff;
    --sesb-surface-subtle: #f8fafc;
    --sesb-border: #e2e8f0;
    --sesb-border-strong: #cbd5e1;
    --sesb-danger: #b42318;
    --sesb-success: #067647;
    --sesb-warning: #b54708;
    --sesb-info: #175cd3;
    --sesb-radius-sm: .625rem;
    --sesb-radius-md: .875rem;
    --sesb-radius-lg: 1.125rem;
    --sesb-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --sesb-shadow-md: 0 12px 32px rgba(15, 23, 42, .08);
    --sesb-content-max: 1600px;
    --sesb-control-height: 2.75rem;
    --sesb-transition: 160ms ease;
}

html {
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

body.sesb-ui-foundation {
    min-height: 100vh;
    color: var(--sesb-text);
    font-family: var(--sesb-font-family);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.sesb-ui-foundation button,
body.sesb-ui-foundation input,
body.sesb-ui-foundation select,
body.sesb-ui-foundation textarea {
    font: inherit;
}

body.sesb-ui-foundation :focus-visible {
    outline: 3px solid rgba(13, 110, 253, .32);
    outline: 3px solid color-mix(in srgb, var(--school-primary, #0d6efd) 35%, transparent);
    outline-offset: 2px;
}

body.sesb-ui-foundation [hidden] {
    display: none !important;
}

/* Estrutura de página ----------------------------------------------------- */

.sesb-content-container {
    width: min(100%, var(--sesb-content-max));
    margin-inline: auto;
    padding-inline: clamp(1rem, 2vw, 2rem);
}

.sesb-page-stack {
    display: grid;
    gap: clamp(1rem, 1.8vw, 1.5rem);
}

.sesb-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-lg);
    background: linear-gradient(135deg, var(--sesb-surface) 0%, var(--school-soft, #eff6ff) 180%);
    box-shadow: var(--sesb-shadow-sm);
}

.sesb-page-heading {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    min-width: 0;
}

.sesb-page-heading-icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .85rem;
    color: var(--school-primary, #0d6efd);
    background: var(--school-soft, #eff6ff);
}

.sesb-page-title {
    margin: 0;
    color: var(--sesb-text);
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.2;
}

.sesb-page-subtitle {
    max-width: 72ch;
    margin: .35rem 0 0;
    color: var(--sesb-text-muted);
    font-size: .925rem;
    line-height: 1.55;
}

.sesb-page-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .625rem;
}

/* Superfícies e cartões --------------------------------------------------- */

.sesb-card,
.sesb-section {
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-lg);
    background: var(--sesb-surface);
    box-shadow: var(--sesb-shadow-sm);
}

.sesb-card {
    padding: clamp(1rem, 2vw, 1.4rem);
}

.sesb-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--sesb-border);
}

.sesb-section-title {
    margin: 0;
    color: var(--sesb-text);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
}

.sesb-section-description {
    margin: .25rem 0 0;
    color: var(--sesb-text-muted);
    font-size: .875rem;
    line-height: 1.5;
}

.sesb-section-body {
    padding: 1.25rem;
}

.sesb-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: 1rem;
}

.sesb-stat-card {
    display: grid;
    gap: .3rem;
    padding: 1rem;
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-md);
    background: var(--sesb-surface);
    box-shadow: var(--sesb-shadow-sm);
}

.sesb-stat-label {
    color: var(--sesb-text-muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.sesb-stat-value {
    color: var(--sesb-text);
    font-size: clamp(1.35rem, 2.2vw, 1.8rem);
    font-weight: 800;
    line-height: 1.15;
}

.sesb-stat-detail {
    color: var(--sesb-text-muted);
    font-size: .82rem;
}

/* Controles explícitos ---------------------------------------------------- */

.sesb-field {
    display: grid;
    gap: .4rem;
}

.sesb-label {
    margin: 0;
    color: var(--sesb-text);
    font-size: .875rem;
    font-weight: 700;
}

.sesb-help-text {
    margin: 0;
    color: var(--sesb-text-muted);
    font-size: .8rem;
    line-height: 1.45;
}

.sesb-control {
    width: 100%;
    min-height: var(--sesb-control-height);
    padding: .65rem .8rem;
    border: 1px solid var(--sesb-border-strong);
    border-radius: var(--sesb-radius-sm);
    color: var(--sesb-text);
    background: var(--sesb-surface);
    transition: border-color var(--sesb-transition), box-shadow var(--sesb-transition);
}

.sesb-control:hover {
    border-color: #94a3b8;
}

.sesb-control:focus {
    border-color: var(--school-primary, #0d6efd);
    box-shadow: 0 0 0 .22rem rgba(13, 110, 253, .14);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--school-primary, #0d6efd) 16%, transparent);
    outline: 0;
}

.sesb-control[disabled],
.sesb-control[readonly] {
    color: var(--sesb-text-muted);
    background: var(--sesb-surface-subtle);
    cursor: not-allowed;
}

.sesb-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: var(--sesb-control-height);
    padding: .62rem 1rem;
    border: 1px solid transparent;
    border-radius: var(--sesb-radius-sm);
    font-size: .875rem;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: transform var(--sesb-transition), box-shadow var(--sesb-transition), background-color var(--sesb-transition), border-color var(--sesb-transition);
}

.sesb-button:hover {
    transform: translateY(-1px);
}

.sesb-button:active {
    transform: translateY(0);
}

.sesb-button-primary {
    color: #fff;
    background: var(--school-primary, #0d6efd);
    box-shadow: 0 5px 14px rgba(13, 110, 253, .2);
    box-shadow: 0 5px 14px color-mix(in srgb, var(--school-primary, #0d6efd) 22%, transparent);
}

.sesb-button-primary:hover,
.sesb-button-primary:focus {
    color: #fff;
    background: var(--school-secondary, #1d4ed8);
}

.sesb-button-secondary {
    color: var(--sesb-text);
    border-color: var(--sesb-border-strong);
    background: var(--sesb-surface);
}

.sesb-button-danger {
    color: #fff;
    background: var(--sesb-danger);
}

.sesb-button[disabled],
.sesb-button[aria-disabled="true"] {
    opacity: .62;
    pointer-events: none;
    transform: none;
}

/* Tabelas, estados e indicadores ---------------------------------------- */

.sesb-table-shell {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-md);
    background: var(--sesb-surface);
    -webkit-overflow-scrolling: touch;
}

.sesb-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.sesb-table th,
.sesb-table td {
    padding: .78rem .9rem;
    border-bottom: 1px solid var(--sesb-border);
    text-align: left;
    vertical-align: middle;
}

.sesb-table th {
    color: #475569;
    background: var(--sesb-surface-subtle);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.sesb-table tbody tr:last-child td {
    border-bottom: 0;
}

.sesb-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    width: fit-content;
    padding: .3rem .58rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 750;
    line-height: 1.15;
}

.sesb-badge-neutral { color: #475569; background: #f1f5f9; }
.sesb-badge-success { color: var(--sesb-success); background: #ecfdf3; }
.sesb-badge-warning { color: var(--sesb-warning); background: #fffaeb; }
.sesb-badge-danger { color: var(--sesb-danger); background: #fef3f2; }
.sesb-badge-info { color: var(--sesb-info); background: #eff8ff; }

.sesb-empty-state {
    display: grid;
    place-items: center;
    gap: .6rem;
    min-height: 12rem;
    padding: 2rem 1rem;
    color: var(--sesb-text-muted);
    text-align: center;
}

.sesb-empty-state-icon {
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 1rem;
    color: var(--school-primary, #0d6efd);
    background: var(--school-soft, #eff6ff);
    font-size: 1.25rem;
}

.sesb-empty-state h2,
.sesb-empty-state h3 {
    margin: 0;
    color: var(--sesb-text);
    font-size: 1rem;
    font-weight: 800;
}

.sesb-empty-state p {
    max-width: 52ch;
    margin: 0;
    font-size: .875rem;
    line-height: 1.55;
}

.sesb-sr-status {
    position: fixed;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Utilitários responsivos ------------------------------------------------- */

.sesb-mobile-only { display: none !important; }
.sesb-desktop-only { display: initial; }

@media (max-width: 767.98px) {
    .sesb-content-container {
        padding-inline: .85rem;
    }

    .sesb-page-header,
    .sesb-section-header {
        flex-direction: column;
        align-items: stretch;
    }

    .sesb-page-actions {
        justify-content: stretch;
    }

    .sesb-page-actions > * {
        flex: 1 1 auto;
    }

    .sesb-button {
        min-height: 2.875rem;
    }

    .sesb-section-body {
        padding: 1rem;
    }

    .sesb-mobile-only { display: initial !important; }
    .sesb-desktop-only { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@media print {
    body.sesb-ui-foundation {
        color: #000;
        background: #fff;
    }

    .sesb-no-print {
        display: none !important;
    }

    .sesb-card,
    .sesb-section,
    .sesb-page-header {
        box-shadow: none;
    }
}

/* Bloco 5 — páginas operacionais prioritárias ----------------------------
 * Hooks aplicados somente às telas migradas. A lógica, os endpoints e os
 * nomes dos campos permanecem nos templates originais.
 */

.sesb-priority-page {
    --sesb-priority-gutter: clamp(.85rem, 2vw, 1.75rem);
    width: min(100%, var(--sesb-content-max));
    min-width: 0;
    margin-inline: auto;
    padding-inline: var(--sesb-priority-gutter);
}

.sesb-priority-page.dashboard-page,
.sesb-priority-page.student-record-page,
.sesb-priority-page.diario-page,
.sesb-priority-page.aula-page {
    width: 100%;
    max-width: none;
    padding-inline: 0;
}

.sesb-priority-page.dashboard-page > .container-fluid,
.sesb-priority-page.student-record-page > .container-fluid,
.sesb-priority-page.diario-page > .container-fluid,
.sesb-priority-page.aula-page > .container-fluid {
    width: min(100%, var(--sesb-content-max));
    margin-inline: auto;
    padding-inline: var(--sesb-priority-gutter) !important;
}

.sesb-priority-page .card,
.sesb-priority-page .soft-card,
.sesb-priority-page .private-card,
.sesb-priority-page .hero-card,
.sesb-priority-page .metric-card,
.sesb-priority-page .module-card {
    min-width: 0;
}

.sesb-priority-page .form-control,
.sesb-priority-page .form-select,
.sesb-priority-page .btn:not(.btn-sm) {
    min-height: 2.75rem;
}

.sesb-priority-page textarea.form-control {
    min-height: 7rem;
    line-height: 1.55;
}

.sesb-priority-page .form-control,
.sesb-priority-page .form-select {
    border-color: var(--sesb-border-strong);
}

.sesb-priority-page .form-control:focus,
.sesb-priority-page .form-select:focus {
    border-color: var(--school-primary, #0d6efd);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--school-primary, #0d6efd) 15%, transparent);
}

.sesb-priority-page .table-responsive[data-sesb-scroll-region] {
    position: relative;
    max-width: 100%;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--school-primary, #0d6efd) 35%, #cbd5e1) transparent;
}

.sesb-priority-page .table-responsive[data-sesb-scroll-region]:focus-visible {
    border-radius: var(--sesb-radius-md);
    outline: 3px solid color-mix(in srgb, var(--school-primary, #0d6efd) 28%, transparent);
    outline-offset: 2px;
}

.sesb-priority-page .table-responsive[data-sesb-scroll-region]::-webkit-scrollbar {
    height: .62rem;
}

.sesb-priority-page .table-responsive[data-sesb-scroll-region]::-webkit-scrollbar-thumb {
    border: .15rem solid transparent;
    border-radius: 999px;
    background: color-mix(in srgb, var(--school-primary, #0d6efd) 35%, #cbd5e1);
    background-clip: padding-box;
}

.sesb-priority-page .table-responsive[data-sesb-scroll-region][data-sesb-overflow="true"]::after {
    content: "Deslize para ver mais";
    position: sticky;
    right: .5rem;
    bottom: .45rem;
    float: right;
    margin-top: -2.15rem;
    margin-right: .5rem;
    padding: .28rem .56rem;
    border: 1px solid var(--sesb-border);
    border-radius: 999px;
    color: var(--sesb-text-muted);
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--sesb-shadow-sm);
    font-size: .68rem;
    font-weight: 750;
    pointer-events: none;
}

/* Painéis --------------------------------------------------------------- */

[data-sesb-page="dashboard"].sesb-dashboard-page {
    display: grid;
    gap: 1.25rem;
}

[data-sesb-page="dashboard"] .hero-card,
[data-sesb-page="dashboard"] .dashboard-hero {
    overflow: hidden;
}

[data-sesb-page="dashboard"] .metric-card,
[data-sesb-page="dashboard"] .module-card,
[data-sesb-page="dashboard"] .private-card,
[data-sesb-page="dashboard"] .stat-card {
    transition: transform var(--sesb-transition), box-shadow var(--sesb-transition);
}

[data-sesb-page="dashboard"] .metric-card:hover,
[data-sesb-page="dashboard"] .module-card:hover,
[data-sesb-page="dashboard"] .private-card:hover,
[data-sesb-page="dashboard"] .stat-card:hover {
    transform: translateY(-2px);
}

[data-sesb-page="dashboard"] .module-card:focus-visible,
[data-sesb-page="dashboard"] a.private-nav-link:focus-visible {
    outline-offset: 4px;
}

/* Fichas do aluno ------------------------------------------------------- */

[data-sesb-page="student-record"] .nav-pills {
    max-width: 100%;
}

[data-sesb-page="student-record"] .student-photo,
[data-sesb-page="student-record"] .responsible-photo {
    max-width: 100%;
}

[data-sesb-page="student-record"] .record-filter-card form,
[data-sesb-page="student-record"] .ficha-card form {
    min-width: 0;
}

[data-sesb-page="student-record"] .timeline-item,
[data-sesb-page="student-record"] .annotation-card,
[data-sesb-page="student-record"] .anotacao-card {
    overflow-wrap: anywhere;
}

/* Diário mensal --------------------------------------------------------- */

[data-sesb-page="diary-calendar"] .sesb-calendar-scroll {
    scroll-snap-type: inline proximity;
}

[data-sesb-page="diary-calendar"] .cal-day {
    scroll-snap-align: start;
}

[data-sesb-page="diary-calendar"] .legend {
    align-items: center;
}

/* Diário da aula -------------------------------------------------------- */

[data-sesb-page="diary-entry"] .nav-tabs,
[data-sesb-page="diary-entry"] .nav-pills {
    max-width: 100%;
}

[data-sesb-page="diary-entry"] .sticky-actions {
    z-index: 1010;
}

[data-sesb-page="diary-entry"] .freq-table td,
[data-sesb-page="diary-entry"] .freq-table th {
    vertical-align: middle;
}

[data-sesb-page="diary-entry"] .freq-obs {
    min-width: min(100%, 13rem);
}

@media (min-width: 768px) {
    [data-sesb-page="diary-entry"] .freq-table .form-control,
    [data-sesb-page="diary-entry"] .freq-table .form-select {
        min-height: 2.05rem;
    }
}

/* Frequência legada ----------------------------------------------------- */

.sesb-attendance-page {
    display: grid;
    gap: 1rem;
    padding-block: .25rem 2rem;
}

.sesb-attendance-page > .d-flex:first-child {
    gap: 1rem;
}

.sesb-attendance-filter {
    border: 1px solid var(--sesb-border) !important;
    border-radius: var(--sesb-radius-lg) !important;
    background: linear-gradient(135deg, #fff, var(--school-soft, #eff6ff)) !important;
}

.sesb-attendance-page .row > [class*="col-"] > .card {
    overflow: hidden;
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-lg);
    box-shadow: var(--sesb-shadow-sm) !important;
}

.sesb-attendance-page .card-header {
    border-bottom: 0;
}

.sesb-attendance-list {
    scrollbar-width: thin;
    overscroll-behavior: contain;
}

/* Tabelas convertidas em cartões no celular ----------------------------- */

@media (max-width: 767.98px) {
    .sesb-priority-page {
        --sesb-priority-gutter: .75rem;
    }

    .sesb-priority-page.dashboard-page,
    .sesb-priority-page.student-record-page,
    .sesb-priority-page.diario-page,
    .sesb-priority-page.aula-page {
        padding-block: .75rem 2.25rem;
    }

    [data-sesb-page="dashboard"] .dashboard-hero,
    [data-sesb-page="dashboard"] .hero-card,
    [data-sesb-page="student-record"] .record-hero,
    [data-sesb-page="student-record"] .ficha-hero,
    [data-sesb-page="diary-calendar"] .diario-hero,
    [data-sesb-page="diary-entry"] .aula-hero {
        border-radius: 1.25rem !important;
    }

    [data-sesb-page="dashboard"] .dashboard-hero .d-flex,
    [data-sesb-page="student-record"] .record-hero .d-flex,
    [data-sesb-page="student-record"] .ficha-hero .d-flex,
    [data-sesb-page="diary-calendar"] .diario-hero > .d-flex,
    [data-sesb-page="diary-entry"] .aula-hero > .d-flex {
        align-items: stretch !important;
    }

    [data-sesb-page="dashboard"] .dashboard-hero-icon,
    [data-sesb-page="student-record"] .record-hero-icon,
    [data-sesb-page="student-record"] .ficha-icon {
        width: 3.75rem !important;
        height: 3.75rem !important;
        border-radius: 1.15rem !important;
    }

    [data-sesb-page="dashboard"] .dashboard-hero-icon i,
    [data-sesb-page="student-record"] .record-hero-icon i,
    [data-sesb-page="student-record"] .ficha-icon i {
        font-size: 1.65rem !important;
    }

    [data-sesb-page="student-record"] .nav-pills,
    [data-sesb-page="diary-entry"] .nav-tabs,
    [data-sesb-page="diary-entry"] .nav-pills,
    [data-sesb-page="diary-calendar"] .diario-main-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: .3rem;
        scroll-snap-type: inline proximity;
        scrollbar-width: thin;
    }

    [data-sesb-page="student-record"] .nav-pills > *,
    [data-sesb-page="diary-entry"] .nav-tabs > *,
    [data-sesb-page="diary-entry"] .nav-pills > *,
    [data-sesb-page="diary-calendar"] .diario-main-tabs > * {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    [data-sesb-page="student-record"] .nav-pills .nav-link,
    [data-sesb-page="diary-entry"] .nav-link,
    [data-sesb-page="diary-calendar"] .diario-main-tabs .nav-link {
        min-height: 2.65rem;
        white-space: nowrap;
    }

    [data-sesb-page="diary-calendar"] .cal-grid {
        min-width: 780px;
        grid-template-columns: repeat(7, minmax(108px, 1fr));
    }

    [data-sesb-page="diary-calendar"] .cal-day {
        min-height: 108px;
    }

    [data-sesb-page="diary-entry"] .sticky-actions {
        position: sticky;
        bottom: 0;
        padding: .5rem 0 max(.5rem, env(safe-area-inset-bottom)) !important;
    }

    [data-sesb-page="diary-entry"] .sticky-box {
        align-items: stretch !important;
        border-radius: 1rem;
    }

    [data-sesb-page="diary-entry"] .sticky-box > .d-flex,
    [data-sesb-page="diary-entry"] .freq-save-footer > .d-flex {
        width: 100%;
    }

    [data-sesb-page="diary-entry"] .sticky-box .btn,
    [data-sesb-page="diary-entry"] .freq-save-footer .btn {
        flex: 1 1 10rem;
    }

    .sesb-attendance-page > .d-flex:first-child {
        align-items: stretch !important;
        flex-direction: column;
    }

    .sesb-attendance-page > .d-flex:first-child form,
    .sesb-attendance-page > .d-flex:first-child select {
        width: 100%;
    }

    .sesb-attendance-save {
        position: sticky;
        bottom: max(.5rem, env(safe-area-inset-bottom));
        z-index: 1005;
    }

    .sesb-attendance-save .btn {
        box-shadow: 0 12px 28px rgba(15, 23, 42, .18) !important;
    }

    .sesb-attendance-list {
        max-height: 52vh !important;
    }

    table[data-sesb-responsive-table="cards"] {
        display: block;
        width: 100%;
        min-width: 0 !important;
        border: 0 !important;
    }

    table[data-sesb-responsive-table="cards"] thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    table[data-sesb-responsive-table="cards"] tbody {
        display: grid;
        gap: .75rem;
        width: 100%;
        padding: .25rem;
    }

    table[data-sesb-responsive-table="cards"] tbody tr {
        display: grid;
        gap: 0;
        overflow: hidden;
        border: 1px solid var(--sesb-border);
        border-radius: 1rem;
        background: #fff;
        box-shadow: var(--sesb-shadow-sm);
    }

    table[data-sesb-responsive-table="cards"] tbody td {
        display: grid;
        grid-template-columns: minmax(6.8rem, 38%) minmax(0, 1fr);
        align-items: center;
        gap: .75rem;
        width: 100% !important;
        min-width: 0 !important;
        padding: .72rem .8rem !important;
        border: 0 !important;
        border-bottom: 1px solid #eef2f7 !important;
        text-align: left !important;
    }

    table[data-sesb-responsive-table="cards"] tbody td:last-child {
        border-bottom: 0 !important;
    }

    table[data-sesb-responsive-table="cards"] tbody td::before {
        content: attr(data-label);
        color: var(--sesb-text-muted);
        font-size: .69rem;
        font-weight: 800;
        letter-spacing: .035em;
        line-height: 1.25;
        text-transform: uppercase;
    }

    table[data-sesb-responsive-table="cards"] tbody td[data-label=""] {
        grid-template-columns: 1fr;
    }

    table[data-sesb-responsive-table="cards"] tbody td[data-label=""]::before {
        display: none;
    }

    table[data-sesb-responsive-table="cards"] .form-control,
    table[data-sesb-responsive-table="cards"] .form-select,
    table[data-sesb-responsive-table="cards"] .btn {
        width: 100%;
        max-width: 100%;
        min-height: 2.75rem;
    }

    table[data-sesb-responsive-table="cards"] .freq-toggle {
        width: 2.75rem !important;
        height: 2.75rem !important;
        min-height: 2.75rem;
    }
}

@media (max-width: 575.98px) {
    [data-sesb-page="dashboard"] .row > .col-6,
    [data-sesb-page="dashboard"] .row > [class*="col-md-"] {
        min-width: 0;
    }

    [data-sesb-page="dashboard"] .metric-card .card-body,
    [data-sesb-page="dashboard"] .module-card .card-body,
    [data-sesb-page="dashboard"] .private-card,
    [data-sesb-page="student-record"] .ficha-card .card-body,
    [data-sesb-page="student-record"] .record-card .card-body,
    [data-sesb-page="diary-entry"] .soft-card .card-body {
        padding: 1rem !important;
    }

    [data-sesb-page="student-record"] .student-photo {
        width: 7.5rem !important;
        height: 7.5rem !important;
        border-radius: 1.7rem !important;
    }

    [data-sesb-page="student-record"] .freq-grid {
        min-width: 540px;
    }

    .sesb-attendance-filter {
        padding: .85rem !important;
    }
}

@media print {
    .sesb-priority-page {
        width: 100%;
        max-width: none;
        padding: 0 !important;
    }

    .sesb-priority-page .table-responsive[data-sesb-scroll-region] {
        overflow: visible !important;
    }

    .sesb-priority-page .table-responsive[data-sesb-scroll-region]::after {
        display: none !important;
    }
}

/* Gestão administrativa compartilhada ------------------------------------ */

.sesb-management-page {
    width: min(100%, var(--sesb-content-max));
    margin-inline: auto;
    padding: clamp(.25rem, 1vw, .75rem) clamp(.1rem, 1vw, .5rem) clamp(1.5rem, 3vw, 2.5rem);
}

.sesb-management-page > :first-child:not(style):not(script),
.sesb-management-page > style + :not(style):not(script) {
    scroll-margin-top: 6rem;
}

.sesb-management-page h1,
.sesb-management-page h2,
.sesb-management-page h3 {
    letter-spacing: -.025em;
}

.sesb-management-page > .d-flex.mb-4,
.sesb-management-page > .d-flex[class*="mb-4"],
.sesb-management-page > .mb-4:first-child,
.sesb-management-page .turmas-hero,
.sesb-management-page .editar-turma-hero {
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-lg);
    background: linear-gradient(135deg, #fff 0%, var(--school-soft, #eff6ff) 165%);
    box-shadow: var(--sesb-shadow-sm);
}

.sesb-management-page > .d-flex.mb-4 h1,
.sesb-management-page > .d-flex.mb-4 h2,
.sesb-management-page > .d-flex.mb-4 h3,
.sesb-management-page > .mb-4:first-child h1,
.sesb-management-page > .mb-4:first-child h2,
.sesb-management-page > .mb-4:first-child h3 {
    margin-bottom: .25rem !important;
    color: var(--sesb-text) !important;
    font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important;
    font-weight: 800 !important;
}

.sesb-management-page > .d-flex.mb-4 p,
.sesb-management-page > .mb-4:first-child p {
    max-width: 78ch;
    color: var(--sesb-text-muted) !important;
    line-height: 1.55;
}

.sesb-management-page .card,
.sesb-management-page .clean-card,
.sesb-management-page .private-card,
.sesb-management-page .turmas-panel,
.sesb-management-page .editar-turma-card {
    border: 1px solid var(--sesb-border) !important;
    border-radius: var(--sesb-radius-lg) !important;
    box-shadow: var(--sesb-shadow-sm) !important;
}

.sesb-management-page .card-header,
.sesb-management-page .modal-header {
    border-bottom-color: var(--sesb-border);
}

.sesb-management-page .card-header:first-child {
    border-top-left-radius: calc(var(--sesb-radius-lg) - 1px) !important;
    border-top-right-radius: calc(var(--sesb-radius-lg) - 1px) !important;
}

.sesb-management-page .form-control,
.sesb-management-page .form-select,
.sesb-management-page .input-group-text {
    min-height: var(--sesb-control-height);
    border-color: var(--sesb-border-strong);
    border-radius: var(--sesb-radius-sm);
}

.sesb-management-page textarea.form-control {
    min-height: auto;
}

.sesb-management-page .form-control:focus,
.sesb-management-page .form-select:focus {
    border-color: var(--school-primary, #0d6efd);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--school-primary, #0d6efd) 15%, transparent);
}

.sesb-management-page .form-label {
    color: var(--sesb-text);
    font-size: .875rem;
    font-weight: 700;
}

.sesb-management-page .form-text {
    color: var(--sesb-text-muted);
    line-height: 1.45;
}

.sesb-management-page .btn:not(.btn-close) {
    min-height: 2.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
}

.sesb-management-page .btn-sm:not(.btn-close) {
    min-height: 2.25rem;
}

.sesb-management-page .rounded-pill.btn {
    padding-inline: 1rem;
}

.sesb-management-page .table-responsive[data-sesb-scroll-region] {
    position: relative;
    border-radius: inherit;
    scrollbar-gutter: stable;
}

.sesb-management-page table {
    color: var(--sesb-text);
}

.sesb-management-page table thead th {
    color: #475569;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .025em;
    vertical-align: middle;
}

.sesb-management-page table tbody td {
    vertical-align: middle;
}

.sesb-management-page table tbody tr:last-child td {
    border-bottom-width: 0;
}

.sesb-management-page table td.text-end .btn,
.sesb-management-page table td:last-child .btn {
    margin-block: .1rem;
}

.sesb-management-tabs {
    display: flex;
    flex-wrap: nowrap !important;
    gap: .5rem !important;
    overflow-x: auto;
    overflow-y: hidden;
    padding: .25rem .1rem .5rem;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

.sesb-management-tabs .nav-item {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.sesb-management-tabs .nav-link {
    min-height: 2.65rem;
    padding: .6rem 1rem;
    border: 1px solid var(--sesb-border);
    border-radius: 999px !important;
    color: var(--sesb-text-muted);
    background: #fff;
    font-weight: 750;
    white-space: nowrap;
}

.sesb-management-tabs .nav-link:hover,
.sesb-management-tabs .nav-link:focus-visible {
    color: var(--school-primary, #0d6efd);
    border-color: color-mix(in srgb, var(--school-primary, #0d6efd) 35%, var(--sesb-border));
}

.sesb-management-tabs .nav-link.active {
    color: #fff;
    border-color: var(--school-primary, #0d6efd);
    background: var(--school-primary, #0d6efd);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--school-primary, #0d6efd) 20%, transparent);
}

.sesb-management-page .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: var(--sesb-radius-lg);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .2);
}

.sesb-management-page .modal-footer {
    gap: .5rem;
}

.sesb-management-page [data-sesb-management$="-form"] > .container,
.sesb-management-page[data-sesb-management$="-form"] > .container {
    max-width: 760px !important;
}

.sesb-management-page[data-sesb-management="students-order"] .list-group {
    display: grid;
    gap: .5rem;
}

.sesb-management-page[data-sesb-management="students-order"] .list-group-item {
    border: 1px solid var(--sesb-border) !important;
    border-radius: .85rem !important;
    box-shadow: var(--sesb-shadow-sm);
}

.sesb-management-page[data-sesb-management="students-import"] code,
.sesb-management-page[data-sesb-management="pro-management"] code,
.sesb-management-page[data-sesb-management="pro-secretariat"] code {
    display: inline-block;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: .2rem .4rem;
    border-radius: .4rem;
    background: var(--sesb-surface-subtle);
}

.sesb-management-page[data-sesb-management="pro-management"] .tab-pane,
.sesb-management-page[data-sesb-management="pro-secretariat"] .tab-pane {
    scroll-margin-top: 7rem;
}

.sesb-management-page[data-sesb-management="staff-form"] .horario-scroll-area,
.sesb-management-page[data-sesb-management="staff-form"] .table-responsive,
.sesb-management-page[data-sesb-management="staff-detail"] .table-responsive {
    max-width: 100%;
}

@media (max-width: 991.98px) {
    .sesb-management-page {
        padding-inline: 0;
    }

    .sesb-management-page > .d-flex.mb-4,
    .sesb-management-page > .d-flex[class*="mb-4"] {
        align-items: stretch !important;
    }

    .sesb-management-page > .d-flex.mb-4 > .d-flex,
    .sesb-management-page > .d-flex[class*="mb-4"] > .d-flex {
        width: 100%;
    }

    .sesb-management-page > .d-flex.mb-4 > .d-flex .btn,
    .sesb-management-page > .d-flex[class*="mb-4"] > .d-flex .btn {
        flex: 1 1 auto;
    }

    .sesb-management-page .card-body > form.row > [class*="col-lg-"] .btn,
    .sesb-management-page .card-body > form.row > [class*="col-md-"] .btn {
        min-height: var(--sesb-control-height);
    }
}

@media (max-width: 767.98px) {
    .sesb-management-page > .d-flex.mb-4,
    .sesb-management-page > .d-flex[class*="mb-4"],
    .sesb-management-page > .mb-4:first-child,
    .sesb-management-page .turmas-hero,
    .sesb-management-page .editar-turma-hero {
        padding: 1rem;
    }

    .sesb-management-page .card-body,
    .sesb-management-page .private-card {
        padding: 1rem !important;
    }

    .sesb-management-page .card-body.p-0 {
        padding: 0 !important;
    }

    .sesb-management-page .row.g-4 {
        --bs-gutter-y: 1rem;
    }

    .sesb-management-page .modal-dialog:not(.modal-fullscreen) {
        margin: .75rem;
    }

    .sesb-management-page .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
    }

    .sesb-management-page .modal-footer .btn,
    .sesb-management-page .modal-footer form,
    .sesb-management-page .modal-footer form .btn {
        width: 100%;
    }

    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td.text-end {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: stretch !important;
        gap: .45rem;
    }

    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td:last-child::before,
    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td.text-end::before {
        flex: 0 0 100%;
    }

    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td:last-child > .btn,
    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form,
    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td.text-end > .btn,
    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form {
        flex: 1 1 2.75rem;
        width: auto;
        margin: 0 !important;
    }

    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form .btn,
    .sesb-management-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form .btn {
        width: 100%;
    }

    .sesb-management-page[data-sesb-management="students-list"] img,
    .sesb-management-page[data-sesb-management="class-detail"] img {
        max-width: 4rem;
        height: auto;
    }
}

@media (max-width: 575.98px) {
    .sesb-management-page > .d-flex.mb-4 .btn,
    .sesb-management-page > .d-flex[class*="mb-4"] .btn,
    .sesb-management-page .text-end > .btn:not(.btn-sm) {
        width: 100%;
    }

    .sesb-management-tabs {
        margin-inline: -.25rem;
        padding-inline: .25rem;
    }

    .sesb-management-page .alert.d-flex {
        align-items: flex-start !important;
    }

    .sesb-management-page[data-sesb-management="staff-form"] .table-responsive,
    .sesb-management-page[data-sesb-management="staff-detail"] .table-responsive,
    .sesb-management-page[data-sesb-management="students-import"] .table-responsive {
        margin-inline: -.25rem;
        padding-bottom: .35rem;
    }
}

@media print {
    .sesb-management-page {
        width: 100%;
        max-width: none;
        padding: 0;
    }

    .sesb-management-page .sesb-management-tabs,
    .sesb-management-page .btn,
    .sesb-management-page form {
        display: none !important;
    }
}

/* ========================================================================== */
/* Bloco 7 — Avaliações, provas, bancos de questões e atividades online       */
/* ========================================================================== */

.sesb-assessment-page {
    width: min(100%, 1560px);
    margin-inline: auto;
    padding: clamp(.85rem, 1.8vw, 1.5rem);
    color: var(--sesb-text);
    scroll-margin-top: 6rem;
}

body.sesb-assessment-page {
    width: auto;
    max-width: none;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    background: var(--sesb-page-bg, #f4f7fb);
}

body.sesb-assessment-page > .container,
body.sesb-assessment-page > .container-fluid {
    width: min(100%, 1560px);
    margin-inline: auto;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) h1,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) h2,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) h3 {
    letter-spacing: -.025em;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .card,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .cardx,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .soft,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .ao-panel,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .bank-panel,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .question-card,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .questao-card {
    border-color: var(--sesb-border) !important;
    border-radius: var(--sesb-radius-lg) !important;
    box-shadow: var(--sesb-shadow-sm) !important;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .card-header,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .modal-header,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .border-bottom {
    border-bottom-color: var(--sesb-border) !important;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .form-control,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .form-select,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .input-group-text {
    min-height: var(--sesb-control-height);
    border-color: var(--sesb-border-strong);
    border-radius: var(--sesb-radius-sm);
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) textarea.form-control {
    min-height: auto;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .form-control:focus,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .form-select:focus,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) [contenteditable="true"]:focus {
    border-color: var(--school-primary, #0d6efd);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--school-primary, #0d6efd) 15%, transparent);
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .form-label,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .filter-label {
    color: var(--sesb-text);
    font-size: .875rem;
    font-weight: 750;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .form-text,
.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .small-help {
    color: var(--sesb-text-muted);
    line-height: 1.45;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .btn:not(.btn-close) {
    min-height: 2.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
}

.sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .btn-sm:not(.btn-close) {
    min-height: 2.25rem;
}

.sesb-assessment-page .table-responsive[data-sesb-scroll-region] {
    position: relative;
    border-radius: inherit;
    scrollbar-gutter: stable;
}

.sesb-assessment-page table {
    color: var(--sesb-text);
}

.sesb-assessment-page table thead th {
    color: #475569;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .025em;
    vertical-align: middle;
}

.sesb-assessment-page table tbody td {
    vertical-align: middle;
}

.sesb-assessment-page table tbody tr:last-child td {
    border-bottom-width: 0;
}

.sesb-assessment-page .nav-tabs,
.sesb-assessment-page .nav-pills {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.sesb-assessment-page .nav-tabs .nav-link,
.sesb-assessment-page .nav-pills .nav-link {
    min-height: 2.6rem;
    white-space: nowrap;
}

.sesb-assessment-page .alert {
    border-radius: var(--sesb-radius-md);
}

.sesb-assessment-page .modal-content {
    border: 1px solid var(--sesb-border);
    border-radius: var(--sesb-radius-lg);
    overflow: hidden;
}

.sesb-assessment-page .modal-footer {
    border-top-color: var(--sesb-border);
}

.sesb-assessment-page .note-editor,
.sesb-assessment-page .rich-wrap,
.sesb-assessment-page .bank-rich-editor,
.sesb-assessment-page [contenteditable="true"] {
    max-width: 100%;
}

.sesb-assessment-page .note-toolbar,
.sesb-assessment-page .rich-toolbar,
.sesb-assessment-page .bank-rich-toolbar {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

.sesb-assessment-page .note-editable,
.sesb-assessment-page .rich-editor,
.sesb-assessment-page .bank-rich-editor [contenteditable="true"] {
    overflow-wrap: anywhere;
}

.sesb-assessment-page .note-editable img,
.sesb-assessment-page .rich-editor img,
.sesb-assessment-page .bank-enunciado img,
.sesb-assessment-page .rich-content img,
.sesb-assessment-page .questao-conteudo img {
    max-width: 100% !important;
    height: auto !important;
}

.sesb-assessment-page[data-sesb-assessment="assessment-hub"] .card,
.sesb-assessment-page[data-sesb-assessment="online-dashboard"] .card,
.sesb-assessment-page[data-sesb-assessment="student-dashboard"] .card,
.sesb-assessment-page[data-sesb-assessment="enem-admin-dashboard"] .card {
    height: 100%;
}

.sesb-assessment-page[data-sesb-assessment="question-bank"] .bank-question,
.sesb-assessment-page[data-sesb-assessment="question-bank"] .question-card,
.sesb-assessment-page[data-sesb-assessment="question-bank"] .questao-card {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

@media (hover: hover) and (pointer: fine) {
    .sesb-assessment-page[data-sesb-assessment="question-bank"] .bank-question:hover,
    .sesb-assessment-page[data-sesb-assessment="question-bank"] .question-card:hover,
    .sesb-assessment-page[data-sesb-assessment="question-bank"] .questao-card:hover {
        transform: translateY(-2px);
        border-color: color-mix(in srgb, var(--school-primary, #0d6efd) 35%, var(--sesb-border)) !important;
        box-shadow: var(--sesb-shadow-md) !important;
    }
}

.sesb-assessment-page[data-sesb-assessment="question-editor"] .image-tools,
.sesb-assessment-page[data-sesb-assessment="question-editor"] .editor-toolbar,
.sesb-assessment-page[data-sesb-assessment="question-editor"] .rich-toolbar {
    max-width: 100%;
}

.sesb-assessment-page[data-sesb-assessment="exam-builder"] .list-group-item,
.sesb-assessment-page[data-sesb-assessment="question-editor"] .list-group-item,
.sesb-assessment-page[data-sesb-assessment="answer-key"] .list-group-item {
    border-color: var(--sesb-border);
}

.sesb-assessment-page[data-sesb-assessment="omr-scanner"] video,
.sesb-assessment-page[data-sesb-assessment="omr-scanner"] canvas,
.sesb-assessment-page[data-sesb-assessment="omr-scanner"] img,
.sesb-assessment-page[data-sesb-assessment="omr-management"] video,
.sesb-assessment-page[data-sesb-assessment="omr-management"] canvas {
    max-width: 100%;
    height: auto;
}

.sesb-assessment-page[data-sesb-assessment="online-student"] .question-card,
.sesb-assessment-page[data-sesb-assessment="online-student"] .questao-card,
.sesb-assessment-page[data-sesb-assessment="online-correction"] .question-card,
.sesb-assessment-page[data-sesb-assessment="online-correction"] .questao-card {
    overflow: hidden;
}

@media (max-width: 991.98px) {
    .sesb-assessment-page {
        padding: 1rem;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .sticky-top,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) [style*="position: sticky"],
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) [style*="position:sticky"] {
        position: static !important;
        top: auto !important;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.justify-content-between,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.align-items-center.justify-content-between {
        flex-wrap: wrap;
    }

    .sesb-assessment-page[data-sesb-assessment="question-editor"] .row > [class*="col-lg-"],
    .sesb-assessment-page[data-sesb-assessment="exam-builder"] .row > [class*="col-lg-"],
    .sesb-assessment-page[data-sesb-assessment="online-correction"] .row > [class*="col-lg-"] {
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    .sesb-assessment-page {
        padding: .75rem;
    }

    body.sesb-assessment-page > .container,
    body.sesb-assessment-page > .container-fluid {
        padding-inline: .75rem !important;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .card-body,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .cardx .card-body,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .ao-panel,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .bank-panel {
        padding: 1rem !important;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .p-4,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .p-lg-5 {
        padding: 1rem !important;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .row.g-4 {
        --bs-gutter-y: 1rem;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .modal-dialog:not(.modal-fullscreen) {
        margin: .65rem;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .modal-footer .btn,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .modal-footer form,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .modal-footer form .btn {
        width: 100%;
    }

    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td.text-end {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: stretch !important;
        gap: .45rem;
    }

    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td:last-child::before,
    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td.text-end::before {
        flex: 0 0 100%;
    }

    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td:last-child > .btn,
    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form,
    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td.text-end > .btn,
    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form {
        flex: 1 1 8rem;
        width: auto;
        margin: 0 !important;
    }

    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form .btn,
    .sesb-assessment-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form .btn {
        width: 100%;
    }

    .sesb-assessment-page[data-sesb-assessment="question-editor"] .rich-toolbar,
    .sesb-assessment-page[data-sesb-assessment="question-editor"] .note-toolbar,
    .sesb-assessment-page[data-sesb-assessment="question-editor"] .bank-rich-toolbar {
        flex-wrap: nowrap !important;
    }

    .sesb-assessment-page[data-sesb-assessment="question-editor"] .crop-stage {
        height: 58vh !important;
    }
}

@media (max-width: 575.98px) {
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) h1,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .display-6 {
        font-size: clamp(1.45rem, 7vw, 1.9rem) !important;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.gap-2.flex-wrap > .btn,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.gap-2.flex-wrap > form,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.gap-3.flex-wrap > .btn,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.gap-3.flex-wrap > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.gap-2.flex-wrap > form .btn,
    .sesb-assessment-page:not([data-sesb-assessment="exam-taking"]) .d-flex.gap-3.flex-wrap > form .btn {
        width: 100%;
    }

    .sesb-assessment-page[data-sesb-assessment="question-bank"] .bank-question,
    .sesb-assessment-page[data-sesb-assessment="question-bank"] .question-card,
    .sesb-assessment-page[data-sesb-assessment="question-bank"] .questao-card {
        padding: .9rem !important;
    }

    .sesb-assessment-page[data-sesb-assessment="online-student"] .position-fixed,
    .sesb-assessment-page[data-sesb-assessment="online-correction"] .position-fixed {
        max-width: calc(100vw - 1.5rem);
    }
}

@media print {
    .sesb-assessment-page {
        width: 100%;
        max-width: none;
        padding: 0;
    }

    .sesb-assessment-page .btn,
    .sesb-assessment-page .nav,
    .sesb-assessment-page form:not(.sesb-print-form) {
        display: none !important;
    }
}

/* Comunicação, formulários, documentos e portais ------------------------- */

.sesb-communication-page {
    min-width: 0;
}

.sesb-communication-page:not(body) {
    width: min(100%, var(--sesb-content-max));
    margin-inline: auto;
}

.sesb-communication-page img,
.sesb-family-portal img {
    max-width: 100%;
    height: auto;
}

.sesb-communication-page .card,
.sesb-communication-page .forms-card,
.sesb-communication-page .notice-card,
.sesb-communication-page .mural-card,
.sesb-communication-page .blog-card,
.sesb-communication-page .album-card,
.sesb-communication-page .leader-card,
.sesb-communication-page .ata-card {
    border-color: var(--sesb-border);
}

.sesb-communication-page .form-control,
.sesb-communication-page .form-select,
.sesb-communication-page .input-group-text,
.sesb-family-portal .form-control,
.sesb-family-portal .form-select,
.sesb-family-portal .input-group-text {
    min-height: var(--sesb-control-height);
}

.sesb-communication-page textarea.form-control,
.sesb-family-portal textarea.form-control {
    min-height: 7rem;
    resize: vertical;
}

.sesb-communication-page input[type="file"].form-control,
.sesb-family-portal input[type="file"].form-control {
    padding-block: .55rem;
}

.sesb-communication-page .nav-tabs,
.sesb-communication-page .nav-pills,
.student-portal .portal-main-tabs {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}

.sesb-communication-page .nav-tabs .nav-link,
.sesb-communication-page .nav-pills .nav-link,
.student-portal .portal-main-tabs .nav-link {
    min-height: 2.65rem;
    white-space: nowrap;
}

.sesb-communication-page .dropdown-menu {
    max-width: min(22rem, calc(100vw - 2rem));
}

.sesb-communication-page [style*="white-space:pre-wrap"],
.sesb-communication-page .notice-msg,
.sesb-communication-page .forms-answer-text,
.sesb-family-portal [style*="white-space:pre-wrap"] {
    overflow-wrap: anywhere;
}

.sesb-communication-page[data-sesb-communication="announcements"] .sticky-xl-top,
.sesb-communication-page[data-sesb-communication="blog-admin"] .sticky-top,
.sesb-communication-page[data-sesb-communication="forms-editor"] .forms-sticky-actions {
    z-index: 4;
}

.sesb-communication-page[data-sesb-communication="announcements"] .turmas-box,
.sesb-communication-page[data-sesb-communication="forms-editor"] .forms-recipient-list {
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.sesb-communication-page[data-sesb-communication="announcements"] .anexo-card,
.sesb-communication-page[data-sesb-communication="gallery"] a,
.sesb-communication-page[data-sesb-communication="gallery-admin"] a {
    overflow-wrap: anywhere;
}

.sesb-communication-page[data-sesb-communication="gallery"] .row > *,
.sesb-communication-page[data-sesb-communication="gallery-admin"] .row > *,
.sesb-communication-page[data-sesb-communication="blog-admin"] .row > *,
.sesb-communication-page[data-sesb-communication="leadership"] .row > * {
    min-width: 0;
}

.sesb-communication-page[data-sesb-communication="gallery"] img,
.sesb-communication-page[data-sesb-communication="gallery-admin"] img,
.sesb-communication-page[data-sesb-communication="blog-admin"] img,
body[data-sesb-communication="public-blog"] img {
    object-fit: cover;
}

.sesb-communication-page[data-sesb-communication="forms-dashboard"] .forms-card,
.sesb-communication-page[data-sesb-communication="forms-results"] .forms-card,
.sesb-communication-page[data-sesb-communication="forms-submission"] .forms-card {
    overflow: hidden;
}

.sesb-communication-page[data-sesb-communication="forms-editor"] .forms-sticky-actions {
    bottom: max(.75rem, env(safe-area-inset-bottom));
}

.sesb-communication-page[data-sesb-communication="forms-results"] table[data-sesb-responsive-table="cards"] {
    min-width: 100%;
}

.sesb-communication-page[data-sesb-communication="notifications"] .sesb-notification {
    align-items: flex-start;
}

.sesb-communication-page[data-sesb-communication="notifications"] .sesb-notification form,
.sesb-communication-page[data-sesb-communication="notifications"] .sesb-notification .btn {
    margin: 0;
}

.student-portal.sesb-communication-page {
    max-width: none;
}

.student-portal.sesb-communication-page .portal-section,
.student-portal.sesb-communication-page .portal-tool-card,
.student-portal.sesb-communication-page .portal-kpi {
    min-width: 0;
}

.student-portal.sesb-communication-page .portal-section-body,
.student-portal.sesb-communication-page .portal-card-body {
    overflow-wrap: anywhere;
}

.student-portal.sesb-communication-page .portal-main-nav-shell {
    max-width: 100%;
}

.student-portal.sesb-communication-page .portal-main-tabs {
    scroll-padding-inline: 1rem;
}

.student-portal.sesb-communication-page .portal-avatar,
.student-portal.sesb-communication-page .profile-img-container img {
    display: block;
}

/* Portal da Família: herda identidade própria, mas usa o mesmo contrato de uso. */

body.sesb-family-portal {
    font-family: var(--sesb-font-family);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.sesb-family-portal :focus-visible {
    outline: 3px solid color-mix(in srgb, var(--familia-primary, #2563eb) 34%, transparent);
    outline-offset: 2px;
}

.sesb-family-portal .familia-topbar .container,
.sesb-family-portal .familia-shell > .container {
    width: min(100%, 1500px);
}

.sesb-family-portal .family-card,
.sesb-family-portal .family-card-header,
.sesb-family-portal .empty-state {
    min-width: 0;
}

.sesb-family-portal .family-card img,
.sesb-family-portal .document-preview img,
.sesb-family-portal .student-photo img {
    max-width: 100%;
    height: auto;
}

.sesb-family-portal .table-responsive {
    border-radius: var(--sesb-radius-md);
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}

.sesb-family-portal .modal-content {
    border-radius: var(--sesb-radius-lg);
    overflow: hidden;
}

.sesb-family-portal .btn,
.sesb-family-portal .family-control {
    min-height: 2.75rem;
}

.sesb-family-portal .topbar-actions,
.sesb-family-portal [class*="actions"] {
    min-width: 0;
}

/* Páginas públicas: pequenos ajustes sem substituir sua identidade. */

body.sesb-communication-page[data-sesb-communication="public-blog"],
body.sesb-communication-page[data-sesb-communication="public-form"] {
    font-family: var(--sesb-font-family);
    overflow-x: hidden;
}

body.sesb-communication-page[data-sesb-communication="public-blog"] main,
body.sesb-communication-page[data-sesb-communication="public-form"] main {
    min-width: 0;
}

body.sesb-communication-page[data-sesb-communication="public-blog"] .container,
body.sesb-communication-page[data-sesb-communication="public-form"] .public-shell {
    max-width: min(100%, 1200px);
}

body.sesb-communication-page[data-sesb-communication="public-blog"] article,
body.sesb-communication-page[data-sesb-communication="public-form"] .public-card,
body.sesb-communication-page[data-sesb-communication="public-form"] .public-head {
    min-width: 0;
}

@media (max-width: 991.98px) {
    .sesb-communication-page[data-sesb-communication="announcements"] .sticky-xl-top,
    .sesb-communication-page[data-sesb-communication="blog-admin"] .sticky-top {
        position: static !important;
        top: auto !important;
    }

    .sesb-communication-page[data-sesb-communication="forms-editor"] .row > [class*="col-xl-"],
    .sesb-communication-page[data-sesb-communication="leadership"] .row > [class*="col-xl-"],
    .sesb-communication-page[data-sesb-communication="announcements"] .row > [class*="col-xl-"] {
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    .sesb-communication-page:not(body) {
        padding-inline: .75rem;
    }

    .sesb-communication-page .card-body,
    .sesb-communication-page .forms-card,
    .sesb-communication-page .mural-card .card-body,
    .sesb-communication-page .notice-card > .p-4,
    .sesb-communication-page .notice-card > .p-md-4 {
        padding: 1rem !important;
    }

    .sesb-communication-page .modal-dialog:not(.modal-fullscreen) {
        margin: .65rem;
    }

    .sesb-communication-page .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
    }

    .sesb-communication-page .modal-footer .btn,
    .sesb-communication-page .modal-footer form,
    .sesb-communication-page .modal-footer form .btn {
        width: 100%;
    }

    .sesb-communication-page[data-sesb-communication="announcements"] .notice-top,
    .sesb-communication-page[data-sesb-communication="leadership"] .d-flex.justify-content-between,
    .sesb-communication-page[data-sesb-communication="forms-dashboard"] .d-flex.justify-content-between,
    .sesb-communication-page[data-sesb-communication="forms-results"] .d-flex.justify-content-between {
        align-items: stretch !important;
    }

    .sesb-communication-page[data-sesb-communication="forms-editor"] .forms-sticky-actions {
        position: static !important;
    }

    .sesb-communication-page[data-sesb-communication="forms-editor"] .forms-sticky-actions .d-flex,
    .sesb-communication-page[data-sesb-communication="forms-dashboard"] .forms-card > .d-flex:last-child,
    .sesb-communication-page[data-sesb-communication="notifications"] .sesb-notification .d-flex {
        align-items: stretch;
    }

    .sesb-communication-page[data-sesb-communication="forms-editor"] .forms-sticky-actions .btn,
    .sesb-communication-page[data-sesb-communication="forms-dashboard"] .forms-card > .d-flex:last-child > .btn,
    .sesb-communication-page[data-sesb-communication="forms-dashboard"] .forms-card > .d-flex:last-child > form,
    .sesb-communication-page[data-sesb-communication="forms-dashboard"] .forms-card > .d-flex:last-child > form .btn {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-communication-page[data-sesb-communication="forms-results"] table[data-sesb-responsive-table="cards"] tbody td:last-child {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem;
    }

    .sesb-communication-page[data-sesb-communication="forms-results"] table[data-sesb-responsive-table="cards"] tbody td:last-child::before {
        flex: 0 0 100%;
    }

    .sesb-communication-page[data-sesb-communication="forms-results"] table[data-sesb-responsive-table="cards"] tbody td:last-child .btn {
        width: 100%;
    }

    .student-portal.sesb-communication-page .portal-main-nav-shell {
        padding-inline: .75rem;
    }

    .student-portal.sesb-communication-page .portal-main-tabs {
        justify-content: flex-start !important;
    }

    .sesb-family-portal .familia-topbar .container {
        align-items: flex-start !important;
        flex-wrap: wrap;
    }

    .sesb-family-portal .familia-topbar .container > .d-flex,
    .sesb-family-portal .familia-topbar form,
    .sesb-family-portal .familia-topbar .btn {
        max-width: 100%;
    }

    .sesb-family-portal .family-card .d-flex.justify-content-between,
    .sesb-family-portal .family-card-header.d-flex,
    .sesb-family-portal .family-card-header .d-flex {
        flex-wrap: wrap;
    }

    .sesb-family-portal .modal-dialog:not(.modal-fullscreen) {
        margin: .65rem;
    }

    body.sesb-communication-page[data-sesb-communication="public-blog"] .blog-hero,
    body.sesb-communication-page[data-sesb-communication="public-form"] .public-head {
        border-radius: 1.25rem;
    }
}

@media (max-width: 575.98px) {
    .sesb-communication-page:not(body) {
        padding-inline: .5rem;
    }

    .sesb-communication-page h1,
    .sesb-communication-page .display-5,
    .sesb-communication-page .display-6 {
        font-size: clamp(1.45rem, 7vw, 1.9rem) !important;
    }

    .sesb-communication-page .d-flex.flex-wrap.gap-2 > .btn,
    .sesb-communication-page .d-flex.flex-wrap.gap-2 > form,
    .sesb-communication-page .d-flex.flex-wrap.gap-3 > .btn,
    .sesb-communication-page .d-flex.flex-wrap.gap-3 > form {
        flex: 1 1 100%;
    }

    .sesb-communication-page .d-flex.flex-wrap.gap-2 > form .btn,
    .sesb-communication-page .d-flex.flex-wrap.gap-3 > form .btn {
        width: 100%;
    }

    .sesb-communication-page[data-sesb-communication="forms-response"] .forms-question,
    .sesb-communication-page[data-sesb-communication="forms-submission"] .forms-question {
        padding: 1rem !important;
    }

    .sesb-communication-page[data-sesb-communication="forms-response"] .forms-question-number,
    .sesb-communication-page[data-sesb-communication="forms-submission"] .forms-question-number {
        flex: 0 0 auto;
    }

    .sesb-family-portal .familia-brand {
        max-width: calc(100vw - 2rem);
    }

    .sesb-family-portal .familia-brand strong,
    .sesb-family-portal .familia-brand small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .sesb-family-portal .family-card,
    .sesb-family-portal .family-card-header {
        border-radius: 1.1rem;
    }

    body.sesb-communication-page[data-sesb-communication="public-blog"] .container,
    body.sesb-communication-page[data-sesb-communication="public-form"] .public-shell {
        padding-inline: .75rem;
    }
}

/* --------------------------------------------------------------------------
   Bloco 9 — Coordenação, tutoria, conselho e acompanhamento pedagógico
   Camada progressiva: não substitui estilos locais nem regras de negócio.
   -------------------------------------------------------------------------- */

.sesb-coordination-page {
    min-width: 0;
    width: 100%;
    color: var(--sesb-text);
}

.sesb-coordination-page > .container,
.sesb-coordination-page > .container-fluid,
.sesb-coordination-page .conselho-page > .container-fluid,
.sesb-coordination-page .coord-page > .container-fluid,
.sesb-coordination-page .coord-page > .container {
    width: min(100%, 1540px);
    min-width: 0;
}

.sesb-coordination-page .row > [class*="col-"] {
    min-width: 0;
}

.sesb-coordination-page .card,
.sesb-coordination-page .soft,
.sesb-coordination-page .turma-card,
.sesb-coordination-page .cal-card,
.sesb-coordination-page .event-item,
.sesb-coordination-page .list-group-item,
.sesb-coordination-page .accordion-item {
    min-width: 0;
}

.sesb-coordination-page .card,
.sesb-coordination-page .soft {
    overflow-wrap: anywhere;
}

.sesb-coordination-page .card:not(.border-0),
.sesb-coordination-page .list-group-item,
.sesb-coordination-page .accordion-item {
    border-color: var(--sesb-border);
}

.sesb-coordination-page .form-control,
.sesb-coordination-page .form-select,
.sesb-coordination-page .input-group-text {
    min-height: 2.75rem;
}

.sesb-coordination-page textarea.form-control {
    min-height: 6.5rem;
}

.sesb-coordination-page .btn {
    min-height: 2.55rem;
}

.sesb-coordination-page .btn-sm {
    min-height: 2.15rem;
}

.sesb-coordination-page .table-responsive,
.sesb-coordination-page [data-sesb-scroll-region] {
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}

.sesb-coordination-page [data-sesb-scroll-region][data-sesb-overflow="true"] {
    box-shadow: inset -12px 0 15px -16px rgba(15, 23, 42, .55);
}

.sesb-coordination-page .table {
    --bs-table-bg: transparent;
}

.sesb-coordination-page .table th {
    vertical-align: middle;
}

.sesb-coordination-page .table td {
    vertical-align: middle;
}

.sesb-coordination-page .nav-tabs,
.sesb-coordination-page .nav-pills {
    scrollbar-width: thin;
}

.sesb-coordination-page .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: var(--sesb-radius-lg);
    box-shadow: var(--sesb-shadow-lg);
}

.sesb-coordination-page .modal-body {
    min-width: 0;
}

.sesb-coordination-page .modal-body img,
.sesb-coordination-page .card-body img,
.sesb-coordination-page video {
    max-width: 100%;
    height: auto;
}

.sesb-coordination-page .sticky-save,
.sesb-coordination-page .sticky-actions {
    isolation: isolate;
}

/* Conselho de Classe */
.sesb-coordination-page[data-sesb-coordination^="council"] .conselho-hero,
.sesb-coordination-page[data-sesb-coordination^="council"] .ficha-card,
.sesb-coordination-page[data-sesb-coordination^="council"] .turma-card {
    max-width: 100%;
}

.sesb-coordination-page[data-sesb-coordination="council-form"] .table-foco textarea,
.sesb-coordination-page[data-sesb-coordination="council-class"] .table-conselho textarea {
    width: 100%;
    resize: vertical;
}

/* Tutoria e acompanhamento */
.sesb-coordination-page[data-sesb-coordination^="tutoring"] .progress,
.sesb-coordination-page[data-sesb-coordination="support"] .progress {
    min-width: 5rem;
}

.sesb-coordination-page[data-sesb-coordination="support-chat"] .chat-container {
    max-height: min(65vh, 760px);
    min-height: 20rem;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.sesb-coordination-page[data-sesb-coordination="support-chat"] .msg-bubble {
    overflow-wrap: anywhere;
}

/* Núcleo diversificado e registros pedagógicos */
.sesb-coordination-page[data-sesb-coordination^="diversified"] .nav-tabs,
.sesb-coordination-page[data-sesb-coordination="pedagogical-record"] .nav-tabs,
.sesb-coordination-page[data-sesb-coordination="discipline"] .nav-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: inline proximity;
}

.sesb-coordination-page[data-sesb-coordination^="diversified"] .nav-tabs > *,
.sesb-coordination-page[data-sesb-coordination="pedagogical-record"] .nav-tabs > *,
.sesb-coordination-page[data-sesb-coordination="discipline"] .nav-tabs > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

/* Calendários: preserva a grade mensal e controla a rolagem em telas estreitas. */
.sesb-coordination-page[data-sesb-coordination="calendar"] .cal-month-board,
.sesb-coordination-page[data-sesb-coordination="calendar"] .calendar-grid-wrapper,
.sesb-coordination-page[data-sesb-coordination="calendar"] .calendar-board,
.sesb-coordination-page[data-sesb-coordination="calendar"] .calendario-grid-wrap {
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
    overscroll-behavior-inline: contain;
}

.sesb-coordination-page[data-sesb-coordination="calendar"] .cal-month-grid,
.sesb-coordination-page[data-sesb-coordination="calendar"] .cal-week-grid {
    scroll-snap-type: inline proximity;
}

.sesb-coordination-page[data-sesb-coordination="calendar"] .event-item {
    overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
    .sesb-coordination-page .sticky-xl-top,
    .sesb-coordination-page .position-sticky:not(.sticky-save):not(.sticky-actions) {
        position: static !important;
        top: auto !important;
    }

    .sesb-coordination-page[data-sesb-coordination="calendar"] .cal-month-grid,
    .sesb-coordination-page[data-sesb-coordination="calendar"] .cal-week-grid {
        min-width: 760px;
    }

    .sesb-coordination-page[data-sesb-coordination="support-chat"] .chat-container {
        height: 58vh;
    }
}

@media (max-width: 767.98px) {
    .sesb-coordination-page {
        padding-inline: .75rem;
        padding-bottom: max(2rem, env(safe-area-inset-bottom));
    }

    .sesb-coordination-page > .container,
    .sesb-coordination-page > .container-fluid,
    .sesb-coordination-page .conselho-page > .container-fluid,
    .sesb-coordination-page .coord-page > .container-fluid,
    .sesb-coordination-page .coord-page > .container {
        padding-inline: 0 !important;
    }

    .sesb-coordination-page h1,
    .sesb-coordination-page h2,
    .sesb-coordination-page .display-5,
    .sesb-coordination-page .display-6 {
        overflow-wrap: anywhere;
    }

    .sesb-coordination-page .card-body,
    .sesb-coordination-page .card-header,
    .sesb-coordination-page .soft > .p-4,
    .sesb-coordination-page .conselho-hero,
    .sesb-coordination-page .coord-hero,
    .sesb-coordination-page .cal-hero {
        padding: 1rem !important;
    }

    .sesb-coordination-page .d-flex.justify-content-between,
    .sesb-coordination-page .d-flex.align-items-center.justify-content-between {
        align-items: stretch !important;
    }

    .sesb-coordination-page .d-flex.justify-content-between > .text-end,
    .sesb-coordination-page .d-flex.align-items-center.justify-content-between > .text-end {
        text-align: left !important;
    }

    .sesb-coordination-page .nav-tabs,
    .sesb-coordination-page .nav-pills {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: .25rem;
        scroll-snap-type: inline proximity;
    }

    .sesb-coordination-page .nav-tabs > *,
    .sesb-coordination-page .nav-pills > * {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .sesb-coordination-page .nav-link {
        white-space: nowrap;
    }

    .sesb-coordination-page .modal-dialog:not(.modal-fullscreen) {
        margin: .65rem;
    }

    .sesb-coordination-page .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .sesb-coordination-page .modal-footer .btn,
    .sesb-coordination-page .modal-footer form,
    .sesb-coordination-page .modal-footer form .btn {
        width: 100%;
    }

    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td.text-end {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem;
    }

    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td:last-child::before,
    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td.text-end::before {
        flex: 0 0 100%;
    }

    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td:last-child > .btn,
    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form,
    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td.text-end > .btn,
    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form .btn,
    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form .btn {
        width: 100%;
    }

    .sesb-coordination-page[data-sesb-coordination="council-form"] .sticky-save,
    .sesb-coordination-page[data-sesb-coordination="council-class"] .sticky-save {
        bottom: max(.5rem, env(safe-area-inset-bottom));
    }

    .sesb-coordination-page[data-sesb-coordination="council-form"] .sticky-save .btn,
    .sesb-coordination-page[data-sesb-coordination="council-class"] .sticky-save .btn {
        width: 100%;
        box-shadow: 0 12px 28px rgba(15, 23, 42, .18);
    }

    .sesb-coordination-page[data-sesb-coordination="support-chat"] .chat-container {
        height: 52vh;
        min-height: 18rem;
        padding: .75rem;
    }

    .sesb-coordination-page[data-sesb-coordination="support-chat"] .msg-bubble {
        max-width: 92%;
        padding: .85rem;
    }

    .sesb-coordination-page[data-sesb-coordination="calendar"] .cal-month-day {
        min-height: 100px;
    }

    .sesb-coordination-page[data-sesb-coordination="calendar"] .event-item {
        align-items: stretch !important;
        flex-wrap: wrap;
    }

    .sesb-coordination-page[data-sesb-coordination="calendar"] .event-item > form,
    .sesb-coordination-page[data-sesb-coordination="calendar"] .event-item > form .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .sesb-coordination-page {
        padding-inline: .5rem;
    }

    .sesb-coordination-page h2,
    .sesb-coordination-page .display-5,
    .sesb-coordination-page .display-6 {
        font-size: clamp(1.4rem, 7vw, 1.85rem) !important;
    }

    .sesb-coordination-page .d-flex.flex-wrap.gap-2 > .btn,
    .sesb-coordination-page .d-flex.flex-wrap.gap-2 > form,
    .sesb-coordination-page .d-flex.flex-wrap.gap-3 > .btn,
    .sesb-coordination-page .d-flex.flex-wrap.gap-3 > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-coordination-page .d-flex.flex-wrap.gap-2 > form .btn,
    .sesb-coordination-page .d-flex.flex-wrap.gap-3 > form .btn {
        width: 100%;
    }

    .sesb-coordination-page table[data-sesb-responsive-table="cards"] tbody td {
        grid-template-columns: minmax(6.2rem, 36%) minmax(0, 1fr);
        gap: .6rem;
        padding: .7rem .75rem !important;
    }

    .sesb-coordination-page[data-sesb-coordination="calendar"] .cal-hero,
    .sesb-coordination-page[data-sesb-coordination^="council"] .conselho-hero,
    .sesb-coordination-page[data-sesb-coordination="diary-review"] .coord-hero {
        border-radius: 1.15rem !important;
    }
}

@media print {
    .sesb-coordination-page {
        padding: 0 !important;
    }
}

/* ========================================================================== */
/* BLOCO 10 — Ferramentas auxiliares do professor e bibliotecas              */
/* ========================================================================== */
.sesb-teacher-tools-page {
    width: 100%;
    min-width: 0;
    padding-bottom: 2.5rem;
}

.sesb-teacher-tools-page > .container,
.sesb-teacher-tools-page > .container-fluid,
.sesb-teacher-tools-page .biblioteca-shell > .container,
.sesb-teacher-tools-page .biblioteca-shell > .container-fluid {
    width: min(100%, 1540px);
    min-width: 0;
}

.sesb-teacher-tools-page .row > [class*="col-"] {
    min-width: 0;
}

.sesb-teacher-tools-page .card,
.sesb-teacher-tools-page .soft-card,
.sesb-teacher-tools-page .mat-card,
.sesb-teacher-tools-page .goias-card,
.sesb-teacher-tools-page .recv-card,
.sesb-teacher-tools-page .print-card,
.sesb-teacher-tools-page .biblioteca-folder-card,
.sesb-teacher-tools-page .biblioteca-public-material,
.sesb-teacher-tools-page .biblioteca-material-row,
.sesb-teacher-tools-page .material-card,
.sesb-teacher-tools-page .cert-card,
.sesb-teacher-tools-page .turma-card,
.sesb-teacher-tools-page .map-card {
    min-width: 0;
    overflow-wrap: anywhere;
}

.sesb-teacher-tools-page .form-control,
.sesb-teacher-tools-page .form-select,
.sesb-teacher-tools-page .input-group-text {
    min-height: 2.75rem;
}

.sesb-teacher-tools-page textarea.form-control {
    min-height: 6.5rem;
    resize: vertical;
}

.sesb-teacher-tools-page .btn {
    min-height: 2.55rem;
}

.sesb-teacher-tools-page .btn-sm {
    min-height: 2.15rem;
}

.sesb-teacher-tools-page img,
.sesb-teacher-tools-page video,
.sesb-teacher-tools-page canvas {
    max-width: 100%;
}

.sesb-teacher-tools-page .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: var(--sesb-radius-lg);
    box-shadow: var(--sesb-shadow-lg);
}

.sesb-teacher-tools-page .modal-body {
    min-width: 0;
}

.sesb-teacher-tools-page .nav-tabs,
.sesb-teacher-tools-page .nav-pills,
.sesb-teacher-tools-page .biblioteca-breadcrumb {
    scrollbar-width: thin;
}

.sesb-teacher-tools-page [data-sesb-scroll-region] {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

.sesb-teacher-tools-page [data-sesb-scroll-region][data-sesb-overflow="true"] {
    box-shadow: inset -12px 0 15px -16px rgba(15, 23, 42, .55);
}

/* Atividades, materiais e certificados */
.sesb-teacher-tools-page[data-sesb-teacher-tool="assignments"] .activities-table-wrap,
.sesb-teacher-tools-page[data-sesb-teacher-tool="materials"] .turmas-box,
.sesb-teacher-tools-page[data-sesb-teacher-tool="certificates"] .goias-card,
.sesb-teacher-tools-page[data-sesb-teacher-tool="received-grades"] .student-list {
    min-width: 0;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="materials"] .material-card,
.sesb-teacher-tools-page[data-sesb-teacher-tool="certificates"] .cert-card,
.sesb-teacher-tools-page[data-sesb-teacher-tool="received-grades"] .recv-card {
    height: 100%;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="materials"] .material-card .text-truncate,
.sesb-teacher-tools-page[data-sesb-teacher-tool="received-grades"] .student-row,
.sesb-teacher-tools-page[data-sesb-teacher-tool="received-grades"] .nota-recebida-row {
    min-width: 0;
}

/* Mapas de sala: mantém o quadro espacial e permite navegação controlada. */
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .sala-grid,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .room-grid {
    min-width: 680px;
    padding-bottom: .5rem;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .lista-alunos,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .student-list {
    max-height: min(62vh, 720px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .aluno-card,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .student-card,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .mesa,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .seat {
    touch-action: manipulation;
}

/* Planilhas de controle: não converte grade de lançamento em cartões. */
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .table-responsive,
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .table-wrap,
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .ctrl-wrap {
    max-width: 100%;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] table[data-sesb-responsive-table="scroll"] {
    width: max-content;
    min-width: 100%;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .sticky-save,
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .save-float {
    z-index: 25;
}

/* Biblioteca física e Biblioteca Pedagógica */
.sesb-teacher-tools-page[data-sesb-teacher-tool^="library"] .card-body img,
.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .card-body img {
    object-fit: cover;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-toolbar,
.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-list,
.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-info,
.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-public-material-body {
    min-width: 0;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-meta,
.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-public-material-meta,
.sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-search-path {
    overflow-wrap: anywhere;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="library-scanner"] video,
.sesb-teacher-tools-page[data-sesb-teacher-tool="library-scanner"] canvas {
    width: 100%;
    height: auto;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="reading-record"] .level-select {
    width: 100%;
    min-width: 14rem;
}

/* Impressões e relatórios: somente telas de seleção, nunca layouts impressos. */
.sesb-teacher-tools-page[data-sesb-teacher-tool="reports"] .nav-pills,
.sesb-teacher-tools-page[data-sesb-teacher-tool="control-sheets"] .nav-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: inline proximity;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="reports"] .nav-pills > *,
.sesb-teacher-tools-page[data-sesb-teacher-tool="control-sheets"] .nav-pills > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.sesb-teacher-tools-page[data-sesb-teacher-tool="reports"] .turmas-picker,
.sesb-teacher-tools-page[data-sesb-teacher-tool="control-sheets"] .turmas-picker {
    min-width: 0;
}

@media (max-width: 991.98px) {
    .sesb-teacher-tools-page .position-sticky:not(.sticky-save):not(.save-float),
    .sesb-teacher-tools-page .sticky-lg-top,
    .sesb-teacher-tools-page .sticky-xl-top {
        position: static !important;
        top: auto !important;
    }

    .sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .lista-alunos,
    .sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .student-list {
        max-height: 22rem;
    }
}

@media (max-width: 767.98px) {
    .sesb-teacher-tools-page {
        padding-inline: .75rem;
        padding-bottom: max(2rem, env(safe-area-inset-bottom));
    }

    .sesb-teacher-tools-page > .container,
    .sesb-teacher-tools-page > .container-fluid,
    .sesb-teacher-tools-page .biblioteca-shell > .container,
    .sesb-teacher-tools-page .biblioteca-shell > .container-fluid {
        padding-inline: 0 !important;
    }

    .sesb-teacher-tools-page h1,
    .sesb-teacher-tools-page h2,
    .sesb-teacher-tools-page .display-5,
    .sesb-teacher-tools-page .display-6 {
        overflow-wrap: anywhere;
    }

    .sesb-teacher-tools-page .card-body,
    .sesb-teacher-tools-page .card-header,
    .sesb-teacher-tools-page .materiais-hero,
    .sesb-teacher-tools-page .goias-hero,
    .sesb-teacher-tools-page .map-hero,
    .sesb-teacher-tools-page .recv-hero,
    .sesb-teacher-tools-page .print-hero,
    .sesb-teacher-tools-page .biblioteca-hero {
        padding: 1rem !important;
    }

    .sesb-teacher-tools-page .d-flex.justify-content-between,
    .sesb-teacher-tools-page .d-flex.align-items-center.justify-content-between,
    .sesb-teacher-tools-page .d-flex.justify-content-between.align-items-center {
        align-items: stretch !important;
        gap: .75rem;
    }

    .sesb-teacher-tools-page .nav-tabs,
    .sesb-teacher-tools-page .nav-pills,
    .sesb-teacher-tools-page .biblioteca-breadcrumb {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: .25rem;
        scroll-snap-type: inline proximity;
    }

    .sesb-teacher-tools-page .nav-tabs > *,
    .sesb-teacher-tools-page .nav-pills > *,
    .sesb-teacher-tools-page .biblioteca-breadcrumb > * {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .sesb-teacher-tools-page .modal-dialog:not(.modal-fullscreen) {
        margin: .65rem;
    }

    .sesb-teacher-tools-page .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .sesb-teacher-tools-page .modal-footer .btn,
    .sesb-teacher-tools-page .modal-footer form,
    .sesb-teacher-tools-page .modal-footer form .btn {
        width: 100%;
    }

    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-hero-actions,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-card-actions,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-actions,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-public-material-actions {
        display: grid !important;
        grid-template-columns: 1fr;
        width: 100%;
        gap: .5rem;
    }

    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-hero-actions .btn,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-card-actions .btn,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-actions .btn,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-public-material-actions .btn,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-actions form,
    .sesb-teacher-tools-page[data-sesb-teacher-tool^="pedagogical-library"] .biblioteca-material-actions form .btn {
        width: 100%;
    }

    .sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .save-float,
    .sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .sticky-save .btn {
        width: 100%;
        bottom: max(.5rem, env(safe-area-inset-bottom));
    }

    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td.text-end {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem;
    }

    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td:last-child::before,
    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td.text-end::before {
        flex: 0 0 100%;
    }

    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td:last-child > .btn,
    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form,
    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td.text-end > .btn,
    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form .btn,
    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .sesb-teacher-tools-page {
        padding-inline: .5rem;
    }

    .sesb-teacher-tools-page h2,
    .sesb-teacher-tools-page .display-5,
    .sesb-teacher-tools-page .display-6 {
        font-size: clamp(1.4rem, 7vw, 1.85rem) !important;
    }

    .sesb-teacher-tools-page .d-flex.flex-wrap.gap-2 > .btn,
    .sesb-teacher-tools-page .d-flex.flex-wrap.gap-2 > form,
    .sesb-teacher-tools-page .d-flex.flex-wrap.gap-3 > .btn,
    .sesb-teacher-tools-page .d-flex.flex-wrap.gap-3 > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-teacher-tools-page .d-flex.flex-wrap.gap-2 > form .btn,
    .sesb-teacher-tools-page .d-flex.flex-wrap.gap-3 > form .btn {
        width: 100%;
    }

    .sesb-teacher-tools-page table[data-sesb-responsive-table="cards"] tbody td {
        grid-template-columns: minmax(6.2rem, 36%) minmax(0, 1fr);
        gap: .6rem;
        padding: .7rem .75rem !important;
    }

    .sesb-teacher-tools-page[data-sesb-teacher-tool="reading-record"] .level-select {
        min-width: 0;
    }
}

@media print {
    .sesb-teacher-tools-page {
        padding: 0 !important;
    }
}


/* === Bloco 11: Portaria, acesso e carteirinhas === */
.sesb-access-page {
    min-width: 0;
}

.sesb-access-page:not([data-sesb-access-page="access-scanner"]) {
    width: min(100%, 1600px);
    margin-inline: auto;
    padding-bottom: 2rem;
}

.sesb-access-page .card,
.sesb-access-page .access-panel,
.sesb-access-page .access-card,
.sesb-access-page .audit-filter-card,
.sesb-access-page .audit-stat-card,
.sesb-access-page .audit-table-card,
.sesb-access-page .audit-side-card,
.sesb-access-page .no-print {
    min-width: 0;
}

.sesb-access-page .form-control,
.sesb-access-page .form-select,
.sesb-access-page .btn:not(.btn-sm) {
    min-height: 2.75rem;
}

.sesb-access-page .nav-tabs,
.sesb-access-page .nav-pills,
.sesb-access-page .access-main-tabs,
.sesb-access-page .access-tabs {
    scrollbar-width: thin;
}

.sesb-access-page [data-sesb-scroll-region] {
    max-width: 100%;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.sesb-access-page table[data-sesb-responsive-table="scroll"] {
    width: max-content;
    min-width: 100%;
}

.sesb-access-page[data-sesb-access-page="id-cards"] img[width="50"] {
    width: 50px;
    height: 60px;
    object-fit: cover;
    flex-shrink: 0;
}

.sesb-access-page[data-sesb-access-page="access-management"] .access-main-tabs,
.sesb-access-page[data-sesb-access-page="access-management"] .access-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: inline proximity;
}

.sesb-access-page[data-sesb-access-page="access-management"] .access-main-tabs > *,
.sesb-access-page[data-sesb-access-page="access-management"] .access-tabs > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.sesb-access-page[data-sesb-access-page="access-management"] .bulk-hidden-area,
.sesb-access-page[data-sesb-access-page="access-management"] .access-image-card {
    /* Áreas usadas pelo html2canvas permanecem fora da adaptação responsiva. */
    font-family: inherit;
}

.sesb-access-page[data-sesb-access-page="login-audit"] .audit-table-card,
.sesb-access-page[data-sesb-access-page="login-audit"] .audit-side-card {
    min-width: 0;
}

.sesb-access-page[data-sesb-access-page="login-audit"] .quick-pill,
.sesb-access-page[data-sesb-access-page="login-audit"] td,
.sesb-access-page[data-sesb-access-page="login-audit"] .list-group-item {
    overflow-wrap: anywhere;
}

/* Scanner em tela cheia: preserva a lógica existente e melhora telas estreitas/notch. */
.sesb-access-page[data-sesb-access-page="access-scanner"] {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    background: #000;
}

.sesb-access-page[data-sesb-access-page="access-scanner"] #scanner-wrapper,
.sesb-access-page[data-sesb-access-page="access-scanner"] #reader,
.sesb-access-page[data-sesb-access-page="access-scanner"] #overlay-ui {
    height: 100vh;
    height: 100dvh;
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .scanner-header {
    top: max(1rem, env(safe-area-inset-top));
    padding-inline: 4.5rem;
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .btn-virar,
.sesb-access-page[data-sesb-access-page="access-scanner"] .btn-sair-scanner {
    top: max(1rem, env(safe-area-inset-top));
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .btn-virar {
    right: max(1rem, env(safe-area-inset-right));
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .btn-sair-scanner {
    left: max(1rem, env(safe-area-inset-left));
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .manual-btn-container {
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    padding-inline: 1rem;
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .manual-btn-container .btn {
    max-width: 100%;
}

.sesb-access-page[data-sesb-access-page="access-scanner"] .scan-target {
    width: min(250px, 68vw);
    height: min(250px, 68vw);
}

.sesb-access-page[data-sesb-access-page="access-scanner"] #result-card {
    width: min(92vw, 420px);
    max-height: calc(100dvh - 8rem);
    overflow-y: auto;
}

.sesb-access-page[data-sesb-access-page="access-scanner"] #listaResultados,
.turmas-prof-list {
    overscroll-behavior: contain;
}

/* Cartões de acesso: tela responsiva, impressão preservada em duas colunas. */
.sesb-access-page[data-sesb-access-page="access-cards"] .no-print {
    padding: clamp(1rem, 2.5vw, 1.5rem);
}

.sesb-access-page[data-sesb-access-page="access-cards"] .cartao-grid {
    min-width: 0;
}

@media (max-width: 991.98px) {
    .sesb-access-page[data-sesb-access-page="access-management"] .position-sticky,
    .sesb-access-page[data-sesb-access-page="login-audit"] .position-sticky {
        position: static !important;
        top: auto !important;
    }
}

@media (max-width: 767.98px) {
    .sesb-access-page:not([data-sesb-access-page="access-scanner"]) {
        padding-inline: .65rem;
        padding-bottom: max(2rem, env(safe-area-inset-bottom));
    }

    .sesb-access-page > .container,
    .sesb-access-page > .container-fluid,
    .sesb-access-page .access-page > .container,
    .sesb-access-page .access-page > .container-fluid,
    .sesb-access-page .audit-page > .container,
    .sesb-access-page .audit-page > .container-fluid {
        padding-inline: 0 !important;
    }

    .sesb-access-page .access-hero,
    .sesb-access-page .audit-hero,
    .sesb-access-page .card-body,
    .sesb-access-page .card-header,
    .sesb-access-page .access-panel-header {
        padding: 1rem !important;
    }

    .sesb-access-page h1,
    .sesb-access-page h2,
    .sesb-access-page h3,
    .sesb-access-page .display-5,
    .sesb-access-page .display-6 {
        overflow-wrap: anywhere;
    }

    .sesb-access-page .d-flex.justify-content-between,
    .sesb-access-page .d-flex.align-items-center.justify-content-between,
    .sesb-access-page .d-flex.justify-content-between.align-items-center {
        align-items: stretch !important;
        gap: .75rem;
    }

    .sesb-access-page .nav-tabs,
    .sesb-access-page .nav-pills,
    .sesb-access-page .access-main-tabs,
    .sesb-access-page .access-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: .25rem;
        scroll-snap-type: inline proximity;
    }

    .sesb-access-page .nav-tabs > *,
    .sesb-access-page .nav-pills > *,
    .sesb-access-page .access-main-tabs > *,
    .sesb-access-page .access-tabs > * {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .sesb-access-page .modal-dialog:not(.modal-fullscreen) {
        margin: .65rem;
    }

    .sesb-access-page .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .sesb-access-page .modal-footer .btn,
    .sesb-access-page .modal-footer form,
    .sesb-access-page .modal-footer form .btn {
        width: 100%;
    }

    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td.text-end {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem;
    }

    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td:last-child::before,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td.text-end::before {
        flex: 0 0 100%;
    }

    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td:last-child > .btn,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td:last-child > a.btn,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td.text-end > .btn,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td.text-end > a.btn,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td:last-child > form .btn,
    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td.text-end > form .btn {
        width: 100%;
    }

    .sesb-access-page[data-sesb-access-page="access-cards"] .cartao-grid {
        grid-template-columns: 1fr;
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .scanner-header {
        padding-inline: 4rem;
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .scanner-header h2 {
        font-size: clamp(1rem, 5vw, 1.45rem);
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .scanner-status {
        bottom: max(6.5rem, calc(env(safe-area-inset-bottom) + 5.5rem));
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .btn-sair-scanner {
        max-width: 42vw;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }
}

@media (max-width: 575.98px) {
    .sesb-access-page:not([data-sesb-access-page="access-scanner"]) {
        padding-inline: .45rem;
    }

    .sesb-access-page h2,
    .sesb-access-page .display-5,
    .sesb-access-page .display-6 {
        font-size: clamp(1.35rem, 7vw, 1.8rem) !important;
    }

    .sesb-access-page .d-flex.flex-wrap.gap-2 > .btn,
    .sesb-access-page .d-flex.flex-wrap.gap-2 > a.btn,
    .sesb-access-page .d-flex.flex-wrap.gap-2 > form,
    .sesb-access-page .d-flex.flex-wrap.gap-3 > .btn,
    .sesb-access-page .d-flex.flex-wrap.gap-3 > a.btn,
    .sesb-access-page .d-flex.flex-wrap.gap-3 > form {
        flex: 1 1 100%;
        width: 100%;
    }

    .sesb-access-page table[data-sesb-responsive-table="cards"] tbody td {
        grid-template-columns: minmax(5.8rem, 34%) minmax(0, 1fr);
        gap: .55rem;
        padding: .7rem .75rem !important;
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .btn-sair-scanner {
        width: 3.1rem;
        padding-inline: 0;
        font-size: 0;
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .btn-sair-scanner i {
        font-size: 1rem;
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] #result-card {
        padding: 1.1rem;
    }

    .sesb-access-page[data-sesb-access-page="access-scanner"] .aluno-foto-scan {
        width: 96px;
        height: 96px;
    }
}

@media print {
    .sesb-access-page {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .sesb-access-page table[data-sesb-responsive-table="cards"],
    .sesb-access-page table[data-sesb-responsive-table="scroll"] {
        display: table !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .sesb-access-page table[data-sesb-responsive-table] thead {
        display: table-header-group !important;
    }

    .sesb-access-page table[data-sesb-responsive-table] tbody {
        display: table-row-group !important;
    }

    .sesb-access-page table[data-sesb-responsive-table] tr {
        display: table-row !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }

    .sesb-access-page table[data-sesb-responsive-table] th,
    .sesb-access-page table[data-sesb-responsive-table] td {
        display: table-cell !important;
    }

    .sesb-access-page table[data-sesb-responsive-table] td::before {
        display: none !important;
        content: none !important;
    }

    .sesb-access-page[data-sesb-access-page="access-cards"] .cartao-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}


/* === Bloco 12: Jogos, rankings, conquistas e gamificação === */
.sesb-gamification-page,
.sesb-gamification-standalone {
    min-width: 0;
}

.sesb-gamification-page:not([data-sesb-gamification-page="game-play"]):not([data-sesb-gamification-page="album-player"]) {
    width: min(100%, 1600px);
    margin-inline: auto;
    padding-bottom: 2rem;
}

/* Jogos e o álbum possuem estruturas próprias; display: contents evita alterar
   posicionamento, altura e coordenadas usadas pelos scripts existentes. */
.sesb-gamification-page[data-sesb-gamification-page="game-play"],
.sesb-gamification-page[data-sesb-gamification-page="album-player"] {
    display: contents;
}

.sesb-gamification-page .card,
.sesb-gamification-page .modal-content,
.sesb-gamification-page .gamehub-card,
.sesb-gamification-page .rank-card,
.sesb-gamification-page .ranking-card,
.sesb-gamification-page .admin-card,
.sesb-gamification-page .panel-card,
.sesb-gamification-page .market-card,
.sesb-gamification-page .album-card,
.sesb-gamification-page .game-shell,
.sesb-gamification-page .game-container {
    min-width: 0;
}

.sesb-gamification-page img,
.sesb-gamification-page video,
.sesb-gamification-standalone img,
.sesb-gamification-standalone video {
    max-width: 100%;
    height: auto;
}

.sesb-gamification-page .nav-tabs,
.sesb-gamification-page .nav-pills,
.sesb-gamification-page [role="tablist"] {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

.sesb-gamification-page .nav-tabs > *,
.sesb-gamification-page .nav-pills > *,
.sesb-gamification-page [role="tablist"] > * {
    flex: 0 0 auto;
}

.sesb-gamification-page [data-sesb-scroll-region] {
    max-width: 100%;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.sesb-gamification-page table[data-sesb-responsive-table="scroll"] {
    width: max-content;
    min-width: 100%;
}

.sesb-gamification-page[data-sesb-gamification-page="ranking"] .ranking-table-wrap,
.sesb-gamification-page[data-sesb-gamification-page="album-admin"] .table-wrap,
.sesb-gamification-page[data-sesb-gamification-page="finance-admin"] .table-responsive {
    border-radius: inherit;
}

.sesb-gamification-page[data-sesb-gamification-page="hub"] .gamehub-card,
.sesb-gamification-page[data-sesb-gamification-page="ranking"] .rank-card,
.sesb-gamification-page[data-sesb-gamification-page="ranking"] .stat-card {
    height: 100%;
}

.sesb-gamification-page[data-sesb-gamification-page="game-play"] .modal-dialog,
.sesb-gamification-page[data-sesb-gamification-page="album-player"] .modal-dialog {
    max-width: min(var(--bs-modal-width, 500px), calc(100vw - 1.5rem));
}

.sesb-gamification-standalone {
    min-height: 100vh;
    min-height: 100dvh;
    overflow-x: hidden;
    padding-inline: max(0px, env(safe-area-inset-left)) max(0px, env(safe-area-inset-right));
    padding-bottom: max(0px, env(safe-area-inset-bottom));
}

.sesb-gamification-standalone .game-container {
    width: min(calc(100% - 1rem), 820px);
    margin-inline: auto;
}

@media (max-width: 991.98px) {
    .sesb-gamification-page:not([data-sesb-gamification-page="game-play"]):not([data-sesb-gamification-page="album-player"]) {
        padding-inline: .25rem;
    }

    .sesb-gamification-page .ranking-hero .d-flex,
    .sesb-gamification-page .gamehub-hero .d-flex,
    .sesb-gamification-page .admin-hero .d-flex,
    .sesb-gamification-page .hero-card .d-flex {
        align-items: flex-start !important;
    }
}

@media (max-width: 767.98px) {
    .sesb-gamification-page:not([data-sesb-gamification-page="game-play"]):not([data-sesb-gamification-page="album-player"]) {
        padding-bottom: 1rem;
    }

    .sesb-gamification-page .ranking-hero,
    .sesb-gamification-page .gamehub-hero,
    .sesb-gamification-page .admin-hero,
    .sesb-gamification-page .hero-card {
        border-radius: 1.25rem !important;
    }

    .sesb-gamification-page .ranking-hero .d-flex,
    .sesb-gamification-page .gamehub-hero .d-flex,
    .sesb-gamification-page .admin-hero .d-flex,
    .sesb-gamification-page .hero-card .d-flex {
        flex-direction: column;
        width: 100%;
    }

    .sesb-gamification-page .ranking-hero .btn,
    .sesb-gamification-page .gamehub-hero .btn,
    .sesb-gamification-page .admin-hero .btn,
    .sesb-gamification-page .hero-card .btn {
        width: 100%;
        min-height: 2.75rem;
    }

    .sesb-gamification-page[data-sesb-gamification-page="hub"] .gamehub-card {
        border-radius: 1.25rem;
    }

    .sesb-gamification-page[data-sesb-gamification-page="ranking"] table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-gamification-page[data-sesb-gamification-page="achievements-admin"] table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-gamification-page[data-sesb-gamification-page="pool"] table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-gamification-page[data-sesb-gamification-page="finance-admin"] table[data-sesb-responsive-table="cards"] tbody td:last-child,
    .sesb-gamification-page[data-sesb-gamification-page="album-admin"] table[data-sesb-responsive-table="cards"] tbody td:last-child {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: .5rem;
    }

    .sesb-gamification-page[data-sesb-gamification-page="game-play"] .game-page,
    .sesb-gamification-page[data-sesb-gamification-page="game-play"] .game-wrapper,
    .sesb-gamification-page[data-sesb-gamification-page="game-play"] .game-container,
    .sesb-gamification-page[data-sesb-gamification-page="game-play"] .game-shell {
        max-width: 100%;
    }

    .sesb-gamification-page[data-sesb-gamification-page="game-play"] .modal-dialog,
    .sesb-gamification-page[data-sesb-gamification-page="album-player"] .modal-dialog {
        margin: .5rem auto;
    }

    .sesb-gamification-standalone .game-container {
        width: min(calc(100% - .75rem), 820px);
        margin-block: .5rem;
    }

    .sesb-gamification-standalone .card-body {
        padding: 1rem !important;
    }

    .sesb-gamification-standalone .huge-text,
    .sesb-gamification-standalone .huge-word,
    .sesb-gamification-standalone .huge-math {
        font-size: clamp(2rem, 12vw, 3.5rem);
        overflow-wrap: anywhere;
    }

    .sesb-gamification-standalone .btn,
    .sesb-gamification-standalone input {
        min-height: 2.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sesb-gamification-page *,
    .sesb-gamification-standalone * {
        scroll-behavior: auto !important;
    }
}

/* -------------------------------------------------------------------------
 * Correção global de rolagem vertical — 2026-08-06
 *
 * Algumas regiões responsivas usam overflow para permitir deslocamento
 * horizontal ou rolagem interna controlada. O overscroll vertical não deve
 * ficar contido nessas regiões, pois isso impede que a roda do mouse/gesto
 * continue a rolagem normal da página quando o ponteiro está sobre o conteúdo.
 *
 * Mantemos o comportamento horizontal existente e liberamos somente o eixo Y.
 * ---------------------------------------------------------------------- */
[data-sesb-scroll-region],
.sesb-attendance-list,
.sesb-communication-page[data-sesb-communication="announcements"] .turmas-box,
.sesb-communication-page[data-sesb-communication="forms-editor"] .forms-recipient-list,
.sesb-coordination-page[data-sesb-coordination="support-chat"] .chat-container,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .lista-alunos,
.sesb-teacher-tools-page[data-sesb-teacher-tool="seating-map"] .student-list,
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .table-responsive,
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .table-wrap,
.sesb-teacher-tools-page[data-sesb-teacher-tool="activity-control-grid"] .ctrl-wrap,
.sesb-access-page[data-sesb-access-page="access-scanner"] #listaResultados {
    overscroll-behavior-y: auto !important;
}
