/* ============================================================
   layout.css - Estrutura global com menu superior horizontal
   ============================================================ */

body {
    display: block;
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(59, 130, 246, .08), transparent 28%),
        radial-gradient(circle at top right, rgba(34, 197, 94, .06), transparent 24%),
        var(--fundo);
}

html[data-theme="claro"] body {
    background:
        radial-gradient(circle at top left, rgba(11, 118, 183, .08), transparent 28%),
        radial-gradient(circle at top right, rgba(22, 163, 74, .07), transparent 24%),
        var(--fundo);
    color: var(--texto);
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: url('../img/brasao-fundo.webp') center center / var(--watermark-size, min(74vw, 980px)) auto no-repeat;
    opacity: var(--watermark-opacity, .2);
    transform: rotate(var(--watermark-rotate, -20deg));
    transform-origin: center center;
}
.app-layout {
    position: relative;
    z-index: 1;
    min-height: 100vh;
}

.topnav {
    position: sticky;
    top: 0;
    z-index: var(--z-sidebar);
    padding: 8px 14px 8px;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    background: linear-gradient(135deg, rgba(8, 15, 31, .92), rgba(15, 23, 42, .84));
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 18px 42px rgba(15, 23, 42, .16);
    overflow: visible;
}

html[data-theme="claro"] .topnav {
    background: linear-gradient(135deg, rgba(255, 255, 255, .94), rgba(232, 238, 247, .9));
    border-bottom-color: rgba(15, 23, 42, .12);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .12);
}

.topnav-bar {
    max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: stretch;
    gap: 12px;
}

.topnav-brand {
    display: flex;
    align-items: center;
    height: var(--topnav-faixa-box-altura);
    box-sizing: border-box;
    gap: 12px;
    min-width: 0;
    padding: 6px 12px 6px 6px;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .04));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}

html[data-theme="claro"] .topnav-brand,
html[data-theme="claro"] .topnav-group-toggle,
html[data-theme="claro"] .topnav-theme-toggle,
html[data-theme="claro"] .topnav-access-link,
html[data-theme="claro"] .topnav-user-link {
    border-color: rgba(15, 23, 42, .14);
    background: linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(226, 232, 240, .72));
    color: var(--texto);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), 0 8px 18px rgba(15, 23, 42, .08);
}

html[data-theme="claro"] .topnav-brand .topnav-brand-linha {
    color: #334155;
}

html[data-theme="claro"] .topnav-brand .topnav-brand-linha-forte {
    color: #0f172a;
}

html[data-theme="claro"] .topnav-brand .topnav-brand-sub {
    color: #1d4ed8;
}

.topnav-brand img,
.topnav-brand-placeholder {
    width: var(--topnav-brand-size, 64px);
    height: var(--topnav-brand-size, 64px);
    border-radius: var(--topnav-brand-radius, 20px);
    flex-shrink: 0;
}

.topnav-brand img {
    object-fit: contain;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.topnav-brand-placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, .22), rgba(148, 163, 184, .08));
    color: #fff;
    font-family: var(--fonte-titulo);
    font-size: 1.9rem;
    font-weight: 700;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .24),
        0 14px 26px rgba(2, 6, 23, .3);
}

.topnav-brand-texto {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.topnav-brand-linha {
    font-family: var(--fonte-titulo);
    font-size: 1rem;
    line-height: 1.08;
    letter-spacing: .03em;
    color: var(--topnav-text-color, rgba(255, 255, 255, .84));
}

.topnav-brand-linha-forte {
    margin-top: 2px;
    font-size: 1.35rem;
    color: var(--topnav-text-color, #fff);
}

.topnav-brand-sub {
    margin-top: 4px;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--topnav-subtext-color, rgba(191, 219, 254, .86));
}

.topnav-mobile-actions,
.topnav-mobile-toggle,
.btn-hamburguer {
    display: none;
}

.topnav-theme-toggle,
.topnav-access-link {
    min-height: 38px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .06));
    color: var(--topnav-text-color, #fff);
    font-family: var(--fonte-titulo);
    font-size: .82rem;
    letter-spacing: .03em;
    cursor: pointer;
    white-space: nowrap;
    transition: transform var(--transicao), border-color var(--transicao), background var(--transicao);
}

