/* ==========================================================================
   identidade-comum.css — fonte única do que o banner autenticado e as telas de
   login/pré-login desenham IGUAL (backlog #528 PR1, épico de design #474).

   Antes disto o catavento (variante "marca") e os traços de circuito viviam
   escritos duas vezes: `.bc-cata*`/`.bc-tracos` em banner-clinica.css e
   `.lp-cata*`/`.lhero svg.bc-tracos` em login-clinica.css, com `@keyframes`
   duplicados "de propósito" (o login não carrega banner-clinica.css). Aqui
   mora o bloco comum: DESENHO, COR POR VARIÁVEL e ANIMAÇÃO. Os dois nomes de
   classe continuam valendo (seletor agrupado, mesma especificidade de antes
   em cada superfície) — nada de markup mudou.

   O QUE NÃO MORA AQUI (decisão D2, #827 — geometria não vira global):
   tamanho (`width`/`height`), `perspective` e breakpoints. No banner são
   `@container` (banner-clinica.css); no login são `@media` (login-clinica.css).
   Cada arquivo continua dono da sua geometria.

   SUPERFÍCIE DE CHROME, FORA DA VITRINE: banner, topo e rodapé da clínica e o
   catavento são identidade da clínica, não componente do design system; por
   decisão de Eduardo (01/10/2026) ficam fora da vitrine. Este arquivo NÃO
   declara token do home-premium.css: o login só carrega login-clinica.css, e
   qualquer `var(--x)` do sistema autenticado não existe lá. As únicas
   variáveis lidas são as da própria marca (`--logo-eixo-*`, `--cata-anel`).

   ORDEM DE CARGA: ANTES de banner-clinica.css (head.php) e de
   login-clinica.css (auth_layout_inicio.php) — os dois sobrepõem tamanho.
   Entrega: scripts/check-deploy-excludes.sh (deve_chegar).
   ========================================================================== */

/* Catavento: disco branco + anel → haste (parada) → pás (giram). O anel lê
   `--cata-anel`, que cada superfície mapeia para a sua variável de marca
   (`--bc-apoio`/`--bc-cor` no banner, `--lc-apoio`/`--lc-cor2` no login). O EIXO
   (`--logo-eixo-x/-y`) vem do manifesto (`logo_eixo`), propriedade da arte da
   clínica — nunca constante daqui. */
.bc-cata,
.lp-cata {
  position: relative;
  flex-shrink: 0;
}
.bc-cata-disco,
.lp-cata-disco {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--cata-anel);
}
.bc-cata-haste,
.bc-cata-pas,
.lp-cata-haste,
.lp-cata-pas {
  position: absolute;
  /* folga entre a arte e o anel: com inset:0 as pas encostavam e passavam
     por cima da borda do disco. 11% deixa a arte respirar dentro do
     circulo. As % de transform-origin continuam validas: a caixa encolhe
     proporcional nos dois eixos, e a arte segue ocupando 100% da altura
     dela por object-fit:contain. */
  left: 11%;
  top: 11%;
  width: 78%;
  height: 78%;
  display: block;
  /* contain centra a arte (112x138) no contentor QUADRADO sem deformar;
     por isso as % do transform-origin da camada que gira caem no ponto
     certo da arte, e nao numa caixa maior que ela. */
  object-fit: contain;
}
.bc-cata-pas,
.lp-cata-pas {
  transform-origin: var(--logo-eixo-x, 50%) var(--logo-eixo-y, 50%);
  transform: rotateX(18deg) rotateZ(0deg);
  animation: bc-cata-girar 12s linear infinite;
}
@keyframes bc-cata-girar {
  from { transform: rotateX(18deg) rotateZ(0deg); }
  to   { transform: rotateX(18deg) rotateZ(360deg); }
}
/* Dois eixos independentes de pausar o giro (a haste/anel/disco nunca
   entortam — só as pás giram): reduced-motion do usuário E "movimento":false
   da clínica (`.bc-sem-movimento` no banner, `body.lc-sem-movimento` no
   login). Um não substitui o outro. */
@media (prefers-reduced-motion: reduce) {
  .bc-cata-pas,
  .lp-cata-pas { animation: none; }
}
.banner-clinica.bc-sem-movimento .bc-cata-pas,
body.lc-sem-movimento .lp-cata-pas {
  animation: none;
}

/* Pulso dos traços de circuito (desenhados em public/js/banner-clinica.js,
   mesmo desenhador do banner e do login). O seletor do login é mais
   específico (`.lhero svg.bc-tracos`) como sempre foi. */
.bc-tracos .bc-pulso,
.lhero svg.bc-tracos .bc-pulso {
  stroke-dasharray: 14 400;
  animation: bc-corre 7s linear infinite;
}
@keyframes bc-corre {
  from { stroke-dashoffset: 414; }
  to   { stroke-dashoffset: 0; }
}
