:root {
  --app-navbar-bg: rgba(248, 251, 254, .97);
  --app-navbar-line: #d7e3ef;
  --app-navbar-ink: #173f6d;
  --app-navbar-muted: #536d88;
  --app-navbar-active: #174d80;
  --app-navbar-active-2: #123b64;
}

#globalAppNavbar {
  position: sticky;
  top: 0;
  z-index: 1040;
}

.app-navbar {
  position: relative;
  top: auto;
  z-index: 1040;
  width: 100%;
  min-height: 70px;
  padding: 8px 0;
  background: var(--app-navbar-bg);
  border-bottom: 1px solid var(--app-navbar-line);
  box-shadow: 0 8px 24px rgba(25, 67, 108, .08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.app-navbar__container {
  max-width: 100%;
  padding-inline: clamp(12px, 2vw, 28px);
}

.app-navbar__brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-right: 18px;
  color: var(--app-navbar-ink);
  font-size: 1rem;
  font-weight: 900;
  white-space: nowrap;
}

.app-navbar__brand:hover,
.app-navbar__brand:focus-visible { color: #0d5ca6; }
.app-navbar__brand .material-symbols-rounded { color: #178348; font-size: 24px; }

.app-navbar__toggler {
  width: 44px;
  height: 42px;
  padding: 7px;
  border: 1px solid #cad9e8;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 7px 16px rgba(26, 66, 105, .07);
}

.app-navbar__workspace {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  gap: 12px;
}

.app-navbar__primary,
.app-navbar__secondary-group,
.app-navbar__actions {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 6px;
}

.app-navbar__primary {
  flex: 0 1 auto;
  padding: 5px;
  border: 1px solid #d5e2ee;
  border-radius: 17px;
  background: #edf4fa;
}

.app-navbar__link,
.app-navbar__secondary-btn,
.app-navbar__action {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--app-navbar-muted);
  background: transparent;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .18s ease, color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.app-navbar__link:hover,
.app-navbar__link:focus-visible,
.app-navbar__secondary-btn:hover,
.app-navbar__secondary-btn:focus-visible,
.app-navbar__action:hover,
.app-navbar__action:focus-visible {
  transform: translateY(-1px);
  color: var(--app-navbar-ink);
  background: #fff;
  border-color: #ccdae8;
  box-shadow: 0 8px 18px rgba(24, 67, 108, .1);
  outline: none;
}

.app-navbar__link.active,
.app-navbar__secondary-btn.active {
  color: #fff;
  background: linear-gradient(135deg, var(--app-navbar-active), var(--app-navbar-active-2));
  border-color: transparent;
  box-shadow: 0 9px 20px rgba(20, 66, 108, .2);
}

.app-navbar__link .material-symbols-rounded,
.app-navbar__secondary-btn .material-symbols-rounded,
.app-navbar__action .material-symbols-rounded {
  font-size: 20px;
  line-height: 1;
}

.app-navbar__secondary {
  display: flex;
  flex: 1 1 auto;
  justify-content: center;
  min-width: 0;
}

.app-navbar__secondary--empty { min-height: 1px; }

.app-navbar__secondary-group {
  padding: 5px;
  border: 1px solid #d5e2ee;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(24, 67, 108, .07);
}

.app-navbar__secondary-btn {
  min-width: 112px;
  border-radius: 999px;
}

.app-navbar__secondary-group--scale .app-navbar__secondary-btn {
  min-width: 46px;
  padding-inline: 11px;
}

.app-navbar__actions {
  flex: 0 0 auto;
  justify-content: flex-end;
  margin-left: auto;
}

.app-navbar__action {
  width: 43px;
  min-width: 43px;
  height: 43px;
  padding: 0;
  border-color: #d2dfeb;
  background: #fff;
  color: #674dc1;
  box-shadow: 0 7px 16px rgba(25, 64, 102, .07);
}

.app-navbar__action--accent { color: #d58b00; }
.app-navbar__action.dropdown-toggle::after { display: none; }

.app-navbar__meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 42px;
  max-width: 230px;
  padding: 0 12px;
  overflow: hidden;
  border: 1px solid #d2dfeb;
  border-radius: 999px;
  background: #fff;
  color: #263d55;
  font-size: .84rem;
  font-weight: 800;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.app-navbar__meta .material-symbols-rounded { font-size: 18px; }
.app-navbar__meta .val { overflow: hidden; text-overflow: ellipsis; }

.app-navbar__dropdown {
  min-width: 235px;
  max-width: min(320px, calc(100vw - 24px));
  max-height: calc(100vh - 90px);
  padding: 8px;
  overflow-y: auto;
  border: 1px solid #d5e1ed;
  border-radius: 15px;
}

.app-navbar__dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  border-radius: 10px;
  color: #34506c;
  font-weight: 750;
}
.app-navbar__dropdown-item .material-symbols-rounded { font-size: 19px; color: #5d50bd; }
.app-navbar__dropdown-item:hover,
.app-navbar__dropdown-item:focus { background: #edf4fb; color: #173f6d; }

@media (min-width: 1200px) and (max-width: 1699.98px) {
  .app-navbar__brand span:last-child { display: none; }
  .app-navbar__brand { margin-right: 8px; }
  .app-navbar__link,
  .app-navbar__secondary-btn {
    width: 43px;
    min-width: 43px;
    height: 42px;
    padding: 0;
  }
  .app-navbar__label { display: none; }
  .app-navbar__primary,
  .app-navbar__secondary-group { gap: 5px; }
  .app-navbar__secondary { justify-content: flex-start; }
  .app-navbar__meta-label { display: none; }
  .app-navbar__meta { max-width: 160px; }
}

@media (max-width: 1199.98px) {
  .app-navbar { padding: 8px 0; }
  .app-navbar .navbar-collapse { padding-top: 12px; }
  .app-navbar__workspace {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding-bottom: 6px;
  }
  .app-navbar__primary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    width: 100%;
  }
  .app-navbar__link { justify-content: flex-start; width: 100%; }
  .app-navbar__secondary {
    width: 100%;
    justify-content: stretch;
  }
  .app-navbar__secondary--empty { display: none; }
  .app-navbar__secondary-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    width: 100%;
    border-radius: 16px;
  }
  .app-navbar__secondary-btn {
    width: 100%;
    min-width: 0;
    border-radius: 11px;
  }
  .app-navbar__actions {
    width: 100%;
    justify-content: flex-end;
    margin-left: 0;
    padding: 4px 0;
  }
}

@media (max-width: 575.98px) {
  .app-navbar__container { padding-inline: 10px; }
  .app-navbar__brand { font-size: .92rem; }
  .app-navbar__primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-navbar__secondary-group { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .app-navbar__link,
  .app-navbar__secondary-btn { font-size: .82rem; padding-inline: 9px; }
  .app-navbar__actions { justify-content: center; flex-wrap: wrap; }
  .app-navbar__meta { max-width: 100%; flex: 1 1 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .app-navbar__link,
  .app-navbar__secondary-btn,
  .app-navbar__action { transition: none; }
}

.app-navbar__secondary-btn.is-active {
  color: #fff;
  background: linear-gradient(135deg, var(--app-navbar-active), var(--app-navbar-active-2));
  border-color: transparent;
  box-shadow: 0 9px 20px rgba(20, 66, 108, .2);
}

.app-navbar__link:hover .material-symbols-rounded,
.app-navbar__secondary-btn:hover .material-symbols-rounded,
.app-navbar__action:hover .material-symbols-rounded,
.app-navbar__link:focus-visible .material-symbols-rounded,
.app-navbar__secondary-btn:focus-visible .material-symbols-rounded,
.app-navbar__action:focus-visible .material-symbols-rounded {
  animation: appNavbarIconBounce .48s ease;
}

@keyframes appNavbarIconBounce {
  0%, 100% { transform: translateY(0) scale(1) rotate(0); }
  35% { transform: translateY(-3px) scale(1.08) rotate(-4deg); }
  70% { transform: translateY(1px) scale(.98) rotate(3deg); }
}

@media (prefers-reduced-motion: reduce) {
  .app-navbar__link:hover .material-symbols-rounded,
  .app-navbar__secondary-btn:hover .material-symbols-rounded,
  .app-navbar__action:hover .material-symbols-rounded,
  .app-navbar__link:focus-visible .material-symbols-rounded,
  .app-navbar__secondary-btn:focus-visible .material-symbols-rounded,
  .app-navbar__action:focus-visible .material-symbols-rounded { animation: none; }
}

/* v96 - navbar fixa, sem marca duplicada e com estados ativos acessíveis */
#globalAppNavbar {
  position: relative !important;
  top: auto !important;
  z-index: 1080;
  width: 100%;
  min-height: var(--app-navbar-offset, 70px);
}

#globalAppNavbar .app-navbar {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  top: 0 !important;
  z-index: 1080 !important;
  width: 100% !important;
  margin: 0 !important;
}

#globalAppNavbar .app-navbar__container {
  width: 100%;
  max-width: none;
}

#globalAppNavbar .app-navbar__workspace {
  width: 100%;
}

#globalAppNavbar .app-navbar__primary {
  flex: 0 1 auto;
}

