/* Aper Health — lado do médico.
   Kit de marca de 26/10/2026: preto profundo, grafite e ouro metálico, luxo discreto.
   Texto em SF Pro / Inter; títulos e rótulos de marca em Cinzel (serifa clássica, como o logo). */

:root {
  color-scheme: dark;
  --ouro: #C9A86A;
  --ouro-claro: #E6D2A5;
  --ouro-luz: #F4E3C1;
  --ouro-forte: #B58F5A;
  --ouro-escuro: #92754A;
  --ouro-fundo: rgba(201,168,106, 0.10);
  --ouro-linha: rgba(201,168,106, 0.22);
  --preto: #08090B;
  --grafite: #141619;
  --cinza-medio: #3a3b3f;
  --branco: #F5F5F2;

  --bg: #08090b;
  --texto: #F5F5F2;
  --texto-suave: #A5A7AA;
  --erro: #ff7a6b;

  --grad-marca: linear-gradient(180deg, #F1DFB6 0%, #D9BC84 48%, #B8955C 100%);
  --grad-ouro-texto: linear-gradient(180deg, #F7E7C4 0%, #E6D2A5 35%, #C9A86A 70%, #A8864F 100%);
  --grad-card: linear-gradient(165deg, rgba(32,34,37, 0.86) 0%, rgba(17,18,21, 0.92) 100%);
  --grad-borda: linear-gradient(135deg, rgba(244,227,193, 0.5), rgba(201,168,106, 0.08) 40%, rgba(201,168,106, 0.04) 62%, rgba(201,168,106, 0.3));
  --grad-sidebar: linear-gradient(180deg, #18191c 0%, #111214 55%, #0b0c0e 100%);
  --onda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 160' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23C9A86A' stroke-width='1'%3E%3Cpath d='M0 120 C150 40 300 160 600 60' opacity='.55'/%3E%3Cpath d='M0 130 C160 60 320 170 600 75' opacity='.35'/%3E%3Cpath d='M0 140 C170 80 330 180 600 90' opacity='.2'/%3E%3Cpath d='M0 105 C140 25 290 150 600 45' opacity='.15'/%3E%3C/g%3E%3C/svg%3E");

  --fonte-marca: "Cinzel", "Trajan Pro", Georgia, serif;
  --fonte-titulo: -apple-system, "SF Pro Display", "Inter", system-ui, sans-serif;
  --fonte-texto: -apple-system, "SF Pro Text", "Inter", system-ui, sans-serif;
  --raio: 18px;
  --raio-pill: 999px;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  min-height: 100vh;
  color: var(--texto);
  font: 400 14px/1.55 var(--fonte-texto);
  -webkit-font-smoothing: antialiased;
  background:
    radial-gradient(1100px 620px at 92% -12%, rgba(201,168,106, 0.12), transparent 60%),
    radial-gradient(900px 520px at -8% 112%, rgba(146,117,74, 0.09), transparent 60%),
    linear-gradient(180deg, #0c0d0f 0%, #08090b 55%, #050506 100%);
  background-attachment: fixed;
}
/* curvas de luz dourada do kit: canto de cima nas telas internas, faixa de baixo na entrada */
body::before {
  content: ""; position: fixed; top: 0; right: 0; z-index: -1; pointer-events: none;
  width: min(820px, 75vw); aspect-ratio: 850 / 640;
  background: url(/marca/luz-topo.jpg) left top / cover no-repeat; transform: scaleX(-1);
  mix-blend-mode: screen; opacity: .5;
  -webkit-mask: radial-gradient(120% 110% at 0% 0%, #000 35%, transparent 78%); mask: radial-gradient(120% 110% at 0% 0%, #000 35%, transparent 78%);
}
/* telas de entrada: o fundo da abertura, parado (a tela de login tem a versão animada) */
body:not(.com-menu):not(.tv)::before {
  inset: 0; width: auto; aspect-ratio: auto; transform: none; opacity: .7; mix-blend-mode: normal;
  background: url(/marca/fundo-vertical.webp) center / cover no-repeat; -webkit-mask: none; mask: none;
}
@media (orientation: landscape) { body:not(.com-menu):not(.tv)::before { background-image: url(/marca/fundo-horizontal.webp); } }

main { max-width: 1280px; margin: 0 auto; padding: 20px; display: flex; flex-direction: column; gap: 18px; }
body.com-menu main { margin-left: 100px; padding: 26px 30px; }

h1, h2, h3 { font-family: var(--fonte-titulo); margin: 0; letter-spacing: -0.01em; }
h1 {
  font: 500 27px/1.2 var(--fonte-marca); letter-spacing: .04em; color: var(--ouro-claro);
  background: var(--grad-ouro-texto); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
h2 { font-weight: 600; font-size: 16px; color: var(--branco); }
.muted { color: var(--ouro); margin: 0; font: 500 11px var(--fonte-texto); letter-spacing: .22em; text-transform: uppercase; }

/* card escuro com filete dourado */
.card {
  position: relative;
  background: var(--grad-card);
  border-radius: var(--raio);
  padding: 22px 26px;
  isolation: isolate;
  box-shadow: 0 26px 60px -32px rgba(0,0,0,.9), inset 0 1px 0 rgba(244,227,193,.05);
}
.card::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; z-index: -1;
  background: var(--grad-borda);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.topo {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  background: var(--onda) right bottom / 70% 100% no-repeat,
    radial-gradient(520px 180px at 100% 0%, rgba(201,168,106,.13), transparent 70%), var(--grad-card);
}

.btn {
  background: var(--grad-marca); color: #1a1408; border: 0; border-radius: 12px;
  padding: 11px 24px; font: 600 14px var(--fonte-titulo); letter-spacing: .01em; cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,248,230,.65), inset 0 -1px 0 rgba(110,82,36,.45), 0 10px 28px -12px rgba(201,168,106,.65);
  transition: filter .15s, transform .15s;
}
.btn:hover { filter: brightness(1.06); transform: translateY(-1px); }
.btn-linha { background: rgba(12,13,15,.55); color: var(--ouro-claro); box-shadow: inset 0 0 0 1px var(--ouro-linha); }
.btn-linha:hover { box-shadow: inset 0 0 0 1px var(--ouro); filter: none; }

input, select, textarea {
  font: inherit; color: var(--texto); width: 100%;
  background: rgba(12,13,15, 0.75); border: 1px solid rgba(201,168,106,.18); border-radius: 12px;
  padding: 11px 16px; transition: border-color .15s, box-shadow .15s;
}
textarea { border-radius: 14px; }
input::placeholder, textarea::placeholder { color: #75777b; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ouro); box-shadow: 0 0 0 3px rgba(201,168,106,.14); }
label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--texto-suave); }

.login { max-width: 420px; margin: 9vh auto 0; display: flex; flex-direction: column; gap: 16px; text-align: center; padding: 40px 36px 34px; }
.login label { text-align: left; }
.login h1 { font-size: 20px; }
.marca { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 0 0 10px; }
.marca img { display: block; width: 220px; height: auto; filter: drop-shadow(0 8px 26px rgba(201,168,106,.25)); }
.erro { color: var(--erro); margin: 0; }
.alergia {
  margin: 0; padding: 8px 16px; border-radius: var(--raio-pill); font-weight: 500; color: #ffd8cf;
  background: linear-gradient(90deg, rgba(255,122,107, 0.24), rgba(255,122,107, 0.06));
  box-shadow: inset 0 0 0 1px rgba(255,122,107, 0.4);
}

.busca { display: flex; gap: 8px; min-width: min(440px, 100%); }
.lista { display: flex; flex-direction: column; padding: 10px; }
.linha {
  display: flex; justify-content: space-between; gap: 12px; padding: 13px 16px; border-radius: 14px;
  color: inherit; text-decoration: none; transition: background .15s;
}
.linha + .linha { box-shadow: 0 -1px 0 rgba(201,168,106,.07); }
.linha:hover { background: linear-gradient(90deg, rgba(201,168,106, 0.12), rgba(201,168,106, 0)); }

/* número de destaque (estilo "112 µg/dL" do laudo) */
.kpi {
  font: 500 36px/1.05 var(--fonte-marca); margin: 10px 0 0;
  background: var(--grad-ouro-texto); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.kpi small { font: 500 13px var(--fonte-texto); -webkit-text-fill-color: var(--ouro); }
.grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }

/* sidebar */
.sidebar {
  position: fixed; inset: 12px auto 12px 12px; width: 78px; z-index: 10;
  background: var(--grad-sidebar); border-radius: 22px;
  box-shadow: inset 0 0 0 1px rgba(201,168,106, 0.16), 0 24px 60px -24px rgba(0,0,0,.95);
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 0 18px;
}
.marca-a {
  width: 48px; height: 48px; margin-bottom: 14px; border-radius: 14px; display: grid; place-items: center;
  background: linear-gradient(160deg, #1f2023, #0c0d0f);
  box-shadow: inset 0 0 0 1px rgba(201,168,106,.4), 0 8px 22px -10px rgba(201,168,106,.55);
}
.marca-a img { width: 32px; height: 32px; }
.nav {
  width: 62px; height: 58px; border-radius: 16px; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 4px; color: var(--texto-suave); text-decoration: none; font-size: 11px; line-height: 1.15;
  transition: color .15s, background .15s;
}
.nav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.nav:hover { color: var(--ouro-claro); background: rgba(201,168,106,.06); }
.nav.ativo {
  color: var(--ouro-claro);
  background: radial-gradient(70px 56px at 50% 28%, rgba(201,168,106, 0.26), rgba(201,168,106, 0.03) 70%);
  box-shadow: inset 0 0 0 1px rgba(201,168,106, 0.42);
}
.nav.ativo svg { stroke: var(--ouro-luz); filter: drop-shadow(0 0 6px rgba(201,168,106,.7)); }
.sair { margin-top: auto; }
.sair button { background: none; border: 0; color: var(--texto-suave); font: inherit; font-size: 11px; cursor: pointer; }
.sair button:hover { color: var(--ouro); }

.nav-mais { display: none; cursor: pointer; }
.nav-extra { display: contents; }
@media (max-width: 700px) {
  body.com-menu main { margin-left: 0; padding: 16px 16px calc(100px + env(safe-area-inset-bottom)); }
  .sidebar { inset: auto 10px calc(10px + env(safe-area-inset-bottom)) 10px; width: auto; height: 68px; flex-direction: row; justify-content: space-around; padding: 0 6px; gap: 2px; }
  .sidebar > .nav { flex: 1 1 0; width: auto; max-width: 84px; height: 56px; }
  .marca-a { display: none; }
  .nav-mais { display: flex; }
  /* folha do "Mais": abre sobre a barra, como no iPhone */
  .nav-extra {
    display: none; position: fixed; right: 10px; bottom: calc(86px + env(safe-area-inset-bottom)); min-width: 210px; z-index: 11;
    flex-direction: column; gap: 2px; padding: 8px; border-radius: 18px; background: var(--grad-sidebar);
    box-shadow: inset 0 0 0 1px rgba(201,168,106,.22), 0 24px 60px -18px rgba(0,0,0,.95);
  }
  .nav-mais-chave:checked ~ .nav-extra { display: flex; }
  .nav-extra .nav { width: auto; height: 46px; flex-direction: row; justify-content: flex-start; gap: 12px; padding: 0 14px; }
  .sidebar .nav-extra .nav span { font-size: 14px; }
  .nav-extra .sair { margin: 4px 0 0; padding: 8px 14px; border-top: 1px solid rgba(201,168,106,.12); }
  .nav-extra .sair button { font-size: 14px; }
  /* cabeçalhos: grupos de botões e filtros quebram linha e ocupam a largura */
  .topo .busca { width: 100%; min-width: 0; flex-wrap: wrap; }
  .topo .busca > .btn { flex: 1 1 auto; white-space: nowrap; padding-inline: 14px; text-align: center; }
  .topo .busca > input { flex: 1 1 140px; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ===== gestão ===== */
h2.sub { font-size: 13px; color: var(--ouro); letter-spacing: .08em; text-transform: uppercase; margin: 6px 6px 10px; font-weight: 600; }
.vazio { padding: 10px 6px; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--texto-suave); }
.formulario { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; align-items: end; }
.formulario .largo, .formulario .btn { grid-column: 1 / -1; }
.formulario .btn { justify-self: start; }
label.check { flex-direction: row; align-items: center; gap: 10px; color: var(--texto); grid-column: 1 / -1; }
label.check input { width: auto; accent-color: var(--ouro); }
.grade-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; }
.agenda-linha, .fin-linha { display: grid; grid-template-columns: 110px 1fr auto auto; align-items: center; gap: 14px; }
.hora { font: 600 14px var(--fonte-titulo); color: var(--ouro); }
.quem { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.quem .muted { text-transform: none; letter-spacing: 0; font-size: 12px; color: var(--texto-suave); }
.acoes { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.acoes form { margin: 0; }
.inline { display: flex; gap: 6px; }
.inline select { padding: 6px 12px; width: auto; font-size: 12px; }
.chip {
  display: inline-block; font: 500 12px var(--fonte-texto); color: var(--ouro); text-decoration: none; cursor: pointer;
  background: linear-gradient(160deg, rgba(201,168,106,.14), rgba(201,168,106,.03)); border: 1px solid var(--ouro-linha);
  border-radius: var(--raio-pill); padding: 6px 12px;
}
.chip:hover { border-color: var(--ouro); }
.chip-fraco { color: var(--texto-suave); background: transparent; }
.status { font-size: 12px; font-weight: 500; padding: 5px 12px; border-radius: var(--raio-pill); white-space: nowrap; border: 1px solid transparent; }
.st-agendado { color: #e6d2a5; border-color: var(--ouro-linha); }
.st-confirmado { color: var(--ouro); background: var(--ouro-fundo); border-color: var(--ouro-linha); }
.st-compareceu, .st-em_atendimento { color: #1a1408; background: var(--grad-marca); }
.st-finalizado { color: #9ef0c8; background: rgba(46, 204, 138, .12); border-color: rgba(46, 204, 138, .35); }
.st-faltou { color: #ffb3b3; background: rgba(255, 107, 107, .12); border-color: rgba(255, 107, 107, .4); }
.st-desmarcado { color: var(--texto-suave); border-color: var(--cinza-medio); }
.valor { font: 600 15px var(--fonte-titulo); white-space: nowrap; }
.valor.receita { color: #9ef0c8; } .valor.despesa { color: #ffb3b3; }
.fin-linha.cancelado { opacity: .5; }
.card.destaque { background: linear-gradient(150deg, rgba(201,168,106,.22), rgba(20,22,25,.92) 70%); }
.card.mini { padding: 12px 18px; }
.card.mini .kpi { font-size: 24px; margin-top: 4px; }
.notas { display: grid; grid-template-columns: repeat(11, 1fr); gap: 6px; }
.nota input { position: absolute; opacity: 0; }
.nota span { display: block; text-align: center; padding: 10px 0; border-radius: 10px; border: 1px solid var(--ouro-linha); color: var(--texto); cursor: pointer; }
.nota input:checked + span { background: var(--grad-marca); color: #1a1408; font-weight: 600; }
p.erro.card { padding: 14px 22px; }
@media (max-width: 700px) {
  .agenda-linha, .fin-linha { grid-template-columns: 1fr auto; }
  .agenda-linha .acoes, .fin-linha .acoes { grid-column: 1 / -1; justify-content: flex-start; }
  .sidebar .nav span { font-size: 10px; }
}
.texto-suave { color: var(--texto-suave); font-size: 13px; margin: 0; line-height: 1.55; }

/* ===== consulta ===== */
.consulta { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; }
.evolucao { display: flex; flex-direction: column; gap: 12px; }
.evolucao textarea { resize: vertical; line-height: 1.5; }
.escuta { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 12px; max-height: calc(100vh - 40px); }
.escuta-topo { display: flex; align-items: center; gap: 10px; }
.escuta-topo #estado { flex: 1; color: var(--texto-suave); font-size: 13px; }
.ponto { width: 10px; height: 10px; border-radius: 50%; background: var(--cinza-medio); flex: none; }
.ponto.ativo { background: var(--ouro); box-shadow: 0 0 0 0 rgba(201,168,106,.6); animation: pulso 1.6s infinite; }
@keyframes pulso { 70% { box-shadow: 0 0 0 10px rgba(201,168,106,0); } 100% { box-shadow: 0 0 0 0 rgba(201,168,106,0); } }
.trechos { list-style: none; margin: 0; padding: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.trechos li { padding: 8px 12px; border-radius: 12px; background: linear-gradient(90deg, rgba(201,168,106,.08), rgba(201,168,106,0)); }
.chip-forte { background: var(--grad-marca); color: #1a1408; border-color: transparent; font-weight: 600; }
@media (max-width: 1000px) { .consulta { grid-template-columns: 1fr; } .escuta { position: static; } }
.evolucao textarea.atualizou { animation: brilho 1.2s ease-out; } @keyframes brilho { from { box-shadow: 0 0 0 3px rgba(201,168,106,.45); } to { box-shadow: 0 0 0 0 rgba(201,168,106,0); } }

/* ===== teste do microfone ===== */
.teste-mic { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 16px;
  background: radial-gradient(800px 500px at 50% 30%, rgba(201,168,106,.10), transparent 60%), rgba(4,4,5, .72);
  backdrop-filter: blur(10px); opacity: 0; transition: opacity .25s; }
.teste-mic.aberto { opacity: 1; }
.teste-mic-cartao { position: relative; width: min(520px, 100%); padding: 30px; border-radius: 26px; text-align: center;
  display: flex; flex-direction: column; gap: 14px; isolation: isolate;
  background: linear-gradient(160deg, rgba(30,32,35,.96), rgba(20,22,25,.96));
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.6), 0 0 60px -20px rgba(201,168,106,.35);
  transform: translateY(8px) scale(.98); transition: transform .3s; }
.teste-mic.aberto .teste-mic-cartao { transform: none; }
.teste-mic-cartao::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; z-index: -1;
  background: var(--grad-borda); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.teste-mic-cartao h2 { font-size: 22px; }
.tm-ondas { width: 100%; height: 96px; border-radius: 18px; background: linear-gradient(180deg, rgba(201,168,106,.05), rgba(201,168,106,0)); }
.tm-linhas { display: grid; gap: 8px; text-align: left; }
.tm-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; background: rgba(12,13,15,.55); border: 1px solid var(--ouro-linha); transition: border-color .3s, background .3s; }
.tm-item > span:last-child { display: flex; flex-direction: column; font-weight: 500; }
.tm-item small { color: var(--texto-suave); font-weight: 400; font-size: 12px; }
.tm-marca { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--cinza-medio); flex: none; position: relative; transition: all .3s; }
.tm-item.ok { border-color: rgba(201,168,106,.5); background: linear-gradient(90deg, rgba(201,168,106,.12), rgba(12,13,15,.55)); }
.tm-item.ok .tm-marca { border-color: transparent; background: var(--grad-marca); }
.tm-item.ok .tm-marca::after { content: ""; position: absolute; left: 7px; top: 3px; width: 5px; height: 10px; border: solid #1a1408; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.tudo-certo { box-shadow: 0 30px 80px -20px rgba(0,0,0,.6), 0 0 80px -10px rgba(201,168,106,.65); }
.tm-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.tm-acoes label.check { margin-right: auto; grid-column: auto; font-size: 12px; color: var(--texto-suave); }
.nivel { display: inline-flex; align-items: flex-end; gap: 2px; height: 14px; }
.nivel i { width: 3px; border-radius: 2px; background: var(--cinza-medio); transition: background .1s; }
.nivel i:nth-child(1) { height: 4px; } .nivel i:nth-child(2) { height: 7px; } .nivel i:nth-child(3) { height: 10px; } .nivel i:nth-child(4) { height: 12px; } .nivel i:nth-child(5) { height: 14px; }
.nivel i.on { background: var(--ouro); box-shadow: 0 0 6px rgba(201,168,106,.6); }
@media (prefers-reduced-motion: reduce) { .teste-mic, .teste-mic-cartao { transition: none; } }

/* ===== aparelhos ===== */
.papeis { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.papel { text-align: left; display: flex; flex-direction: column; gap: 8px; cursor: pointer; color: inherit; font: inherit; }
.papel strong { font-family: var(--fonte-titulo); font-size: 17px; }
.papel.ativo { box-shadow: 0 0 0 2px var(--ouro), 0 0 40px -10px rgba(201,168,106,.5); }

/* ===== tela do paciente (celular deitado na TV) ===== */
body.tv { margin: 0; min-height: 100dvh; overflow: hidden; background: radial-gradient(1200px 700px at 20% 10%, rgba(201,168,106,.14), transparent 60%), linear-gradient(160deg, #141619, #08090b 70%); }
.tv-palco { position: relative; height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 10px; padding: 24px 32px 64px; box-sizing: border-box; isolation: isolate; }
.tv-palco h1 { font-size: clamp(34px, 8vw, 72px); margin: 0; filter: drop-shadow(0 0 30px rgba(201,168,106,.35)); }
.tv-onda { position: absolute; inset: auto 0 0 0; height: 45%; z-index: -1; opacity: .5; background: var(--onda) bottom / cover no-repeat; pointer-events: none; }
.tv-espera .texto-suave { max-width: 520px; }
.tv-conteudo { position: absolute; inset: 16px 16px 60px; overflow-y: auto; text-align: left; border-radius: 22px; padding: 22px 26px; background: linear-gradient(160deg, rgba(30,32,35,.92), rgba(20,22,25,.92)); box-shadow: 0 20px 60px -20px rgba(0,0,0,.6); animation: entrar .35s ease-out; }
@keyframes entrar { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: none; } }
.tv-fechar { position: sticky; top: 0; float: right; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--ouro-linha); background: rgba(12,13,15,.85); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; z-index: 2; }
.tv-barra { position: fixed; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); font-size: 13px; color: var(--texto-suave); background: linear-gradient(0deg, rgba(4,4,5,.9), transparent); }
.tv-barra .chip { margin-left: auto; }
.tv-comecar { position: fixed; inset: 0; z-index: 40; display: grid; place-content: center; justify-items: center; gap: 12px; text-align: center; background: rgba(4,4,5,.78); backdrop-filter: blur(8px); }
.tv-comecar[hidden] { display: none; }
.tv-comecar .btn { font-size: 18px; padding: 16px 28px; }
.tv-gire { display: none; }
@media (orientation: portrait) and (max-width: 700px) {
  body.tv .tv-gire { display: flex; position: fixed; inset: 0; z-index: 60; flex-direction: column; align-items: center; justify-content: center; gap: 16px; background: #08090b; color: #fff; text-align: center; }
  .tv-gire svg { width: 64px; height: 64px; fill: none; stroke: var(--ouro); stroke-width: 1.6; animation: girar 2.4s ease-in-out infinite; }
}
@keyframes girar { 0%, 30% { transform: rotate(0); } 60%, 100% { transform: rotate(-90deg); } }

/* ===== insights da IA (lateral direita) ===== */
.ins-botao { position: fixed; right: 0; top: 42%; z-index: 30; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 9px; border: 0; border-radius: 16px 0 0 16px; cursor: pointer;
  background: var(--grad-marca); color: #1a1408; font: 600 12px var(--fonte-titulo); box-shadow: -6px 0 30px -8px rgba(201,168,106,.55); transition: transform .2s; }
.ins-botao span { writing-mode: vertical-rl; transform: rotate(180deg); letter-spacing: .04em; }
.ins-botao svg { width: 20px; height: 20px; fill: #1a1408; }
.ins-botao:hover { transform: translateX(-3px); }
.ins-botao.ativo { right: 400px; }
.ins-botao.pulsa { animation: insPulso 1.4s ease-out 2; }
@keyframes insPulso { 0% { box-shadow: -6px 0 30px -8px rgba(201,168,106,.55), 0 0 0 0 rgba(201,168,106,.7); } 100% { box-shadow: -6px 0 30px -8px rgba(201,168,106,.55), 0 0 0 16px rgba(201,168,106,0); } }
.ins-contador { position: absolute; top: -8px; left: -8px; min-width: 22px; height: 22px; border-radius: 11px; display: grid; place-items: center; background: var(--ouro-luz); color: #1a1408; font: 700 12px Inter, sans-serif; }
.ins-painel { position: fixed; top: 0; right: 0; bottom: 0; width: 400px; max-width: 100vw; z-index: 31; display: flex; flex-direction: column; gap: 10px; padding: 22px 20px 16px; box-sizing: border-box;
  background: linear-gradient(170deg, rgba(26,28,31,.97), rgba(10,11,13,.98)); box-shadow: -30px 0 80px -30px rgba(0,0,0,.8), inset 1px 0 0 var(--ouro-linha);
  transform: translateX(100%); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.ins-painel.aberto { transform: none; }
.ins-painel header { display: flex; justify-content: space-between; align-items: flex-start; }
.ins-painel h2 { margin: 2px 0 0; font-size: 20px; }
.ins-painel h3 { font: 600 12px var(--fonte-titulo); letter-spacing: .08em; text-transform: uppercase; color: var(--ouro); margin: 18px 0 8px; }
.ins-x { background: none; border: 0; color: var(--texto-suave); font-size: 28px; cursor: pointer; line-height: 1; }
.ins-estado { margin: 0; font-size: 12px; color: var(--texto-suave); }
.ins-corpo { flex: 1; overflow-y: auto; margin: 0 -6px; padding: 0 6px; }
.ins-corpo.atualizou { animation: brilho 1.2s ease-out; border-radius: 12px; }
.ins-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: h; }
.ins-lista li { padding: 10px 12px; border-radius: 12px; background: rgba(12,13,15,.6); border: 1px solid rgba(201,168,106,.12); font-size: 14px; }
.ins-lista small { display: block; color: var(--texto-suave); font-size: 12px; margin-top: 4px; line-height: 1.4; }
.ins-lista li.ins-vazio, p.ins-vazio { color: var(--texto-suave); font-size: 13px; background: none; border: 0; padding: 4px 0; }
.ins-forca { font: 500 10px Inter, sans-serif; text-transform: uppercase; letter-spacing: .06em; padding: 2px 7px; border-radius: 10px; margin-left: 4px; vertical-align: 2px; }
.f-alta { background: rgba(201,168,106,.2); color: var(--ouro); } .f-moderada { background: rgba(165,167,170,.18); color: #e6d2a5; } .f-baixa { background: rgba(60,60,64,.5); color: var(--texto-suave); }
.ins-alerta { margin: 0 0 8px; padding: 10px 12px; border-radius: 12px; font-size: 13px; background: rgba(255,170,80,.12); border: 1px solid rgba(255,170,80,.45); color: #ffd9b0; }
.ins-artigos { display: grid; gap: 10px; }
.ins-artigo { display: flex; flex-direction: column; gap: 6px; text-align: left; padding: 12px 14px; border-radius: 14px; cursor: pointer; color: inherit; font: inherit;
  background: linear-gradient(135deg, rgba(201,168,106,.10), rgba(12,13,15,.6)); border: 1px solid rgba(201,168,106,.28); animation: entrar .35s ease-out; transition: border-color .2s, transform .2s; }
.ins-artigo:hover { border-color: var(--ouro); transform: translateY(-1px); }
.ins-artigo-topo { display: flex; justify-content: space-between; gap: 8px; align-items: center; font-size: 11px; color: var(--texto-suave); }
.ins-tema { font: 600 13px var(--fonte-titulo); }
.ins-resumo { font-size: 13px; line-height: 1.45; color: #dcd8cf; }
.ins-abrir { font-size: 12px; color: var(--ouro); font-weight: 500; }
.ins-painel footer { display: flex; align-items: center; gap: 10px; font-size: 11px; color: var(--texto-suave); border-top: 1px solid rgba(201,168,106,.12); padding-top: 12px; }
.ins-modal { position: fixed; inset: 0; z-index: 45; display: grid; place-items: center; padding: 24px; background: rgba(4,4,5,.75); backdrop-filter: blur(8px); animation: entrar .25s ease-out; }
.ins-modal-caixa { position: relative; width: min(980px, 100%); max-height: 100%; overflow-y: auto; padding: 22px; border-radius: 24px; background: var(--grad-card); box-shadow: 0 30px 90px -20px rgba(0,0,0,.7), 0 0 0 1px var(--ouro-linha); }
.ins-na-tv { margin: 12px 0 0; font-size: 12px; color: var(--texto-suave); text-align: right; }

/* capa do artigo (PC e TV) */
.artigo { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: 24px; align-items: start; }
.artigo-capa { position: relative; aspect-ratio: 3 / 4; display: flex; flex-direction: column; gap: 12px; padding: 22px 22px 18px; border-radius: 14px; overflow: hidden; color: #141619;
  background: linear-gradient(180deg, #ffffff, #f6f2ea); box-shadow: 0 24px 60px -18px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.4); }
.artigo-faixa { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 10px; border-bottom: 2px solid #141619; font: 600 11px var(--fonte-titulo); text-transform: uppercase; letter-spacing: .06em; }
.artigo-faixa span:last-child { font-weight: 500; white-space: nowrap; text-transform: none; }
.artigo-selo { align-self: flex-start; font: 600 10px var(--fonte-titulo); text-transform: uppercase; letter-spacing: .08em; padding: 4px 9px; border-radius: 999px; background: #141619; color: #C9A86A; }
.ins-artigo .artigo-selo { background: rgba(201,168,106,.18); color: var(--ouro); }
.artigo-capa h2 { margin: 4px 0 0; font: 600 clamp(16px, 2.1vw, 21px)/1.25 var(--fonte-titulo); color: #141619; display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
body.tv .artigo-capa h2 { -webkit-line-clamp: 5; }
.artigo-autores { margin: 0; font-size: 12px; color: #3a474b; }
.artigo-pe { margin-top: auto; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 11px; color: #3a474b; border-top: 1px solid #e4dac8; padding-top: 10px; }
.artigo-texto { display: flex; flex-direction: column; gap: 12px; font-size: 15px; line-height: 1.6; }
.artigo-texto p { margin: 0; }
.artigo-resumo { font: 500 clamp(17px, 2vw, 21px)/1.45 var(--fonte-titulo); color: #fff; }
.artigo-texto .chip { align-self: flex-start; }
body.tv .artigo { grid-template-columns: minmax(220px, 34%) 1fr; }
body.tv .artigo-capa { aspect-ratio: auto; min-height: 100%; }
.artigo-faixa span:first-child { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.tv .artigo-texto { font-size: clamp(14px, 1.9vw, 19px); }
@media (max-width: 760px) { .artigo { grid-template-columns: 1fr; } .artigo-capa { aspect-ratio: auto; } .ins-botao.ativo { right: 100vw; } }
@media (prefers-reduced-motion: reduce) { .ins-painel, .ins-artigo, .ins-modal { transition: none; animation: none; } }

/* ===== exames ===== */
.ex-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.ex-anexar { cursor: pointer; flex-direction: row; }
.ex-arquivos { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.ex-arquivos li { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; padding: 8px 12px; border-radius: 12px; background: rgba(12,13,15,.55); border: 1px solid rgba(201,168,106,.12); }
.ex-arquivos a { color: var(--texto); font-weight: 500; }
.ex-arquivos span { color: var(--texto-suave); } .ex-arquivos small { flex-basis: 100%; color: #ffcf9a; }
.ex-arquivos .st-lendo span { color: var(--ouro); } .ex-arquivos .st-erro span { color: #ffb46b; }
.ex-grupo h3 { font: 600 12px var(--fonte-titulo); letter-spacing: .08em; text-transform: uppercase; color: var(--ouro); margin: 18px 0 10px; }
.ex-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.ex-cartao { position: relative; padding: 14px 16px 12px; border-radius: 16px; background: linear-gradient(180deg, #1a1c1f, #111214); border: 1px solid rgba(255,255,255,.06); transition: border-color .2s; }
.ex-cartao:hover { border-color: rgba(201,168,106,.25); }
.ex-cartao.fora { border-color: rgba(255,180,107,.35); }
.ex-cartao header { display: flex; align-items: center; gap: 8px; }
.ex-nome { font: 600 13px var(--fonte-titulo); color: #ece9e2; margin-right: auto; }
.ex-delta { font: 600 11px Inter, sans-serif; padding: 2px 8px; border-radius: 20px; }
.ex-delta.sobe { color: #25d39a; background: rgba(37,211,154,.12); } .ex-delta.desce { color: #e6d2a5; background: rgba(201,168,106,.1); }
.ex-tv { font: 600 10px var(--fonte-titulo); letter-spacing: .06em; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--ouro-linha); background: transparent; color: var(--ouro); cursor: pointer; }
.ex-valor { display: flex; align-items: baseline; gap: 6px; margin: 8px 0 2px; }
.ex-valor b { font: 700 24px Inter, sans-serif; color: #fff; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.ex-valor span { font-size: 11px; color: var(--texto-suave); } .ex-valor small { margin-left: auto; font-size: 11px; color: #7e8084; }
.ex-grafico { width: 100%; height: auto; display: block; margin-top: 4px; }
.ex-ref { margin: 6px 0 0; font-size: 11px; color: #7e8084; }
.ex-conferir { margin: 4px 0 0; font-size: 11px; color: #ffcf9a; }
.ex-modal { width: min(1200px, 100%); }
.ex-modal h2 { margin: 0 0 14px; }
.tv-titulo { margin: 0 0 6px; font-size: 22px; }
body.tv .ex-grade { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
/* pré-consulta (página do paciente, celular) */
.pre { max-width: 560px; margin: 24px auto; display: flex; flex-direction: column; gap: 14px; }
.pre-arquivo { cursor: pointer; } .pre-arquivo input { display: none; }
.pre-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.pre-lista li { padding: 10px 12px; border-radius: 12px; background: rgba(12,13,15,.6); } .pre-lista li.ok { color: var(--ouro); } .pre-lista li.erro { color: #ffb46b; }
body.tv .ex-grade:has(> .ex-cartao:only-child) { grid-template-columns: minmax(0, 760px); }
body.tv .ex-grafico { max-height: 36dvh; } body.tv .tv-titulo { font-size: 16px; margin: 0; } body.tv .ex-grupo h3 { margin: 8px 0 6px; }

/* ===== receita e assinatura ===== */
.receita { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start; }
.receita-editor { display: flex; flex-direction: column; gap: 12px; }
.receita-editor textarea { min-height: 360px; font-size: 15px; line-height: 1.6; }
.receita-tipos { display: flex; flex-wrap: wrap; gap: 8px; }
.chip.ativo { background: var(--grad-marca); color: #1a1408; border-color: transparent; }
.receita-acoes { display: flex; justify-content: flex-end; gap: 10px; align-items: center; }
.receita-modelos { position: sticky; top: 16px; max-height: calc(100dvh - 32px); overflow-y: auto; display: flex; flex-direction: column; gap: 8px; }
.receita-modelos h3 { font: 600 11px var(--fonte-titulo); letter-spacing: .08em; text-transform: uppercase; color: var(--ouro); margin: 12px 0 2px; }
.modelo { text-align: left; padding: 9px 12px; border-radius: 12px; border: 1px solid rgba(201,168,106,.14); background: rgba(12,13,15,.55); color: var(--texto); font: 500 13px Inter, sans-serif; cursor: pointer; transition: border-color .2s, background .2s; }
.modelo:hover { border-color: var(--ouro); background: rgba(201,168,106,.08); }
.selo-assinatura { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--texto-suave); }
.selo-assinatura.pronta { padding: 6px 12px; border-radius: 999px; color: var(--ouro); background: rgba(201,168,106,.1); box-shadow: inset 0 0 0 1px var(--ouro-linha); }
.selo-assinatura.pronta::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ouro); box-shadow: 0 0 8px var(--ouro); }
.emitido { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border-radius: 14px; background: linear-gradient(90deg, rgba(201,168,106,.12), rgba(12,13,15,.5)); border: 1px solid rgba(201,168,106,.35); }
.emitido div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.assin-caixa { width: min(480px, 100%); display: flex; flex-direction: column; gap: 12px; }
.assin-caixa h2 { margin: 0; }
@media (max-width: 900px) { .receita { grid-template-columns: 1fr; } .receita-modelos { position: static; max-height: none; } }
#modelos { display: grid; gap: 6px; }
a.btn, a.chip { text-decoration: none; }

/* ===== rótulos de seção no padrão do laudo Aper ("HISTÓRICO DE RESULTADOS") ===== */
h2.sub, .ex-grupo h3, .ins-painel h3, .receita-modelos h3 { font-family: var(--fonte-marca); font-weight: 600; letter-spacing: .2em; color: var(--ouro); }
.papel strong, .ins-tema, .teste-mic-cartao h2, .ins-painel h2 { font-family: var(--fonte-marca); font-weight: 600; letter-spacing: .03em; color: var(--ouro-claro); }
.hora { color: var(--ouro-claro); font-variant-numeric: tabular-nums; }
.ex-cartao { background: linear-gradient(180deg, #17181b, #0e0f11); border-color: rgba(201,168,106,.10); }
.ex-valor b { font-family: var(--fonte-marca); font-weight: 600; letter-spacing: 0; background: var(--grad-ouro-texto); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
span.muted { color: var(--texto-suave); letter-spacing: .08em; }

/* ===== cadastro do médico e conferência da direção ===== */
.link-suave { color: var(--texto-suave); font-size: 13px; text-decoration: none; }
.link-suave:hover { color: var(--ouro-claro); }
.cadastro { max-width: 560px; margin-top: 5vh; margin-bottom: 6vh; }
.cadastro #cad-passo1, .cadastro #cad-passo2 { display: flex; flex-direction: column; gap: 14px; }
.cadastro [hidden] { display: none !important; }
.cadastro-campos { display: flex; flex-direction: column; gap: 14px; text-align: left; }
.dupla { display: grid; grid-template-columns: 1fr 96px; gap: 12px; }
.campo-doc { display: flex; flex-direction: column; gap: 6px; }
.campo-doc .rotulo { font-size: 12px; color: var(--texto-suave); }
.doc-par { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.doc-slot {
  position: relative; aspect-ratio: 1.6; border-radius: 14px; overflow: hidden; cursor: pointer;
  align-items: center; justify-content: center; border: 1px dashed var(--ouro-linha); background: var(--ouro-fundo);
  color: var(--ouro-claro); font-size: 13px; transition: border-color .2s;
}
.doc-slot:hover { border-color: var(--ouro); }
.doc-slot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.doc-slot.cheio { border-style: solid; }
.doc-slot.cheio span { position: absolute; bottom: 8px; left: 8px; padding: 3px 10px; border-radius: 999px; background: rgba(8,9,11,.72); }
.chave { display: block; padding: 14px; border-radius: 12px; background: var(--ouro-fundo); border: 1px solid var(--ouro-linha);
  font: 600 16px/1.6 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing: .06em; color: var(--ouro-claro); word-break: break-all; }
#cad-passo2 form { display: flex; flex-direction: column; gap: 12px; text-align: left; }
.conferencia { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(320px, 1.4fr); gap: 18px 24px; }
.conferencia p { margin: 0 0 6px; }
.conf-links { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px !important; }
.conferencia .doc-par img { width: 100%; aspect-ratio: 1.6; object-fit: cover; border-radius: 12px; border: 1px solid var(--ouro-linha); }
.conf-decisao { grid-column: 1 / -1; display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.conf-decisao label { flex: 1 1 260px; }
@media (max-width: 720px) { .conferencia { grid-template-columns: 1fr; } }

/* ===== abertura (roteiro das IAs do OpenRouter, consolidado): fundo escuro, os arcos dourados giram
   e acendem, um feixe de luz corre o arco, o logo nasce no centro e assenta no lugar final, e só então
   o cartão abre. Uma vez por visita; com "reduzir movimento", já entra pronto. ===== */
@property --feixe { syntax: '<angle>'; inherits: false; initial-value: 200deg; }
body:has(.abertura)::before { display: none; }
.abertura-fundo { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: #050506; }
.abertura-fundo { --pivo: 52% 36%; }
.abertura-fundo i { position: absolute; inset: -14%; background: url(/marca/fundo-vertical.webp) center / cover no-repeat; transform-origin: var(--pivo); }
.abertura-fundo .af-imagem { animation: fundo-deriva 20s ease-in-out infinite alternate; }
.abertura-fundo .af-luz {
  opacity: 0; mix-blend-mode: screen; filter: brightness(1.45) saturate(1.1);
  -webkit-mask: conic-gradient(from var(--feixe) at var(--pivo), transparent 0deg, #000 14deg, transparent 40deg);
  mask: conic-gradient(from var(--feixe) at var(--pivo), transparent 0deg, #000 14deg, transparent 40deg);
}
/* fios de luz ao vivo (public/js/abertura.js); a imagem fica só para aparelho sem WebGL */
.abertura-gl { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
html.gl .abertura-fundo i { display: none; }
.af-relogio { position: absolute; width: 0; height: 0; animation: relogio 100000s linear both; }
@keyframes relogio { to { opacity: 1; } }
@media (orientation: landscape) {
  .abertura-fundo { --pivo: 30% 42%; }
  .abertura-fundo i { background-image: url(/marca/fundo-horizontal.webp); }
}

.abertura { min-height: calc(100vh - 40px); min-height: calc(100dvh - 40px); display: flex; flex-direction: column; align-items: center; gap: clamp(18px, 3.5vh, 34px); padding-top: clamp(24px, 8vh, 96px); }
.abertura .marca-abertura { position: relative; margin: 0; }
.abertura .marca-abertura img { width: min(78vw, clamp(280px, 24vw, 460px)); filter: drop-shadow(0 12px 40px rgba(201,168,106,.3)); }
.abertura .login { max-width: 420px; }
/* celular deitado e telas baixas: logo e cartão lado a lado, tudo cabe sem rolar */
@media (orientation: landscape) and (max-height: 560px) {
  .abertura { flex-direction: row; justify-content: center; align-items: center; gap: clamp(28px, 6vw, 72px); padding-top: 0; }
  .abertura .marca-abertura img { width: min(40vw, 340px); }
  .abertura .login { max-width: 340px; padding: 20px 24px; gap: 10px; }
}
.abertura .marca-abertura::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; opacity: 0;
  background: linear-gradient(105deg, transparent 42%, rgba(255,244,220,.8) 50%, transparent 58%) 130% 0 / 300% 100% no-repeat;
  -webkit-mask: url(/marca/aper-health.webp) center / contain no-repeat; mask: url(/marca/aper-health.webp) center / contain no-repeat;
}
.abertura .login { margin: 0; width: 100%; padding: 30px 34px; }
.abertura .login .btn-linha { text-align: center; text-decoration: none; }

html.anima:not(.pronto) .abertura-fundo i, html.anima:not(.pronto) .af-relogio, html.anima:not(.pronto) .abertura .marca-abertura,
html.anima:not(.pronto) .abertura .marca-abertura::after, html.anima:not(.pronto) .abertura .login { animation-play-state: paused; }
html:not(.ja-abriu) .af-imagem { animation: fundo-nasce 2.8s cubic-bezier(.22,1,.36,1) both, fundo-deriva 20s ease-in-out 2.8s infinite alternate; }
html:not(.ja-abriu) .af-luz { animation: fundo-gira 2.8s cubic-bezier(.22,1,.36,1) both, feixe 2.2s cubic-bezier(.4,0,.2,1) .7s both; }
html:not(.ja-abriu) .abertura .marca-abertura { animation: logo-nasce 4s cubic-bezier(.16,1,.3,1) both; }
html:not(.ja-abriu) .abertura .marca-abertura::after { animation: reflexo 1s ease-in-out 2.3s both; }
html:not(.ja-abriu) .abertura .login { animation: entrar .8s cubic-bezier(.22,1,.36,1) 3.85s both; }

@keyframes fundo-nasce { from { opacity: 0; transform: rotate(-9deg) scale(1.16); } to { opacity: 1; transform: none; } }
@keyframes fundo-gira { from { transform: rotate(-9deg) scale(1.16); } to { transform: none; } }
@keyframes fundo-deriva { from { transform: none; } to { transform: rotate(2deg) scale(1.03); } }
@keyframes feixe { 0% { opacity: 0; --feixe: 200deg; } 20%, 75% { opacity: 1; } 100% { opacity: 0; --feixe: 480deg; } }
/* --ate-x/--ate-y: distância do lugar final do logo até o centro da tela, medida na hora em cada aparelho (auth.js) */
@keyframes logo-nasce {
  0%, 35% { opacity: 0; transform: translate(var(--ate-x, 0px), var(--ate-y, 30vh)) scale(1.08); filter: blur(10px); }
  58% { opacity: 1; transform: translate(var(--ate-x, 0px), var(--ate-y, 30vh)) scale(1.14); filter: blur(0); }
  78% { opacity: 1; transform: translate(var(--ate-x, 0px), var(--ate-y, 30vh)) scale(1.14); filter: none; }
  100% { opacity: 1; transform: none; filter: none; }
}
@keyframes reflexo { from { opacity: 1; background-position: 130% 0; } to { opacity: 1; background-position: -30% 0; } }
@media (prefers-reduced-motion: reduce) { .abertura-fundo i, .abertura, .abertura * { animation: none !important; } }
