/* Navbar padrão VPC: reproduzida de globals.css do site (cabeçalho recolhido com painel horizontal). */
.site-header { position: sticky; top: 0; z-index: 50; color: #fff; background: rgb(3 16 43 / 94%); border-bottom: 1px solid rgb(255 255 255 / 10%); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.header-inner { min-height: 86px; display: flex; align-items: center; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; flex: 0 0 auto; transition: opacity 200ms ease; }
.brand:hover { opacity: .86; }
.brand img { width: 60px; height: 60px; object-fit: contain; }
.brand span { display: grid; font-family: var(--fonte-titulos); line-height: 1.06; }
.brand strong { font-size: .95rem; font-weight: 600; letter-spacing: .02em; }
.brand small { margin-top: .5rem; color: var(--lime); font-size: .8rem; font-weight: 400; letter-spacing: .015em; }

/* Linha inferior única; em telas estreitas só os dados pessoais têm rolagem horizontal. */
.sessao-barra { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .3rem; padding-bottom: .4rem; border-top: 1px solid rgb(255 255 255 / 14%); font-size: .74rem; line-height: 1.4; color: var(--silver); }
.sessao-identidade { display: flex; align-items: center; gap: .7rem; min-width: 0; overflow-x: auto; white-space: nowrap; }
.sessao-identidade > span { flex: 0 0 auto; }
.sessao-identidade > span + span { border-left: 1px solid rgb(255 255 255 / 22%); padding-left: .7rem; }
.sessao-login { color: var(--cyan); }
.sessao-perfil { color: var(--lime); }
.sessao-controles { display: flex; align-items: center; gap: .7rem; flex: 0 0 auto; margin-left: auto; white-space: nowrap; }
.sessao-controles time { font-variant-numeric: tabular-nums; }
.sessao-logoff { color: var(--lime); background: transparent; border: 1px solid currentColor; border-radius: .35rem; padding: .15rem .5rem; font: inherit; cursor: pointer; }
.sessao-logoff:hover { color: var(--deep); background: var(--lime); border-color: var(--lime); }
.sessao-logoff:disabled { opacity: .6; cursor: wait; }
.sessao-logoff:focus-visible, .sessao-identidade:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }

