/**
 * Portal contrato — layout desktop + atmosfera (cadastro seguro / NDA / contrato).
 * Patch cirúrgico: não rebuild do bundle.
 * vf-contrato-perf-v2 — fundo estático sem filter:blur no documento (evita freeze no Chrome).
 */

:root {
  --vf-contrato-bg:
    radial-gradient(ellipse 160% 110% at 50% -5%, rgba(232, 197, 71, 0.24) 0%, rgba(232, 197, 71, 0.09) 32%, transparent 62%),
    radial-gradient(ellipse 90% 60% at 50% 22%, rgba(255, 220, 100, 0.11) 0%, transparent 55%),
    linear-gradient(165deg, #3a5c3d 0%, #2d4a2d 45%, #1e301f 100%);
  --vf-contrato-font: "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Tipografia única — cadastro seguro + portal admin */
.vf-lic-secure-page--standalone,
.vf-contrato-portal,
.vf-lic-secure-page--standalone :where(
    p,
    span,
    div,
    label,
    input,
    select,
    textarea,
    button,
    a,
    li,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6
  ) {
  font-family: var(--vf-contrato-font) !important;
}

.vf-lic-secure-page--standalone :where(
    .vf-lic-doc-flow__title,
    .vf-lic-doc-flow__section-title,
    .nda-gate-title,
    .vf-lic-contract-panel__title,
    .vf-lic-celebration__title
  ) {
  font-family: var(--vf-contrato-font) !important;
}

/* —— Sem círculo no mascote —— */
.vf-lic-secure-hero__mascot-ring {
  display: none !important;
}

.vf-lic-secure-hero__mascot {
  filter: drop-shadow(0 0 22px rgba(232, 197, 71, 0.38));
  animation: vf-contrato-mascot-breathe 4.8s ease-in-out infinite;
}

@keyframes vf-contrato-mascot-breathe {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-7px);
  }
}

/* —— Preloader cadastro seguro (React + card) —— */
.vf-lic-loading-pulse--invite {
  min-height: min(36vh, 280px);
  padding: 40px 24px 48px !important;
  gap: 16px !important;
  justify-content: center;
  background: transparent !important;
}

.vf-lic-loading-pulse__mascot {
  display: none !important;
}

.vf-lic-secure-page--standalone .vf-lic-loading-pulse__ring,
.vf-lic-secure-card .vf-lic-loading-pulse__ring {
  width: 46px !important;
  height: 46px !important;
  border: 3px solid rgba(244, 241, 234, 0.22) !important;
  border-top-color: #e8c547 !important;
  box-shadow: 0 0 18px rgba(232, 197, 71, 0.28);
}

.vf-lic-secure-page--standalone .vf-lic-loading-pulse__text,
.vf-lic-secure-card .vf-lic-loading-pulse__text {
  color: rgba(244, 241, 234, 0.9) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
  text-align: center;
  max-width: 18rem;
  margin: 0;
}

.vf-lic-secure-card .vf-lic-loading-pulse--invite {
  min-height: 320px;
  border-radius: inherit;
}

/* Card branco legado (fallback) */
.mt-6.bg-white .vf-lic-loading-pulse--invite {
  min-height: 220px;
  padding: 40px 20px !important;
}

.mt-6.bg-white .vf-lic-loading-pulse__text {
  color: #5c6f5e !important;
}

.mt-6.bg-white .vf-lic-loading-pulse__ring {
  border-color: #dcebd8 !important;
  border-top-color: #2d4a2d !important;
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  .vf-lic-loading-pulse__mascot {
    animation: none !important;
  }
}

/* Splash HTML — oculta React (#root) até dismiss do preloader */
body:has(#vf-contrato-preloader:not(.vf-hide)) {
  overflow: hidden !important;
}

