/* entrada.css — as telas de ENTRADA do Admin no visual "Evolução" do site (12/11/2026).

   Pedido do Vinicius: "no site castrostudies você não aplicou o novo design na área de login
   de admin e recuperar senha". Vale para login, esqueci a senha e redefinir senha — e só elas.

   AS PEÇAS SÃO AS DO SITE, NÃO UMA IMITAÇÃO. Selo, botão primário com o brilho que atravessa,
   a marca com "Studies" em degradê e a fonte vêm do PUBLICADOR (assets_fixos/css/casca.css e
   inicio.css, v0033). Quem sai do site pelo rodapé chega aqui e reconhece o lugar.

   SEM DESFOQUE. O cartão antigo usava backdrop-filter: blur(18px) por cima do vídeo de fundo —
   o mesmo efeito que derrubou o Portal de 60 para 30 quadros/s no notebook do Vinicius (UHD 620,
   08/11). Aqui o vidro é um fundo firme. Só transform e opacity animam; o ponto do selo e o
   brilho do botão são áreas pequenas.

   NOMES PRÓPRIOS (.entrada-*). O Admin já tem .btn, .btn-primary, .login-box e .alert; nome
   genérico colide. E tudo começa por body.sem-login: o identidade.css carrega DEPOIS desta folha
   e venceria qualquer empate de especificidade. */

body.sem-login {
  --e-fonte: "Segoe UI Variable Display", "Segoe UI Variable Text", Inter, ui-sans-serif, system-ui,
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --e-tinta: #f7f8fb;
  --e-tinta-2: #d3d7e0;
  --e-tinta-3: #a4abba;
  --e-vermelho: #e1121f;
  --e-vermelho-2: #ff2f41;
  --e-vermelho-3: #8d0610;
  --e-vermelho-texto: #ff4d5e;
  --e-borda: rgba(255, 255, 255, .12);
  --e-borda-forte: rgba(255, 255, 255, .24);
  --e-curva: cubic-bezier(.2, .7, .2, 1);
}

/* A área central: centraliza o cartão E os avisos, que a base desenha antes do conteúdo. */
body.sem-login main.content-full {
  min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 14px; padding: 32px 18px; box-sizing: border-box; font-family: var(--e-fonte);
}

/* Avisos ("instruções enviadas", "senha alterada") colados no cartão, na mesma largura — e sem
   o desfoque que o identidade.css põe em todo .alert. */
body.sem-login main.content-full .flash-messages { margin: 0; padding: 0; width: min(440px, 100%); }
body.sem-login main.content-full .flash-messages .alert {
  margin: 0 0 8px; border-radius: 14px; padding: 12px 16px; font-size: 14px; line-height: 1.45;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  background: rgba(10, 10, 14, .92); border: 1px solid var(--e-borda); color: var(--e-tinta-2);
}
body.sem-login main.content-full .flash-messages .alert-danger { border-color: rgba(255, 77, 94, .55); color: #ffd9dd; }
body.sem-login main.content-full .flash-messages .alert-success { border-color: rgba(62, 224, 122, .5); color: #d6f7e3; }

/* ===== Cartão ===== */
body.sem-login .entrada-cartao {
  width: min(440px, 100%); box-sizing: border-box; padding: 34px 32px 28px; border-radius: 24px;
  background: rgba(8, 8, 12, .88); border: 1px solid var(--e-borda);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .06);
  color: var(--e-tinta); text-align: left;
}

/* ===== Marca: o "Castro" branco e o "Studies" em degradê, como no topo do site ===== */
body.sem-login .entrada-marca {
  display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--e-tinta);
  font-weight: 900; font-size: 26px; letter-spacing: -.045em; line-height: 1;
}
/* O logo com o brilho vermelho do topo do site (casca.css, .barra-marca img). Estático: o filtro é
   calculado uma vez; o que anima é o bloco inteiro, por transform. */
body.sem-login .entrada-marca img {
  width: 42px; height: 42px; object-fit: contain; filter: drop-shadow(0 0 10px rgba(225, 18, 31, .45));
}

