/* =====================================================================
   auth.css v1 — telas de acesso do Athena7 Conformidade NR1
   (login, esqueci a senha, definir senha por token).
   PLANO-INTEGRACAO-NR1.md §1.2/§1.3/§8.2, fase 5, passo 3.
   Duas metades: a noite à esquerda (marca + mensagem) e o formulário
   claro à direita; no celular a noite vira uma faixa curta no topo.
   SÓ var(--token): zero hex, zero rgba solto; tons derivados usam
   color-mix sobre token. Não redefine token. Prefixo .a7a- para não
   colidir com nada (estas telas não carregam app.css nem shell.css).
   Contrastes calculados na especificação (pior caso: texto sobre o
   halo da noite e branco sobre a ponta magenta (--accent) do gradiente).
   ===================================================================== */
:root{
  --a7a-hit:2.75rem;
  --a7a-field-h:3rem;
  --a7a-on:var(--primary-foreground);
  --a7a-on-2:color-mix(in srgb, var(--primary-foreground) 80%, transparent);
  --a7a-on-3:color-mix(in srgb, var(--primary-foreground) 66%, transparent);
  --a7a-ring-ondark:color-mix(in srgb, var(--primary-foreground) 12%, transparent);
  --a7a-halo-1:color-mix(in srgb, var(--primary) 30%, transparent);
  --a7a-halo-2:color-mix(in srgb, var(--accent) 16%, transparent);
  --a7a-field-line:color-mix(in srgb, var(--muted-foreground) 80%, var(--card));
  --a7a-focus:color-mix(in srgb, var(--ring) 30%, transparent);
  --a7a-danger-tint:color-mix(in srgb, var(--destructive) 6%, var(--card));
  --a7a-danger-line:color-mix(in srgb, var(--destructive) 24%, var(--card));
  --a7a-ok-tint:color-mix(in srgb, var(--success) 6%, var(--card));
  --a7a-ok-line:color-mix(in srgb, var(--success) 24%, var(--card));
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.a7a{
  margin:0;background:var(--card);color:var(--foreground);
  font-family:var(--font-sans);font-size:var(--text-body);line-height:1.5;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale
}
.a7a img{max-width:100%;height:auto}
.a7a-sr{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.a7a-ic{width:1.25rem;height:1.25rem;flex:0 0 auto}

/* ---------- as duas metades ---------- */
.a7a-shell{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  min-height:100svh;min-height:100dvh
}

/* ---------- a noite ---------- */
.a7a-night{
  position:relative;isolation:isolate;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-10);
  padding:var(--space-11) var(--space-12);
  background-color:var(--night);
  background-image:
    radial-gradient(70% 55% at 8% 10%, var(--a7a-halo-1), transparent 70%),
    radial-gradient(60% 50% at 96% 96%, var(--a7a-halo-2), transparent 72%);
  color:var(--a7a-on)
}
.a7a-night::before,
.a7a-night::after{
  content:"";position:absolute;z-index:-1;border-radius:50%;
  border:1px solid var(--a7a-ring-ondark);pointer-events:none
}
.a7a-night::before{width:32rem;height:32rem;right:-11rem;top:-10rem}
.a7a-night::after{width:20rem;height:20rem;right:-4rem;top:-2rem}
.a7a-night-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}

/* Assinatura: PNG da marca (elmo + ATHENA 7) + descritor D5 em texto vivo,
   Sora 500, caixa-alta, tracking, cor secundária, alinhado às duas bordas
   da palavra ATHENA 7 (39,94% a 100% do PNG) — mesma regra do shell.css. */
.a7a-brand{position:relative;width:16rem;container-type:inline-size;flex:0 0 auto;line-height:0}
.a7a-brand-img{display:block;width:100%;height:auto}
.a7a-brand-desc{
  position:absolute;left:39.94%;width:60.06%;top:75%;
  display:flex;justify-content:space-between;
  font-family:var(--font-sans);font-weight:500;
  font-size:.625rem;font-size:4.75cqi;line-height:1;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
  color:var(--a7a-on-2)
}
.a7a-brand-desc > span:last-child{margin-right:-.1em}

/* logo da empresa convidante (setup): placa clara, cores originais
   (inverter para branco apagava logo com fundo chapado) */
.a7a-org{display:flex;align-items:center;justify-content:center;min-width:0;flex:0 1 auto;line-height:0;padding:var(--space-2) var(--space-3);background:var(--card);border-radius:var(--radius-lg)}
.a7a-org img{display:block;max-height:2.25rem;max-width:8rem;width:auto;object-fit:contain}

