/* Elarion — telas de acesso (entrar, criar conta, recuperar senha) · mesma identidade da página inicial */
:root {
  --ink: #050505;
  --ink-2: #0b0b0c;
  --field: #0d0d0e;
  --line: rgba(255, 255, 255, .085);
  --line-2: rgba(255, 255, 255, .15);
  --text: #ededea;
  --muted: #8d8c88;
  --gold: #e0b83c;
  --gold-hi: #f4dc8f;
  --bronze: #9e7417;
  --err: #f3a3ad;
  --ok: #86e0a4;
  --f-display: "El Display", "Helvetica Neue", Arial, sans-serif;
  --f-serif: "El Serif", "Times New Roman", serif;
  --f-body: "El Sans", "Helvetica Neue", Arial, sans-serif;
  --f-mono: "El Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --ease: cubic-bezier(.16, 1, .3, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.au {
  margin: 0; min-height: 100vh; min-height: 100svh; background: var(--ink); color: var(--text);
  font-family: var(--f-body); font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
.au a { color: inherit; text-decoration: none; }
.au a:hover { text-decoration: none; }
.au img { max-width: 100%; }
.au ::selection { background: var(--gold); color: #111; }
.au .ei { width: 1em; height: 1em; display: inline-block; flex: none; vertical-align: middle; }
.au .ei-dot { fill: var(--gold); }
.au-grain {
  position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: au-grain 1.2s steps(3) infinite;
}
@keyframes au-grain { 0% { transform: translate(0, 0); } 33% { transform: translate(-3%, 2%); } 66% { transform: translate(2%, -3%); } 100% { transform: translate(0, 0); } }

/* estrutura */
.au-shell { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); min-height: 100vh; min-height: 100svh; }

/* lado da arte */
.au-art {
  position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between;
  padding: 36px clamp(28px, 4vw, 60px) 34px; border-right: 1px solid var(--line); min-width: 0;
  background:
    radial-gradient(60% 50% at 50% 42%, rgba(224,184,60,.14), transparent 70%),
    linear-gradient(to right, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / calc(100% / 8) 100%,
    var(--ink);
}
.au-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.au-art-top, .au-art-copy, .au-art-foot { position: relative; z-index: 2; }
.au-art-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.au-brand img { height: 38px; width: auto; display: block; }
.au-back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: #cfcecb !important; padding: 9px 16px 9px 12px; border: 1px solid var(--line-2); border-radius: 999px; background: rgba(5,5,5,.5); backdrop-filter: blur(8px); transition: border-color .3s, color .3s; }
.au-back .ei { font-size: 17px; color: var(--gold); transition: transform .4s var(--ease); }
.au-back:hover { border-color: rgba(224,184,60,.55); color: #fff !important; }
.au-back:hover .ei { transform: translateX(-3px); }
.au-art-copy { margin-top: auto; padding-top: 40px; max-width: 620px; }
.au-meta { display: flex; flex-wrap: wrap; gap: 8px 24px; font-family: var(--f-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 22px; }
.au-live { display: inline-flex; align-items: center; gap: 8px; color: #cfe9d6; }
.au-live i { width: 7px; height: 7px; border-radius: 50%; background: #62d98b; animation: au-pulse 2s infinite; }
@keyframes au-pulse { 0% { box-shadow: 0 0 0 0 rgba(98,217,139,.6); } 70% { box-shadow: 0 0 0 9px rgba(98,217,139,0); } 100% { box-shadow: 0 0 0 0 rgba(98,217,139,0); } }
.au-display { margin: 0; font-family: var(--f-display); font-weight: 700; font-stretch: 80%; font-size: clamp(46px, 6vw, 104px); line-height: .88; letter-spacing: -.028em; color: #fff; }
.au-display span, .au-display em { display: block; }
.au-display em {
  font-family: var(--f-serif); font-style: italic; font-weight: 400; font-stretch: normal; letter-spacing: -.01em; font-size: 1.06em; line-height: .9; padding-right: .06em;
  background: linear-gradient(105deg, #fff4cf 0%, var(--gold-hi) 22%, var(--gold) 48%, #b8891f 74%, var(--gold-hi) 100%);
  background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: au-sheen 7s linear infinite;
}
@keyframes au-sheen { to { background-position: -220% 0; } }
.au-art-copy p { margin: 22px 0 0; color: #b3b2ad; font-size: 17px; max-width: 42ch; }
.au-art-foot { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 34px; padding-top: 20px; border-top: 1px solid var(--line); font-family: var(--f-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #6f6e6a; }
.au-art-foot span::before { content: "◆"; color: var(--gold); margin-right: 8px; font-size: 8px; vertical-align: 2px; }

/* lado do formulário */
.au-main { display: flex; flex-direction: column; min-width: 0; padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 72px) 24px; }
.au-box { width: 100%; max-width: 440px; margin: auto; padding: 24px 0 40px; min-width: 0; }
.au-v-sign_up .au-box { max-width: 560px; }
.au-card { width: 100%; min-width: 0; }
.au-step { display: flex; align-items: center; gap: 12px; font-family: var(--f-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--gold); margin-bottom: 20px; }
.au-step::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(224,184,60,.45), transparent); }
.au-h1 { margin: 0; font-family: var(--f-display); font-weight: 700; font-stretch: 80%; font-size: clamp(46px, 5.2vw, 76px); line-height: .9; letter-spacing: -.028em; color: #fff; }
.au-sub { margin: 14px 0 30px; color: var(--muted); font-size: 16.5px; }

/* alertas */
.au-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 14px; font-size: 14.5px; margin-bottom: 18px; border: 1px solid; overflow-wrap: anywhere; }
.au-alert > .ei { font-size: 20px; margin-top: 1px; }
.au-alert > div { min-width: 0; }
.au-alert p { margin: 0; }
.au-alert.is-err { background: rgba(243,163,173,.07); border-color: rgba(243,163,173,.3); color: #f6c9cf; }
.au-alert.is-err .ei { color: var(--err); }
.au-alert.is-ok { background: rgba(134,224,164,.07); border-color: rgba(134,224,164,.3); color: #c9f0d6; }
.au-alert.is-ok .ei { color: var(--ok); }

/* campos */
.au-form { display: grid; gap: 18px; min-width: 0; }
.au-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; min-width: 0; }
.au-field { display: block; margin: 0; min-width: 0; font-weight: 400; }
.au-lbl { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 9px; font-family: var(--f-mono); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: #a3a29d; }
.au-lbl label { margin: 0; font: inherit; color: inherit; }
.au-lbl a { font-family: var(--f-body); text-transform: none; letter-spacing: 0; font-size: 13.5px; color: var(--gold-hi) !important; white-space: nowrap; }
.au-lbl a:hover { text-decoration: underline !important; }
.au-ctl {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; height: 58px; padding: 0 8px 0 16px;
  background: var(--field); border: 1px solid var(--line-2); border-radius: 14px; transition: border-color .25s, box-shadow .25s, background .25s;
}
.au-ctl:hover { border-color: rgba(255,255,255,.24); }
.au-ctl:focus-within { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(224,184,60,.14); background: #101011; }
.au-ctl > .ei { font-size: 20px; color: #6f6e6a; transition: color .25s; }
.au-ctl:focus-within > .ei { color: var(--gold-hi); }
.au-ctl input {
  flex: 1 1 auto; width: 100%; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; padding: 0;
  color: #fff; font-family: var(--f-body); font-size: 16px; /* 16px evita o zoom automático do iPhone */
  -webkit-appearance: none; appearance: none; border-radius: 0; box-shadow: none;
}
.au-ctl input::placeholder { color: #57564f; opacity: 1; }
.au-ctl input:-webkit-autofill, .au-ctl input:-webkit-autofill:hover, .au-ctl input:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 100px var(--field) inset; caret-color: #fff; transition: background-color 9999s;
}
.au-peek { flex: none; width: 42px; height: 42px; border: 0; border-radius: 10px; background: transparent; color: #8d8c88; font-size: 20px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.au-peek:hover { color: #fff; background: rgba(255,255,255,.05); }
.au-peek:focus { outline: 0; }
.au-peek:focus-visible { box-shadow: 0 0 0 2px var(--gold); }
.au-field-captcha .au-ctl { padding-right: 16px; }
.au-eq { flex: none; font-family: var(--f-mono); font-size: 15px; color: var(--gold-hi); padding-right: 12px; border-right: 1px solid var(--line-2); }

/* aceite */
.au-check { position: relative; display: flex; gap: 12px; align-items: flex-start; margin: 2px 0 0; cursor: pointer; font-size: 14px; color: #a9a8a3; font-weight: 400; line-height: 1.5; }
.au-check input { position: absolute; opacity: 0; width: 22px; height: 22px; margin: 0; left: 0; top: 0; cursor: pointer; }
.au-check i { flex: none; width: 22px; height: 22px; border-radius: 7px; border: 1px solid var(--line-2); background: var(--field); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; color: transparent; transition: all .2s; }
.au-check input:checked + i { background: var(--gold); border-color: var(--gold); color: #0d0b05; }
.au-check input:focus-visible + i { box-shadow: 0 0 0 3px rgba(224,184,60,.35); }
.au-check a { color: var(--gold-hi) !important; }

/* botões */
.au-btn {
  --mx: 0px; --my: 0px;
  display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; height: 60px; margin-top: 6px; padding: 0 8px 0 26px;
  border: 0; border-radius: 999px; cursor: pointer; font-family: var(--f-body); font-weight: 700; font-size: 16px; color: #0d0b05;
  background: linear-gradient(180deg, #f7e19a, var(--gold)); box-shadow: 0 12px 32px -12px rgba(224,184,60,.7), inset 0 1px 0 rgba(255,255,255,.55);
  transform: translate(var(--mx), var(--my)); transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.au-btn i { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #0d0b05; color: var(--gold-hi); font-size: 19px; transition: transform .45s var(--ease); }
.au-btn:hover { box-shadow: 0 18px 44px -12px rgba(224,184,60,.95), inset 0 1px 0 rgba(255,255,255,.6); }
.au-btn:hover i { transform: rotate(-45deg); }
.au-btn:focus { outline: 0; }
.au-btn:focus-visible { box-shadow: 0 0 0 3px var(--ink), 0 0 0 5px var(--gold); }
.au-btn[disabled], .au-btn.disabled { opacity: .6; cursor: progress; }

.au-or { display: flex; align-items: center; gap: 14px; margin: 26px 0 16px; font-family: var(--f-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #6f6e6a; }
.au-or::before, .au-or::after { content: ""; flex: 1; height: 1px; background: var(--line-2); }
.au-social { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.au-soc { display: flex; align-items: center; justify-content: center; gap: 10px; height: 52px; min-width: 0; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(255,255,255,.02); color: #f2f1ec !important; font-weight: 600; font-size: 15px; transition: border-color .25s, background .25s; }
.au-soc .ei { font-size: 20px; }
.au-soc:hover { border-color: rgba(224,184,60,.55); background: rgba(224,184,60,.06); }
.au-alt { margin: 28px 0 0; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 15px; }
.au-alt a { display: inline-flex; align-items: center; gap: 4px; color: #fff !important; font-weight: 600; border-bottom: 1px solid rgba(224,184,60,.5); }
.au-alt a .ei { color: var(--gold); font-size: 16px; }
.au-alt a:hover { border-color: var(--gold); }

.au-foot { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; font-family: var(--f-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #605f5b; }
.au-foot a { color: #8d8c88 !important; }
.au-foot a:hover { color: var(--gold-hi) !important; }

/* páginas antigas (recuperar senha, ativar conta): mesma aparência sem mexer na lógica delas */
.au-legacy .au-box .container { max-width: none; width: 100%; padding: 0; margin: 0 !important; }
.au-legacy .au-box .container > .row { margin: 0; }
.au-legacy .au-box .container > .row > [class*="col-"] { flex: 0 0 100%; max-width: 100%; padding: 0; margin: 0; }
.au-legacy .login-brand { display: none; }
.au-legacy .card { background: transparent; border: 0; box-shadow: none; margin: 0; color: var(--text); }
.au-legacy .card-header { padding: 0; border: 0; background: none; margin-bottom: 12px; }
.au-legacy .card-header h4 { margin: 0; font-family: var(--f-display); font-weight: 700; font-stretch: 80%; font-size: clamp(40px, 4.6vw, 64px); line-height: .92; letter-spacing: -.028em; color: #fff; }
.au-legacy .card-header h4 i { display: none; }
.au-legacy .card-body { padding: 0; }
.au-legacy .text-muted { color: var(--muted) !important; font-size: 16px; margin-bottom: 24px; }
.au-legacy .form-group { margin-bottom: 18px; }
/* blocos básicos caso o bootstrap demore a carregar */
.au-legacy .btn-block { width: 100%; }
.au-legacy .form-control { display: block; width: 100%; }
.au-legacy .invalid-feedback { display: none; font-size: 13.5px; margin-top: 6px; }
.au-legacy .was-validated .form-control:invalid ~ .invalid-feedback, .au-legacy .is-invalid ~ .invalid-feedback { display: block; }
.au-legacy label { display: block; font-family: var(--f-mono); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; color: #a3a29d; margin-bottom: 9px; }
.au-legacy .form-control { height: 58px; padding: 0 16px; background: var(--field); border: 1px solid var(--line-2); border-radius: 14px; color: #fff; font-size: 16px; font-family: var(--f-body); box-shadow: none; }
.au-legacy .form-control:focus { background: #101011; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(224,184,60,.14); color: #fff; }
.au-legacy .form-control::placeholder { color: #57564f; }
.au-legacy .btn-primary {
  display: flex; align-items: center; justify-content: center; gap: 10px; height: 60px; border: 0 !important; border-radius: 999px; font-weight: 700; font-size: 16px; color: #0d0b05 !important;
  background: linear-gradient(180deg, #f7e19a, var(--gold)) !important; box-shadow: 0 12px 32px -12px rgba(224,184,60,.7), inset 0 1px 0 rgba(255,255,255,.55) !important;
}
.au-legacy .btn-primary:hover { box-shadow: 0 18px 44px -12px rgba(224,184,60,.95) !important; }
.au-legacy .invalid-feedback { color: var(--err); }
.au-legacy .alert { border-radius: 14px; border: 1px solid var(--line-2); background: rgba(255,255,255,.03); color: var(--text); }
.au-legacy .alert-success { border-color: rgba(134,224,164,.3); background: rgba(134,224,164,.07); color: #c9f0d6; }
.au-legacy .alert-danger { border-color: rgba(243,163,173,.3); background: rgba(243,163,173,.07); color: #f6c9cf; }
.au-legacy .au-main a:not(.au-foot a) { color: var(--gold-hi); }

/* ===== responsivo ===== */
@media (max-width: 1100px) {
  .au-shell { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); }
  .au-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .au-shell { display: block; }
  .au-art { height: 250px; min-height: 0; padding: 18px 20px; border-right: 0; border-bottom: 1px solid var(--line); }
  .au-art-copy, .au-art-foot { display: none; }
  .au-brand img { height: 30px; }
  .au-back { padding: 8px 13px 8px 10px; font-size: 13px; }
  .au-main { padding: 0 20px 22px; }
  .au-box { padding: 30px 0 34px; max-width: 520px; }
  .au-v-sign_up .au-box { max-width: 520px; }
}
@media (max-width: 480px) {
  .au-art { height: 210px; }
  .au-back span { display: none; }
  .au-back { width: 42px; height: 42px; padding: 0; justify-content: center; }
  .au-main { padding: 0 16px 20px; }
  .au-h1 { font-size: 50px; }
  .au-sub { font-size: 15.5px; margin-bottom: 24px; }
  .au-ctl { height: 56px; padding-left: 14px; gap: 10px; }
  .au-btn { height: 58px; padding-left: 22px; }
  .au-social { grid-template-columns: minmax(0, 1fr); }
  .au-lbl a { font-size: 13px; }
}
@media (max-width: 340px) {
  .au-h1 { font-size: 44px; }
  .au-ctl > .ei { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition-duration: .001s !important; }
}
@media (max-width: 480px) {
  .au-legacy .card-body .row { margin: 0; display: block; }
  .au-legacy .card-body .row > [class*="col-"] { max-width: 100%; padding: 0; }
}
.au a.au-btn { color: #0d0b05; margin-top: 8px; }
.au-hl { color: #fff; font-weight: 600; overflow-wrap: anywhere; }
.au-note { display: flex; gap: 12px; align-items: flex-start; padding: 16px 0; margin: 0 0 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: #a9a8a3; font-size: 14.5px; }
.au-note > .ei { font-size: 20px; color: var(--gold); margin-top: 1px; }
