/* AFService Auth Modern
   Shell público da plataforma. Não aplica white-label de empresa antes do login. */
:root {
  --auth-accent:#12cde2;
  --auth-accent-strong:#08aeca;
  --auth-accent-soft:rgba(18,205,226,.12);
  --auth-bg:#07090d;
  --auth-panel:#111419;
  --auth-panel-2:#171b21;
  --auth-line:#272d35;
  --auth-text:#f2f5f8;
  --auth-soft:#c4ccd5;
  --auth-muted:#808b98;
  --auth-danger:#ef5c6c;
  --auth-shadow:0 30px 90px rgba(0,0,0,.38);
}
html[data-theme="light"] {
  --auth-bg:#eef1f5;
  --auth-panel:#ffffff;
  --auth-panel-2:#f6f8fa;
  --auth-line:#dfe4ea;
  --auth-text:#151a21;
  --auth-soft:#3c4653;
  --auth-muted:#6f7b89;
  --auth-shadow:0 24px 70px rgba(30,43,56,.13);
}

body.af-platform-login {
  --login-accent:var(--auth-accent);
  --login-accent-dark:var(--auth-accent-strong);
  --login-accent-soft:var(--auth-accent-soft);
  min-height:100vh;
  padding:clamp(18px,3vw,44px)!important;
  color:var(--auth-text);
}