.topnav-theme-toggle:hover,
.topnav-theme-toggle:focus-visible,
.topnav-access-link:hover,
.topnav-access-link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(191, 219, 254, .42);
}

.topnav-access-link {
    color: #e0f2fe;
    text-decoration: none;
    font-weight: 800;
}

.topnav-theme-icon {
    width: 18px;
    height: 18px;
    display: inline-grid;
    place-items: center;
    font-size: 1rem;
    line-height: 1;
}

body.sem-hero-paginas .admin-hero,
body.sem-hero-paginas .page-hero,
body.sem-hero-paginas .config-admin-hero,
body.sem-hero-paginas .da-hero,
body.sem-hero-paginas .afm-hero,
body.sem-hero-paginas .afr-hero,
body.sem-hero-paginas .efr-hero,
body.sem-hero-paginas .acessos-admin-hero,
body.sem-hero-paginas .pcd-admin-hero,
body.sem-hero-paginas .agendamento-hero,
body.sem-hero-paginas .ambientes-hero,
body.sem-hero-paginas .avisos-hero,
body.sem-hero-paginas .biblioteca-hero,
body.sem-hero-paginas .backlog-hero,
body.sem-hero-paginas .documentacao-hero,
body.sem-hero-paginas .eventos-hero,
body.sem-hero-paginas .escola-hero,
body.sem-hero-paginas .contato-hero,
body.sem-hero-paginas .documentos-hero,
body.sem-hero-paginas .equipe-hero,
body.sem-hero-paginas .professores-hero,
body.sem-hero-paginas .informatica-hero,
body.sem-hero-paginas .informatica-monitor-hero,
body.sem-hero-paginas .patrimonio-hero,
body.sem-hero-paginas .professor-hero,
body.sem-hero-paginas .projetos-hero,
body.sem-hero-paginas .recursos-hero,
body.sem-hero-paginas .salas-hero,
body.sem-hero-paginas .turmas-hero,
body.sem-hero-paginas .versao-hero,
body.sem-hero-paginas .horarios-hero {
    display: none !important;
}

.topnav-nav {
    width: 100%;
    max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
    min-width: 0;
    margin: 8px auto 0;
    display: flex;
    align-items: stretch;
    gap: 12px;
    overflow: visible;
}

.topnav-nav-scroll {
    min-width: 0;
    width: 100%;
    flex: 1;
    display: grid;
    grid-template-columns: repeat(var(--topnav-groups, 1), minmax(0, 1fr));
    align-items: stretch;
    gap: 6px;
    overflow: visible;
}

.topnav-group {
    position: relative;
    min-width: 0;
}

.topnav-group-toggle {
    width: 100%;
    min-height: var(--topnav-group-min-height, 40px);
    padding: 0 10px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    text-align: left;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .08));
    color: var(--topnav-text-color, rgba(255, 255, 255, .92));
    font-family: var(--fonte-titulo);
    font-size: .88rem;
    letter-spacing: .04em;
    cursor: pointer;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .18),
        0 10px 18px rgba(2, 6, 23, .18);
    transition:
        transform var(--transicao),
        border-color var(--transicao),
        background var(--transicao),
        box-shadow var(--transicao);
}

.topnav-group.is-open .topnav-group-toggle,
.topnav-group-ativo .topnav-group-toggle,
.topnav-group-toggle:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(191, 219, 254, .42);
    background: linear-gradient(135deg, rgba(255, 255, 255, .28), rgba(147, 197, 253, .12));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .22),
        0 14px 24px rgba(15, 23, 42, .22);
}

