/* Barra superior e navegação lateral institucionais.
   Este arquivo é carregado por último para manter a mesma geometria em todos
   os portais, preservando a cor definida por cada ambiente. */

/* A versão continua disponível para diagnóstico e atualização, mas deixa de
   ocupar espaço na experiência diária do usuário. */
:is(.corporate-version, .controller-version, .generic-version, .demo-pill, .supplier-portal-stage),
:is(#corporateFullscreenButton, .controller-fullscreen, .supplier-portal-fullscreen, .fullscreen-button, .generic-fullscreen) {
  display: none !important;
}

:is(.corporate-header-inner, .controller-header, .supplier-portal-header, #portal .portal-topbar) {
  box-sizing: border-box;
  min-height: 78px;
}

:is(.corporate-header-actions, .controller-actions, .supplier-portal-actions, .topbar-actions) {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}

:is(.corporate-person, .controller-person, .supplier-portal-person, .topbar-person) {
  min-height: 52px;
  border-radius: 10px;
}

.sna-header-communication {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid color-mix(in srgb, currentColor 34%, transparent);
  border-radius: 9px;
  background: #ffffff12;
  color: inherit;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
  cursor: pointer;
}
.sna-header-communication:hover,
.sna-header-communication:focus-visible { background: #ffffff25; border-color: #ffffffaa; }
.sna-header-communication:focus-visible { outline: 2px solid #fff9; outline-offset: 2px; }
.sna-header-communication svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sna-header-communication .guide-notification-dot { top: 5px; right: 5px; width: 10px; height: 10px; box-shadow: 0 0 0 3px #fff, 0 0 10px #ed3345; }

/* O botão de saída usa o símbolo simples de porta e seta. */
:is(.corporate-exit, .module-exit).sna-simple-exit {
  width: 44px;
  min-width: 44px;
  min-height: 42px;
  padding: 7px;
  border-radius: 9px;
}
:is(.corporate-exit, .module-exit).sna-simple-exit svg { width: 23px; height: 23px; }
:is(.corporate-exit, .module-exit).sna-simple-exit > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* O cabeçalho corporativo expõe os mesmos controles essenciais dos portais. */
#corporatePortalsButton { display: none !important; }
#corporateCommunicationsButton { padding: 8px 12px; border-radius: 9px; }

/* Navegação compacta e sobreposta: mesmo comportamento de Compras e Contratos. */
:is(#portal, [id$="Portal"]).sna-navigation-ready {
  --sna-nav-bg: #0d1d35;
  --sna-nav-bg-2: #11243e;
  --sna-nav-hover: #25405c;
  --sna-nav-active: #223c59;
  --sna-nav-text: #c7d5e6;
  --sna-nav-accent: #ffb83e;
}
:is(#portal, [id$="Portal"]).sna-navigation-ready.generic-portal {
  --sna-nav-bg: hsl(var(--module-hue) 52% 15%);
  --sna-nav-bg-2: hsl(var(--module-hue) 52% 22%);
  --sna-nav-hover: hsl(var(--module-hue) 52% 31%);
  --sna-nav-active: hsl(var(--module-hue) 56% 35%);
  --sna-nav-text: hsl(var(--module-hue) 52% 86%);
  --sna-nav-accent: hsl(var(--module-hue) 88% 72%);
}
:is(#portal, [id$="Portal"]).sna-navigation-ready#administrativePortal { --sna-nav-bg:#2d211a; --sna-nav-bg-2:#49301f; --sna-nav-hover:#66452d; --sna-nav-active:#70482e; --sna-nav-text:#f4dfca; --sna-nav-accent:#e5ad6c; }
:is(#portal, [id$="Portal"]).sna-navigation-ready#supplierPortal { --sna-nav-bg:#241333; --sna-nav-bg-2:#44225f; --sna-nav-hover:#65398a; --sna-nav-active:#573078; --sna-nav-text:#eadcf7; --sna-nav-accent:#d19cf5; }
:is(#portal, [id$="Portal"]).sna-navigation-ready#controllerPortal { --sna-nav-bg:#2c2119; --sna-nav-bg-2:#533823; --sna-nav-hover:#704b31; --sna-nav-active:#67442e; --sna-nav-text:#f1dfca; --sna-nav-accent:#e5ad6c; }
:is(#portal, [id$="Portal"]).sna-navigation-ready#financePortal { --sna-nav-bg:#062927; --sna-nav-bg-2:#0a4741; --sna-nav-hover:#146057; --sna-nav-active:#0f554d; --sna-nav-text:#d0ece7; --sna-nav-accent:#44d0ad; }
:is(#portal, [id$="Portal"]).sna-navigation-ready#warehousePortal { --sna-nav-bg:#211b16; --sna-nav-bg-2:#4b3522; --sna-nav-hover:#6b4a2c; --sna-nav-active:#5e3d24; --sna-nav-text:#f2e2d1; --sna-nav-accent:#f0a23e; }
:is(#portal, [id$="Portal"]).sna-navigation-ready#contractsPortal { --sna-nav-bg:#321725; --sna-nav-bg-2:#57283f; --sna-nav-hover:#743850; --sna-nav-active:#663047; --sna-nav-text:#f1d9e4; --sna-nav-accent:#ef8cae; }
:is(#portal, [id$="Portal"]).sna-navigation-ready#directorPortal { --sna-nav-bg:#071c31; --sna-nav-bg-2:#103a5c; --sna-nav-hover:#1c5478; --sna-nav-active:#174968; --sna-nav-text:#d7e8f5; --sna-nav-accent:#ffb84a; }

/* Portal do Cliente: identidade ativa no mesmo padrão institucional usado
   pelos demais ambientes, com leitura confortável e destaque laranja. */
#clientPortal.generic-client {
  --module-hue: 34;
  --sna-nav-bg: #07192e;
  --sna-nav-bg-2: #0b2948;
  --sna-nav-hover: #173f63;
  --sna-nav-active: #1b3d5d;
  --sna-nav-text: #d8e6f5;
  --sna-nav-accent: #ffad19;
  background:
    radial-gradient(circle at 86% 10%, #8c54253d, transparent 34%),
    linear-gradient(135deg, #06182d, #08223f 58%, #07172b);
  color: #f5f8fc;
}
#clientPortal.generic-client .controller-header {
  background: linear-gradient(108deg, #07182c, #0b2e52 67%, #5a3a25);
  border-bottom: 1px solid #d9942f80;
}
#clientPortal.generic-client .controller-layout,
#clientPortal.generic-client .controller-main {
  background: transparent;
}
#clientPortal.generic-client .controller-main {
  position: relative;
  isolation: isolate;
}
#clientPortal.generic-client .controller-main::before {
  content: '';
  position: fixed;
  z-index: -1;
  right: -150px;
  bottom: -260px;
  width: 650px;
  height: 650px;
  border: 1px solid #d48a2760;
  border-radius: 50%;
  box-shadow: 0 0 0 92px #d48a2714, 0 0 0 184px #d48a270c;
  pointer-events: none;
}
#clientPortal.generic-client .controller-welcome {
  border: 1px solid #ffad1980;
  background: linear-gradient(112deg, #0b2d50 0%, #0a2a49 66%, #593c29 100%);
  box-shadow: 0 18px 42px #020b1670;
}
#clientPortal.generic-client .controller-welcome p,
#clientPortal.generic-client .controller-info-card small,
#clientPortal.generic-client .portal-bi-eyebrow {
  color: #ffb62f;
}
#clientPortal.generic-client .controller-welcome h1,
#clientPortal.generic-client .controller-welcome span,
#clientPortal.generic-client :is(.controller-info-card, .controller-next, .content-card, .sna-quick-shortcuts) h2,
#clientPortal.generic-client :is(.controller-info-card, .controller-next, .content-card, .sna-quick-shortcuts) strong {
  color: #f8fbff;
}
#clientPortal.generic-client :is(.controller-info-card, .controller-next, .content-card, .sna-quick-shortcuts) {
  border-color: #6ca7d36b;
  background: linear-gradient(145deg, #0b2b49ed, #0a213aed);
  color: #d7e5f4;
  box-shadow: 0 14px 34px #020b1660;
}
#clientPortal.generic-client :is(.controller-info-card, .controller-next, .content-card, .sna-quick-shortcuts) p,
#clientPortal.generic-client :is(.controller-info-card, .controller-next, .content-card, .sna-quick-shortcuts) small,
#clientPortal.generic-client .sna-quick-empty {
  color: #bcd0e5;
}
#clientPortal.generic-client :is(.sna-quick-link, input, select, textarea) {
  border-color: #79a9ce8a;
  background: #143854;
  color: #f7fbff;
}
#clientPortal.generic-client .sna-quick-link:hover,
#clientPortal.generic-client .sna-quick-link:focus-visible {
  border-color: #ffad19;
  background: #1a4566;
}
#clientPortal.generic-client :is(.sna-quick-configure, .secondary-action) {
  border-color: #ffad19;
  background: #0b2239;
  color: #f7fbff;
}
#clientPortal.generic-client :is(.sna-quick-configure, .secondary-action):hover,
#clientPortal.generic-client :is(.sna-quick-configure, .secondary-action):focus-visible {
  background: #ffad19;
  color: #07192e;
}
#clientPortal.generic-client .primary-action {
  border-color: #ffad19;
  background: #ffad19;
  color: #07192e;
}
#clientPortal.generic-client :is(input, select, textarea):focus-visible {
  border-color: #ffbd4f;
  outline: 3px solid #ffad1940;
}
#clientPortal.generic-client :is(input, textarea)::placeholder { color: #a9bed2; opacity: 1; }