body:has(#vf-contrato-preloader:not(.vf-hide)) #root {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* —— Aurora Visionária (estática — sem animar blur/background no documento inteiro) —— */
.vf-lic-secure-page--standalone {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10050;
  isolation: isolate;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  contain: layout style paint;
  background-color: #2d4a2d !important;
  background-image: var(--vf-contrato-bg) !important;
  background-size: cover !important;
  background-position: center !important;
}

/* Rodapé © em todo o fluxo de cadastro seguro */
.vf-lic-secure-footer {
  display: block !important;
  text-align: center;
  color: rgba(244, 241, 234, 0.72) !important;
  margin-top: clamp(16px, 3vh, 24px) !important;
  padding: 0 16px max(12px, env(safe-area-inset-bottom)) !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.02em;
  line-height: 1.45;
}

/* Camada 1: aurora líquida (manchas dourado + esmeralda) */
.vf-lic-secure-page--standalone::before {
  content: "";
  position: absolute;
  inset: -15%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 45% at 18% 28%, rgba(255, 220, 110, 0.2) 0%, transparent 68%),
    radial-gradient(ellipse 48% 52% at 82% 22%, rgba(58, 92, 61, 0.35) 0%, transparent 65%),
    radial-gradient(ellipse 60% 50% at 62% 78%, rgba(232, 197, 71, 0.14) 0%, transparent 62%),
    radial-gradient(ellipse 45% 55% at 28% 72%, rgba(45, 74, 45, 0.28) 0%, transparent 60%);
  background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%;
  background-position: 18% 28%, 82% 22%, 62% 78%, 28% 72%;
  opacity: 0.35;
  mix-blend-mode: soft-light;
}

/* Camada 2: brilho suave (sem estrelas/scan — evita efeito “VHF”) */
.vf-lic-secure-page--standalone::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 120% 28% at 50% -8%, rgba(255, 235, 150, 0.14) 0%, transparent 72%),
    radial-gradient(ellipse 60% 50% at 80% 90%, rgba(58, 92, 61, 0.2) 0%, transparent 65%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.5;
}

.vf-lic-secure-page--standalone:not(.vf-contrato-portal)::before {
  animation: none !important;
  transform: none !important;
}

@keyframes vf-bg-aurora-flow {
  0% {
    background-position: 18% 28%, 82% 22%, 62% 78%, 28% 72%;
    opacity: 0.3;
    transform: scale(1);
  }
  100% {
    background-position: 22% 32%, 78% 18%, 58% 82%, 32% 68%;
    opacity: 0.4;
    transform: scale(1.03);
  }
}

.vf-lic-secure-page__inner {
  position: relative;
  z-index: 1;
}