.topnav-group-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topnav-group-toggle:focus-visible,
.topnav-link:focus-visible,
.topnav-access-link:focus-visible,
.topnav-user-link:focus-visible,
.topnav-mobile-links:focus-visible,
.topnav-mobile-toggle:focus-visible,
.btn-hamburguer:focus-visible {
    outline: 2px solid rgba(191, 219, 254, .8);
    outline-offset: 2px;
}

.topnav-caret,
.topnav-branch-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: var(--topnav-subtext-color, rgba(191, 219, 254, .9));
    font-weight: 700;
    font-size: .88rem;
    transition: transform var(--transicao);
}

.topnav-group.is-open > .topnav-group-toggle .topnav-caret,
.topnav-item.is-open > .topnav-link .topnav-branch-caret {
    transform: rotate(45deg);
}

.topnav-dropdown,
.topnav-submenu {
    position: absolute;
    display: none;
    list-style: none;
    min-width: 300px;
    padding: 10px;
    margin: 0;
    border-radius: 22px;
    background:
        linear-gradient(145deg, rgba(7, 12, 24, .95), rgba(15, 23, 42, .9));
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .08),
        0 28px 60px rgba(2, 6, 23, .34);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    z-index: calc(var(--z-sidebar) + 2);
}

.topnav-dropdown {
    top: calc(100% + 4px);
    left: 0;
}

.topnav-submenu {
    top: -6px;
    left: calc(100% - 2px);
}

.topnav-group.is-open > .topnav-dropdown,
.topnav-item.is-open > .topnav-submenu {
    display: block;
}

.topnav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.topnav-item {
    list-style: none;
    margin: 0;
    padding: 0;
}

.topnav-item {
    position: relative;
}

.topnav-link {
    width: 100%;
    min-height: var(--topnav-link-min-height, 52px);
    padding: 10px 14px;
    display: grid;
    grid-template-columns: 32px 1fr auto;
    align-items: center;
    gap: 12px;
    border: 1px solid transparent;
    border-radius: 18px;
    background: transparent;
    color: var(--topnav-text-color, rgba(255, 255, 255, .88));
    text-decoration: none;
    text-align: left;
    font-size: .96rem;
    font-weight: 600;
    transition:
        transform var(--transicao),
        border-color var(--transicao),
        background var(--transicao),
        color var(--transicao);
}

button.topnav-link {
    cursor: pointer;
}

.topnav-link.ativo,
.topnav-item.is-open > .topnav-link {
    transform: translateX(2px);
    border-color: rgba(191, 219, 254, .18);
    background: linear-gradient(135deg, rgba(255, 255, 255, .15), rgba(59, 130, 246, .12));
    color: #fff;
}

.topnav-link-disabled {
    color: rgba(148, 163, 184, .82);
    background: rgba(15, 23, 42, .25);
    border-color: rgba(148, 163, 184, .08);
    cursor: default;
}

.topnav-link-disabled:hover {
    transform: none;
    color: rgba(148, 163, 184, .82);
    background: rgba(15, 23, 42, .25);
}

@media (hover: hover) and (pointer: fine) {
    .topnav-group-toggle:hover {
        transform: translateY(-1px);
        border-color: rgba(191, 219, 254, .42);
        background: linear-gradient(135deg, rgba(255, 255, 255, .28), rgba(147, 197, 253, .12));
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .22),
            0 14px 24px rgba(15, 23, 42, .22);
    }

    .topnav-link:hover {
        transform: translateX(2px);
        border-color: rgba(191, 219, 254, .18);
        background: linear-gradient(135deg, rgba(255, 255, 255, .15), rgba(59, 130, 246, .12));
        color: #fff;
    }

    .topnav-group.topnav-group-opening .topnav-link:hover:not(.ativo) {
        transform: none;
        border-color: transparent;
        background: transparent;
        color: var(--topnav-text-color, rgba(255, 255, 255, .88));
    }
}

