/* =====================================================================
   Oxton Lab — telas de acesso (login e cadastro).
   Duas colunas: apresentação da plataforma + formulário. Plano, sem
   sombras nem animações; tokens do sono-skin (tema claro/escuro).
   ===================================================================== */
.auth-body{background:var(--bg)}
.ax{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1fr) minmax(420px,560px)}

/* ---- Coluna de apresentação ---- */
.ax-hero{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:2.4rem 3rem;
  background:var(--brand-soft);border-right:1px solid var(--line);color:var(--txt)}
.ax .ico{flex:0 0 auto}
.ax-brand{display:inline-flex;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:800;letter-spacing:.01em;color:var(--txt);text-decoration:none}
.ax-brand b{color:var(--blue)}
.ax-hero__main{max-width:520px}
.ax-eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue2);margin-bottom:.9rem}
.ax-hero h1{font-size:2.3rem;line-height:1.12;letter-spacing:-.02em;margin:0 0 .9rem;color:var(--txt)}
.ax-hero p{font-size:1rem;line-height:1.6;color:var(--txt2);margin:0 0 1.8rem;max-width:46ch}
.ax-feats{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.ax-feats li{display:grid;grid-template-columns:40px 1fr;gap:.85rem;align-items:start;padding:.85rem .9rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.ax-feats__ic{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--blue)}
.ax-feats__ic .ico{width:20px;height:20px}
.ax-feats strong{display:block;font-size:.92rem;color:var(--txt)}
.ax-feats span{font-size:.82rem;line-height:1.45;color:var(--txt2)}
.ax-trust{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;font-size:.78rem;font-weight:600;color:var(--txt2)}
.ax-trust span{display:inline-flex;align-items:center;gap:.35rem}
.ax-trust .ico{width:15px;height:15px;color:var(--green)}

/* ---- Coluna do formulário ---- */
.ax-main{display:flex;flex-direction:column;padding:1.6rem 2.6rem 1.4rem;background:var(--bg)}
.ax-top{display:flex;align-items:center;justify-content:flex-end;gap:1rem;min-height:40px}
.ax-brand--mobile{display:none;font-size:1.1rem}
.ax-back{display:inline-flex;align-items:center;gap:.35rem;font-size:.84rem;font-weight:600;color:var(--txt2);text-decoration:none;padding:.4rem .7rem;border-radius:var(--r-sm)}
.ax-back{white-space:nowrap}
.ax-back .ico{width:16px;height:16px;transform:scaleX(-1)}
.ax-back:hover{color:var(--txt);background:var(--card2)}
.ax-card{width:100%;max-width:420px;margin:auto;padding:1.2rem 0}
.ax-card .adm-flash{margin-bottom:1rem}
.ax-head{margin-bottom:1.4rem}
.ax-head h2{font-size:1.75rem;letter-spacing:-.01em;margin:0 0 .3rem;color:var(--txt)}
.ax-head p{margin:0;color:var(--txt2);font-size:.95rem}

.ax-form{display:flex;flex-direction:column;gap:1rem}
.ax-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.ax-field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.ax-label{font-size:.84rem;font-weight:600;color:var(--txt)}
.ax-label em{font-style:normal;font-weight:500;color:var(--txt3);margin-left:.25rem;font-size:.78rem}
.ax-label--row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}
.ax-label--row label{font:inherit;color:inherit}
.ax .ax-field input{height:46px;width:100%;padding:0 .9rem;font:inherit;font-size:.95rem;color:var(--txt);background:var(--card);border:1px solid var(--line2);border-radius:var(--r-sm);box-shadow:none}
.ax .ax-field input::placeholder{color:var(--txt3)}
.ax .ax-field input:hover{border-color:var(--txt3)}
.ax .ax-field input:focus{border-color:var(--blue);outline:3px solid color-mix(in srgb,var(--blue) 20%,transparent);outline-offset:0}
.ax-hint{font-size:.78rem;color:var(--txt3)}
.ax-link-sm{font-size:.8rem;font-weight:600;color:var(--blue);text-decoration:none}
.ax-link-sm:hover{text-decoration:underline}

.ax-pw{position:relative}
.ax .ax-pw input{padding-right:2.9rem}
.ax-pw__btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:var(--txt3);border-radius:6px;cursor:pointer}
.ax-pw__btn:hover{color:var(--txt);background:var(--card2)}
.ax-pw__btn:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.ax-pw__btn .ico{width:18px;height:18px}
.ax-pw__btn [hidden]{display:none}

