/* Festou — layout das telas de acesso (login, recuperar senha, cadastro).
   Usado por resources/views/layouts/festou/auth.blade.php */

.fs-auth {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: var(--space-10) var(--space-4);
  background: var(--surface-container-low);
  color: var(--on-surface);
  font-family: var(--font-text);
}

/* Formas decorativas da marca nos cantos */
.fs-auth__blob { position: absolute; pointer-events: none; }
.fs-auth__blob--wave { width: 420px; height: 336px; fill: var(--decor-1); }
.fs-auth__blob--drop { width: 216px; height: 360px; fill: var(--decor-2); }
.fs-auth__blob--top-right { top: 0; right: 0; }
.fs-auth__blob--top-left { top: 0; left: 0; }
.fs-auth__blob--bottom-left { bottom: 0; left: 0; transform: rotate(180deg); }
.fs-auth__blob--bottom-right { bottom: 0; right: 0; transform: rotate(180deg); }

.fs-auth__card {
  position: relative;
  width: 100%;
  max-width: 448px;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-10);
  border-radius: var(--corner-xl);
  background: var(--surface);
  box-shadow: var(--elevation-2);
}

.fs-auth__logo { width: 120px; height: auto; align-self: center; }

.fs-auth__head { display: flex; flex-direction: column; gap: var(--space-1); text-align: center; }
.fs-auth__title { margin: 0; color: var(--on-surface); }
.fs-auth__subtitle { margin: 0; color: var(--primary); }
.fs-auth__lead { margin: 0; color: var(--on-surface-variant); text-align: center; }

.fs-auth__form { display: flex; flex-direction: column; gap: var(--space-5); }

.fs-auth__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

/* Link "Esqueci minha senha" alinhado à direita, sem empurrar o layout */
.fs-auth__aside { align-self: flex-end; margin: calc(var(--space-3) * -1) 0; }

.fs-auth__captcha { display: flex; flex-direction: column; align-items: center; gap: var(--space-1); }

.fs-auth__note { margin: 0; text-align: center; color: var(--on-surface-variant); }

.fs-auth__footer {
  display: flex;
  justify-content: center;
  gap: var(--space-6);
  padding-top: var(--space-3);
  border-top: 1px solid var(--outline-variant);
}

/* Celular: cartão ocupa a tela, formas menores */
@media (max-width: 599px) {
  .fs-auth { padding: var(--space-6) var(--space-4); }
  .fs-auth__card { padding: var(--space-8) var(--space-6); }
  .fs-auth__blob--wave { width: 210px; height: 168px; }
  .fs-auth__blob--drop { width: 108px; height: 180px; }
  .fs-auth__title.headline-large { font-size: 28px; line-height: 36px; }
}