.topnav-icon {
    width: var(--topnav-icon-box-size, 28px);
    height: var(--topnav-icon-box-size, 28px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(219, 234, 254, .98);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .06));
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14);
    overflow: hidden;
}

.topnav-icon img,
.topnav-icon svg {
    width: var(--topnav-icon-media-size, 18px);
    height: var(--topnav-icon-media-size, 18px);
    display: block;
}

.topnav-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topnav-item-disabled .topnav-icon,
.topnav-link-disabled .topnav-icon {
    opacity: .58;
}

.topnav-user {
    display: flex;
    align-items: center;
    height: var(--topnav-faixa-box-altura);
    box-sizing: border-box;
    gap: 12px;
    padding: 6px 14px;
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .06));
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}

.topnav-user-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
    text-align: right;
    align-items: flex-end;
}
.topnav-user-desktop {
    width: 100%;
    height: var(--topnav-faixa-box-altura);
    justify-self: stretch;
    margin-left: 0;
    justify-content: space-between;
}

.topnav-page-meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
}

.topnav-page-title {
    max-width: 100%;
    font-family: var(--fonte-titulo);
    font-size: var(--topnav-page-title-size, 1.62rem);
    line-height: 1.16;
    letter-spacing: .02em;
    color: var(--topnav-page-title-color, #FF8C00);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 4px 0 5px;
}

.topnav-page-acoes {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.topnav-user-side {
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-shrink: 0;
    margin-left: 18px;
}

.topnav-user-legenda {
    font-size: .64rem;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--topnav-subtext-color, rgba(191, 219, 254, .72));
}

.topnav-user-nome {
    font-weight: 700;
    color: var(--topnav-text-color, #fff);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.topnav-user-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 14px;
    text-decoration: none;
    color: rgba(255, 255, 255, .94);
    background: linear-gradient(135deg, rgba(59, 130, 246, .24), rgba(14, 165, 233, .18));
    border: 1px solid rgba(191, 219, 254, .18);
}

.topnav-user-mobile {
    display: none;
}

.professor-context-actions {
    position: relative;
    z-index: 2;
    padding: 10px 14px 0;
}

.professor-context-actions-inner {
    max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.professor-context-label,
.professor-context-link {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-weight: 800;
    font-size: .82rem;
}

.professor-context-label {
    padding: 0 12px;
    color: var(--texto-muted);
    border: 1px solid var(--borda);
    background: var(--card);
}

.professor-context-link {
    gap: 7px;
    padding: 0 14px;
    text-decoration: none;
    color: #fff;
    border: 1px solid rgba(14, 165, 233, .34);
    background: linear-gradient(135deg, #2563eb, #0891b2);
    box-shadow: 0 10px 24px rgba(14, 165, 233, .18);
}

.layout-main {
    min-height: calc(100vh - var(--topnav-alt));
    display: flex;
    flex-direction: column;
}

.page-header {
    display: none;
}

.page-header-titulo {
    display: none;
}

.page-header-acoes {
    display: none;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--esp-xs);
    padding: var(--esp-sm) var(--esp-lg);
    font-size: var(--t-sm);
    color: var(--texto-muted);
    border-bottom: 1px solid var(--borda-sutil);
    background: rgba(255, 255, 255, .76);
}

.breadcrumb a {
    color: inherit;
}

.breadcrumb a:hover {
    color: var(--primaria);
}

.breadcrumb-sep {
    color: var(--texto-sutil);
    font-weight: 700;
    font-size: var(--t-xs);
}

.breadcrumb-atual {
    color: var(--texto);
}

.page-content,
.page-content-full {
    flex: 1;
    width: 100%;
    max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
    margin: 0 auto;
    padding: var(--esp-lg);
}

.page-content {
    max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
}

.page-footer {
    width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--esp-md);
    padding: var(--esp-md) var(--esp-lg);
    border-top: 1px solid var(--borda);
    color: var(--texto-sutil);
    font-size: var(--t-xs);
    font-weight: 700;
    background: rgba(255, 255, 255, .72);
}

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    background: rgba(2, 6, 23, .52);
}

@media (max-width: 1024px) {
    body {
        --topnav-faixa-box-altura: var(--topnav-faixa-box-altura-tablet, 66px);
    }

    .topnav {
        padding-inline: 10px;
    }

    .topnav-bar,
    .topnav-nav {
        max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap-tablet)));
    }

    .topnav-brand img,
    .topnav-brand-placeholder {
        width: var(--topnav-brand-size-tablet, 54px);
        height: var(--topnav-brand-size-tablet, 54px);
        border-radius: var(--topnav-brand-radius-tablet, 18px);
    }

    .topnav-brand-linha {
        font-size: .88rem;
    }

    .topnav-brand-linha-forte {
    margin-top: 2px;
    font-size: 1.35rem;
    color: #fff;
}

    .topnav-user-desktop {
    width: 100%;
    justify-self: stretch;
    margin-left: 0;
    justify-content: space-between;
}

