/* ============ LOGIN E CADASTRO ============ */
.auth-wrap{min-height:calc(100svh - var(--hdr));display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);max-width:var(--maxw);margin:0 auto;padding:clamp(32px,5vw,72px) 22px;gap:clamp(36px,6vw,96px);align-items:start}
.auth-side{position:sticky;top:calc(var(--hdr) + 48px)}
.lp-auth-slogan{font-family:var(--font-mono);font-size:clamp(1.8rem,3.2vw,2.8rem);font-style:italic;font-weight:300;line-height:1.14;letter-spacing:-.025em}
.auth-side>.muted{margin-top:18px}
.auth-main{min-width:0}
.auth-card{width:100%;max-width:480px}
.lp-auth-title{margin-bottom:8px;font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:700}
.lp-auth-sub{margin-bottom:26px;font-size:.92rem;color:var(--text-2)}
.tabs{display:flex;margin-bottom:24px;border-bottom:1px solid var(--line-strong)}
.tabs button{flex:1;padding:12px;border:0;background:none;font-family:var(--font-mono);font-weight:500;font-size:.9rem;color:var(--text-2);cursor:pointer}
.tabs button:hover{color:var(--text)}
.tabs button.active{background:var(--brand);color:#fff}
.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}
.role-opt{width:100%;padding:14px;border:1px solid var(--line-strong);background:none;color:inherit;text-align:left;cursor:pointer}
.role-opt:hover{border-color:var(--text)}
.role-opt.sel,.role-opt.sel:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.role-opt svg{display:block;width:20px;height:20px;margin-bottom:8px}
.role-opt b{display:block;font-family:var(--font-mono);font-size:.88rem;font-weight:600}
.role-opt span{font-size:.76rem}
.password-field{position:relative;width:100%}
.password-field .input{padding-right:44px}
.password-toggle{position:absolute;top:50%;right:0;display:grid;place-items:center;width:40px;height:40px;padding:0;transform:translateY(-50%);border:0;background:transparent;color:var(--text-2);cursor:pointer}
.password-toggle:hover{color:var(--text)}
.password-toggle .ic{width:18px;height:18px;stroke:currentColor}
.lp-auth-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:22px}
.lp-auth-check{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--text-2)}
.lp-auth-terms{display:block;margin-bottom:22px;font-size:.84rem;line-height:1.5}
.lp-auth-terms input{margin:0 6px 0 0;vertical-align:-2px}
input[type=checkbox]{accent-color:var(--brand)}
.lp-auth-link{display:inline-block;padding:2px 0;font-size:.86rem;color:var(--brand-2);text-decoration:underline;text-underline-offset:4px}
.lp-auth-terms .lp-auth-link{display:inline;padding:0;font-size:inherit}
.lp-auth-status{margin:16px 0 18px}
.lp-auth-status:empty{margin:0 0 18px}
/* ---------- MODAL DE ESTADO DO CADASTRO ---------- */
.tg-success{
  --tg-bg:#000;--tg-border:rgba(255,255,255,.36);--tg-text:#eef1f7;--tg-muted:#9aa4b8;
  --tg-track:rgba(255,255,255,.08);--tg-ok:#34c997;--tg-ok-soft:rgba(52,201,151,.12);
  --tg-err:#f26d6d;--tg-err-soft:rgba(242,109,109,.12);--tg-brand:#2b59ff;--tg-brand-hover:#4470ff;
  --tg-shadow:none;--tg-backdrop:rgba(6,9,16,.62);
  width:min(380px,calc(100vw - 32px));max-width:calc(100vw - 32px);box-sizing:border-box;
  margin:auto;padding:40px 32px 32px;border:1px solid var(--tg-border);border-radius:0;
  background:var(--tg-bg);color:var(--tg-text);box-shadow:var(--tg-shadow);text-align:center;font-family:inherit
}
:root[data-theme="light"] .tg-success{
  --tg-bg:#fff;--tg-border:rgba(15,23,42,.10);--tg-text:#0f172a;--tg-muted:#5b6578;
  --tg-track:rgba(15,23,42,.08);--tg-ok:#14946b;--tg-ok-soft:rgba(20,148,107,.10);
  --tg-err:#d1434b;--tg-err-soft:rgba(209,67,75,.10);--tg-brand:#2b59ff;--tg-brand-hover:#1a3fd6;
  --tg-shadow:none;--tg-backdrop:rgba(15,23,42,.42)
}
.tg-success:focus{outline:none}
.tg-success::backdrop{background:var(--tg-backdrop)}
.tg-success[open]{animation:tg-in .26s cubic-bezier(.2,.8,.2,1)}
.tg-success[open]::backdrop{animation:tg-fade .26s ease-out}
.tg-success[data-saindo]{opacity:0;transition:opacity .18s ease-in}
@keyframes tg-in{from{opacity:0;transform:translateY(10px) scale(.98)}}
@keyframes tg-fade{from{opacity:0}}
.tg-success__mark{width:64px;height:64px;margin:0 auto 24px;display:block;overflow:visible}
.tg-success__mark circle,.tg-success__mark path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.tg-success__track{stroke:var(--tg-track);stroke-width:2.5}
.tg-success__arc{stroke:var(--tg-ok);stroke-width:2.5;stroke-dasharray:56 133;transform-box:fill-box;transform-origin:center;animation:tg-spin 1s linear infinite;transition:stroke-dasharray .55s cubic-bezier(.4,0,.2,1),stroke .25s}
@keyframes tg-spin{to{transform:rotate(360deg)}}
.tg-success__mark .tg-success__fill{fill:var(--tg-ok-soft);stroke:none;opacity:0;transition:opacity .25s}
.tg-success__tick,.tg-success__bang{stroke-width:3;transition:stroke-dashoffset .3s ease-out}
.tg-success__tick{stroke:var(--tg-ok);stroke-dasharray:36;stroke-dashoffset:36}
.tg-success__bang{stroke:var(--tg-err);stroke-dasharray:15;stroke-dashoffset:15}
.tg-success__mark .tg-success__dot{fill:var(--tg-err);stroke:none;opacity:0;transition:opacity .2s}
.tg-success[data-estado="pronto"] .tg-success__arc,.tg-success[data-estado="erro"] .tg-success__arc{stroke-dasharray:189 0}
.tg-success[data-estado="erro"] .tg-success__arc{stroke:var(--tg-err)}
.tg-success[data-estado="pronto"] .tg-success__fill,.tg-success[data-estado="erro"] .tg-success__fill{opacity:1;transition-delay:.35s}
.tg-success[data-estado="erro"] .tg-success__mark .tg-success__fill{fill:var(--tg-err-soft)}
.tg-success[data-estado="pronto"] .tg-success__tick,.tg-success[data-estado="erro"] .tg-success__bang{stroke-dashoffset:0;transition-delay:.45s}
.tg-success[data-estado="erro"] .tg-success__dot{opacity:1;transition-delay:.7s}
.tg-success__title{margin:0 0 8px;font-size:22px;line-height:1.25;font-weight:700;letter-spacing:-.015em}
.tg-success__msg{margin:0 auto;max-width:30ch;min-height:3.1em;font-size:15px;line-height:1.55;color:var(--tg-muted)}
.tg-success__actions{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.tg-success__actions>div{min-height:0;overflow:hidden}
.tg-success[data-estado="erro"] .tg-success__actions{grid-template-rows:1fr}
.tg-success__actions-in{display:grid;gap:6px;padding-top:20px}
.tg-success__btn{font:inherit;font-size:15px;font-weight:600;height:46px;border-radius:0;border:0;cursor:pointer;transition:background-color .15s,color .15s}
.tg-success__btn--primary{background:var(--tg-brand);color:#fff}
.tg-success__btn--primary:hover{background:var(--tg-brand-hover)}
.tg-success__btn--ghost{height:42px;background:transparent;color:var(--tg-muted);font-weight:500}
.tg-success__btn--ghost:hover{color:var(--tg-text)}
.tg-success__btn:focus-visible{outline:2px solid var(--tg-brand);outline-offset:2px}
@media(prefers-reduced-motion:reduce){
  .tg-success[open],.tg-success[open]::backdrop{animation:none}
  .tg-success *,.tg-success__actions{transition:none!important}
}

/* Recuperação de senha enviada: o que fazer agora, em passos. */
.recuperacao-ico{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;background:var(--brand);color:var(--on-brand)}
.recuperacao-ico svg{width:24px;height:24px}
.recuperacao-email{color:var(--text);overflow-wrap:anywhere}
.recuperacao-passos{list-style:none;margin:22px 0 26px;padding:0;counter-reset:passo;border-top:1px solid var(--line-strong)}
.recuperacao-passos li{display:grid;grid-template-columns:32px 1fr;gap:2px 14px;padding:14px 0;border-bottom:1px solid var(--line)}
.recuperacao-passos li::before{counter-increment:passo;content:counter(passo);grid-row:span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--brand);color:var(--on-brand);font-family:var(--font-mono);font-weight:600;font-size:.88rem}
.recuperacao-passos b{font-size:.95rem}
.recuperacao-passos span{font-size:.86rem;color:var(--text-2)}
.recuperacao-de-novo{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}
.recuperacao-erro{margin-top:14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--danger) 55%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--text)}
.recuperacao-erro b{display:block}
.recuperacao-erro span{display:block;margin-top:4px;font-size:.86rem;color:var(--text-2)}
.recuperacao-erro .btn{margin-top:12px}
.recuperacao-sucesso{margin-top:14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}
.codigo-email{font-family:var(--font-mono);font-size:1.6rem;letter-spacing:.4em;text-align:center}
