.auth-backdrop{
  /* Paleta = tokens do sistema (variables.css), sem hex duplicado */
  --radius-s: var(--atz-radius-s); --radius-m: var(--atz-radius-m); --radius-l: var(--atz-radius-l);
  --serif: var(--atz-serif);
  --sans: var(--atz-sans);
  --bg-soft:var(--atz-bg-soft); --surface:var(--atz-surface);
  --ink:var(--atz-ink); --ink-soft:var(--atz-ink-soft); --ink-faint:var(--atz-ink-faint);
  --border:var(--atz-border); --border-strong:var(--atz-border-strong);
  --gold:var(--atz-gold); --gold-bright:var(--atz-gold-bright); --gold-soft:var(--atz-gold-soft); --gold-ink:var(--atz-gold-ink);
  --danger:var(--atz-danger); --ok:var(--atz-ok);
  --shadow-hover:0 8px 30px -6px rgba(28,25,18,.35);
  min-height:100vh; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center; padding:32px 20px;
  background:linear-gradient(135deg,var(--atz-ink) 0%,var(--atz-ink) 45%,var(--atz-gold-ink) 100%);
  font-family:var(--sans); -webkit-font-smoothing:antialiased; color:var(--ink);
}
.auth-backdrop .glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 640px 520px at 50% 42%, rgba(240,205,142,.10), transparent 68%);
}
.auth-backdrop .grain{
  position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* "auth-mark" (e não "mark"): .mark é classe do Bootstrap 3 e aplicaria fundo #fcf8e3 + padding na imagem.
   width fixo + height:auto preserva a proporção do símbolo (max-width no lugar de height evitava distorção). */
.auth-backdrop .auth-mark{
  position:absolute;right:-90px;bottom:-90px;width:520px;height:auto;max-width:90vw;
  padding:0;background:none;pointer-events:none;opacity:.07;
}
.auth-backdrop .hair{
  position:absolute;top:0;left:0;right:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(240,205,142,.35),transparent);
}
.auth-card{
  position:relative;z-index:1;width:100%;max-width:440px;background:var(--surface);border-radius:var(--radius-l);
  box-shadow:0 40px 80px -20px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06);padding:44px 40px 40px;
  border-top:2px solid var(--gold-bright);
}
.auth-logo{display:flex;justify-content:center;margin-bottom:30px;}
.auth-logo img{height:34px;width:auto;}
.auth-alert{display:flex;align-items:flex-start;gap:11px;background:var(--gold-soft);border:1px solid var(--border-strong);border-left:4px solid var(--gold-bright);border-radius:var(--radius-m);padding:13px 15px;margin-bottom:26px;}
.auth-alert .fa{font-size:17px;color:var(--gold-ink);flex-shrink:0;margin-top:1px;}
.auth-alert p{font-size:13px;color:var(--gold-ink);line-height:1.45;margin:0;}
.auth-lead{text-align:center;margin-bottom:26px;}
.auth-lead p{font-size:14px;color:var(--ink-soft);line-height:1.55;margin:0;}
.auth-lead .sub{font-size:12px;color:var(--ink-faint);margin-top:10px;line-height:1.5;}
.f-field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
.f-field label{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);}
.f-field input{width:100%;border:1px solid var(--border);background:var(--bg-soft);border-radius:var(--radius-m);padding:12px 15px;font-size:14px;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease;}
.f-field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);}
.f-field input::placeholder{color:var(--ink-faint);letter-spacing:.2em;}
.f-field .hint{font-size:12px;color:var(--ink-soft);line-height:1.5;}
/* Select no mesmo visual dos inputs (cadastro público) */
.f-field select{width:100%;appearance:none;-webkit-appearance:none;border:1px solid var(--border);background:var(--bg-soft);border-radius:var(--radius-m);padding:12px 38px 12px 15px;font-size:14px;color:var(--ink);font-family:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;}
.f-field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);}
.f-select,.email-dominio{position:relative;display:block;}
.f-select .fa,.email-dominio .fa{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--ink-faint);pointer-events:none;}
/* E-mail = início digitado + domínio (select com 50% da largura). "Outro" recolhe o select no botão "@"
   e o campo de texto cresce para ocupar o espaço; a largura anima nos dois sentidos. */
