/*
 * Estação Conhecimento — Identidade Executive 2026
 * --------------------------------------------------------------------------
 * Redesign completo aplicado como última camada visual. Mantém a estrutura,
 * seletores funcionais e regras de negócio do sistema sem alterações.
 */

:root{
  --ex-bg: #f4f7f9;
  --ex-bg-2: #e9eff3;
  --ex-surface: #ffffff;
  --ex-surface-soft: #f8fafc;
  --ex-ink: #172b3a;
  --ex-copy: #647481;
  --ex-line: #dce5ea;
  --ex-line-strong: #c7d4dc;
  --ex-primary: #0b7d86;
  --ex-primary-hover: #08636b;
  --ex-primary-deep: #163c4a;
  --ex-primary-dark: #102d3a;
  --ex-gold: #f0b429;
  --ex-gold-soft: #fff6dc;
  --ex-success: #198267;
  --ex-danger: #c44747;
  --ex-radius: 18px;
  --ex-radius-sm: 11px;
  --ex-shadow: 0 8px 24px rgba(24,43,58,.07);
  --ex-shadow-lg: 0 24px 70px rgba(24,43,58,.14);
  --ex-sidebar: 17.25rem;
}

/* Navegação entre documentos com sensação de aplicativo.
   O navegador mantém sidebar e topbar visualmente estáveis; navegadores que
   ainda não suportam View Transitions recebem o fallback logo abaixo. */
@view-transition{
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root){
  animation-duration: 220ms;
  animation-timing-function: cubic-bezier(.2,.8,.2,1);
}

::view-transition-old(ndhe-sidebar),
::view-transition-new(ndhe-sidebar),
::view-transition-old(ndhe-topbar),
::view-transition-new(ndhe-topbar){
  animation: none;
  mix-blend-mode: normal;
}

::view-transition-old(ndhe-workspace){
  animation: 150ms ease both ndhe-workspace-out;
}

::view-transition-new(ndhe-workspace){
  animation: 240ms cubic-bezier(.2,.8,.2,1) both ndhe-workspace-in;
}

@keyframes ndhe-workspace-out{
  to{ opacity: 0; transform: translateY(3px); }
}

@keyframes ndhe-workspace-in{
  from{ opacity: 0; transform: translateY(7px); }
  to{ opacity: 1; transform: translateY(0); }
}

/* Barra superior de progresso usada antes de cada mudança de módulo */
.ndhe-route-progress{
  position: fixed;
  z-index: 99999;
  inset: 0 0 auto;
  height: 3px;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  background: rgba(0,109,104,.08);
  transition: opacity 140ms ease;
}

.ndhe-route-progress span{
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--ex-gold), #ffd965 48%, var(--ex-primary));
  box-shadow: 0 0 14px rgba(231,173,24,.45);
  transform: scaleX(0);
  transform-origin: left center;
}

.ndhe-route-progress.is-running{
  opacity: 1;
}

.ndhe-route-progress.is-running span{
  animation: ndhe-route-loading 1.15s cubic-bezier(.2,.65,.35,1) forwards;
}

.ndhe-route-progress.is-complete{
  opacity: 0;
}

.ndhe-route-progress.is-complete span{
  transform: scaleX(1);
  transition: transform 130ms ease;
}

@keyframes ndhe-route-loading{
  0%{ transform: scaleX(.04); }
  42%{ transform: scaleX(.52); }
  100%{ transform: scaleX(.84); }
}

/* Base mais limpa e institucional */
body.ec-app-body,
body.ndhe-pro-shell{
  background: var(--ex-bg) !important;
  color: var(--ex-ink) !important;
}

body.ndhe-pro-shell::before,
body.ndhe-pro-shell::after,
body.ec-app-body::before,
body.ec-app-body::after{
  display: none !important;
}

#ecMain{
  background:
    linear-gradient(180deg, rgba(255,255,255,.62) 0, rgba(255,255,255,0) 230px),
    var(--ex-bg) !important;
}

#ecSidebar{ view-transition-name: ndhe-sidebar; }
header.sticky{ view-transition-name: ndhe-topbar; }
#ecMain > main{ view-transition-name: ndhe-workspace; }

#ecMain > main,
#ecMain > footer{
  transition: opacity 150ms ease, transform 180ms ease;
}

body.ndhe-nav-leaving #ecMain > main,
body.ndhe-nav-leaving #ecMain > footer{
  opacity: .42;
  transform: translateY(4px);
  pointer-events: none;
}

body.ndhe-nav-ready #ecMain > main{
  animation: ndhe-workspace-in 260ms cubic-bezier(.2,.8,.2,1) both;
}

#ecMain > main.mx-auto{
  max-width: 1540px !important;
  padding-top: 1.35rem !important;
}

/* Sidebar clara — visual totalmente diferente da versão anterior */
#ecSidebar{
  width: var(--ex-sidebar) !important;
  background: #fbfcf9 !important;
  border-right: 1px solid var(--ex-line) !important;
  box-shadow: 12px 0 34px rgba(23,54,52,.055) !important;
}

@media (min-width: 1440px){
  #ecMain{ margin-left: var(--ex-sidebar) !important; }
}

@media (min-width: 1200px) and (max-width: 1439.98px){
  #ecSidebar{ width: 16.5rem !important; }
  #ecMain{ margin-left: 16.5rem !important; }
}