#globalAppNavbar .app-navbar__secondary {
  flex: 1 1 360px;
}

#globalAppNavbar .app-navbar__link,
#globalAppNavbar .app-navbar__secondary-btn {
  --nav-icon-color: #4d7194;
}

#globalAppNavbar [data-nav-page="guia"] { --nav-icon-color: #20a464; }
#globalAppNavbar [data-nav-page="dados"] { --nav-icon-color: #2988d8; }
#globalAppNavbar [data-nav-page="fluxograma"] { --nav-icon-color: #1da86d; }
#globalAppNavbar [data-nav-page="norma"] { --nav-icon-color: #8b63d7; }
#globalAppNavbar [data-nav-page="escala"] { --nav-icon-color: #1eaa68; }
#globalAppNavbar [data-nav-page="roteiro"] { --nav-icon-color: #d47a16; }

#globalAppNavbar [data-nav-view="fluxograma"] { --nav-icon-color: #35c47d; }
#globalAppNavbar [data-nav-view="grafico"] { --nav-icon-color: #42b8ee; }
#globalAppNavbar [data-nav-view="detalhes"] { --nav-icon-color: #b594ff; }
#globalAppNavbar [data-nav-view="home"] { --nav-icon-color: #4ea3f1; }
#globalAppNavbar [data-nav-view="jornadas"] { --nav-icon-color: #48a6d9; }
#globalAppNavbar [data-nav-view="ferias"] { --nav-icon-color: #f0a23a; }
#globalAppNavbar [data-nav-view="estatisticas"] { --nav-icon-color: #41b979; }
#globalAppNavbar [data-nav-view="graficos"] { --nav-icon-color: #62c8ef; }