.a7a-night-mid{max-width:30rem}
.a7a-night-title{
  margin:var(--space-5) 0 var(--space-4);
  font-size:var(--text-display);font-weight:700;line-height:1.08;letter-spacing:-.02em;
  color:var(--a7a-on);text-wrap:balance
}
.a7a-night-title--sm{font-size:var(--text-h1);line-height:1.12}
.a7a-night-title em{
  font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:0;
  color:var(--a7a-on);padding-right:.02em
}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .a7a-night-title em{
    background-image:var(--grad-ondark);
    -webkit-background-clip:text;background-clip:text;
    color:transparent;-webkit-text-fill-color:transparent
  }
}
.a7a-night-lead{margin:0;max-width:28rem;font-size:var(--text-body-lg);line-height:1.6;color:var(--a7a-on-2);text-wrap:pretty}
.a7a-night-foot{margin:0;font-size:var(--text-caption);letter-spacing:.04em;color:var(--a7a-on-3)}

/* ---------- marcador (fio + kicker) ---------- */
.a7a-kicker{
  display:flex;align-items:center;gap:var(--space-3);margin:0;
  font-size:var(--text-caption);font-weight:600;line-height:1.4;
  letter-spacing:.2em;text-transform:uppercase;color:var(--primary)
}
.a7a-kicker::before{content:"";flex:0 0 auto;width:var(--space-10);height:1px;background-color:var(--primary);background-image:var(--grad)}
.a7a-kicker--ondark{color:var(--a7a-on-2)}
.a7a-kicker--ondark::before{background-color:var(--a7a-on-2);background-image:var(--grad-ondark)}

/* ---------- a metade clara ---------- */
.a7a-panel{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-12);background:var(--card)}
.a7a-card{width:100%;max-width:26rem;overflow-wrap:anywhere;animation:a7a-rise var(--motion-slow) var(--ease-enter) both}
@keyframes a7a-rise{from{opacity:0;transform:translateY(var(--motion-rise))}}

.a7a-back{
  display:inline-flex;align-items:center;gap:var(--space-2);
  min-height:var(--a7a-hit);margin:0 0 var(--space-5) calc(var(--space-2) * -1);padding:0 var(--space-2);
  border-radius:var(--radius-md);color:var(--muted-foreground);
  font-size:var(--text-small);font-weight:500;text-decoration:none;
  transition:color var(--motion-fast) var(--ease-move)
}
.a7a-back .a7a-ic{width:1rem;height:1rem;transition:transform var(--motion-fast) var(--ease-move)}
.a7a-back:hover{color:var(--foreground)}
.a7a-back:hover .a7a-ic{transform:translateX(calc(var(--space-1) * -.5))}

.a7a-title{
  margin:var(--space-3) 0 var(--space-2);
  font-size:var(--text-h2);font-weight:700;line-height:1.15;letter-spacing:-.02em;
  color:var(--foreground);text-wrap:balance
}
.a7a-sub{margin:0 0 var(--space-8);color:var(--muted-foreground);line-height:1.6;text-wrap:pretty}
.a7a-body{margin:0 0 var(--space-6);color:var(--muted-foreground);line-height:1.6}
.a7a-strong{color:var(--foreground);font-weight:700}
.a7a-body strong,.a7a-note strong{color:var(--foreground);font-weight:700}
.a7a-ctx{margin:0 0 var(--space-6);color:var(--foreground);font-weight:700}
.a7a-note{margin:var(--space-4) 0 0;font-size:var(--text-caption);color:var(--muted-foreground);text-align:center}

/* chip de cabeçalho (setup): assinatura no gradiente; estados em texto+tom */
.a7a-chip{
  display:grid;place-items:center;width:3rem;height:3rem;margin:0 0 var(--space-5);
  border-radius:var(--radius-xl);background-color:var(--primary);background-image:var(--grad);
  color:var(--primary-foreground);font-size:var(--text-xl);font-weight:700;line-height:1;
  box-shadow:var(--shadow-lift)
}
.a7a-chip .a7a-ic{width:1.5rem;height:1.5rem}
.a7a-chip--ok{background:var(--a7a-ok-tint);border:1px solid var(--a7a-ok-line);color:var(--success);box-shadow:none}
.a7a-chip--error{background:var(--a7a-danger-tint);border:1px solid var(--a7a-danger-line);color:var(--destructive);box-shadow:none}