@media (min-width: 1200px){
  html.ec-collapsed #ecSidebar{ width: 5.25rem !important; }
  html.ec-collapsed #ecMain{ margin-left: 5.25rem !important; }
}

#ecSidebar .ec-brand-logo{
  width: 46px !important;
  height: 46px !important;
  background: #fff !important;
  border: 1px solid var(--ex-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 7px 18px rgba(23,54,52,.08) !important;
}

#ecSidebar > .h-full > a.hidden.md\:flex{
  min-height: 84px;
  margin: 0 1rem;
  padding: 1.15rem .25rem !important;
  border-bottom: 1px solid var(--ex-line);
}

#ecSidebar .ec-brand-eyebrow,
.ec-topbar-eyebrow{
  margin-bottom: .12rem;
  color: var(--ex-primary) !important;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1.1;
  text-transform: uppercase;
}

#ecSidebar [data-ndhe-sidebar-scroll]{
  overscroll-behavior: contain;
  scroll-behavior: auto;
  scrollbar-gutter: stable;
}

#ecSidebar .ec-sidebar-label .text-slate-900{
  color: var(--ex-ink) !important;
}

#ecSidebar .ec-sidebar-label .text-slate-500{
  color: #778684 !important;
}

#ecSidebar .ec-surface,
#ecSidebar .ec-ring{
  background: #f0f5f0 !important;
  border: 1px solid var(--ex-line) !important;
  box-shadow: none !important;
}

#ecSidebar .ec-surface .bg-slate-900,
#ecSidebar .ec-sidebar-mini-avatar{
  background: var(--ex-primary-deep) !important;
  color: #fff !important;
}

#ecSidebar .ec-surface .text-slate-900{
  color: var(--ex-ink) !important;
}

#ecSidebar .ec-surface .text-slate-500{
  color: var(--ex-copy) !important;
}

#ecSidebar .ec-sidebar-section{
  color: #8a9995 !important;
  font-size: .66rem !important;
  letter-spacing: .16em !important;
}

#ecSidebar .ec-sidebar-item{
  position: relative;
  min-height: 48px;
  color: #536663 !important;
  border: 1px solid transparent !important;
  border-radius: 12px !important;
  overflow: visible;
  transform: none !important;
}

#ecSidebar .ec-sidebar-item::before{
  display: none !important;
}

#ecSidebar .ec-sidebar-item > span:first-child{
  background: #edf2ee !important;
  color: #55706c !important;
  border: 1px solid #e2eae4;
  box-shadow: none !important;
}

#ecSidebar .ec-sidebar-item:hover{
  background: #f0f4f0 !important;
  color: var(--ex-ink) !important;
  border-color: var(--ex-line) !important;
}

#ecSidebar .ec-sidebar-item:hover > span:first-child{
  background: #fff !important;
  color: var(--ex-primary) !important;
}

#ecSidebar .ec-sidebar-item[aria-current="page"]{
  background: var(--ex-primary-deep) !important;
  color: #fff !important;
  border-color: var(--ex-primary-deep) !important;
  box-shadow: 0 10px 22px rgba(16,59,59,.16) !important;
}

#ecSidebar .ec-sidebar-item.is-route-pending{
  background: #e7efea !important;
  color: var(--ex-primary-deep) !important;
  border-color: var(--ex-line-strong) !important;
}

#ecSidebar .ec-sidebar-item.is-route-pending > span:first-child{
  background: var(--ex-gold) !important;
  color: #3b300d !important;
  border-color: var(--ex-gold) !important;
}

#ecSidebar .ec-sidebar-item[aria-current="page"] > span:first-child{
  background: var(--ex-gold) !important;
  color: #3b300d !important;
  border-color: rgba(255,255,255,.18) !important;
}

#ecSidebar .ec-sidebar-item[aria-current="page"] > span:last-child.h-2{
  background: var(--ex-gold) !important;
}

#ecSidebar .ec-sidebar-footer-text,
#ecSidebar > .h-full > div:last-child a{
  color: #71817e !important;
}

#ecSidebarCollapse{
  background: #e8efea !important;
  color: var(--ex-primary-deep) !important;
  border: 1px solid var(--ex-line) !important;
  box-shadow: none !important;
}

#ecSidebarCollapse:hover{
  background: #dfe9e2 !important;
}

.ec-mobile-brand-copy{
  color: var(--ex-ink);
  line-height: 1.15;
}

.ec-mobile-brand-sub{
  margin-top: .2rem;
  color: var(--ex-copy);
  font-size: .68rem;
  font-weight: 600;
}

/* Topbar sólida e discreta */
header.sticky{
  min-height: 70px;
  background: rgba(248,250,247,.96) !important;
  border-bottom: 1px solid var(--ex-line) !important;
  box-shadow: none !important;
  backdrop-filter: blur(16px) saturate(1.15) !important;
}

header.sticky::after{
  display: none !important;
}

header.sticky .h-16{
  height: 70px !important;
}

.ec-topbar-context{
  min-width: 210px;
}

.ec-topbar-brand{
  background: #fff !important;
  border-color: var(--ex-line) !important;
  box-shadow: none !important;
}

#ecGlobalSearch,
#ecMobileSearchPanel .ec-input{
  min-height: 44px !important;
  background: #fff !important;
  border: 1px solid var(--ex-line) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