:is(#portal, [id$="Portal"]).sna-navigation-ready :is(.portal-sidebar, .controller-sidebar, .supplier-portal-sidebar) {
  box-sizing: border-box;
  color: var(--sna-nav-text);
  border-right-color: color-mix(in srgb, var(--sna-nav-text) 20%, transparent);
  background-color: var(--sna-nav-bg);
  background-image: linear-gradient(180deg, var(--sna-nav-bg), color-mix(in srgb, var(--sna-nav-bg-2) 94%, transparent));
}
:is(#portal, [id$="Portal"]).sna-navigation-ready .sna-guide-nav.sna-guide-nav > .sna-guide-button { color: var(--sna-nav-text); }
:is(#portal, [id$="Portal"]).sna-navigation-ready .sna-guide-nav.sna-guide-nav > .sna-guide-button:hover { background: color-mix(in srgb, var(--sna-nav-hover) 82%, transparent); color:#fff; }
:is(#portal, [id$="Portal"]).sna-navigation-ready .sna-guide-nav.sna-guide-nav > .sna-guide-button.active { background:linear-gradient(90deg,var(--sna-nav-active),var(--sna-nav-bg-2)); box-shadow:inset -3px 0 var(--sna-nav-accent); color:#fff; }
:is(#portal, [id$="Portal"]).sna-navigation-ready .sna-guide-button.active > .sna-guide-icon { color:var(--sna-nav-accent); }

/* Todos os portais passam a iniciar recolhidos; o menu aberto se sobrepõe ao
   conteúdo para evitar deslocamentos e fecha depois da navegação. */
:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible :is(.controller-layout, .supplier-portal-layout) {
  position: relative;
  grid-template-columns: 64px minmax(0, 1fr) !important;
  min-width: 0;
  overflow: hidden;
}
:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible :is(.controller-sidebar, .supplier-portal-sidebar) {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 90;
  width: 64px;
  min-width: 64px;
  padding: 10px 6px;
  overflow-x: hidden;
  overflow-y: auto;
  transition: width .22s ease, box-shadow .22s ease;
}
:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible.nav-expanded :is(.controller-sidebar, .supplier-portal-sidebar) { width: min(288px, 86vw); box-shadow: 15px 0 36px #04142299; }
:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible :is(.controller-main, .supplier-portal-main) { grid-column: 2; min-width: 0; }

.sna-nav-toggle {
  position: sticky;
  top: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 44px;
  min-width: 44px;
  height: 42px;
  margin: 0 4px 12px;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--sna-nav-text) 46%, transparent);
  border-radius: 9px;
  background: color-mix(in srgb, var(--sna-nav-bg-2) 82%, transparent);
  color: #fff;
  cursor: pointer;
}
.sna-nav-toggle:hover,.sna-nav-toggle:focus-visible { border-color:var(--sna-nav-accent); background:var(--sna-nav-hover); outline:2px solid color-mix(in srgb,var(--sna-nav-accent) 38%,transparent); }
.sna-nav-toggle svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.sna-nav-scrim { position:absolute; z-index:80; inset:0; border:0; background:#03111f82; cursor:pointer; }
.sna-nav-scrim[hidden] { display:none; }

:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible:not(.nav-expanded) :is(.controller-sidebar, .supplier-portal-sidebar) > p { display:none; }
:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible:not(.nav-expanded) .sna-guide-nav.sna-guide-nav > .sna-guide-button { width:48px; padding-inline:7px; justify-content:center; gap:0; font-size:0; }
:is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible.nav-expanded .sna-guide-nav.sna-guide-nav > .sna-guide-button { width:100%; font-size:13px; }

@media (max-width: 760px) {
  :is(.corporate-header-inner, .controller-header, .supplier-portal-header, #portal .portal-topbar) { min-height: 68px; padding: 8px 10px; }
  :is(.corporate-brand-caption, .controller-brand small, .topbar-kicker) { display:none; }
  :is(.corporate-identity small, .corporate-identity > span:last-child, .controller-identity small, .controller-identity > span:last-child, .supplier-portal-identity small, .supplier-portal-identity > span:last-child, .topbar-identity small, .topbar-profile-link) { display:none; }
  :is(.corporate-person, .controller-person, .supplier-portal-person, .topbar-person) { min-height:42px; padding:3px; }
  :is(.corporate-avatar, .controller-avatar, .supplier-portal-avatar, .topbar-avatar) { width:36px !important; height:36px !important; flex-basis:36px !important; }
  .sna-header-communication { width:42px; min-width:42px; padding:7px; }
  .sna-header-communication > span:not(.guide-notification-dot) { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); }
  :is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible :is(.controller-layout, .supplier-portal-layout) { grid-template-columns:54px minmax(0,1fr) !important; }
  :is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible :is(.controller-sidebar, .supplier-portal-sidebar) { width:54px; min-width:54px; padding-inline:3px; }
  .sna-nav-toggle { width:44px; min-width:44px; margin-inline:2px; }
}

@media (prefers-reduced-motion: reduce) {
  :is(#portal, [id$="Portal"]).sna-navigation-ready.sna-nav-collapsible :is(.controller-sidebar, .supplier-portal-sidebar) { transition:none; }
}
