* {
    box-sizing: border-box;
}

@media (max-width: 900px) {
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor > *,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno > *,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .form-inline,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor > *,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno > *,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .form-inline,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor > *,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno > *,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .form-inline,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao {
        align-items: center !important;
        appearance: none !important;
        box-sizing: border-box !important;
        display: flex !important;
        height: 42px !important;
        justify-content: center !important;
        margin: 0 !important;
        max-height: 42px !important;
        max-width: none !important;
        min-height: 42px !important;
        min-width: 0 !important;
        padding: 0 10px !important;
        text-align: center !important;
        width: 100% !important;
    }
}

.lista-cadastrados-rolavel {
    max-height: min(500px, 65vh);
    overflow-y: auto;
    padding-right: 6px;
    scrollbar-gutter: stable;
}

.tabela-professores-cadastrados.lista-cadastrados-rolavel,
.tabela-alunos-cadastrados.lista-cadastrados-rolavel,
.tabela-professores-painel-supervisor.lista-cadastrados-rolavel,
.tabela-direcao-usuarios-rolavel.lista-cadastrados-rolavel {
    max-height: min(500px, 65vh);
    overflow-y: auto;
}

.tabela-direcao-usuarios-rolavel {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
}

.tabela-direcao-usuarios-rolavel table {
    table-layout: fixed;
    margin: 0;
    width: 100%;
}

.tabela-direcao-usuarios-rolavel th,
.tabela-direcao-usuarios-rolavel td {
    padding-left: 12px;
    padding-right: 12px;
    vertical-align: middle;
}

.tabela-direcao-usuarios-rolavel th:nth-child(1),
.tabela-direcao-usuarios-rolavel td:nth-child(1) {
    width: 26%;
}

.tabela-direcao-usuarios-rolavel th:nth-child(2),
.tabela-direcao-usuarios-rolavel td:nth-child(2) {
    overflow-wrap: anywhere;
    padding-left: 18px;
    width: 27%;
}

.tabela-direcao-usuarios-rolavel th:nth-child(3),
.tabela-direcao-usuarios-rolavel td:nth-child(3) {
    padding-left: 10px;
    text-align: left;
    width: 16%;
}

.tabela-direcao-usuarios-rolavel th:nth-child(4),
.tabela-direcao-usuarios-rolavel td:nth-child(4) {
    text-align: center;
    width: 10%;
}

.tabela-direcao-usuarios-rolavel th:nth-child(5),
.tabela-direcao-usuarios-rolavel td:nth-child(5) {
    text-align: center;
    width: 21%;
}

.tabela-direcao-usuarios-rolavel td:nth-child(5) {
    padding-left: 4px;
    padding-right: 12px;
}

.acoes-usuarios-config {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: center;
}

.perfil-usuario-config {
    display: inline-block;
    white-space: nowrap;
}

.assinatura-config-preview {
    align-items: center;
    background: rgba(255, 255, 255, 0.78);
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    display: grid;
    gap: 8px;
    justify-items: center;
    margin: 6px 0 4px;
    padding: 12px;
}

.assinatura-config-preview span {
    color: #475569;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.assinatura-config-preview img {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    max-height: 96px;
    object-fit: contain;
    padding: 8px;
}

.tabela-direcao-usuarios-rolavel td:nth-child(5) .form-inline,
.tabela-direcao-usuarios-rolavel td:nth-child(5) .janela-senha {
    display: inline-flex;
    margin-left: 0;
    vertical-align: middle;
}

.tabela-direcao-usuarios-rolavel td:nth-child(5) .botao-acao,
.tabela-direcao-usuarios-rolavel td:nth-child(5) .janela-senha summary {
    width: 112px;
    white-space: nowrap;
}

@media (max-width: 700px) {
    .lista-cadastrados-rolavel {
        max-height: 62vh;
        max-height: 62svh;
        overflow-y: auto !important;
        padding-right: 4px;
    }

    .tabela-professores-cadastrados.lista-cadastrados-rolavel,
    .tabela-alunos-cadastrados.lista-cadastrados-rolavel,
    .tabela-professores-painel-supervisor.lista-cadastrados-rolavel,
    .tabela-direcao-usuarios-rolavel.lista-cadastrados-rolavel {
        overflow-y: auto !important;
    }
}

@media print {
    .lista-cadastrados-rolavel {
        max-height: none !important;
        overflow: visible !important;
        padding-right: 0 !important;
    }
}

.login-box .botoes-formulario a.botao-secundario.botao-login-link.botao-acessar-sre {
    background: linear-gradient(180deg, #171717, #020617) !important;
    border-color: #334155 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 12px 24px rgba(2, 6, 23, 0.32) !important;
    color: #fff !important;
}

.login-box .botoes-formulario a.botao-secundario.botao-login-link.botao-acessar-sre:hover {
    background: linear-gradient(180deg, #334155, #020617) !important;
    border-color: #94a3b8 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 16px 30px rgba(2, 6, 23, 0.42) !important;
    color: #fff !important;
    text-decoration: none;
}

.link-recuperar-senha-admin {
    color: #1d4ed8;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    justify-content: center;
    margin-top: 10px;
    text-align: center;
    width: 100%;
}

.link-lgpd-login {
    color: #111827;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    justify-content: center;
    margin-top: 14px;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: 3px;
    width: 100%;
}

.link-lgpd-login:hover {
    color: #1d4ed8;
}

:root {
    --cor-escola-destaque: #f97316;
    --cor-escola-destaque-clara: #ffedd5;
    --cor-escola-destaque-borda: #fb923c;
}

html {
    margin: 0;
    padding: 0;
}

body {
    padding: 0;
    margin: 0;
    background: #f4f6f8;
    color: #1f2933;
    font-family: Arial, Helvetica, sans-serif;
    isolation: isolate;
    min-height: 100vh;
    position: relative;
}

body.impressao {
    background: #fff !important;
    padding: 18px;
}

body.impressao::before {
    background: none;
    content: "";
    filter: grayscale(1);
    inset: 0;
    opacity: 0.1;
    pointer-events: none;
    position: fixed;
    z-index: 0;
}

body.impressao > * {
    position: relative;
    z-index: 1;
}

body:not(.login-page):not(.impressao) > * {
    position: relative;
    z-index: 2;
}

body:not(.login-page):not(.impressao) > .topo {
    z-index: 1000;
}

.video-fundo-interno {
    filter: grayscale(1);
    height: 100%;
    inset: 0;
    object-fit: cover;
    opacity: 0.06;
    pointer-events: none;
    position: fixed;
    width: 100%;
    z-index: 0 !important;
}

a {
    color: #1d4ed8;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.topo {
    align-items: center;
    background:
        linear-gradient(90deg, #f97316, #fb923c, #f59e0b, #ea580c, #c2410c) left bottom / 100% 8px no-repeat,
        #0f172a;
    border-top: 0;
    color: #fff;
    display: flex;
    justify-content: space-between;
    margin-top: 0;
    padding: 16px 32px 24px;
    position: relative;
    z-index: 1000;
}

.topo::before {
    content: none;
}

.topo nav {
    display: flex;
    gap: 8px;
    min-width: 0;
}

.topo nav a {
    align-items: center;
    background: rgba(37, 99, 235, 0.18);
    border: 1px solid rgba(96, 165, 250, 0.48);
    border-radius: 6px;
    color: #fff;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
    min-height: 38px;
    padding: 0 14px;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.topo nav a:hover {
    background: #2563eb;
    border-color: #93c5fd;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
    text-decoration: none;
    transform: translateY(-1px);
}

.topo nav a:focus-visible {
    outline: 3px solid rgba(147, 197, 253, 0.55);
    outline-offset: 3px;
}

.topo nav a:active {
    box-shadow: none;
    transform: translateY(0);
}

.topo nav a.botao-sininho-aula {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    gap: 7px;
    height: 38px;
    justify-content: center;
    min-height: 38px;
    min-width: 132px;
    padding: 0 14px 0 12px;
    position: relative;
    width: auto;
}

.topo nav a.botao-sininho-aula svg {
    fill: currentColor;
    flex: 0 0 18px;
    height: 18px;
    width: 18px;
}

.topo nav a.botao-sininho-aula span:not(.badge-sininho-aula) {
    line-height: 1;
    white-space: nowrap;
}

.topo nav a.botao-sininho-aula.tem-aula {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.36),
        0 0 0 2px rgba(250, 204, 21, 0.42),
        0 10px 22px rgba(15, 23, 42, 0.2);
}

.badge-sininho-aula {
    background: #ef4444;
    border: 2px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.28);
    display: block;
    height: 13px;
    position: absolute;
    right: -4px;
    top: -4px;
    width: 13px;
}

.topo nav a.botao-configuracoes {
    font-size: 21px;
    min-width: 38px;
    padding: 0 10px;
}

.menu-hamburguer {
    display: inline-flex;
    position: relative;
    z-index: 1001;
}

.menu-hamburguer summary {
    align-items: center;
    background: rgba(37, 99, 235, 0.18);
    border: 1px solid rgba(96, 165, 250, 0.48);
    border-radius: 6px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 22px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    line-height: 1;
    list-style: none;
    min-width: 44px;
    padding: 0 12px;
}

.menu-hamburguer summary::-webkit-details-marker {
    display: none;
}

.menu-hamburguer summary:hover,
.menu-hamburguer:hover summary,
.menu-hamburguer[open] summary {
    background: #2563eb;
    border-color: #93c5fd;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
    color: #fff;
}

.menu-hamburguer-opcoes {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.22);
    display: grid;
    gap: 6px;
    min-width: 220px;
    padding: 8px;
    position: absolute;
    right: 0;
    top: calc(100% + 2px);
    z-index: 10000;
}

.menu-hamburguer:not([open]) .menu-hamburguer-opcoes {
    display: none;
}

.menu-hamburguer:hover .menu-hamburguer-opcoes,
.menu-hamburguer:focus-within .menu-hamburguer-opcoes {
    display: grid;
}

.menu-hamburguer.menu-hover-only:not(:hover) .menu-hamburguer-opcoes {
    display: none !important;
}

.topo nav .menu-hamburguer-opcoes a {
    background: rgba(37, 99, 235, 0.1);
    border: 1px solid rgba(96, 165, 250, 0.42);
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.14);
    color: #1d4ed8;
    font-size: 14px;
    justify-content: flex-start;
    min-height: 38px;
    padding: 0 12px;
}

.topo nav .menu-hamburguer-opcoes a:hover {
    background: #1d4ed8;
    border-color: #1e40af;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.24);
    color: #fff;
    transform: none;
}

.topo nav .menu-hamburguer-opcoes a.botao-menu-bloqueado,
.topo nav .menu-hamburguer-opcoes a.botao-menu-bloqueado:hover {
    background: #e5e7eb !important;
    border-color: #cbd5e1 !important;
    box-shadow: none !important;
    color: #64748b !important;
    cursor: not-allowed;
    filter: grayscale(0.35);
    pointer-events: none;
    transform: none !important;
}

.topo nav .menu-hamburguer-opcoes .status-menu-em-desenvolvimento {
    color: #dc2626 !important;
    display: block;
    font-size: 11px;
    font-weight: 900;
    margin-left: 0;
}

.topo nav .menu-hamburguer-opcoes a.botao-menu-em-desenvolvimento {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
    padding-bottom: 7px;
    padding-top: 7px;
}

.botao-conselho-classe-painel {
    background: #facc15 !important;
    border-color: #ca8a04 !important;
    color: #422006 !important;
}

.botao-conselho-classe-painel:hover {
    background: #eab308 !important;
    color: #422006 !important;
    text-decoration: none;
}

.topo nav a.botao-crivo-online {
    background: #fff;
    border-color: transparent;
    box-shadow: none;
    min-width: 148px;
    overflow: hidden;
    padding: 0 10px;
}

.topo nav a.botao-crivo-online:hover {
    background: #fff;
    border-color: transparent;
    box-shadow: none;
}

.botao-crivo-online img {
    display: block;
    height: 26px;
    object-fit: contain;
    width: 128px;
}

.botao-ded-mais img {
    height: 36px;
    width: 148px;
}

.topo nav a.botao-ded-mais {
    min-width: 166px;
}

.topo nav a.botao-ded-mais,
.topo nav a.botao-sislame-web {
    height: 38px;
    min-height: 38px;
    min-width: 166px;
    width: 166px;
}

.formulario-conselho-classe fieldset {
    margin-bottom: 18px;
}

.formulario-conselho-classe legend {
    color: #1f2937;
    font-size: 18px;
    font-weight: 900;
    padding: 0 6px;
}

.grade-checks-conselho {
    display: grid;
    gap: 6px 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.opcoes-radio-conselho {
    display: flex;
    gap: 24px;
    margin: 6px 0 14px;
}

.textarea-grande-conselho {
    min-height: 220px;
}

.botoes-formulario.botoes-conselho-classe {
    flex-wrap: nowrap;
    justify-content: center;
    margin-top: 8px;
}

.botoes-conselho-classe button,
.botoes-conselho-classe .botao-form-link {
    flex: 0 0 150px;
    max-width: 150px;
    min-width: 150px;
    width: 150px;
}

.botao-form-link.botao-novo-registro {
    background: linear-gradient(180deg, #4ade80, #16a34a) !important;
    border: 1px solid #15803d !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(22, 163, 74, 0.24) !important;
    color: #052e16 !important;
}

.botao-form-link.botao-novo-registro:hover {
    background: linear-gradient(180deg, #86efac, #15803d) !important;
    color: #052e16 !important;
}

.topo nav a.botao-crivo-online,
.topo nav a.botao-ded-mais,
.tema-antonia .topo nav a.botao-crivo-online,
.tema-antonia .topo nav a.botao-ded-mais,
.perfil-inspecao .topo nav a.botao-crivo-online {
    background: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #111827 !important;
    padding: 0 10px !important;
}

.topo nav a.botao-crivo-online:hover,
.topo nav a.botao-ded-mais:hover,
.tema-antonia .topo nav a.botao-crivo-online:hover,
.tema-antonia .topo nav a.botao-ded-mais:hover,
.perfil-inspecao .topo nav a.botao-crivo-online:hover {
    background: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #111827 !important;
    transform: none !important;
}

.topo nav a.botao-sislame-web,
.topo nav a.botao-sislame-web:hover,
.tema-antonia .topo nav a.botao-sislame-web,
.tema-antonia .topo nav a.botao-sislame-web:hover {
    background: #000 !important;
    border: 0 !important;
    box-shadow: none !important;
    min-width: 166px;
    padding: 0 10px !important;
}

.botao-sislame-web img {
    display: block;
    height: auto;
    max-height: 36px;
    object-fit: contain;
    width: 148px;
}

.topo nav a[href$="logout.php"] {
    background: linear-gradient(180deg, rgba(248, 113, 113, 0.28), rgba(185, 28, 28, 0.42));
    border-color: rgba(248, 113, 113, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    color: #fff;
}

.topo nav a[href$="logout.php"]:hover {
    background: linear-gradient(180deg, #ef4444, #b91c1c);
    border-color: #fca5a5;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.26),
        0 10px 22px rgba(127, 29, 29, 0.34);
    color: #fff;
    transform: translateY(-2px);
}

.topo nav a[href$="logout.php"]:active {
    box-shadow: none;
    transform: translateY(0);
}

.topo nav a.botao-sair-pwa,
.topo nav a.botao-sair-pwa:hover {
    background: linear-gradient(180deg, #b91c1c, #7f1d1d) !important;
    border-color: #991b1b !important;
    box-shadow: none !important;
    color: #fff !important;
}

.topo nav a.botao-sair-pwa:hover {
    box-shadow: none !important;
}

.perfil-inspecao .topo {
    align-items: center;
    background:
        linear-gradient(90deg, #fca5a5, #ef4444, #dc2626, #7f1d1d) left bottom / 100% 8px no-repeat,
        linear-gradient(90deg, #111827, #374151, #6b7280);
    gap: 20px;
    padding-bottom: 16px;
    position: relative;
}

.marca-sre-header {
    align-items: center;
    display: flex;
    gap: 18px;
    min-width: 0;
}

.perfil-inspecao .logo-header img {
    filter: none;
    height: 108px;
    max-width: 260px;
}

.perfil-inspecao .logo-header {
    align-items: center;
    flex-direction: column;
    gap: 5px;
    transform: translateY(-8px);
}

.texto-educacao-header {
    color: #fff;
    font-family: "Arial Black", Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
}

.sre-header {
    color: #fff;
    font-family: "Arial Black", Arial, Helvetica, sans-serif;
    font-size: clamp(24px, 3.4vw, 40px);
    font-style: italic;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
    text-align: center;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.28);
    white-space: nowrap;
}

.perfil-inspecao .topo nav a {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.34);
}

.perfil-inspecao .topo nav a:hover {
    background: #2563eb;
    border-color: #93c5fd;
}

.perfil-inspecao .topo nav a[href$="logout.php"] {
    background: linear-gradient(180deg, rgba(248, 113, 113, 0.28), rgba(185, 28, 28, 0.42));
    border-color: rgba(248, 113, 113, 0.72);
}

.perfil-inspecao .topo nav a[href$="logout.php"]:hover {
    background: linear-gradient(180deg, #ef4444, #b91c1c);
    border-color: #fca5a5;
}

.seletor-cidade-header {
    align-items: center;
    display: flex;
    gap: 8px;
}

.seletor-cidade-header label {
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

.seletor-cidade-header select {
    background-color: rgba(255, 255, 255, 0.96);
    border-color: rgba(255, 255, 255, 0.9);
    color: #111827;
    min-height: 38px;
    min-width: 220px;
    padding: 8px 34px 8px 12px;
}

.tema-antonia .topo {
    background:
        linear-gradient(90deg, #e6c878, #18a63f, #45df26, #8bf15b) left bottom / 100% 8px no-repeat,
        #006b3f;
}

.tema-antonia .topo nav a {
    background: rgba(69, 223, 38, 0.16);
    border-color: rgba(139, 241, 91, 0.55);
}

.tema-antonia .topo nav a:hover {
    background: #18a63f;
    border-color: #8bf15b;
    box-shadow: 0 8px 18px rgba(24, 166, 63, 0.28);
}

.tema-antonia .menu-hamburguer summary {
    background: rgba(69, 223, 38, 0.16);
    border-color: rgba(139, 241, 91, 0.55);
}

.tema-antonia .menu-hamburguer summary:hover,
.tema-antonia .menu-hamburguer[open] summary {
    background: #18a63f;
    border-color: #8bf15b;
    box-shadow: 0 8px 18px rgba(24, 166, 63, 0.28);
    color: #fff;
}

.tema-antonia .topo nav .menu-hamburguer-opcoes a {
    background: rgba(69, 223, 38, 0.12);
    border-color: rgba(24, 166, 63, 0.32);
    box-shadow: 0 6px 14px rgba(24, 166, 63, 0.14);
    color: #006b3f;
}

.tema-antonia .topo nav .menu-hamburguer-opcoes a:hover {
    background: #18a63f;
    border-color: #006b3f;
    box-shadow: 0 8px 18px rgba(24, 166, 63, 0.24);
    color: #fff;
}

.tema-antonia .topo nav a[href$="logout.php"] {
    background: linear-gradient(180deg, rgba(248, 113, 113, 0.28), rgba(185, 28, 28, 0.42));
    border-color: rgba(248, 113, 113, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    color: #fff;
}

.tema-antonia .topo nav a[href$="logout.php"]:hover {
    background: linear-gradient(180deg, #ef4444, #b91c1c);
    border-color: #fca5a5;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.26),
        0 10px 22px rgba(127, 29, 29, 0.34);
    color: #fff;
}

.tema-antonia .logo-header img {
    content: url("../imagens/logo-antonia-bernardo-sem-fundo.png");
    filter: drop-shadow(0 0 3px rgba(220, 252, 231, 0.5)) drop-shadow(0 0 7px rgba(74, 222, 128, 0.24)) !important;
    height: 68px;
    max-width: 270px;
    object-fit: contain;
}

.tema-antonia .logo-header::before {
    content: none;
}

.tema-antonia .info-box {
    background: #fee2e2;
    border-color: #fca5a5;
    border-left-color: #dc2626;
}

.tema-antonia .info-box p {
    color: #7f1d1d;
}

.tema-antonia .formulario-cadastro-pessoa {
    background: #e8ffe1;
    border-color: #8bf15b;
    border-left-color: #18a63f;
}

.tema-antonia .formulario-cadastro-pessoa label {
    color: #005f37;
}

.tema-antonia .formulario-cadastro-pessoa input,
.tema-antonia .formulario-cadastro-pessoa select {
    background-color: #f4fff0;
    border-color: #8bf15b;
}

.tema-antonia .formulario-cadastro-pessoa input:focus,
.tema-antonia .formulario-cadastro-pessoa select:focus {
    border-color: #18a63f;
    box-shadow: 0 0 0 3px rgba(24, 166, 63, 0.18);
}

.tema-antonia .card-indicador {
    border-left-color: #18a63f;
}

.tema-antonia .card-indicador strong {
    color: #0f172a;
}

.logo-header {
    align-items: center;
    display: inline-flex;
    gap: 10px;
    min-width: 0;
}

.logo-header:hover {
    text-decoration: none;
}

.subtitulo-painel-supervisor,
.subtitulo-painel-perfil {
    color: #475569;
    font-size: 24px;
    font-weight: 800;
    margin: -14px 0 22px;
}

.logo-header img {
    display: block;
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.18)) drop-shadow(0 0 2px rgba(251, 146, 60, 0.08));
    height: 68px;
    max-width: 270px;
    object-fit: contain;
    width: auto;
}

.logo-header-nome {
    color: #fff;
    display: inline-block;
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.08;
    max-width: 210px;
    overflow-wrap: anywhere;
    text-shadow: 0 1px 2px rgba(15, 23, 42, 0.42);
}

.container {
    margin: 0 auto;
    max-width: 1100px;
    padding: 32px;
}

.estreito {
    max-width: 760px;
}

.container-notificacao-aluno {
    max-width: 1100px;
}

.container-notificar-supervisor {
    max-width: 1180px;
}

.formulario-notificar-supervisor {
    box-sizing: border-box;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
    width: 640px !important;
}

.lista-notificacoes-supervisor-direcao {
    max-width: 100%;
}

.texto-notificacao-formal,
.documento-notificacao-registro {
    text-align: justify;
}

h1 {
    margin: 0 0 24px;
}

.cabecalho-form-planejamento {
    align-items: center;
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 48px;
}

.cabecalho-form-planejamento h1 {
    grid-column: 1 / 3;
    margin: 0;
}

.cabecalho-form-planejamento .botao-chatgpt {
    grid-column: 3;
    justify-self: end;
    transform: translateY(10px);
}

.botao-chatgpt {
    align-items: center;
    background: linear-gradient(180deg, #171717, #000);
    border: 1px solid #3f3f46;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
    color: #fff;
    display: inline-flex;
    justify-content: center;
    height: 46px;
    min-height: 46px;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 148px;
}

.botao-chatgpt::before {
    background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.6), transparent);
    content: "";
    height: 140%;
    left: -70%;
    position: absolute;
    top: -20%;
    transform: skewX(-20deg);
    width: 38%;
}

.botao-chatgpt:hover::before {
    animation: brilho-botao-chatgpt 0.75s ease;
}

.campo-ia-planejamento {
    align-self: end;
    display: flex;
    justify-content: flex-end;
    min-width: 0;
}

.campo-importar-planejamento {
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 0;
    min-inline-size: 0;
}

.campo-importar-planejamento label {
    margin-bottom: 8px;
}

.campo-importar-planejamento label,
.campo-importar-planejamento select {
    transform: translateY(-7px);
}

.campo-importar-planejamento select {
    max-width: 100%;
    min-width: 0;
    text-overflow: ellipsis;
    width: 100%;
}

.linha-planejamento-datas {
    align-items: start;
    margin-bottom: 22px;
}

.botoes-importar-planejamento {
    align-items: center;
    display: flex;
    gap: 12px;
    margin-top: 2px;
    transform: none;
}

.botao-importar-planejamento {
    align-items: center;
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 45%, #1e3a8a 100%);
    border: 1px solid #60a5fa;
    border-radius: 6px;
    box-sizing: border-box;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 12px 24px rgba(37, 99, 235, 0.32);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 150px;
    font-size: 12.5px;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.15;
    min-height: 44px;
    overflow-wrap: anywhere;
    padding: 6px 10px;
    position: relative;
    text-align: center;
    width: 150px;
    word-break: normal;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
}

.botoes-importar-planejamento .botao-importar-planejamento {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    margin: 0;
    min-height: 44px;
    width: 150px;
}

.select-componente-curricular {
    max-width: 760px;
}

.painel-habilidades-planejamento {
    background: #ffffff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
    box-sizing: border-box;
    display: grid;
    gap: 8px;
    margin: 6px 0 12px;
    max-width: 100%;
    min-width: 0;
    padding: 10px 12px;
    width: 100%;
}

.painel-habilidades-planejamento[hidden] {
    display: none !important;
}

.painel-habilidades-planejamento header {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: space-between;
}

.painel-habilidades-planejamento header span {
    color: #64748b;
    display: block;
    font-size: 10.5px;
    font-weight: 900;
    text-transform: uppercase;
}

.painel-habilidades-planejamento h2,
.painel-habilidades-planejamento h3 {
    color: #0f172a;
    margin: 0;
}

.painel-habilidades-planejamento h2 {
    font-size: 15px;
    margin-top: 1px;
}

.painel-habilidades-planejamento header strong {
    background: #e0ecff;
    border: 1px solid #93c5fd;
    border-radius: 999px;
    color: #1d4ed8;
    font-size: 11px;
    padding: 5px 8px;
    white-space: nowrap;
}

.abas-habilidades-planejamento {
    align-items: center;
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.aba-habilidade-planejamento {
    background: #e5e7eb;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-shadow: none;
    color: #334155;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.1;
    min-height: 30px;
    min-width: 0;
    padding: 4px 6px;
    width: 100%;
}

.aba-habilidade-planejamento:hover,
.aba-habilidade-planejamento-ativa {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border-color: #1d4ed8;
    color: #fff;
    transform: none;
}

.grade-habilidades-planejamento {
    align-items: start;
    display: grid;
    gap: 6px;
    grid-template-columns: 1fr;
    min-width: 0;
}

.grade-habilidades-planejamento article {
    background: transparent;
    border: 0;
    border-radius: 0;
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 0;
}

.grade-habilidades-planejamento article[hidden] {
    display: none !important;
}

.grade-habilidades-planejamento h3 {
    display: none;
}

.lista-habilidades-planejamento {
    align-items: start;
    display: grid;
    gap: 5px;
    grid-auto-rows: min-content;
    max-height: 172px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-gutter: stable;
}

.botao-habilidade-planejamento {
    align-items: start;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-shadow: none;
    box-sizing: border-box;
    color: #334155;
    display: grid;
    gap: 8px;
    grid-auto-rows: auto;
    grid-template-columns: 92px minmax(0, 1fr);
    height: auto;
    justify-items: start;
    line-height: 1.3;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    padding: 8px 10px;
    text-align: left;
    width: 100%;
}

.botao-habilidade-planejamento:hover {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #0f172a;
    transform: none;
}

.botao-habilidade-planejamento strong {
    align-self: start;
    background: #e0ecff;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    color: #1d4ed8;
    display: inline-flex;
    font-size: 10.5px;
    grid-column: 1;
    grid-row: 1;
    justify-content: center;
    line-height: 1.1;
    min-width: 0;
    padding: 5px 7px;
    text-align: center;
    width: 100%;
}

.botao-habilidade-planejamento span {
    align-self: start;
    color: #334155;
    display: block;
    font-size: 12px;
    font-weight: 700;
    grid-column: 2;
    grid-row: 1;
    line-height: 1.35;
    max-height: none;
    min-width: 0;
    overflow: hidden;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: normal;
}

.habilidades-planejamento-vazio {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.campo-upload-atividade-pdf {
    max-width: 760px;
    min-width: 0;
    width: 100%;
}

.campo-upload-atividade-pdf::file-selector-button {
    margin-right: 10px;
    max-width: 100%;
}

.botao-importar-planejamento:hover {
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 45%, #1e3a8a 100%);
    border-color: #93c5fd;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.58),
        0 16px 30px rgba(30, 64, 175, 0.38);
    filter: brightness(1.04);
    transform: translateY(-2px);
}

.botao-importar-planejamento:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.3);
    outline-offset: 3px;
}

.botao-importar-planejamento:active {
    box-shadow: none;
    transform: translateY(0);
}

@media (max-width: 760px) {
    .cabecalho-form-planejamento {
        align-items: stretch;
        grid-template-columns: 1fr;
        margin-bottom: 30px;
    }

    .cabecalho-form-planejamento h1,
    .cabecalho-form-planejamento .botao-chatgpt {
        grid-column: 1;
        transform: none;
    }

    .botoes-importar-planejamento {
        align-items: stretch;
        flex-direction: column;
        gap: 8px;
        transform: none;
    }

    .campo-importar-planejamento label,
    .campo-importar-planejamento select {
        transform: none;
    }

    .botao-chatgpt,
    .botao-importar-planejamento {
        border-radius: 8px;
        flex: none;
        font-size: 14px;
        min-height: 42px;
        padding: 10px 14px;
        width: 100%;
    }

    .campo-importar-planejamento select,
    .campo-upload-atividade-pdf {
        font-size: 14px;
        max-width: 100%;
        width: 100%;
    }

    .resumo-rendimento-aluno {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .grafico-media-geral {
        height: 110px;
    }

    .tabela-boletim-lancamento input[type="number"] {
        width: 100%;
    }

    .select-componente-curricular {
        max-width: none;
        width: 100%;
    }

    .painel-habilidades-planejamento header {
        align-items: flex-start;
        flex-direction: column;
    }

    .grade-habilidades-planejamento {
        grid-template-columns: 1fr;
    }

    .abas-habilidades-planejamento {
        grid-template-columns: 1fr;
    }

    .lista-habilidades-planejamento {
        max-height: 235px;
    }

    .botao-habilidade-planejamento {
        grid-template-columns: 1fr;
    }

    .botao-habilidade-planejamento strong {
        grid-column: 1;
        grid-row: 1;
        justify-content: flex-start;
        width: auto;
    }

    .botao-habilidade-planejamento span {
        grid-column: 1;
        grid-row: 2;
    }

    .filtros-boletim-aluno {
        max-width: none;
        width: 100%;
    }
}

.botao-chatgpt:hover {
    background: linear-gradient(180deg, #27272a, #111827);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.3);
    text-decoration: none;
}

.botao-chatgpt img {
    display: block;
    height: 40px;
    object-fit: contain;
    position: relative;
    width: 132px;
    z-index: 1;
}

@keyframes brilho-botao-chatgpt {
    from {
        left: -70%;
    }

    to {
        left: 132%;
    }
}

.login-page {
    align-items: center;
    background: #eaf2ff;
    display: grid;
    gap: clamp(28px, 6vw, 96px);
    grid-template-columns: minmax(340px, 430px) minmax(320px, 520px);
    height: 100vh;
    height: 100svh;
    isolation: isolate;
    justify-content: space-between;
    overflow: hidden;
    padding: clamp(24px, 6vw, 72px);
    position: relative;
}

.login-page::before {
    background: linear-gradient(180deg, rgba(234, 242, 255, 0.1), rgba(15, 23, 42, 0.28));
    content: "";
    inset: 0;
    pointer-events: none;
    position: fixed;
    z-index: 1;
}

.login-video-bg {
    height: 100%;
    inset: 0;
    object-fit: cover;
    pointer-events: none;
    position: fixed;
    width: 100%;
    z-index: 0;
}

@keyframes loginBoxEntrada {
    from {
        opacity: 0;
        transform: translateX(calc(var(--login-box-x) - 72px)) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateX(var(--login-box-x)) scale(1);
    }
}

@keyframes loginMarcasEntrada {
    from {
        opacity: 0;
        transform: translateX(76px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

.login-page > *:not(.login-video-bg) {
    z-index: 2;
}

.informativo-login-suspenso {
    align-items: center;
    background:
        radial-gradient(circle at top center, rgba(37, 99, 235, 0.24), transparent 44%),
        rgba(15, 23, 42, 0.28);
    backdrop-filter: blur(2px);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: clamp(18px, 4vh, 42px) clamp(16px, 4vw, 48px);
    position: fixed;
    z-index: 60;
}

.login-page > .informativo-login-suspenso {
    z-index: 60;
}

.informativo-login-suspenso.informativo-login-oculto {
    display: none;
}

.informativo-login-card {
    animation: informativoLoginEntrada 0.38s ease both;
    background: transparent;
    border: 0;
    border-radius: 26px;
    box-shadow:
        0 34px 90px rgba(15, 23, 42, 0.42),
        0 0 0 7px rgba(255, 255, 255, 0.16),
        0 0 38px rgba(37, 99, 235, 0.35);
    display: inline-block;
    line-height: 0;
    max-width: calc(100vw - 32px);
    overflow: visible;
    position: relative;
    width: auto;
}

.informativo-login-fechar {
    align-items: center;
    background: #1d4ed8;
    border: 1px solid #60a5fa;
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.26);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 22px;
    font-weight: 700;
    height: 30px;
    justify-content: center;
    line-height: 1;
    padding: 0 0 2px;
    position: absolute;
    right: 10px;
    top: 10px;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
    width: 30px;
    z-index: 2;
}

.informativo-login-fechar:hover {
    background: #0f172a;
    border-color: #bfdbfe;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.3);
    transform: translateY(-1px);
}

.informativo-login-fechar:focus-visible {
    outline: 3px solid rgba(96, 165, 250, 0.5);
    outline-offset: 3px;
}

.informativo-login-card img {
    border-radius: 26px;
    display: block;
    height: auto;
    max-height: min(76vh, 76svh);
    max-width: min(90vw, 900px);
    object-fit: contain;
    width: auto;
}

@keyframes informativoLoginEntrada {
    from {
        opacity: 0;
        transform: translateY(-18px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.login-box {
    --login-box-x: 36px;
    animation: loginBoxEntrada 1.15s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
    background: rgba(239, 0, 18, 0.82);
    border: 1px solid rgba(255, 80, 90, 0.72);
    border-radius: 8px;
    box-shadow:
        0 28px 70px rgba(15, 23, 42, 0.42),
        0 0 0 6px rgba(255, 255, 255, 0.18),
        0 0 36px rgba(239, 0, 18, 0.28);
    color: #111827;
    grid-column: 1;
    grid-row: 1;
    max-height: calc(100svh - 40px);
    max-width: 430px;
    overflow-y: auto;
    padding: 24px 26px 28px;
    position: relative;
    transform: translateX(var(--login-box-x));
    width: 100%;
    z-index: 3;
}

.login-marcas {
    align-items: center;
    animation: loginMarcasEntrada 1.35s cubic-bezier(0.22, 1, 0.36, 1) 0.35s both;
    display: grid;
    gap: 14px;
    grid-column: 2;
    grid-row: 1;
    justify-items: center;
    justify-self: center;
    max-width: 520px;
    width: 100%;
    z-index: 2;
}

.login-marcas-logos {
    align-items: center;
    display: flex;
    gap: 18px;
    justify-content: center;
    justify-self: center;
    transform: translateX(-30px);
    width: auto;
}

.frase-login {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.86) 0%,
        rgba(236, 248, 255, 0.96) 46%,
        rgba(186, 230, 253, 0.82) 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-family: "Segoe UI", "Arial Black", Arial, Helvetica, sans-serif;
    font-size: clamp(26px, 3.2vw, 42px);
    font-style: italic;
    font-weight: 700;
    line-height: 1.18;
    margin: 0;
    max-width: 520px;
    padding: 0;
    text-align: center;
    text-shadow:
        0 2px 5px rgba(15, 23, 42, 0.56),
        0 0 14px rgba(255, 255, 255, 0.18);
    transform: translateX(-34px);
}

.login-marcas {
    gap: 10px;
}

.link-logo-admin {
    border-radius: 8px;
    display: block;
    line-height: 0;
    outline-offset: 8px;
}

.link-logo-admin:focus-visible {
    outline: 3px solid rgba(147, 197, 253, 0.9);
}

.marca-mg-login {
    filter:
        drop-shadow(0 2px 4px rgba(0, 0, 0, 0.46))
        drop-shadow(0 0 10px rgba(255, 255, 255, 0.72));
    height: 190px;
    margin-right: 0;
    object-fit: contain;
    width: auto;
}

.marca-educacao-login {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin-left: 18px;
    width: auto;
}

.marca-educacao-login img {
    display: block;
    filter:
        drop-shadow(0 2px 4px rgba(0, 0, 0, 0.46))
        drop-shadow(0 0 10px rgba(255, 255, 255, 0.72));
    height: 180px;
    object-fit: contain;
    width: auto;
}

.marca-educacao-login strong {
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 26px;
    font-weight: 900;
    line-height: 1;
    margin-top: 2px;
    text-align: center;
    text-shadow:
        0 2px 6px rgba(0, 0, 0, 0.72),
        0 0 14px rgba(37, 99, 235, 0.68);
    width: 100%;
}

.marca-educatech-recuperacao {
    display: block;
    filter:
        drop-shadow(0 4px 8px rgba(0, 0, 0, 0.48))
        drop-shadow(0 0 16px rgba(255, 255, 255, 0.82));
    height: clamp(260px, 31vw, 410px);
    object-fit: contain;
    width: auto;
}

.recuperar-senha-admin-page .login-box p {
    margin-bottom: 22px;
}

.logo-recuperacao-box {
    display: block;
    filter: drop-shadow(0 4px 8px rgba(15, 23, 42, 0.28));
    height: 92px;
    margin: -2px auto 8px;
    max-width: 200px;
    object-fit: contain;
    width: auto;
}

.recuperar-senha-admin-page,
.recuperar-senha-usuario-page {
    align-content: center;
    grid-template-columns: minmax(320px, 430px);
    justify-content: center;
    justify-items: center;
}

.recuperar-senha-admin-page .login-box,
.recuperar-senha-usuario-page .login-box {
    --login-box-x: 0px;
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    transform: translateX(var(--login-box-x));
}

.recuperar-senha-usuario-page .login-box p {
    margin-bottom: 22px;
}

.conta-recuperacao-unica {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    display: grid;
    gap: 3px;
    margin-bottom: 4px;
    padding: 10px 12px;
}

.conta-recuperacao-unica span,
.ajuda-recuperacao-conta {
    color: #475569;
    font-size: 12px;
    font-weight: 800;
}

.conta-recuperacao-unica strong {
    color: #1e3a8a;
    font-size: 13px;
    overflow-wrap: anywhere;
}

.ajuda-recuperacao-conta {
    display: block;
    line-height: 1.35;
    margin-top: -4px;
}

@media (max-width: 1180px) {
    .login-page {
        grid-template-columns: minmax(320px, 420px) minmax(280px, 420px);
    }

    .frase-login {
        font-size: 26px;
    }
}

@media (max-width: 980px) {
    .login-page {
        align-content: start;
        gap: 18px;
        grid-template-columns: 1fr;
        justify-items: center;
        overflow-y: auto;
        padding: 24px 18px;
    }

    .login-marcas {
        grid-column: 1;
        grid-row: 1;
        gap: 10px;
        justify-self: center;
        max-width: 460px;
    }

    .login-marcas-logos {
        gap: 18px;
        transform: none;
    }

    .login-box {
        --login-box-x: 0px;
        grid-column: 1;
        grid-row: 2;
        max-height: none;
        transform: translateX(var(--login-box-x));
    }

    .frase-login {
        font-size: 22px;
        max-width: 420px;
        transform: none;
    }

    .marca-mg-login {
        height: 118px;
        margin-right: 0;
    }

    .marca-educatech-recuperacao {
        height: 132px;
    }

    .recuperar-senha-admin-page,
    .recuperar-senha-usuario-page {
        align-content: center;
        grid-template-columns: 1fr;
    }

    .logo-recuperacao-box {
        height: 76px;
        margin-bottom: 6px;
    }

    .marca-educacao-login {
        margin-left: 28px;
        width: auto;
    }

    .marca-educacao-login img {
        height: 86px;
    }

    .marca-educacao-login strong {
        font-size: 17px;
    }
}

@media (max-width: 700px) {
    .informativo-login-suspenso {
        align-items: center;
        padding: 14px;
    }

    .informativo-login-card {
        border-radius: 22px;
        max-height: calc(100svh - 28px);
        max-width: calc(100vw - 28px);
    }

    .informativo-login-card img {
        border-radius: 22px;
        max-height: calc(100svh - 28px);
        max-width: calc(100vw - 28px);
    }
}

.login-box h1 {
    font-family: "Segoe UI", "Arial Black", Arial, Helvetica, sans-serif;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0;
    margin-bottom: 6px;
    text-align: center;
}

.login-box h1 span {
    font-style: italic;
    font-weight: 900;
    -webkit-text-stroke: 0.35px currentColor;
}

.login-box p,
.login-box small {
    color: #111827;
}

.login-box p {
    margin: 0 0 4px;
    text-align: center;
}

.login-box small {
    display: block;
    margin-top: 18px;
}

.campo-com-info {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr 28px;
}

.campo-com-info.campo-com-senha {
    grid-template-columns: 1fr 28px;
    position: relative;
}

.campo-com-info.campo-com-senha input {
    grid-column: 1;
    grid-row: 1;
    padding-right: 48px;
}

.campo-com-info.campo-com-senha > .icone-info {
    grid-column: 2;
    grid-row: 1;
}

.botao-alternar-senha {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 999px;
    box-shadow: none;
    color: #7c2d12;
    cursor: pointer;
    display: inline-flex;
    height: 30px;
    justify-content: center;
    margin: 0;
    min-height: 30px;
    min-width: 30px;
    padding: 0;
    position: absolute;
    right: 44px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
}

.botao-alternar-senha svg {
    fill: currentColor;
    height: 19px;
    width: 19px;
}

.botao-alternar-senha:hover,
.botao-alternar-senha.senha-visivel {
    background: transparent;
    color: #431407;
}

.login-box .botao-alternar-senha {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #7c2d12;
    display: inline-flex;
    height: 30px;
    line-height: 1;
    margin: 0;
    min-height: 30px;
    min-width: 30px;
    padding: 0;
    position: absolute;
    right: 44px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    z-index: 3;
}

.login-box .botao-alternar-senha:hover,
.login-box .botao-alternar-senha.senha-visivel {
    background: transparent;
    border: 0;
    box-shadow: none;
    color: #431407;
    filter: none;
    transform: translateY(-50%);
}

.icone-info {
    align-items: center;
    background: #e0ecff;
    border: 1px solid #93c5fd;
    border-radius: 999px;
    color: #1d4ed8;
    cursor: help;
    display: inline-flex;
    font-size: 14px;
    font-weight: 900;
    height: 24px;
    justify-content: center;
    position: relative;
    width: 24px;
}

.icone-info::after {
    background: #111827;
    border-radius: 6px;
    bottom: calc(100% + 8px);
    color: #fff;
    content: attr(aria-label);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    opacity: 0;
    padding: 8px 10px;
    pointer-events: none;
    position: absolute;
    right: 0;
    transform: translateY(4px);
    transition: opacity 0.16s ease, transform 0.16s ease;
    visibility: hidden;
    width: 240px;
    z-index: 20;
}

.icone-info:hover::after,
.icone-info:focus::after {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.login-box input {
    background: #fff7ed;
    border-color: #9a3412;
    color: #111827;
    min-height: 40px;
}

.login-box label {
    display: block;
    margin-bottom: 2px;
}

.campos-login-escola,
.campos-login-inspetor {
    display: grid;
    gap: 10px;
}

.login-box label + select,
.login-box label + .campo-com-info {
    margin-top: -2px;
}

.login-box select + label,
.login-box .campo-com-info + label {
    margin-top: 0;
}

.login-box select {
    background-color: #fff7ed;
    border-color: #9a3412;
    color: #111827;
    min-height: 40px;
    padding-left: 14px;
    text-overflow: ellipsis;
}

.login-box input:focus,
.login-box select:focus {
    border-color: #0f172a;
    box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.22);
    outline: none;
}

.login-box button {
    align-items: center;
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 45%, #1e3a8a 100%);
    border: 1px solid #60a5fa;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 12px 24px rgba(37, 99, 235, 0.32);
    color: #fff;
    display: inline-flex;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1;
    margin-top: 4px;
    min-height: 42px;
    position: relative;
    text-align: center;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
}

.login-box .botoes-formulario button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    line-height: 1;
    padding-bottom: 0;
    padding-top: 0;
    text-align: center;
}

.login-box .botoes-formulario-com-espaco {
    margin-top: 14px;
}

.login-box .botoes-formulario .botao-login-link {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    flex: 0 0 150px;
    font-size: 12.5px;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    margin-top: 4px;
    min-height: 44px;
    padding: 0 10px;
    text-align: center;
    text-decoration: none;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
    width: 150px;
}

.login-box .botoes-formulario a.botao-secundario.botao-login-link {
    background: linear-gradient(180deg, #9ca3af, #6b7280);
    border: 1px solid #4b5563;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.32),
        0 12px 24px rgba(75, 85, 99, 0.24);
    color: #111827;
}

.login-box .botoes-formulario a.botao-secundario.botao-login-link:hover {
    background: linear-gradient(180deg, #6b7280, #4b5563);
    border-color: #374151;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.26),
        0 16px 30px rgba(75, 85, 99, 0.3);
    color: #fff;
    text-decoration: none;
}

.login-box .botoes-formulario a.botao-secundario.botao-login-link:focus-visible {
    outline: 3px solid rgba(75, 85, 99, 0.35);
    outline-offset: 3px;
}

.login-box .botoes-formulario a.botao-acessar-sre {
    background: linear-gradient(180deg, #171717, #020617);
    border-color: #334155;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 12px 24px rgba(2, 6, 23, 0.32);
    color: #fff;
}

.login-box .botoes-formulario a.botao-acessar-sre:hover {
    background: linear-gradient(180deg, #334155, #020617);
    border-color: #94a3b8;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 16px 30px rgba(2, 6, 23, 0.42);
    color: #fff;
    text-decoration: none;
}

.login-box .botoes-formulario .botao-login-link:focus-visible {
    outline: 3px solid rgba(148, 163, 184, 0.42);
    outline-offset: 3px;
}

.login-box .botoes-formulario .botao-login-link:active {
    box-shadow: none;
    transform: translateY(0);
}

.login-box button:hover {
    border-color: #93c5fd;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.58),
        0 16px 30px rgba(30, 64, 175, 0.38);
    filter: brightness(1.04);
    transform: translateY(-2px);
}

.login-box button:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.3);
    outline-offset: 3px;
}

.login-box button:active {
    box-shadow: none;
    transform: translateY(0);
}

.login-box .botao-alternar-senha:active {
    box-shadow: none;
    transform: translateY(-50%);
}

.pagina-lgpd {
    align-content: start;
    background:
        linear-gradient(180deg, rgba(234, 242, 255, 0.92), rgba(15, 23, 42, 0.24)),
        #eaf2ff;
    display: block !important;
    height: auto !important;
    isolation: isolate;
    min-height: 100vh;
    min-height: 100svh;
    overflow-y: auto !important;
    padding: clamp(18px, 4vw, 44px);
    position: relative;
}

.pagina-lgpd::before {
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.1), rgba(15, 23, 42, 0.46));
    content: "";
    inset: 0;
    pointer-events: none;
    position: fixed;
    z-index: 1;
}

.lgpd-box {
    animation: none !important;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-left: 6px solid #2563eb;
    border-radius: 8px;
    box-shadow:
        0 28px 70px rgba(15, 23, 42, 0.34),
        0 0 0 6px rgba(255, 255, 255, 0.12);
    color: #111827;
    display: grid;
    gap: 18px;
    margin: 0 auto;
    max-width: 920px;
    padding: clamp(20px, 4vw, 34px);
    position: relative;
    transform: none !important;
    z-index: 3;
}

body.pagina-lgpd::before {
    z-index: 1 !important;
}

body.pagina-lgpd > .lgpd-conteudo,
body.pagina-lgpd .lgpd-box {
    animation: none !important;
    clip-path: none !important;
    display: grid !important;
    margin: auto !important;
    max-width: 920px !important;
    opacity: 1 !important;
    position: relative !important;
    transform: none !important;
    visibility: visible !important;
    width: min(920px, 100%) !important;
    z-index: 3 !important;
}

.lgpd-cabecalho {
    align-items: start;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.lgpd-cabecalho h1 {
    grid-column: 1;
    margin: 0;
}

.lgpd-cabecalho p {
    color: #475569;
    font-weight: 800;
    grid-column: 1;
    line-height: 1.45;
    margin: 0;
}

.lgpd-cabecalho .botao-form-link {
    grid-column: 2;
    grid-row: 1 / span 2;
    min-width: 112px;
    width: 112px;
}

.lgpd-box section {
    border-top: 1px solid #e2e8f0;
    display: grid;
    gap: 8px;
    padding-top: 16px;
}

.lgpd-box section:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.lgpd-box h2 {
    color: #1e3a8a;
    font-size: 18px;
    margin: 0;
}

.lgpd-box p {
    line-height: 1.65;
    margin: 0;
    text-align: justify;
}

.botao-whatsapp-lgpd {
    background: linear-gradient(180deg, #86efac, #22c55e);
    border: 1px solid #15803d;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.22);
    color: #052e16;
    justify-self: start;
    max-width: 220px;
    width: 220px;
}

.botao-whatsapp-lgpd:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    color: #052e16;
}

.lgpd-rodape {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
    padding: 12px 14px;
}

.suporte-whatsapp-login {
    align-items: center;
    background: rgba(37, 211, 102, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 18px 18px 6px 18px;
    bottom: 20px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
    color: #fff;
    display: inline-flex;
    height: 48px;
    justify-content: center;
    opacity: 0.82;
    position: fixed;
    right: 20px;
    text-decoration: none;
    transition: background 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
    width: 48px;
    z-index: 20;
}

.suporte-whatsapp-login:hover {
    background: rgba(22, 163, 74, 0.94);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.24);
    color: #fff;
    opacity: 1;
    text-decoration: none;
    transform: translateY(-2px);
}

.suporte-whatsapp-login svg {
    fill: currentColor;
    height: 29px;
    width: 29px;
}

.formulario,
.login-box form {
    display: grid;
    gap: 10px;
}

.formulario input[type="file"] {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 10px;
}

.filtros-boletim-professor {
    align-items: end;
}

.resumo-boletim-professor {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1e3a8a;
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 8px 0 14px;
    padding: 14px;
}

.tabela-boletim-lancamento input[type="number"] {
    min-width: 96px;
    text-align: center;
}

.resumo-rendimento-aluno {
    align-items: center;
    background: linear-gradient(135deg, #eff6ff, #ecfdf5);
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) 240px;
    margin: 22px 0;
    padding: 24px;
}

.resumo-rendimento-aluno span,
.resumo-rendimento-aluno small {
    color: #475569;
    display: block;
}

.resumo-rendimento-aluno strong {
    color: #0f172a;
    display: block;
    font-size: 42px;
    line-height: 1;
    margin: 6px 0;
}

.grafico-media-geral {
    align-items: end;
    background: #dbeafe;
    border-radius: 8px;
    display: flex;
    height: 150px;
    overflow: hidden;
}

.grafico-media-geral span {
    background: linear-gradient(180deg, #22c55e, #15803d);
    display: block;
    height: var(--media-geral);
    width: 100%;
}

.grafico-boletim-componentes {
    display: grid;
    gap: 12px;
    margin: 22px 0;
}

.grafico-boletim-componentes article {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px;
}

.grafico-boletim-componentes article > div:first-child {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 8px;
}

.barra-rendimento {
    background: #e2e8f0;
    border-radius: 999px;
    height: 14px;
    overflow: hidden;
}

.barra-rendimento span {
    background: linear-gradient(90deg, #38bdf8, #2563eb);
    display: block;
    height: 100%;
}

.tabela-boletim-aluno th,
.tabela-boletim-aluno td,
.tabela-boletim-lancamento th,
.tabela-boletim-lancamento td {
    padding: 12px 14px;
    text-align: center;
}

.tabela-boletim-aluno table {
    min-width: 760px;
}

.tabela-boletim-aluno th small,
.tabela-boletim-lancamento th small {
    color: #64748b;
    display: block;
    font-size: 11px;
    margin-top: 2px;
}

.card-grafico-boletim {
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.7), transparent 32%),
        linear-gradient(135deg, #eff6ff, #ecfdf5);
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(37, 99, 235, 0.12);
    display: grid;
    gap: 12px;
    margin: 18px 0;
    padding: 16px;
}

.card-grafico-boletim span,
.card-grafico-boletim small {
    color: #475569;
}

.card-grafico-boletim strong {
    color: #0f172a;
    display: block;
    font-size: 18px;
}

.mini-grafico-boletim-tela {
    align-items: end;
    display: flex;
    gap: 8px;
    height: 130px;
    width: 100%;
}

.mini-grafico-boletim-tela span {
    background: linear-gradient(180deg, #fef08a, #22c55e);
    border-radius: 8px 8px 0 0;
    box-shadow: 0 0 18px rgba(254, 240, 138, 0.35);
    flex: 1;
    min-width: 10px;
    height: var(--altura-rendimento);
}

.mini-grafico-boletim-tela .barra-sem-nota {
    background: linear-gradient(180deg, #cbd5e1, #94a3b8);
    box-shadow: none;
    opacity: 0.75;
}

.tabela-boletim-aluno th:first-child,
.tabela-boletim-aluno td:first-child,
.tabela-boletim-lancamento th:first-child,
.tabela-boletim-lancamento td:first-child {
    text-align: left;
}

.formulario-cadastro-pessoa {
    background: var(--cor-escola-destaque-clara);
    border: 1px solid var(--cor-escola-destaque-borda);
    border-left: 5px solid var(--cor-escola-destaque);
    border-radius: 8px;
    padding: 18px;
}

.formulario-cadastro-pessoa label {
    color: #7c2d12;
}

.formulario-cadastro-pessoa input,
.formulario-cadastro-pessoa select {
    background-color: #fff7ed;
    border-color: var(--cor-escola-destaque-borda);
}

.formulario-cadastro-pessoa input:focus,
.formulario-cadastro-pessoa select:focus {
    border-color: #ea580c;
    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.18);
}

.formulario-cadastro-aluno,
.formulario-cadastro-professor {
    background: #eff6ff;
    border-color: #bfdbfe;
    border-left-color: #2563eb;
}

.formulario-cadastro-aluno label,
.formulario-cadastro-professor label {
    color: #1e3a8a;
}

.formulario-cadastro-aluno input,
.formulario-cadastro-aluno select,
.formulario-cadastro-professor input,
.formulario-cadastro-professor select {
    background-color: #f8fbff;
    border-color: #bfdbfe;
}

.formulario-cadastro-aluno input:focus,
.formulario-cadastro-aluno select:focus,
.formulario-cadastro-professor input:focus,
.formulario-cadastro-professor select:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

.formulario-prova {
    background: #eff6ff;
    border-color: #bfdbfe;
    border-left-color: #2563eb;
    margin-top: 26px;
}

.cabecalho-form-prova {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 18px;
}

.cabecalho-form-prova strong {
    color: #0f172a;
    display: block;
    font-size: 1.05rem;
    font-weight: 900;
}

.cabecalho-form-prova small {
    color: #475569;
    display: block;
    font-weight: 700;
    margin-top: 2px;
}

.cabecalho-form-prova .botao-chatgpt {
    flex: 0 0 auto;
}

.lista-questoes-prova {
    display: grid;
    gap: 14px;
}

.questao-prova-card {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-left: 5px solid #f97316;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.questao-prova-card.questao-prova-discursiva {
    background: #fef2f2;
    border-color: #fecaca;
    border-left-color: #dc2626;
}

.questao-prova-card.questao-prova-objetiva {
    background: #fef9c3;
    border-color: #fde68a;
    border-left-color: #f59e0b;
}

.questao-prova-card textarea[name="enunciado[]"] {
    min-height: 96px;
}

.questao-prova-card textarea[name="alternativas[]"] {
    min-height: 112px;
}

.campo-imagem-questao {
    display: grid;
    gap: 7px;
}

.campo-imagem-questao small {
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.campos-upload-imagens-questao {
    display: grid;
    gap: 8px;
}

.botao-adicionar-figura-questao {
    align-self: start;
    background: linear-gradient(180deg, #dbeafe 0%, #93c5fd 100%) !important;
    border: 1px solid #2563eb !important;
    border-radius: 6px;
    color: #1e3a8a !important;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    min-height: 34px;
    padding: 6px 12px;
    width: 150px;
}

.botao-adicionar-figura-questao:hover {
    background: linear-gradient(180deg, #eff6ff 0%, #60a5fa 100%) !important;
}

.imagens-questao-atual {
    align-items: flex-start;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
    padding: 10px;
}

.imagens-questao-atual img {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    height: 92px;
    max-width: 100%;
    object-fit: contain;
    width: 100%;
}

.imagens-questao-atual label {
    align-items: center;
    color: #991b1b;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    gap: 6px;
    grid-column: 1 / -1;
    margin: 0;
}

.figura-questao-prova {
    display: grid;
    gap: 6px;
    justify-items: end;
    margin: 0;
    text-align: right;
}

.figura-questao-prova-multiplas {
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
    justify-items: center;
    margin: 10px 0 12px;
    text-align: center;
}

.figura-questao-prova img {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    display: block;
    height: auto;
    max-height: 195px;
    max-width: 100%;
    object-fit: contain;
}

.questao-prova-card select[name="espaco_objetiva[]"] {
    max-width: 260px;
}

.questao-prova-card.questao-prova-discursiva .campo-objetiva,
.questao-prova-card.questao-prova-objetiva .campo-linhas-discursiva {
    display: none;
}

.aviso-provas-mobile {
    display: none;
}

.pagina-criar-prova .alerta:not(.aviso-provas-mobile) {
    margin-top: 22px;
}

.botao-adicionar-questao {
    background: linear-gradient(180deg, #86efac 0%, #22c55e 100%) !important;
    border: 1px solid #15803d !important;
    color: #052e16 !important;
}

.botao-adicionar-questao:hover {
    background: linear-gradient(180deg, #bbf7d0 0%, #16a34a 100%) !important;
}

.botao-remover-questao {
    background: linear-gradient(180deg, #f87171 0%, #dc2626 100%) !important;
    border: 1px solid #991b1b !important;
    color: #ffffff !important;
}

.botao-remover-questao:hover {
    background: linear-gradient(180deg, #fca5a5 0%, #b91c1c 100%) !important;
}

.botao-enviar-supervisor-prova {
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%) !important;
    border: 1px solid #1e40af !important;
    color: #ffffff !important;
}

.botao-enviar-supervisor-prova:hover {
    background: linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%) !important;
    border-color: #1e40af !important;
    color: #ffffff !important;
}

.acoes-provas-salvas {
    align-items: stretch;
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(2, 132px);
    min-width: 270px;
}

.acoes-provas-salvas .botao-acao,
.acoes-provas-salvas .form-inline,
.acoes-provas-salvas .form-inline button {
    width: 100%;
}

.tabela-provas-supervisor {
    margin-top: 24px;
}

.bloco-provas-recebidas {
    margin-top: 28px !important;
}

.status-prova-enviada {
    color: #15803d;
    font-weight: 900;
}

.tabela-provas-salvas table {
    table-layout: fixed;
    width: 100%;
}

.tabela-provas-salvas th,
.tabela-provas-salvas td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tabela-provas-salvas th:nth-child(1),
.tabela-provas-salvas td:nth-child(1) {
    width: 104px;
}

.tabela-provas-salvas th:nth-child(2),
.tabela-provas-salvas td:nth-child(2) {
    width: 18%;
}

.tabela-provas-salvas th:nth-child(3),
.tabela-provas-salvas td:nth-child(3) {
    width: 128px;
}

.tabela-provas-salvas th:nth-child(4),
.tabela-provas-salvas td:nth-child(4) {
    width: 17%;
}

.tabela-provas-salvas th:nth-child(5),
.tabela-provas-salvas td:nth-child(5) {
    width: 84px;
}

.tabela-provas-salvas th:nth-child(6),
.tabela-provas-salvas td:nth-child(6) {
    overflow: visible;
    width: 246px;
}

.formulario-notificacao-aluno fieldset {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    margin: 0;
    padding: 14px;
}

.formulario-notificacao-aluno,
.secao-notificacoes-alunos,
.secao-notificacoes-alunos table {
    width: 100%;
}

.formulario-notificacao-aluno legend {
    color: #1f2937;
    font-weight: 900;
    padding: 0 6px;
}

.grade-checks-notificacao {
    display: grid;
    gap: 4px 6px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.secao-notificacoes-alunos {
    margin-top: 28px;
}

.secao-notificacoes-alunos table {
    table-layout: fixed;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor {
    table-layout: fixed;
    width: 100%;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor th,
.secao-notificacoes-alunos .tabela-notificacoes-professor td {
    box-sizing: border-box;
    padding-left: 6px;
    padding-right: 6px;
    text-align: left;
    vertical-align: middle;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor th:nth-child(1),
.secao-notificacoes-alunos .tabela-notificacoes-professor td:nth-child(1) {
    white-space: nowrap;
    width: 92px;
}

.data-notificacao-salva span {
    display: block;
    line-height: 1.25;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor th:nth-child(2),
.secao-notificacoes-alunos .tabela-notificacoes-professor td:nth-child(2) {
    line-height: 1.25;
    overflow-wrap: anywhere;
    white-space: normal;
    width: 238px;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor th:nth-child(3),
.secao-notificacoes-alunos .tabela-notificacoes-professor td:nth-child(3) {
    padding-left: 28px;
    white-space: nowrap;
    width: 118px;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor th:nth-child(4),
.secao-notificacoes-alunos .tabela-notificacoes-professor td:nth-child(4) {
    line-height: 1.25;
    padding-left: 38px;
    width: 218px;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor th:nth-child(5),
.secao-notificacoes-alunos .tabela-notificacoes-professor td:nth-child(5) {
    overflow: visible;
    padding-left: 8px;
    width: 218px;
}

.supervisor-notificacao-nome,
.supervisor-notificacao-periodo {
    display: block;
    line-height: 1.25;
}

.supervisor-notificacao-periodo {
    color: #475569;
    font-size: 12px;
    font-weight: 700;
    margin-top: 2px;
    text-align: center;
    text-transform: uppercase;
}

.tabela-notificacoes-professor .coluna-supervisor-notificacao {
    white-space: normal;
}

.acoes-notificacao-aluno {
    align-items: stretch;
    display: grid;
    grid-template-columns: repeat(2, 132px);
    gap: 8px;
    justify-content: center;
    margin-left: auto;
    white-space: normal;
    width: 272px;
}

.tabela-notificacoes-professor .acoes-planejamento.acoes-notificacao-aluno,
.tabela-notificacoes-professor .acoes-notificacao-aluno {
    align-items: stretch;
    display: grid;
    gap: 8px;
    grid-auto-rows: 32px;
    grid-template-columns: repeat(2, 104px);
    justify-content: end;
    justify-items: stretch;
    margin-left: auto;
    margin-right: 14px;
    width: 216px;
}

.acoes-notificacao-aluno .botao-acao,
.acoes-notificacao-aluno .form-inline,
.acoes-notificacao-aluno .status-assinatura-notificacao {
    min-width: 132px;
    width: 132px;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .botao-acao,
.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline,
.tabela-notificacoes-professor .acoes-notificacao-aluno .status-assinatura-notificacao {
    box-sizing: border-box;
    font-size: 10px;
    min-height: 32px;
    min-width: 104px;
    padding-left: 5px;
    padding-right: 5px;
    width: 104px;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline {
    display: flex;
    margin: 0;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline .botao-acao,
.tabela-notificacoes-professor .acoes-notificacao-aluno .botao-visualizar-notificacao {
    min-width: 104px;
    width: 104px;
}

.acoes-notificacao-aluno .botao-acao {
    padding-left: 10px;
    padding-right: 10px;
    text-align: center;
    white-space: nowrap;
}

.acoes-notificacao-aluno .form-inline .botao-acao,
.acoes-notificacao-aluno .botao-visualizar-notificacao {
    min-width: 132px;
    width: 132px;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline,
.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline .botao-acao,
.tabela-notificacoes-professor .acoes-notificacao-aluno .botao-acao,
.tabela-notificacoes-professor .acoes-notificacao-aluno .botao-visualizar-notificacao,
.tabela-notificacoes-professor .acoes-notificacao-aluno .status-assinatura-notificacao {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    justify-content: center !important;
    margin: 0 !important;
    min-height: 32px !important;
    min-width: 104px !important;
    text-align: center !important;
    width: 104px !important;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline {
    display: flex !important;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .form-inline .botao-acao {
    height: 100% !important;
    width: 100% !important;
}

.botao-excluir-notificacao {
    background: linear-gradient(180deg, #ef4444, #991b1b);
    border: 1px solid #7f1d1d;
    box-shadow: 0 6px 14px rgba(153, 27, 27, 0.24);
    color: #fff;
}

.botao-excluir-notificacao:hover {
    background: linear-gradient(180deg, #f87171, #7f1d1d);
    color: #fff;
}

.botao-visualizar-notificacao {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.24);
    color: #052e16;
    padding-left: 10px;
    padding-right: 10px;
}

.botao-visualizar-notificacao:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    color: #052e16;
}

.botao-visualizar-planejamento {
    min-width: 150px;
    padding-left: 12px;
    padding-right: 12px;
    white-space: nowrap;
}

.botao-cancelar-edicao {
    background: linear-gradient(180deg, #f87171, #dc2626) !important;
    border: 1px solid #b91c1c !important;
    box-shadow: 0 6px 14px rgba(220, 38, 38, 0.24) !important;
    color: #fff !important;
}

.botoes-formulario .botao-form-link.botao-cancelar-edicao {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    flex: 0 0 150px;
    font-size: 12.5px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.15;
    min-height: 44px;
    padding: 6px 10px;
    text-align: center;
    width: 150px;
}

.botao-cancelar-edicao:hover {
    background: linear-gradient(180deg, #fb7185, #991b1b) !important;
    color: #fff !important;
    text-decoration: none;
}

.botoes-notificacao-aluno {
    justify-content: center;
    margin-top: 18px;
}

.botoes-notificacao-aluno button,
.botoes-notificacao-aluno .botao-form-link {
    flex: 0 0 150px;
    min-width: 150px;
    white-space: nowrap;
    width: 150px;
}

.botoes-cadastrar-equipe {
    justify-content: center;
}

.botoes-cadastrar-equipe button,
.botoes-cadastrar-equipe .botao-form-link {
    flex: 0 0 150px;
    min-width: 150px;
    width: 150px;
}

.filtros-notificacoes-alunos-supervisor {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.resumo-listagem-notificacoes {
    align-items: center;
    color: #475569;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 14px 0 10px;
}

.resumo-listagem-notificacoes strong {
    color: #0f172a;
    font-size: 18px;
}

.tabela-rolagem {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    max-height: none;
    overflow: visible;
}

.tabela-rolagem table {
    margin: 0;
    min-width: 0;
    table-layout: fixed;
    width: 100%;
}

.tabela-rolagem thead th {
    position: static;
}

.tabela-notificacoes-supervisor th:nth-child(1),
.tabela-notificacoes-supervisor td:nth-child(1) {
    width: 122px;
}

.tabela-notificacoes-supervisor th:nth-child(2),
.tabela-notificacoes-supervisor td:nth-child(2) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 220px;
}

.tabela-notificacoes-supervisor th:nth-child(4),
.tabela-notificacoes-supervisor td:nth-child(4) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 190px;
}

.tabela-notificacoes-supervisor th:nth-child(3),
.tabela-notificacoes-supervisor td:nth-child(3) {
    width: 88px;
}

.tabela-notificacoes-supervisor th:nth-child(5),
.tabela-notificacoes-supervisor td:nth-child(5) {
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 150px;
}

.tabela-notificacoes-supervisor th:nth-child(6),
.tabela-notificacoes-supervisor td:nth-child(6) {
    text-align: left;
    width: 142px;
}

.tabela-notificacoes-supervisor .acoes-planejamento {
    justify-content: flex-start;
    white-space: normal;
}

.perfil-direcao-notificacoes .tabela-notificacoes-supervisor th:nth-child(5),
.perfil-direcao-notificacoes .tabela-notificacoes-supervisor td:nth-child(5) {
    padding-right: 8px;
    width: 160px;
}

.perfil-direcao-notificacoes .tabela-notificacoes-supervisor th:nth-child(3),
.perfil-direcao-notificacoes .tabela-notificacoes-supervisor td:nth-child(3) {
    padding-left: 10px;
    width: 82px;
}

.perfil-direcao-notificacoes .tabela-notificacoes-supervisor th:nth-child(4),
.perfil-direcao-notificacoes .tabela-notificacoes-supervisor td:nth-child(4) {
    padding-left: 14px;
    width: 210px;
}

.perfil-direcao-notificacoes .tabela-notificacoes-supervisor th:nth-child(5) {
    padding-left: 14px;
    text-align: left;
}

.perfil-direcao-notificacoes .tabela-notificacoes-supervisor td:nth-child(5) {
    text-align: right;
}

.perfil-direcao-notificacoes .tabela-notificacoes-supervisor .acoes-planejamento {
    justify-content: flex-end;
    width: 100%;
}

.perfil-direcao-notificacoes .acoes-notificacao-lista {
    margin-left: auto;
    margin-right: 0;
    max-width: 132px;
    width: 132px;
}

.acoes-notificacao-lista {
    align-items: stretch;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: center;
    margin-left: 0;
    white-space: normal;
    width: 132px;
}

.acoes-notificacao-lista .botao-acao,
.acoes-notificacao-lista .form-inline,
.acoes-notificacao-lista .status-assinatura-notificacao {
    flex: 0 0 auto;
    min-width: 132px;
    width: 132px;
}

.acoes-notificacao-lista .form-inline .botao-acao,
.acoes-notificacao-lista .botao-visualizar-planejamento,
.acoes-notificacao-lista .botao-visualizar-notificacao {
    min-width: 132px;
    width: 132px;
}

.botao-assinar-pdf {
    min-width: 112px;
    white-space: nowrap;
}

.status-assinatura-notificacao {
    display: inline-block;
    font-size: 12px;
    line-height: 1.35;
    max-width: none;
    text-align: center;
    white-space: normal;
}

.status-assinatura-notificacao span {
    display: block;
}

.status-assinatura-notificacao span:last-child {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.status-assinatura-notificacao .assinatura-professor-nome {
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.tabela-notificacoes-professor .acoes-notificacao-aluno .status-assinatura-notificacao {
    flex-direction: column;
    gap: 0;
    line-height: 1.08;
    min-height: 32px !important;
    padding-bottom: 0;
    padding-top: 0;
}

.documento-assinaturas-supervisor {
    grid-template-columns: repeat(3, 1fr);
}

.documento-assinaturas-supervisor.documento-assinaturas-duas {
    grid-template-columns: repeat(2, 1fr);
}

.campo-aluno-notificacao-wrapper {
    grid-column: span 2;
}

.campo-aluno-notificacao {
    font-size: 16px;
    font-weight: 400;
    text-transform: uppercase;
}

.documento-lista-ocorrencias {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    line-height: 1.65;
    margin: 10px 0 18px;
    overflow-wrap: anywhere;
    padding: 14px 22px 14px 34px;
    word-break: break-word;
}

.documento-lista-ocorrencias li {
    margin: 3px 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.check-conduta-infracional {
    background: #fef2f2;
    border: 1px solid #ef4444;
    border-left: 6px solid #dc2626;
    border-radius: 8px;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.12);
    color: #991b1b;
    font-weight: 800;
    padding: 12px 14px;
}

.check-conduta-infracional input {
    accent-color: #dc2626;
}

.documento-alerta-conduta {
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-left: 4px solid #dc2626;
    border-radius: 8px;
    color: #7f1d1d;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    margin: 10px 0 14px;
    overflow-wrap: anywhere;
    padding: 8px 10px;
    text-align: left;
    word-break: break-word;
}

label {
    font-weight: 700;
}

input,
textarea,
select,
button {
    border-radius: 6px;
    font: inherit;
}

input,
textarea,
select {
    border: 1px solid #94a3b8;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    padding: 12px 14px;
    min-height: 46px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    width: 100%;
}

input[type="date"] {
    appearance: none;
    box-sizing: border-box;
    display: block;
    height: 46px;
    inline-size: 100%;
    max-height: 46px;
    max-inline-size: 100%;
    max-width: 100%;
    min-inline-size: 0;
    min-width: 0;
    -webkit-appearance: none;
    width: 100%;
}

input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="time"] {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

input[type="date"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value,
input[type="time"]::-webkit-date-and-time-value {
    min-width: 0;
    text-align: left;
}

input[type="checkbox"],
input[type="radio"] {
    accent-color: #2563eb;
    box-shadow: none;
    flex: 0 0 16px;
    height: 16px;
    margin: 0;
    max-height: 16px;
    max-width: 16px;
    min-height: 16px;
    min-width: 16px;
    padding: 0;
    width: 16px;
}

.check-conduta-infracional input[type="checkbox"] {
    accent-color: #dc2626;
}

select {
    appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #2563eb 50%),
        linear-gradient(135deg, #2563eb 50%, transparent 50%);
    background-position:
        calc(100% - 18px) 20px,
        calc(100% - 12px) 20px;
    background-repeat: no-repeat;
    background-size: 6px 6px, 6px 6px;
    cursor: pointer;
    padding-right: 38px;
}

input:focus,
textarea:focus,
select:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
    outline: none;
}

select:disabled {
    background-color: #e5e7eb;
    color: #64748b;
    cursor: not-allowed;
}

.maiusculo {
    text-transform: uppercase;
}

textarea {
    min-height: 90px;
    resize: vertical;
}

button,
.card-acao {
    background: #2563eb;
    border: 0;
    color: #fff;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.15;
    padding: 12px 16px;
    text-align: center;
}

button:hover,
.card-acao:hover {
    background: #1d4ed8;
    text-decoration: none;
}

.botoes-formulario {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.formulario > .botoes-formulario {
    justify-self: center;
    width: fit-content;
}

.botoes-formulario-com-espaco {
    margin-top: 24px;
}

.formulario-aula-ao-vivo {
    margin-top: 30px;
}

.botoes-editar-relatorio-aclta {
    display: flex;
    justify-content: center;
    margin-top: 34px;
    width: fit-content;
}

.botoes-relatorio-aclta {
    margin-top: 34px;
}

.botoes-editar-relatorio-aclta button,
.botoes-editar-relatorio-aclta .botao-form-link {
    flex: 0 0 150px;
    min-width: 150px;
    width: 150px;
}

.botoes-formulario button {
    align-items: center;
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 45%, #1e3a8a 100%);
    border: 1px solid #60a5fa;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 12px 24px rgba(37, 99, 235, 0.32);
    color: #fff;
    display: inline-flex;
    flex: 0 0 150px;
    font-size: 12.5px;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.15;
    min-height: 44px;
    overflow-wrap: anywhere;
    padding: 6px 10px;
    position: relative;
    text-align: center;
    width: 150px;
    word-break: normal;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
}

.botoes-formulario button:hover {
    border-color: #93c5fd;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.58),
        0 16px 30px rgba(30, 64, 175, 0.38);
    filter: brightness(1.04);
    transform: translateY(-2px);
}

.botoes-formulario button:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.3);
    outline-offset: 3px;
}

.botoes-formulario button:active {
    box-shadow: none;
    transform: translateY(0);
}

.botao-secundario,
button.botao-secundario {
    background: linear-gradient(180deg, #9ca3af, #6b7280);
    border-color: #4b5563;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.32),
        0 12px 24px rgba(75, 85, 99, 0.24);
    color: #111827;
}

.botao-secundario:hover,
button.botao-secundario:hover {
    background: linear-gradient(180deg, #6b7280, #4b5563);
    border-color: #374151;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.26),
        0 16px 30px rgba(75, 85, 99, 0.3);
    color: #fff;
}

.botao-form-link {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    flex: 1 1 180px;
    font-size: 12.5px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.15;
    min-height: 44px;
    overflow-wrap: anywhere;
    padding: 6px 10px;
    text-align: center;
    word-break: normal;
}

.botao-form-link:hover {
    text-decoration: none;
}

.botao-meet-logo {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.7),
        0 10px 20px rgba(15, 23, 42, 0.16) !important;
    color: transparent !important;
    flex: 0 0 150px;
    min-width: 150px;
    overflow: hidden;
    width: 150px;
}

.botao-meet-logo:hover {
    background: #f8fafc !important;
    border-color: #94a3b8 !important;
    filter: brightness(1.04);
}

.botao-meet-logo img {
    display: block;
    height: auto;
    max-height: 30px;
    max-width: 118px;
    object-fit: contain;
    width: 100%;
}

.botao-meet-logo-tabela img {
    max-height: 24px;
    max-width: 92px;
}

.botao-meet-logo-tabela {
    flex: 0 0 112px;
    min-width: 112px;
    width: 112px;
}

.relatorio-aula-vivo {
    margin-top: 42px;
}

.cabecalho-relatorio-aula {
    display: none;
}

.relatorio-aula-vivo .info-box {
    margin-bottom: 22px;
}

.botoes-relatorio-aula {
    justify-content: flex-start;
    margin: 0 0 24px;
    width: fit-content;
}

.tabela-relatorio-aula-vivo {
    margin-top: 8px;
}

.pagina-aula-ao-vivo main.container > .info-box + .alerta {
    margin-top: 22px;
}

.pagina-aula-ao-vivo-aluno main.container > .info-box + .alerta {
    margin-top: 22px;
}

.pagina-aula-ao-vivo .tabela-meus-planejamentos .acoes-planejamento {
    display: grid;
    grid-template-columns: repeat(2, 112px);
    justify-content: end;
    margin-left: 0;
    margin-right: 4px;
}

.pagina-aula-ao-vivo .tabela-meus-planejamentos .acoes-planejamento .form-inline,
.pagina-aula-ao-vivo .tabela-meus-planejamentos .acoes-planejamento .botao-acao {
    width: 112px;
}

.tabela-aulas-ao-vivo-cadastradas.lista-cadastrados-rolavel {
    max-height: 560px;
}

.tabela-aulas-ao-vivo-cadastradas table {
    table-layout: fixed;
}

.tabela-aulas-ao-vivo-cadastradas .col-aula-data {
    width: 12%;
}

.tabela-aulas-ao-vivo-cadastradas .col-aula-turma {
    width: 16%;
}

.tabela-aulas-ao-vivo-cadastradas .col-aula-componente {
    width: 28%;
}

.tabela-aulas-ao-vivo-cadastradas .col-aula-horario {
    width: 14%;
}

.tabela-aulas-ao-vivo-cadastradas .col-aula-acoes {
    width: 30%;
}

.tabela-aulas-ao-vivo-cadastradas th:nth-child(1),
.tabela-aulas-ao-vivo-cadastradas td:nth-child(1) {
    width: 12%;
}

.tabela-aulas-ao-vivo-cadastradas th:nth-child(2),
.tabela-aulas-ao-vivo-cadastradas td:nth-child(2) {
    padding-left: 18px;
    width: 16%;
}

.tabela-aulas-ao-vivo-cadastradas th:nth-child(3),
.tabela-aulas-ao-vivo-cadastradas td:nth-child(3) {
    padding-left: 34px;
    width: 28%;
}

.tabela-aulas-ao-vivo-cadastradas th:nth-child(4),
.tabela-aulas-ao-vivo-cadastradas td:nth-child(4) {
    width: 14%;
}

.tabela-aulas-ao-vivo-cadastradas th:nth-child(5),
.tabela-aulas-ao-vivo-cadastradas td:nth-child(5) {
    width: 30%;
}

.tabela-aulas-ao-vivo-cadastradas th:nth-child(5) {
    padding-right: 10px;
    text-align: right;
}

.tabela-aulas-ao-vivo-cadastradas .cabecalho-acoes-aula {
    display: block;
    margin-left: auto;
    margin-right: 4px;
    text-align: center;
    width: 224px;
}

.tabela-aulas-ao-vivo-cadastradas td:nth-child(5) {
    text-align: right;
}

.lista-aulas-ao-vivo-aluno {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.card-aula-ao-vivo {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 6px solid #2563eb;
    border-radius: 8px;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.08);
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px;
}

.card-aula-ao-vivo.aula-em-andamento {
    border-left-color: #22c55e;
    box-shadow: 0 16px 34px rgba(34, 197, 94, 0.16);
}

.card-aula-ao-vivo.aula-encerrada {
    border-left-color: #94a3b8;
    opacity: 0.92;
}

.card-aula-ao-vivo h2 {
    color: #0f172a;
    font-size: 20px;
    margin: 8px 0 6px;
}

.card-aula-ao-vivo p,
.card-aula-ao-vivo small {
    color: #475569;
}

.selo-aula-ao-vivo {
    background: #dbeafe;
    border-radius: 999px;
    color: #1d4ed8;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    padding: 5px 10px;
}

.aula-em-andamento .selo-aula-ao-vivo {
    background: #dcfce7;
    color: #15803d;
}

.aula-encerrada .selo-aula-ao-vivo {
    background: #e2e8f0;
    color: #475569;
}

.botao-entrar-aula {
    background: linear-gradient(180deg, #22c55e, #15803d);
    border: 1px solid #16a34a;
    box-shadow: 0 8px 18px rgba(21, 128, 61, 0.24);
    color: #fff;
}

.botao-entrar-aula:hover {
    background: linear-gradient(180deg, #4ade80, #166534);
    color: #fff;
}

.botao-aula-bloqueada,
.botao-aula-bloqueada:hover {
    background: #e5e7eb;
    border: 1px solid #cbd5e1;
    box-shadow: none;
    color: #64748b;
    cursor: not-allowed;
}

.acoes-aula-ao-vivo-aluno {
    align-items: stretch;
    display: grid;
    gap: 8px;
    grid-template-columns: 132px;
}

.acoes-aula-ao-vivo-aluno form {
    margin: 0;
}

.acoes-aula-ao-vivo-aluno .botao-acao,
.acoes-aula-ao-vivo-aluno button {
    width: 132px;
}

.botao-confirmar-presenca {
    background: linear-gradient(180deg, #2563eb, #1d4ed8);
    border: 1px solid #60a5fa;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.24);
    color: #fff;
}

.botao-confirmar-presenca:hover {
    background: linear-gradient(180deg, #60a5fa, #1e40af);
    color: #fff;
}

.botao-confirmar-presenca-inativo,
.botao-confirmar-presenca-inativo:hover {
    background: #e5e7eb;
    border: 1px solid #cbd5e1;
    box-shadow: none;
    color: #64748b;
    cursor: not-allowed;
    transform: none;
}

.registro-aula-aluno {
    display: block;
    margin-top: 6px;
}

@media (max-width: 640px) {
    .card-aula-ao-vivo {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .acoes-aula-ao-vivo-aluno {
        grid-template-columns: 1fr;
    }

    .card-aula-ao-vivo .botao-entrar-aula,
    .acoes-aula-ao-vivo-aluno .botao-acao,
    .acoes-aula-ao-vivo-aluno button {
        width: 100%;
    }

    .pagina-aula-ao-vivo .tabela-meus-planejamentos .acoes-planejamento {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
    }

    .pagina-aula-ao-vivo .tabela-meus-planejamentos .acoes-planejamento .form-inline,
    .pagina-aula-ao-vivo .tabela-meus-planejamentos .acoes-planejamento .botao-acao {
        width: 100%;
    }
}

.form-inline {
    display: inline;
}

.botao-perigo,
button.botao-perigo {
    background: linear-gradient(180deg, #ef4444, #991b1b) !important;
    border: 1px solid #7f1d1d !important;
    box-shadow: 0 6px 14px rgba(153, 27, 27, 0.24) !important;
    color: #fff !important;
    padding: 8px 12px;
}

.botao-perigo:hover,
button.botao-perigo:hover {
    background: linear-gradient(180deg, #f87171, #7f1d1d) !important;
    color: #fff !important;
}

.linha {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, 1fr);
}

.linha > *,
.campo-periodo,
.periodo-duplo {
    min-inline-size: 0;
}

.linha-campos-texto {
    grid-template-columns: repeat(2, 1fr);
}

.linha-campos-texto > div {
    display: flex;
    flex-direction: column;
}

.linha-campos-texto textarea {
    flex: 1;
    min-height: 120px;
}

fieldset {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    display: grid;
    gap: 6px;
    padding: 12px;
}

.grupo-turnos-aclta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-bottom: 14px;
}

.grupo-turnos-aclta legend {
    flex-basis: 100%;
    font-weight: 800;
    margin-bottom: 2px;
}

.grade-opcoes-planejamento {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 16px 0;
}

.grade-opcoes-planejamento fieldset {
    align-content: start;
    align-self: start;
}

.grade-opcoes-planejamento-colunas {
    align-items: start;
}

.coluna-opcoes-planejamento {
    display: grid;
    gap: 14px;
}

.campo-condicional {
    display: grid;
    gap: 8px;
}

legend {
    font-weight: 700;
    padding: 0 6px;
}

.check {
    align-items: center;
    display: flex;
    font-weight: 400;
    gap: 7px;
    line-height: 1.25;
    min-height: 28px;
}

.check input {
    flex: 0 0 16px;
    height: 16px;
    margin: 0;
    max-height: 16px;
    max-width: 16px;
    min-height: 16px;
    min-width: 16px;
    box-shadow: none;
    padding: 0;
    width: 16px;
}

.formulario-whatsapp {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 24px;
    max-width: 660px;
}

.pagina-whatsapp .formulario-whatsapp {
    background: #dcfce7;
    border-color: #25d366;
    border-left-color: #128c7e;
}

.pagina-whatsapp .formulario-whatsapp label,
.pagina-whatsapp .formulario-whatsapp legend,
.pagina-whatsapp .modelos-mensagem-whatsapp span {
    color: #064e3b;
}

.pagina-whatsapp .formulario-whatsapp textarea {
    background-color: #f0fdf4;
    border-color: #25d366;
}

.pagina-whatsapp .formulario-whatsapp textarea:focus {
    border-color: #128c7e;
    box-shadow: 0 0 0 3px rgba(37, 211, 102, 0.18);
}

.grade-whatsapp-direcao {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.box-whatsapp-direcao {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    padding: 16px;
}

.grade-whatsapp-supervisor .box-whatsapp-direcao,
.grade-whatsapp-direcao-transparente .box-whatsapp-direcao {
    background: transparent;
    border-color: rgba(148, 163, 184, 0.42);
    box-shadow: none;
}

.pagina-whatsapp .grade-whatsapp-direcao > .box-whatsapp-direcao {
    background: transparent !important;
    border: 1px solid rgba(148, 163, 184, 0.42) !important;
    box-shadow: none !important;
}

.box-whatsapp-direcao h2 {
    margin-top: 0;
}

.box-whatsapp-direcao .formulario-whatsapp {
    margin-bottom: 0;
    max-width: none;
}

.formulario-whatsapp .botoes-formulario {
    justify-content: center;
    margin-top: 14px;
}

.formulario-whatsapp .botoes-formulario button {
    flex: 0 0 150px;
    justify-content: center;
    max-width: 150px;
    min-width: 150px;
    width: 150px;
}

.modelos-mensagem-whatsapp {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 4px 0 12px;
}

.modelos-mensagem-whatsapp span {
    color: #475569;
    font-size: 13px;
    font-weight: 800;
    width: 100%;
}

.modelos-mensagem-whatsapp button {
    border-radius: 6px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.12;
    min-height: 36px;
    overflow-wrap: anywhere;
    padding: 5px 10px;
    text-align: center;
    white-space: normal;
    word-break: normal;
}

.modelos-mensagem-whatsapp .botao-modelo-reuniao {
    background: linear-gradient(180deg, #60a5fa, #2563eb);
    border: 1px solid #1d4ed8;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.22);
}

.modelos-mensagem-whatsapp .botao-modelo-reuniao:hover {
    background: linear-gradient(180deg, #93c5fd, #1d4ed8);
    border-color: #1e40af;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.3);
    color: #fff;
    transform: translateY(-1px);
}

.modelos-mensagem-whatsapp .botao-modelo-dispensa {
    background: linear-gradient(180deg, #fb7185, #dc2626);
    border: 1px solid #b91c1c;
    box-shadow: 0 6px 14px rgba(220, 38, 38, 0.22);
}

.modelos-mensagem-whatsapp .botao-modelo-dispensa:hover {
    background: linear-gradient(180deg, #fca5a5, #b91c1c);
    border-color: #991b1b;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.3);
    color: #fff;
    transform: translateY(-1px);
}

.modelos-mensagem-whatsapp .botao-modelo-convocacao {
    background: linear-gradient(180deg, #fb7185, #dc2626);
    border: 1px solid #b91c1c;
    box-shadow: 0 6px 14px rgba(220, 38, 38, 0.22);
    color: #fff;
}

.modelos-mensagem-whatsapp .botao-modelo-convocacao:hover {
    background: linear-gradient(180deg, #fca5a5, #b91c1c);
    border-color: #991b1b;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.3);
    color: #fff;
    transform: translateY(-1px);
}

.modelos-mensagem-whatsapp .botao-modelo-sabado {
    background: linear-gradient(180deg, #fbbf24, #d97706);
    border: 1px solid #b45309;
    box-shadow: 0 6px 14px rgba(217, 119, 6, 0.22);
    color: #3f2f00;
}

.modelos-mensagem-whatsapp .botao-modelo-sabado:hover {
    background: linear-gradient(180deg, #fde68a, #b45309);
    border-color: #92400e;
    box-shadow: 0 8px 18px rgba(217, 119, 6, 0.3);
    color: #3f2f00;
    transform: translateY(-1px);
}

.lista-professores-whatsapp {
    max-height: 360px;
    overflow-y: auto;
}

.pagina-whatsapp .lista-professores-whatsapp {
    background: transparent;
    border: 0;
    padding: 0;
}

.selecionar-todos-professores {
    align-items: center;
    background: var(--cor-escola-destaque-clara);
    border: 1px solid var(--cor-escola-destaque-borda);
    border-radius: 8px;
    box-sizing: border-box;
    display: flex;
    gap: 8px;
    min-height: 40px;
    min-width: 0;
    padding: 10px 12px;
    width: 100%;
}

.selecionar-todos-professores input[type="checkbox"] {
    flex: 0 0 16px;
    margin: 0;
}

.pagina-whatsapp .selecionar-todos-professores {
    background: linear-gradient(180deg, rgba(236, 253, 245, 0.96), rgba(220, 252, 231, 0.9));
    border-color: rgba(37, 211, 102, 0.58);
    color: #064e3b;
    font-weight: 800;
    min-height: 58px;
    padding: 8px 10px;
}

.tema-antonia .selecionar-todos-professores {
    background: #e8ffe1;
    border-color: #8bf15b;
    color: #005f37;
}

body.modo-pwa.pagina-whatsapp .selecionar-todos-professores,
html.modo-pwa body.pagina-whatsapp .selecionar-todos-professores {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    gap: 8px !important;
    min-height: 58px !important;
    padding: 8px 10px !important;
    width: 100% !important;
}

body.modo-pwa.pagina-whatsapp .selecionar-todos-professores input[type="checkbox"],
html.modo-pwa body.pagina-whatsapp .selecionar-todos-professores input[type="checkbox"] {
    flex: 0 0 18px !important;
}

.check.professor-whatsapp {
    align-items: start;
    align-content: start;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-sizing: border-box;
    display: grid;
    flex-direction: initial;
    gap: 5px 8px;
    grid-template-columns: auto minmax(0, 1fr);
    height: auto;
    min-height: 58px;
    min-width: 0;
    overflow: visible;
    padding: 8px 10px;
    width: 100%;
}

.check.professor-whatsapp.professor-whatsapp-com-botao {
    align-items: center;
    grid-template-columns: auto minmax(0, 1fr) 82px;
}

.check.professor-whatsapp input[type="checkbox"] {
    align-self: start;
    margin-top: 2px;
}

.pagina-whatsapp .professor-whatsapp {
    background: linear-gradient(180deg, rgba(236, 253, 245, 0.96), rgba(220, 252, 231, 0.9));
    border-color: rgba(37, 211, 102, 0.58);
}

.pagina-whatsapp .professor-whatsapp:hover {
    border-color: #25d366;
    box-shadow: 0 8px 18px rgba(37, 211, 102, 0.14);
}

.check.professor-whatsapp span,
.check.professor-whatsapp .rotulo-whatsapp {
    display: grid;
    gap: 2px;
    grid-column: 2;
    grid-row: 1;
    line-height: 1.25;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
}

.check.professor-whatsapp strong,
.check.professor-whatsapp small {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.check.professor-whatsapp small {
    color: #64748b;
    font-weight: 700;
    line-height: 1.3;
    white-space: normal;
}

.check.professor-whatsapp .rotulo-whatsapp {
    cursor: pointer;
    font-weight: 400;
}

.botao-whatsapp {
    align-items: center;
    background: linear-gradient(180deg, #86efac, #22c55e);
    border: 1px solid #15803d;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.22);
    color: #052e16;
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    justify-content: center;
    min-height: 36px;
    padding: 0 10px;
    text-align: center;
    white-space: nowrap;
}

.check.professor-whatsapp .botao-whatsapp {
    align-self: center;
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    margin-top: 0;
    width: 82px;
}

@media (max-width: 520px) {
    body:not(.modo-pwa) .check.professor-whatsapp.professor-whatsapp-com-botao {
        grid-template-columns: auto minmax(0, 1fr) 82px;
    }
}

@media (max-width: 760px) {
    body.modo-pwa.pagina-whatsapp .check.professor-whatsapp.professor-whatsapp-com-botao,
    html.modo-pwa body.pagina-whatsapp .check.professor-whatsapp.professor-whatsapp-com-botao {
        align-items: start !important;
        grid-template-columns: auto minmax(0, 1fr) !important;
    }

    body.modo-pwa.pagina-whatsapp .check.professor-whatsapp .botao-whatsapp,
    html.modo-pwa body.pagina-whatsapp .check.professor-whatsapp .botao-whatsapp {
        align-self: start !important;
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        justify-self: stretch !important;
        margin-top: 6px !important;
        width: 100% !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao,
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao {
        align-content: start !important;
        display: grid !important;
        grid-auto-rows: min-content !important;
        grid-template-columns: 18px minmax(0, 1fr) !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding-bottom: 10px !important;
        row-gap: 8px !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp .rotulo-whatsapp,
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp .rotulo-whatsapp {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp .botao-whatsapp,
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp .botao-whatsapp {
        display: flex !important;
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        height: 42px !important;
        margin: 0 !important;
        min-height: 42px !important;
        position: static !important;
        width: 100% !important;
        z-index: auto !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao,
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao {
        align-items: flex-start !important;
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        height: auto !important;
        min-height: 0 !important;
        position: static !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao input[type="checkbox"],
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao input[type="checkbox"] {
        flex: 0 0 18px !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao .rotulo-whatsapp,
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao .rotulo-whatsapp {
        flex: 1 1 calc(100% - 30px) !important;
        min-width: 0 !important;
    }

    body.modo-pwa.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao .botao-whatsapp,
    html.modo-pwa body.pagina-whatsapp .lista-whatsapp-equipe .check.professor-whatsapp.professor-whatsapp-com-botao .botao-whatsapp {
        flex: 0 0 100% !important;
        order: 3 !important;
    }

    body.modo-pwa.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe.professor-whatsapp-com-botao,
    html.modo-pwa body.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe.professor-whatsapp-com-botao {
        align-items: flex-start !important;
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        grid-template-columns: none !important;
        height: auto !important;
        min-height: 104px !important;
        overflow: visible !important;
        padding: 10px 12px 12px !important;
        position: relative !important;
    }

    body.modo-pwa.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe:not(.professor-whatsapp-com-botao),
    html.modo-pwa body.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe:not(.professor-whatsapp-com-botao) {
        min-height: 72px !important;
        padding: 12px !important;
        row-gap: 7px !important;
    }

    body.modo-pwa.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe.professor-whatsapp-com-botao .rotulo-whatsapp,
    html.modo-pwa body.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe.professor-whatsapp-com-botao .rotulo-whatsapp {
        flex: 1 1 calc(100% - 30px) !important;
        min-width: 0 !important;
        order: 2 !important;
        width: auto !important;
    }

    body.modo-pwa.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe.professor-whatsapp-com-botao .botao-whatsapp,
    html.modo-pwa body.pagina-whatsapp .check.professor-whatsapp.whatsapp-card-equipe.professor-whatsapp-com-botao .botao-whatsapp {
        clear: both !important;
        display: flex !important;
        box-sizing: border-box !important;
        flex: 0 0 100% !important;
        height: 42px !important;
        justify-self: stretch !important;
        margin: 0 !important;
        max-width: 100% !important;
        min-height: 42px !important;
        order: 3 !important;
        position: static !important;
        width: 100% !important;
        z-index: 1 !important;
    }

    body.modo-pwa.pagina-whatsapp .modelos-mensagem-whatsapp,
    html.modo-pwa body.pagina-whatsapp .modelos-mensagem-whatsapp,
    body.modo-pwa.pagina-whatsapp .botoes-formulario,
    html.modo-pwa body.pagina-whatsapp .botoes-formulario {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    body.modo-pwa.pagina-whatsapp .modelos-mensagem-whatsapp button,
    html.modo-pwa body.pagina-whatsapp .modelos-mensagem-whatsapp button,
    body.modo-pwa.pagina-whatsapp .botoes-formulario button,
    html.modo-pwa body.pagina-whatsapp .botoes-formulario button {
        max-width: none !important;
        width: 100% !important;
    }
}

.botao-whatsapp:hover {
    background: linear-gradient(180deg, #4ade80, #16a34a);
    box-shadow: 0 10px 22px rgba(22, 163, 74, 0.3);
    color: #052e16;
    text-decoration: none;
    transform: translateY(-1px);
}

.botao-whatsapp-enviado,
.botao-whatsapp-enviado:hover {
    background: linear-gradient(180deg, #e5e7eb, #9ca3af);
    border-color: #6b7280;
    box-shadow: none;
    color: #1f2937;
}

.pet-grid {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.8fr);
    margin-bottom: 28px;
}

.formulario-pet,
.pet-ajuda,
.cartao-pet-destaque,
.card-pet {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.lista-pet-aluno .card-pet {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    display: grid;
    gap: 10px;
}

.formulario-pet {
    border: 1px solid rgba(148, 163, 184, 0.42);
    border-radius: 8px;
    margin: 0;
    max-width: none;
    padding: 18px;
}

.titulo-identificacao-pet {
    color: #1f2937;
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 18px;
    padding: 0 6px;
}

.pet-ajuda,
.cartao-pet-destaque,
.card-pet {
    padding: 16px;
}

.pet-ajuda {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.pet-ajuda h2,
.cartao-pet-destaque h2 {
    margin-top: 0;
}

.cartao-identificacao-aluno {
    padding-bottom: 0;
    padding-top: 0;
}

.cartao-identificacao-aluno p {
    color: #334155;
    font-size: 16px;
    margin-top: -6px;
}

.info-box-aluno-pais {
    margin-bottom: 22px;
}

.lista-pet-aluno {
    display: grid;
    gap: 14px;
}

.lista-notificacoes-aluno {
    margin-top: 20px;
}

.lista-pet-aluno-rolavel {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    max-height: min(430px, 58vh);
    overflow-y: auto;
    padding: 12px;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.card-pet header {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.acoes-card-pet {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 4px;
}

.acoes-card-pet .form-inline {
    margin: 0;
}

.card-pet header div {
    display: grid;
    gap: 4px;
}

.card-pet header strong {
    color: #111827;
    font-size: 17px;
}

.card-pet header span,
.card-pet small,
.cartao-pet-destaque p {
    color: #475569;
    font-weight: 700;
}

.card-pet p {
    line-height: 1.55;
}

.grade-acoes {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.card-acao {
    border-radius: 8px;
    display: block;
}

.topo-dashboard-supervisor {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 18px;
}

.topo-dashboard-supervisor .grade-acoes {
    align-items: start;
    margin: 0;
}

.topo-dashboard-professor,
.topo-dashboard-aluno {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1040px) 300px;
    margin-bottom: 18px;
    margin-left: 50%;
    max-width: min(1356px, calc(100vw - 32px));
    transform: translateX(-50%);
    width: min(1356px, calc(100vw - 32px));
}

.topo-dashboard-professor:has(.info-box:only-child),
.topo-dashboard-aluno:has(.info-box:only-child) {
    display: block;
    max-width: 1040px;
    margin-bottom: 18px;
}

.topo-dashboard-professor .info-box,
.topo-dashboard-aluno .info-box {
    margin: 0 auto;
    max-width: 1040px;
    width: 100%;
}

.topo-dashboard-professor .calendario-dashboard-perfil,
.topo-dashboard-aluno .calendario-dashboard-perfil {
    margin: 0;
    position: static;
}

.mascote-copa-dashboard {
    bottom: 24px;
    display: block;
    height: 166px;
    overflow: visible;
    pointer-events: auto;
    position: fixed;
    right: 38px;
    width: 330px;
    z-index: 25;
}

.mascote-copa-dashboard[hidden] {
    display: none !important;
}

.mascote-copa-fechar {
    align-items: center;
    background: #dc2626;
    border: 1px solid #fecaca;
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(127, 29, 29, 0.24);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 19px;
    font-weight: 900;
    height: 26px;
    justify-content: center;
    line-height: 1;
    min-height: 26px;
    min-width: 26px;
    padding: 0 0 2px;
    pointer-events: auto;
    position: absolute;
    right: -9px;
    top: -9px;
    width: 26px;
    z-index: 6;
}

.mascote-copa-texto,
.mascote-copa-palco {
    pointer-events: none;
}

.mascote-copa-fechar:hover {
    background: #991b1b;
    border-color: #fff;
    transform: translateY(-1px);
}

html.modo-pwa .mascote-copa-dashboard,
body.modo-pwa .mascote-copa-dashboard {
    display: none !important;
}

.mascote-copa-texto {
    background:
        linear-gradient(rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.96)) padding-box,
        linear-gradient(100deg, #16a34a, #facc15, #2563eb) border-box;
    border: 3px solid transparent;
    border-radius: 8px 8px 0 0;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.1);
    display: grid;
    gap: 1px;
    min-height: 38px;
    padding: 6px 10px 5px;
    position: absolute;
    right: 0;
    top: 0;
    width: 330px;
    z-index: 2;
}

.mascote-copa-texto span {
    color: #1d4ed8;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.mascote-copa-texto strong {
    color: #0f172a;
    display: block;
    font-size: 13px;
    line-height: 1.05;
    white-space: nowrap;
}

.mascote-copa-palco {
    background: linear-gradient(180deg, #dbeafe 0 58%, #bbf7d0 58% 100%);
    border: 1px solid #93c5fd;
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18);
    height: 120px;
    overflow: hidden;
    position: absolute;
    right: 0;
    top: 37px;
    width: 330px;
}

.marca-techeng-copa {
    animation: marca-techeng-gol 4.6s ease-in-out infinite;
    height: 132px;
    left: 105px;
    object-fit: contain;
    opacity: 0.1;
    pointer-events: none;
    position: absolute;
    top: -28px;
    width: 150px;
    z-index: 1;
}

.mensagem-gol-copa {
    animation: mensagem-gol-copa 4.6s ease-in-out infinite;
    color: #dc2626;
    font-family: "Arial Black", Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-style: italic;
    font-weight: 900;
    letter-spacing: 0;
    opacity: 0;
    position: absolute;
    right: 64px;
    text-shadow:
        0 2px 0 #fff,
        0 0 12px rgba(250, 204, 21, 0.65);
    text-transform: uppercase;
    top: 14px;
    transform: scale(0.82) rotate(-4deg);
    z-index: 5;
}

.gramado-copa {
    background: repeating-linear-gradient(90deg, rgba(22, 163, 74, 0.16) 0 14px, rgba(34, 197, 94, 0.2) 14px 28px);
    bottom: 0;
    height: 46px;
    left: 0;
    position: absolute;
    right: 0;
}

.gol-copa {
    border: 4px solid #ffffff;
    border-bottom: 0;
    bottom: 39px;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.16);
    height: 62px;
    position: absolute;
    right: 20px;
    width: 104px;
    z-index: 3;
}

.gol-copa span {
    background: rgba(29, 78, 216, 0.18);
    position: absolute;
}

.gol-copa span:nth-child(1),
.gol-copa span:nth-child(2) {
    bottom: 0;
    top: 0;
    width: 1px;
}

.gol-copa span:nth-child(1) {
    left: 34px;
}

.gol-copa span:nth-child(2) {
    left: 69px;
}

.gol-copa span:nth-child(3),
.gol-copa span:nth-child(4) {
    height: 1px;
    left: 0;
    right: 0;
}

.gol-copa span:nth-child(3) {
    top: 20px;
}

.gol-copa span:nth-child(4) {
    top: 40px;
}

.mascote-tech-copa {
    bottom: 27px;
    height: 86px;
    left: 26px;
    position: absolute;
    width: 96px;
    z-index: 4;
}

.mascote-tech-cabeca {
    animation: cabeca-mascote-copa 4.6s ease-in-out infinite;
    background: transparent;
    border: 0;
    border-radius: 0;
    height: 58px;
    left: 13px;
    overflow: visible;
    position: absolute;
    top: -18px;
    transform-origin: 50% 100%;
    width: 58px;
}

.mascote-tech-cabeca::before {
    content: none;
}

.mascote-tech-rosto {
    display: block;
    height: 100%;
    left: 0;
    object-fit: contain;
    object-position: center bottom;
    position: absolute;
    top: 0;
    transform: none;
    width: 100%;
    z-index: 1;
}

.mascote-tech-cabeca span {
    display: none;
}

.mascote-tech-corpo {
    background: linear-gradient(180deg, #0f4c5c, #155e75);
    border: 3px solid #facc15;
    border-radius: 14px 14px 9px 9px;
    height: 42px;
    left: 17px;
    position: absolute;
    top: 36px;
    width: 48px;
}

.mascote-tech-corpo::after {
    color: #facc15;
    content: "</>";
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 900;
    left: 9px;
    position: absolute;
    top: 11px;
}

.mascote-tech-braco {
    background: #f97316;
    border-radius: 999px;
    height: 10px;
    left: 56px;
    position: absolute;
    top: 48px;
    transform: rotate(-24deg);
    transform-origin: left center;
    width: 36px;
}

.mascote-tech-perna {
    background: #0f4c5c;
    border-radius: 999px;
    height: 11px;
    position: absolute;
    top: 73px;
    transform-origin: left center;
    width: 38px;
}

.mascote-tech-perna-apoio {
    left: 23px;
    transform: rotate(84deg);
}

.mascote-tech-perna-chute {
    animation: chute-mascote-copa 4.6s ease-in-out infinite;
    left: 53px;
    transform: rotate(10deg);
}

.bola-copa {
    animation: bola-copa-gol 4.6s ease-in-out infinite;
    background:
        radial-gradient(circle at 50% 50%, #111827 0 14%, transparent 15%),
        radial-gradient(circle at 28% 28%, #111827 0 9%, transparent 10%),
        radial-gradient(circle at 70% 32%, #111827 0 9%, transparent 10%),
        radial-gradient(circle at 35% 72%, #111827 0 8%, transparent 9%),
        #ffffff;
    border: 2px solid #111827;
    border-radius: 999px;
    bottom: 33px;
    box-shadow: 0 7px 10px rgba(15, 23, 42, 0.18);
    height: 22px;
    left: 116px;
    position: absolute;
    width: 22px;
    z-index: 4;
}

@keyframes chute-mascote-copa {
    0%,
    17%,
    100% {
        transform: rotate(10deg);
    }

    25% {
        transform: rotate(-38deg);
    }

    33% {
        transform: rotate(18deg);
    }
}

@keyframes cabeca-mascote-copa {
    0%,
    17%,
    100% {
        transform: rotate(0deg) translateY(0);
    }

    25% {
        transform: rotate(-8deg) translateY(-1px);
    }

    34% {
        transform: rotate(7deg) translateY(0);
    }

    44% {
        transform: rotate(-3deg);
    }
}

@keyframes marca-techeng-gol {
    0%,
    45%,
    100% {
        opacity: 0.1;
        transform: scale(1) rotate(0deg);
    }

    55%,
    70% {
        opacity: 0.18;
        transform: scale(1.08) rotate(-3deg);
    }
}

@keyframes mensagem-gol-copa {
    0%,
    45%,
    84%,
    100% {
        opacity: 0;
        transform: scale(0.82) rotate(-4deg);
    }

    55%,
    72% {
        opacity: 1;
        transform: scale(1.08) rotate(-4deg);
    }
}

@keyframes bola-copa-gol {
    0%,
    20% {
        opacity: 1;
        transform: translate(0, 0) rotate(0deg);
    }

    48% {
        opacity: 1;
        transform: translate(154px, -36px) rotate(380deg);
    }

    58% {
        opacity: 1;
        transform: translate(174px, -24px) rotate(470deg);
    }

    74% {
        opacity: 1;
        transform: translate(174px, -16px) rotate(470deg);
    }

    84% {
        opacity: 0;
        transform: translate(174px, -16px) rotate(470deg);
    }

    100% {
        opacity: 0;
        transform: translate(0, 0) rotate(0deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .marca-techeng-copa,
    .mensagem-gol-copa,
    .mascote-tech-cabeca,
    .mascote-tech-perna-chute,
    .bola-copa {
        animation: none;
    }
}

@keyframes bola-copa-gol-vertical {
    0%,
    20% {
        opacity: 1;
        transform: translate(0, 0) rotate(0deg);
    }

    50% {
        opacity: 1;
        transform: translate(44px, -92px) rotate(340deg);
    }

    64% {
        opacity: 1;
        transform: translate(55px, -108px) rotate(420deg);
    }

    78% {
        opacity: 1;
        transform: translate(55px, -100px) rotate(420deg);
    }

    88% {
        opacity: 0;
        transform: translate(55px, -100px) rotate(420deg);
    }

    100% {
        opacity: 0;
        transform: translate(0, 0) rotate(0deg);
    }
}

@media (max-width: 1900px), (max-height: 920px) {
    .mascote-copa-dashboard {
        bottom: 16px;
        height: 262px;
        right: 24px;
        width: 178px;
    }

    .mascote-copa-texto {
        min-height: 54px;
        padding: 7px 9px;
        width: 178px;
    }

    .mascote-copa-texto strong {
        font-size: 12px;
        line-height: 1.15;
        white-space: normal;
    }

    .mascote-copa-palco {
        height: 208px;
        top: 53px;
        width: 178px;
    }

    .marca-techeng-copa {
        height: 104px;
        left: 38px;
        top: 24px;
        width: 116px;
    }

    .mensagem-gol-copa {
        font-size: 16px;
        right: 27px;
        top: 70px;
    }

    .gramado-copa {
        height: 58px;
    }

    .gol-copa {
        bottom: 118px;
        height: 48px;
        right: 10px;
        width: 70px;
    }

    .gol-copa span:nth-child(1) {
        left: 22px;
    }

    .gol-copa span:nth-child(2) {
        left: 45px;
    }

    .gol-copa span:nth-child(3) {
        top: 15px;
    }

    .gol-copa span:nth-child(4) {
        top: 30px;
    }

    .mascote-tech-copa {
        bottom: 30px;
        left: 8px;
        transform: scale(0.92);
        transform-origin: bottom left;
    }

    .bola-copa {
        animation-name: bola-copa-gol-vertical;
        bottom: 41px;
        height: 19px;
        left: 95px;
        width: 19px;
    }
}

@media (max-width: 700px) {
    .mascote-copa-dashboard {
        display: none;
    }
}

.painel-professor-acoes {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(190px, 1fr));
    justify-content: center;
    margin: 28px 0 0;
    margin-left: auto;
    margin-right: auto;
    max-width: 860px;
}

.painel-professor-acoes .docs-peb-card {
    min-height: 72px;
}

.painel-professor-acoes .card-notificar-aluno-pwa,
.topo-dashboard-supervisor .card-notificar-aluno-pwa,
body.modo-pwa .painel-aluno-acoes .card-notificacoes-responsavel {
    background: linear-gradient(180deg, #fde68a, #d97706);
    border: 1px solid #b45309;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.38),
        0 12px 24px rgba(217, 119, 6, 0.24);
    color: #3f2f00;
}

.painel-professor-acoes .card-notificar-aluno-pwa:hover,
.topo-dashboard-supervisor .card-notificar-aluno-pwa:hover,
body.modo-pwa .painel-aluno-acoes .card-notificacoes-responsavel:hover {
    background: linear-gradient(180deg, #fef3c7, #b45309);
    border-color: #92400e;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.46),
        0 16px 30px rgba(146, 64, 14, 0.28);
    color: #3f2f00;
}

body.modo-pwa .painel-aluno-acoes .card-atestado-aluno-pwa {
    background: linear-gradient(180deg, #1f2937, #020617);
    border: 1px solid #020617;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 12px 24px rgba(2, 6, 23, 0.28);
    color: #fff;
}

body.modo-pwa .painel-aluno-acoes .card-atestado-aluno-pwa:hover {
    background: linear-gradient(180deg, #374151, #111827);
    border-color: #111827;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        0 16px 30px rgba(2, 6, 23, 0.34);
    color: #fff;
}

body.modo-pwa .painel-aluno-acoes .card-boletim-escolar {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(22, 163, 74, 0.24);
    color: #052e16;
}

body.modo-pwa .painel-aluno-acoes .card-boletim-escolar:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.46),
        0 16px 30px rgba(22, 101, 52, 0.3);
    color: #052e16;
}

.topo-dashboard-supervisor .card-planejamentos-supervisor-pwa {
    background: linear-gradient(180deg, #e5e7eb, #9ca3af);
    border: 1px solid #6b7280;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 12px 24px rgba(107, 114, 128, 0.22);
    color: #1f2937;
}

.topo-dashboard-supervisor .card-planejamentos-supervisor-pwa:hover {
    background: linear-gradient(180deg, #f3f4f6, #6b7280);
    border-color: #4b5563;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.5),
        0 16px 30px rgba(75, 85, 99, 0.28);
    color: #111827;
}

.topo-dashboard-supervisor .card-rotina-supervisor-pwa {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.38),
        0 12px 24px rgba(22, 163, 74, 0.24);
    color: #052e16;
}

.topo-dashboard-supervisor .card-rotina-supervisor-pwa:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #166534;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.46),
        0 16px 30px rgba(22, 101, 52, 0.28);
    color: #052e16;
}

.painel-professor-acoes .card-novo-planejamento-pwa {
    background: linear-gradient(180deg, #1f2937, #020617);
    border: 1px solid #020617;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 12px 24px rgba(2, 6, 23, 0.28);
    color: #fff;
}

.painel-professor-acoes .card-novo-planejamento-pwa:hover {
    background: linear-gradient(180deg, #374151, #000);
    border-color: #000;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 16px 30px rgba(0, 0, 0, 0.34);
    color: #fff;
}

.painel-professor-acoes .card-meus-planejamentos-pwa {
    background: linear-gradient(180deg, #94a3b8, #475569);
    border: 1px solid #334155;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        0 12px 24px rgba(71, 85, 105, 0.24);
    color: #fff;
}

.painel-professor-acoes .card-meus-planejamentos-pwa:hover {
    background: linear-gradient(180deg, #cbd5e1, #334155);
    border-color: #1f2937;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.32),
        0 16px 30px rgba(51, 65, 85, 0.3);
    color: #fff;
}

.topo-dashboard-supervisor .card-cadastrar-equipe-pwa {
    background: linear-gradient(180deg, #1f2937, #020617);
    border: 1px solid #020617;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 12px 24px rgba(2, 6, 23, 0.28);
    color: #fff;
}

.topo-dashboard-supervisor .card-cadastrar-equipe-pwa:hover {
    background: linear-gradient(180deg, #374151, #000);
    border-color: #000;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 16px 30px rgba(0, 0, 0, 0.34);
    color: #fff;
}

.topo-dashboard-supervisor .card-whatsapp-pwa {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(22, 163, 74, 0.24);
    color: #052e16;
}

.topo-dashboard-supervisor .card-whatsapp-pwa:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #166534;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 16px 30px rgba(22, 101, 52, 0.28);
    color: #052e16;
}

.painel-professor-acoes .card-rotina-pedagogica {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(22, 163, 74, 0.24);
    color: #052e16;
}

.painel-professor-acoes .card-rotina-pedagogica:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #166534;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 16px 30px rgba(22, 101, 52, 0.28);
    color: #052e16;
}

.painel-professor-acoes .card-simulado-professor,
.painel-coordenador-acoes .card-simulado-coordenador,
.painel-coordenador-acoes .card-imprimir-simulado {
    background: linear-gradient(180deg, #dbeafe, #2563eb);
    border: 1px solid #1d4ed8;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.36),
        0 12px 24px rgba(37, 99, 235, 0.24);
    color: #fff;
}

.painel-professor-acoes .card-simulado-professor:hover,
.painel-coordenador-acoes .card-simulado-coordenador:hover,
.painel-coordenador-acoes .card-imprimir-simulado:hover {
    background: linear-gradient(180deg, #93c5fd, #1d4ed8);
    border-color: #1e40af;
    color: #fff;
}

.painel-coordenador-indicadores {
    margin-bottom: 18px;
}

.painel-coordenador-indicadores .card-acolhimento-coordenador-pwa {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(22, 163, 74, 0.24);
    color: #052e16;
}

body.modo-pwa .painel-coordenador-indicadores .card-acolhimento-coordenador-pwa {
    align-content: center;
    gap: 4px;
    min-height: 72px;
    padding: 10px 14px;
}

body.modo-pwa .painel-coordenador-indicadores .card-acolhimento-coordenador-pwa strong {
    font-size: 16px;
    line-height: 1.12;
}

body.modo-pwa .painel-coordenador-indicadores .card-acolhimento-coordenador-pwa span,
body.modo-pwa .painel-coordenador-indicadores .card-acolhimento-coordenador-pwa small {
    font-size: 12px;
    line-height: 1.12;
}

.painel-coordenador-indicadores .card-acolhimento-coordenador-pwa:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #166534;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 16px 30px rgba(22, 101, 52, 0.28);
    color: #052e16;
}

.formulario-simulado-questoes {
    margin-bottom: 28px;
}

.formulario-simulado-prova,
.lista-provas-simulado {
    margin-bottom: 24px;
}

.lista-provas-simulado h2 {
    margin-bottom: 12px;
}

.linha-simulado-prova {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(260px, 1fr) 180px 180px;
}

.botoes-simulado-prova {
    justify-content: center;
}

.botoes-simulado-prova button {
    flex: 0 0 150px;
    width: 150px;
}

.botoes-simulado-formulario .botao-form-link {
    flex: 0 0 150px;
    width: 150px;
}

.botoes-formulario.botoes-simulado-formulario {
    flex-wrap: nowrap;
}

.linha-simulado-identificacao {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lista-questoes-simulado {
    display: grid;
    gap: 14px;
}

.questao-simulado-card {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.topo-questao-simulado {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.questao-simulado-card h2 {
    color: #0f172a;
    font-size: 18px;
    margin: 0;
}

.botao-remover-questao-simulado {
    background: linear-gradient(180deg, #f87171, #dc2626);
    border: 1px solid #b91c1c;
    border-radius: 6px;
    box-shadow: 0 6px 14px rgba(220, 38, 38, 0.18);
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    min-height: 30px;
    padding: 0 10px;
}

.botao-remover-questao-simulado:hover {
    background: linear-gradient(180deg, #fb7185, #991b1b);
}

.grade-alternativas-simulado {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.campo-gabarito-simulado {
    max-width: 180px;
}

.botao-adicionar-questao-simulado {
    align-self: start;
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.22);
    color: #052e16;
    cursor: pointer;
    font-weight: 900;
    justify-self: start;
    min-height: 38px;
    padding: 0 14px;
}

.botao-adicionar-questao-simulado:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
}

.acoes-simulado-professor {
    align-items: stretch;
    display: grid;
    gap: 6px;
    grid-template-columns: 92px;
    justify-content: end;
}

.acoes-simulado-professor .form-inline {
    display: inline-flex;
    margin: 0;
}

.acoes-simulado-professor .botao-acao {
    font-size: 10.5px;
    min-width: 92px;
    padding-left: 4px;
    padding-right: 4px;
    width: 92px;
}

.status-simulado-bloqueado {
    color: #15803d;
    display: inline-block;
    font-size: 12px;
    font-weight: 900;
    text-align: center;
    width: 100%;
}

@media (max-width: 760px) {
    .acoes-simulado-professor {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .acoes-simulado-professor .botao-acao {
        width: 100%;
    }

    body:not(.impressao) .botoes-formulario.botoes-simulado-formulario {
        align-items: center;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        width: fit-content;
    }

    body:not(.impressao) .botoes-formulario.botoes-simulado-formulario button,
    body:not(.impressao) .botoes-formulario.botoes-simulado-formulario .botao-form-link {
        flex: 0 0 150px;
        width: 150px;
    }
}

.secao-questoes-enviadas-simulado,
.container-simulado-coordenador {
    margin-top: 28px;
}

.filtros-simulado-coordenador {
    grid-template-columns: minmax(220px, 1.3fr) repeat(4, minmax(145px, 1fr));
}

.tabela-provas-simulado {
    max-height: 330px;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.tabela-provas-simulado table {
    table-layout: fixed;
}

.tabela-provas-simulado thead th {
    position: sticky;
    top: 0;
    z-index: 4;
}

.tabela-provas-simulado th:nth-child(1),
.tabela-provas-simulado td:nth-child(1) {
    width: 46%;
}

.tabela-provas-simulado th:nth-child(2),
.tabela-provas-simulado td:nth-child(2) {
    width: 150px;
}

.tabela-provas-simulado th:nth-child(3),
.tabela-provas-simulado td:nth-child(3) {
    width: 160px;
}

.tabela-provas-simulado th:nth-child(4),
.tabela-provas-simulado td:nth-child(4) {
    overflow: visible;
    width: 150px;
}

.form-prova-simulado {
    display: grid;
    gap: 8px;
}

.form-prova-simulado input,
.form-prova-simulado textarea,
.tabela-provas-simulado input,
.tabela-provas-simulado select {
    min-height: 36px;
    width: 100%;
}

.acoes-provas-simulado {
    align-items: stretch;
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr;
}

.acoes-provas-simulado .form-inline {
    display: flex;
    margin: 0;
    width: 100%;
}

.acoes-provas-simulado .botao-acao {
    min-width: 0;
    width: 100%;
}

.container-acolhimento-emti {
    max-width: 1080px;
}

.formulario-acolhimento-emti {
    margin-bottom: 28px;
}

.campo-criterios-acolhimento {
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 14px;
}

.campo-criterios-acolhimento legend {
    color: #1e3a8a;
    font-weight: 900;
    padding: 0 6px;
}

@media (max-width: 760px) {
    .campo-criterios-acolhimento {
        grid-template-columns: 1fr;
    }
}

.check-filtro-primeiro-horario {
    align-items: center;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1e3a8a;
    display: flex;
    font-weight: 900;
    gap: 8px;
    margin: 4px 0 0;
    padding: 10px 12px;
}

.check-filtro-primeiro-horario input {
    min-height: auto;
    width: auto;
}

.ajuda-acolhimento-emti {
    color: #475569;
    display: block;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
    margin-top: -4px;
}

.campo-professores-acolhimento {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    margin: 0;
    padding: 14px;
}

.campo-professores-acolhimento legend {
    color: #1f2937;
    font-weight: 900;
    padding: 0 6px;
}

.lista-professores-acolhimento {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    max-height: 360px;
    overflow-y: auto;
    padding-right: 6px;
    scrollbar-gutter: stable;
}

.professor-acolhimento {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    color: #1f2937;
    display: flex;
    gap: 8px;
    min-width: 0;
    padding: 9px 10px;
}

.professor-acolhimento span,
.professor-acolhimento strong,
.professor-acolhimento small {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
}

.professor-acolhimento strong {
    color: #1f2937;
    font-size: 13px;
}

.professor-acolhimento small {
    color: #1d4ed8;
    font-size: 11.5px;
    font-weight: 900;
    line-height: 1.25;
    margin-top: 2px;
}

.professor-acolhimento-elegivel {
    border-left: 5px solid #22c55e;
}

.professor-acolhimento-equipe {
    background: #fff7ed;
    border-left: 5px solid #f97316;
}

.professor-acolhimento-equipe small {
    color: #9a3412;
}

.professor-acolhimento-sem-primeiro {
    background: #f8fafc;
    border-left: 5px solid #94a3b8;
}

.professor-acolhimento-sem-primeiro small {
    color: #64748b;
}

.botoes-acolhimento-emti {
    flex-wrap: nowrap;
    justify-content: center;
}

.botoes-acolhimento-emti button,
.botoes-acolhimento-emti .botao-form-link {
    flex: 0 0 150px;
    min-width: 150px;
    width: 150px;
}

.lista-acolhimento-dia {
    margin-top: 28px;
}

.lista-acolhimento-dia h2 {
    margin-bottom: 12px;
}

.botao-imprimir-acolhimento {
    background: linear-gradient(180deg, #86efac, #22c55e);
    border: 1px solid #15803d;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.22);
    color: #052e16;
    min-width: 168px;
    width: 168px;
}

.botao-imprimir-acolhimento:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #166534;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.28);
    color: #052e16;
}

.tabela-acolhimento-emti {
    max-height: min(520px, 62vh);
    overflow-x: auto;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-gutter: stable;
}

.tabela-acolhimento-emti thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.tabela-acolhimento-emti th:first-child,
.tabela-acolhimento-emti td:first-child {
    padding-left: 20px;
    padding-right: 20px;
    text-align: center;
    white-space: nowrap;
    width: 170px;
}

.tabela-acolhimento-emti th:nth-child(2),
.tabela-acolhimento-emti td:nth-child(2) {
    width: 38%;
}

body.modo-pwa.perfil-coordenador .container-acolhimento-emti {
    box-sizing: border-box;
    max-width: 100%;
    overflow-x: hidden;
    padding-left: 14px;
    padding-right: 14px;
    width: 100%;
}

body.modo-pwa.perfil-coordenador .formulario-acolhimento-emti,
body.modo-pwa.perfil-coordenador .campo-criterios-acolhimento,
body.modo-pwa.perfil-coordenador .campo-professores-acolhimento,
body.modo-pwa.perfil-coordenador .lista-acolhimento-dia {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    width: 100%;
}

body.modo-pwa.perfil-coordenador .campo-criterios-acolhimento,
body.modo-pwa.perfil-coordenador .lista-professores-acolhimento,
body.modo-pwa.perfil-coordenador .botoes-acolhimento-emti {
    grid-template-columns: 1fr;
}

body.modo-pwa.perfil-coordenador .lista-professores-acolhimento {
    max-height: min(420px, 56vh);
    max-height: min(420px, 56svh);
    overflow-x: hidden;
    padding-right: 3px;
}

body.modo-pwa.perfil-coordenador .professor-acolhimento {
    align-items: flex-start;
    gap: 8px;
    height: auto;
    min-height: 58px;
    padding: 10px 11px;
}

body.modo-pwa.perfil-coordenador .professor-acolhimento input {
    flex: 0 0 auto;
    margin-top: 3px;
}

body.modo-pwa.perfil-coordenador .professor-acolhimento span {
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
}

body.modo-pwa.perfil-coordenador .professor-acolhimento strong {
    font-size: 13px;
    line-height: 1.24;
}

body.modo-pwa.perfil-coordenador .professor-acolhimento small {
    font-size: 11.5px;
    line-height: 1.28;
    margin-top: 3px;
    overflow: visible;
    white-space: normal;
}

body.modo-pwa.perfil-coordenador .botoes-acolhimento-emti {
    align-items: stretch;
    display: grid;
    gap: 8px;
    justify-content: stretch;
    width: 100%;
}

body.modo-pwa.perfil-coordenador .botoes-acolhimento-emti button,
body.modo-pwa.perfil-coordenador .botoes-acolhimento-emti .botao-form-link {
    flex: none;
    min-height: 42px;
    min-width: 0;
    width: 100%;
}

body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti {
    max-width: 100%;
    max-height: min(260px, 34vh);
    max-height: min(260px, 34svh);
    padding-right: 2px;
}

body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti table {
    min-width: 0;
    table-layout: fixed;
    width: 100%;
}

body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti th,
body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti td {
    font-size: 12px;
    line-height: 1.25;
    padding: 8px 7px;
    white-space: normal;
}

body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti th:first-child,
body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti td:first-child {
    padding-left: 6px;
    padding-right: 6px;
    width: 86px;
}

body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti th:nth-child(2),
body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti td:nth-child(2) {
    width: 34%;
}

body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

@media (max-width: 380px) {
    body.modo-pwa.perfil-coordenador .container-acolhimento-emti {
        padding-left: 10px;
        padding-right: 10px;
    }

    body.modo-pwa.perfil-coordenador .campo-criterios-acolhimento,
    body.modo-pwa.perfil-coordenador .campo-professores-acolhimento {
        padding-left: 10px;
        padding-right: 10px;
    }

    body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti th,
    body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti td {
        font-size: 11px;
        padding-left: 5px;
        padding-right: 5px;
    }

    body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti th:first-child,
    body.modo-pwa.perfil-coordenador .tabela-acolhimento-emti td:first-child {
        width: 74px;
    }
}

.tabela-simulado-coordenador {
    max-height: 760px;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.tabela-simulado-coordenador thead th {
    position: sticky;
    top: 0;
    z-index: 5;
}

.tabela-simulado-coordenador th:nth-child(1),
.tabela-simulado-coordenador td:nth-child(1) {
    width: 210px;
}

.tabela-simulado-coordenador th:nth-child(2),
.tabela-simulado-coordenador td:nth-child(2) {
    width: 110px;
}

.tabela-simulado-coordenador th:nth-child(3),
.tabela-simulado-coordenador td:nth-child(3) {
    width: 20%;
}

.tabela-simulado-coordenador th:nth-child(4),
.tabela-simulado-coordenador td:nth-child(4) {
    width: 18%;
}

.tabela-simulado-coordenador th:nth-child(5),
.tabela-simulado-coordenador td:nth-child(5) {
    text-align: center;
    width: 70px;
}

.tabela-simulado-coordenador th:nth-child(6),
.tabela-simulado-coordenador td:nth-child(6) {
    overflow: visible;
    width: 340px;
}

.acoes-simulado-coordenador {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    max-width: 100%;
    min-width: 0;
}

.form-reaproveitar-simulado {
    display: grid !important;
    flex: 1 1 100%;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) 86px;
    margin: 0 !important;
    width: 100%;
}

.form-reaproveitar-simulado select {
    min-height: 34px;
    min-width: 0;
    width: 100%;
}

.form-reaproveitar-simulado .botao-acao {
    min-width: 0;
    width: 86px;
}

.botao-usar-arquivada-simulado {
    background: linear-gradient(180deg, #ef4444, #b91c1c);
    border: 1px solid #991b1b;
    box-shadow: 0 6px 14px rgba(220, 38, 38, 0.24);
    color: #fff;
}

.botao-usar-arquivada-simulado:hover {
    background: linear-gradient(180deg, #f87171, #991b1b);
    color: #fff;
}

.janela-questao-simulado {
    flex: 0 0 auto;
    max-width: 100%;
    position: relative;
}

.janela-questao-simulado > .botao-acao {
    min-width: 112px;
    width: 112px;
}

.conteudo-questao-simulado {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.2);
    color: #1f2937;
    display: none;
    gap: 8px;
    inline-size: min(760px, calc(100vw - 64px));
    line-height: 1.45;
    max-width: min(760px, calc(100vw - 64px));
    min-width: 0;
    overflow-wrap: anywhere;
    padding: 14px;
    left: 16px;
    position: fixed;
    top: 16px;
    white-space: normal;
    z-index: 2000;
}

.janela-questao-simulado:hover .conteudo-questao-simulado {
    display: grid;
}

.conteudo-questao-simulado p {
    margin: 0;
    overflow-wrap: anywhere;
}

.conteudo-questao-simulado ol {
    display: grid;
    gap: 6px;
    margin: 0;
    padding-left: 22px;
}

.conteudo-questao-simulado li {
    overflow-wrap: anywhere;
}

.form-status-simulado {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    flex-wrap: nowrap;
    gap: 6px;
    min-width: 0;
}

.form-status-simulado select {
    min-height: 34px;
    min-width: 116px;
    padding: 6px 28px 6px 8px;
}

.form-status-simulado .botao-acao {
    min-width: 76px;
    width: 76px;
}

.painel-push-pwa-rotina {
    align-items: center;
    background: #ecfdf5;
    border: 1px solid #86efac;
    border-left: 5px solid #16a34a;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 0 0 18px;
    padding: 14px;
}

.painel-push-pwa-rotina strong,
.painel-push-pwa-rotina small {
    display: block;
}

.painel-push-pwa-rotina strong {
    color: #052e16;
    font-size: 15px;
}

.painel-push-pwa-rotina small {
    color: #166534;
    font-weight: 700;
    line-height: 1.35;
    margin-top: 3px;
}

.acoes-push-pwa-rotina {
    display: flex;
    gap: 8px;
}

.acoes-push-pwa-rotina button {
    min-height: 38px;
    padding: 0 12px;
    white-space: nowrap;
}

.acoes-push-pwa-rotina button:last-child {
    background: linear-gradient(180deg, #1f2937, #020617);
    border: 1px solid #020617;
}

@media (max-width: 760px) {
    .painel-push-pwa-rotina {
        grid-template-columns: 1fr;
    }

    .acoes-push-pwa-rotina {
        display: grid;
        grid-template-columns: 1fr;
    }

    .acoes-push-pwa-rotina button {
        width: 100%;
    }
}

.painel-secretaria-acoes {
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    max-width: 940px;
}

.painel-secretaria-acoes .docs-peb-card {
    min-height: 122px;
    padding: 22px;
}

.painel-aluno-acoes {
    grid-template-columns: repeat(3, minmax(200px, 1fr));
    margin-bottom: 28px;
    margin-top: 22px;
    max-width: 860px;
}

.painel-aluno-acoes .docs-peb-card {
    min-height: 86px;
}

.card-jogos-interativos {
    background:
        linear-gradient(135deg, rgba(34, 211, 238, 0.92), rgba(79, 70, 229, 0.94) 52%, rgba(236, 72, 153, 0.9));
    border: 1px solid rgba(165, 180, 252, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 14px 30px rgba(79, 70, 229, 0.28),
        0 0 22px rgba(34, 211, 238, 0.22);
    color: #fff;
}

.card-jogos-interativos:hover {
    background:
        linear-gradient(135deg, rgba(103, 232, 249, 0.96), rgba(67, 56, 202, 0.96) 52%, rgba(219, 39, 119, 0.94));
    border-color: rgba(207, 250, 254, 0.86);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.42),
        0 16px 34px rgba(79, 70, 229, 0.34),
        0 0 28px rgba(34, 211, 238, 0.3);
}

.selo-discreto {
    background: #e2e8f0;
    border-radius: 999px;
    color: #334155;
    display: inline-flex;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    padding: 3px 8px;
    text-transform: uppercase;
}

.secao-sugestoes-direcao {
    margin-top: 26px;
}

.lista-sugestoes-direcao.lista-mensagens-rolavel {
    max-height: min(460px, 62vh);
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.container-jogos {
    max-width: 1380px;
    width: min(100%, 1380px);
}

.formulario-sugestao-aluno {
    margin-top: 22px;
}

.grade-jogos {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(340px, 1fr));
    margin-top: 24px;
}

.jogo-card {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(148, 163, 184, 0.32);
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 320px;
    min-width: 0;
    overflow: hidden;
    padding: 20px;
}

.jogo-card * {
    max-width: 100%;
}

.jogo-card header {
    display: grid;
    gap: 4px;
}

.jogo-card header span {
    color: #2563eb;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.jogo-card h2 {
    margin: 0;
}

.jogo-card p {
    color: #334155;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.opcoes-jogo {
    align-items: flex-start;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.controles-jogo,
.frase-banco-jogo {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.frase-montada-jogo {
    align-items: center;
    background: #f8fafc;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    color: #0f172a;
    display: flex;
    font-weight: 800;
    line-height: 1.45;
    min-height: 54px;
    overflow-wrap: anywhere;
    padding: 10px 12px;
    word-break: break-word;
}

.frase-banco-jogo .botao-jogo:disabled {
    cursor: not-allowed;
    filter: grayscale(0.6);
    opacity: 0.55;
    transform: none;
}

.cobrinha-canvas {
    background: #f8fafc;
    border: 2px solid #cbd5e1;
    border-radius: 8px;
    height: 280px;
    max-width: 100%;
    width: 280px;
}

.controles-cobrinha {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 92px));
    justify-content: center;
}

.controles-cobrinha [data-direcao="cima"] {
    grid-column: 2;
}

.controles-cobrinha [data-direcao="esquerda"] {
    grid-column: 1;
}

.controles-cobrinha [data-direcao="direita"] {
    grid-column: 3;
}

.controles-cobrinha [data-direcao="baixo"] {
    grid-column: 2;
}

.botao-cobrinha-direcao {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 8px 18px rgba(15, 23, 42, 0.16);
    color: #fff;
    min-width: 0;
    width: 100%;
}

.botao-cobrinha-direcao[data-direcao="cima"] {
    background: linear-gradient(180deg, #60a5fa, #2563eb);
    border: 1px solid #1d4ed8;
}

.botao-cobrinha-direcao[data-direcao="esquerda"] {
    background: linear-gradient(180deg, #facc15, #d97706);
    border: 1px solid #b45309;
    color: #422006;
}

.botao-cobrinha-direcao[data-direcao="direita"] {
    background: linear-gradient(180deg, #fb7185, #e11d48);
    border: 1px solid #be123c;
}

.botao-cobrinha-direcao[data-direcao="baixo"] {
    background: linear-gradient(180deg, #a78bfa, #7c3aed);
    border: 1px solid #6d28d9;
}

.botao-cobrinha-direcao:hover {
    filter: brightness(1.08);
}

.botao-jogo {
    align-items: center;
    align-self: flex-start;
    border: 0;
    box-sizing: border-box;
    display: inline-flex;
    font-size: 12px;
    justify-content: center;
    justify-self: stretch;
    line-height: 1.15;
    min-height: 42px;
    min-width: 0;
    overflow-wrap: anywhere;
    padding: 6px 10px;
    text-align: center;
    white-space: normal;
    width: 100%;
    word-break: break-word;
}

.jogo-card .botao-acao.botao-jogo {
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.botao-jogo-controle {
    align-self: flex-start;
    background: linear-gradient(180deg, #4ade80, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 8px 18px rgba(22, 163, 74, 0.2);
    color: #052e16;
    font-size: 12px;
    min-height: 34px;
    padding: 6px 10px;
    width: 100%;
}

.botao-jogo-controle:hover {
    background: linear-gradient(180deg, #86efac, #15803d);
    color: #052e16;
}

.campo-jogo-linha {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) minmax(96px, 112px);
    justify-content: flex-start;
}

.campo-jogo-linha input {
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 16px;
    min-height: 42px;
    padding: 10px 12px;
}

.resultado-jogo {
    color: #0f766e;
    display: block;
    min-height: 22px;
}

.forca-palavra {
    background: #f8fafc;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    color: #0f172a;
    display: block;
    font-size: 20px;
    letter-spacing: 0;
    line-height: 1.5;
    min-height: 44px;
    padding: 8px 10px;
    text-align: center;
    width: 100%;
    word-break: break-word;
}

.forca-letras {
    display: grid;
    gap: 7px;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.botao-forca-letra {
    font-size: 12px;
    min-height: 30px;
    min-width: 0;
    padding: 4px 6px;
    width: 100%;
}

.botao-forca-letra:disabled {
    cursor: not-allowed;
    filter: grayscale(0.8);
    opacity: 0.55;
    transform: none;
}

.placar-jogo {
    color: #475569;
    font-weight: 800;
}

.memoria-grade {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
}

.carta-memoria {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1d4ed8;
    cursor: pointer;
    font-size: 18px;
    font-weight: 900;
    min-height: 64px;
    min-width: 0;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    width: 100%;
}

.carta-memoria:hover,
.carta-memoria.revelada {
    background: #2563eb;
    color: #fff;
    transform: translateY(-1px);
}

.carta-memoria.combinada {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}

.botao-inativo-painel {
    background: #e5e7eb;
    color: #64748b;
    cursor: not-allowed;
}

.botao-inativo-painel:hover {
    background: #e5e7eb;
    text-decoration: none;
}

.card-indicador {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-left: 5px solid #f97316;
    border-radius: 8px;
    display: grid;
    gap: 6px;
    padding: 16px;
}

.card-indicador span {
    color: #64748b;
    font-weight: 700;
}

.card-indicador strong {
    color: #0f172a;
    font-size: 32px;
}

.card-indicador small {
    color: #475569;
    font-weight: 800;
    line-height: 1.25;
}

.modulo-rfid-dashboard {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin: 18px 0 24px;
    padding: 18px 20px;
}

.calendario-dashboard {
    align-items: center;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.1);
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) 102px;
    justify-self: end;
    min-height: 84px;
    padding: 12px 14px;
    position: relative;
    width: 300px;
}

.calendario-dashboard span {
    color: #64748b;
    font-weight: 900;
    text-transform: uppercase;
}

.calendario-dashboard h2 {
    color: #1d4ed8;
    font-size: 26px;
    line-height: 1;
    margin: 4px 0 0;
}

.calendario-dashboard small {
    color: #475569;
    display: block;
    font-weight: 800;
    margin-top: 6px;
}

.calendario-dashboard-indisponivel {
    border-color: #cbd5e1;
    box-shadow: 0 10px 24px rgba(100, 116, 139, 0.08);
}

.calendario-dashboard-indisponivel h2 {
    color: #1d4ed8;
}

.calendario-dashboard-perfil {
    margin: 0 0 6px auto;
}

.calendario-miniatura {
    background: #fff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    box-shadow: 0 10px 22px rgba(37, 99, 235, 0.16);
    cursor: pointer;
    display: block;
    height: 72px;
    overflow: hidden;
    padding: 0;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
    width: 102px;
    z-index: 2;
}

.calendario-miniatura:hover {
    border-color: #2563eb;
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.24);
    transform: translateY(-2px);
}

.calendario-miniatura:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.28);
    outline-offset: 3px;
}

.calendario-miniatura iframe {
    border: 0;
    height: 460px;
    max-width: none;
    pointer-events: none;
    transform: scale(0.155);
    transform-origin: top left;
    width: 630px;
}

.calendario-sem-arquivo {
    align-items: center;
    background: #f1f5f9;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    color: #64748b;
    display: flex;
    font-size: 18px;
    font-weight: 900;
    height: 72px;
    justify-content: center;
    letter-spacing: 0;
    width: 102px;
}

.form-upload-calendario {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 2px;
}

.form-upload-calendario label {
    color: #475569;
    font-size: 12px;
    font-weight: 900;
    grid-column: 1 / -1;
    margin: 0;
}

.form-upload-calendario input {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #334155;
    font-size: 12px;
    min-height: 34px;
    min-width: 0;
    padding: 5px;
}

.form-upload-calendario button {
    min-height: 34px;
    padding: 0 10px;
}

.calendario-modal[hidden] {
    display: none;
}

.calendario-modal {
    align-items: center;
    background: rgba(15, 23, 42, 0.74);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 12000;
}

.calendario-modal:not([hidden]) {
    animation: calendario-fundo-suspenso 0.22s ease both;
}

.calendario-modal-conteudo {
    background: #fff;
    border-radius: 8px;
    box-shadow:
        0 34px 80px rgba(15, 23, 42, 0.5),
        0 0 0 1px rgba(255, 255, 255, 0.22);
    display: grid;
    gap: 10px;
    grid-template-rows: auto minmax(0, 1fr);
    height: min(92vh, 900px);
    max-width: 1120px;
    padding: 12px;
    transform-origin: center center;
    width: min(96vw, 1120px);
}

.calendario-modal:not([hidden]) .calendario-modal-conteudo {
    animation: calendario-ampliar-suspenso 0.28s cubic-bezier(0.2, 0.86, 0.32, 1) both;
}

.calendario-modal-conteudo iframe {
    border: 1px solid #dbe3ea;
    border-radius: 6px;
    height: 100%;
    min-height: 0;
    width: 100%;
}

.calendario-modal-fechar {
    justify-self: end;
    min-height: 38px;
    padding: 0 16px;
}

body.calendario-modal-aberto {
    overflow: hidden;
}

@keyframes calendario-fundo-suspenso {
    from {
        background: rgba(15, 23, 42, 0);
    }

    to {
        background: rgba(15, 23, 42, 0.74);
    }
}

@keyframes calendario-ampliar-suspenso {
    from {
        opacity: 0.2;
        transform:
            translate(var(--calendario-origem-x, 0), var(--calendario-origem-y, 0))
            scale(var(--calendario-escala-x, 0.12), var(--calendario-escala-y, 0.12));
    }

    to {
        opacity: 1;
        transform: translate(0, 0) scale(1);
    }
}

.modulo-rfid-dashboard span {
    color: #64748b;
    font-weight: 900;
    text-transform: uppercase;
}

.modulo-rfid-dashboard h2 {
    margin: 4px 0 8px;
}

.modulo-rfid-dashboard p {
    color: #475569;
    line-height: 1.5;
    margin: 0;
}

.modulo-rfid-dashboard > strong {
    background: #e0ecff;
    border: 1px solid #93c5fd;
    border-radius: 999px;
    color: #1d4ed8;
    padding: 8px 12px;
    white-space: nowrap;
}

.form-rfid-dashboard {
    align-items: end;
    display: grid;
    gap: 8px;
    grid-template-columns: 160px auto;
}

.form-rfid-dashboard label {
    grid-column: 1 / -1;
}

.form-rfid-dashboard input {
    min-height: 40px;
    padding: 8px 10px;
}

.form-rfid-dashboard button {
    background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 45%, #1e3a8a 100%);
    border: 1px solid #60a5fa;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        0 12px 24px rgba(37, 99, 235, 0.32);
    color: #fff;
    min-height: 40px;
    padding: 0 14px;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
    white-space: nowrap;
}

.form-rfid-dashboard button:hover {
    border-color: #93c5fd;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.58),
        0 16px 30px rgba(30, 64, 175, 0.38);
    filter: brightness(1.04);
    transform: translateY(-2px);
}

.form-rfid-dashboard button:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.3);
    outline-offset: 3px;
}

.form-rfid-dashboard button:active {
    box-shadow: none;
    transform: translateY(0);
}

.form-rfid-dashboard button.botao-visualizar-rfid {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.24);
    color: #052e16;
    font-size: 13px;
    font-weight: 800;
    min-width: 168px;
    padding: 0 12px;
}

.form-rfid-dashboard button.botao-visualizar-rfid:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    border-color: #15803d;
    color: #052e16;
}

.tema-antonia .modulo-rfid-dashboard > strong {
    background: #e8ffe1;
    border-color: #8bf15b;
    color: #005f37;
}

.info-box {
    background: #fee2e2;
    border: 1px solid #fca5a5;
    border-left: 5px solid #dc2626;
    border-radius: 8px;
    margin: 0 auto;
    max-width: 1040px;
    padding: 18px 20px;
}

.info-box p {
    color: #7f1d1d;
    font-size: 18px;
    line-height: 1.6;
    margin: 0;
    text-align: justify;
}

.info-box p + p {
    margin-top: 8px;
}

.info-box-importante {
    background: #fee2e2;
    border-color: #fca5a5;
    border-left-color: #dc2626;
}

.info-box-importante p {
    color: #7f1d1d;
}

.info-box-importante + .lista-notificacoes-aluno {
    margin-top: 28px !important;
}

.lista-notificacoes-aluno .card-pet:first-child {
    margin-top: 0;
}

.assinaturas-notificacao-aluno-resumo {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.assinaturas-notificacao-aluno-resumo span {
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    padding: 6px 9px;
}

.assinaturas-notificacao-aluno-resumo .status-aprovado {
    background: #dcfce7;
    border: 1px solid #86efac;
    color: #166534;
}

.formulario-atestado-aluno {
    margin-top: 24px;
}

.tabela-atestados-aluno-wrapper {
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
}

.tabela-atestados-aluno-rolavel {
    max-height: 190px;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.tabela-atestados-aluno {
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    width: 100%;
}

.tabela-atestados-aluno th,
.tabela-atestados-aluno td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tabela-atestados-aluno th:nth-child(1),
.tabela-atestados-aluno td:nth-child(1) {
    overflow: visible;
    text-overflow: clip;
    width: 104px;
}

.tabela-atestados-aluno th:nth-child(3),
.tabela-atestados-aluno td:nth-child(3) {
    width: 142px;
}

.tabela-atestados-aluno .status-atestado-aluno {
    line-height: 1.25;
    text-overflow: clip;
    white-space: normal;
}

.status-atestado-visualizado {
    color: #15803d;
}

.status-atestado-aguardando {
    color: #dc2626;
}

.info-inspecao {
    background: #fee2e2;
    border-color: #fca5a5;
    border-left-color: #dc2626;
    margin-bottom: 24px;
}

.info-inspecao p {
    color: #7f1d1d;
}

.perfil-inspecao .card-indicador {
    border-left-color: #dc2626;
}

.perfil-inspecao .card-indicador strong {
    color: #0f172a !important;
}

.grade-escolas-inspecao {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin-bottom: 24px;
}

.card-escola-inspecao {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    display: grid;
    gap: 6px;
    padding: 14px 16px;
}

.card-escola-inspecao strong {
    color: #0f172a;
}

.card-escola-inspecao span {
    color: #64748b;
    font-weight: 700;
}

.tabela-supervisores-inspetor {
    margin-bottom: 28px;
    max-height: none;
    overflow-x: hidden;
    overflow-x: clip;
    overflow-y: visible;
    width: 100%;
}

.tabela-supervisores-inspetor-rolavel {
    max-height: 360px;
    overflow-x: hidden;
    overflow-x: clip;
    overflow-y: auto;
    padding-right: 4px;
}

.tabela-supervisores-inspetor thead th {
    position: sticky;
    top: 0;
    z-index: 5;
}

.tabela-supervisores-inspetor table {
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    width: 100%;
}

.tabela-supervisores-inspetor th,
.tabela-supervisores-inspetor td {
    font-size: 13px;
    overflow: visible;
    overflow-wrap: normal;
    padding: 9px 8px;
    text-overflow: clip;
    vertical-align: top;
    white-space: nowrap;
}

.tabela-supervisores-inspetor th:nth-child(1),
.tabela-supervisores-inspetor td:nth-child(1) {
    overflow-wrap: anywhere;
    white-space: normal;
    width: 18%;
}

.tabela-supervisores-inspetor th:nth-child(2),
.tabela-supervisores-inspetor td:nth-child(2) {
    overflow-wrap: anywhere;
    padding-right: 18px;
    white-space: normal;
    width: 18%;
}

.tabela-supervisores-inspetor th:nth-child(3),
.tabela-supervisores-inspetor td:nth-child(3) {
    overflow-wrap: anywhere;
    padding-left: 38px;
    padding-right: 14px;
    white-space: normal;
    width: 22%;
}

.email-supervisor-inspetor {
    line-height: 1.2;
}

.dominio-email-supervisor {
    display: inline-block;
    margin-top: 2px;
}

.tabela-supervisores-inspetor th:nth-child(4),
.tabela-supervisores-inspetor td:nth-child(4) {
    padding-left: 2px;
    padding-right: 12px;
    width: 12%;
}

.tabela-supervisores-inspetor th:nth-child(5),
.tabela-supervisores-inspetor td:nth-child(5) {
    padding-left: 24px;
    padding-right: 14px;
    width: 12%;
}

.tabela-supervisores-inspetor th:nth-child(6),
.tabela-supervisores-inspetor td:nth-child(6) {
    position: relative;
    width: 128px;
}

.tabela-supervisores-inspetor th:nth-child(6) {
    text-align: center;
}

.tabela-supervisores-inspetor td:nth-child(6) {
    text-align: right;
}

.tabela-supervisores-inspetor .janela-mensagem-planejamento {
    display: block;
    width: 100%;
}

.tabela-supervisores-inspetor .janela-mensagem-planejamento summary {
    margin-left: auto;
    margin-right: 0;
    min-width: 132px;
    width: 132px;
    white-space: nowrap;
}

.tabela-supervisores-inspetor .janela-mensagem-planejamento[open]::before {
    background: rgba(15, 23, 42, 0.38);
    content: "";
    inset: 0;
    position: fixed;
    z-index: 12990;
}

.tabela-supervisores-inspetor .janela-mensagem-planejamento[open] form {
    animation: abrir-modal-mensagem-inspetor 0.16s ease-out;
    left: 50%;
    max-height: min(78vh, 520px);
    max-height: min(78svh, 520px);
    min-width: 0;
    overflow-y: auto;
    position: fixed;
    right: auto;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(430px, calc(100vw - 28px));
    z-index: 13000;
}

.botoes-mensagem-inspetor {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@keyframes abrir-modal-mensagem-inspetor {
    from {
        opacity: 0;
        transform: translate(-50%, calc(-50% - 8px));
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}

.filtros-planejamento {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 0 24px;
    padding: 20px;
}

.filtros-planejamento-apoio {
    margin-top: 24px;
}

.filtros-supervisao {
    align-items: end;
    grid-template-columns: minmax(260px, 360px) 1fr;
    padding: 12px;
}

.filtros-cidade-inspecao {
    align-items: end;
    grid-template-columns: minmax(260px, 420px) auto;
    margin-top: 20px;
}

.filtros-cidade-inspecao .filtros-acoes {
    align-items: end;
    grid-column: auto;
    padding-top: 0;
}

.filtro-alunos {
    align-items: end;
    grid-template-columns: minmax(220px, 320px) auto;
    justify-content: start;
}

.filtro-alunos .filtros-acoes {
    grid-column: auto;
    justify-content: flex-start;
    padding-left: 28px;
    padding-top: 0;
}

.filtro-professores-cadastrados {
    align-items: end;
    grid-template-columns: minmax(260px, 1fr) auto;
    justify-content: start;
}

.filtro-professores-cadastrados .filtros-acoes {
    grid-column: auto;
    justify-content: flex-start;
    padding-top: 0;
}

.filtro-professores-painel {
    align-items: end;
    gap: 10px;
    grid-template-columns: 220px auto;
    justify-content: center;
    margin-bottom: 12px;
    margin-left: auto;
    margin-right: auto;
    max-width: 470px;
    padding: 12px;
    width: fit-content;
}

.filtro-professores-painel .filtros-acoes {
    grid-column: auto;
    justify-content: flex-start;
    padding-top: 0;
}

.filtro-professores-painel .filtros-acoes button,
.filtro-professores-painel .filtros-acoes a {
    width: 96px;
}

.tabela-professores-painel-supervisor {
    margin-bottom: 28px;
    max-height: 350px;
    overflow-x: auto;
    overflow-y: auto;
    width: 100%;
}

.tabela-professores-painel-supervisor thead th {
    position: sticky;
    top: 0;
    z-index: 5;
}

.tabela-professores-painel-supervisor table {
    min-width: 900px;
    table-layout: auto;
    width: 100%;
}

.tabela-professores-painel-supervisor th,
.tabela-professores-painel-supervisor td {
    font-size: 13px;
    padding: 7px 8px;
    vertical-align: middle;
    white-space: nowrap;
}

.tabela-professores-painel-supervisor th:nth-child(1),
.tabela-professores-painel-supervisor td:nth-child(1) {
    min-width: 180px;
}

.tabela-professores-painel-supervisor th:nth-child(2),
.tabela-professores-painel-supervisor td:nth-child(2) {
    min-width: 240px;
}

.tabela-professores-painel-supervisor th:nth-child(3),
.tabela-professores-painel-supervisor td:nth-child(3) {
    min-width: 72px;
    text-align: center;
}

.tabela-professores-painel-supervisor th:nth-child(4),
.tabela-professores-painel-supervisor td:nth-child(4) {
    min-width: 390px;
    padding-left: 8px;
    text-align: right;
}

.tabela-professores-painel-supervisor .acoes-professor {
    gap: 6px;
    justify-content: flex-end;
    margin-left: auto;
    white-space: nowrap;
}

.tabela-professores-inativos-supervisor table {
    min-width: 820px;
}

.tabela-professores-inativos-supervisor th:nth-child(4),
.tabela-professores-inativos-supervisor td:nth-child(4) {
    min-width: 390px;
}

.tabela-professores-cadastrados th,
.tabela-professores-cadastrados td {
    padding: 10px 12px;
    vertical-align: middle;
    white-space: nowrap;
}

.tabela-professores-cadastrados {
    margin-left: 50%;
    max-width: min(960px, calc(100vw - 48px));
    overflow-x: auto;
    transform: translateX(-50%);
    width: min(960px, calc(100vw - 48px));
}

.tabela-professores-cadastrados table {
    table-layout: fixed;
    width: 100%;
}

.tabela-professores-cadastrados th:first-child,
.tabela-professores-cadastrados td:first-child {
    width: 27%;
}

.tabela-professores-cadastrados th:nth-child(2),
.tabela-professores-cadastrados td:nth-child(2) {
    width: 36%;
}

.tabela-professores-cadastrados th:nth-child(3),
.tabela-professores-cadastrados td:nth-child(3) {
    width: 21%;
}

.tabela-professores-cadastrados th:nth-child(4),
.tabela-professores-cadastrados td:nth-child(4) {
    text-align: left;
    width: 16%;
}

.tabela-professores-cadastrados td:nth-child(4) .botao-acao {
    margin-left: 12px;
}

@media (min-width: 761px) {
    body:not(.modo-pwa).perfil-secretaria .tabela-professores-cadastrados.lista-cadastrados-rolavel {
        max-height: min(500px, 65vh);
        overflow-x: auto;
        overflow-y: auto;
        padding-right: 6px;
        scrollbar-gutter: stable;
    }

    body:not(.modo-pwa).perfil-secretaria .tabela-professores-cadastrados.lista-cadastrados-rolavel thead th {
        position: sticky;
        top: 0;
        z-index: 2;
    }
}

.tabela-alunos-cadastrados {
    margin-left: 50%;
    max-width: min(1120px, calc(100vw - 48px));
    overflow-x: hidden;
    transform: translateX(-50%);
    width: min(1120px, calc(100vw - 48px));
}

.tabela-alunos-cadastrados table {
    table-layout: fixed;
    width: 100%;
}

.tabela-alunos-cadastrados th,
.tabela-alunos-cadastrados td {
    padding: 10px 12px;
    vertical-align: middle;
}

.tabela-alunos-cadastrados th,
.tabela-alunos-cadastrados td:nth-child(1),
.tabela-alunos-cadastrados td:nth-child(3),
.tabela-alunos-cadastrados td:nth-child(4),
.tabela-alunos-cadastrados td:nth-child(6) {
    white-space: nowrap;
}

.tabela-alunos-cadastrados td:nth-child(2),
.tabela-alunos-cadastrados td:nth-child(5) {
    overflow-wrap: anywhere;
    word-break: normal;
}

.tabela-alunos-cadastrados .coluna-acesso-aluno {
    line-height: 1.25;
}

.tabela-alunos-cadastrados th:nth-child(1),
.tabela-alunos-cadastrados td:nth-child(1) {
    width: 105px;
}

.tabela-alunos-cadastrados th:nth-child(2),
.tabela-alunos-cadastrados td:nth-child(2) {
    width: 25%;
}

.tabela-alunos-cadastrados th:nth-child(3),
.tabela-alunos-cadastrados td:nth-child(3) {
    width: 128px;
}

.tabela-alunos-cadastrados th:nth-child(4),
.tabela-alunos-cadastrados td:nth-child(4),
.tabela-alunos-cadastrados th:nth-child(5),
.tabela-alunos-cadastrados td:nth-child(5) {
    width: 128px;
}

.tabela-alunos-cadastrados th:nth-child(6),
.tabela-alunos-cadastrados td:nth-child(6) {
    width: 118px;
}

.tabela-alunos-cadastrados td:last-child {
    white-space: nowrap;
}

.acoes-aluno-cadastrado {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.filtros-cidade-inspecao .acao-cidade-inspecao {
    align-self: end;
    display: flex;
    height: 46px;
    justify-content: flex-start;
}

.filtros-cidade-inspecao .acao-cidade-inspecao button {
    height: 46px;
    min-height: 46px;
}

.filtros-supervisao label {
    display: block;
    margin-bottom: 6px;
}

.filtros-supervisao select {
    min-height: 40px;
    padding: 8px 38px 8px 12px;
}

.filtros-supervisao .filtros-acoes {
    align-items: end;
    grid-column: auto;
    justify-content: flex-end;
    padding-top: 0;
}

.filtros-supervisao .filtros-acoes button,
.filtros-supervisao .filtros-acoes a {
    min-height: 40px;
}

.campo-periodo {
    grid-column: auto;
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.periodo-duplo {
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr;
    max-width: 100%;
    width: 100%;
}

.periodo-duplo input[type="date"] {
    appearance: none;
    display: block;
    height: 46px;
    max-height: 46px;
    max-width: 100%;
    min-width: 0;
    padding: 12px 14px;
    -webkit-appearance: none;
    width: 100%;
}

.filtros-planejamento label {
    display: block;
    margin-bottom: 8px;
}

.filtros-acoes {
    align-items: end;
    display: flex;
    gap: 10px;
    grid-column: 1 / -1;
    justify-content: flex-end;
    padding-top: 2px;
}

.filtros-acoes button,
.filtros-acoes a {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
    min-height: 42px;
    padding: 0 12px;
    text-align: center;
    white-space: nowrap;
    width: 116px;
}

.filtros-acoes button {
    background: #2563eb;
    color: #fff;
    transition:
        background 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.filtros-acoes a {
    background: #e5e7eb;
    color: #1f2933;
}

.filtros-acoes button:hover,
.filtros-acoes button:focus-visible {
    background: #1d4ed8;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.24);
    outline: none;
    transform: translateY(-1px);
}

.filtros-acoes button:active {
    box-shadow: none;
    transform: translateY(0);
}

.filtros-acoes a:hover {
    background: #cbd5e1;
    text-decoration: none;
}

.botao-limpar-planejamentos-professor {
    background: linear-gradient(180deg, #111827, #020617);
    border: 1px solid #020617;
    box-shadow: 0 8px 18px rgba(2, 6, 23, 0.26);
    color: #fff;
}

.botao-limpar-planejamentos-professor:hover {
    background: linear-gradient(180deg, #030712, #000);
    border-color: #000;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.34);
    color: #000;
}

.janela-mensagem summary {
    color: #1d4ed8;
    cursor: pointer;
    font-weight: 700;
}

.janela-mensagem form {
    display: grid;
    gap: 10px;
    margin-top: 10px;
    min-width: 280px;
}

.janela-mensagem textarea {
    min-height: 110px;
}

.janela-senha {
    display: inline-block;
    margin-right: 8px;
}

.janela-senha form {
    background: #f8fafc;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    padding: 10px;
}

.janela-senha input {
    min-width: 220px;
}

.janela-mensagem-planejamento {
    position: relative;
}

.janela-mensagem-planejamento summary {
    align-items: center;
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border: 1px solid #1d4ed8;
    border-radius: 6px;
    box-sizing: border-box;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.2);
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    justify-content: center;
    line-height: 1.12;
    list-style: none;
    min-height: 34px;
    min-width: 132px;
    overflow-wrap: anywhere;
    padding: 4px 8px;
    text-align: center;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
    white-space: normal;
    width: 132px;
    word-break: normal;
}

.janela-mensagem-planejamento summary::-webkit-details-marker {
    display: none;
}

.janela-mensagem-planejamento form {
    animation: abrir-menu-mensagem 0.16s ease-out;
    background: #f8fafc;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
    min-width: 340px;
    padding: 12px;
    position: absolute;
    right: 0;
    top: 40px;
    z-index: 10;
}

.janela-mensagem-planejamento textarea {
    min-height: 126px;
}

.janela-mensagem-planejamento summary:hover,
.janela-mensagem-planejamento[open] summary {
    background: linear-gradient(180deg, #86efac, #22c55e);
    border-color: #15803d;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.28);
    color: #111827;
    filter: brightness(1.04);
    transform: translateY(-1px);
}

.janela-mensagem-planejamento summary:focus-visible {
    outline: 3px solid rgba(147, 197, 253, 0.62);
    outline-offset: 3px;
}

.janela-mensagem-planejamento summary:active {
    box-shadow: 0 3px 8px rgba(22, 163, 74, 0.22);
    transform: translateY(0);
}

@keyframes abrir-menu-mensagem {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.janela-mensagem-planejamento strong {
    color: #334155;
    font-size: 13px;
    line-height: 1.35;
}

.lista-mensagens {
    display: grid;
    gap: 12px;
    margin-bottom: 24px;
}

.painel-mensagens-supervisor {
    margin-bottom: 24px;
}

.barra-acoes-mensagens {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #dbe3ea;
    border-radius: 8px 8px 0 0;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 10px 12px;
}

.barra-acoes-mensagens span {
    color: #475569;
    font-weight: 700;
}

.lista-mensagens-rolavel {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    max-height: min(380px, 56vh);
    overflow-y: auto;
    padding: 12px;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.barra-acoes-mensagens + .lista-mensagens-rolavel {
    border-radius: 0 0 8px 8px;
    border-top: 0;
}

.mensagem-card {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    overflow-wrap: anywhere;
    padding: 14px 16px;
    word-break: break-word;
}

.mensagem-card *,
.mensagem-card .conteudo-mensagem {
    max-width: 100%;
    min-width: 0;
}

.item-nao-lido {
    border-color: #f59e0b;
    border-left-color: #dc2626;
    box-shadow: 0 10px 24px rgba(220, 38, 38, 0.12);
}

.selo-novo {
    background: #dc2626;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0;
    margin-right: 6px;
    padding: 3px 8px;
    text-transform: uppercase;
}

.mensagem-card-selecionavel {
    align-items: flex-start;
    display: grid;
    gap: 12px;
    grid-template-columns: 28px 1fr;
}

.selecionar-mensagem {
    align-items: center;
    display: flex;
    justify-content: center;
    padding-top: 2px;
}

.selecionar-mensagem input {
    box-shadow: none;
    cursor: pointer;
    min-height: auto;
    padding: 0;
    width: 18px;
}

.mensagem-card header {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-width: 0;
}

.mensagem-card span {
    color: #64748b;
    font-size: 14px;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.mensagem-card p {
    margin: 10px 0 0;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.mensagem-card h3 {
    color: #1f2937;
    font-size: 17px;
    margin: 12px 0 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.mensagem-card header strong {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.mensagem-card .relato-dashboard-ocorrencia {
    display: block;
    max-width: 100%;
    overflow: hidden;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
    word-break: break-all !important;
}

.notificacao-direcao-card {
    border-left-color: #dc2626;
}

.notificacao-direcao-card h3 {
    color: #991b1b;
}

.mensagem-direcao-card {
    border-left-color: #1d4ed8;
}

.mensagem-direcao-card h3 {
    color: #1d4ed8;
}

.acoes-mensagem-planejamento {
    margin-top: 12px;
}

table {
    background: #fff;
    border-collapse: collapse;
    width: 100%;
}

.tabela-meus-planejamentos th:last-child,
.tabela-meus-planejamentos td:last-child {
    padding-left: 8px;
    padding-right: 8px;
    width: 300px;
}

.tabela-meus-planejamentos {
    table-layout: fixed;
}

.tabela-rolagem-meus-planejamentos {
    max-height: 520px;
    overflow: auto;
}

.tabela-rolagem-meus-planejamentos thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.tabela-rolagem-planejamentos-supervisor {
    margin-left: -70px;
    margin-right: -70px;
    max-height: 520px;
    overflow-y: auto;
    overflow-x: hidden;
}

.tabela-rolagem-relatorios-aclta-supervisor {
    margin-top: 28px;
}

.tabela-rolagem-planejamentos-supervisor thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.tabela-rolagem-planejamentos-inspetor {
    max-height: min(680px, 74vh);
    overflow-x: auto;
    overflow-y: auto;
}

@media (max-width: 760px) {
    .tabela-rolagem-planejamentos-inspetor {
        max-height: 74svh;
    }
}

.tabela-rolagem-planejamentos-inspetor thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.perfil-inspecao .tabela-rolagem-planejamentos-inspetor th {
    overflow-wrap: normal;
    white-space: nowrap;
    word-break: normal;
}

.tabela-planejamentos-supervisor {
    table-layout: fixed;
}

.tabela-planejamentos-supervisor th:nth-child(1),
.tabela-planejamentos-supervisor td:nth-child(1) {
    width: 160px;
}

.tabela-planejamentos-supervisor th:nth-child(2),
.tabela-planejamentos-supervisor td:nth-child(2) {
    width: 170px;
}

.tabela-planejamentos-supervisor th:nth-child(4),
.tabela-planejamentos-supervisor td:nth-child(4) {
    width: 105px;
}

.tabela-planejamentos-supervisor th:nth-child(5),
.tabela-planejamentos-supervisor td:nth-child(5) {
    width: 170px;
}

.tabela-planejamentos-supervisor th:nth-child(6),
.tabela-planejamentos-supervisor td:nth-child(6) {
    width: 142px;
}

.tabela-planejamentos-lista-supervisor th:nth-child(3),
.tabela-planejamentos-lista-supervisor td:nth-child(3) {
    width: 215px;
}

.tabela-planejamentos-lista-supervisor th:nth-child(4),
.tabela-planejamentos-lista-supervisor td:nth-child(4) {
    padding-left: 4px;
    width: 130px;
}

.tabela-planejamentos-lista-supervisor th:nth-child(5),
.tabela-planejamentos-lista-supervisor td:nth-child(5) {
    padding-left: 4px;
    width: 145px;
}

.tabela-relatorios-aclta-supervisor th:nth-child(1),
.tabela-relatorios-aclta-supervisor td:nth-child(1) {
    width: 96px;
}

.tabela-relatorios-aclta-supervisor th:nth-child(2),
.tabela-relatorios-aclta-supervisor td:nth-child(2) {
    width: 230px;
}

.tabela-relatorios-aclta-supervisor th:nth-child(3),
.tabela-relatorios-aclta-supervisor td:nth-child(3) {
    width: 210px;
}

.tabela-relatorios-aclta-supervisor th:nth-child(4),
.tabela-relatorios-aclta-supervisor td:nth-child(4) {
    width: 82px;
}

.tabela-relatorios-aclta-supervisor th:nth-child(5),
.tabela-relatorios-aclta-supervisor td:nth-child(5) {
    width: 160px;
}

.tabela-relatorios-aclta-supervisor th:nth-child(6),
.tabela-relatorios-aclta-supervisor td:nth-child(6) {
    width: 144px;
}

.tabela-relatorios-aclta-supervisor th,
.tabela-relatorios-aclta-supervisor td {
    padding-left: 8px;
    padding-right: 8px;
}

.tabela-meus-planejamentos th:nth-child(1),
.tabela-meus-planejamentos td:nth-child(1) {
    width: 210px;
}

.tabela-meus-planejamentos th:nth-child(3),
.tabela-meus-planejamentos td:nth-child(3) {
    width: 150px;
}

.tabela-meus-planejamentos th:nth-child(4),
.tabela-meus-planejamentos td:nth-child(4) {
    width: 140px;
}

.tabela-relatorios-aclta th:last-child,
.tabela-relatorios-aclta td:last-child {
    width: 236px;
}

.tabela-relatorios-aclta th:nth-child(1),
.tabela-relatorios-aclta td:nth-child(1) {
    white-space: nowrap;
    width: 104px;
}

.tabela-relatorios-aclta th:nth-child(2),
.tabela-relatorios-aclta td:nth-child(2) {
    width: 220px;
}

.tabela-relatorios-aclta th:nth-child(3),
.tabela-relatorios-aclta td:nth-child(3) {
    width: 112px;
}

.tabela-relatorios-aclta th:nth-child(4),
.tabela-relatorios-aclta td:nth-child(4) {
    padding-right: 18px;
    width: 142px;
}

.tabela-relatorios-aclta th:nth-child(5),
.tabela-relatorios-aclta td:nth-child(5) {
    padding-left: 18px;
    width: 180px;
}

.tabela-relatorios-aclta th,
.tabela-relatorios-aclta td {
    padding-left: 8px;
    padding-right: 8px;
}

.tabela-relatorios-aclta thead th {
    white-space: nowrap;
}

.tabela-relatorios-aclta .acoes-planejamento {
    gap: 6px;
}

.tabela-relatorios-aclta .acoes-planejamento .botao-acao {
    font-size: 11px;
    padding-left: 6px;
    padding-right: 6px;
}

.tabela-relatorios-aclta .botao-visualizar-pdf-aclta {
    background: linear-gradient(180deg, #22c55e, #15803d);
    border-color: #16a34a;
    color: #111827;
}

.tabela-relatorios-aclta .botao-visualizar-pdf-aclta:hover {
    background: linear-gradient(180deg, #16a34a, #166534);
    color: #111827;
}

.tabela-rolagem-relatorios-aclta-direcao {
    margin-top: 22px;
}

.tabela-relatorios-aclta-direcao th:last-child,
.tabela-relatorios-aclta-direcao td:last-child {
    width: 150px;
}

.acoes-planejamento.acoes-relatorio-aclta-direcao {
    align-items: stretch;
    display: grid;
    flex-wrap: initial;
    gap: 8px;
    grid-template-columns: 132px;
    justify-content: center;
    white-space: normal;
}

.acoes-planejamento.acoes-relatorio-aclta-direcao .form-inline,
.acoes-planejamento.acoes-relatorio-aclta-direcao .botao-acao {
    width: 132px;
}

.acoes-planejamento.acoes-relatorio-aclta-direcao .form-inline .botao-acao {
    width: 100%;
}

.acoes-planejamento.acoes-relatorio-aclta-direcao .botao-visualizar-relatorio-aclta-direcao {
    min-width: 0;
}

.tabela-meus-planejamentos .acoes-planejamento {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
    white-space: normal;
}

.tabela-meus-planejamentos .acoes-planejamento .botao-acao {
    min-width: 0;
    padding: 0 8px;
    width: 100%;
}

.acoes-planejamento .botao-editar {
    line-height: 1.12;
    overflow-wrap: anywhere;
    white-space: normal;
}

.botao-editar-planejamento {
    align-items: center;
    display: inline-flex;
    font-size: 10px;
    justify-content: center;
    letter-spacing: 0;
    min-width: 112px;
    overflow-wrap: normal;
    text-align: center;
    white-space: nowrap;
    width: 112px;
    word-break: normal;
}

.tabela-meus-planejamentos .acoes-planejamento .form-inline {
    width: 100%;
}

th,
td {
    border-bottom: 1px solid #e5e7eb;
    padding: 12px;
    text-align: left;
}

th {
    background: #e9eef5;
}

.pagina-notificacao-aluno .acoes-notificacao-professor {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
}

.pagina-notificacao-aluno .acoes-notificacao-professor .acao-notificacao-slot,
.pagina-notificacao-aluno .acoes-notificacao-professor .form-acao-notificacao-professor,
.pagina-notificacao-aluno .acoes-notificacao-professor .botao-acao,
.pagina-notificacao-aluno .acoes-notificacao-professor .status-assinatura-notificacao {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    justify-content: center !important;
    margin: 0 !important;
    max-width: none !important;
    min-height: 38px !important;
    min-width: 0 !important;
    padding: 0 8px !important;
    text-align: center !important;
    width: 100% !important;
}

.pagina-notificacao-aluno .acoes-notificacao-professor .form-acao-notificacao-professor .botao-acao {
    height: 100% !important;
}

@media (max-width: 900px) {
    .pagina-notificacao-aluno .acoes-notificacao-professor,
    html.modo-pwa .pagina-notificacao-aluno .acoes-notificacao-professor,
    body.modo-pwa.pagina-notificacao-aluno .acoes-notificacao-professor {
        grid-template-columns: 1fr !important;
    }

    .pagina-notificacao-aluno .acoes-notificacao-professor .acao-notificacao-slot,
    .pagina-notificacao-aluno .acoes-notificacao-professor .form-acao-notificacao-professor,
    .pagina-notificacao-aluno .acoes-notificacao-professor .botao-acao,
    .pagina-notificacao-aluno .acoes-notificacao-professor .status-assinatura-notificacao {
        min-height: 42px !important;
        padding: 0 10px !important;
    }
}

.acoes-planejamento {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    white-space: nowrap;
}

.acoes-planejamento .form-inline {
    display: inline-flex;
    margin: 0;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    margin: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    width: 100% !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .acao-notificacao-slot {
    align-items: stretch !important;
    box-sizing: border-box !important;
    display: flex !important;
    margin: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .botao-acao,
.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .status-assinatura-notificacao {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    font-size: 12px !important;
    justify-content: center !important;
    margin: 0 !important;
    min-height: 34px !important;
    min-width: 0 !important;
    padding: 4px 8px !important;
    text-align: center !important;
    width: 100% !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .form-inline {
    display: inline-flex !important;
    margin: 0 !important;
    width: 100% !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .form-inline .botao-acao {
    width: 100% !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .acao-notificacao-slot > .botao-acao,
.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .acao-notificacao-slot > .status-assinatura-notificacao,
.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .acao-notificacao-slot > .form-inline,
.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .acao-notificacao-slot > .form-inline > .botao-acao {
    box-sizing: border-box !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .status-assinatura-notificacao {
    flex-direction: column !important;
    font-size: 10.5px !important;
    gap: 1px !important;
    line-height: 1.05 !important;
    max-height: 34px !important;
    overflow: hidden !important;
}

.secao-notificacoes-alunos .tabela-notificacoes-professor .acoes-notificacao-professor .status-assinatura-notificacao .assinatura-professor-nome {
    font-size: 11px !important;
    line-height: 1.05 !important;
}

.acoes-planejamento.acoes-provas-salvas {
    align-items: stretch !important;
    display: grid !important;
    flex-wrap: initial !important;
    gap: 6px !important;
    grid-template-columns: repeat(2, 112px) !important;
    justify-content: end !important;
    min-width: 230px;
    white-space: normal !important;
}

.acoes-planejamento.acoes-provas-salvas .botao-acao,
.acoes-planejamento.acoes-provas-salvas .form-inline,
.acoes-planejamento.acoes-provas-salvas .form-inline button {
    font-size: 10.5px;
    min-width: 112px;
    width: 112px;
}

.botao-visualizar-prova {
    background: linear-gradient(180deg, #22c55e 0%, #15803d 100%) !important;
    border-color: #166534 !important;
    color: #111827 !important;
}

.botao-visualizar-prova:hover {
    background: linear-gradient(180deg, #4ade80 0%, #166534 100%) !important;
    color: #111827 !important;
}

.botao-excluir-prova {
    background: linear-gradient(180deg, #ef4444 0%, #b91c1c 100%) !important;
    border-color: #991b1b !important;
    color: #ffffff !important;
}

.botao-excluir-prova:hover {
    background: linear-gradient(180deg, #f87171 0%, #991b1b 100%) !important;
    color: #ffffff !important;
}

.botao-nova-prova {
    background: linear-gradient(180deg, #1f2937 0%, #020617 100%) !important;
    border: 1px solid #020617 !important;
    color: #ffffff !important;
}

.formulario-prova .botoes-formulario .botao-nova-prova {
    flex: 0 0 150px;
    min-width: 150px;
    width: 150px;
}

.botao-nova-prova:hover {
    background: linear-gradient(180deg, #374151 0%, #111827 100%) !important;
    color: #ffffff !important;
}

.acoes-planejamento.acoes-notificacao-aluno {
    align-items: stretch;
    display: grid;
    grid-template-columns: repeat(2, 132px);
    justify-content: end;
    white-space: normal;
    width: 272px;
}

.acoes-conselho-salvos {
    justify-content: flex-end;
    width: 100%;
}

.tabela-conselho-salvos-rolavel {
    max-height: 398px;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.tabela-conselho-salvos-rolavel thead th {
    background: #f8fafc;
    position: sticky;
    top: 0;
    z-index: 1;
}

.coluna-acoes-conselho {
    padding-left: 0;
    text-align: left;
    width: 386px;
}

.acoes-planejamento-supervisor {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.acoes-planejamento-supervisor .botao-acao,
.acoes-planejamento-supervisor .janela-mensagem-planejamento summary {
    min-width: 132px;
    width: 132px;
}

.acoes-relatorio-aclta-supervisor {
    align-items: stretch;
}

.acoes-relatorio-aclta-supervisor .form-inline,
.acoes-relatorio-aclta-supervisor .botao-acao,
.acoes-relatorio-aclta-supervisor .janela-mensagem-planejamento,
.acoes-relatorio-aclta-supervisor .janela-mensagem-planejamento summary {
    width: 132px;
}

.botao-acao {
    align-items: center;
    border-radius: 6px;
    box-sizing: border-box;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    justify-content: center;
    line-height: 1.12;
    min-height: 34px;
    min-width: 112px;
    overflow-wrap: anywhere;
    padding: 4px 8px;
    text-align: center;
    transition:
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
    width: 112px;
    word-break: normal;
}

.botao-acao:hover {
    filter: brightness(1.03);
    text-decoration: none;
    transform: translateY(-1px);
}

.botao-acao:active {
    box-shadow: none;
    transform: translateY(0);
}

.botao-editar {
    background: linear-gradient(180deg, #fbbf24, #d97706);
    border: 1px solid #b45309;
    box-shadow: 0 6px 14px rgba(217, 119, 6, 0.22);
    color: #3f2f00;
}

.botao-editar:hover {
    background: linear-gradient(180deg, #fde68a, #b45309);
    border-color: #92400e;
    box-shadow: 0 8px 18px rgba(217, 119, 6, 0.3);
    color: #3f2f00;
}

.botao-inativo {
    background: #e5e7eb;
    border: 1px solid #cbd5e1;
    box-shadow: none;
    color: #64748b;
    cursor: not-allowed;
    pointer-events: none;
}

.botao-pdf {
    background: linear-gradient(180deg, #f87171, #dc2626);
    border: 1px solid #b91c1c;
    box-shadow: 0 6px 14px rgba(220, 38, 38, 0.24);
    color: #fff;
}

.botao-pdf:hover {
    background: linear-gradient(180deg, #fb7185, #b91c1c);
    box-shadow: 0 8px 16px rgba(220, 38, 38, 0.3);
}

.botao-aprovar {
    background: linear-gradient(180deg, #fbbf24, #d97706);
    border: 1px solid #b45309;
    box-shadow: 0 6px 14px rgba(217, 119, 6, 0.22);
    color: #3f2f00;
}

.botao-aprovar:hover {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border-color: #1d4ed8;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
    color: #fff;
}

.barra-exportacao-planejamentos {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-bottom: 14px;
}

.barra-exportacao-planejamentos .botao-banco-arquivado-simulado,
.barra-exportacao-planejamentos .botao-imprimir-selecionadas-simulado {
    min-width: 150px;
    width: 150px;
}

.botao-banco-arquivado-simulado {
    background: linear-gradient(180deg, #e5e7eb, #9ca3af);
    border: 1px solid #6b7280;
    box-shadow: 0 6px 14px rgba(107, 114, 128, 0.2);
    color: #1f2937;
}

.botao-banco-arquivado-simulado:hover {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border-color: #1d4ed8;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
    color: #fff;
}

.botao-imprimir-selecionadas-simulado {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border: 1px solid #1d4ed8;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.22);
    color: #fff;
}

.botao-imprimir-selecionadas-simulado:hover {
    background: linear-gradient(180deg, #86efac, #22c55e);
    border-color: #15803d;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.28);
    color: #052e16;
}

.botao-exportar {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border: 1px solid #1d4ed8;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.22);
    color: #fff;
}

.botao-exportar:hover {
    background: linear-gradient(180deg, #60a5fa, #1d4ed8);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
}

.botao-assinar-professor {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border: 1px solid #1d4ed8;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.22);
    color: #fff;
}

.botao-assinar-professor:hover {
    background: linear-gradient(180deg, #60a5fa, #1d4ed8);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
}

.botao-transferir {
    background: linear-gradient(180deg, #86efac, #22c55e);
    border: 1px solid #15803d;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.22);
    color: #052e16;
}

.botao-transferir:hover {
    background: linear-gradient(180deg, #4ade80, #16a34a);
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.28);
    color: #052e16;
}

.acoes-professor {
    align-items: flex-start;
    display: grid;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 8px;
    white-space: normal;
    width: 390px;
}

.form-transferencia-planejamentos {
    align-items: stretch;
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
}

.acoes-professor-botoes {
    align-items: stretch;
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
}

.acoes-professor-botoes .form-inline {
    display: inline-flex;
    margin: 0;
}

.form-reativar-professor {
    align-items: stretch;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) 112px;
    width: 100%;
}

.form-transferencia-planejamentos select {
    min-height: 38px;
    min-width: 0;
    width: 100%;
}

.form-transferencia-planejamentos select[name="componente"] {
    min-width: 0;
    width: 100%;
}

.acoes-professor-botoes .botao-acao,
.acoes-professor .botao-perigo {
    min-height: 38px;
    white-space: nowrap;
}

.acoes-professor-botoes .botao-transferir,
.form-transferencia-planejamentos button.botao-transferir {
    line-height: 1.12;
    max-width: none;
    min-height: 44px;
    min-width: 0;
    padding: 0 10px;
    text-align: center;
    white-space: normal;
    width: 100%;
}

.form-reativar-professor input {
    min-height: 38px;
    min-width: 0;
    padding: 6px 10px;
    width: 100%;
}

.form-reativar-professor button {
    min-height: 38px;
    width: 112px;
}

@media (max-width: 980px) {
    .acoes-professor,
    .form-transferencia-planejamentos,
    .acoes-professor-botoes,
    .form-reativar-professor {
        align-items: stretch;
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .form-transferencia-planejamentos select,
    .form-transferencia-planejamentos select[name="componente"],
    .form-reativar-professor input {
        min-width: 0;
        width: 100%;
    }

    .form-reativar-professor {
        grid-template-columns: 1fr;
    }

    .form-transferencia-planejamentos button,
    .acoes-professor-botoes .botao-acao,
    .form-reativar-professor button,
    .acoes-professor .botao-perigo,
    .acoes-professor .botao-historico,
    .acoes-professor .botao-inativo {
        width: 100%;
    }
}

.botao-reativar {
    background: linear-gradient(180deg, #1f2937, #020617);
    border: 1px solid #020617;
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.22);
    color: #fff;
}

.botao-reativar:hover {
    background: linear-gradient(180deg, #fbbf24, #d97706);
    border-color: #b45309;
    box-shadow: 0 8px 18px rgba(217, 119, 6, 0.3);
    color: #3f2f00;
}

.botao-historico {
    background: linear-gradient(180deg, #e5e7eb, #9ca3af);
    border: 1px solid #6b7280;
    box-shadow: 0 6px 14px rgba(107, 114, 128, 0.2);
    color: #1f2937;
}

.botao-historico:hover {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border-color: #1d4ed8;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.28);
    color: #fff;
}

.resumo-transferencia {
    background: #fff7ed;
    border: 1px solid var(--cor-escola-destaque-borda);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    padding: 12px 14px;
}

.resumo-transferencia span,
.resumo-transferencia small {
    color: #64748b;
    font-weight: 700;
}

.aviso-historico-docente {
    background: #fee2e2;
    border: 1px solid #fca5a5;
    border-left: 6px solid #b91c1c;
    color: #7f1d1d;
    line-height: 1.55;
    margin: 0 0 18px;
}

.aviso-historico-docente strong {
    display: block;
    margin-top: 6px;
}

.botao-retomar {
    background: linear-gradient(180deg, #e5e7eb, #9ca3af);
    border: 1px solid #6b7280;
    box-shadow: 0 6px 14px rgba(107, 114, 128, 0.2);
    color: #1f2937;
}

.botao-retomar:hover {
    background: linear-gradient(180deg, #f3f4f6, #9ca3af);
}

.botao-licenciada {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.24);
    color: #052e16;
}

.botao-licenciada:hover {
    background: linear-gradient(180deg, #1f2937, #000);
    border-color: #000;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
    color: #fff;
}

.acao-outorgar-direcao {
    text-align: right;
}

.acao-outorgar-direcao .form-inline {
    justify-content: flex-end;
    width: 100%;
}

.status-aprovado,
.status-pendente,
.status-aprovado-por {
    display: inline;
    white-space: nowrap;
}

.status-aprovado {
    color: #15803d;
    font-weight: 800;
}

.status-aprovado-por {
    color: #166534;
    display: inline-block;
    font-weight: 700;
    line-height: 1.15;
    margin-left: 6px;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: normal;
}

.status-pendente {
    color: #92400e;
    font-weight: 700;
}

.status-assinatura-planejamento {
    display: inline-flex;
    margin-left: 0;
    margin-top: 4px;
}

.status-assinatura-nome {
    display: block;
    margin-left: 0;
    margin-top: 2px;
}

.status-apoio-educacao-especial {
    color: #dc2626;
}

.status-assinaturas-planejamento {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.perfil-inspecao .status-assinaturas-planejamento {
    gap: 4px;
}

.perfil-inspecao .status-assinaturas-planejamento .status-aprovado,
.perfil-inspecao .status-assinaturas-planejamento .status-pendente {
    font-size: 12px;
    line-height: 1.15;
}

.alerta {
    border-radius: 6px;
    margin-bottom: 16px;
    padding: 12px;
}

.alerta-relatorio-aclta {
    margin-top: 22px;
}

.formulario-relatorio-aclta {
    margin-top: 26px;
}

.modo-relatorio-aclta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-bottom: 14px;
}

.modo-relatorio-aclta legend {
    flex-basis: 100%;
    font-weight: 800;
    margin-bottom: 2px;
}

.bloco-relatorio-aclta {
    display: grid;
    gap: 8px;
}

.bloco-relatorio-aclta[hidden] {
    display: none !important;
}

.topicos-aclta-secao {
    display: grid;
    gap: 10px;
}

.topicos-aclta-duas-colunas {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.topicos-aclta-duas-colunas label {
    display: grid;
    gap: 7px;
}

.topicos-aclta-secao + h2,
.topicos-aclta-duas-colunas + .topicos-aclta-secao,
.topicos-aclta-secao + .topicos-aclta-duas-colunas {
    margin-top: 18px;
}

.grade-topicos-relatorio-aclta {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grade-topicos-relatorio-aclta label {
    display: grid;
    gap: 7px;
}

.grade-topicos-relatorio-aclta textarea {
    min-height: 130px;
}

.ficha-tabela-topico-aclta {
    margin-bottom: 8px;
}

@media (max-width: 760px) {
    .modo-relatorio-aclta {
        align-items: flex-start;
        flex-direction: column;
    }

    .topicos-aclta-duas-colunas,
    .grade-topicos-relatorio-aclta {
        grid-template-columns: 1fr;
    }
}

.erro {
    background: #fee2e2;
    color: #991b1b;
}

.sucesso {
    background: #dcfce7;
    color: #166534;
}

.aviso {
    background: #fef3c7;
    color: #92400e;
}

.alerta.aviso-historico-docente {
    background: #fee2e2;
    border: 1px solid #fca5a5;
    border-left: 6px solid #b91c1c;
    box-sizing: border-box;
    color: #7f1d1d;
    display: block;
    width: 100%;
}

.docs-peb-acoes {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    margin: 24px 0;
}

.docs-peb-card {
    display: grid;
    gap: 8px;
    line-height: 1.2;
    overflow-wrap: anywhere;
    text-align: center;
    word-break: normal;
}

.docs-peb-card span {
    font-size: 13px;
    opacity: 0.88;
}

.docs-peb-card strong {
    font-size: 18px;
}

.docs-peb-modelos {
    margin-top: 26px;
}

.docs-peb-modelos h2 {
    margin-bottom: 12px;
}

.docs-peb-modelo-card {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    color: #0f172a;
    min-height: 104px;
    padding: 16px;
    text-decoration: none;
}

.docs-peb-modelo-card:hover {
    background: #dbeafe;
    border-color: #93c5fd;
    text-decoration: none;
}

.docs-peb-modelo-card span {
    color: #475569;
    font-weight: 800;
}

.docs-peb-modelo-upload-card {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.docs-peb-lista {
    margin-top: 24px;
}

.alerta-docs-peb {
    margin-top: 18px;
}

.grade-docs-peb-upload {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.doc-peb-upload-card {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 14px;
}

.doc-peb-upload-topo {
    align-items: flex-start;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.doc-peb-upload-topo strong {
    color: #1f2937;
    font-size: 14px;
    line-height: 1.25;
}

.doc-peb-status {
    background: #fef3c7;
    border-radius: 999px;
    color: #92400e;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 900;
    padding: 4px 8px;
    text-transform: uppercase;
}

.doc-peb-status-enviado {
    background: #dcfce7;
    color: #166534;
}

.doc-peb-arquivo {
    background: #e0ecff;
    border-radius: 6px;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 900;
    padding: 8px 10px;
    text-align: center;
}

.doc-peb-upload-card small {
    color: #64748b;
    font-weight: 700;
}

.doc-peb-upload-card label {
    font-size: 12px;
    font-weight: 900;
    margin: 0;
}

.doc-peb-upload-card input[type="file"] {
    background: #fff7ed;
    border: 1px solid #9a3412;
    border-radius: 6px;
    color: #111827;
    font-size: 12px;
    max-width: 100%;
    padding: 8px;
}

.doc-peb-upload-card button {
    justify-self: center;
}

.doc-peb-botoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.doc-peb-botoes button {
    flex: 1 1 112px;
    min-width: 112px;
    width: auto;
}

.doc-peb-botoes .botao-excluir-doc-peb {
    background: linear-gradient(180deg, #ef4444 0%, #dc2626 50%, #991b1b 100%);
    border-color: #fca5a5;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(220, 38, 38, 0.26);
}

.doc-peb-botoes .botao-excluir-doc-peb:hover {
    border-color: #fecaca;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.5),
        0 16px 30px rgba(185, 28, 28, 0.32);
}

.lista-documentos {
    display: grid;
    gap: 10px;
}

.documento-item {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    color: #1f2933;
    display: grid;
    gap: 4px;
    grid-template-columns: 72px 1fr auto;
    padding: 14px 16px;
}

.documento-item:hover {
    background: #f8fafc;
    text-decoration: none;
}

.documento-tipo {
    background: #e0ecff;
    border-radius: 6px;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 800;
    padding: 6px 8px;
    text-align: center;
}

.documento-item small {
    color: #64748b;
}

.secao-graficos {
    margin-top: 28px;
}

.secao-licenciada {
    margin-top: 28px;
}

.secao-licenciada th:last-child {
    text-align: center;
}

.secao-licenciada .acao-outorgar-direcao {
    padding-top: 14px;
    text-align: center;
    vertical-align: middle;
}

.secao-licenciada .acao-outorgar-direcao .form-inline {
    justify-content: center;
    margin-top: 4px;
}

.cabecalho-secao {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cabecalho-secao h2 {
    margin: 0;
}

.filtro-graficos {
    align-items: end;
    display: grid;
    gap: 8px;
    grid-template-columns: 90px 180px 220px auto auto;
}

.filtro-graficos label {
    display: none;
}

.filtro-graficos input,
.filtro-graficos select {
    min-height: 40px;
    padding: 8px 10px;
}

.filtro-graficos button,
.filtro-graficos a {
    align-items: center;
    border-radius: 6px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
    min-height: 42px;
    padding: 0 12px;
    text-align: center;
    white-space: nowrap;
    width: 116px;
}

.filtro-graficos a {
    background: #e5e7eb;
    color: #1f2933;
}

.filtro-graficos a:hover {
    background: #cbd5e1;
    text-decoration: none;
}

.lista-graficos {
    display: grid;
    gap: 14px;
}

.lista-graficos-rolavel {
    max-height: min(440px, 58vh);
    overflow-y: auto;
    padding-right: 8px;
    scrollbar-gutter: stable;
}

.grafico-professor {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 16px;
}

.grafico-professor header {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.metricas-professor {
    align-items: flex-end;
    display: grid;
    justify-items: end;
}

.form-notificar-planejamento {
    margin: 0;
}

.grafico-professor header span,
.grafico-professor small {
    color: #64748b;
    font-weight: 700;
}

.botao-notificar-planejamento {
    background: linear-gradient(180deg, #f87171, #dc2626);
    border: 1px solid #b91c1c;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        0 8px 18px rgba(220, 38, 38, 0.26);
    color: #fff;
    justify-self: start;
    min-height: 38px;
    padding: 0 16px;
}

@media (min-width: 901px) {
    .botao-notificar-planejamento {
        font-size: 11px;
        padding-left: 4px;
        padding-right: 4px;
        white-space: normal;
    }
}

.botao-notificar-planejamento:hover {
    background: linear-gradient(180deg, #fb7185, #b91c1c);
    border-color: #fecaca;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.36),
        0 12px 24px rgba(185, 28, 28, 0.36);
    color: #fff;
    transform: translateY(-2px);
}

.botao-notificar-planejamento:focus-visible {
    outline: 3px solid rgba(248, 113, 113, 0.35);
    outline-offset: 3px;
}

.botao-notificar-planejamento:active {
    box-shadow: none;
    transform: translateY(0);
}

.status-advertencias-completo {
    background: #fee2e2;
    border: 1px solid #fca5a5;
    border-radius: 999px;
    color: #991b1b !important;
    font-size: 12px;
    font-weight: 800;
    padding: 6px 10px;
}

.historico-advertencias {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-left: 5px solid #dc2626;
    border-radius: 8px;
    display: grid;
    gap: 5px;
    padding: 10px 12px;
}

.historico-advertencias strong {
    color: #991b1b;
    font-size: 13px;
}

.historico-advertencias span {
    color: #7f1d1d;
    font-size: 12px;
    font-weight: 700;
}

.linha-advertencia-direcao {
    align-items: center;
    color: #7f1d1d;
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    font-weight: 700;
    gap: 6px;
}

.form-assinar-advertencia {
    display: inline-flex;
}

.form-assinar-advertencia .botao-acao {
    min-height: 28px;
    padding: 0 10px;
}

.acoes-assinatura-advertencia {
    margin-top: 12px;
}

.assinatura-recusada {
    color: #991b1b;
    display: block;
    font-style: normal;
    font-weight: 800;
    margin-bottom: 4px;
}

.link-documento-notificacao {
    background: #fff;
    border: 1px solid #fca5a5;
    border-radius: 999px;
    color: #b91c1c;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    margin-left: 8px;
    padding: 4px 8px;
}

.link-documento-notificacao:hover {
    background: #b91c1c;
    color: #fff;
    text-decoration: none;
}

.documento-notificacao {
    line-height: 1.7;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.historico-professor-documento.documento-notificacao {
    border-radius: 6px;
    padding: 30px;
}

.documento-notificacao p {
    overflow-wrap: anywhere;
    text-align: justify;
    word-break: break-word;
}

.documento-notificacao h1 {
    text-transform: uppercase;
}

.titulo-notificacao-aluno {
    font-size: 20px !important;
}

.ficha-identificacao-notificacao-aluno th,
.ficha-identificacao-notificacao-aluno td {
    font-size: 14px;
    overflow-wrap: anywhere;
    padding: 5px 6px;
    word-break: break-word;
}

.documento-local-data {
    text-align: right !important;
}

.documento-notificacao-registro {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-left: 5px solid #1d4ed8;
    border-radius: 6px;
    font-weight: 700;
    margin: 10px 0 14px;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: 10px 12px;
    white-space: normal;
    word-break: break-word;
}

.documento-assinaturas {
    display: grid;
    gap: 24px;
    grid-template-columns: 1fr 1fr;
    margin-top: 42px;
}

.documento-assinaturas.documento-assinaturas-supervisor {
    grid-template-columns: repeat(3, 1fr);
}

.documento-assinaturas.documento-assinaturas-supervisor.documento-assinaturas-duas {
    grid-template-columns: repeat(2, 1fr);
}

.documento-assinaturas .historico-assinatura {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    margin-top: 0;
    min-height: 86px;
    text-align: center;
}

.documento-assinaturas small {
    color: #334155;
    display: block;
    font-size: 12.5px;
    line-height: 1.12;
    margin-top: 2px;
    max-width: 100%;
    min-height: 0;
    overflow-wrap: normal;
    text-align: center;
    white-space: normal;
    word-break: normal;
}

.documento-assinaturas .historico-assinatura strong {
    display: block;
    font-size: 13.5px;
    line-height: 1.08;
    margin-top: 2px;
    text-align: center;
}

.documento-assinaturas .historico-assinatura > span {
    border-top: 0;
    margin-bottom: 0;
    min-height: 0;
}

.documento-assinaturas .assinatura-rotulo,
.documento-assinaturas .assinatura-nome-unica {
    display: block;
    margin: 0;
}

.documento-assinaturas .assinatura-rotulo {
    margin-top: 2px;
    margin-bottom: 1px;
}

.documento-assinaturas .assinatura-nome-unica {
    font-size: 11px;
    line-height: 1.12;
    margin-bottom: 2px;
    overflow-wrap: normal;
    white-space: nowrap;
    word-break: normal;
}

.documento-assinaturas .assinatura-equipe-pedagogica {
    gap: 0;
}

.documento-assinaturas .assinatura-equipe-pedagogica strong {
    margin-top: 0;
}

.documento-assinaturas .assinatura-equipe-pedagogica small {
    line-height: 1.1;
    margin-top: 2px;
}

.documento-assinaturas .assinatura-direcao-notificacao small {
    margin-top: 1px;
}

.documento-assinaturas .assinatura-direcao-notificacao .assinatura-rotulo {
    margin-top: 1px;
}

.documento-assinaturas .assinatura-equipe-pedagogica .selo-aprovado-assinatura {
    transform: translateY(-5px);
    margin-bottom: 1px;
}

.documento-assinaturas .assinatura-equipe-pedagogica,
.documento-assinaturas .assinatura-equipe-pedagogica *,
.documento-assinaturas .assinatura-equipe-pedagogica::before,
.documento-assinaturas .assinatura-equipe-pedagogica::after {
    border-top: 0 !important;
    box-shadow: none !important;
}

.selo-aprovado-assinatura {
    color: #166534;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.8px;
    line-height: 1.05;
    margin-bottom: 2px;
    min-height: 0;
    text-transform: uppercase;
}


.barra-progresso {
    background: #e5e7eb;
    border-radius: 999px;
    height: 18px;
    overflow: hidden;
}

.barra-progresso span {
    background: linear-gradient(90deg, #2563eb, #22c55e);
    display: block;
    height: 100%;
}

.detalhe-planejamentos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.detalhe-planejamentos span {
    background: #f1f5f9;
    border: 1px solid #dbe3ea;
    border-radius: 999px;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 10px;
}

.folha {
    background: transparent;
    margin: 24px auto;
    max-width: 900px;
    padding: 18px;
}

.folha-exportacao {
    display: grid;
    gap: 24px;
}

.botao-voltar-exportacao {
    background: #e5e7eb;
    border-radius: 6px;
    color: #1f2937;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    justify-self: start;
    min-height: 38px;
    padding: 0 14px;
}

.botao-voltar-exportacao:hover {
    background: #cbd5e1;
    text-decoration: none;
}

.ficha-planejamento-exportacao {
    break-after: page;
    page-break-after: always;
}

.ficha-planejamento-exportacao:last-child {
    break-after: auto;
    page-break-after: auto;
}

.folha-historico-professor {
    max-width: 820px;
}

.historico-professor-documento {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    padding: 36px;
}

.historico-professor-documento .ficha-cabecalho {
    gap: 12px;
    grid-template-columns: 118px 1fr 132px;
    padding: 8px 12px;
}

.historico-professor-documento .ficha-cabecalho img {
    max-height: 72px;
    max-width: 118px;
}

.historico-professor-documento .ficha-cabecalho .ficha-brasao {
    max-height: 118px;
    max-width: 118px;
}

.historico-professor-documento .ficha-cabecalho strong {
    font-size: 15px;
}

.historico-professor-documento .ficha-cabecalho span {
    font-size: 11px;
}

.historico-professor-documento h1 {
    border-bottom: 2px solid #1f2937;
    font-size: 24px;
    margin: 0 0 26px;
    padding-bottom: 12px;
    text-align: center;
}

.historico-professor-documento h2 {
    font-size: 17px;
    margin: 24px 0 8px;
}

.historico-professor-documento p,
.historico-professor-documento li {
    font-size: 16px;
    line-height: 1.65;
}

.historico-professor-documento ul {
    margin: 8px 0 0;
    padding-left: 22px;
}

.historico-assinatura {
    margin: 54px auto 0;
    max-width: 360px;
    text-align: center;
}

.historico-assinatura span {
    border-top: 1px solid #111827;
    display: block;
    margin-bottom: 8px;
}

.botao-imprimir {
    background: linear-gradient(180deg, #60a5fa, #2563eb);
    border: 1px solid #1d4ed8;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.24);
    color: #fff;
    cursor: pointer;
    float: none;
    font-size: 14px;
    font-weight: 700;
    min-height: 40px;
    padding: 0 18px;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        color 0.18s ease,
        transform 0.18s ease;
}

.botao-imprimir:hover {
    background: linear-gradient(180deg, #86efac, #22c55e);
    border-color: #15803d;
    box-shadow: 0 10px 22px rgba(22, 163, 74, 0.28);
    color: #052e16;
    transform: translateY(-1px);
}

.botao-imprimir:active {
    box-shadow: none;
    transform: translateY(0);
}

.impressao .folha > .botao-imprimir {
    align-items: center;
    display: flex;
    float: none;
    justify-content: center;
    margin: 0 0 14px 0;
    text-decoration: none;
    width: fit-content;
}

.impressao > .botao-imprimir {
    display: block;
    margin: 0 0 14px 0;
    width: fit-content;
}

.impressao .folha-exportacao > .botao-imprimir {
    justify-self: start;
}

.ficha-planejamento {
    background: #fff;
    clear: both;
    color: #111827;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    padding-top: 16px;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
}

.impressao .folha > .ficha-planejamento {
    background: #fff;
    border: 1px solid #888;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
    margin: 0 auto 18px;
    padding: 42px 38px 32px;
}

.impressao .folha > .historico-professor-documento {
    background: #fff;
    border-color: #888;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
    margin: 0 auto 18px;
}

.ficha-cabecalho {
    align-items: center;
    border: 1px solid #111827;
    display: grid;
    gap: 16px;
    grid-template-columns: 175px 1fr 170px;
    margin-bottom: 10px;
    padding: 10px 14px;
    text-align: center;
}

.ficha-cabecalho img {
    display: block;
    max-height: 78px;
    max-width: 150px;
    object-fit: contain;
    width: 100%;
}

.ficha-cabecalho .ficha-brasao {
    justify-self: center;
    max-height: 168px;
    max-width: 176px;
}

.ficha-logo-jb {
    justify-self: center;
}

.ficha-cabecalho strong {
    display: block;
    font-size: 18px;
    line-height: 1.2;
    text-transform: uppercase;
}

.ficha-cabecalho span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    margin-top: 2px;
}

.ficha-titulo {
    background: #d8dde5;
    border: 1px solid #111827;
    border-bottom: 0;
    font-size: 16px;
    margin: 0;
    padding: 7px 10px;
    text-align: center;
    text-transform: uppercase;
}

.ficha-tabela {
    border: 1px solid #111827;
    border-collapse: collapse;
    box-shadow: none;
    margin: 0 0 10px;
    overflow: visible;
    width: 100%;
}

.ficha-tabela th,
.ficha-tabela td {
    border: 1px solid #111827;
    color: #111827;
    padding: 7px 8px;
    vertical-align: top;
}

.ficha-tabela th {
    background: #d8dde5 !important;
    font-weight: 800;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
    text-align: left;
}

.ficha-identificacao th {
    width: 110px;
}

.ficha-identificacao td {
    min-width: 110px;
}

.ficha-prova {
    page-break-after: auto;
    max-width: 100%;
    overflow: hidden;
}

.impressao-prova .ficha-identificacao {
    margin-top: 10px;
}

.titulo-prova-identificacao {
    font-size: 16px;
    font-weight: 900;
    text-align: center !important;
    text-transform: uppercase;
}

.impressao-prova .ficha-cabecalho {
    grid-template-columns: 118px minmax(0, 1fr) 118px;
}

.impressao-prova .ficha-cabecalho img {
    height: 82px;
    max-width: 112px;
}

.impressao-prova .ficha-cabecalho strong,
.impressao-prova .ficha-cabecalho span {
    font-size: 12px;
    line-height: 1.15;
    overflow-wrap: normal;
    white-space: nowrap;
}

.campo-assinatura-prova {
    height: 34px;
}

.lista-prova-impressao {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 14px 0 0;
    padding-left: 24px;
    width: 100%;
}

.lista-prova-impressao li {
    break-inside: avoid;
    grid-column: 1 / -1;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    page-break-inside: avoid;
    word-break: break-word;
}

.lista-prova-impressao li.questao-objetiva-compacto {
    grid-column: auto;
    margin-bottom: -6px;
}

.questao-objetiva-compacto .cabecalho-questao-prova {
    align-items: flex-start;
    display: grid;
    gap: 2px;
}

.questao-objetiva-compacto .cabecalho-questao-prova strong,
.questao-objetiva-compacto .cabecalho-questao-prova span {
    font-size: 12px;
}

.lista-prova-impressao li.questao-objetiva-maior {
    padding-bottom: 18px;
}

.lista-prova-impressao li.questao-objetiva-amplo {
    padding-bottom: 34px;
}

.cabecalho-questao-prova {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 6px;
    max-width: 100%;
    min-width: 0;
}

.cabecalho-questao-prova strong,
.cabecalho-questao-prova span {
    font-size: 13px;
}

.lista-prova-impressao p {
    font-size: 14px;
    line-height: 1.35;
    margin: 0 0 8px;
}

.enunciado-prova {
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: justify;
    text-justify: inter-word;
    white-space: normal;
    word-break: break-word;
}

.corpo-questao-prova-com-figura {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) minmax(185px, 42%);
    margin-bottom: 8px;
}

.corpo-questao-prova-com-figura .enunciado-prova {
    margin-bottom: 0;
}

.alternativas-prova {
    display: grid;
    gap: 6px;
    margin-top: 8px;
    max-width: 100%;
    min-width: 0;
}

.questao-objetiva-compacto .alternativas-prova {
    gap: 3px;
    margin-top: 4px;
}

.questao-objetiva-compacto p {
    font-size: 13px;
    line-height: 1.25;
    margin-bottom: 4px;
}

.alternativas-prova span {
    font-size: 14px;
    line-height: 1.3;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
    word-break: break-word;
}

.resposta-discursiva-prova {
    display: grid;
    gap: 9px;
    margin-top: 12px;
}

.linha-resposta-prova {
    border-bottom: 1px solid #111827;
    height: 20px;
}

.campo-texto {
    line-height: 1.45;
}

.assinaturas-planejamento {
    align-items: flex-end;
    background: #fff !important;
    display: flex;
    gap: 48px;
    margin: 58px auto 0;
    max-width: 720px;
    padding-top: 8px;
    width: 100%;
}

.assinaturas-planejamento.assinaturas-aclta-dois-turnos {
    column-gap: 28px;
    flex-wrap: wrap;
    max-width: 760px;
    row-gap: 22px;
}

.assinaturas-planejamento.assinaturas-aclta-dois-turnos .assinatura-professor {
    flex: 0 1 calc((100% - 56px) / 3);
}

.assinaturas-planejamento.assinaturas-aclta-dois-turnos .assinatura-direcao-aclta {
    flex-basis: 240px;
    margin-left: auto;
    margin-right: auto;
}

.assinatura-professor {
    background: #fff !important;
    flex: 1 1 0;
    padding-top: 18px;
    text-align: center;
}

.assinatura-professor span {
    border-top: 1px solid #111827;
    display: block;
    margin-bottom: 6px;
}

.assinatura-aprovada {
    color: #15803d;
    display: block;
    font-style: normal;
    font-weight: 800;
    margin-bottom: 4px;
}

.assinatura-professor strong {
    font-size: 12px;
    text-transform: uppercase;
}

img,
video,
iframe {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

.topo {
    flex-wrap: nowrap;
    gap: 10px;
}

.topo nav {
    align-items: center;
    flex-wrap: nowrap;
    justify-content: flex-end;
}

.container,
.container-notificacao-aluno {
    width: min(100%, 1100px);
}

.formulario,
.info-box,
.card-indicador,
.docs-peb-card,
.jogo-card,
.card-pet,
.mensagem-card,
.notificacao-direcao-card,
.mensagem-direcao-card {
    min-width: 0;
}

.linha > *,
.filtros-planejamento > *,
.grade-whatsapp-direcao > *,
.pet-grid > *,
.painel-professor-acoes > *,
.painel-aluno-acoes > *,
.grade-jogos > *,
.grade-acoes > * {
    min-width: 0;
}

table {
    max-width: 100%;
}

th,
td {
    overflow-wrap: anywhere;
}

.botao-acao,
.botao-form-link,
.botoes-formulario button,
.topo nav a {
    max-width: 100%;
}

@media (max-width: 1180px) {
    .container,
    .container-notificacao-aluno {
        padding-left: 24px;
        padding-right: 24px;
        width: 100%;
    }

    .topo-dashboard-professor,
    .topo-dashboard-aluno {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
        max-width: calc(100vw - 32px);
        width: calc(100vw - 32px);
    }

    .grade-jogos {
        grid-template-columns: repeat(2, minmax(320px, 1fr));
    }

    .filtros-planejamento,
    .filtros-notificacoes-alunos-supervisor {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }
}

@media (max-width: 980px) {
    .topo {
        align-items: flex-start;
        padding: 14px 20px 22px;
    }

    .topo nav {
        justify-content: flex-start;
        width: 100%;
    }

    .perfil-inspecao .topo {
        align-items: flex-start;
    }

    .perfil-inspecao .topo nav {
        justify-content: flex-start;
        width: 100%;
    }

    .marca-sre-header {
        width: 100%;
    }

    .topo-dashboard-professor,
    .topo-dashboard-aluno,
    .topo-dashboard-supervisor,
    .pet-grid,
    .grade-whatsapp-direcao,
    .linha,
    .grade-opcoes-planejamento,
    .filtros-planejamento,
    .filtros-notificacoes-alunos-supervisor,
    .filtros-supervisao,
    .filtros-cidade-inspecao,
    .filtro-alunos,
    .filtro-professores-cadastrados,
    .filtro-professores-painel {
        grid-template-columns: 1fr;
    }

    .topo-dashboard-professor,
    .topo-dashboard-aluno {
        margin-left: 0;
        max-width: 100%;
        transform: none;
        width: 100%;
    }

    .painel-aluno-acoes {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
        max-width: 100%;
    }

    .painel-professor-acoes {
        max-width: 100%;
    }

    .linha-simulado-identificacao,
    .linha-simulado-prova,
    .grade-alternativas-simulado,
    .filtros-simulado-coordenador {
        grid-template-columns: 1fr;
    }

    .acoes-provas-simulado {
        grid-template-columns: 1fr;
    }

    .form-status-simulado {
        align-items: stretch;
        flex-direction: column;
    }

    .form-status-simulado select,
    .form-status-simulado .botao-acao {
        width: 100%;
    }

    .filtros-acoes,
    .filtro-alunos .filtros-acoes,
    .filtro-professores-cadastrados .filtros-acoes,
    .filtro-professores-painel .filtros-acoes,
    .filtros-cidade-inspecao .filtros-acoes {
        grid-column: auto;
        justify-content: flex-start;
        padding-left: 0;
    }

    .tabela-rolagem,
    .tabela-professores-cadastrados,
    .tabela-professores-painel-supervisor,
    .tabela-alunos-cadastrados,
    .tabela-supervisores-inspetor,
    .tabela-planejamentos-scroll,
    .tabela-meus-planejamentos-scroll,
    .tabela-rolagem-planejamentos-inspetor {
        max-width: 100%;
        overflow-x: auto;
        transform: none;
        width: 100%;
    }

    .tabela-supervisores-inspetor {
        max-height: none;
        overflow-x: hidden;
        overflow-x: clip;
        overflow-y: visible;
    }

    .tabela-alunos-cadastrados {
        overflow-x: hidden;
    }

    .tabela-supervisores-inspetor-rolavel {
        max-height: 70vh;
        max-height: 70svh;
        overflow-x: hidden;
        overflow-x: clip;
        overflow-y: auto;
        padding-right: 0;
    }

    .tabela-supervisores-inspetor table {
        min-width: 0;
        width: 100%;
    }

    .tabela-supervisores-inspetor td:nth-child(6) {
        text-align: left;
    }

    .tabela-supervisores-inspetor .janela-mensagem-planejamento summary {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
    }
}

@media (max-width: 760px) {
    .login-page {
        align-content: start;
        background-attachment: scroll;
        gap: 14px;
        overflow-y: auto;
        padding: 14px 10px;
    }

    .login-box {
        border-radius: 8px;
        box-shadow:
            0 18px 44px rgba(15, 23, 42, 0.36),
            0 0 0 4px rgba(255, 255, 255, 0.14),
            0 0 24px rgba(239, 0, 18, 0.22);
        max-width: 400px;
        padding: 22px 20px 24px;
        width: min(100%, 400px);
    }

    .login-box h1 {
        font-size: 34px;
        margin-bottom: 6px;
    }

    .login-box p {
        font-size: 15px;
    }

    .login-box label {
        font-size: 15px;
    }

    .login-box input,
    .login-box select {
        font-size: 15px;
        min-height: 48px;
    }

    .login-box button,
    .login-box .botoes-formulario .botao-login-link {
        font-size: 14px;
        min-height: 48px;
    }

    .suporte-whatsapp-login {
        bottom: 12px;
        height: 46px;
        right: 14px;
        width: 46px;
    }

    .suporte-whatsapp-login svg {
        height: 27px;
        width: 27px;
    }

    .login-box form {
        gap: 11px;
    }

    body.recuperar-senha-admin-page,
    body.recuperar-senha-usuario-page {
        align-content: center !important;
        min-height: 100vh;
        min-height: 100svh;
    }

    body.recuperar-senha-admin-page .login-box,
    body.recuperar-senha-usuario-page .login-box {
        align-self: center;
        grid-row: 1 !important;
        margin-bottom: auto;
        margin-top: auto;
    }

    .pagina-lgpd {
        padding: 14px 10px;
    }

    .lgpd-box {
        padding: 18px 16px;
    }

    .lgpd-cabecalho {
        grid-template-columns: 1fr;
    }

    .lgpd-cabecalho h1,
    .lgpd-cabecalho p,
    .lgpd-cabecalho .botao-form-link {
        grid-column: 1;
        grid-row: auto;
    }

    .lgpd-cabecalho .botao-form-link,
    .botao-whatsapp-lgpd {
        max-width: none;
        width: 100%;
    }

    .topo,
    .topo nav {
        align-items: flex-start;
        flex-direction: column;
    }

    .perfil-inspecao .topo {
        gap: 12px;
    }

    .marca-sre-header {
        align-items: center;
        gap: 12px;
        justify-content: flex-start;
        position: relative;
        text-align: left;
    }

    .perfil-inspecao .logo-header {
        transform: none;
    }

    .perfil-inspecao .logo-header img {
        height: 72px;
        max-width: 180px;
    }

    .perfil-inspecao .texto-educacao-header {
        font-size: 13px;
    }

    .perfil-inspecao .sre-header {
        font-size: 28px;
        left: 57%;
        max-width: calc(100vw - 138px);
        overflow: hidden;
        position: absolute;
        text-align: center;
        text-overflow: ellipsis;
        transform: translateX(-50%);
        white-space: nowrap;
    }

    .menu-hamburguer-opcoes {
        left: auto;
        max-width: calc(100vw - 32px);
        min-width: 0;
        right: 0;
        width: 260px;
    }

    .topo nav .menu-hamburguer-opcoes a {
        font-size: 13px;
        min-height: 34px;
        padding: 0 10px;
    }

    .logo-header img {
        height: 54px;
        max-width: 215px;
    }

    .logo-header-nome {
        font-size: 15px;
        max-width: 160px;
    }

    .marca-mg-login {
        height: 96px;
    }

    .marca-educacao-login {
        width: 112px;
    }

    .marca-educacao-login img {
        height: 96px;
    }

    .marca-educacao-login strong {
        font-size: 15px;
    }

    .frase-login {
        background: linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.82) 0%,
            rgba(236, 248, 255, 0.94) 50%,
            rgba(186, 230, 253, 0.78) 100%
        );
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
        font-size: 20px;
        max-width: 350px;
        padding: 0;
        text-shadow:
            0 2px 5px rgba(15, 23, 42, 0.6),
            0 0 10px rgba(255, 255, 255, 0.14);
        transform: none;
    }

    .container {
        padding: 18px 14px;
    }

    h1 {
        font-size: 24px;
        line-height: 1.2;
    }

    .topo {
        padding-left: 14px;
        padding-right: 14px;
    }

    body:not(.impressao) {
        font-size: 14px;
    }

    body:not(.impressao) label,
    body:not(.impressao) legend,
    body:not(.impressao) .filtros-planejamento label {
        font-size: 14px;
        line-height: 1.25;
    }

    body:not(.impressao) input,
    body:not(.impressao) select,
    body:not(.impressao) textarea {
        font-size: 14px;
        line-height: 1.25;
        min-height: 46px;
        padding: 12px 14px;
    }

    body:not(.impressao) input[type="checkbox"],
    body:not(.impressao) input[type="radio"] {
        flex: 0 0 15px;
        height: 15px;
        margin: 0;
        max-height: 15px;
        max-width: 15px;
        min-height: 15px;
        min-width: 15px;
        padding: 0;
        width: 15px;
    }

    body:not(.impressao) select {
        padding-right: 38px;
    }

    body:not(.impressao) textarea {
        min-height: 120px;
    }

    body:not(.impressao) .botoes-formulario button,
    body:not(.impressao) .botoes-formulario .botao-form-link,
    body:not(.impressao) .filtros-acoes button,
    body:not(.impressao) .filtros-acoes a,
    body:not(.impressao) .botao-acao {
        font-size: 13px;
        min-height: 42px;
    }

    body:not(.impressao) .topo nav a {
        font-size: 15px;
    }

    body:not(.impressao) .somente-desktop-provas {
        display: none !important;
    }

    .pagina-criar-prova .aviso-provas-mobile {
        display: block;
    }

    .pagina-criar-prova .formulario-prova,
    .pagina-criar-prova .titulo-provas-salvas,
    .pagina-criar-prova .tabela-provas-salvas {
        display: none;
    }

    body:not(.impressao) .menu-hamburguer summary {
        font-size: 19px;
        font-weight: 800;
        height: 38px;
        min-height: 38px;
        padding: 0 12px;
    }

    body:not(.impressao) fieldset {
        gap: 5px;
        padding: 10px;
    }

    body:not(.impressao) .check {
        gap: 6px;
        line-height: 1.2;
        min-height: 26px;
    }

    body:not(.impressao) .grade-checks-conselho,
    body:not(.impressao) .grade-checks-notificacao,
    body:not(.impressao) .grade-opcoes-planejamento {
        gap: 4px 6px;
    }

    .topo nav a,
    .menu-hamburguer summary {
        height: 38px;
        min-height: 38px;
    }

    .topo-dashboard-supervisor {
        grid-template-columns: 1fr;
    }

    .topo-dashboard-professor,
    .topo-dashboard-aluno {
        display: block;
        margin-left: 0;
        max-width: none;
        transform: none;
        width: auto;
    }

    .topo-dashboard-professor .calendario-dashboard-perfil,
    .topo-dashboard-aluno .calendario-dashboard-perfil {
        margin: 18px 0 6px auto;
        position: static;
    }

    .modulo-rfid-dashboard {
        align-items: stretch;
        flex-direction: column;
    }

    .calendario-modal {
        padding: 12px;
    }

    .linha {
        grid-template-columns: 1fr;
    }

    .grade-opcoes-planejamento {
        grid-template-columns: 1fr;
    }

    .grade-whatsapp-direcao {
        grid-template-columns: 1fr;
    }

    .pet-grid {
        grid-template-columns: 1fr;
    }

    .filtros-planejamento {
        grid-template-columns: 1fr;
    }

    .campo-periodo {
        grid-column: auto;
        max-width: 100%;
        width: 100%;
    }

    .periodo-duplo {
        gap: 8px;
        grid-template-columns: 1fr;
    }

    .periodo-duplo input[type="date"] {
        height: 46px;
        max-height: 46px;
        max-width: 100%;
        min-width: 0;
        padding: 12px 14px;
        width: 100%;
    }

    .filtros-acoes {
        align-items: stretch;
        flex-direction: column;
        grid-column: auto;
    }

    table {
        display: block;
        overflow-x: auto;
    }

    .tabela-atestados-aluno {
        display: table;
        min-width: 0;
        table-layout: fixed;
        width: 100%;
    }

    .tabela-atestados-aluno-wrapper {
        overflow-x: hidden;
    }

    .tabela-atestados-aluno-rolavel {
        max-height: 220px;
        overflow-y: auto;
    }

    .tabela-atestados-aluno th:nth-child(1),
    .tabela-atestados-aluno td:nth-child(1) {
        overflow: visible;
        text-overflow: clip;
        width: 92px;
    }

    .tabela-atestados-aluno th:nth-child(3),
    .tabela-atestados-aluno td:nth-child(3) {
        width: 112px;
    }

    th,
    td {
        padding: 10px;
    }

    .botoes-formulario,
    .filtros-acoes,
    .acoes-planejamento {
        align-items: stretch;
    }

    .botoes-formulario button,
    .botoes-formulario .botao-form-link {
        width: 100%;
    }

    .perfil-direcao-notificacoes .acoes-notificacao-lista {
        margin-left: 0;
        max-width: none;
        width: 100%;
    }

    .perfil-direcao-notificacoes .acoes-notificacao-lista .botao-acao,
    .perfil-direcao-notificacoes .acoes-notificacao-lista .form-inline {
        min-width: 0;
        width: 100%;
    }

    .filtros-acoes button,
    .filtros-acoes a {
        width: 100%;
    }

    .lista-mensagens-rolavel,
    .lista-sugestoes-direcao.lista-mensagens-rolavel {
        max-height: 58vh;
        padding: 10px;
    }

    .documento-item {
        grid-template-columns: 1fr;
    }

    .painel-professor-acoes {
        grid-template-columns: 1fr;
        max-width: none;
    }

    .grade-jogos {
        grid-template-columns: 1fr;
    }

    .campo-jogo-linha {
        grid-template-columns: 1fr;
    }

    .opcoes-jogo,
    .controles-jogo,
    .frase-banco-jogo {
        grid-template-columns: 1fr;
    }

    .controles-cobrinha {
        justify-content: center;
    }

    .forca-letras {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .cabecalho-secao,
    .grafico-professor header {
        align-items: stretch;
        flex-direction: column;
    }

    .filtro-graficos {
        grid-template-columns: 1fr;
    }

    .filtro-graficos button,
    .filtro-graficos a {
        width: 100%;
    }

    .lista-graficos-rolavel {
        max-height: min(360px, 52vh);
        padding-right: 4px;
    }

    .container-notificacao-aluno .grade-checks-notificacao {
        gap: 4px;
        grid-template-columns: 1fr;
    }

    .container-notificacao-aluno .formulario-notificacao-aluno fieldset {
        gap: 6px;
        padding: 10px;
    }

    .container-notificacao-aluno .grade-checks-notificacao .check,
    .container-notificacao-aluno .check-conduta-infracional {
        align-items: flex-start;
        border-radius: 8px;
        box-sizing: border-box;
        gap: 5px;
        line-height: 1.25;
        min-height: 30px;
        padding: 5px 8px;
        width: 100%;
    }

    .container-notificacao-aluno .grade-checks-notificacao .check input,
    .container-notificacao-aluno .check-conduta-infracional input {
        flex: 0 0 16px;
        height: 16px;
        margin-top: 1px;
        min-height: 16px;
        width: 16px;
    }

    .container-notificacao-aluno .botoes-notificacao-aluno {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: 150px;
        justify-items: stretch;
        max-width: 150px;
        width: 150px;
    }

    .container-notificacao-aluno .botoes-notificacao-aluno button,
    .container-notificacao-aluno .botoes-notificacao-aluno .botao-form-link {
        font-size: 13px;
        min-height: 38px;
        min-width: 0;
        padding: 8px 12px;
        width: 100%;
    }

    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno,
    .container-notificacao-aluno .tabela-mobile-card .acoes-planejamento.acoes-notificacao-aluno {
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
        justify-content: stretch;
        margin-left: 0;
        margin-right: 0;
        max-width: 180px;
        width: 180px;
    }

    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .form-inline,
    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao {
        font-size: 13px;
        min-height: 42px;
        min-width: 0;
        padding-left: 10px;
        padding-right: 10px;
        width: 100%;
    }

    .tabela-rolagem-planejamentos-supervisor {
        margin-left: 0;
        margin-right: 0;
        max-height: none;
        overflow: visible;
        width: 100%;
    }

    .tabela-rolagem-todos-planejamentos-supervisor {
        max-height: 620px;
        overflow-y: auto;
        padding-right: 4px;
    }

    .tabela-planejamentos-supervisor,
    .tabela-planejamentos-supervisor tbody,
    .tabela-planejamentos-supervisor tr,
    .tabela-planejamentos-supervisor td {
        display: block;
        overflow: visible;
        width: 100%;
    }

    .tabela-planejamentos-supervisor {
        table-layout: auto;
    }

    .tabela-planejamentos-supervisor thead {
        display: none;
    }

    .tabela-planejamentos-supervisor tbody {
        display: grid;
        gap: 12px;
    }

    .tabela-planejamentos-supervisor tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        padding: 12px;
    }

    .tabela-planejamentos-supervisor td,
    .tabela-planejamentos-supervisor td:nth-child(1),
    .tabela-planejamentos-supervisor td:nth-child(2),
    .tabela-planejamentos-supervisor td:nth-child(4),
    .tabela-planejamentos-supervisor td:nth-child(5),
    .tabela-planejamentos-supervisor td:nth-child(6) {
        border-bottom: 1px solid #edf2f7;
        padding: 8px 0;
        white-space: normal;
        width: 100%;
    }

    .tabela-planejamentos-supervisor td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
    }

    .tabela-planejamentos-supervisor td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    .tabela-planejamentos-supervisor td:last-child {
        border-bottom: 0;
    }

    .tabela-planejamentos-supervisor td[colspan] {
        border-bottom: 0;
        text-align: center;
    }

    .tabela-planejamentos-supervisor .status-aprovado,
    .tabela-planejamentos-supervisor .status-pendente,
    .tabela-planejamentos-supervisor .status-aprovado-por {
        display: block;
        margin-bottom: 5px;
        white-space: normal;
    }

    .tabela-planejamentos-supervisor .acoes-planejamento-supervisor {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .tabela-planejamentos-supervisor .acoes-planejamento-supervisor .form-inline,
    .tabela-planejamentos-supervisor .acoes-planejamento-supervisor .botao-acao,
    .tabela-planejamentos-supervisor .acoes-planejamento-supervisor .janela-mensagem-planejamento,
    .tabela-planejamentos-supervisor .acoes-planejamento-supervisor .janela-mensagem-planejamento summary {
        min-height: 38px;
        min-width: 0;
        width: 100%;
    }

    .tabela-planejamentos-supervisor .janela-mensagem-planejamento form {
        min-width: 0;
        width: 100%;
    }

    .tabela-planejamentos-supervisor .janela-mensagem-planejamento[open]::before {
        background: rgba(15, 23, 42, 0.32);
        content: "";
        inset: 0;
        position: fixed;
        z-index: 12990;
    }

    .tabela-planejamentos-supervisor .janela-mensagem-planejamento[open] form {
        left: 50%;
        max-width: calc(100vw - 24px);
        min-width: 0;
        overflow: visible;
        position: fixed;
        right: auto;
        top: 50%;
        transform: translate(-50%, -50%);
        width: min(520px, calc(100vw - 24px));
        z-index: 13000;
    }

    .tabela-planejamentos-supervisor .janela-mensagem-planejamento[open] textarea {
        min-height: 150px;
    }

    body:not(.impressao) .tabela-mobile-card {
        background: transparent;
        border-collapse: separate;
        display: block;
        overflow: visible;
        width: 100%;
    }

    body:not(.impressao) .tabela-mobile-card thead {
        display: none;
    }

    body:not(.impressao) .tabela-mobile-card tbody {
        display: grid;
        gap: 12px;
        width: 100%;
    }

    body:not(.impressao) .tabela-mobile-card tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        display: block;
        overflow: hidden;
        padding: 12px;
        width: 100%;
    }

    body:not(.impressao) .tabela-mobile-card td {
        border-bottom: 1px solid #edf2f7;
        display: block;
        overflow: visible;
        padding: 8px 0;
        width: 100%;
    }

    body:not(.impressao) .tabela-mobile-card td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
    }

    body:not(.impressao) .tabela-mobile-card td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    body:not(.impressao) .tabela-mobile-card td:last-child {
        border-bottom: 0;
    }

    body:not(.impressao) .tabela-mobile-card td[colspan] {
        border-bottom: 0;
        display: block;
        text-align: center;
    }

    body:not(.impressao) .tabela-mobile-card .acoes-planejamento,
    body:not(.impressao) .tabela-mobile-card .acoes-notificacao-lista,
    body:not(.impressao) .tabela-mobile-card .acoes-professor,
    body:not(.impressao) .tabela-mobile-card .acoes-conselho-salvos,
    body:not(.impressao) .tabela-mobile-card .acoes-assinatura-advertencia,
    body:not(.impressao) .tabela-mobile-card td > div[class*="acoes"],
    body:not(.impressao) .tabela-mobile-card td[class*="acao"] {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        white-space: normal;
    }

    body:not(.impressao) .tabela-mobile-card .botao-acao,
    body:not(.impressao) .tabela-mobile-card .botao-form-link,
    body:not(.impressao) .tabela-mobile-card button {
        min-height: 38px;
        min-width: 0;
        width: 100%;
    }

    .formulario-conselho-classe .botoes-conselho-classe {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
    }

    .formulario-conselho-classe .botoes-conselho-classe button,
    .formulario-conselho-classe .botoes-conselho-classe .botao-form-link {
        max-width: none;
        min-height: 42px;
        width: 100%;
    }

    .filtro-professores-painel {
        justify-content: stretch;
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
        width: 100%;
    }

    .filtro-professores-painel .filtros-acoes {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .filtro-professores-painel .filtros-acoes button,
    .filtro-professores-painel .filtros-acoes a {
        width: 100%;
    }

    .tabela-professores-painel-supervisor {
        margin-left: 0;
        max-height: none;
        max-width: 100%;
        overflow: visible;
        transform: none;
        width: 100%;
    }

    .tabela-professores-painel-supervisor table,
    .tabela-professores-painel-supervisor tbody,
    .tabela-professores-painel-supervisor tr,
    .tabela-professores-painel-supervisor td {
        display: block;
        min-width: 0;
        overflow: visible;
        width: 100%;
    }

    .tabela-professores-painel-supervisor table,
    .tabela-professores-inativos-supervisor table {
        min-width: 0;
        table-layout: auto;
    }

    .tabela-professores-painel-supervisor thead {
        display: none;
    }

    .tabela-professores-painel-supervisor tbody {
        display: grid;
        gap: 12px;
    }

    .tabela-professores-painel-supervisor tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        padding: 12px;
    }

    .tabela-professores-painel-supervisor td,
    .tabela-professores-painel-supervisor td:nth-child(1),
    .tabela-professores-painel-supervisor td:nth-child(2),
    .tabela-professores-painel-supervisor td:nth-child(3),
    .tabela-professores-painel-supervisor td:nth-child(4),
    .tabela-professores-inativos-supervisor td:nth-child(4) {
        border-bottom: 1px solid #edf2f7;
        min-width: 0;
        padding: 8px 0;
        text-align: left;
        white-space: normal;
        width: 100%;
    }

    .tabela-professores-painel-supervisor td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
    }

    .tabela-professores-painel-supervisor td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    .tabela-professores-painel-supervisor td:last-child {
        border-bottom: 0;
    }

    .tabela-professores-painel-supervisor td[colspan] {
        border-bottom: 0;
        text-align: center;
    }

    .tabela-professores-cadastrados {
        margin-left: 0;
        max-width: 100%;
        overflow: visible;
        transform: none;
        width: 100%;
    }

    .tabela-professores-cadastrados table,
    .tabela-professores-cadastrados tbody,
    .tabela-professores-cadastrados tr,
    .tabela-professores-cadastrados td {
        display: block;
        min-width: 0;
        overflow: visible;
        width: 100%;
    }

    .tabela-professores-cadastrados table {
        min-width: 0;
        table-layout: auto;
    }

    .tabela-professores-cadastrados thead {
        display: none;
    }

    .tabela-professores-cadastrados tbody {
        display: grid;
        gap: 12px;
    }

    .tabela-professores-cadastrados tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        padding: 12px;
    }

    .tabela-professores-cadastrados td {
        border-bottom: 1px solid #edf2f7;
        padding: 8px 0;
        text-align: left;
        white-space: normal;
    }

    .tabela-professores-cadastrados td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
    }

    .tabela-professores-cadastrados td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    .tabela-professores-cadastrados td:last-child {
        border-bottom: 0;
        display: block;
        padding-top: 10px;
    }

    .tabela-professores-cadastrados td:last-child::before {
        display: block;
        margin-bottom: 6px;
    }

    .tabela-professores-cadastrados td:last-child .botao-editar {
        align-items: center;
        display: flex;
        justify-content: center;
        min-height: 38px;
        min-width: 0;
        width: 100%;
    }

    .tabela-professores-cadastrados table,
    .tabela-professores-cadastrados tbody,
    .tabela-professores-cadastrados tr,
    .tabela-professores-cadastrados td {
        display: block;
        overflow: visible;
        width: 100%;
    }

    .tabela-professores-cadastrados thead {
        display: none;
    }

    .tabela-professores-cadastrados tbody {
        display: grid;
        gap: 12px;
    }

    .tabela-professores-cadastrados tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        padding: 12px;
    }

    .tabela-professores-cadastrados td,
    .tabela-professores-cadastrados td:first-child,
    .tabela-professores-cadastrados td:nth-child(2),
    .tabela-professores-cadastrados td:nth-child(3),
    .tabela-professores-cadastrados td:nth-child(4) {
        border-bottom: 1px solid #edf2f7;
        min-width: 0;
        padding: 8px 0;
        text-align: left;
        white-space: normal;
        width: 100%;
    }

    .tabela-professores-cadastrados td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
    }

    .tabela-professores-cadastrados td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    .tabela-professores-cadastrados td:last-child {
        border-bottom: 0;
    }

    .tabela-professores-cadastrados .botao-acao {
        min-height: 38px;
        min-width: 0;
        width: 100%;
    }

    .tabela-alunos-cadastrados {
        margin-left: 0;
        max-width: 100%;
        overflow: visible;
        transform: none;
        width: 100%;
    }

    .tabela-alunos-cadastrados table,
    .tabela-alunos-cadastrados tbody,
    .tabela-alunos-cadastrados tr,
    .tabela-alunos-cadastrados td {
        display: block;
        min-width: 0;
        overflow: visible;
        width: 100%;
    }

    .tabela-alunos-cadastrados table {
        table-layout: auto;
    }

    .tabela-alunos-cadastrados thead {
        display: none;
    }

    .tabela-alunos-cadastrados tbody {
        display: grid;
        gap: 12px;
    }

    .tabela-alunos-cadastrados tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        padding: 12px;
    }

    .tabela-alunos-cadastrados td,
    .tabela-alunos-cadastrados td:nth-child(1),
    .tabela-alunos-cadastrados td:nth-child(2),
    .tabela-alunos-cadastrados td:nth-child(3),
    .tabela-alunos-cadastrados td:nth-child(4),
    .tabela-alunos-cadastrados td:nth-child(5),
    .tabela-alunos-cadastrados td:nth-child(6),
    .tabela-alunos-cadastrados td:nth-child(7) {
        border-bottom: 1px solid #edf2f7;
        min-width: 0;
        padding: 8px 0;
        text-align: left;
        white-space: normal;
        width: 100%;
    }

    .tabela-alunos-cadastrados td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .tabela-alunos-cadastrados td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    .tabela-alunos-cadastrados td:last-child {
        border-bottom: 0;
    }

    .tabela-alunos-cadastrados .acoes-aluno-cadastrado {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .tabela-alunos-cadastrados .acoes-aluno-cadastrado .botao-acao,
    .tabela-alunos-cadastrados .acoes-aluno-cadastrado .form-inline {
        min-height: 38px;
        min-width: 0;
        width: 100%;
    }

    .tabela-rolagem-meus-planejamentos {
        max-height: none;
        overflow: visible;
    }

    .tabela-rolagem-meus-planejamentos table,
    .tabela-meus-planejamentos,
    .tabela-meus-planejamentos tbody,
    .tabela-meus-planejamentos tr,
    .tabela-meus-planejamentos td {
        display: block;
        overflow: visible;
        width: 100%;
    }

    .tabela-meus-planejamentos thead {
        display: none;
    }

    .tabela-meus-planejamentos tbody {
        display: grid;
        gap: 12px;
    }

    .tabela-meus-planejamentos tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 8px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
        padding: 12px;
    }

    .tabela-meus-planejamentos td,
    .tabela-meus-planejamentos th:last-child,
    .tabela-meus-planejamentos td:last-child,
    .tabela-meus-planejamentos td:nth-child(1),
    .tabela-meus-planejamentos td:nth-child(3),
    .tabela-meus-planejamentos td:nth-child(4) {
        border-bottom: 1px solid #edf2f7;
        padding: 8px 0;
        width: 100%;
    }

    .tabela-meus-planejamentos td[data-label] {
        display: grid;
        gap: 6px;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr);
    }

    .tabela-meus-planejamentos td[data-label]::before {
        color: #475569;
        content: attr(data-label);
        font-size: 12px;
        font-weight: 700;
        line-height: 1.3;
        text-transform: uppercase;
    }

    .tabela-meus-planejamentos td:last-child {
        border-bottom: 0;
    }

    .tabela-meus-planejamentos td[colspan] {
        border-bottom: 0;
        text-align: center;
    }

    .tabela-meus-planejamentos .acoes-planejamento {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        white-space: normal;
    }

    .tabela-meus-planejamentos .acoes-planejamento .botao-acao {
        min-height: 38px;
        width: 100%;
    }
}

@media (max-width: 520px) {
    .container,
    .container-notificacao-aluno {
        padding-left: 10px;
        padding-right: 10px;
    }

    .logo-header img {
        height: 48px;
        max-width: 190px;
    }

    .logo-header-nome {
        font-size: 14px;
        max-width: 128px;
    }

    .topo nav {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .topo nav a,
    .topo nav details {
        width: 100%;
    }

    .topo nav a.botao-sininho-aula {
        justify-self: stretch;
        width: 100%;
    }

    .topo nav details.menu-hamburguer {
        justify-self: stretch;
    }

    .menu-hamburguer summary {
        align-items: center;
        display: inline-flex;
        justify-content: center;
        width: 100%;
    }

    .menu-hamburguer-opcoes {
        left: 0;
        max-width: calc(100vw - 28px);
        min-width: 0;
        right: auto;
        transform: none;
        width: min(250px, calc(100vw - 28px));
    }

    .menu-hamburguer[open] .menu-hamburguer-opcoes,
    .menu-hamburguer:hover .menu-hamburguer-opcoes,
    .menu-hamburguer:focus-within .menu-hamburguer-opcoes {
        display: grid;
    }

    .topo nav .menu-hamburguer-opcoes a {
        font-size: 12.5px;
        min-height: 34px;
        padding: 0 9px;
    }

    .painel-aluno-acoes,
    .painel-professor-acoes,
    .grade-jogos {
        grid-template-columns: 1fr;
    }

    .jogo-card {
        padding: 16px;
    }

    .cobrinha-canvas {
        height: auto;
        justify-self: center;
        width: min(100%, 280px);
    }

    .forca-letras {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .botao-acao {
        min-width: 0;
    }

    body:not(.impressao) .tabela-mobile-card td[data-label] {
        grid-template-columns: 1fr;
    }

    .tabela-planejamentos-supervisor td[data-label] {
        grid-template-columns: 1fr;
    }

    .tabela-professores-painel-supervisor td[data-label] {
        grid-template-columns: 1fr;
    }

    .tabela-professores-cadastrados td[data-label] {
        grid-template-columns: 1fr;
    }

    .tabela-alunos-cadastrados td[data-label] {
        grid-template-columns: 1fr;
    }

    body:not(.impressao) .tabela-mobile-card .acoes-planejamento,
    body:not(.impressao) .tabela-mobile-card .acoes-notificacao-lista,
    body:not(.impressao) .tabela-mobile-card .acoes-professor,
    body:not(.impressao) .tabela-mobile-card .acoes-conselho-salvos,
    body:not(.impressao) .tabela-mobile-card .acoes-assinatura-advertencia,
    body:not(.impressao) .tabela-mobile-card td > div[class*="acoes"],
    body:not(.impressao) .tabela-mobile-card td[class*="acao"] {
        grid-template-columns: 1fr;
    }

    .tabela-meus-planejamentos td[data-label] {
        grid-template-columns: 1fr;
    }

    .tabela-meus-planejamentos .acoes-planejamento {
        grid-template-columns: 1fr;
    }
}

body.login-page .link-logo-admin .marca-mg-login {
    height: 205px !important;
}

@keyframes loginLogosEntradaSuave {
    from {
        opacity: 0;
        transform: translateY(24px) scale(0.96);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes loginFraseProgressiva {
    from {
        clip-path: inset(0 100% 0 0);
        opacity: 0;
    }

    22% {
        opacity: 1;
    }

    to {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

body.login-page .login-marcas {
    animation-duration: 3.5s;
    gap: 14px;
    justify-items: center;
    max-width: 560px;
    transform: translateX(-48px);
}

body.login-page .login-marcas-logos {
    animation: loginLogosEntradaSuave 3.8s cubic-bezier(0.22, 1, 0.36, 1) 0.35s both;
    gap: 12px;
    justify-content: center;
    transform: none;
}

body.login-page .marca-educacao-login {
    margin-left: 6px;
    transform: none;
}

body.login-page .frase-login {
    animation: loginFraseProgressiva 5.2s ease-out 1.25s both;
    background: linear-gradient(
        180deg,
        #ffffff 0%,
        #d8dde5 24%,
        #f8fafc 44%,
        #aeb7c2 62%,
        #eef2f7 82%,
        #9ca6b2 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-size: clamp(20px, 2vw, 30px);
    max-width: 560px;
    text-align: center;
    text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.58),
        0 2px 4px rgba(5, 18, 35, 0.86),
        0 0 16px rgba(229, 231, 235, 0.24);
    transform: none;
}

@media (max-width: 980px) {
    body.login-page .link-logo-admin .marca-mg-login {
        height: 135px !important;
    }

    body.login-page .login-marcas {
        max-width: 460px;
        transform: translateX(-20px);
    }

    body.login-page .login-marcas-logos {
        gap: 10px;
    }

    body.login-page .marca-educacao-login {
        margin-left: 4px;
    }

    body.login-page.login-page-pwa .frase-login {
        transform: translateY(-4px);
    }
}

@media (max-width: 760px) {
    body.login-page .link-logo-admin .marca-mg-login {
        height: 105px !important;
    }

    body.login-page .frase-login {
        background: linear-gradient(100deg, #082f49 0%, #0f4f6f 30%, #2f7f9f 48%, #0f4f6f 68%, #061f33 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
        text-shadow:
            0 1px 0 rgba(125, 176, 198, 0.26),
            0 2px 2px rgba(8, 47, 73, 0.42);
    }

    body.login-page.login-page-pwa .frase-login {
        transform: translateY(-8px);
    }
}

body.admin-geral {
    --admin-geral-acento: #0f4f6f;
}

.admin-geral .topo {
    align-items: center;
    background:
        linear-gradient(90deg, #0f4f6f, #2f7f9f, #0f4f6f) left bottom / 100% 8px no-repeat,
        #081827;
    gap: 20px;
    padding: 16px 32px 16px;
}

.admin-geral .logo-header {
    align-items: center;
    display: flex;
    transform: translateY(-8px);
}

.admin-geral .logo-header img {
    height: 108px;
    max-width: 445px;
    transform: scale(1.25);
    transform-origin: left center;
}

.admin-geral-painel .logo-header {
    transform: translateY(-8px);
}

@media (max-width: 980px) {
    .admin-geral .topo {
        align-items: flex-start;
    }

    .admin-geral .logo-header {
        transform: none;
    }

    .admin-geral .logo-header img {
        height: 72px;
        max-width: 290px;
        transform: scale(1.15);
        transform-origin: left center;
    }
}

.painel-admin-geral h1 {
    margin-bottom: 22px;
}

.grade-admin-geral {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    margin-bottom: 22px;
}

.admin-geral .card-indicador {
    border-left-color: #2563eb;
}

.admin-geral-bloco,
.card-escola-admin {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    margin-bottom: 18px;
    padding: 20px;
}

.admin-geral-bloco {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.admin-geral-bloco-form,
.admin-geral-bloco-tabela {
    align-items: stretch;
    display: block;
}

.admin-geral-bloco h2,
.card-escola-admin h2 {
    margin: 0 0 6px;
}

.admin-geral-bloco p,
.card-escola-admin p {
    color: #475569;
    margin: 0;
}

.lista-escolas-admin {
    display: grid;
    gap: 18px;
}

.lista-escolas-admin-rolavel {
    max-height: 720px;
    overflow-y: auto;
    padding-right: 8px;
    scrollbar-gutter: stable;
}

.atalhos-admin-geral {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    margin-bottom: 18px;
}

.atalhos-admin-geral a {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    color: #0f172a;
    display: grid;
    gap: 6px;
    padding: 18px;
    text-decoration: none;
}

.atalhos-admin-geral a:nth-child(1) {
    background: #dcfce7;
    border-color: #86efac;
}

.atalhos-admin-geral a:nth-child(2) {
    background: #fef9c3;
    border-color: #fde68a;
}

.atalhos-admin-geral a:nth-child(3) {
    background: #dbeafe;
    border-color: #93c5fd;
}

.atalhos-admin-geral a:hover {
    border-color: #0f4f6f;
    box-shadow: 0 10px 22px rgba(15, 79, 111, 0.14);
}

.atalhos-admin-geral a:nth-child(1):hover {
    border-color: #22c55e;
    box-shadow: 0 10px 22px rgba(34, 197, 94, 0.16);
}

.atalhos-admin-geral a:nth-child(2):hover {
    border-color: #f59e0b;
    box-shadow: 0 10px 22px rgba(245, 158, 11, 0.16);
}

.atalhos-admin-geral a:nth-child(3):hover {
    border-color: #3b82f6;
    box-shadow: 0 10px 22px rgba(59, 130, 246, 0.16);
}

.atalhos-admin-geral strong {
    font-size: 18px;
}

.atalhos-admin-geral span,
.painel-admin-geral table small,
.cabecalho-admin-relatorio p {
    color: #475569;
}

.informativo-login-admin-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(280px, 0.82fr) minmax(320px, 1.18fr);
}

.formulario-informativo-login {
    display: grid;
    gap: 16px;
}

.formulario-informativo-login label {
    color: #334155;
    display: grid;
    font-size: 14px;
    font-weight: 700;
    gap: 6px;
}

.formulario-informativo-login input,
.formulario-informativo-login select {
    min-height: 42px;
}

.formulario-informativo-login .botoes-informativo-login {
    justify-content: flex-end;
    margin-top: 12px;
    width: 100%;
}

.formulario-informativo-login .botoes-informativo-login button {
    flex: 0 0 140px;
    font-size: 12px;
    height: 44px !important;
    line-height: 1 !important;
    min-height: 44px !important;
    min-width: 140px;
    padding: 8px 10px !important;
    width: 140px;
}

.preview-informativo-login-admin {
    background: #f8fafc;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    justify-items: center;
    padding: 16px;
    text-align: center;
}

.preview-informativo-login-admin img {
    border-radius: 8px;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
    display: block;
    max-height: 360px;
    max-width: 100%;
    object-fit: contain;
}

.preview-informativo-login-admin strong {
    color: #0f172a;
}

.preview-informativo-login-admin small,
.informativo-login-sem-preview small {
    color: #64748b;
}

.informativo-login-sem-preview {
    align-content: center;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    min-height: 180px;
    padding: 18px;
    width: 100%;
}

.form-ocultar-informativo-login {
    margin: 4px 0 0;
}

.form-ocultar-informativo-login button {
    min-height: 34px;
    padding: 0 14px;
}

.tabela-informativos-login-admin table {
    table-layout: auto;
}

.tabela-informativos-login-admin th,
.tabela-informativos-login-admin td {
    overflow-wrap: normal;
    padding-left: 10px;
    padding-right: 10px;
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
    word-break: normal;
}

.tabela-informativos-login-admin th:nth-child(1),
.tabela-informativos-login-admin td:nth-child(1) {
    padding-left: 4px;
    text-align: left;
    width: 82px;
}

.tabela-informativos-login-admin th:nth-child(1) {
    padding-left: 4px;
    text-align: left;
}

.tabela-informativos-login-admin th:nth-child(2),
.tabela-informativos-login-admin td:nth-child(2) {
    min-width: 300px;
    width: auto;
}

.tabela-informativos-login-admin th:nth-child(3),
.tabela-informativos-login-admin td:nth-child(3) {
    text-align: center;
    width: 88px;
}

.tabela-informativos-login-admin th:nth-child(4),
.tabela-informativos-login-admin td:nth-child(4) {
    padding-right: 4px;
    width: 64px;
}

.tabela-informativos-login-admin th:nth-child(5),
.tabela-informativos-login-admin td:nth-child(5) {
    padding-left: 0;
    padding-right: 4px;
    width: 52px;
}

.tabela-informativos-login-admin th:nth-child(5) {
    text-align: left;
}

.tabela-informativos-login-admin th:nth-child(6),
.tabela-informativos-login-admin td:nth-child(6) {
    padding-left: 12px;
    width: 172px;
}

.tabela-informativos-login-admin img {
    border-radius: 6px;
    display: block;
    height: 46px;
    margin-left: 0;
    margin-right: auto;
    object-fit: cover;
    width: 64px;
}

.tabela-informativos-login-admin td:nth-child(2) strong,
.tabela-informativos-login-admin td:nth-child(2) small {
    display: block;
    max-width: 100%;
    overflow-wrap: normal;
    white-space: nowrap;
}

.data-informativo-login,
.hora-informativo-login {
    display: block;
    line-height: 1.15;
}

.hora-informativo-login {
    color: #64748b;
    font-size: 12px;
}

.tabela-informativos-login-admin form {
    margin: 0;
}

.acoes-informativo-login {
    align-items: center;
    display: flex;
    gap: 6px;
    justify-content: flex-start;
}

.acoes-informativo-login .botao-editar-admin,
.acoes-informativo-login .botao-excluir-admin,
.acoes-informativo-login .botao-inativo-painel {
    font-size: 12px;
    min-height: 34px;
    min-width: 72px;
    padding-left: 10px;
    padding-right: 10px;
}

.aviso-mobile-admin {
    display: none;
}

@media (max-width: 760px) {
    .admin-geral .bloco-cadastro-estrutural-admin {
        display: none !important;
    }

    .admin-geral .aviso-mobile-admin {
        background: #fff7ed;
        border: 1px solid #fed7aa;
        border-left: 5px solid #f97316;
        border-radius: 8px;
        color: #9a3412;
        display: block;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.45;
        margin: 0 0 18px;
        padding: 14px 16px;
    }
}

.filtros-admin-geral,
.formulario-admin-grid,
.formulario-admin-inline {
    display: grid;
    gap: 14px;
}

.filtros-admin-geral {
    align-items: end;
    grid-template-columns: repeat(5, minmax(140px, 1fr)) auto;
}

.formulario-admin-grid {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    margin-top: 16px;
}

.formulario-admin-grid .botoes-salvar-usuario-admin {
    grid-column: 1 / -1;
    justify-content: flex-end;
    margin-top: 4px;
    width: 100%;
}

.formulario-admin-grid .botoes-salvar-usuario-admin button {
    flex: 0 0 150px;
    width: 150px;
}

.formulario-admin-inline {
    align-items: end;
    grid-template-columns: minmax(240px, 1fr) auto;
    margin-top: 16px;
}

.cadastros-turma-componente {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cadastro-turma-componente-item {
    min-width: 0;
}

.cadastro-turma-componente-item .formulario-admin-inline {
    grid-template-columns: minmax(0, 1fr) auto;
}

.filtros-admin-geral label,
.formulario-admin-grid label,
.formulario-admin-inline label {
    color: #334155;
    display: grid;
    font-size: 14px;
    font-weight: 700;
    gap: 6px;
}

.filtros-admin-geral input,
.filtros-admin-geral select,
.formulario-admin-grid input,
.formulario-admin-grid select,
.formulario-admin-inline input {
    min-height: 42px;
}

.botao-admin-inline-secundario {
    align-items: center;
    background: #e5e7eb;
    border-radius: 6px;
    color: #1f2937;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    justify-content: center;
    min-height: 42px;
    padding: 0 14px;
    text-align: center;
}

.botao-admin-inline-secundario:hover {
    background: #cbd5e1;
    text-decoration: none;
}

.acoes-admin-tabela {
    align-items: center;
    display: inline-flex;
    gap: 8px;
    justify-content: center;
}

.botao-editar-admin {
    align-items: center;
    background: #facc15;
    border: 0;
    border-radius: 6px;
    color: #78350f;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    min-height: 42px;
    min-width: 138px;
    padding: 0 18px;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

.botao-editar-admin:hover {
    background: #eab308;
    color: #713f12;
    text-decoration: none;
}

.tabela-admin-turmas-componentes th:nth-child(1),
.tabela-admin-turmas-componentes td:nth-child(1) {
    width: 40%;
}

.tabela-admin-turmas-componentes th:nth-child(2),
.tabela-admin-turmas-componentes td:nth-child(2) {
    width: 12%;
}

.tabela-admin-turmas-componentes th:nth-child(3),
.tabela-admin-turmas-componentes td:nth-child(3) {
    width: 18%;
}

.tabela-admin-turmas-componentes th:nth-child(4),
.tabela-admin-turmas-componentes td:nth-child(4) {
    width: 30%;
}

.tabela-admin-turmas-componentes .acoes-admin-tabela {
    justify-content: flex-end;
    width: 100%;
}

.tabela-admin-turmas-componentes .botao-editar-admin,
.tabela-admin-turmas-componentes .botao-excluir-admin {
    min-height: 38px;
    min-width: 86px;
    padding-left: 12px;
    padding-right: 12px;
}

.checkbox-admin {
    align-items: center;
    display: flex;
    gap: 8px;
}

.checkbox-admin input {
    min-height: auto;
}

.fieldset-componentes-professor {
    margin-top: 18px;
}

.resumo-componentes-professor {
    color: #64748b;
    display: block;
    font-weight: 700;
    margin-bottom: 10px;
}

.grade-componentes-professor {
    display: grid;
    gap: 8px 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grade-componentes-professor .check {
    align-items: flex-start;
}

.admin-geral-bloco-tabela table small,
.painel-admin-geral td small {
    display: block;
    font-size: 12px;
    margin-top: 3px;
}

.admin-geral-bloco-tabela {
    overflow-x: visible;
}

.admin-geral-bloco-tabela table {
    table-layout: fixed;
}

.admin-geral-bloco-tabela th,
.admin-geral-bloco-tabela td {
    vertical-align: middle;
}

.admin-geral-bloco-tabela th {
    white-space: nowrap;
}

.admin-geral-bloco-tabela td {
    overflow-wrap: anywhere;
    white-space: normal;
}

.admin-geral-bloco-tabela .coluna-perfil-admin {
    overflow-wrap: normal;
    word-break: normal;
    white-space: normal;
    line-height: 1.2;
}

.admin-geral-bloco-tabela .perfil-admin-linha {
    display: block;
    white-space: nowrap;
}

.admin-geral-bloco-tabela .coluna-email-admin {
    overflow-wrap: normal;
    word-break: normal;
}

.admin-geral-bloco-tabela .coluna-vinculo-admin {
    line-height: 1.25;
}

.admin-geral-bloco-tabela .coluna-vinculo-geral-admin {
    padding-top: 8px;
    vertical-align: top;
}

.admin-geral-bloco-tabela .vinculo-cidade-admin,
.admin-geral-bloco-tabela .vinculo-escola-admin,
.admin-geral-bloco-tabela .email-local-admin,
.admin-geral-bloco-tabela .email-dominio-admin {
    display: block;
}

.admin-geral-bloco-tabela .vinculo-escola-admin {
    margin-top: 2px;
}

.admin-geral-bloco-tabela .email-dominio-admin {
    margin-top: 1px;
}

.admin-geral-bloco-tabela th:nth-child(1),
.admin-geral-bloco-tabela td:nth-child(1) {
    width: 22%;
}

.admin-geral-bloco-tabela th:nth-child(2),
.admin-geral-bloco-tabela td:nth-child(2) {
    width: 15%;
}

.admin-geral-bloco-tabela th:nth-child(3),
.admin-geral-bloco-tabela td:nth-child(3) {
    width: 21%;
    padding-left: 16px;
}

.admin-geral-bloco-tabela th:nth-child(4),
.admin-geral-bloco-tabela td:nth-child(4) {
    width: 21%;
}

.admin-geral-bloco-tabela th:nth-child(5),
.admin-geral-bloco-tabela td:nth-child(5) {
    width: 11%;
    padding-left: 24px;
    padding-right: 18px;
    text-align: center;
}

.admin-geral-bloco-tabela th:nth-child(6),
.admin-geral-bloco-tabela td:nth-child(6) {
    width: 150px;
    white-space: nowrap;
}

.admin-geral-bloco-tabela td:first-child {
    font-weight: 700;
}

.admin-geral-bloco-tabela .tabela-informativos-login-admin th:nth-child(5),
.admin-geral-bloco-tabela .tabela-informativos-login-admin td:nth-child(5) {
    padding-left: 0;
    padding-right: 18px;
    text-align: left;
    width: 11%;
}

.admin-geral-bloco-tabela td form {
    margin: 0;
}

.tabela-admin-rolavel,
.logs-admin-rolavel {
    max-height: 520px;
    overflow-y: auto;
    padding-right: 8px;
    scrollbar-gutter: stable;
}

.tabela-turmas-admin-rolavel,
.tabela-componentes-admin-rolavel {
    max-height: 430px;
}

.tabela-usuarios-admin-rolavel {
    max-height: 500px;
}

.logs-admin-tabela table {
    font-size: 12.5px;
    min-width: 940px;
    table-layout: fixed;
}

.logs-admin-tabela th,
.logs-admin-tabela td {
    padding: 6px 7px;
}

.logs-admin-tabela th {
    white-space: nowrap;
}

.logs-admin-tabela td {
    overflow-wrap: normal;
    word-break: normal;
}

.logs-admin-tabela th.col-log-data,
.logs-admin-tabela td.col-log-data {
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    width: 86px !important;
}

.logs-admin-tabela th.col-log-acao,
.logs-admin-tabela td.col-log-acao {
    overflow-wrap: normal;
    white-space: normal;
    word-break: normal;
    width: 136px !important;
}

body.pagina-logs-admin .logs-admin-tabela th.col-log-acao,
body.pagina-logs-admin .logs-admin-tabela td.col-log-acao {
    padding-left: 44px;
}

.logs-admin-tabela th.col-log-usuario,
.logs-admin-tabela td.col-log-usuario {
    overflow-wrap: anywhere;
    width: 190px !important;
}

.logs-admin-tabela th.col-log-escola,
.logs-admin-tabela td.col-log-escola {
    overflow-wrap: anywhere;
    width: 188px !important;
}

body.pagina-logs-admin .logs-admin-tabela th.col-log-escola,
body.pagina-logs-admin .logs-admin-tabela td.col-log-escola {
    padding-left: 34px;
}

body.pagina-logs-admin .logs-admin-tabela .log-escola-cidade,
body.pagina-logs-admin .logs-admin-tabela .log-escola-nome {
    display: block;
}

body.pagina-logs-admin .logs-admin-tabela .log-escola-nome {
    margin-top: 2px;
}

.logs-admin-tabela th.col-log-descricao,
.logs-admin-tabela td.col-log-descricao {
    overflow-wrap: anywhere;
    white-space: normal;
    width: 214px !important;
}

.logs-admin-tabela th.col-log-ip,
.logs-admin-tabela td.col-log-ip {
    overflow-wrap: normal;
    white-space: nowrap;
    width: 96px !important;
}

.resumo-relatorio-admin {
    color: #475569;
    font-size: 13px;
    font-weight: 700;
    margin: 0 0 10px;
}

.tabela-escolas-admin-dashboard {
    overflow-x: visible;
}

.bloco-escolas-admin-dashboard .tabela-escolas-admin-dashboard {
    margin-top: 14px;
}

.tabela-escolas-admin-dashboard-rolavel {
    max-height: 214px;
    overflow-y: scroll;
    padding-right: 8px;
    scrollbar-gutter: stable;
}

.tabela-escolas-admin-dashboard table {
    margin-bottom: 0;
}

.admin-geral .botao-acao,
.admin-geral .filtros-admin-geral button,
.admin-geral .formulario-admin-inline button,
.admin-geral .janela-senha summary,
.botao-excluir-admin {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 42px;
    min-width: 138px;
    padding: 0 18px;
    white-space: nowrap;
}

.admin-geral .janela-senha summary {
    background: linear-gradient(180deg, #fde68a, #facc15);
    border: 1px solid #ca8a04;
    border-radius: 6px;
    box-shadow: 0 6px 14px rgba(202, 138, 4, 0.2);
    color: #713f12;
    list-style: none;
}

.admin-geral .janela-senha summary::-webkit-details-marker {
    display: none;
}

.tabela-usuarios-admin-rolavel .janela-senha {
    display: block;
    margin: 0 0 8px;
}

.tabela-usuarios-admin-rolavel .janela-senha summary,
.tabela-usuarios-admin-rolavel .botao-excluir-admin {
    box-sizing: border-box;
    min-height: 42px;
    min-width: 138px;
    padding: 0 14px;
    width: 138px;
}

.tabela-usuarios-admin-rolavel .janela-senha summary:hover,
.tabela-usuarios-admin-rolavel .janela-senha[open] summary {
    background: linear-gradient(180deg, #facc15, #eab308);
    border-color: #a16207;
    color: #713f12;
}

.tabela-usuarios-admin-rolavel .janela-senha form {
    box-sizing: border-box;
    gap: 8px;
    margin: 8px auto 0;
    max-width: 138px;
    min-width: 0;
    padding: 10px;
    width: 138px;
}

.tabela-usuarios-admin-rolavel .janela-senha input {
    box-sizing: border-box;
    min-height: 40px;
    min-width: 0;
    padding: 8px 10px;
    width: 100%;
}

.tabela-usuarios-admin-rolavel .janela-senha button {
    align-items: center;
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border: 1px solid #1d4ed8;
    border-radius: 6px;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.18);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-height: 40px;
    padding: 0 12px;
    white-space: nowrap;
    width: 100%;
}

.tabela-usuarios-admin-rolavel .janela-senha button:hover {
    background: linear-gradient(180deg, #60a5fa, #1d4ed8);
}

.cabecalho-admin-relatorio {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 18px;
}

.cabecalho-impressao-logs {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    display: none;
    gap: 18px;
    grid-template-columns: minmax(160px, 1fr) minmax(250px, 1.4fr) minmax(160px, 1fr);
    margin-bottom: 12px;
    overflow: hidden;
    padding: 18px 26px;
    text-align: center;
}

.titulo-logs-relatorio {
    align-self: center;
    min-width: 0;
}

.marca-relatorio-techeng {
    color: #0f172a;
    display: block;
    line-height: 1.2;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.nome-relatorio-techeng {
    display: block;
    font-size: 26px;
    font-weight: 800;
}

.submarca-relatorio-techeng {
    color: #1e3a5f;
    display: block;
    font-family: "Brush Script MT", "Segoe Script", cursive;
    font-size: 21px;
    font-style: italic;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.05;
    margin-top: 2px;
    text-transform: none;
    white-space: nowrap;
}

.titulo-logs-relatorio h1 {
    font-size: 18px;
    line-height: 1.2;
    margin-bottom: 4px;
}

.logo-relatorio-admin {
    align-self: center;
    display: block;
    max-height: 118px;
    max-width: 100%;
    object-fit: contain;
}

.logo-relatorio-techeng {
    justify-self: center;
}

.logo-relatorio-educatech {
    justify-self: center;
    max-width: 92%;
}

.cabecalho-admin-relatorio h1 {
    margin-bottom: 4px;
}

.cabecalho-admin-secao {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 18px;
}

.painel-engajamento-escolas {
    gap: 0;
}

.grafico-engajamento-escolas {
    display: grid;
    gap: 12px;
}

.grafico-engajamento-escolas-rolavel {
    max-height: 430px;
    overflow-y: auto;
    padding-right: 8px;
    scrollbar-gutter: stable;
}

.linha-engajamento-escola {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(220px, 0.85fr) minmax(300px, 1.45fr);
    padding: 14px;
}

.linha-engajamento-escola-info {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.linha-engajamento-escola-info strong {
    color: #0f172a;
    font-size: 15px;
}

.linha-engajamento-escola-info span,
.linha-engajamento-escola-info small {
    color: #64748b;
    font-size: 12px;
}

.linha-engajamento-escola-barras {
    display: grid;
    gap: 8px;
}

.barra-metrica-admin {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: 72px minmax(120px, 1fr) 48px;
}

.barra-metrica-admin span {
    color: #475569;
    font-size: 12px;
    font-weight: 800;
}

.barra-metrica-admin strong {
    color: #0f172a;
    font-size: 14px;
    text-align: right;
}

.barra-metrica-admin-trilho {
    background: #e2e8f0;
    border-radius: 999px;
    height: 12px;
    overflow: hidden;
}

.barra-metrica-admin-preenchimento {
    display: block;
    height: 100%;
}

.barra-metrica-admin-preenchimento.barra-acessos {
    background: linear-gradient(90deg, #0f4f6f, #2f7f9f);
}

.barra-metrica-admin-preenchimento.barra-usuarios {
    background: linear-gradient(90deg, #64748b, #94a3b8);
}

.card-escola-admin-cabecalho {
    align-items: start;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.switch-admin {
    align-items: center;
    display: inline-flex;
    font-weight: 700;
    gap: 8px;
    white-space: nowrap;
}

.preview-escola-admin {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    margin-bottom: 18px;
    overflow: hidden;
}

.preview-escola-topo {
    align-items: center;
    background:
        linear-gradient(90deg, var(--preview-linha-a), var(--preview-linha-b)) left bottom / 100% 7px no-repeat,
        var(--preview-header);
    display: flex;
    gap: 18px;
    justify-content: space-between;
    min-height: 92px;
    padding: 14px 18px 22px;
}

.preview-escola-marca {
    align-items: center;
    display: flex;
    min-height: 58px;
    min-width: 0;
}

.preview-escola-topo img {
    max-height: 58px;
    max-width: 220px;
    object-fit: contain;
}

.preview-escola-sigla {
    color: #fff;
    font-weight: 800;
}

.preview-escola-botoes {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.preview-escola-topo button {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 6px;
    color: var(--preview-botao-texto, #fff);
    font-weight: 800;
    min-height: 36px;
    padding: 0 14px;
}

.preview-escola-topo button:hover {
    background: rgba(255, 255, 255, 0.24);
    border-color: rgba(255, 255, 255, 0.58);
}

.preview-escola-topo .preview-botao-sair {
    background: linear-gradient(180deg, rgba(248, 113, 113, 0.28), rgba(185, 28, 28, 0.42));
    border-color: rgba(248, 113, 113, 0.72);
}

.preview-escola-topo .preview-botao-sair:hover {
    background: linear-gradient(180deg, #ef4444, #b91c1c);
    border-color: #fca5a5;
}

.grade-config-escola {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.grade-config-escola label {
    color: #334155;
    display: grid;
    font-size: 14px;
    font-weight: 700;
    gap: 6px;
}

.grade-config-escola .campo-edicao-escola[hidden] {
    display: none !important;
}

.grade-config-escola input[type="color"] {
    cursor: pointer;
    height: 42px;
    padding: 4px;
}

.grade-config-escola input[type="file"] {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    min-height: 42px;
    padding: 8px;
}

.grade-cadastro-escola {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.grade-cadastro-escola input[type="text"] {
    min-height: 42px;
}

.acoes-escola-admin {
    justify-content: flex-end;
    margin-top: 22px;
    padding-top: 4px;
}

.botoes-formulario .botao-editar-escola {
    background: #facc15;
    border: 1px solid #eab308;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.48),
        0 10px 20px rgba(202, 138, 4, 0.24);
    color: #78350f;
}

.botoes-formulario .botao-editar-escola:hover {
    background: #eab308;
    border-color: #ca8a04;
    color: #713f12;
}

.botao-excluir-admin {
    background: #e5e7eb;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #334155;
    cursor: pointer;
    font-weight: 800;
}

.botao-excluir-admin:hover {
    background: #dc2626;
    border-color: #b91c1c;
    color: #fff;
}

.botao-perigo-admin {
    align-items: center;
    background: #dc2626;
    border: 1px solid #b91c1c;
    border-radius: 6px;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.22);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 12.5px;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.15;
    min-height: 44px;
    overflow-wrap: anywhere;
    padding: 6px 10px;
    text-align: center;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease,
        transform 0.18s ease;
}

.botao-perigo-admin:hover {
    background: #b91c1c;
    border-color: #991b1b;
    box-shadow: 0 12px 24px rgba(185, 28, 28, 0.3);
    transform: translateY(-2px);
}

.botao-perigo-admin:focus-visible {
    outline: 3px solid rgba(220, 38, 38, 0.28);
    outline-offset: 3px;
}

.botao-perigo-admin:active {
    box-shadow: none;
    transform: translateY(0);
}

.botoes-formulario button.botao-perigo-admin,
.pagina-sres-admin .acoes-regionais-sre button.botao-perigo-admin {
    background: #dc2626;
    border-color: #b91c1c;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.22);
    color: #fff;
    font-weight: 700;
}

.botoes-formulario button.botao-perigo-admin:hover,
.pagina-sres-admin .acoes-regionais-sre button.botao-perigo-admin:hover {
    background: #b91c1c;
    border-color: #991b1b;
    box-shadow: 0 12px 24px rgba(185, 28, 28, 0.3);
    color: #fff;
}

.pagina-sres-admin .regionais-cadastradas-admin {
    padding-top: 20px;
}

.pagina-sres-admin .regionais-cadastradas-admin > div:first-child {
    margin-bottom: 0;
}

.pagina-sres-admin .regionais-cadastradas-admin .tabela-escolas-admin-dashboard {
    margin-top: 22px;
}

.pagina-sres-admin .linha-sre-cadastrada {
    align-items: end;
    display: block;
}

.pagina-sres-admin .formulario-sre-cadastrada {
    align-items: center;
    grid-template-columns: minmax(360px, 1fr) minmax(110px, 0.28fr) 160px;
    margin-top: 0;
}

.pagina-sres-admin .campo-sre-com-acao {
    align-self: center;
    min-width: 0;
    transform: translateY(-8px);
}

.pagina-sres-admin .switch-sre-admin {
    align-self: center;
}

.pagina-sres-admin .acao-status-sre {
    display: none;
    margin: 0;
}

.pagina-sres-admin .formulario-sre-cadastrada .botoes-salvar-usuario-admin {
    grid-column: auto;
    display: grid;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    width: auto;
}

.pagina-sres-admin .formulario-sre-cadastrada .acoes-regionais-sre button {
    flex: 0 0 150px;
    min-width: 150px;
    width: 150px;
}

.pagina-sres-admin .acao-status-sre button,
.pagina-sres-admin .acao-status-cidade-sre button {
    min-height: 42px;
    min-width: 138px;
    padding: 0 18px;
}

.pagina-sres-admin .acao-status-cidade-sre {
    justify-content: flex-start;
    margin: 0;
}

@media (max-width: 980px) {
    .grade-admin-geral,
    .atalhos-admin-geral,
    .informativo-login-admin-grid,
    .grade-config-escola,
    .formulario-admin-grid,
    .filtros-admin-geral {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .formulario-admin-inline {
        grid-template-columns: 1fr;
    }

    .cadastros-turma-componente {
        grid-template-columns: 1fr;
    }

    .pagina-sres-admin .formulario-sre-cadastrada {
        grid-template-columns: 1fr auto;
    }

    .pagina-sres-admin .formulario-sre-cadastrada .botoes-salvar-usuario-admin {
        grid-column: 1 / -1;
        justify-content: flex-end;
        width: 100%;
    }
}

@media (max-width: 700px) {
    .admin-geral-bloco,
    .card-escola-admin-cabecalho,
    .cabecalho-admin-relatorio,
    .cabecalho-admin-secao {
        display: grid;
    }

    .lista-escolas-admin-rolavel {
        max-height: 72vh;
        padding-right: 4px;
    }

    .linha-engajamento-escola {
        grid-template-columns: 1fr;
    }

    .grafico-engajamento-escolas-rolavel {
        max-height: 360px;
        padding-right: 4px;
    }

    .tabela-escolas-admin-dashboard-rolavel {
        max-height: 198px;
        padding-right: 4px;
    }

    .tabela-admin-rolavel,
    .logs-admin-rolavel {
        max-height: 62vh;
        padding-right: 4px;
    }

    .barra-metrica-admin {
        grid-template-columns: 68px minmax(90px, 1fr) 42px;
    }

    .grade-admin-geral,
    .atalhos-admin-geral,
    .informativo-login-admin-grid,
    .grade-config-escola,
    .formulario-admin-grid,
    .filtros-admin-geral {
        grid-template-columns: 1fr;
    }

    .preview-informativo-login-admin img {
        max-height: 300px;
    }

    .grade-docs-peb-upload {
        grid-template-columns: 1fr;
    }

    .doc-peb-upload-card {
        padding: 12px;
    }

    .doc-peb-upload-topo {
        align-items: flex-start;
    }

    .doc-peb-upload-card button {
        width: 150px;
    }

}

@media print {
    * {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    .botao-imprimir,
    .filtros-relatorio-admin {
        display: none !important;
        visibility: hidden !important;
    }

    .tabela-admin-rolavel,
    .logs-admin-rolavel {
        max-height: none !important;
        overflow: visible !important;
        padding-right: 0 !important;
    }

    body.impressao::before {
        display: none !important;
    }

    @page {
        margin: 12mm;
        size: auto;
    }

    body {
        background: #fff !important;
        padding: 0 !important;
    }

    body.pagina-logs-admin .topo {
        display: none !important;
    }

    body.pagina-logs-admin .cabecalho-admin-relatorio {
        display: none !important;
    }

    body.pagina-logs-admin .painel-admin-geral {
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
        max-width: none !important;
        padding: 0 !important;
        width: 100% !important;
    }

    body.pagina-logs-admin .relatorio-admin-impressao {
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    body.pagina-logs-admin .cabecalho-impressao-logs {
        border-color: #cbd5e1 !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
        display: grid !important;
        grid-template-columns: 1fr 1.35fr 1fr !important;
        margin: 0 8px 12px !important;
        padding: 16px 8px !important;
        page-break-inside: avoid;
        width: calc(100% - 16px) !important;
    }

    body.pagina-logs-admin .logo-relatorio-admin {
        max-height: 108px !important;
    }

    body.pagina-logs-admin .logo-relatorio-techeng {
        justify-self: start !important;
    }

    body.pagina-logs-admin .logo-relatorio-educatech {
        justify-self: end !important;
    }

    body.pagina-logs-admin .logs-admin-tabela table {
        border-collapse: collapse !important;
        display: table !important;
        font-size: 8.5px !important;
        line-height: 1.15 !important;
        min-width: 0 !important;
        table-layout: fixed !important;
        width: 100% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela thead {
        display: table-header-group !important;
    }

    body.pagina-logs-admin .logs-admin-tabela tbody {
        display: table-row-group !important;
    }

    body.pagina-logs-admin .logs-admin-tabela tr {
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        display: table-row !important;
        page-break-inside: avoid;
        padding: 0 !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th,
    body.pagina-logs-admin .logs-admin-tabela td {
        border: 1px solid #cbd5e1 !important;
        display: table-cell !important;
        overflow: hidden !important;
        padding: 3px 4px !important;
        vertical-align: top !important;
    }

    body.pagina-logs-admin .logs-admin-tabela td[data-label]::before {
        content: none !important;
        display: none !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th.col-log-data,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-data {
        width: 9% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th.col-log-acao,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-acao {
        width: 14% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th.col-log-usuario,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-usuario {
        width: 22% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th.col-log-escola,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-escola {
        width: 17% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th.col-log-descricao,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-descricao {
        width: 28% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela th.col-log-ip,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-ip {
        width: 10% !important;
    }

    body.pagina-logs-admin .logs-admin-tabela td.col-log-usuario,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-escola,
    body.pagina-logs-admin .logs-admin-tabela td.col-log-descricao {
        overflow-wrap: anywhere !important;
        white-space: normal !important;
        word-break: normal !important;
    }

    body.pagina-logs-admin .logs-admin-tabela td.col-log-ip {
        white-space: nowrap !important;
    }

    body.pagina-logs-admin .logs-admin-tabela td small {
        display: block !important;
        font-size: 7.5px !important;
        line-height: 1.12 !important;
    }

    body.imprimir-relatorio-aula .topo,
    body.imprimir-relatorio-aula main.container > h1,
    body.imprimir-relatorio-aula main.container > .info-box,
    body.imprimir-relatorio-aula main.container > .alerta,
    body.imprimir-relatorio-aula .formulario-aula-ao-vivo,
    body.imprimir-relatorio-aula main.container > section:not(#relatorio-acessos),
    body.imprimir-relatorio-aula .botoes-relatorio-aula {
        display: none !important;
    }

    body.imprimir-relatorio-aula main.container {
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
        max-width: none !important;
        padding: 0 !important;
        width: 100% !important;
    }

    body.imprimir-relatorio-aula #relatorio-acessos {
        margin: 0 !important;
        padding: 0 !important;
    }

    body.imprimir-relatorio-aula .cabecalho-relatorio-aula {
        display: grid !important;
        margin-bottom: 10px !important;
    }

    body.imprimir-relatorio-aula #relatorio-acessos .tabela-rolagem {
        max-height: none !important;
        overflow: visible !important;
    }

    body.imprimir-relatorio-aula #relatorio-acessos table {
        display: table !important;
        overflow: visible !important;
        width: 100% !important;
    }

    .folha {
        margin: 0;
        max-width: none;
        padding: 0;
    }

    .ficha-planejamento {
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        font-size: 11px;
        margin: 0 !important;
        padding-top: 0;
    }

    .impressao .folha > .ficha-planejamento {
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
        min-height: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    .assinaturas-planejamento {
        background: #fff !important;
        margin-top: 48px !important;
        padding-top: 8px !important;
    }

    .assinatura-professor {
        background: #fff !important;
        padding-top: 18px !important;
    }

    .impressao .folha > .historico-professor-documento {
        border-color: #000 !important;
        box-shadow: none !important;
        margin: 0 !important;
    }

    .impressao .folha > .historico-professor-documento.documento-notificacao {
        border-radius: 4px !important;
        font-size: 12.5px !important;
        line-height: 1.5 !important;
        padding: 26px !important;
    }

    .documento-notificacao h1,
    .historico-professor-documento.documento-notificacao h1 {
        font-size: 19px !important;
        margin-bottom: 16px !important;
        padding-bottom: 9px !important;
    }

    .historico-professor-documento.documento-notificacao h2 {
        font-size: 14px !important;
        margin: 14px 0 6px !important;
    }

    .historico-professor-documento.documento-notificacao p,
    .historico-professor-documento.documento-notificacao li {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .historico-professor-documento.documento-notificacao ul {
        margin: 6px 0 0 !important;
        padding-left: 18px !important;
    }

    .documento-notificacao-registro {
        border-left-width: 3px !important;
        border-radius: 4px !important;
        margin: 8px 0 10px !important;
        padding: 9px 10px !important;
    }

    .ficha-identificacao-notificacao-aluno th,
    .ficha-identificacao-notificacao-aluno td {
        font-size: 12px !important;
        padding: 4px 5px !important;
    }

    .documento-assinaturas.documento-assinaturas-supervisor {
        gap: 18px !important;
        margin-top: 72px !important;
    }

    .documento-assinaturas .historico-assinatura {
        font-size: 11px !important;
    }

    .documento-assinaturas small {
        font-size: 10.5px !important;
        margin-top: 4px !important;
    }

    .documento-assinaturas .historico-assinatura span,
    .documento-assinaturas .historico-assinatura > span,
    .documento-assinaturas .assinatura-rotulo,
    .documento-assinaturas .assinatura-nome-unica {
        border: 0 !important;
        border-top: 0 !important;
        box-shadow: none !important;
        margin-bottom: 1px !important;
    }

    .documento-assinaturas .assinatura-rotulo {
        margin-top: 2px !important;
    }

    .documento-assinaturas .assinatura-nome-unica {
        margin-bottom: 2px !important;
    }

    .documento-assinaturas .assinatura-equipe-pedagogica small {
        line-height: 1.1 !important;
        margin-top: 2px !important;
    }

    .documento-assinaturas .assinatura-direcao-notificacao small,
    .documento-assinaturas .assinatura-direcao-notificacao .assinatura-rotulo {
        margin-top: 1px !important;
    }

    .documento-assinaturas .assinatura-equipe-pedagogica .selo-aprovado-assinatura {
        transform: translateY(-5px) !important;
    }

    .ficha-cabecalho {
        grid-template-columns: 112px 1fr 118px;
        margin-bottom: 6px;
        padding: 6px 10px;
    }

    .ficha-cabecalho img {
        max-height: 58px;
    }

    .ficha-cabecalho .ficha-brasao {
        max-height: 112px;
        max-width: 120px;
    }

    .ficha-cabecalho strong {
        font-size: 14px;
    }

    .ficha-cabecalho span {
        font-size: 10px;
    }

    .ficha-titulo {
        background: #d8dde5 !important;
        font-size: 13px;
        padding: 5px 8px;
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    .ficha-tabela {
        border: 1.2px solid #000;
        border-collapse: collapse;
        margin-bottom: 6px;
    }

    .ficha-tabela th,
    .ficha-tabela td {
        border: 1.2px solid #000;
        padding: 5px 6px;
    }

    .ficha-tabela th {
        background: #d8dde5 !important;
    }

    .ficha-cabecalho,
    .ficha-titulo {
        border-color: #000;
    }

    .ficha-titulo {
        border-bottom: 1.2px solid #000;
    }

.ficha-tabela + .ficha-tabela {
        margin-top: 0;
    }

    .pagina-sres-admin .formulario-sre-cadastrada {
        grid-template-columns: 1fr;
    }

    .pagina-sres-admin .formulario-sre-cadastrada .acoes-regionais-sre button,
    .pagina-sres-admin .acao-status-cidade-sre button {
        width: 100%;
    }
}

.formulario-prova .botoes-formulario a.botao-nova-prova,
.formulario-prova .botoes-formulario button.botao-nova-prova {
    align-items: center !important;
    background: linear-gradient(180deg, #1f2937 0%, #020617 100%) !important;
    border: 1px solid #020617 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 12px 24px rgba(15, 23, 42, 0.24) !important;
    color: #ffffff !important;
    display: inline-flex !important;
    flex: 0 0 150px !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    justify-content: center !important;
    line-height: 1.15 !important;
    min-height: 44px !important;
    min-width: 150px !important;
    padding: 6px 10px !important;
    text-align: center !important;
    width: 150px !important;
}

.formulario-prova .botoes-formulario a.botao-nova-prova:hover,
.formulario-prova .botoes-formulario button.botao-nova-prova:hover {
    background: linear-gradient(180deg, #374151 0%, #111827 100%) !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

/* Protecao final dos dashboards contra textos sem espaco, como sequencias de "xxx". */
.dashboard-escola,
.dashboard-escola .lista-mensagens,
.dashboard-escola .mensagem-card,
.dashboard-escola .conteudo-mensagem,
.dashboard-escola .card-pet,
.admin-geral-bloco,
.admin-geral-bloco-tabela,
.tabela-escolas-admin-dashboard {
    box-sizing: border-box !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
}

.dashboard-escola .mensagem-card *,
.dashboard-escola .card-pet *,
.admin-geral-bloco *,
.tabela-escolas-admin-dashboard * {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.dashboard-escola .mensagem-card p,
.dashboard-escola .mensagem-card .relato-dashboard-ocorrencia,
.dashboard-escola .card-pet p {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
    word-break: break-all !important;
}

@media (display-mode: standalone) and (max-width: 900px) {
    .calendario-dashboard {
        display: none !important;
    }

    .topo nav a.botao-ded-mais,
    body.perfil-supervisor .topo nav a.botao-crivo-online:not(.botao-ded-mais):not(.botao-sislame-web) {
        display: none !important;
    }
}

@media (max-width: 900px) {
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor {
        border-bottom: 0 !important;
        display: block !important;
        grid-template-columns: none !important;
        max-width: none !important;
        min-width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor > *,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .form-inline,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .form-inline .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        box-sizing: border-box !important;
        max-width: none !important;
        min-height: 38px !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        align-items: center !important;
        display: flex !important;
        justify-content: center !important;
        padding: 0 10px !important;
    }
}

@media (max-width: 900px) {
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor {
        border-bottom: 0 !important;
        display: block !important;
        grid-template-columns: none !important;
        max-width: none !important;
        min-width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor::before {
        display: block !important;
        margin-bottom: 6px !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor > *,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .form-inline,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .form-inline .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        box-sizing: border-box !important;
        max-width: none !important;
        min-height: 38px !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        align-items: center !important;
        display: flex !important;
        justify-content: center !important;
        padding: 0 10px !important;
    }
}

html.modo-pwa .topo nav a.botao-ded-mais,
body.modo-pwa .topo nav a.botao-ded-mais,
html.modo-pwa .topo nav .ocultar-pwa,
body.modo-pwa .topo nav .ocultar-pwa,
html.modo-pwa .topo nav a[href*="notificacoes_alunos.php"],
body.modo-pwa .topo nav a[href*="notificacoes_alunos.php"],
html.modo-pwa .topo nav a[href*="notificar_supervisor.php"],
body.modo-pwa .topo nav a[href*="notificar_supervisor.php"],
html.modo-pwa .calendario-dashboard,
body.modo-pwa .calendario-dashboard,
html.modo-pwa .calendario-modal,
body.modo-pwa .calendario-modal,
html.modo-pwa .form-upload-calendario,
body.modo-pwa .form-upload-calendario,
html.modo-pwa .modulo-rfid-dashboard,
body.modo-pwa .modulo-rfid-dashboard,
html.modo-pwa body.perfil-supervisor .topo nav a.botao-crivo-online:not(.botao-ded-mais):not(.botao-sislame-web),
body.modo-pwa.perfil-supervisor .topo nav a.botao-crivo-online:not(.botao-ded-mais):not(.botao-sislame-web) {
    display: none !important;
}

html.modo-pwa .topo nav a.botao-sair-pwa,
body.modo-pwa .topo nav a.botao-sair-pwa {
    background: linear-gradient(180deg, #b91c1c, #7f1d1d) !important;
    border-color: #991b1b !important;
    box-shadow: none !important;
    color: #fff !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card,
body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card tbody,
body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card tr,
body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td {
    display: block !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow: visible !important;
    width: 100% !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card thead {
    display: none !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card tbody {
    display: grid !important;
    gap: 12px !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card tr {
    background: #fff !important;
    border: 1px solid #dbe4ef !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08) !important;
    padding: 12px !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td {
    border-bottom: 1px solid #edf2f7 !important;
    padding: 8px 0 !important;
    text-align: left !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td[data-label] {
    display: grid !important;
    gap: 5px !important;
    grid-template-columns: 1fr !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td:nth-child(5) {
    border-bottom: 0 !important;
    display: block !important;
    padding-top: 10px !important;
    width: 100% !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: 1fr !important;
    margin: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline,
body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline .botao-acao,
body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
body.modo-pwa .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao {
    align-items: center !important;
    display: flex !important;
    justify-content: center !important;
    margin: 0 !important;
    min-height: 42px !important;
    min-width: 0 !important;
    padding: 0 8px !important;
    width: 100% !important;
}

@media (max-width: 900px) {
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td[data-label] {
        display: grid !important;
        gap: 5px !important;
        grid-template-columns: 1fr !important;
        text-align: left !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td[data-label]::before {
        align-self: start !important;
        color: #475569 !important;
        display: block !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        text-align: left !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td:nth-child(3),
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td:nth-child(4),
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .coluna-supervisor-notificacao {
        padding-left: 0 !important;
        padding-right: 0 !important;
        text-align: left !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .valor-card-notificacao {
        display: grid;
        gap: 2px;
        min-width: 0;
        overflow-wrap: anywhere;
        width: 100%;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .supervisor-notificacao-periodo {
        text-align: left !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] {
        border-bottom: 0 !important;
        display: block !important;
        grid-template-columns: none !important;
        padding-top: 10px !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td:nth-child(5) {
        border-bottom: 0 !important;
        display: block !important;
        grid-template-columns: none !important;
        max-width: none !important;
        min-width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-top: 10px !important;
        text-align: left !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td[data-label="A&ccedil;&otilde;es"]::before {
        display: block !important;
        margin-bottom: 6px !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card td:nth-child(5)::before {
        display: block !important;
        margin-bottom: 6px !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        margin: 0 !important;
        max-width: 100% !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot {
        align-items: stretch !important;
        box-sizing: border-box !important;
        display: flex !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline,
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-inline .botao-acao,
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao {
        align-items: center !important;
        box-sizing: border-box !important;
        display: flex !important;
        font-size: 12px !important;
        justify-content: center !important;
        min-height: 42px !important;
        min-width: 0 !important;
        padding: 0 8px !important;
        text-align: center !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot > .botao-acao,
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot > .status-assinatura-notificacao,
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot > .form-inline,
    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot > .form-inline > .botao-acao {
        box-sizing: border-box !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .secao-notificacoes-alunos .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao {
        flex-direction: column !important;
        gap: 4px !important;
        line-height: 1.18 !important;
    }

    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno,
    .container-notificacao-aluno .tabela-mobile-card .acoes-planejamento.acoes-notificacao-aluno,
    body:not(.impressao) .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno,
    body:not(.impressao) .container-notificacao-aluno .tabela-mobile-card .acoes-planejamento.acoes-notificacao-aluno {
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: 220px !important;
        width: 220px !important;
    }

    .container-notificacao-aluno .tabela-mobile-card td[data-label] {
        align-items: start !important;
        grid-template-columns: minmax(92px, 34%) minmax(0, 1fr) !important;
    }

    .container-notificacao-aluno .tabela-mobile-card td[data-label]::before {
        align-self: start !important;
        text-align: left !important;
    }

    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .form-inline,
    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .form-inline .botao-acao,
    .container-notificacao-aluno .tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao {
        font-size: 13px !important;
        min-height: 42px !important;
        min-width: 0 !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        width: 100% !important;
    }

    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .form-inline,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .form-inline .botao-acao,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .botao-visualizar-notificacao,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao {
        min-height: 42px !important;
        min-width: 220px !important;
        width: 220px !important;
    }

    .container-notificacao-aluno .botoes-notificacao-aluno {
        grid-template-columns: 150px !important;
        max-width: 150px !important;
        width: 150px !important;
    }

    .tabela-professores-cadastrados td:last-child,
    .tabela-professores-cadastrados td[data-label="Ações"],
    .tabela-professores-cadastrados td[data-label="A&ccedil;&otilde;es"] {
        display: block !important;
        text-align: left !important;
        width: 100% !important;
    }

    .tabela-professores-cadastrados td:last-child::before,
    .tabela-professores-cadastrados td[data-label="Ações"]::before,
    .tabela-professores-cadastrados td[data-label="A&ccedil;&otilde;es"]::before {
        display: block !important;
        margin-bottom: 6px !important;
    }

    .tabela-professores-cadastrados td:last-child .botao-editar,
    .tabela-professores-cadastrados td:nth-child(4) .botao-editar,
    .tabela-professores-cadastrados td:nth-child(4) .botao-acao {
        margin-left: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .topo nav a.botao-ded-mais,
    .topo nav .ocultar-pwa,
    .modulo-rfid-dashboard,
    body.perfil-supervisor .topo nav a.botao-crivo-online:not(.botao-ded-mais):not(.botao-sislame-web) {
        display: none !important;
    }
}

@media (max-width: 900px) {
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor {
        border-bottom: 0 !important;
        display: block !important;
        grid-template-columns: none !important;
        max-width: none !important;
        min-width: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor > *,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .form-inline,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .form-inline .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        box-sizing: border-box !important;
        max-width: none !important;
        min-height: 42px !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        align-items: center !important;
        display: flex !important;
        justify-content: center !important;
        padding: 0 10px !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        font-size: 10.5px !important;
        gap: 1px !important;
        line-height: 1.05 !important;
        max-height: 42px !important;
        overflow: hidden !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao .assinatura-professor-nome {
        font-size: 11px !important;
        line-height: 1.05 !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-excluir-notificacao {
        min-height: 42px !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .form-acao-notificacao-professor,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .form-acao-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-assinar-professor,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card td.celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-excluir-notificacao {
        box-sizing: border-box !important;
        display: flex !important;
        margin: 0 !important;
        max-width: none !important;
        min-height: 42px !important;
        min-width: 0 !important;
        width: 100% !important;
    }
}

@media (max-width: 900px) {
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    body.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    html.modo-pwa .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno {
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor *,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno *,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor > *,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno > * {
        box-sizing: border-box !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .botao-acao,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-aluno .status-assinatura-notificacao {
        align-items: center !important;
        appearance: none !important;
        display: flex !important;
        height: 42px !important;
        justify-content: center !important;
        margin: 0 !important;
        max-height: 42px !important;
        min-height: 42px !important;
        padding: 0 10px !important;
        text-align: center !important;
    }
}

html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: 1fr !important;
    margin: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div > *,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div > *,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .botao-acao,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .botao-acao,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .form-inline,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .form-inline,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .status-assinatura-notificacao,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .status-assinatura-notificacao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div > *,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div > *,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .form-inline,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .form-inline,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .status-assinatura-notificacao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .status-assinatura-notificacao {
    align-self: stretch !important;
    box-sizing: border-box !important;
    flex: 1 1 auto !important;
    inline-size: 100% !important;
    max-width: none !important;
    min-inline-size: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
}

html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .botao-acao,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .botao-acao,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .status-assinatura-notificacao,
html.modo-pwa body:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .status-assinatura-notificacao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="A&ccedil;&otilde;es"] > div .status-assinatura-notificacao,
body.modo-pwa:not(.impressao) .tabela-mobile-card td[data-label="Ações"] > div .status-assinatura-notificacao {
    align-items: center !important;
    appearance: none !important;
    display: flex !important;
    flex: 1 1 auto !important;
    height: 42px !important;
    inline-size: 100% !important;
    justify-content: center !important;
    margin: 0 !important;
    max-height: 42px !important;
    max-inline-size: none !important;
    min-height: 42px !important;
    min-inline-size: 0 !important;
    padding: 0 10px !important;
    text-align: center !important;
    width: 100% !important;
}

@media (max-width: 900px) {
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor {
        display: block !important;
        max-width: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-acao-notificacao-professor,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-acao-notificacao-professor,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .acao-notificacao-slot,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .form-acao-notificacao-professor,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao {
        box-sizing: border-box !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    html.modo-pwa body:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .botao-acao,
    body.modo-pwa:not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .acoes-notificacao-professor .status-assinatura-notificacao {
        align-items: center !important;
        display: flex !important;
        font-size: 13px !important;
        height: 42px !important;
        justify-content: center !important;
        max-height: 42px !important;
        min-height: 42px !important;
        padding: 0 10px !important;
        text-align: center !important;
    }
}

body.modo-pwa:not(.impressao) .tabela-mobile-card .acoes-planejamento,
body.modo-pwa:not(.impressao) .tabela-mobile-card .acoes-notificacao-lista,
body.modo-pwa:not(.impressao) .tabela-mobile-card [class*="acoes"] {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: 1fr !important;
    justify-items: stretch !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao) .tabela-mobile-card .form-inline,
body.modo-pwa:not(.impressao) .tabela-mobile-card .botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card button.botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card a.botao-acao,
body.modo-pwa:not(.impressao) .tabela-mobile-card .status-assinatura-notificacao {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    font-size: 13px !important;
    height: 44px !important;
    justify-content: center !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    max-height: 44px !important;
    max-width: none !important;
    min-height: 44px !important;
    min-width: 0 !important;
    padding: 0 12px !important;
    text-align: center !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao) .tabela-mobile-card .form-inline .botao-acao {
    width: 100% !important;
}

@media (min-width: 901px) {
    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        justify-items: stretch !important;
        margin: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }

    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .acao-notificacao-slot,
    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .form-acao-notificacao-professor,
    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .form-acao-notificacao-professor .botao-acao,
    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        box-sizing: border-box !important;
        display: flex !important;
        height: 42px !important;
        max-height: 42px !important;
        max-width: none !important;
        min-height: 42px !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .botao-acao,
    body:not(.modo-pwa):not(.impressao) .container-notificacao-aluno .tabela-notificacoes-professor.tabela-mobile-card .celula-acoes-notificacao-professor .acoes-notificacao-professor .status-assinatura-notificacao {
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 10px !important;
        text-align: center !important;
    }
}

@media (max-width: 700px) {
    body:not(.impressao) .tabela-mobile-card .acoes-planejamento,
    body:not(.impressao) .tabela-mobile-card .acoes-notificacao-lista,
    body:not(.impressao) .tabela-mobile-card [class*="acoes"] {
        align-items: stretch !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body:not(.impressao) .tabela-mobile-card .form-inline,
    body:not(.impressao) .tabela-mobile-card .botao-acao,
    body:not(.impressao) .tabela-mobile-card button.botao-acao,
    body:not(.impressao) .tabela-mobile-card a.botao-acao,
    body:not(.impressao) .tabela-mobile-card .status-assinatura-notificacao {
        align-items: center !important;
        box-sizing: border-box !important;
        display: flex !important;
        font-size: 13px !important;
        height: 44px !important;
        justify-content: center !important;
        line-height: 1.15 !important;
        margin: 0 !important;
        max-height: 44px !important;
        max-width: none !important;
        min-height: 44px !important;
        min-width: 0 !important;
        padding: 0 12px !important;
        text-align: center !important;
        width: 100% !important;
    }

    body:not(.impressao) .tabela-mobile-card .form-inline .botao-acao {
        width: 100% !important;
    }
}

body.modo-pwa:not(.impressao) .tabela-rolagem-meus-planejamentos {
    max-height: min(900px, 94vh) !important;
    max-height: min(900px, 94svh) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    padding-right: 4px;
    scrollbar-gutter: stable;
}

body.modo-pwa:not(.impressao) .tabela-rolagem-meus-planejamentos tbody {
    padding-bottom: 2px;
}

body.modo-pwa:not(.impressao) .tabela-meus-planejamentos .acoes-planejamento {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    white-space: normal !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao) .tabela-meus-planejamentos .acoes-planejamento .form-inline,
body.modo-pwa:not(.impressao) .tabela-meus-planejamentos .acoes-planejamento .botao-acao {
    box-sizing: border-box !important;
    display: flex !important;
    height: auto !important;
    max-height: none !important;
    min-height: 38px !important;
    min-width: 0 !important;
    padding: 0 8px !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao) .tabela-meus-planejamentos .acoes-planejamento .botao-acao {
    align-items: center !important;
    font-size: 12px !important;
    justify-content: center !important;
    line-height: 1.12 !important;
    text-align: center !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .acoes-mensagem-planejamento {
    align-items: stretch !important;
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: 1fr !important;
    margin-top: 12px !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .acoes-mensagem-planejamento .status-pendente,
body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .acoes-mensagem-planejamento .status-aprovado {
    align-items: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    grid-column: 1 / -1 !important;
    justify-content: center !important;
    line-height: 1.2 !important;
    min-height: 36px !important;
    overflow-wrap: anywhere !important;
    padding: 7px 10px !important;
    text-align: center !important;
    white-space: normal !important;
    width: 100% !important;
    word-break: normal !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .acoes-mensagem-planejamento .form-inline,
body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .acoes-mensagem-planejamento .botao-acao {
    box-sizing: border-box !important;
    display: flex !important;
    margin: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .mensagem-card,
body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .conteudo-mensagem {
    display: block !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .conteudo-mensagem header {
    align-items: stretch !important;
    display: grid !important;
    gap: 6px !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .conteudo-mensagem header strong,
body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .conteudo-mensagem header span,
body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .conteudo-mensagem h3,
body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .conteudo-mensagem p {
    display: block !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    text-align: left !important;
    white-space: normal !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-ocorrencias-direcao .acoes-mensagem-planejamento .botao-visualizar-notificacao {
    flex-direction: column !important;
    gap: 1px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao[data-label] {
    display: block !important;
    padding-top: 10px !important;
    text-align: left !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao[data-label]::before {
    display: block !important;
    margin-bottom: 10px !important;
    text-align: left !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao .form-inline {
    justify-content: center !important;
    margin-top: 6px !important;
    width: 100% !important;
}

body.modo-pwa:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao .botao-acao {
    width: 100% !important;
}

.container-grade-horarios,
.container-gerador-horarios,
.container-mapa-horarios,
.container-rotina-pedagogica {
    max-width: 1180px;
}

.botao-form-link.botao-mapa-horarios {
    background: linear-gradient(180deg, #111827, #000);
    border: 1px solid #000;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.24);
    color: #fff;
    flex: 0 0 auto;
    min-width: 210px;
}

.botao-form-link.botao-mapa-horarios:hover {
    background: linear-gradient(180deg, #000, #111);
    border-color: #000;
    box-shadow: 0 11px 22px rgba(0, 0, 0, 0.32);
    color: #fff;
    transform: translateY(-1px);
}

.cabecalho-mapa-horarios,
.cabecalho-resultado-mapa {
    align-items: flex-start;
    display: flex;
    gap: 20px;
    justify-content: space-between;
}

.cabecalho-mapa-horarios > div > span,
.cabecalho-resultado-mapa > div > span,
.titulo-etapa-mapa > span {
    color: #2563eb;
    display: block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cabecalho-mapa-horarios h1,
.cabecalho-resultado-mapa h2,
.titulo-etapa-mapa h2 {
    color: #0f172a;
    margin: 5px 0 0;
}

.cabecalho-mapa-horarios p,
.cabecalho-resultado-mapa p,
.titulo-etapa-mapa p {
    color: #64748b;
    margin: 7px 0 0;
}

.resumo-mapa-horarios {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 22px 0;
}

.resumo-mapa-horarios article {
    background: linear-gradient(135deg, #eff6ff, #fff);
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    padding: 16px 18px;
}

.resumo-mapa-horarios strong,
.resumo-mapa-horarios span {
    display: block;
}

.resumo-mapa-horarios strong {
    color: #1e3a8a;
    font-size: 22px;
}

.resumo-mapa-horarios span {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    margin-top: 4px;
    text-transform: uppercase;
}

.secao-mapa-horarios {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 14px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.07);
    margin-top: 18px;
    padding: 20px;
}

.grade-escolas-mapa {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    margin-top: 18px;
}

.filtro-municipio-mapa {
    align-items: center;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    display: grid;
    gap: 8px;
    grid-template-columns: auto minmax(220px, 420px);
    margin-top: 18px;
    padding: 12px 14px;
}

.filtro-municipio-mapa label {
    color: #1e3a8a;
    font-weight: 900;
}

.filtro-municipio-mapa select {
    background: #fff;
    min-height: 42px;
}

.grupo-municipio-mapa {
    border-top: 1px solid #e2e8f0;
    margin-top: 22px;
    padding-top: 18px;
}

.cabecalho-municipio-mapa {
    align-items: center;
    display: flex;
    gap: 15px;
    justify-content: space-between;
}

.cabecalho-municipio-mapa span {
    color: #2563eb;
    display: block;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.cabecalho-municipio-mapa h3 {
    color: #0f172a;
    margin: 3px 0 0;
}

.cabecalho-municipio-mapa > strong {
    background: #e2e8f0;
    border-radius: 999px;
    color: #334155;
    font-size: 12px;
    padding: 6px 10px;
}

.cartao-escola-mapa {
    background: #f8fafc;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    color: #0f172a;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 174px;
    padding: 16px;
    text-decoration: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cartao-escola-mapa:hover,
.cartao-escola-mapa.ativo {
    border-color: #2563eb;
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.14);
    transform: translateY(-2px);
}

.cartao-escola-mapa.ativo {
    background: #eff6ff;
}

.icone-escola-mapa {
    font-size: 28px;
    line-height: 1;
}

.cartao-escola-mapa > strong {
    font-size: 16px;
    line-height: 1.35;
}

.cartao-escola-mapa > small {
    color: #64748b;
}

.cartao-escola-mapa > div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: auto;
}

.cartao-escola-mapa > div span {
    background: #e2e8f0;
    border-radius: 999px;
    color: #334155;
    font-size: 11px;
    font-weight: 800;
    padding: 5px 8px;
}

.form-filtro-mapa-horarios {
    align-items: end;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(220px, 1fr) auto;
    margin-top: 18px;
}

.form-filtro-mapa-horarios label {
    font-weight: 800;
    grid-column: 1 / -1;
}

.form-filtro-mapa-horarios select,
.form-filtro-mapa-horarios button {
    min-height: 44px;
}

.form-consulta-professor-mapa {
    align-items: end;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(210px, 0.8fr) minmax(280px, 1.2fr) auto;
    margin-top: 18px;
    padding: 16px;
}

.form-consulta-professor-mapa > div {
    min-width: 0;
}

.form-consulta-professor-mapa label {
    color: #1e3a8a;
    display: block;
    font-weight: 900;
    margin-bottom: 7px;
}

.form-consulta-professor-mapa select,
.form-consulta-professor-mapa button {
    min-height: 46px;
}

.form-consulta-professor-mapa button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.grade-vinculos-professor-mapa {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin-top: 18px;
}

.grade-vinculos-professor-mapa article {
    background: #fff;
    border: 2px solid #bfdbfe;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 160px;
    padding: 15px;
}

.grade-vinculos-professor-mapa strong,
.grade-vinculos-professor-mapa small {
    display: block;
}

.grade-vinculos-professor-mapa strong {
    color: #0f172a;
    line-height: 1.35;
}

.grade-vinculos-professor-mapa small {
    color: #64748b;
}

.grade-vinculos-professor-mapa .selo-grade-mapa {
    align-self: flex-start;
    font-style: normal;
    margin-top: auto;
}

.resultado-mapa-horarios {
    background: #f8fafc;
}

.escola-horario-professor {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 12px;
    margin-top: 18px;
    overflow: hidden;
}

.escola-horario-professor > header {
    align-items: center;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    gap: 15px;
    justify-content: space-between;
    padding: 15px 18px;
}

.escola-horario-professor > header span:first-child {
    color: #64748b;
    display: block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.escola-horario-professor h3 {
    color: #0f172a;
    margin: 3px 0;
}

.escola-horario-professor small {
    color: #64748b;
}

.selo-grade-mapa {
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    padding: 6px 10px;
    text-transform: uppercase;
    white-space: nowrap;
}

.selo-grade-mapa.disponivel {
    background: #dcfce7;
    color: #166534;
}

.selo-grade-mapa.indisponivel {
    background: #fef3c7;
    color: #92400e;
}

.mensagem-sem-grade-mapa {
    color: #64748b;
    margin: 0;
    padding: 20px;
}

.quadro-turno-mapa {
    padding: 16px 18px 4px;
}

.quadro-turno-mapa h4 {
    color: #1e3a8a;
    margin: 0 0 10px;
}

.tabela-mapa-horarios table {
    min-width: 850px;
    table-layout: fixed;
}

.tabela-mapa-horarios th,
.tabela-mapa-horarios td {
    border: 1px solid #dbe3ea;
    padding: 8px;
    text-align: center;
    vertical-align: top;
}

.tabela-mapa-horarios thead th,
.tabela-mapa-horarios tbody th {
    background: #eff6ff;
    color: #1e3a8a;
}

.tabela-mapa-horarios th:first-child {
    width: 145px;
}

.aula-mapa-professor {
    background: #dbeafe;
    border-left: 3px solid #2563eb;
    border-radius: 6px;
    color: #1e3a8a;
    padding: 7px;
}

.aula-mapa-professor + .aula-mapa-professor {
    margin-top: 5px;
}

.aula-mapa-professor strong,
.aula-mapa-professor span {
    display: block;
}

.aula-mapa-professor span,
.horario-livre-mapa {
    font-size: 11px;
    margin-top: 3px;
}

.horario-livre-mapa {
    color: #94a3b8;
}

@media (max-width: 720px) {
    .cabecalho-mapa-horarios,
    .cabecalho-resultado-mapa,
    .escola-horario-professor > header {
        align-items: stretch;
        flex-direction: column;
    }

    .resumo-mapa-horarios,
    .form-filtro-mapa-horarios,
    .filtro-municipio-mapa,
    .form-consulta-professor-mapa {
        grid-template-columns: 1fr;
    }

    .form-filtro-mapa-horarios button {
        width: 100%;
    }
}

@media print {
    body.dashboard-escola .topo,
    body.dashboard-escola .cabecalho-mapa-horarios > .botao-form-link,
    body.dashboard-escola .resumo-mapa-horarios,
    body.dashboard-escola .secao-mapa-horarios:not(.resultado-mapa-horarios),
    body.dashboard-escola .cabecalho-resultado-mapa button {
        display: none !important;
    }

    body.dashboard-escola .resultado-mapa-horarios {
        border: 0;
        box-shadow: none;
        margin: 0;
        padding: 0;
    }

    body.dashboard-escola .escola-horario-professor {
        break-inside: avoid;
    }
}

.gerador-horarios-indicadores {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    margin: 18px 0;
}

.gerador-horarios-indicadores article {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 16px;
}

.gerador-horarios-indicadores span {
    color: #64748b;
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.gerador-horarios-indicadores strong {
    color: #0f172a;
    display: block;
    font-size: 28px;
    margin-top: 6px;
}

.gerador-horarios-acoes {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 22px 0;
}

.status-gerador-pronto {
    align-items: center;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    border-left: 4px solid #16a34a;
    border-radius: 8px;
    color: #166534;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    min-height: 34px;
    padding: 7px 12px;
    text-transform: uppercase;
}

.gerador-horarios-acoes article,
.lista-componentes-professores article {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 16px;
}

.gerador-horarios-acoes h2 {
    font-size: 18px;
    margin: 0 0 8px;
}

.gerador-horarios-acoes p {
    color: #64748b;
    font-weight: 700;
    margin: 0 0 14px;
}

.acoes-card-gerador {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.acoes-card-gerador .botao-acao,
.acoes-card-gerador button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    line-height: 1;
    min-height: 34px;
}

.gerador-horarios-acoes .botao-card-gerador {
    background: linear-gradient(180deg, #fb923c 0%, #f97316 52%, #c2410c 100%) !important;
    border: 1px solid #ea580c !important;
    box-shadow: 0 8px 18px rgba(194, 65, 12, 0.22);
    color: #ffffff !important;
}

.gerador-horarios-acoes .botao-card-gerador:hover {
    background: linear-gradient(180deg, #fdba74 0%, #f97316 50%, #9a3412 100%) !important;
    border-color: #c2410c !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}

.gerador-horarios-acoes button:disabled {
    background: #94a3b8;
    cursor: not-allowed;
}

.secao-grade-provisoria {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 18px;
}

.cabecalho-grade-provisoria {
    align-items: center;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cabecalho-grade-provisoria span {
    color: #64748b;
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.cabecalho-grade-provisoria h2 {
    margin: 4px 0 0;
}

.resumo-grade-provisoria {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    margin-bottom: 16px;
}

.resumo-grade-provisoria article {
    background: #f8fafc;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    padding: 14px;
}

.resumo-grade-provisoria span {
    color: #64748b;
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.resumo-grade-provisoria strong {
    color: #0f172a;
    display: block;
    font-size: 26px;
    margin-top: 4px;
}

.analise-grade-salva {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 18px;
}

.resumo-analise-grade .indicador-ok {
    background: #ecfdf5;
    border-color: #bbf7d0;
}

.resumo-analise-grade .indicador-ok strong {
    color: #166534;
}

.resumo-analise-grade .indicador-aviso {
    background: #fffbeb;
    border-color: #fde68a;
}

.resumo-analise-grade .indicador-aviso strong {
    color: #92400e;
}

.resumo-analise-grade .indicador-critico {
    background: #fef2f2;
    border-color: #fecaca;
}

.resumo-analise-grade .indicador-critico strong {
    color: #991b1b;
}

.lista-analise-grade {
    display: grid;
    gap: 10px;
}

.item-analise-grade {
    border: 1px solid #e2e8f0;
    border-left-width: 5px;
    border-radius: 8px;
    padding: 12px 14px;
}

.item-analise-grade strong {
    display: block;
    font-size: 13px;
    margin-bottom: 4px;
}

.item-analise-grade span {
    color: #334155;
    display: block;
    font-size: 14px;
    line-height: 1.45;
}

.item-analise-critico {
    background: #fef2f2;
    border-left-color: #dc2626;
}

.item-analise-critico strong {
    color: #991b1b;
}

.item-analise-aviso {
    background: #fffbeb;
    border-left-color: #f59e0b;
}

.item-analise-aviso strong {
    color: #92400e;
}

.texto-analise-grade-extra {
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
    margin: 12px 0 0;
}

.tabela-pendencias-grade {
    max-height: 260px;
}

.form-salvar-grade-provisoria {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin: 0 0 14px;
}

.form-salvar-grade-provisoria button {
    min-height: 42px;
}

.cabecalho-impressao-grade,
.grade-impressao-geral,
.folha-horario-cabecalho-impressao {
    display: none;
}

.quadros-grade-provisoria {
    display: grid;
    gap: 18px;
    max-height: 680px;
    overflow-y: auto;
    padding-right: 6px;
}

.quadros-grade-professores {
    display: grid;
    gap: 18px;
    max-height: 680px;
    overflow-y: auto;
    padding-right: 6px;
}

.cabecalho-grade-secundaria {
    align-items: center;
    border-top: 1px solid #e2e8f0;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin: 22px 0 14px;
    padding-top: 18px;
}

.cabecalho-grade-secundaria span {
    color: #64748b;
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.cabecalho-grade-secundaria h3 {
    color: #0f172a;
    font-size: 20px;
    margin: 4px 0 0;
}

.resumo-grade-professores {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.resumo-grade-professores span {
    background: #f8fafc;
    border: 1px solid #dbe3ea;
    border-radius: 999px;
    color: #334155;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    padding: 6px 10px;
}

.quadro-horario-provisorio,
.quadro-horario-professor {
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    overflow: hidden;
}

.quadro-horario-provisorio header,
.quadro-horario-professor header {
    align-items: center;
    background: #f8fafc;
    border-bottom: 1px solid #dbe3ea;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 12px 14px;
}

.quadro-horario-provisorio h3,
.quadro-horario-professor h3 {
    color: #0f172a;
    font-size: 18px;
    margin: 0;
}

.quadro-horario-professor header small {
    color: #64748b;
    display: block;
    font-size: 12px;
    font-weight: 800;
    margin-top: 4px;
}

.quadro-horario-scroll {
    overflow-x: auto;
    overflow-y: hidden;
}

.quadro-horario-turma {
    border-collapse: collapse;
    min-width: 820px;
    width: 100%;
}

.quadro-horario-turma th,
.quadro-horario-turma td {
    border: 1px solid #e2e8f0;
    min-width: 128px;
    padding: 7px;
    text-align: center;
    vertical-align: top;
}

.quadro-horario-turma thead th,
.quadro-horario-turma tbody th {
    background: #eef2f7;
    color: #0f172a;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.quadro-horario-turma tbody th {
    min-width: 118px;
    width: 118px;
}

.rotulo-horario-grade {
    line-height: 1.15;
    white-space: nowrap;
}

.quadro-horario-turma td {
    background: #ffffff;
    height: 58px;
}

.celula-grade-editavel {
    transition: background-color 0.18s ease, box-shadow 0.18s ease;
}

.celula-grade-editavel.alvo-grade {
    background: #fef9c3;
    box-shadow: inset 0 0 0 2px #eab308;
}

.aula-grade-provisoria,
.aula-grade-professor {
    background: var(--cor-aula-fundo, #f8fafc);
    border: 1px solid var(--cor-aula-borda, #cbd5e1);
    border-left: 4px solid var(--cor-aula-borda, #64748b);
    border-radius: 6px;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.07);
    color: var(--cor-aula-texto, #0f172a);
    cursor: grab;
    min-height: 44px;
    padding: 6px 7px;
}

.aula-grade-professor {
    cursor: default;
    min-height: 40px;
}

.aula-grade-professor + .aula-grade-professor {
    margin-top: 6px;
}

.aula-grade-provisoria.arrastando {
    cursor: grabbing;
    opacity: 0.58;
}

.aula-grade-provisoria strong,
.aula-grade-provisoria span,
.aula-grade-professor strong,
.aula-grade-professor span {
    display: block;
    overflow-wrap: anywhere;
}

.aula-grade-provisoria strong,
.aula-grade-professor strong {
    color: var(--cor-aula-texto, #0f172a);
    font-size: 11px;
    line-height: 1.15;
}

.aula-grade-provisoria span,
.aula-grade-professor span {
    color: var(--cor-aula-texto, #475569);
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.15;
    margin-top: 3px;
    opacity: 0.82;
}

.quadro-horario-turma td em {
    color: #94a3b8;
    font-style: normal;
    font-weight: 800;
}

.tag-turno-grade {
    background: #e0f2fe;
    border: 1px solid #bae6fd;
    border-radius: 999px;
    color: #075985;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    padding: 4px 8px;
}

.secao-grade-provisoria > h3 {
    font-size: 18px;
    margin: 18px 0 10px;
}

@media print {
    body.imprimir-grade-horarios {
        background: #fff !important;
        color: #111827 !important;
    }

    body.imprimir-grade-horarios .topo,
    body.imprimir-grade-horarios .video-fundo-interno,
    body.imprimir-grade-horarios .cabecalho-grade-horarios,
    body.imprimir-grade-horarios .gerador-horarios-indicadores,
    body.imprimir-grade-horarios .gerador-horarios-acoes,
    body.imprimir-grade-horarios .cabecalho-grade-provisoria,
    body.imprimir-grade-horarios .resumo-grade-provisoria,
    body.imprimir-grade-horarios .form-salvar-grade-provisoria,
    body.imprimir-grade-horarios .tabela-pendencias-grade,
    body.imprimir-grade-horarios #disponibilidade-professores,
    body.imprimir-grade-horarios #aulas-por-turma,
    body.imprimir-grade-horarios .secao-grade-horarios:not(#grade-provisoria),
    body.imprimir-grade-horarios #educatech-pwa-cleanup,
    body.imprimir-grade-horarios #tabelas-mobile-labels,
    body.imprimir-grade-horarios #mascara-telefone-brasil {
        display: none !important;
    }

    body.imprimir-grade-horarios .container-gerador-horarios {
        box-shadow: none !important;
        margin: 0 !important;
        max-width: none !important;
        padding: 0 !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios #grade-provisoria {
        border: 0 !important;
        box-shadow: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.imprimir-grade-horarios .cabecalho-impressao-grade,
    body.imprimir-grade-horarios .grade-impressao-geral {
        display: none !important;
    }

    body.imprimir-grade-horarios .quadros-grade-provisoria {
        display: block !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio {
        border: 1px solid #dbe3ea !important;
        border-radius: 8px !important;
        box-sizing: border-box !important;
        break-after: page;
        break-inside: avoid;
        display: block !important;
        margin: 0 auto !important;
        max-width: 100% !important;
        overflow: hidden !important;
        page-break-after: always;
        page-break-inside: avoid;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio:last-child {
        break-after: auto;
        page-break-after: auto;
    }

    body.imprimir-grade-horarios .folha-horario-cabecalho-impressao {
        align-items: center !important;
        background: #ffffff !important;
        border-bottom: 1px solid #dbe3ea !important;
        display: grid !important;
        gap: 8px !important;
        grid-template-columns: 68px 1fr 68px !important;
        min-height: 64px !important;
        padding: 8px 12px !important;
        text-align: center !important;
    }

    body.imprimir-grade-horarios .logo-impressao-grade {
        align-items: center !important;
        display: flex !important;
        justify-content: center !important;
    }

    body.imprimir-grade-horarios .logo-impressao-grade img {
        display: block !important;
        max-height: 52px !important;
        max-width: 64px !important;
        object-fit: contain !important;
    }

    body.imprimir-grade-horarios .titulo-impressao-grade {
        display: grid !important;
        gap: 2px !important;
        justify-items: center !important;
    }

    body.imprimir-grade-horarios .titulo-impressao-grade strong {
        color: #0f172a !important;
        font-size: 12px !important;
        line-height: 1.15 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .titulo-impressao-grade h2 {
        color: #0f172a !important;
        font-size: 18px !important;
        line-height: 1 !important;
        margin: 0 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .titulo-impressao-grade span {
        color: #0f172a !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio header {
        align-items: center !important;
        background: #f8fafc !important;
        border-bottom: 1px solid #dbe3ea !important;
        display: flex !important;
        justify-content: space-between !important;
        min-height: 0 !important;
        padding: 8px 12px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio h3 {
        color: #111827 !important;
        font-size: 15px !important;
        margin: 0 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .tag-turno-grade {
        background: #e0f2fe !important;
        border: 1px solid #bae6fd !important;
        border-radius: 999px !important;
        color: #075985 !important;
        font-size: 11px !important;
        padding: 3px 7px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-scroll {
        display: block !important;
        overflow: visible !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma {
        border-collapse: collapse !important;
        font-size: 10px !important;
        height: auto !important;
        margin: 0 !important;
        min-width: 0 !important;
        table-layout: fixed !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma th,
    body.imprimir-grade-horarios .quadro-horario-turma td {
        border: 1px solid #e2e8f0 !important;
        min-width: 0 !important;
        overflow-wrap: anywhere !important;
        padding: 5px !important;
        text-align: center !important;
        vertical-align: middle !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma thead th,
    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        background: #eef2f7 !important;
        color: #0f172a !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        width: 58px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma td {
        height: 48px !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria {
        background: #f8fafc !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 8px !important;
        cursor: default !important;
        min-height: 36px !important;
        padding: 5px !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong,
    body.imprimir-grade-horarios .aula-grade-provisoria span {
        display: block !important;
        overflow-wrap: anywhere !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong {
        color: #111827 !important;
        font-size: 9px !important;
        line-height: 1.12 !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria span {
        color: #374151 !important;
        font-size: 8.5px !important;
        line-height: 1.12 !important;
        margin-top: 3px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma td em {
        color: #9ca3af !important;
    }
}

@media print {
    body.imprimir-grade-horarios .folha-horario-cabecalho-impressao,
    body.imprimir-grade-horarios .cabecalho-impressao-grade,
    body.imprimir-grade-horarios .grade-impressao-geral {
        display: none !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio {
        background: #ffffff !important;
        border: 1px solid #dbe3ea !important;
        border-radius: 8px !important;
        box-shadow: none !important;
        display: block !important;
        margin: 0 !important;
        max-width: none !important;
        overflow: hidden !important;
        page-break-after: always;
        break-after: page;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio:last-child {
        page-break-after: auto;
        break-after: auto;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio header {
        align-items: center !important;
        background: #f8fafc !important;
        border-bottom: 1px solid #dbe3ea !important;
        display: flex !important;
        gap: 12px !important;
        justify-content: space-between !important;
        padding: 12px 14px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio h3 {
        color: #0f172a !important;
        font-size: 18px !important;
        margin: 0 !important;
        text-transform: none !important;
    }

    body.imprimir-grade-horarios .tag-turno-grade {
        background: #e0f2fe !important;
        border: 1px solid #bae6fd !important;
        border-radius: 999px !important;
        color: #075985 !important;
        display: inline-flex !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        padding: 4px 8px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-scroll {
        overflow: visible !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma {
        border-collapse: collapse !important;
        min-width: 820px !important;
        table-layout: auto !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma th,
    body.imprimir-grade-horarios .quadro-horario-turma td {
        border: 1px solid #e2e8f0 !important;
        min-width: 128px !important;
        padding: 10px !important;
        text-align: center !important;
        vertical-align: top !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma thead th,
    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        background: #eef2f7 !important;
        color: #0f172a !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        min-width: 82px !important;
        width: 82px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma td {
        background: #ffffff !important;
        height: 74px !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria {
        background: #f8fafc !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 8px !important;
        cursor: default !important;
        min-height: 56px !important;
        padding: 8px !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong,
    body.imprimir-grade-horarios .aula-grade-provisoria span {
        display: block !important;
        overflow-wrap: anywhere !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong {
        color: #0f172a !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria span {
        color: #475569 !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        margin-top: 6px !important;
    }
}

@media print {
    body.imprimir-grade-horarios .quadro-horario-provisorio {
        border: 1px solid #111827 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        page-break-after: always !important;
        break-after: page !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio:last-child {
        page-break-after: auto !important;
        break-after: auto !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio header {
        background: #f3f4f6 !important;
        border-bottom: 1px solid #111827 !important;
        padding: 6px 10px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio h3 {
        font-size: 16px !important;
        line-height: 1 !important;
    }

    body.imprimir-grade-horarios .tag-turno-grade {
        background: #ffffff !important;
        border-color: #111827 !important;
        border-radius: 0 !important;
        color: #111827 !important;
        font-size: 11px !important;
        padding: 2px 6px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma {
        border-collapse: collapse !important;
        min-width: 0 !important;
        table-layout: fixed !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma th,
    body.imprimir-grade-horarios .quadro-horario-turma td {
        border: 1px solid #111827 !important;
        min-width: 0 !important;
        padding: 3px !important;
        text-align: center !important;
        vertical-align: middle !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma thead th,
    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        background: #e5e7eb !important;
        color: #111827 !important;
        font-size: 9px !important;
        font-weight: 900 !important;
        line-height: 1.05 !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        width: 48px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma td {
        background: #ffffff !important;
        height: 42px !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria {
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        min-height: 0 !important;
        padding: 0 !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong,
    body.imprimir-grade-horarios .aula-grade-provisoria span {
        display: block !important;
        overflow-wrap: anywhere !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong {
        color: #111827 !important;
        font-size: 8.5px !important;
        font-weight: 900 !important;
        line-height: 1.05 !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria span {
        color: #374151 !important;
        font-size: 8px !important;
        font-weight: 700 !important;
        line-height: 1.05 !important;
        margin-top: 2px !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma td em {
        color: #9ca3af !important;
        font-size: 9px !important;
    }
}

@media print {
    body.imprimir-grade-horarios .quadros-grade-provisoria {
        display: block !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio {
        background: #ffffff !important;
        border: 1px solid #111827 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
        break-after: page !important;
        break-inside: avoid !important;
        display: block !important;
        height: 184mm !important;
        margin: 0 !important;
        overflow: hidden !important;
        page-break-after: always !important;
        page-break-inside: avoid !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio:last-child {
        break-after: auto !important;
        page-break-after: auto !important;
    }

    body.imprimir-grade-horarios .folha-horario-cabecalho-impressao,
    body.imprimir-grade-horarios .cabecalho-impressao-grade,
    body.imprimir-grade-horarios .grade-impressao-geral {
        display: none !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio header {
        align-items: center !important;
        background: #f3f4f6 !important;
        border-bottom: 1px solid #111827 !important;
        box-sizing: border-box !important;
        display: flex !important;
        height: 18mm !important;
        justify-content: space-between !important;
        padding: 3mm 5mm !important;
    }

    body.imprimir-grade-horarios .quadro-horario-provisorio h3 {
        color: #111827 !important;
        font-size: 17pt !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        margin: 0 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .tag-turno-grade {
        background: #ffffff !important;
        border: 1px solid #111827 !important;
        border-radius: 0 !important;
        color: #111827 !important;
        font-size: 12pt !important;
        font-weight: 900 !important;
        padding: 1.5mm 4mm !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .quadro-horario-scroll {
        height: 166mm !important;
        overflow: hidden !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma {
        border-collapse: collapse !important;
        height: 100% !important;
        margin: 0 !important;
        min-width: 0 !important;
        table-layout: fixed !important;
        width: 100% !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma th,
    body.imprimir-grade-horarios .quadro-horario-turma td {
        border: 1px solid #111827 !important;
        box-sizing: border-box !important;
        min-width: 0 !important;
        overflow: hidden !important;
        padding: 2mm !important;
        text-align: center !important;
        vertical-align: middle !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma thead th {
        background: #e5e7eb !important;
        color: #111827 !important;
        font-size: 9pt !important;
        font-weight: 900 !important;
        height: 14mm !important;
        line-height: 1.05 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma tbody th {
        background: #e5e7eb !important;
        color: #111827 !important;
        font-size: 9pt !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        width: 18mm !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma tbody td {
        background: #ffffff !important;
        height: 25mm !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria {
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        min-height: 0 !important;
        padding: 0 !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong,
    body.imprimir-grade-horarios .aula-grade-provisoria span {
        display: block !important;
        overflow-wrap: anywhere !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria strong {
        color: #111827 !important;
        font-size: 9pt !important;
        font-weight: 900 !important;
        line-height: 1.12 !important;
    }

    body.imprimir-grade-horarios .aula-grade-provisoria span {
        color: #374151 !important;
        font-size: 8pt !important;
        font-weight: 700 !important;
        line-height: 1.12 !important;
        margin-top: 1.5mm !important;
    }

    body.imprimir-grade-horarios .quadro-horario-turma td em {
        color: #9ca3af !important;
        font-size: 10pt !important;
        font-style: normal !important;
    }
}

.lista-componentes-professores {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
    max-height: 420px;
    overflow-y: auto;
    padding-right: 6px;
}

.lista-componentes-professores strong,
.lista-componentes-professores span {
    display: block;
}

.lista-componentes-professores article {
    width: 100%;
}

.lista-componentes-professores span {
    color: #475569;
    line-height: 1.45;
    margin-top: 6px;
}

.filtro-gerador-professor {
    align-items: end;
    grid-template-columns: minmax(260px, 420px) auto;
    justify-content: start;
    margin: 12px 0 18px;
    max-width: 620px;
    padding: 12px;
}

.filtro-gerador-professor > label {
    display: grid;
    gap: 6px;
    margin: 0;
}

.formulario-disponibilidade-horarios {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 18px;
}

.cabecalho-disponibilidade-professor {
    align-items: center;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cabecalho-disponibilidade-professor span,
.cabecalho-disponibilidade-professor small {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.cabecalho-disponibilidade-professor span {
    display: block;
    text-transform: uppercase;
}

.cabecalho-disponibilidade-professor strong {
    color: #0f172a;
    display: block;
    font-size: 20px;
    margin-top: 4px;
}

.grade-disponibilidade-professor {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
}

.grade-disponibilidade-professor fieldset {
    background: #f8fafc;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 12px;
}

.grade-disponibilidade-professor legend {
    color: #0f172a;
    font-size: 13px;
}

.turnos-disponibilidade-dia {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.turno-disponibilidade {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 8px;
    grid-template-rows: auto 1fr;
    min-height: 174px;
    padding: 10px;
}

.turno-disponibilidade > strong {
    color: #0f172a;
    font-size: 12px;
}

.turno-disponibilidade > strong.rotulo-turno-disponibilidade {
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    justify-self: start;
    padding: 3px 8px;
}

.turno-disponibilidade-matutino {
    background: #eff6ff;
    color: #1d4ed8 !important;
}

.turno-disponibilidade-vespertino {
    background: #ecfdf5;
    color: #15803d !important;
}

.turno-disponibilidade-noturno {
    background: #fef9c3;
    color: #854d0e !important;
}

.horarios-turno-disponibilidade {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.horarios-turno-disponibilidade .check {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    justify-content: flex-start;
    min-height: 34px;
    min-width: 0;
    padding: 4px;
    width: 100%;
}

.horarios-turno-disponibilidade .check span {
    font-size: 11px;
}

.horarios-turno-disponibilidade .rotulo-horario-disponibilidade {
    color: #0f172a;
    display: inline;
    font-weight: 400;
    line-height: 1.15;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}

.horarios-turno-disponibilidade .intervalo-horario-disponibilidade {
    color: #dc2626;
    display: inline;
    font-weight: 500;
}

.horarios-turno-disponibilidade .check-haf-ocupado {
    background: #eef2ff;
    border-color: #bfdbfe;
    color: #1e3a8a;
    cursor: not-allowed;
    opacity: 0.92;
}

.horarios-turno-disponibilidade .check-haf-ocupado input {
    cursor: not-allowed;
}

.horarios-turno-disponibilidade .check-haf-ocupado small {
    color: #dc2626;
    display: block;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.15;
    margin-top: 2px;
}

.formulario-aulas-turma-horarios {
    align-items: end;
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(150px, 0.9fr) minmax(210px, 1.2fr) minmax(190px, 1fr) 130px 120px auto;
    margin-bottom: 16px;
    padding: 16px;
}

.formulario-aulas-turma-horarios > div {
    display: grid;
    gap: 6px;
}

.formulario-aulas-turma-horarios .botoes-formulario {
    align-items: end;
    margin: 0;
}

.formulario-aulas-turma-horarios button {
    min-height: 42px;
    white-space: nowrap;
}

.tabela-aulas-turma-horarios {
    max-height: 330px;
    overflow-x: auto;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.tabela-aulas-turma-horarios thead th {
    background: #f8fafc;
    position: sticky;
    top: 0;
    z-index: 2;
}

.tabela-aulas-turma-horarios td:last-child,
.tabela-aulas-turma-horarios th:last-child {
    text-align: center;
    width: 128px;
}

.tabela-aulas-turma-horarios td:last-child {
    overflow: hidden;
}

.tabela-aulas-turma-horarios .form-inline {
    display: flex;
    justify-content: center;
    margin: 0;
    width: 100%;
}

.tabela-aulas-turma-horarios .botao-excluir-notificacao {
    box-sizing: border-box;
    min-width: 82px;
    padding-left: 10px;
    padding-right: 10px;
    width: auto;
}

.secao-grade-horarios,
.formulario-grade-horarios {
    margin-top: 22px;
}

.filtro-grade-professores {
    align-items: end;
    grid-template-columns: minmax(260px, 420px) auto;
    justify-content: center;
    margin: 12px auto 18px;
    max-width: 660px;
    padding: 12px;
}

.filtro-grade-professores label {
    display: grid;
    gap: 6px;
    margin: 0;
}

.filtro-grade-professores input[type="search"] {
    height: 42px;
    min-height: 42px;
    padding-bottom: 8px;
    padding-top: 8px;
}

.filtro-grade-professores .filtros-acoes {
    align-items: end;
    display: flex;
    gap: 10px;
    grid-column: auto;
    justify-content: flex-start;
    margin: 0;
    padding-top: 0;
}

.filtro-grade-professores .filtros-acoes button,
.filtro-grade-professores .filtros-acoes a {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    line-height: 1;
    min-height: 42px;
    padding-bottom: 0;
    padding-top: 0;
    width: 104px;
}

.cabecalho-grade-horarios {
    align-items: center;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-bottom: 18px;
}

.cabecalho-grade-horarios span {
    color: #64748b;
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.cabecalho-grade-horarios h2 {
    margin: 4px 0 0;
}

.tabela-grade-professores table {
    table-layout: fixed;
}

.tabela-grade-professores th:last-child,
.tabela-grade-professores td:last-child {
    text-align: center;
    width: 160px;
}

.grade-semanal-professor {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
}

.abas-rotina-escolas {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0 18px;
}

.aba-rotina-escola {
    background: #e5e7eb;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    box-shadow: none;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
    min-height: 38px;
    padding: 0 14px;
}

.aba-rotina-escola:hover,
.aba-rotina-escola-ativa {
    background: linear-gradient(180deg, #93c5fd, #2563eb);
    border-color: #1d4ed8;
    color: #fff;
}

.painel-rotina-escola[hidden] {
    display: none !important;
}

.rotina-escola-identificacao {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #f97316;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    display: grid;
    gap: 3px;
    margin: 0 0 18px;
    padding: 12px 14px;
}

.rotina-escola-identificacao span {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.rotina-escola-identificacao strong {
    color: #0f172a;
    font-size: 17px;
    line-height: 1.2;
}

.resumo-rotina-pedagogica {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 22px 0;
}

.resumo-rotina-pedagogica article {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-left: 5px solid #2563eb;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    min-height: 112px;
    padding: 16px;
}

.resumo-rotina-pedagogica span {
    color: #64748b;
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.resumo-rotina-pedagogica strong {
    color: #0f172a;
    display: block;
    font-size: 26px;
    line-height: 1.08;
    margin-top: 8px;
    overflow-wrap: anywhere;
}

.resumo-rotina-pedagogica small {
    color: #475569;
    display: block;
    font-weight: 700;
    line-height: 1.35;
    margin-top: 8px;
}

.card-proxima-aula-rotina {
    background: linear-gradient(180deg, #eff6ff, #ffffff) !important;
    border-left-color: #16a34a !important;
}

.card-proxima-aula-rotina strong {
    font-size: 22px;
}

.dia-grade-professor {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 14px;
}

.dia-grade-professor h2,
.dia-grade-professor h3 {
    color: #0f172a;
    font-size: 17px;
    margin: 0 0 12px;
}

.texto-grade-vazia {
    color: #64748b;
    font-size: 14px;
    margin: 0;
}

.lista-aulas-grade {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lista-aulas-grade li {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 10px;
}

.lista-aulas-grade li.item-grade-haf {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.lista-aulas-grade li.item-grade-haf .horario-aula-grade {
    background: #ecfdf5;
    border-color: #86efac;
    color: #166534;
}

.lista-aulas-grade li.item-grade-haf .horario-aula-grade strong,
.lista-aulas-grade li.item-grade-haf .horario-aula-grade span {
    color: #166534;
}

.lista-aulas-grade li.item-grade-acolhimento {
    background: #fef2f2;
    border-color: #fca5a5;
    border-left: 5px solid #dc2626;
    box-shadow: 0 10px 24px rgba(220, 38, 38, 0.14);
}

.lista-aulas-grade li.item-grade-acolhimento .horario-aula-grade {
    background: #e5e7eb;
    border-color: #9ca3af;
    color: #374151;
}

.lista-aulas-grade li.item-grade-acolhimento .horario-aula-grade strong,
.lista-aulas-grade li.item-grade-acolhimento .horario-aula-grade span {
    color: #374151;
}

.lista-aulas-grade li.item-grade-acolhimento .dados-aula-grade strong {
    color: #991b1b;
}

.lista-aulas-grade li.item-grade-acolhimento .dados-aula-grade span,
.lista-aulas-grade li.item-grade-acolhimento .dados-aula-grade small {
    color: #7f1d1d;
}

.horario-aula-grade {
    align-items: center;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1e3a8a;
    display: flex;
    gap: 5px;
    grid-column: 1;
    grid-row: 1;
    justify-content: center;
    justify-self: start;
    min-height: 38px;
    padding: 5px 8px;
    white-space: nowrap;
}

.horario-aula-grade strong {
    color: #1d4ed8;
    font-size: 13px;
}

.horario-aula-grade span {
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.dados-aula-grade {
    color: #334155;
    display: grid;
    gap: 3px;
    grid-column: 1;
    grid-row: 2;
    line-height: 1.25;
    min-width: 0;
}

.dados-aula-grade strong {
    color: #0f172a;
    overflow-wrap: anywhere;
}

.dados-aula-grade span,
.lista-aulas-grade small {
    color: #64748b;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.lista-aulas-grade form {
    align-self: center;
    display: flex;
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-content: flex-end;
    margin: 0;
    min-width: 0;
}

.lista-aulas-grade .botao-acao {
    height: 38px;
    min-width: 82px;
    padding: 0 10px;
    width: auto;
}

.formulario-grade-horarios {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    padding: 20px;
}

.cabecalho-adicionar-aula-grade {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    margin-bottom: 12px;
}

.cabecalho-adicionar-aula-grade h2 {
    margin: 0;
}

.formulario-grade-horarios .cabecalho-adicionar-aula-grade form {
    display: inline-flex;
    gap: 8px;
    margin: 0;
}

.form-replicar-grade select {
    min-height: 40px;
    min-width: 150px;
    padding-bottom: 8px;
    padding-top: 8px;
    width: 180px;
}

.cabecalho-adicionar-aula-grade button {
    align-items: center;
    display: inline-flex;
    flex: 0 0 150px;
    font-size: 12.5px;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.15;
    min-height: 44px;
    overflow-wrap: anywhere;
    padding: 6px 10px;
    text-align: center;
    width: 150px;
    word-break: normal;
}

.cabecalho-adicionar-aula-grade .botao-replicar-segunda {
    background: linear-gradient(180deg, #86efac, #16a34a);
    border: 1px solid #15803d;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 12px 24px rgba(22, 163, 74, 0.22);
    color: #052e16;
}

.cabecalho-adicionar-aula-grade .botao-replicar-segunda:hover {
    background: linear-gradient(180deg, #bbf7d0, #15803d);
    color: #052e16;
}

.formulario-grade-horarios form {
    display: grid;
    gap: 10px;
}

.linha-horarios-grade {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.linha-horarios-grade input {
    width: 100%;
}

@media (max-width: 700px) {
    .filtro-grade-professores {
        grid-template-columns: 1fr;
        max-width: none;
        width: 100%;
    }

    .filtro-grade-professores .filtros-acoes {
        align-items: stretch;
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .filtro-grade-professores .filtros-acoes button,
    .filtro-grade-professores .filtros-acoes a {
        width: 100%;
    }

    .cabecalho-grade-horarios {
        align-items: stretch;
        flex-direction: column;
    }

    .cabecalho-adicionar-aula-grade {
        align-items: stretch;
        flex-direction: column;
    }

    .formulario-grade-horarios .cabecalho-adicionar-aula-grade form {
        display: grid;
        grid-template-columns: 1fr;
    }

    .form-replicar-grade select {
        width: 100%;
    }

    .cabecalho-adicionar-aula-grade button {
        width: 100%;
    }

    .filtro-gerador-professor,
    .gerador-horarios-indicadores,
    .gerador-horarios-acoes,
    .resumo-grade-provisoria,
    .resumo-rotina-pedagogica {
        grid-template-columns: 1fr;
    }

    .cabecalho-grade-provisoria {
        align-items: stretch;
        flex-direction: column;
    }

    .cabecalho-disponibilidade-professor {
        align-items: flex-start;
        flex-direction: column;
    }

    .grade-disponibilidade-professor {
        grid-template-columns: 1fr;
    }

    .turnos-disponibilidade-dia,
    .horarios-turno-disponibilidade {
        grid-template-columns: 1fr;
    }

    .formulario-aulas-turma-horarios {
        grid-template-columns: 1fr;
    }

    .lista-aulas-grade li {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .horario-aula-grade,
    .dados-aula-grade,
    .lista-aulas-grade form {
        grid-column: 1;
        grid-row: auto;
    }

    .lista-aulas-grade form,
    .lista-aulas-grade .botao-acao {
        justify-content: center;
        width: 100%;
    }

    .linha-horarios-grade {
        grid-template-columns: 1fr;
    }

    .tabela-grade-professores th:last-child,
    .tabela-grade-professores td:last-child {
        width: auto;
    }
}

@media (max-width: 700px) {
    body:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao[data-label] {
        display: block !important;
        padding-top: 10px !important;
        text-align: left !important;
        width: 100% !important;
    }

    body:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao[data-label]::before {
        display: block !important;
        margin-bottom: 10px !important;
        text-align: left !important;
    }

    body:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao .form-inline {
        justify-content: center !important;
        margin-top: 6px !important;
        width: 100% !important;
    }

    body:not(.impressao).dashboard-escola .secao-licenciada .acao-outorgar-direcao .botao-acao {
        width: 100% !important;
    }
}

.grade-impressao-limpa {
    display: none;
}

@media print {
    html.imprimir-grade-limpa-html *,
    body.imprimir-grade-limpa * {
        -ms-overflow-style: none !important;
        scrollbar-width: none !important;
    }

    html.imprimir-grade-limpa-html *::-webkit-scrollbar,
    body.imprimir-grade-limpa *::-webkit-scrollbar {
        background: transparent !important;
        display: none !important;
        height: 0 !important;
        width: 0 !important;
    }

    html.imprimir-grade-limpa-html,
    body.imprimir-grade-limpa {
        background: #ffffff !important;
        height: auto !important;
        margin: 0 !important;
        max-width: none !important;
        min-height: 0 !important;
        min-width: 0 !important;
        -ms-overflow-style: none !important;
        overflow: hidden !important;
        padding: 0 !important;
        scrollbar-gutter: auto !important;
        scrollbar-width: none !important;
        width: 100% !important;
    }

    html.imprimir-grade-limpa-html::-webkit-scrollbar,
    body.imprimir-grade-limpa::-webkit-scrollbar,
    body.imprimir-grade-limpa .grade-impressao-limpa::-webkit-scrollbar,
    body.imprimir-grade-limpa .pagina-grade::-webkit-scrollbar {
        display: none !important;
        height: 0 !important;
        width: 0 !important;
    }

    html.imprimir-grade-limpa-html body.imprimir-grade-limpa {
        isolation: auto !important;
        position: static !important;
    }

    body.imprimir-grade-limpa > *:not(.grade-impressao-limpa) {
        display: none !important;
    }

    body.imprimir-grade-limpa .grade-impressao-limpa {
        color: #111827 !important;
        display: block !important;
        font-family: Arial, Helvetica, sans-serif !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        -ms-overflow-style: none !important;
        overflow: hidden !important;
        padding: 0 !important;
        scrollbar-gutter: auto !important;
        scrollbar-width: none !important;
        width: 297mm !important;
    }

    body.imprimir-grade-limpa .pagina-grade {
        background: #ffffff !important;
        border: 0 !important;
        break-after: page;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        height: 210mm !important;
        margin: 0 !important;
        max-width: none !important;
        min-width: 0 !important;
        overflow: hidden !important;
        scrollbar-gutter: auto !important;
        page-break-after: always;
        width: 297mm !important;
    }

    body.imprimir-grade-limpa .pagina-grade:last-child {
        break-after: auto !important;
        page-break-after: auto !important;
    }

    body.imprimir-grade-limpa .pagina-grade header {
        align-items: center !important;
        background: #f3f4f6 !important;
        border-bottom: 2px solid #111827 !important;
        display: flex !important;
        flex: 0 0 25mm !important;
        gap: 6mm !important;
        justify-content: space-between !important;
        padding: 0 5mm !important;
    }

    body.imprimir-grade-limpa .logo-grade-impressao {
        align-items: center !important;
        display: flex !important;
        flex: 0 0 34mm !important;
        height: 20mm !important;
        justify-content: flex-start !important;
    }

    body.imprimir-grade-limpa .logo-grade-educatech {
        justify-content: flex-end !important;
    }

    body.imprimir-grade-limpa .logo-grade-impressao img {
        display: block !important;
        max-height: 19mm !important;
        max-width: 34mm !important;
        object-fit: contain !important;
    }

    body.imprimir-grade-limpa .titulo-grade-impressao {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        text-align: center !important;
    }

    body.imprimir-grade-limpa .pagina-grade h1 {
        color: #111827 !important;
        font-size: 18pt !important;
        line-height: 1 !important;
        margin: 1mm 0 0 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-limpa .pagina-grade p {
        color: #111827 !important;
        font-size: 11pt !important;
        font-weight: 700 !important;
        margin: 1mm 0 0 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-limpa .titulo-grade-impressao strong {
        color: #111827 !important;
        display: block !important;
        font-size: 12pt !important;
        line-height: 1.05 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-limpa .titulo-grade-impressao span {
        color: #374151 !important;
        display: block !important;
        font-size: 10pt !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        margin-top: 1mm !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-limpa table {
        border-collapse: collapse !important;
        flex: 1 1 auto !important;
        height: calc(100% - 25mm) !important;
        table-layout: fixed !important;
        width: 100% !important;
    }

    body.imprimir-grade-limpa table th:first-child,
    body.imprimir-grade-limpa table td:first-child {
        width: 18mm !important;
    }

    body.imprimir-grade-limpa th,
    body.imprimir-grade-limpa td {
        border: 1px solid #111827 !important;
        overflow: hidden !important;
        padding: 1mm !important;
        text-align: center !important;
        vertical-align: middle !important;
    }

    body.imprimir-grade-limpa thead th {
        background: #e5e7eb !important;
        font-size: 10pt !important;
        height: 11mm !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-limpa tbody th {
        background: #e5e7eb !important;
        font-size: 8.5pt !important;
        line-height: 1 !important;
        text-transform: uppercase !important;
        white-space: nowrap !important;
        width: 18mm !important;
    }

    body.imprimir-grade-limpa td {
        font-size: 8.5pt !important;
        height: 26mm !important;
    }

    body.imprimir-grade-limpa td strong {
        color: #111827 !important;
        display: block !important;
        font-size: 9pt !important;
        line-height: 1.08 !important;
        text-transform: uppercase !important;
    }

    body.imprimir-grade-limpa td span {
        color: #374151 !important;
        display: block !important;
        font-size: 8pt !important;
        line-height: 1.08 !important;
        margin-top: 1mm !important;
    }

    body.imprimir-grade-limpa td.vazio {
        color: #9ca3af !important;
        font-weight: 700 !important;
    }
}

body.modo-pwa .topo nav a.botao-sair-pwa,
body.modo-pwa .topo nav a.botao-sair-pwa:hover,
html.modo-pwa body .topo nav a.botao-sair-pwa,
html.modo-pwa body .topo nav a.botao-sair-pwa:hover {
    background: linear-gradient(180deg, #b91c1c, #7f1d1d) !important;
    border-color: #991b1b !important;
    box-shadow: none !important;
    color: #fff !important;
}