#ecGlobalSearch:focus,
#ecMobileSearchPanel .ec-input:focus{
  border-color: rgba(0,109,104,.48) !important;
  box-shadow: 0 0 0 3px rgba(0,109,104,.09) !important;
}

header.sticky a[data-ec-support-topbar-link],
#ecMobileSearchToggle,
#ecSidebarOpen{
  color: var(--ex-primary-deep) !important;
  background: #fff !important;
  border: 1px solid var(--ex-line) !important;
  border-radius: 10px !important;
}

#ecProfileBtn{
  border: 1px solid transparent;
  border-radius: 11px !important;
}

#ecProfileBtn:hover{
  background: #eef3ef !important;
  border-color: var(--ex-line);
}

#ecProfileBtn > div:first-child{
  background: var(--ex-primary-deep) !important;
  border-radius: 10px !important;
}

#ecProfileMenu{
  border-radius: 14px !important;
  border: 1px solid var(--ex-line) !important;
  box-shadow: var(--ex-shadow-lg) !important;
}

.ec-mobile-tabbar a.is-route-pending{
  color: var(--ex-primary-deep) !important;
  background: var(--ex-gold-soft) !important;
}

/* Cabeçalho interno em bloco institucional */
.app-page-header,
.ec-page-head{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 108px;
  padding: 1.35rem 1.5rem !important;
  background:
    linear-gradient(110deg, var(--ex-primary-dark), var(--ex-primary-deep) 66%, #185352) !important;
  border: 0 !important;
  border-radius: var(--ex-radius) !important;
  box-shadow: 0 13px 30px rgba(11,46,48,.14) !important;
}

.app-page-header::before,
.ec-page-head::before{
  content: "";
  position: absolute;
  z-index: -1;
  width: 220px;
  height: 220px;
  right: 18%;
  top: -150px;
  border: 38px solid rgba(231,173,24,.12);
  border-radius: 50%;
}

.app-page-header::after,
.ec-page-head::after{
  content: "";
  position: absolute;
  z-index: -1;
  width: 150px;
  height: 150px;
  right: -55px;
  bottom: -95px;
  border: 28px solid rgba(255,255,255,.07);
  border-radius: 50%;
  background: transparent !important;
}

.app-page-header h1,
.app-page-header h2,
.app-page-header h3,
.app-page-header .text-dark,
.ec-page-head h1,
.ec-page-head h2,
.ec-page-head h3,
.ec-page-head .text-dark{
  color: #fff !important;
}

.app-page-header .text-muted,
.ec-page-head .text-muted{
  color: rgba(226,239,235,.72) !important;
}

.app-page-header .btn,
.ec-page-head .btn{
  min-height: 42px;
  border-radius: 10px !important;
  background: rgba(255,255,255,.96) !important;
  color: var(--ex-primary-deep) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  box-shadow: none !important;
}

.app-page-header .btn-primary,
.app-page-header .btn-success,
.ec-page-head .btn-primary,
.ec-page-head .btn-success{
  background: var(--ex-gold) !important;
  color: #382e0c !important;
  border-color: var(--ex-gold) !important;
}

.app-page-header .btn:hover,
.ec-page-head .btn:hover{
  background: #fff !important;
  transform: translateY(-1px) !important;
}

/* Superfícies e cartões */
.card,
.ec-card,
.ec-table-shell,
.alert,
.modal-content,
.dropdown-menu,
.offcanvas,
.table-responsive{
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-line) !important;
  border-radius: var(--ex-radius) !important;
  box-shadow: var(--ex-shadow) !important;
  backdrop-filter: none !important;
}

.card,
.ec-card{
  overflow: visible;
}

.card::before,
.ec-card::before,
.modal-content::before{
  display: none !important;
}

.card:hover{
  box-shadow: 0 12px 30px rgba(23,54,52,.09) !important;
}

.card-header,
.card-footer,
.modal-header,
.modal-footer{
  background: #fff !important;
  border-color: var(--ex-line) !important;
}

.card-header::after,
.modal-header::after{
  display: none !important;
}

.card-header:first-child{
  border-radius: calc(var(--ex-radius) - 1px) calc(var(--ex-radius) - 1px) 0 0 !important;
}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.card-title{
  color: var(--ex-ink) !important;
}

.row > [class*="col-"] > .card.h-100{
  height: 100% !important;
}

.summary-card,
.ec-kpi-card{
  background: #fff !important;
  border: 1px solid var(--ex-line) !important;
  border-top: 3px solid var(--ex-primary) !important;
  box-shadow: var(--ex-shadow) !important;
}

.summary-card::before,
.ec-kpi-card::before{
  display: none !important;
}