.email-combo{display:flex;align-items:stretch;}
.email-combo .email-local{flex:1 1 auto;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0;}
.email-combo .email-dominio{
  flex:0 0 50%;min-width:0;overflow:hidden;opacity:1;visibility:visible;
  transition:flex-basis .28s ease,opacity .2s ease,visibility 0s;
}
.email-combo .email-dominio select{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;text-overflow:ellipsis;}
.email-combo .email-arroba{
  flex:0 0 0;width:0;min-width:0;padding:0;overflow:hidden;opacity:0;visibility:hidden;
  display:flex;align-items:center;justify-content:center;
  border:0 solid var(--border);background:var(--bg-soft);border-radius:0 var(--radius-m) var(--radius-m) 0;
  color:var(--gold-ink);font-size:15px;
  transition:flex-basis .28s ease,opacity .2s ease,visibility 0s linear .28s,color .15s ease,background .15s ease;
}
.email-combo .email-arroba:hover{color:var(--gold);background:var(--gold-soft);}
.email-combo.modo-completo .email-dominio{
  flex-basis:0;opacity:0;visibility:hidden;
  transition:flex-basis .28s ease,opacity .2s ease,visibility 0s linear .28s;
}
.email-combo.modo-completo .email-arroba{
  flex-basis:46px;opacity:1;visibility:visible;border-width:1px 1px 1px 0;
  transition:flex-basis .28s ease,opacity .2s ease,visibility 0s,color .15s ease,background .15s ease;
}
@media (prefers-reduced-motion:reduce){
  .email-combo .email-dominio,.email-combo .email-arroba{transition:none;}
}
#solicitarCadastroForm .f-field input::placeholder{letter-spacing:normal;}
/* Campos obrigatórios e erro por campo */
.f-field label .req{color:var(--danger);margin-left:2px;}
.f-field .f-invalido,.f-field .f-invalido:focus{border-color:var(--danger);}
.f-field .f-invalido:focus{box-shadow:0 0 0 3px rgba(179,73,47,.15);}
.f-field .ui-message{margin:0;padding:0;background:none;border:none;}
.f-field .ui-message-error-detail,.f-field .ui-message-error-summary{font-size:12px;color:var(--danger);line-height:1.4;}
.f-field .ui-message-error-icon{display:none;}
/* Honeypot anti-robô: fora da tela, mas ainda no formulário */
.f-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
.auth-sucesso{text-align:center;padding:6px 0 4px;}
.auth-sucesso .fa{font-size:40px;color:var(--ok);margin-bottom:14px;}
.auth-sucesso h2{font-family:var(--serif);font-size:21px;color:var(--ink);margin:0 0 10px;}
.auth-sucesso p{font-size:14px;color:var(--ink-soft);line-height:1.55;margin:0;}
.f-field .code-input{text-align:center;font-family:var(--serif);font-size:22px;letter-spacing:.35em;font-weight:600;}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-size:13.5px;font-weight:700;letter-spacing:.02em;padding:13px 20px;border-radius:999px;border:1px solid transparent;transition:all .2s ease;}
.auth-backdrop .btn-primary{
  background:linear-gradient(135deg,var(--gold-bright),var(--gold)) !important;color:#1C1912 !important;border-color:transparent !important;
}
.auth-backdrop .btn-primary:hover{filter:brightness(1.08) !important;box-shadow:0 6px 18px -6px var(--gold) !important;}
.auth-backdrop .btn-ghost{
  background:transparent !important;border-color:var(--border-strong) !important;color:var(--ink-soft) !important;
}
.auth-backdrop .btn-ghost:hover{border-color:var(--gold) !important;color:var(--gold) !important;}
.btn-sm{padding:10px 18px;font-size:12.5px;}
.auth-link{display:block;text-align:center;font-size:12.5px;color:var(--ink-soft);margin-top:20px;}
.auth-link:hover{color:var(--gold-ink);}
.auth-divider{display:flex;align-items:center;gap:12px;margin:26px 0 20px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-divider span{font-size:11px;color:var(--ink-faint);white-space:nowrap;}
.auth-actions{display:flex;flex-direction:column;gap:10px;}
.auth-foot-link{display:block;text-align:center;font-size:12px;color:var(--ink-faint);margin-top:22px;}
.auth-foot-link:hover{color:var(--gold-ink);}
.auth-card .ui-messages{margin-bottom:18px;}
/* p:messages fora do <body class="atz">: replica a paleta dos avisos do sistema (styles.css, .atz .ui-messages-*) */
.auth-card .ui-messages .ui-messages-error,.auth-card .ui-messages .ui-messages-fatal{
  background:rgba(179,73,47,.08)!important;border:1px solid rgba(179,73,47,.35)!important;border-left:4px solid var(--danger)!important;color:var(--danger)!important;
}
.auth-card .ui-messages .ui-messages-warn,.auth-card .ui-messages .ui-messages-info{
  background:var(--gold-soft)!important;border:1px solid var(--border-strong)!important;border-left:4px solid var(--gold-bright)!important;color:var(--gold-ink)!important;
}
.auth-card .ui-messages .ui-messages-success{
  background:rgba(75,122,78,.10)!important;border:1px solid rgba(75,122,78,.35)!important;border-left:4px solid var(--ok)!important;color:var(--ok)!important;
}
.auth-card .ui-messages .ui-messages-error,.auth-card .ui-messages .ui-messages-fatal,
.auth-card .ui-messages .ui-messages-warn,.auth-card .ui-messages .ui-messages-info,
.auth-card .ui-messages .ui-messages-success{padding:12px 14px 12px 16px;border-radius:var(--radius-m);}
.auth-card .ui-messages .ui-messages-icon{display:none;}
.auth-card .ui-messages .ui-messages-summary{font-weight:600;}
.auth-backdrop a{color:inherit;text-decoration:none;}
.auth-backdrop :focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px;border-radius:4px;}
.auth-backdrop input{font-family:inherit;}
.auth-backdrop button{cursor:pointer;font-family:inherit;}
@media (max-width:480px){
  .auth-card{padding:30px 24px 28px;}
  .auth-backdrop{padding:24px 14px;}
}