.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 .5rem 1.875rem -.375rem rgba(28,25,18,.35);
  min-height:100vh; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center; padding:2rem 1.25rem;
  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 40rem 32.5rem 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:-5.625rem;bottom:-5.625rem;width:32.5rem;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:27.5rem;background:var(--surface);border-radius:var(--radius-l);
  box-shadow:0 2.5rem 5rem -1.25rem rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06);padding:2.75rem 2.5rem 2.5rem;
  border-top:2px solid var(--gold-bright);
}
.auth-logo{display:flex;justify-content:center;margin-bottom:1.875rem;}
.auth-logo img{height:2.125rem;width:auto;}
.auth-alert{display:flex;align-items:flex-start;gap:.6875rem;background:var(--gold-soft);border:1px solid var(--border-strong);border-left:.25rem solid var(--gold-bright);border-radius:var(--radius-m);padding:.8125rem .9375rem;margin-bottom:1.625rem;}
.auth-alert .fa{font-size:1.0625rem;color:var(--gold-ink);flex-shrink:0;margin-top:1px;}
.auth-alert p{font-size:.8125rem;color:var(--gold-ink);line-height:1.45;margin:0;}
.auth-lead{text-align:center;margin-bottom:1.625rem;}
.auth-lead p{font-size:.875rem;color:var(--ink-soft);line-height:1.55;margin:0;}
.auth-lead .sub{font-size:.75rem;color:var(--ink-faint);margin-top:.625rem;line-height:1.5;}
.f-field{display:flex;flex-direction:column;gap:.4375rem;margin-bottom:1.125rem;}
.f-field label{font-size:.71875rem;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:.75rem .9375rem;font-size:.875rem;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 .1875rem var(--gold-soft);}
.f-field input::placeholder{color:var(--ink-faint);letter-spacing:.2em;}
.f-field .hint{font-size:.75rem;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:.75rem 2.375rem .75rem .9375rem;font-size:.875rem;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 .1875rem var(--gold-soft);}
.f-select,.email-dominio{position:relative;display:block;}
.f-select .fa,.email-dominio .fa{position:absolute;right:.875rem;top:50%;transform:translateY(-50%);font-size:.6875rem;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:.9375rem;
  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:2.875rem;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 .1875rem 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:.75rem;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;}
.f-outro{display:flex;flex-direction:column;gap:.4375rem;}
.f-outro-oculto{display:none;}
.auth-sucesso{text-align:center;padding:.375rem 0 .25rem;}
.auth-sucesso .fa{font-size:clamp(2rem, 1.80435rem + .86957vw, 2.5rem);color:var(--ok);margin-bottom:.875rem;}
.auth-sucesso h2{font-family:var(--serif);font-size:clamp(1.125rem, 1.05163rem + .32609vw, 1.3125rem);color:var(--ink);margin:0 0 .625rem;}
.auth-sucesso p{font-size:.875rem;color:var(--ink-soft);line-height:1.55;margin:0;}
.f-field .code-input{text-align:center;font-family:var(--serif);font-size:1rem;letter-spacing:.15em;font-weight:600;}
/* o placeholder ("Digite o codigo TOTP ou...") e uma frase: tamanho e espacamento dos outros campos */
.f-field .code-input::placeholder{font-family:var(--sans);font-size:.8125rem;letter-spacing:.02em;font-weight:400;}
.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;font-size:.84375rem;font-weight:700;letter-spacing:.02em;padding:.8125rem 1.25rem;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 .375rem 1.125rem -.375rem 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:.625rem 1.125rem;font-size:.78125rem;}
.auth-link{display:block;text-align:center;font-size:.78125rem;color:var(--ink-soft);margin-top:1.25rem;}
.auth-link:hover{color:var(--gold-ink);}
.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1.625rem 0 1.25rem;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-divider span{font-size:.6875rem;color:var(--ink-faint);white-space:nowrap;}
.auth-actions{display:flex;flex-direction:column;gap:.625rem;}
.auth-foot-link{display:block;text-align:center;font-size:.75rem;color:var(--ink-faint);margin-top:1.375rem;}
.auth-foot-link:hover{color:var(--gold-ink);}
.auth-card .ui-messages{margin-bottom:1.125rem;}
/* 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:.25rem 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:.25rem 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:.25rem 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:.75rem .875rem .75rem 1rem;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:.25rem;}
.auth-backdrop input{font-family:inherit;}
.auth-backdrop button{cursor:pointer;font-family:inherit;}
@media (max-width:30em){
  .auth-card{padding:1.875rem 1.5rem 1.75rem;}
  .auth-backdrop{padding:1.5rem .875rem;}
}