.topnav-page-meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
}

.topnav-page-title {
    max-width: 100%;
    font-family: var(--fonte-titulo);
    font-size: var(--topnav-page-title-size, 1.62rem);
    line-height: 1.16;
    letter-spacing: .02em;
    color: var(--topnav-page-title-color, #FF8C00);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 4px 0 5px;
}

.topnav-page-acoes {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.topnav-user-side {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-shrink: 0;
    margin-left: 18px;
}
}

@media (max-width: 768px) {
    body {
        --topnav-alt: var(--topnav-alt-mobile, 78px);
        --topnav-faixa-box-altura: var(--topnav-faixa-box-altura-mobile, 58px);
    }

    body.topnav-mobile-open {
        overflow: hidden;
    }

    .btn-hamburguer {
        display: none !important;
    }

    .topnav-user-desktop {
        display: none;
    }

    .topnav {
        padding: 12px 10px 10px;
    }

    .topnav-bar {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        padding-right: 0;
    }

    .topnav-brand img,
    .topnav-brand-placeholder {
        width: var(--topnav-brand-size-mobile, 46px);
        height: var(--topnav-brand-size-mobile, 46px);
        border-radius: var(--topnav-brand-radius-mobile, 16px);
    }

    .topnav-brand-linha {
        font-size: .74rem;
    }

    .topnav-brand-linha-forte {
    margin-top: 2px;
    font-size: 1.35rem;
    color: #fff;
}

    .topnav-brand-sub {
        font-size: .64rem;
        letter-spacing: .14em;
    }

    .topnav-mobile-actions {
        position: fixed;
        top: 16px;
        right: 14px;
        z-index: calc(var(--z-overlay) + 3);
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .topnav-mobile-toggle,
    .topnav-mobile-links {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 52px;
        min-height: 46px;
        padding: 0 14px;
        border: 1px solid rgba(255, 255, 255, .16);
        border-radius: 16px;
        background: linear-gradient(135deg, rgba(8, 15, 31, .82), rgba(15, 23, 42, .74));
        color: #fff;
        font-weight: 700;
        box-shadow: 0 14px 28px rgba(2, 6, 23, .26);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
    }

    .topnav-mobile-links {
        text-decoration: none;
    }

    .topnav-nav {
        position: fixed;
        top: 0;
        left: 0;
        right: auto;
        bottom: 0;
        width: min(88vw, 360px);
        height: 100vh;
        max-height: none;
        margin: 0;
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 84px 12px 16px;
        overflow-y: auto;
        border-radius: 0 24px 24px 0;
        background: linear-gradient(145deg, rgba(7, 12, 24, .97), rgba(15, 23, 42, .92));
        border: 1px solid rgba(255, 255, 255, .14);
        box-shadow: 0 26px 60px rgba(2, 6, 23, .42);
        z-index: calc(var(--z-overlay) + 2);
        transform: translateX(-108%);
        transition: transform .22s ease;
    }

    body.topnav-mobile-open .topnav-nav {
        transform: translateX(0);
    }

    body.topnav-mobile-open .sidebar-overlay {
        display: block;
    }

    .topnav-nav-scroll {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
        width: 100%;
        overflow: visible;
        flex-wrap: nowrap;
    }

    .topnav-group {
        width: 100%;
        border-radius: 18px;
        background: rgba(255, 255, 255, .04);
        border: 1px solid rgba(255, 255, 255, .08);
    }

    .topnav-group-toggle {
        width: 100%;
        min-height: 52px;
        justify-content: space-between;
        border: 0;
        background: transparent;
        box-shadow: none;
        font-size: .96rem;
        cursor: default;
        pointer-events: none;
    }

    .topnav-dropdown,
    .topnav-submenu {
        position: static;
        min-width: 0;
        padding: 0 8px 10px;
        margin: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        display: block !important;
    }

    .topnav-group .topnav-dropdown,
    .topnav-item .topnav-submenu {
        display: block !important;
    }

    .topnav-group.is-open > .topnav-dropdown,
    .topnav-item.is-open > .topnav-submenu {
        display: block;
    }

    .topnav-group.is-open .topnav-submenu {
        display: block;
        padding-left: 10px;
    }

    .topnav-group.is-open .topnav-item-branch {
        display: block;
    }

    .topnav-group.is-open .topnav-item-branch > .topnav-submenu {
        display: block;
    }

    .topnav-caret,
    .topnav-branch-caret {
        display: none;
    }

    .topnav-link {
        min-height: 50px;
        border-radius: 16px;
        font-size: .98rem;
    }

    .topnav-link-branch {
        cursor: default;
        pointer-events: none;
        background: rgba(255, 255, 255, .04);
        border-color: rgba(255, 255, 255, .08);
    }

    .topnav-group-label,
    .topnav-label {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .topnav-user-mobile {
        display: flex;
        justify-content: space-between;
        margin-top: 8px;
        padding-top: 10px;
        border-top: 1px solid rgba(255, 255, 255, .08);
    }

    .page-header {
        top: var(--topnav-alt);
        padding-inline: var(--esp-md);
    }

    .page-content,
    .page-content-full {
        padding: var(--esp-md);
    }
}

@media (max-width: 480px) {
    .topnav-brand-texto {
        max-width: 210px;
    }

    .topnav-brand-linha-forte {
        margin-top: 2px;
        font-size: 1.18rem;
        color: var(--topnav-text-color, #fff);
    }

    .topnav-user-mobile {
        flex-direction: column;
        align-items: stretch;
    }

    .page-footer {
        width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap-tablet)));
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Compactacao operacional global */
.topnav {
    padding: 6px 10px;
}

.topnav-bar,
.topnav-nav,
.page-content,
.page-content-full,
.page-footer {
    max-width: min(var(--layout-largura-max), calc(100vw - var(--layout-largura-gap)));
}

.topnav-nav {
    margin-top: 6px;
    gap: 8px;
}

.topnav-brand {
    gap: 9px;
    padding: 5px 10px 5px 5px;
}

html[data-theme="claro"] .topnav-brand-linha,
html[data-theme="claro"] .topnav-brand-linha-forte,
html[data-theme="claro"] .topnav-brand-sub {
    text-shadow: none;
}

.page-content,
.page-content-full {
    padding: var(--esp-md);
}

.page-footer {
    padding: 10px var(--esp-md);
}

@media (max-width: 1366px) {
    .topnav-brand-linha {
        font-size: .9rem;
    }

    .topnav-brand-linha-forte {
        font-size: 1.16rem;
    }

    .topnav-brand-sub {
        letter-spacing: .14em;
    }
}