.ax-pwm{display:flex;align-items:center;gap:.6rem}
.ax-pwm[hidden]{display:none}
.ax-pwm__bar{flex:1;height:5px;border-radius:5px;background:var(--line);overflow:hidden}
.ax-pwm__bar span{display:block;height:100%;width:0;border-radius:5px;background:var(--red)}
.ax-pwm[data-lv="2"] .ax-pwm__bar span{background:var(--orange)}
.ax-pwm[data-lv="3"] .ax-pwm__bar span{background:var(--blue)}
.ax-pwm[data-lv="4"] .ax-pwm__bar span{background:var(--green)}
.ax-pwm__lbl{font-size:.76rem;font-weight:600;color:var(--txt2);min-width:74px;text-align:right}

.ax-btn{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;height:46px;margin-top:.2rem;font:inherit;font-size:.95rem;font-weight:700;color:#fff;background:var(--blue);border:1px solid var(--blue);border-radius:var(--r-sm);cursor:pointer;text-decoration:none}
.ax-btn:hover{background:var(--blue2);border-color:var(--blue2)}
.ax-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ax-btn--ghost{background:var(--card);border-color:var(--line2);color:var(--txt);font-weight:600}
.ax-btn--ghost:hover{background:var(--card2);border-color:var(--txt3)}
.ax-or{display:flex;align-items:center;gap:.8rem;margin:1.2rem 0;color:var(--txt3);font-size:.78rem}
.ax-or::before,.ax-or::after{content:"";flex:1;height:1px;background:var(--line)}
.ax-note{margin:.2rem 0 0;font-size:.8rem;line-height:1.5;color:var(--txt2)}
.ax-note a,.ax-switch a{color:var(--blue);font-weight:600;text-decoration:none}
.ax-note a:hover,.ax-switch a:hover{text-decoration:underline}
.ax-switch{margin:1.4rem 0 0;text-align:center;font-size:.9rem;color:var(--txt2)}

/* Acesso alternativo (Portal do Voluntário) */
.ax-alt{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:.8rem;margin-top:1.4rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:var(--r);background:var(--card);text-decoration:none;color:var(--txt)}
.ax-alt:hover{border-color:var(--blue)}
.ax-alt__ic{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--card2);color:var(--txt2)}
.ax-alt__ic .ico{width:20px;height:20px}
.ax-alt__txt{display:flex;flex-direction:column;min-width:0}
.ax-alt__txt strong{font-size:.88rem}
.ax-alt__txt span{font-size:.8rem;color:var(--txt2)}
.ax-alt__go{width:18px;height:18px;color:var(--txt3)}
.ax-alt:hover .ax-alt__go{color:var(--blue)}

/* Tipo de conta (cadastro) */
.ax-roles{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:0 0 1.4rem}
.ax-role{display:flex;flex-direction:column;gap:.3rem;padding:.9rem;border:1px solid var(--line2);border-radius:var(--r);background:var(--card);text-decoration:none;color:var(--txt2)}
.ax-role:hover{border-color:var(--txt3)}
.ax-role__ic{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--card2);color:var(--txt2);margin-bottom:.2rem}
.ax-role__ic .ico{width:17px;height:17px}
.ax-role__t{font-weight:700;font-size:.95rem;color:var(--txt)}
.ax-role__d{font-size:.78rem;line-height:1.4;color:var(--txt2)}
.ax-role.is-active{border-color:var(--blue);background:var(--brand-soft);outline:1px solid var(--blue);outline-offset:-2px}
.ax-role.is-active .ax-role__ic{background:var(--blue);color:#fff}
.ax-role.is-active .ax-role__t{color:var(--blue2)}
.ax-role:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.ax-legal{margin:1rem 0 0;text-align:center;font-size:.76rem;color:var(--txt3)}
.ax-legal a{color:var(--txt2);text-decoration:none}
.ax-legal a:hover{color:var(--blue)}

/* ---- Responsivo ---- */
@media (max-width:1100px){.ax{grid-template-columns:1fr minmax(400px,500px)}.ax-hero{padding:2rem}.ax-hero h1{font-size:1.9rem}}
@media (max-width:900px){
  .ax{grid-template-columns:1fr}
  .ax-hero{display:none}
  .ax-top{justify-content:space-between}
  .ax-brand--mobile{display:inline-flex}
  .ax-main{padding:1.2rem 1.2rem 1rem}
}
@media (max-width:480px){.ax-row{grid-template-columns:1fr}.ax-head h2{font-size:1.5rem}.ax-role{flex-direction:row;align-items:center;gap:.55rem;padding:.7rem}.ax-role__ic{margin:0}.ax-role__d{display:none}}