body.af-platform-login .af-login-card {
  position:relative;
  z-index:10;
  width:min(1080px,100%);
  min-height:610px;
  overflow:hidden;
  border:1px solid var(--auth-line);
  border-radius:18px;
  background:var(--auth-panel);
  box-shadow:var(--auth-shadow);
}
body.af-platform-login .af-login-card-single {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  width:min(1040px,100%);
  min-height:600px;
}
body.af-platform-login .af-auth-brand-panel {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:32px 34px 30px;
  overflow:hidden;
  border-right:1px solid var(--auth-line);
  background:
    radial-gradient(circle at 20% 10%,var(--auth-accent-soft),transparent 30%),
    linear-gradient(145deg,var(--auth-panel-2),var(--auth-panel));
}
body.af-platform-login .af-auth-brand-panel::after {
  content:"";
  position:absolute;
  right:-110px;
  bottom:-120px;
  width:300px;
  height:300px;
  border:1px solid color-mix(in srgb,var(--auth-accent) 22%,transparent);
  border-radius:50%;
  box-shadow:
    0 0 0 38px color-mix(in srgb,var(--auth-accent) 4%,transparent),
    0 0 0 82px color-mix(in srgb,var(--auth-accent) 2%,transparent);
  pointer-events:none;
}
.af-auth-brand-top {
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.af-auth-brand-logo {
  width:150px;
  max-height:54px;
  object-fit:contain;
  object-position:left center;
}
.af-auth-theme-toggle {
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--auth-line)!important;
  border-radius:9px!important;
  background:color-mix(in srgb,var(--auth-panel-2) 88%,transparent)!important;
  color:var(--auth-muted)!important;
  box-shadow:none!important;
}
.af-auth-theme-toggle svg {
  width:16px;
  height:16px;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html[data-theme="dark"] .af-auth-theme-toggle .moon,
html[data-theme="light"] .af-auth-theme-toggle .sun { display:none; }

.af-auth-brand-copy {
  position:relative;
  z-index:1;
  margin-top:auto;
  max-width:430px;
  padding-top:70px;
}
.af-auth-brand-copy > span {
  display:block;
  margin-bottom:9px;
  color:var(--auth-accent);
  font-size:9px;
  font-weight:850;
  letter-spacing:.14em;
}
.af-auth-brand-copy h2 {
  margin:0;
  color:var(--auth-text);
  font-size:clamp(26px,2.4vw,34px);
  line-height:1.08;
  letter-spacing:-.045em;
}
.af-auth-brand-copy p {
  margin:12px 0 0;
  color:var(--auth-muted);
  font-size:12px;
  line-height:1.65;
}
.af-auth-capabilities {
  position:relative;
  z-index:1;
  display:grid;
  gap:7px;
  margin-top:24px;
}
.af-auth-capabilities > div {
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:9px;
  align-items:center;
  min-height:50px;
  padding:6px 8px;
  border:1px solid color-mix(in srgb,var(--auth-line) 80%,transparent);
  border-radius:9px;
  background:color-mix(in srgb,var(--auth-panel-2) 78%,transparent);
}
.af-auth-capabilities i {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:var(--auth-accent-soft);
  color:var(--auth-accent);
}
.af-auth-capabilities svg {
  width:17px;
  height:17px;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.af-auth-capabilities strong,
.af-auth-capabilities small {
  display:block;
}
.af-auth-capabilities strong {
  color:var(--auth-soft);
  font-size:10px;
}
.af-auth-capabilities small {
  margin-top:2px;
  color:var(--auth-muted);
  font-size:8px;
}
.af-auth-brand-foot {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:22px;
  color:var(--auth-muted);
  font-size:8px;
}
.af-auth-brand-foot span {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#35cb8c;
  box-shadow:0 0 0 3px rgba(53,203,140,.10);
}

body.af-platform-login .af-login-form-panel {
  align-content:center;
  justify-items:stretch;
  padding:48px 48px!important;
  color:var(--auth-text);
  text-align:left;
  background:var(--auth-panel);
}
body.af-platform-login .af-login-card-single .af-login-form-panel .af-login-mark {
  display:none;
}
body.af-platform-login .af-login-form-panel h1 {
  margin:0 0 7px;
  color:var(--auth-text);
  font-size:27px;
  line-height:1.1;
  letter-spacing:-.035em;
}
body.af-platform-login .af-login-form-panel > p.af-login-lede {
  margin:0 0 25px;
  color:var(--auth-muted);
  font-size:12px;
  line-height:1.55;
}
body.af-platform-login .af-login-form-panel form {
  gap:15px;
}
body.af-platform-login .af-login-form-panel label {
  margin-bottom:6px;
  color:var(--auth-soft);
  font-size:9px;
  font-weight:760;
  letter-spacing:.06em;
}
body.af-platform-login .af-input-icon input,
body.af-platform-login .af-login-form-panel input:not([type="hidden"]) {
  min-height:43px;
  color:var(--auth-text);
  background:var(--auth-panel-2);
  border:1px solid var(--auth-line);
  border-radius:9px;
  font-size:12px;
}
body.af-platform-login .af-input-icon svg {
  color:var(--auth-muted);
}
body.af-platform-login .af-input-icon input:focus,
body.af-platform-login .af-login-form-panel input:focus {
  border-color:var(--auth-accent);
  background:var(--auth-panel-2);
  box-shadow:0 0 0 3px var(--auth-accent-soft);
}
body.af-platform-login .af-login-form-panel button[type="submit"],
body.af-platform-login .af-login-continue,
body.af-platform-login .af-mfa-continue {
  min-height:43px;
  margin-top:3px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--auth-accent);
  border-radius:9px;
  background:var(--auth-accent);
  color:#041013;
  font-size:11px;
  font-weight:820;
  box-shadow:0 8px 22px rgba(18,205,226,.16);
  text-decoration:none;
}
body.af-platform-login .af-login-form-panel button[type="submit"]:hover,
body.af-platform-login .af-login-continue:hover,
body.af-platform-login .af-mfa-continue:hover {
  background:color-mix(in srgb,var(--auth-accent) 88%,#fff);
}
body.af-platform-login .af-login-switch {
  margin:14px 0 0;
  color:var(--auth-muted);
  font-size:10px;
  text-align:center;
}
body.af-platform-login .af-login-switch + .af-login-switch {
  margin-top:8px;
}
body.af-platform-login .af-login-switch a,
body.af-platform-login .af-terms-consent a {
  color:var(--auth-accent);
  font-weight:720;
}
body.af-platform-login .af-login-error,
body.af-platform-login .af-field-error {
  color:color-mix(in srgb,var(--auth-danger) 80%,var(--auth-text));
  background:color-mix(in srgb,var(--auth-danger) 9%,var(--auth-panel-2));
  border-color:color-mix(in srgb,var(--auth-danger) 32%,var(--auth-line));
}

/* MFA */
body.af-platform-login .af-mfa-qr {
  margin:2px auto 14px;
  padding:10px;
  width:max-content;
  border:1px solid var(--auth-line);
  border-radius:10px;
  background:#fff;
}
body.af-platform-login .af-mfa-key {
  margin:0 0 15px;
  padding:9px 10px;
  border:1px solid var(--auth-line);
  border-radius:8px;
  background:var(--auth-panel-2);
  color:var(--auth-muted);
  font-size:9px;
}
body.af-platform-login .af-mfa-key code {
  color:var(--auth-soft);
}
body.af-platform-login .af-mfa-recovery-grid {
  gap:6px;
  margin:12px 0 18px;
}
body.af-platform-login .af-mfa-recovery-grid code {
  padding:8px 9px;
  border:1px solid var(--auth-line);
  border-radius:7px;
  background:var(--auth-panel-2);
  color:var(--auth-soft);
  font-size:10px;
}

/* Cadastro e planos */
body.af-platform-login .af-login-card.af-auth-signup {
  grid-template-columns:minmax(400px,.9fr) minmax(0,1.1fr);
  min-height:650px;
}
body.af-platform-login .af-auth-signup .af-login-form-panel {
  padding:34px 38px!important;
  border-right:1px solid var(--auth-line);
}
body.af-platform-login .af-auth-signup .af-login-mark {
  width:125px;
  margin:0 0 14px;
  justify-self:start;
}
body.af-platform-login .af-plans-panel {
  padding:36px 34px;
  background:
    radial-gradient(circle at 85% 10%,var(--auth-accent-soft),transparent 26%),
    var(--auth-panel-2);
  color:var(--auth-text);
}
body.af-platform-login .af-plans-panel::after {
  background:var(--auth-accent);
}
body.af-platform-login .af-plans-eyebrow,
body.af-platform-login .af-plan-tag,
body.af-platform-login .af-plan-features-toggle {
  color:var(--auth-accent);
}
body.af-platform-login .af-plans-panel h2,
body.af-platform-login .af-plan-name,
body.af-platform-login .af-plan-price {
  color:var(--auth-text);
}
body.af-platform-login .af-plan-card {
  border-color:var(--auth-line);
  background:var(--auth-panel);
}
body.af-platform-login .af-plan-card.is-trial {
  border-color:color-mix(in srgb,var(--auth-accent) 35%,var(--auth-line));
  background:linear-gradient(160deg,var(--auth-accent-soft),var(--auth-panel));
}
body.af-platform-login .af-plan-specs,
body.af-platform-login .af-plan-features,
body.af-platform-login .af-plans-note {
  color:var(--auth-muted);
}

/* overlays */
body.af-platform-login .af-features-overlay {
  background:rgba(3,6,10,.72);
  backdrop-filter:blur(6px);
}
body.af-platform-login .af-features-modal {
  background:var(--auth-panel);
  border-color:var(--auth-line);
  color:var(--auth-text);
}
body.af-platform-login .af-features-modal h3 { color:var(--auth-text); }
body.af-platform-login .af-features-modal-list li { color:var(--auth-soft); }

@media(max-width:880px) {
  body.af-platform-login .af-login-card-single {
    grid-template-columns:1fr;
    width:min(500px,100%);
    min-height:0;
  }
  body.af-platform-login .af-auth-brand-panel {
    min-height:190px;
    padding:22px 24px;
    border-right:0;
    border-bottom:1px solid var(--auth-line);
  }
  .af-auth-brand-copy {
    margin-top:26px;
    padding-top:0;
  }
  .af-auth-brand-copy h2 { font-size:23px; }
  .af-auth-brand-copy p,
  .af-auth-capabilities,
  .af-auth-brand-foot { display:none; }
  body.af-platform-login .af-login-form-panel { padding:30px 26px!important; }
  body.af-platform-login .af-login-card.af-auth-signup { grid-template-columns:1fr; }
  body.af-platform-login .af-auth-signup .af-login-form-panel { border-right:0;border-bottom:1px solid var(--auth-line); }
}
@media(max-width:520px) {
  body.af-platform-login { padding:10px!important; place-items:start center!important; overflow:auto!important; }
  body.af-platform-login .af-login-card { border-radius:13px; }
  body.af-platform-login .af-auth-brand-panel { min-height:148px; }
  .af-auth-brand-logo { width:122px; }
  .af-auth-brand-copy { margin-top:18px; }
  .af-auth-brand-copy h2 { font-size:20px; }
  body.af-platform-login .af-login-form-panel { padding:25px 20px!important; }
  body.af-platform-login .af-login-form-panel h1 { font-size:23px; }
  body.af-platform-login .af-plan-grid { grid-template-columns:1fr; }
}
body.af-platform-login .af-auth-signup .af-login-form-panel {
  position:relative;
}
body.af-platform-login .af-auth-signup-theme-toggle {
  position:absolute!important;
  top:18px;
  right:18px;
  z-index:3;
}
/* O cadastro tinha um background azul herdado do controle genérico. */
body.af-platform-login .af-auth-signup .af-input-icon input,
body.af-platform-login .af-auth-signup .af-login-form-panel input:not([type="hidden"]) {
  background:var(--auth-panel-2)!important;
  border-color:var(--auth-line)!important;
  color:var(--auth-text)!important;
}
body.af-platform-login .af-auth-signup .af-input-icon input:focus,
body.af-platform-login .af-auth-signup .af-login-form-panel input:focus {
  border-color:var(--auth-accent)!important;
  box-shadow:0 0 0 3px var(--auth-accent-soft)!important;
}

/* Acesso público de suporte on-premise: usa o mesmo shell de autenticação
   sem alterar o fundo configurado da plataforma. */
body.af-platform-login .af-support-public-state {
  display:inline-flex;
  align-items:center;
  min-height:23px;
  margin-bottom:10px;
  padding:0 8px;
  border-radius:999px;
  font-size:7px;
  font-weight:820;
  letter-spacing:.08em;
}
body.af-platform-login .af-support-public-state.success {
  background:rgba(53,203,140,.10);
  color:#35cb8c;
}
body.af-platform-login .af-support-public-state.danger {
  background:rgba(239,92,108,.10);
  color:var(--auth-danger);
}
body.af-platform-login .af-support-public-note {
  display:grid;
  gap:4px;
  margin:0 0 16px;
  padding:10px 11px;
  border:1px solid var(--auth-line);
  border-radius:9px;
  background:var(--auth-panel-2);
}
body.af-platform-login .af-support-public-note strong {
  color:var(--auth-soft);
  font-size:9px;
}
body.af-platform-login .af-support-public-note span {
  color:var(--auth-muted);
  font-size:8px;
  line-height:1.45;
}

/* AF Modern V20 · estado financeiro bloqueado.
   Não altera nem substitui o fundo configurado da autenticação. */
body.af-platform-login .af-billing-blocked-state{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  margin-bottom:10px;
  padding:0 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--auth-danger) 10%,var(--auth-panel-2));
  color:var(--auth-danger);
  font-size:7px;
  font-weight:820;
  letter-spacing:.08em;
}
body.af-platform-login .af-billing-blocked-note{
  display:grid;
  gap:4px;
  margin:0 0 16px;
  padding:10px 11px;
  border:1px solid color-mix(in srgb,var(--auth-danger) 18%,var(--auth-line));
  border-radius:9px;
  background:color-mix(in srgb,var(--auth-danger) 5%,var(--auth-panel-2));
}
body.af-platform-login .af-billing-blocked-note strong{
  color:var(--auth-soft);
  font-size:9px;
}
body.af-platform-login .af-billing-blocked-note span{
  color:var(--auth-muted);
  font-size:8px;
  line-height:1.5;
}
body.af-platform-login .af-billing-blocked-card button:disabled{
  border-color:var(--auth-line);
  background:var(--auth-panel-2);
  color:var(--auth-muted);
  box-shadow:none;
  cursor:not-allowed;
}
/* Auth UX: logo centralizada em login, cadastro e recuperação de senha. */
body.af-platform-login .af-auth-brand-top {
  justify-content:center;
}
body.af-platform-login .af-auth-brand-top .af-auth-theme-toggle {
  position:absolute;
  top:0;
  right:0;
}
body.af-platform-login .af-auth-brand-logo {
  display:block;
  width:250px;
  max-height:92px;
  margin:0 auto;
  object-fit:contain;
  object-position:center center;
}
body.af-platform-login .af-auth-signup .af-login-mark {
  display:block;
  width:220px;
  max-height:84px;
  justify-self:center;
  margin:0 auto 14px;
  object-fit:contain;
  object-position:center center;
}