#globalAppNavbar .app-navbar__link .material-symbols-rounded,
#globalAppNavbar .app-navbar__secondary-btn .material-symbols-rounded {
  color: var(--nav-icon-color) !important;
}

#globalAppNavbar .app-navbar__link.active,
#globalAppNavbar .app-navbar__secondary-btn.active,
#globalAppNavbar .app-navbar__secondary-btn.is-active {
  color: #fff !important;
  background: linear-gradient(135deg, var(--app-navbar-active), var(--app-navbar-active-2)) !important;
  border-color: transparent !important;
  box-shadow: 0 9px 20px rgba(20, 66, 108, .2) !important;
}

#globalAppNavbar .app-navbar__link.active .app-navbar__label,
#globalAppNavbar .app-navbar__secondary-btn.active .app-navbar__label,
#globalAppNavbar .app-navbar__secondary-btn.is-active .app-navbar__label {
  color: #fff !important;
}

#globalAppNavbar .app-navbar__link.active .material-symbols-rounded,
#globalAppNavbar .app-navbar__secondary-btn.active .material-symbols-rounded,
#globalAppNavbar .app-navbar__secondary-btn.is-active .material-symbols-rounded {
  color: var(--nav-icon-color) !important;
  filter: saturate(1.25) brightness(1.28);
}

#globalAppNavbar .app-navbar__meta { display: none !important; }

@media (max-width: 1199.98px) {
  #globalAppNavbar .app-navbar {
    max-height: 100vh;
    overflow-y: auto;
  }
  #globalAppNavbar .app-navbar__primary {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  }
}

@media (min-width: 1200px) and (max-width: 1799.98px) {
  #globalAppNavbar .app-navbar__link,
  #globalAppNavbar .app-navbar__secondary-btn {
    width: 43px;
    min-width: 43px;
    height: 42px;
    padding: 0;
  }
  #globalAppNavbar .app-navbar__label { display: none; }
  #globalAppNavbar .app-navbar__secondary { justify-content: center; }
}

@media (min-width: 1800px) {
  #globalAppNavbar .app-navbar__secondary-btn {
    min-width: 104px;
  }
}

@media print {
  #globalAppNavbar { display: none !important; min-height: 0 !important; }
}


/* v97 - espaçamento mínimo após a navbar fixa */
html,
body {
  scroll-padding-top: calc(var(--app-navbar-offset, 70px) + 8px);
}

body {
  padding-top: 0 !important;
}

#globalAppNavbar {
  min-height: var(--app-navbar-offset, 70px) !important;
  margin: 0 !important;
}

body > main.page-wrap,
body > main.roadmap-shell,
body > main.escala-page-wrap {
  padding-top: 8px !important;
  margin-top: 0 !important;
}

body > main.tutorial-shell {
  margin-top: 8px !important;
}

@media (max-width: 1199.98px) {
  body > main.page-wrap,
  body > main.roadmap-shell,
  body > main.escala-page-wrap {
    padding-top: 8px !important;
  }
}

@media print {
  html,
  body {
    padding-top: 0 !important;
    scroll-padding-top: 0 !important;
  }
}