/* Botões mais sóbrios */
.btn{
  min-height: 42px;
  border-radius: 10px !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

.btn-primary,
.btn-success{
  background: var(--ex-primary) !important;
  color: #fff !important;
  border: 1px solid var(--ex-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-success:hover,
.btn-success:focus{
  background: var(--ex-primary-hover) !important;
  border-color: var(--ex-primary-hover) !important;
  box-shadow: 0 7px 16px rgba(0,109,104,.17) !important;
}

.btn-light,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-danger{
  background: #fff !important;
  color: #415552 !important;
  border: 1px solid var(--ex-line-strong) !important;
}

.btn-light:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-info:hover,
.btn-outline-warning:hover,
.btn-outline-danger:hover{
  background: #f1f5f2 !important;
  color: var(--ex-primary-deep) !important;
  border-color: #aebfb6 !important;
}

.btn-warning{
  background: var(--ex-gold) !important;
  color: #3e320c !important;
  border-color: var(--ex-gold) !important;
}

/* Formulários */
.form-label{
  color: #435e5b !important;
  font-weight: 700 !important;
}

.form-control,
.form-select,
.ec-input,
.input-group-text,
.form-floating > .form-control,
.form-floating > .form-select,
textarea.form-control{
  min-height: 46px;
  background: #fbfcfa !important;
  color: var(--ex-ink) !important;
  border: 1px solid var(--ex-line-strong) !important;
  border-radius: var(--ex-radius-sm) !important;
  box-shadow: none !important;
}

.form-control:focus,
.form-select:focus,
.ec-input:focus,
.form-floating > .form-control:focus,
.form-floating > .form-select:focus{
  background: #fff !important;
  border-color: rgba(0,109,104,.58) !important;
  box-shadow: 0 0 0 3px rgba(0,109,104,.09) !important;
}

.form-check-input:checked{
  background-color: var(--ex-primary) !important;
  border-color: var(--ex-primary) !important;
}

.search-box-modern .form-control{
  background: #f9fbf9 !important;
}

/* Tabelas */
.table-responsive{
  border-radius: 14px !important;
  box-shadow: none !important;
}

.table{
  color: var(--ex-ink) !important;
}

.table thead th,
.ec-table thead th{
  background: #edf3ef !important;
  color: #4a625f !important;
  border-bottom: 1px solid var(--ex-line-strong) !important;
  font-size: .72rem !important;
  letter-spacing: .075em !important;
}

.table tbody td,
.table tbody th,
.ec-table tbody td{
  border-color: #e7ede9 !important;
}

.table tbody tr:hover,
.ec-table tbody tr:hover{
  background: #f6f9f6 !important;
  box-shadow: none !important;
}

.badge,
.ec-badge,
.ec-status,
.ec-perm-status-badge{
  border-radius: 8px !important;
  padding: .38rem .6rem !important;
  font-weight: 750 !important;
}

.badge.bg-success-subtle,
.badge.text-bg-success{
  background: #edf8f2 !important;
  color: #167554 !important;
}

.badge.bg-warning-subtle,
.badge.text-bg-warning,
.badge.text-warning-emphasis{
  background: var(--ex-gold-soft) !important;
  color: #70540b !important;
}

.badge.bg-danger-subtle,
.badge.text-bg-danger{
  background: #fff0f0 !important;
  color: #a13f3f !important;
}

.badge.bg-light{
  background: #f2f5f2 !important;
  color: #425451 !important;
}

.pagination .page-link{
  background: #fff !important;
  color: var(--ex-primary) !important;
  border: 1px solid var(--ex-line) !important;
  border-radius: 9px !important;
  box-shadow: none !important;
}

.pagination .page-item.active .page-link{
  background: var(--ex-primary) !important;
  color: #fff !important;
  border-color: var(--ex-primary) !important;
}

/* Alertas */
.alert{
  border-left-width: 4px !important;
}

.alert-success{
  background: #eef8f3 !important;
  color: #17694f !important;
}

.alert-warning{
  background: #fff9e8 !important;
  color: #725713 !important;
}

.alert-danger{
  background: #fff1f1 !important;
  color: #913f3f !important;
}

/* Modais */
.modal-content{
  border-radius: 18px !important;
  box-shadow: 0 25px 80px rgba(12,38,38,.22) !important;
}

.modal-header{
  padding-bottom: 1rem !important;
}

.modal-title{
  color: var(--ex-ink) !important;
}

/* Navegação inferior: clara, compacta e diferente */
@media (max-width: 767.98px){
  body.ec-app-body,
  body.ndhe-pro-shell{
    background: #eff3ef !important;
  }

  #ecMain > main.mx-auto{
    padding-top: .8rem !important;
  }

  .app-page-header,
  .ec-page-head{
    min-height: 0;
    padding: 1.1rem !important;
    border-radius: 15px !important;
  }

  .app-page-header::before,
  .ec-page-head::before{
    right: -80px;
  }

  .card,
  .ec-card,
  .alert,
  .modal-content{
    border-radius: 15px !important;
  }

  .table-responsive.ec-mobile-cards{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .table-responsive.ec-mobile-cards > table > tbody > tr{
    background: #fff !important;
    border: 1px solid var(--ex-line) !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 18px rgba(23,54,52,.055) !important;
  }

  .table-responsive.ec-mobile-cards > table > tbody > tr > td::before,
  .table-responsive.ec-mobile-cards > table > tbody > tr > th::before{
    color: #657a76 !important;
  }

  .ec-mobile-tabbar{
    left: max(.55rem, env(safe-area-inset-left, .55rem));
    right: max(.55rem, env(safe-area-inset-right, .55rem));
    bottom: max(.5rem, env(safe-area-inset-bottom, .5rem));
    padding: .38rem .4rem calc(.38rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,.96) !important;
    border: 1px solid var(--ex-line) !important;
    border-radius: 17px !important;
    box-shadow: 0 16px 38px rgba(11,46,48,.17) !important;
    backdrop-filter: blur(18px) !important;
  }

  .ec-mobile-tabbar a{
    min-height: 54px;
    color: #71817e !important;
    border-radius: 12px !important;
  }

  .ec-mobile-tabbar a i{
    font-size: 1.12rem;
  }

  .ec-mobile-tabbar a.is-active,
  .ec-mobile-tabbar a.is-current-path{
    background: var(--ex-primary-deep) !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  #ecSidebar{
    background: #fbfcf9 !important;
    border-radius: 0 20px 20px 0 !important;
  }

  #ecSidebar > .h-full > .md\:hidden{
    background: #f2f6f2;
    border-color: var(--ex-line) !important;
  }

  #ecSidebarClose{
    color: var(--ex-primary-deep) !important;
    background: #fff !important;
    border: 1px solid var(--ex-line) !important;
  }
}

/* --------------------------------------------------------------------------
 * NOVO LOGIN V3 — estrutura recriada do zero
 * -------------------------------------------------------------------------- */
body.login-v3-page{
  min-height: 100dvh;
  margin: 0;
  padding: 0 !important;
  background:
    radial-gradient(900px circle at 0% 100%, rgba(231,173,24,.12), transparent 48%),
    linear-gradient(135deg, #eef3ee 0%, #dfe9e3 100%) !important;
  color: var(--ex-ink);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.login-v3-stage{
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.5rem);
}

.login-v3-shell{
  width: min(1180px, 100%);
  min-height: min(720px, calc(100dvh - 2rem));
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 30px;
  box-shadow: 0 35px 100px rgba(12,46,45,.18);
}

.login-v3-brand-panel{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-width: 0;
  padding: clamp(2rem, 4vw, 3.5rem);
  display: flex;
  flex-direction: column;
  color: #fff;
  background:
    linear-gradient(150deg, rgba(255,255,255,.045), transparent 36%),
    linear-gradient(145deg, #0b3032 0%, #0d4948 58%, #09615c 100%);
}

.login-v3-brand-panel::after{
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.032) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: linear-gradient(180deg, #000, transparent 84%);
}

.login-v3-orbit{
  position: absolute;
  z-index: -1;
  border: 48px solid rgba(231,173,24,.14);
  border-radius: 50%;
}

.login-v3-orbit-one{
  width: 330px;
  height: 330px;
  right: -165px;
  top: 70px;
}

.login-v3-orbit-two{
  width: 210px;
  height: 210px;
  left: -125px;
  bottom: 55px;
  border-width: 32px;
  border-color: rgba(255,255,255,.07);
}

.login-v3-brand,
.login-v3-mobile-brand{
  display: flex;
  align-items: center;
  gap: .9rem;
}

.login-v3-logo{
  width: 62px;
  height: 62px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: .35rem;
  background: #fff;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 18px;
  box-shadow: 0 13px 32px rgba(0,0,0,.16);
}

.login-v3-logo img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.login-v3-brand strong,
.login-v3-mobile-brand strong{
  display: block;
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: -.02em;
}

.login-v3-brand small,
.login-v3-mobile-brand small{
  display: block;
  margin-top: .2rem;
  color: rgba(226,239,235,.68);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.login-v3-message{
  width: min(100%, 530px);
  margin: auto 0;
  padding: 2rem 0;
}

.login-v3-kicker,
.login-v3-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--ex-gold);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.login-v3-message h1{
  max-width: 520px;
  margin: 1rem 0 0;
  color: #fff;
  font-size: clamp(2.2rem, 4vw, 3.65rem);
  line-height: .98;
  font-weight: 820;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.login-v3-message > p{
  max-width: 480px;
  margin: 1.25rem 0 0;
  color: rgba(226,239,235,.75);
  font-size: 1rem;
  line-height: 1.65;
}

.login-v3-benefits{
  display: grid;
  gap: .7rem;
  margin-top: 1.75rem;
}

.login-v3-benefits > div{
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: .8rem;
  padding: .72rem .8rem;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 13px;
  background: rgba(255,255,255,.055);
}

.login-v3-benefits > div > i{
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ex-gold);
  background: rgba(231,173,24,.11);
  border-radius: 10px;
  font-size: 1.05rem;
}

.login-v3-benefits strong{
  display: block;
  color: #fff;
  font-size: .85rem;
}

.login-v3-benefits small{
  display: block;
  margin-top: .16rem;
  color: rgba(226,239,235,.62);
  font-size: .73rem;
}

.login-v3-brand-footer{
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: rgba(226,239,235,.6);
  font-size: .76rem;
}

.login-v3-brand-footer i{
  margin-right: .3rem;
  color: var(--ex-gold);
}

.login-v3-access-panel{
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.2rem, 5vw, 4.75rem);
  background: #fff;
}

.login-v3-mobile-brand{
  display: none;
}

.login-v3-access-inner{
  width: min(100%, 430px);
  margin: auto;
}

.login-v3-eyebrow{
  color: var(--ex-primary);
}

.login-v3-access-inner h2{
  margin: .75rem 0 0;
  color: var(--ex-ink);
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.05;
  font-weight: 820;
  letter-spacing: -.045em;
}

.login-v3-intro{
  margin: .8rem 0 0;
  color: var(--ex-copy);
  line-height: 1.6;
}

.login-v3-alert{
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: start;
  gap: .7rem;
  margin-top: 1.25rem;
  padding: .85rem 1rem;
  color: #8d3f3f;
  background: #fff2f2;
  border: 1px solid #f1cece;
  border-radius: 11px;
  font-size: .88rem;
}

.login-v3-form{
  display: grid;
  gap: 1.05rem;
  margin-top: 1.75rem;
}

.login-v3-field label{
  display: block;
  margin-bottom: .45rem;
  color: #385653;
  font-size: .82rem;
  font-weight: 750;
}

.login-v3-control{
  min-height: 54px;
  display: grid;
  grid-template-columns: 22px minmax(0,1fr) auto;
  align-items: center;
  gap: .65rem;
  padding: 0 .9rem;
  background: #f8faf8;
  border: 1px solid var(--ex-line-strong);
  border-radius: 12px;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.login-v3-control:focus-within{
  background: #fff;
  border-color: rgba(0,109,104,.58);
  box-shadow: 0 0 0 4px rgba(0,109,104,.08);
}

.login-v3-control > i{
  color: #78908b;
}

.login-v3-control input{
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 0;
  color: var(--ex-ink);
  background: transparent;
  border: 0;
  outline: 0;
  font-size: 16px;
}

.login-v3-control input::placeholder{
  color: #9aa9a5;
}

.login-v3-password-toggle{
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #6b817d;
  background: transparent;
  border: 0;
  border-radius: 9px;
}

.login-v3-password-toggle:hover{
  color: var(--ex-primary);
  background: #ebf2ed;
}

.login-v3-options{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  margin-top: .1rem;
  font-size: .86rem;
}

.login-v3-options label{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: #526764;
  cursor: pointer;
}

.login-v3-options input{
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--ex-primary);
}

.login-v3-options a{
  color: var(--ex-primary);
  font-weight: 750;
  text-decoration: none;
}

.login-v3-options a:hover{
  color: var(--ex-primary-hover);
  text-decoration: underline;
}

.login-v3-submit{
  width: 100%;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .3rem;
  padding: 0 1.15rem 0 1.35rem;
  color: #fff;
  background: var(--ex-primary-deep);
  border: 0;
  border-radius: 12px;
  box-shadow: 0 12px 26px rgba(16,59,59,.16);
  font-weight: 780;
  transition: background .16s ease, transform .16s ease, box-shadow .16s ease;
}

.login-v3-submit i{
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #493a0b;
  background: var(--ex-gold);
  border-radius: 9px;
}

.login-v3-submit:hover,
.login-v3-submit:focus-visible{
  background: var(--ex-primary-hover);
  transform: translateY(-1px);
  box-shadow: 0 16px 32px rgba(16,59,59,.21);
}

.login-v3-help{
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin-top: 1.6rem;
  padding-top: 1.1rem;
  color: #7a8c89;
  border-top: 1px solid var(--ex-line);
  font-size: .76rem;
  line-height: 1.5;
}

.login-v3-help i{
  color: var(--ex-primary);
  font-size: .95rem;
}

/* Recuperação e troca de senha recebem a mesma identidade */
body.auth-page:not(.login-v3-page){
  background:
    radial-gradient(700px circle at 0% 100%, rgba(231,173,24,.12), transparent 45%),
    linear-gradient(135deg, #eef3ee, #dfe9e3) !important;
}

body.auth-page:not(.login-v3-page) .auth-card{
  border: 1px solid rgba(255,255,255,.75) !important;
  border-radius: 26px !important;
  box-shadow: 0 28px 80px rgba(12,46,45,.15) !important;
}

body.auth-page:not(.login-v3-page) .auth-visual{
  background: linear-gradient(145deg, #0b3032, #0d4948 60%, #09615c) !important;
}

body.auth-page:not(.login-v3-page) .auth-form-panel{
  background: #fff !important;
}

@media (max-width: 991.98px){
  .login-v3-stage{
    padding: 1.25rem;
  }

  .login-v3-shell{
    width: min(620px, 100%);
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .login-v3-brand-panel{
    display: none;
  }

  .login-v3-access-panel{
    justify-content: flex-start;
    padding: 0 2.5rem 2.75rem;
  }

  .login-v3-mobile-brand{
    display: flex;
    margin: 0 -2.5rem 2.35rem;
    padding: 1.25rem 2.5rem;
    color: #fff;
    background: linear-gradient(120deg, #0b3032, #0d5551);
  }

  .login-v3-mobile-brand .login-v3-logo{
    width: 52px;
    height: 52px;
    border-radius: 14px;
    box-shadow: none;
  }

  .login-v3-access-inner{
    margin: 0 auto;
  }
}

@media (max-width: 575.98px){
  .login-v3-stage{
    display: block;
    min-height: 100dvh;
    padding: 0;
  }

  .login-v3-shell{
    width: 100%;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .login-v3-access-panel{
    min-height: 100dvh;
    padding: 0 1.2rem 1.5rem;
  }

  .login-v3-mobile-brand{
    margin: 0 -1.2rem 1.85rem;
    padding: max(1rem, env(safe-area-inset-top, 1rem)) 1.2rem 1rem;
  }

  .login-v3-mobile-brand strong{
    font-size: .98rem;
  }

  .login-v3-mobile-brand small{
    font-size: .63rem;
  }

  .login-v3-access-inner h2{
    font-size: 1.9rem;
  }

  .login-v3-intro{
    font-size: .92rem;
  }

  .login-v3-form{
    margin-top: 1.4rem;
  }

  .login-v3-options{
    align-items: center;
    flex-direction: row;
    font-size: .82rem;
  }

  .login-v3-submit{
    margin-top: .15rem;
  }
}

@media (max-width: 340px){
  .login-v3-access-panel{
    padding-left: .9rem;
    padding-right: .9rem;
  }

  .login-v3-mobile-brand{
    margin-left: -.9rem;
    margin-right: -.9rem;
    padding-left: .9rem;
    padding-right: .9rem;
  }

  .login-v3-options{
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-height: 850px) and (min-width: 992px){
  .login-v3-stage{
    padding: 1rem;
  }

  .login-v3-shell{
    min-height: calc(100dvh - 2rem);
    height: calc(100dvh - 2rem);
  }

  .login-v3-brand-panel{
    padding: 2rem 2.75rem;
  }

  .login-v3-logo{
    width: 54px;
    height: 54px;
  }

  .login-v3-message{
    padding: .6rem 0;
  }

  .login-v3-message h1{
    margin-top: .65rem;
    font-size: clamp(2.15rem, 3.5vw, 3rem);
  }

  .login-v3-message > p{
    margin-top: .75rem;
  }

  .login-v3-benefits{
    gap: .45rem;
    margin-top: .85rem;
  }

  .login-v3-benefits > div{
    padding: .5rem .65rem;
  }

  .login-v3-benefits > div > i{
    width: 36px;
    height: 36px;
  }

  .login-v3-access-panel{
    padding: 2.25rem 4rem;
  }

  .login-v3-form{
    gap: .8rem;
    margin-top: 1.2rem;
  }

  .login-v3-help{
    margin-top: 1.1rem;
  }
}

@media (prefers-reduced-motion: reduce){
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-old(ndhe-workspace),
  ::view-transition-new(ndhe-workspace){
    animation-duration: 1ms !important;
  }

  .ndhe-route-progress,
  .ndhe-route-progress span,
  #ecMain > main,
  #ecMain > footer,
  body.ndhe-nav-ready #ecMain > main{
    animation: none !important;
    transition: none !important;
  }

  .login-v3-submit,
  .login-v3-control,
  .btn,
  .card{
    transition: none !important;
  }
}

/* --------------------------------------------------------------------------
 * PALETA HORIZON — azul-petróleo, turquesa e âmbar
 * --------------------------------------------------------------------------
 * Camada cromática final: remove o excesso de verde dos neutros, preserva a
 * identidade da marca e melhora a hierarquia entre navegação, ação e status.
 */
body.ec-app-body,
body.ndhe-pro-shell{
  background: var(--ex-bg) !important;
}

#ecMain{
  background:
    linear-gradient(180deg, rgba(255,255,255,.78) 0, rgba(255,255,255,0) 250px),
    var(--ex-bg) !important;
}

#ecSidebar{
  background: #f9fbfc !important;
  border-color: var(--ex-line) !important;
  box-shadow: 12px 0 34px rgba(24,43,58,.06) !important;
}

#ecSidebar .ec-sidebar-label .text-slate-500,
#ecSidebar .ec-surface .text-slate-500{
  color: #71808c !important;
}

#ecSidebar .ec-surface,
#ecSidebar .ec-ring{
  background: #eef3f6 !important;
  border-color: var(--ex-line) !important;
}

#ecSidebar .ec-sidebar-section{
  color: #8a98a2 !important;
}

#ecSidebar .ec-sidebar-item{
  color: #596b77 !important;
}

#ecSidebar .ec-sidebar-item > span:first-child{
  color: #58717d !important;
  background: #edf2f5 !important;
  border-color: #e0e8ed !important;
}