/* ===== O efeito do nome do site, em loop (12/11/2026, pedido do Vinicius) =====
   O mesmo da abertura do site (inicio.css, .marca-grande): uma luz que vai e volta pela palavra
   numa onda, e a marca — logo junto — balança em 3D acompanhando. Mesmos tempos (4,2 s e 2,9 s),
   mesmo balanço (±4°), mesma luz. O fim do percurso (6,2 em) é o tamanho DESTA palavra.

   AS DUAS METADES DIVIDEM A MESMA LUZ. "Castro" (branco) e "Studies" (vermelho) são caixas
   separadas, e cada uma pinta a luz a partir da própria borda esquerda. --e-ox desloca a
   segunda pela largura da primeira. No site esse número vem do evolucao.js; aqui é a medida
   feita na fonte real (Segoe UI Variable Display 900, 26 px: "Castro" = 74,8 px = 2,877 em), o
   que poupa um arquivo de script numa tela de login. Com outra fonte, a luz só desalinha um
   pouco na emenda — nada quebra.

   Só transform e o fundo do texto animam, numa área pequena; a animação começa sempre ligada,
   como no site (decisão do Vinicius, 08/11). @property com valor inicial em px: em é recusado
   sem erro (lição de 08/11). */
@property --e-lx { syntax: "<length>"; inherits: true; initial-value: 0px; }
@property --e-ly { syntax: "<length>"; inherits: true; initial-value: 13px; }
@property --e-tx { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@property --e-ty { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
body.sem-login .entrada-marca {
  width: fit-content;
  transform: perspective(700px) rotateX(var(--e-tx)) rotateY(var(--e-ty));
  transform-origin: 30% 50%;
  animation: entrada-luz-vai-vem 4.2s ease-in-out infinite alternate,
             entrada-luz-onda 2.9s ease-in-out infinite alternate;
}
@keyframes entrada-luz-vai-vem { from { --e-lx: -.2em; --e-ty: -4deg; } to { --e-lx: 6.2em; --e-ty: 1.5deg; } }
@keyframes entrada-luz-onda { from { --e-ly: .2em; --e-tx: 1.6deg; } to { --e-ly: .75em; --e-tx: -1.6deg; } }
body.sem-login .entrada-letras {
  --e-ox: 0em; display: inline-block; color: transparent; background-repeat: no-repeat;
  -webkit-background-clip: text; background-clip: text;
  background-image:
    radial-gradient(1.5em at calc(var(--e-lx) - var(--e-ox)) var(--e-ly), rgba(255, 92, 108, .95), rgba(255, 92, 108, .35) 45%, rgba(255, 92, 108, 0) 72%),
    linear-gradient(#fff, #fff);
  /* o "s" final não pode ser cortado pelo letter-spacing negativo: folga à direita, devolvida na margem */
  padding-right: .1em; margin-right: -.1em;
}
body.sem-login .entrada-letras.entrada-studies {
  --e-ox: 2.877em;
  background-image:
    radial-gradient(1.5em at calc(var(--e-lx) - var(--e-ox)) var(--e-ly), rgba(255, 236, 239, .95), rgba(255, 170, 180, .45) 45%, rgba(255, 170, 180, 0) 72%),
    linear-gradient(100deg, #ff2f41 0%, #e1121f 45%, #ff4555 100%);
}

/* ===== Selo: a pílula com o ponto que pulsa, a mesma da abertura do site ===== */
body.sem-login .entrada-selo {
  display: inline-flex; align-items: center; gap: 10px; margin: 22px 0 14px; padding: 7px 14px;
  border-radius: 999px; border: 1px solid rgba(225, 18, 31, .45); background: rgba(48, 6, 11, .72);
  color: #ffe9ec; letter-spacing: .18em; text-transform: uppercase; font-size: 11px; font-weight: 800;
}
body.sem-login .entrada-selo::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--e-vermelho-2);
  box-shadow: 0 0 0 0 rgba(255, 47, 65, .7); animation: entrada-pulso 2.4s ease-out infinite;
}
@keyframes entrada-pulso {
  0% { box-shadow: 0 0 0 0 rgba(255, 47, 65, .7); }
  80%, 100% { box-shadow: 0 0 0 9px rgba(255, 47, 65, 0); }
}

body.sem-login .entrada-cartao h1 {
  margin: 0 0 8px; font-size: 28px; line-height: 1.12; font-weight: 800; letter-spacing: -.025em;
  color: var(--e-tinta); text-wrap: balance;
}
body.sem-login .entrada-cartao .entrada-guia {
  margin: 0 0 22px; font-size: 14.5px; line-height: 1.55; color: var(--e-tinta-3); text-wrap: pretty;
}

/* ===== Campos ===== */
body.sem-login .entrada-campo { margin: 0 0 16px; }
body.sem-login .entrada-campo label {
  display: block; margin: 0 0 7px; font-size: 13px; font-weight: 700; color: var(--e-tinta-2);
  letter-spacing: .01em;
}
body.sem-login .entrada-campo input {
  width: 100%; box-sizing: border-box; min-height: 50px; padding: 0 16px; border-radius: 13px;
  border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .04);
  color: var(--e-tinta); font: 500 15.5px var(--e-fonte);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
body.sem-login .entrada-campo input::placeholder { color: #6f7686; }
body.sem-login .entrada-campo input:hover { border-color: var(--e-borda-forte); }
body.sem-login .entrada-campo input:focus {
  outline: none; border-color: var(--e-vermelho-2); background: rgba(255, 255, 255, .06);
  box-shadow: 0 0 0 3px rgba(255, 47, 65, .28);   /* o foco nunca some: troca o contorno por este anel */
}
/* O mostrar-senha.js embrulha o campo de senha em .campo-senha e põe o botão "Mostrar" dentro. */
body.sem-login .entrada-campo .campo-senha { position: relative; display: block; }
body.sem-login .entrada-campo .campo-senha input { padding-right: 96px; }
body.sem-login .entrada-campo .btn-mostrar-senha { color: var(--e-vermelho-texto); right: 10px; }

/* ===== Botão principal: o .btn-primario do site, com o brilho que atravessa ===== */
body.sem-login .entrada-botao {
  position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; width: 100%; min-height: 52px; margin-top: 6px; padding: 0 24px; border-radius: 15px;
  border: 1px solid rgba(255, 90, 100, .6); cursor: pointer; color: #fff;
  font: 800 15.5px var(--e-fonte); letter-spacing: -.01em;
  background: linear-gradient(135deg, var(--e-vermelho-2), var(--e-vermelho-3));
  box-shadow: 0 16px 50px rgba(225, 18, 31, .32), inset 0 1px 0 rgba(255, 255, 255, .22);
  transition: transform .25s var(--e-curva), box-shadow .25s ease;
}
body.sem-login .entrada-botao svg {
  width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--e-curva);
}
body.sem-login .entrada-botao::after {
  content: ""; position: absolute; inset: 0; transform: translateX(-120%); pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .28) 50%, transparent 65%);
  animation: entrada-brilho 5.5s ease-in-out infinite 1.5s;
}
body.sem-login .entrada-botao:hover { transform: translateY(-2px); box-shadow: 0 22px 70px rgba(225, 18, 31, .45), inset 0 1px 0 rgba(255, 255, 255, .22); }
body.sem-login .entrada-botao:hover svg { transform: translateX(3px); }
body.sem-login .entrada-botao:hover::after, body.sem-login .entrada-botao:focus-visible::after {
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .42) 50%, transparent 70%);
  animation: entrada-brilho-agora .65s ease-out 1 both;
}
body.sem-login .entrada-botao:active { transform: translateY(0) scale(.98); }
body.sem-login .entrada-botao:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@keyframes entrada-brilho { 0%, 70% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
@keyframes entrada-brilho-agora { from { transform: translateX(-120%); } to { transform: translateX(120%); } }

/* ===== Ligações de baixo ===== */
body.sem-login .entrada-links {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px;
  margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: 14px;
}
body.sem-login .entrada-links a { color: var(--e-vermelho-texto); text-decoration: none; font-weight: 600; }
body.sem-login .entrada-links a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.sem-login .entrada-links a:focus-visible { outline: 2px solid var(--e-vermelho-2); outline-offset: 3px; border-radius: 4px; }

/* ===== Celular ===== */
@media (max-width: 480px) {
  body.sem-login .entrada-cartao { padding: 26px 20px 22px; border-radius: 20px; }
  body.sem-login .entrada-marca { font-size: 23px; }
  body.sem-login .entrada-cartao h1 { font-size: 24px; }
}

/* ===================================================================================
   Portaria da prévia "Vanessa Homem Advocacia" (13/11/2026).
   Daqui para cima: cópia fiel do entrada.css do Admin CastroStudies (visual Evolução).
   Daqui para baixo: o que esta página precisa sozinha (ela não tem o identidade.css do Admin).
   =================================================================================== */
html { background: #050507; }
body.sem-login {
  margin: 0; min-height: 100svh; color: var(--e-tinta); font-family: var(--e-fonte);
  background:
    radial-gradient(900px 520px at 78% -10%, rgba(225, 18, 31, .22), transparent 60%),
    radial-gradient(700px 480px at -10% 110%, rgba(141, 6, 16, .30), transparent 60%),
    linear-gradient(180deg, #0b0b10 0%, #050507 100%);
}
/* Cartão do projeto na identidade DA VANESSA (igual ao cabeçalho do site dela, tema.css .h-marca):
   bloco vinho #2b0a0e, escudo VH e nome em prata #e7e1da, Georgia, filete dourado. Pedido do Vinicius, 13/11/2026. */
body.sem-login .entrada-projeto {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 18px; padding: 14px 16px; border-radius: 4px;
  background: linear-gradient(135deg, #2b0a0e, #4a1119); border: 1px solid rgba(201, 164, 100, .45); color: #e7e1da;
}
body.sem-login .entrada-projeto svg { width: 38px; height: 44px; color: #e7e1da; flex: none; }
body.sem-login .entrada-projeto-nome strong { display: block; font: 400 17px/1.15 Georgia, 'Times New Roman', serif; letter-spacing: 1.6px; color: #e7e1da; }
body.sem-login .entrada-projeto-nome small { display: block; font: 400 11px Georgia, 'Times New Roman', serif; letter-spacing: 4.6px; margin-top: 5px; padding-top: 5px; border-top: 1px solid rgba(231, 225, 218, .4); color: #e7e1da; }
body.sem-login .entrada-projeto-tipo { margin-left: auto; font-size: 11.5px; letter-spacing: .3px; color: #c9a464; }
body.sem-login .entrada-obra {
  display: flex; gap: 10px; align-items: flex-start; margin: 0 0 20px; padding: 12px 14px; border-radius: 12px;
  background: rgba(255, 196, 0, .08); border: 1px solid rgba(255, 196, 0, .35); color: #ffe7a3; font-size: 13.5px; line-height: 1.5;
}
body.sem-login .entrada-obra b { color: #ffd24d; }
body.sem-login .entrada-erro {
  margin: 0 0 16px; padding: 12px 14px; border-radius: 12px; font-size: 14px;
  background: rgba(255, 77, 94, .10); border: 1px solid rgba(255, 77, 94, .55); color: #ffd9dd;
}
body.sem-login .entrada-rodape { margin-top: 18px; font-size: 12px; color: #6f7686; text-align: center; }
body.sem-login .entrada-rodape a { color: var(--e-tinta-3); text-decoration: underline; text-underline-offset: 3px; }
body.sem-login .entrada-rodape a:hover { color: var(--e-vermelho-texto); }
/* Links da conta (esqueci / trocar senha) - aparecem so com PORTARIA_CONTA configurada (13/11/2026) */
body.sem-login .entrada-links { margin-top: 14px; font-size: 13px; text-align: center; color: #6f7686; }
body.sem-login .entrada-links a { color: var(--e-tinta-3); text-decoration: underline; text-underline-offset: 3px; }
body.sem-login .entrada-links a:hover, body.sem-login .entrada-links a:focus-visible { color: var(--e-vermelho-texto); }