/* —— Scroll: desktop = painel fixo; mobile = documento único —— */
@media (min-width: 768px) {
  html:has(.vf-lic-secure-page--standalone:not(.vf-contrato-portal--admin)),
  body:has(.vf-lic-secure-page--standalone:not(.vf-contrato-portal--admin)) {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  #root:has(.vf-lic-secure-page--standalone:not(.vf-contrato-portal--admin)) {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .vf-lic-secure-page--standalone:not(.vf-contrato-portal--admin) {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 767.98px) {
  html,
  body,
  #root {
    background-color: #2d4a2d !important;
    background-image: var(--vf-contrato-bg) !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  html:has(.vf-lic-secure-page--standalone) {
    height: auto !important;
    min-height: 100dvh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: none !important;
    -webkit-overflow-scrolling: touch;
  }

  body:has(.vf-lic-secure-page--standalone) {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    overscroll-behavior: none !important;
  }

  body:has(#vf-contrato-preloader:not(.vf-hide)) {
    overflow: hidden !important;
  }

  #root:has(.vf-lic-secure-page--standalone) {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }

  .vf-lic-secure-page--standalone {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    contain: none !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
  }

  .vf-lic-secure-page--standalone::before,
  .vf-lic-secure-page--standalone::after {
    display: none !important;
  }

  .vf-lic-secure-page__orbs,
  .vf-lic-secure-page__orb {
    display: none !important;
  }

  .vf-lic-secure-hero__mascot {
    animation: vf-contrato-mascot-breathe 4.8s ease-in-out infinite !important;
    width: min(160px, 42vw) !important;
    max-width: 160px !important;
    height: auto !important;
  }

  .vf-lic-secure-hero__mascot-wrap {
    margin-bottom: 6px !important;
    min-height: min(160px, 42vw) !important;
  }

  .vf-lic-secure-hero__logo {
    max-width: min(168px, 52vw) !important;
    margin: 0 auto 4px !important;
  }

  .vf-lic-secure-hero__tagline {
    font-size: 11px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
  }

  .vf-lic-secure-hero__bubble {
    font-size: 12px !important;
    line-height: 1.45 !important;
    padding: 10px 12px !important;
    margin: 8px auto 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .vf-lic-secure-hero {
    padding: max(8px, env(safe-area-inset-top)) 14px 8px !important;
    box-sizing: border-box !important;
  }

  .vf-lic-secure-page__inner {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 14px max(16px, env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
  }

  .vf-lic-secure-card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;
  }

  .vf-lic-secure-card .vf-lic-enter--step,
  .vf-lic-secure-card .p-5,
  .vf-lic-secure-card .p-6,
  .vf-lic-secure-card .p-7 {
    padding: 1rem 1rem 1.1rem !important;
  }

  .vf-lic-secure-footer {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* Stepper: só ícones + etapa atual (evita 4 colunas espremidas) */
  .vf-lic-onboard-steps {
    margin-bottom: 12px !important;
  }

  .vf-lic-onboard-steps__rail--four,
  .vf-lic-onboard-steps__rail--five {
    padding: 0 4px !important;
    margin-bottom: 8px !important;
  }

  .vf-lic-onboard-steps__cards--four,
  .vf-lic-onboard-steps__cards--five {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  .vf-lic-onboard-steps__cards--four .vf-lic-onboard-step,
  .vf-lic-onboard-steps__cards--five .vf-lic-onboard-step {
    display: none !important;
  }

  .vf-lic-onboard-steps__cards--four .vf-lic-onboard-step--active,
  .vf-lic-onboard-steps__cards--five .vf-lic-onboard-step--active {
    display: block !important;
    width: 100% !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
  }

  .vf-lic-onboard-steps__cards--four .vf-lic-onboard-step__label,
  .vf-lic-onboard-steps__cards--five .vf-lic-onboard-step__label {
    font-size: 10px !important;
    letter-spacing: 0.08em !important;
  }

  .vf-lic-onboard-steps__cards--four .vf-lic-onboard-step__title,
  .vf-lic-onboard-steps__cards--five .vf-lic-onboard-step__title {
    font-size: 13px !important;
    line-height: 1.3 !important;
    word-break: normal !important;
  }

  .vf-lic-secure-intro__title {
    font-size: 1.15rem !important;
    line-height: 1.25 !important;
  }

  .vf-lic-secure-intro__text,
  .vf-lic-secure-intro__note {
    font-size: 13px !important;
    line-height: 1.5 !important;
  }

  .vf-invite-profile__card {
    padding: 12px 14px !important;
    box-sizing: border-box !important;
  }

  .vf-lic-secure-submit {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vf-lic-secure-page--standalone,
  .vf-lic-secure-page--standalone::before,
  .vf-lic-secure-page--standalone::after,
  .vf-lic-secure-hero__mascot {
    animation: none !important;
    transform: none !important;
  }

  .vf-lic-secure-page--standalone::before {
    opacity: 0.65;
  }

  .vf-lic-secure-page--standalone::after {
    opacity: 0.55;
  }
}

@media (min-width: 768px) {
  .vf-lic-secure-page--standalone {
    padding: 2rem 2rem 3rem;
  }

  .vf-lic-secure-page__inner {
    max-width: min(1080px, 94vw) !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  /* Etapa 1: mascote à esquerda, card à direita */
  .vf-lic-secure-page__inner:has(.vf-lic-secure-hero) {
    display: grid;
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
    gap: 2rem 2.5rem;
    align-items: start;
  }

  .vf-lic-secure-page__inner:has(.vf-lic-secure-hero) .vf-lic-secure-card {
    margin-top: 0 !important;
    min-width: 0;
  }

  .vf-lic-secure-hero {
    text-align: center;
    padding: 0.25rem 0;
    position: sticky;
    top: 1.5rem;
  }

  .vf-lic-secure-hero__mascot-wrap {
    justify-content: center;
    margin-bottom: 6px;
  }

  .vf-lic-secure-hero__logo {
    margin: 0 auto 6px;
    max-width: 220px;
  }

  .vf-lic-secure-hero__tagline {
    font-size: 13px;
  }

  .vf-lic-secure-hero__bubble {
    margin: 14px 0 0;
    max-width: none !important;
    width: 100%;
    box-sizing: border-box;
    font-size: 13px;
    line-height: 1.55;
    padding: 12px 14px;
  }

  /* Demais etapas: card centralizado */
  .vf-lic-secure-page__inner:not(:has(.vf-lic-secure-hero)) .vf-lic-secure-card {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .vf-lic-secure-card {
    border-radius: 28px;
  }

  .vf-lic-secure-card .vf-lic-enter--step {
    padding: 1.5rem 1.75rem 1.25rem;
  }

  .vf-lic-secure-intro__title {
    font-size: 1.3rem;
  }

  .vf-lic-secure-intro__text {
    font-size: 14px;
    line-height: 1.6;
  }

  /*
   * Opções de perfil: lista vertical (igual mobile, card já é largo).
   * Evita grids quebrados com 5 itens.
   */
  .vf-invite-profile__list {
    display: flex !important;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 18px;
  }

  .vf-invite-profile__list > li {
    width: 100%;
    min-width: 0;
  }

  .vf-invite-profile__card {
    width: 100%;
    min-height: auto;
    padding: 14px 16px;
    align-items: center;
  }

  .vf-invite-profile__title {
    font-size: 15px;
  }

  .vf-invite-profile__subtitle {
    font-size: 13px;
  }

  /* Stepper 4 etapas */
  .vf-lic-onboard-steps--four .vf-lic-onboard-steps__cards--four {
    gap: 8px;
  }

  .vf-lic-onboard-steps--four .vf-lic-onboard-step {
    padding: 10px 6px;
    min-height: 60px;
  }

  .vf-lic-onboard-steps--four .vf-lic-onboard-step__title {
    font-size: 11px;
    line-height: 1.25;
  }

  .vf-lic-onboard-steps--four .vf-lic-onboard-step__label {
    font-size: 9px;
  }

  /* Revisão e contrato */
  .vf-lic-review-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
  }

  .vf-lic-review-card > *:first-child {
    grid-column: 1 / -1;
  }

  .vf-lic-contract-panel {
    max-width: none;
  }

  .legal-doc-body--inline {
    max-height: min(62vh, 640px);
    overflow: auto;
  }

  /* Rodapé © centralizado na base (não na coluna esquerda do grid) */
  .vf-lic-secure-page__inner .vf-lic-secure-footer {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    justify-self: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: clamp(20px, 3vh, 32px) !important;
    padding-bottom: max(12px, env(safe-area-inset-bottom)) !important;
  }
}

@media (min-width: 1100px) {
  .vf-lic-secure-page__inner:has(.vf-lic-secure-hero) {
    grid-template-columns: minmax(300px, 340px) minmax(0, 1fr);
    gap: 2.25rem 3rem;
  }

  .vf-lic-secure-page__inner:not(:has(.vf-lic-secure-hero)) .vf-lic-secure-card {
    max-width: 780px;
  }
}

.vf-contrato-portal--centered .vf-contrato-portal__frame,
.vf-contrato-portal--wide .vf-contrato-portal__frame {
  width: min(980px, 94vw);
}

.vf-contrato-portal--centered .vf-contrato-portal__frame {
  width: min(480px, 94vw);
}

@media (min-width: 768px) {
  .vf-contrato-portal--split .vf-contrato-portal__frame {
    grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
    gap: 2rem 2.5rem;
  }
}

@media (min-width: 1100px) {
  .vf-contrato-portal--wide .vf-contrato-portal__frame {
    width: min(1040px, 94vw);
  }
}

/* Ícones dourados sem quadrado de fundo */
.vf-invite-profile__vf-icon .vf-gold-icon,
.vf-invite-profile__vf-icon img {
  background: transparent !important;
  object-fit: contain;
}

/* Vínculo Matriz / Unidade — picker estilo cadastro seguro (DDI) */
.vf-affiliation {
  margin-bottom: 10px;
}

.vf-affiliation .vf-lic-ddi-select,
.vf-affiliation__picker {
  z-index: 4;
}

.vf-affiliation .vf-lic-ddi-select--open,
.vf-affiliation__picker.vf-lic-ddi-select--open {
  z-index: 40;
}

.vf-affiliation .vf-lic-ddi-select__menu {
  z-index: 50;
}

.vf-affiliation .vf-lic-ddi-select__list {
  max-height: min(320px, 48vh);
}

.vf-affiliation__choices {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.vf-affiliation__choice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1.5px solid rgba(45, 74, 45, 0.28);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: #1f3b2d;
}

.vf-affiliation__choice--active {
  border-color: #2d4a2d;
  background: #eff6f1;
  box-shadow: 0 0 0 1px rgba(45, 74, 45, 0.12);
}

.vf-affiliation__choice input {
  accent-color: #2d4a2d;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Painel admin: nunca herdar shell fixo/aurora do cadastro seguro */
.vf-contrato-portal--admin.vf-lic-secure-page--standalone,
.vf-contrato-portal--admin {
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  isolation: auto !important;
  overflow: visible !important;
  contain: none !important;
  min-height: 100dvh !important;
  height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

.vf-contrato-portal--admin::before,
.vf-contrato-portal--admin::after,
.vf-contrato-portal--admin.vf-lic-secure-page--standalone::before,
.vf-contrato-portal--admin.vf-lic-secure-page--standalone::after {
  display: none !important;
}