#ecSidebar .ec-sidebar-item:hover{
  color: var(--ex-ink) !important;
  background: #eef3f6 !important;
}

#ecSidebar .ec-sidebar-item[aria-current="page"]{
  color: #fff !important;
  background: linear-gradient(135deg, var(--ex-primary-deep), #1a5260) !important;
  border-color: var(--ex-primary-deep) !important;
  box-shadow: 0 10px 24px rgba(22,60,74,.2) !important;
}

#ecSidebar .ec-sidebar-item[aria-current="page"] > span:first-child,
#ecSidebar .ec-sidebar-item.is-route-pending > span:first-child{
  color: #3e330e !important;
  background: var(--ex-gold) !important;
  border-color: #e3a719 !important;
}

#ecSidebar .ec-sidebar-item.is-route-pending{
  color: var(--ex-primary-deep) !important;
  background: #e7f0f2 !important;
  border-color: #c9dce1 !important;
}

#ecSidebarCollapse{
  color: var(--ex-primary-deep) !important;
  background: #e9f0f3 !important;
  border-color: var(--ex-line) !important;
}

#ecSidebarCollapse:hover{
  background: #dfe9ed !important;
}

.ndhe-route-progress{
  background: rgba(11,125,134,.09);
}

.ndhe-route-progress span{
  background: linear-gradient(90deg, var(--ex-gold), #ffd56a 48%, var(--ex-primary));
  box-shadow: 0 0 14px rgba(240,180,41,.4);
}

header.sticky{
  background: rgba(249,251,252,.96) !important;
  border-color: var(--ex-line) !important;
}

#ecGlobalSearch,
#ecMobileSearchPanel .ec-input{
  background: #fff !important;
  border-color: var(--ex-line) !important;
}