/* ---------- mensagens (texto + ícone; o tom só tinge) ---------- */
.a7a-alert{
  display:flex;align-items:flex-start;gap:var(--space-3);
  margin:0 0 var(--space-6);padding:var(--space-3) var(--space-4);
  border:1px solid;border-radius:var(--radius-lg);
  font-size:var(--text-small);line-height:1.5
}
.a7a-alert p{margin:0}
.a7a-alert .a7a-ic{margin-top:.0625rem}
.a7a-alert--error{background:var(--a7a-danger-tint);border-color:var(--a7a-danger-line);color:var(--destructive)}
.a7a-alert--ok{background:var(--a7a-ok-tint);border-color:var(--a7a-ok-line);color:var(--success)}

/* ---------- campos ---------- */
.a7a-field{margin:0 0 var(--space-5)}
.a7a-label{display:block;margin:0 0 var(--space-2);font-size:var(--text-small);font-weight:600;color:var(--foreground)}
.a7a-input{
  display:block;width:100%;min-height:var(--a7a-field-h);margin:0;
  padding:var(--space-3) var(--space-4);
  border:1px solid var(--a7a-field-line);border-radius:var(--radius-lg);
  background:var(--card);color:var(--foreground);
  font:inherit;font-size:var(--text-body);line-height:1.4;
  -webkit-appearance:none;appearance:none;
  transition:border-color var(--motion-fast) var(--ease-move),box-shadow var(--motion-fast) var(--ease-move)
}
.a7a-input::placeholder{color:var(--muted-foreground);opacity:1}
.a7a-input:hover{border-color:var(--muted-foreground)}
.a7a-input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px var(--a7a-focus)}
.a7a-input:disabled{background:var(--muted);border-color:var(--border);color:var(--muted-foreground);cursor:not-allowed}
.a7a-input--code{
  min-height:3.5rem;padding-left:calc(var(--space-4) + .5em);
  text-align:center;font-size:var(--text-2xl);font-weight:600;letter-spacing:.5em;
  font-variant-numeric:tabular-nums
}

.a7a-pw{position:relative}
.a7a-pw .a7a-input{padding-right:5.5rem}
.a7a-pw-toggle{
  position:absolute;top:50%;right:var(--space-1);transform:translateY(-50%);
  min-width:var(--a7a-hit);min-height:var(--a7a-hit);padding:0 var(--space-3);
  border:0;border-radius:var(--radius-md);background:transparent;
  color:var(--primary);font:inherit;font-size:var(--text-small);font-weight:600;cursor:pointer
}
.a7a-pw-toggle:hover{text-decoration:underline;text-underline-offset:.2em}

.a7a-help{display:flex;justify-content:flex-end;margin-top:var(--space-1)}
.a7a-link{
  display:inline-flex;align-items:center;min-height:var(--a7a-hit);
  color:var(--primary);font-weight:600;text-decoration:none;text-underline-offset:.2em
}
.a7a-help .a7a-link{font-size:var(--text-small)}
.a7a-link:hover{text-decoration:underline}

/* força da senha e conferência (setup) */
.a7a-meter{height:.3125rem;margin-top:var(--space-2);border-radius:999px;background:var(--muted);overflow:hidden}
.a7a-meter-fill{
  height:100%;width:100%;border-radius:inherit;background:var(--destructive);
  transform:scaleX(0);transform-origin:left center;
  transition:transform var(--motion-base) var(--ease-move)
}
.a7a-meter-fill[data-level="1"]{transform:scaleX(.25);background:var(--destructive)}
.a7a-meter-fill[data-level="2"]{transform:scaleX(.5);background:var(--warning)}
.a7a-meter-fill[data-level="3"]{transform:scaleX(.75);background:var(--warning)}
.a7a-meter-fill[data-level="4"]{transform:scaleX(1);background:var(--success)}
.a7a-hint{display:block;min-height:1.125rem;margin-top:var(--space-2);font-size:var(--text-caption);line-height:1.5;color:var(--muted-foreground)}
.a7a-hint[data-tone="weak"]{color:var(--destructive)}
.a7a-hint[data-tone="mid"]{color:var(--warning)}
.a7a-hint[data-tone="ok"]{color:var(--success)}

/* termos (setup) */
.a7a-terms-title{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-caption);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--foreground)}
.a7a-terms{
  max-height:12.5rem;overflow-y:auto;overscroll-behavior:contain;
  margin:0 0 var(--space-4);padding:var(--space-4) var(--space-5);
  border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--muted);
  font-size:var(--text-small);line-height:1.6;color:var(--foreground)
}
.a7a-terms h3{margin:var(--space-4) 0 var(--space-1);font-size:var(--text-small);font-weight:700;color:var(--foreground)}
.a7a-terms h3:first-child{margin-top:0}
.a7a-terms p{margin:0}
.a7a-terms:focus-visible{outline:2px solid var(--ring);outline-offset:2px}