.menu-area { position: relative; display: flex; align-items: center; margin-left: auto; }
.header-acoes { display: flex; align-items: center; gap: .6rem; margin-left: auto; }
.header-acoes .menu-area { margin-left: 0; }
.tema-toggle { display: inline-grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; padding: 0; color: #cfdaea; background: none; border: 1px solid rgb(255 255 255 / 22%); border-radius: 50%; cursor: pointer; transition: color 160ms ease, border-color 160ms ease, background 160ms ease; }
.tema-toggle:hover { color: var(--lime); border-color: var(--lime); }
.tema-toggle svg { grid-area: 1 / 1; }
.tema-toggle .icone-sol { display: none; }
:root[data-tema="escuro"] .tema-toggle .icone-lua { display: none; }
:root[data-tema="escuro"] .tema-toggle .icone-sol { display: block; }
.menu-toggle { display: inline-flex; align-items: center; gap: 0; padding: .6rem .2rem .6rem .8rem; color: #cfdaea; background: none; border: 0; font: inherit; font-size: .95rem; font-weight: 700; letter-spacing: .02em; cursor: pointer; }
.menu-label { position: relative; display: inline-block; overflow: hidden; white-space: nowrap; max-width: 6rem; margin-right: .8rem; padding-bottom: .28rem; opacity: 1; transition: max-width 320ms cubic-bezier(.22,.9,.3,1), margin-right 320ms cubic-bezier(.22,.9,.3,1), opacity 170ms ease; }
.menu-toggle[aria-expanded="true"] .menu-label { max-width: 0; margin-right: 0; opacity: 0; }
.menu-label::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--lime); transition: right 200ms ease; }
.menu-toggle:hover .menu-label::after, .menu-toggle[aria-expanded="true"] .menu-label::after { right: 0; }
.menu-toggle:hover, .menu-toggle[aria-expanded="true"] { color: #fff; }
.menu-icon { position: relative; width: 26px; height: 16px; flex: 0 0 auto; }
.menu-icon i { position: absolute; left: 0; height: 2px; background: #cfdaea; border-radius: 2px; transition: width 220ms cubic-bezier(.2,.9,.3,1), transform 260ms cubic-bezier(.2,.9,.3,1), top 220ms cubic-bezier(.2,.9,.3,1), opacity 140ms ease, background 200ms ease; }
.menu-icon i:nth-child(1) { top: 0; width: 26px; }
.menu-icon i:nth-child(2) { top: 7px; width: 16px; }
.menu-icon i:nth-child(3) { top: 14px; width: 21px; }
.menu-toggle:hover .menu-icon i { width: 26px; background: var(--lime); }
.menu-toggle[aria-expanded="true"] .menu-icon i { background: var(--lime); width: 26px; }
.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(1) { top: 7px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(2) { width: 0; opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(3) { top: 7px; transform: rotate(-45deg); }

.menu-panel { position: absolute; z-index: 60; top: 50%; right: calc(100% + .9rem); transform: translateY(-50%) scaleX(.04); transform-origin: right center; opacity: 0; visibility: hidden; pointer-events: none; transition: transform 340ms cubic-bezier(.22,.9,.3,1), opacity 160ms ease, visibility 0s linear 340ms; }
.menu-panel[data-open="true"] { transform: translateY(-50%) scaleX(1); opacity: 1; visibility: visible; pointer-events: auto; transition: transform 380ms cubic-bezier(.22,.9,.3,1), opacity 180ms ease, visibility 0s; }
.menu-panel > ul { display: flex; align-items: center; gap: .1rem; margin: 0; padding: 0; list-style: none; }
.menu-panel > ul > li { opacity: 0; transform: translateX(16px); transition: opacity 180ms ease, transform 300ms cubic-bezier(.22,.9,.3,1); }
.menu-panel[data-open="true"] > ul > li { opacity: 1; transform: none; }
.menu-panel a { position: relative; display: block; padding: .5rem .8rem; color: #cfdaea; font-size: .95rem; font-weight: 700; white-space: nowrap; transition: color 160ms ease; }
.menu-panel a::after { content: ""; position: absolute; left: .8rem; right: calc(100% - .8rem); bottom: .1rem; height: 2px; background: var(--lime); transition: right 180ms ease; }
.menu-panel a:hover, .menu-panel a[aria-current="page"] { color: #fff; }
.menu-panel a:hover::after, .menu-panel a[aria-current="page"]::after { right: .8rem; }
.menu-item { position: relative; }
.menu-page-row { display: flex; align-items: center; }
.menu-page-row > a { padding-right: .28rem; }
.submenu-toggle { position: relative; width: 28px; height: 35px; padding: 0; color: #cfdaea; background: none; border: 0; cursor: pointer; }
.submenu-toggle::before { content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translate(-50%, -35%) rotate(225deg); transition: transform 180ms ease, color 160ms ease; }
.submenu-toggle:hover, .submenu-toggle[aria-expanded="true"] { color: var(--lime); }
.submenu-toggle[aria-expanded="true"]::before { transform: translate(-50%, -65%) rotate(45deg); }
.submenu-panel { position: absolute; z-index: 70; top: calc(100% + .45rem); right: 0; display: grid; min-width: 240px; margin: 0; padding: .45rem; list-style: none; background: rgb(3 16 43 / 98%); border: 1px solid rgb(255 255 255 / 14%); border-radius: .55rem; box-shadow: 0 22px 54px rgb(0 0 0 / 38%); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity 160ms ease, transform 180ms ease, visibility 0s linear 180ms; }
.submenu-panel[data-open="true"] { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity 160ms ease, transform 180ms ease, visibility 0s; }
.submenu-panel li { margin: 0; }
.submenu-panel a { padding: .46rem .62rem; color: #b7c4d5; font-size: .84rem; font-weight: 700; }
.submenu-panel a::after { display: none; }
.submenu-panel a:hover { color: #fff; background: rgb(255 255 255 / 7%); border-radius: .35rem; }
.menu-cta { margin-left: .5rem; padding-left: .7rem; border-left: 1px solid rgb(255 255 255 / 16%); }
.menu-cta a { color: var(--lime); }
.menu-cta a::after { display: none; }
.menu-cta a:hover { color: var(--deep); background: var(--lime); border-radius: .35rem; }
.menu-cta button { display: block; padding: .5rem .8rem; color: var(--lime); background: none; border: 0; border-radius: .35rem; font: inherit; font-size: .95rem; font-weight: 700; white-space: nowrap; cursor: pointer; transition: color 160ms ease, background 160ms ease; }
.menu-cta button:hover { color: var(--deep); background: var(--lime); }
.submenu-desativado { display: block; padding: .46rem .62rem; color: #7d8ea4; font-size: .84rem; font-weight: 700; white-space: nowrap; cursor: not-allowed; }

@media (max-width: 1320px) {
  .menu-panel { top: calc(100% + .55rem); right: 0; transform: none; min-width: 264px; max-height: min(72vh, 680px); overflow: auto; padding: .55rem; background: rgb(3 16 43 / 97%); border: 1px solid rgb(255 255 255 / 14%); border-radius: .6rem; box-shadow: 0 26px 64px rgb(0 0 0 / 48%); transform-origin: top right; }
  .menu-panel:not([data-open="true"]) { transform: translateY(-10px) scale(.97); }
  .menu-panel[data-open="true"] { transform: none; }
  .menu-panel > ul { display: grid; gap: .1rem; }
  .menu-panel > ul > li { transform: translateX(12px); }
  .menu-page-row { justify-content: space-between; }
  .submenu-panel { position: static; min-width: 0; max-height: 0; padding: 0 .35rem; overflow: hidden; border: 0; box-shadow: none; background: rgb(255 255 255 / 4%); transform: none; }
  .submenu-panel[data-open="true"] { max-height: 520px; margin: .15rem 0 .35rem; padding: .35rem; }
  .menu-cta { margin: .35rem 0 0; padding: .45rem 0 0; border-left: 0; border-top: 1px solid rgb(255 255 255 / 12%); }
}
@media (max-width: 720px) {
  .sessao-barra { font-size: .56rem; gap: .5rem; }
  .sessao-identidade, .sessao-controles { gap: .4rem; }
  .sessao-identidade > span + span { padding-left: .4rem; }
  .header-inner { min-height: 72px; }
  .brand img { width: 46px; height: 46px; }
  .brand strong { font-size: .7rem; letter-spacing: 0; }
  .brand small { max-width: 180px; margin-top: .36rem; font-size: .6rem; line-height: 1.2; }
  .menu-label { display: none; }
  .menu-toggle { padding: .6rem .2rem; }
  .menu-panel { min-width: min(280px, calc(100vw - 2.5rem)); }
}
@media (prefers-reduced-motion: reduce) {
  .menu-panel, .menu-panel > ul > li, .submenu-panel, .menu-icon i, .menu-label { transition: none; }
}

@media (max-width: 420px) { .header-inner { gap: 12px; } .header-inner .brand { flex: 1 1 0; min-width: 0; } .header-inner .brand span { min-width: 0; } .header-inner .brand img { flex-shrink: 0; } }