#ecGlobalSearch:focus,
#ecMobileSearchPanel .ec-input:focus{
  border-color: rgba(11,125,134,.55) !important;
  box-shadow: 0 0 0 3px rgba(11,125,134,.1) !important;
}

#ecProfileBtn:hover{
  background: #edf3f5 !important;
}

.app-page-header,
.ec-page-head{
  background:
    linear-gradient(112deg, var(--ex-primary-dark), var(--ex-primary-deep) 58%, #126b73) !important;
  box-shadow: 0 14px 32px rgba(16,45,58,.18) !important;
}

.app-page-header .text-muted,
.ec-page-head .text-muted{
  color: rgba(230,239,243,.76) !important;
}

.app-page-header .btn-primary,
.app-page-header .btn-success,
.ec-page-head .btn-primary,
.ec-page-head .btn-success{
  color: #3e330e !important;
  background: var(--ex-gold) !important;
  border-color: var(--ex-gold) !important;
}

.card:hover{
  box-shadow: 0 12px 30px rgba(24,43,58,.1) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-success:hover,
.btn-success:focus{
  box-shadow: 0 7px 18px rgba(11,125,134,.2) !important;
}

.btn-light,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-danger{
  color: #415662 !important;
}

.btn-light:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-info:hover,
.btn-outline-warning:hover,
.btn-outline-danger:hover{
  color: var(--ex-primary-deep) !important;
  background: #eef3f6 !important;
  border-color: #aebfc9 !important;
}

.form-label{
  color: #405964 !important;
}

.form-control,
.form-select,
.ec-input,
.input-group-text,
.form-floating > .form-control,
.form-floating > .form-select,
textarea.form-control{
  color: var(--ex-ink) !important;
  background: #fbfcfd !important;
}

.form-control:focus,
.form-select:focus,
.ec-input:focus,
.form-floating > .form-control:focus,
.form-floating > .form-select:focus{
  border-color: rgba(11,125,134,.58) !important;
  box-shadow: 0 0 0 3px rgba(11,125,134,.1) !important;
}

.search-box-modern .form-control{
  background: #f9fbfc !important;
}

.table thead th,
.ec-table thead th{
  color: #49616d !important;
  background: #edf3f6 !important;
}

.table tbody td,
.table tbody th,
.ec-table tbody td{
  border-color: #e5ebef !important;
}

.table tbody tr:hover,
.ec-table tbody tr:hover{
  background: #f5f8fa !important;
}

.badge.bg-light{
  color: #435965 !important;
  background: #f0f4f6 !important;
}

.modal-content{
  box-shadow: 0 25px 80px rgba(16,45,58,.22) !important;
}

body.login-v3-page,
body.auth-page:not(.login-v3-page){
  background:
    radial-gradient(900px circle at 0% 100%, rgba(240,180,41,.13), transparent 48%),
    linear-gradient(135deg, #eef3f6 0%, #dfe8ed 100%) !important;
}

.login-v3-shell{
  box-shadow: 0 35px 100px rgba(16,45,58,.2);
}

.login-v3-brand-panel,
body.auth-page:not(.login-v3-page) .auth-visual{
  background:
    linear-gradient(150deg, rgba(255,255,255,.045), transparent 36%),
    linear-gradient(145deg, #102d3a 0%, #164858 58%, #0b727a 100%) !important;
}

.login-v3-orbit{
  border-color: rgba(240,180,41,.16);
}

.login-v3-brand small,
.login-v3-mobile-brand small,
.login-v3-message > p{
  color: rgba(230,239,243,.76);
}

.login-v3-benefits small,
.login-v3-brand-footer{
  color: rgba(230,239,243,.65);
}

.login-v3-benefits > div > i{
  background: rgba(240,180,41,.12);
}

.login-v3-field label{
  color: #405964;
}

.login-v3-control{
  background: #f8fafc;
}

.login-v3-control:focus-within{
  border-color: rgba(11,125,134,.58);
  box-shadow: 0 0 0 4px rgba(11,125,134,.09);
}

.login-v3-control > i,
.login-v3-password-toggle,
.login-v3-options label,
.login-v3-help{
  color: #71828d;
}

.login-v3-control input::placeholder{
  color: #96a4ad;
}

.login-v3-password-toggle:hover{
  background: #eaf1f4;
}

.login-v3-submit{
  box-shadow: 0 12px 28px rgba(22,60,74,.2);
}

.login-v3-submit:hover,
.login-v3-submit:focus-visible{
  box-shadow: 0 16px 34px rgba(8,99,107,.24);
}

.login-v3-mobile-brand{
  background: linear-gradient(120deg, #102d3a, #0b727a) !important;
}

@media (max-width: 767.98px){
  body.ec-app-body,
  body.ndhe-pro-shell{
    background: #f1f5f7 !important;
  }

  .table-responsive.ec-mobile-cards > table > tbody > tr{
    box-shadow: 0 6px 18px rgba(24,43,58,.07) !important;
  }

  .table-responsive.ec-mobile-cards > table > tbody > tr > td::before,
  .table-responsive.ec-mobile-cards > table > tbody > tr > th::before,
  .ec-mobile-tabbar a{
    color: #667985 !important;
  }

  .ec-mobile-tabbar{
    box-shadow: 0 16px 38px rgba(16,45,58,.18) !important;
  }

  #ecSidebar{
    background: #f9fbfc !important;
  }

  #ecSidebar > .h-full > .md\:hidden{
    background: #eef3f6;
  }
}