/* caixas de seleção: alvo ≥44px pela linha inteira */
.a7a-check{
  display:flex;align-items:flex-start;gap:var(--space-3);
  min-height:var(--a7a-hit);margin:0 0 var(--space-5);padding:var(--space-2) 0;
  font-size:var(--text-small);line-height:1.5;color:var(--foreground);cursor:pointer
}
.a7a-check input{flex:0 0 auto;width:1.25rem;height:1.25rem;margin:.0625rem 0 0;accent-color:var(--primary);cursor:pointer}
.a7a-check--box{
  padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);
  background-color:var(--card);background-image:var(--surface-brand-tint);
  transition:border-color var(--motion-fast) var(--ease-move)
}
.a7a-check--box:hover{border-color:var(--a7a-field-line)}
.a7a-check input:focus-visible{outline:2px solid var(--ring);outline-offset:2px}

/* ---------- botões ---------- */
.a7a-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  width:100%;min-height:var(--a7a-field-h);margin:0;padding:var(--space-3) var(--space-6);
  border:0;border-radius:var(--radius-lg);
  background-color:var(--primary);background-image:var(--grad);
  color:var(--primary-foreground);font:inherit;font-size:var(--text-body);font-weight:600;line-height:1.2;
  text-align:center;text-decoration:none;cursor:pointer;
  box-shadow:var(--shadow-rest);
  transition:transform var(--motion-fast) var(--ease-move),box-shadow var(--motion-fast) var(--ease-move)
}
.a7a-btn .a7a-ic{width:1.125rem;height:1.125rem}
.a7a-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow-accent)}
.a7a-btn:active{transform:translateY(0);box-shadow:var(--shadow-rest)}
.a7a-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.a7a-btn--ghost{
  background:var(--card);background-image:none;color:var(--foreground);
  border:1px solid var(--a7a-field-line);box-shadow:none
}
.a7a-btn--ghost:hover{background:var(--muted);border-color:var(--muted-foreground);box-shadow:none}
.a7a-form-alt{margin-top:var(--space-3)}

.a7a-foot{margin:var(--space-6) 0 0;text-align:center;font-size:var(--text-small);color:var(--muted-foreground)}

.a7a-secure{margin:var(--space-5) 0 0;font-size:var(--text-caption);line-height:1.5;color:var(--muted-foreground);text-align:center}
.a7a-secure .a7a-ic{display:inline-block;width:1rem;height:1rem;margin-right:var(--space-1);vertical-align:-.1875rem;color:var(--success)}

/* crédito (decisão do dono, 11/10/2026: "Desenvolvimento" + Inspire4U), discreto */
.a7a-credit{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--border)}
.a7a-credit-label{font-size:var(--text-caption);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground)}
.a7a-credit img{display:block;height:1.125rem;width:auto;opacity:.85}

/* ---------- foco visível ---------- */
.a7a a:focus-visible,
.a7a button:focus-visible{outline:2px solid var(--ring);outline-offset:3px}
.a7a-night a:focus-visible{outline-color:var(--a7a-on)}

/* ---------- tablet ---------- */
@media (max-width:1199.98px){
  .a7a-night{padding:var(--space-10)}
  .a7a-panel{padding:var(--space-10) var(--space-8)}
}

/* ---------- celular: a noite vira faixa curta; o formulário sobe ---------- */
@media (max-width:899.98px){
  .a7a-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .a7a-night{
    flex-direction:row;align-items:center;gap:var(--space-4);
    padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) var(--space-4);
    background-image:radial-gradient(90% 160% at 0% 0%, var(--a7a-halo-1), transparent 70%)
  }
  .a7a-night::before,.a7a-night::after,
  .a7a-night-mid,.a7a-night-foot{display:none}
  .a7a-night-top{width:100%}
  .a7a-brand{width:13.25rem}
  .a7a-org img{max-height:2rem;max-width:6rem}
  .a7a-panel{
    align-items:flex-start;
    padding:var(--space-8) var(--space-4) calc(var(--space-10) + env(safe-area-inset-bottom))
  }
  .a7a-card{max-width:30rem}
  .a7a-sub{margin-bottom:var(--space-6)}
}

@media (max-width:359.98px){
  .a7a-btn .a7a-ic{display:none}
}

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion:reduce){
  .a7a-card{animation:none}
  .a7a-btn,.a7a-btn:hover,.a7a-back .a7a-ic,.a7a-meter-fill,.a7a-input{transition:none}
  .a7a-btn:hover,.a7a-back:hover .a7a-ic{transform:none}
}

/* ---------- alto contraste do sistema ---------- */
@media (forced-colors:active){
  .a7a-btn{border:1px solid ButtonText}
  .a7a-kicker::before{background:CanvasText}
}
