/* Telas de autenticação (login/signup) — carregado só nelas, isolado do Bootstrap do app */
:root{--p:#0B2545;--g:#C9A227;--p2:#13366a;--ink:#14213d;--mut:#6b768a;--line:#e3e8f0;--ok:#16a34a;--err:#dc2626}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:#f4f6fa;overflow-x:hidden}
.wrap{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
a{color:var(--p);text-decoration:none;font-weight:600}
a:hover{text-decoration:underline}

/* ---------- painel animado ---------- */
.hero{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 0% 0%,#163b6e 0%,var(--p) 55%,#061428 100%);color:#fff;padding:48px 56px;display:flex;flex-direction:column;justify-content:space-between}
.hero canvas{position:absolute;inset:0;width:100%;height:100%}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;mix-blend-mode:screen;animation:drift 18s ease-in-out infinite alternate}
.blob.b1{width:420px;height:420px;background:var(--g);top:-120px;right:-80px}
.blob.b2{width:360px;height:360px;background:#2e86ab;bottom:-140px;left:-60px;animation-duration:22s;animation-delay:-6s}
.blob.b3{width:260px;height:260px;background:#8d6a9f;top:40%;left:45%;animation-duration:26s;animation-delay:-11s;opacity:.35}
@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,30px) scale(1.12)}100%{transform:translate(30px,-25px) scale(.95)}}
.hero>*:not(canvas):not(.blob){position:relative;z-index:2}
.brand{display:flex;align-items:center;gap:14px;animation:fadeDown .8s .1s both}
.mark{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--g),#f3d27a);color:var(--p);display:grid;place-items:center;font-weight:900;font-size:1.6rem;box-shadow:0 10px 30px rgba(201,162,39,.45);position:relative}
.mark::after{content:"";position:absolute;inset:-6px;border-radius:18px;border:2px solid rgba(201,162,39,.5);animation:pulse 2.6s ease-out infinite}
@keyframes pulse{0%{opacity:.9;transform:scale(.9)}100%{opacity:0;transform:scale(1.35)}}
.brand b{display:block;font-size:.95rem;letter-spacing:.02em}
.brand small{color:var(--g);font-size:.78rem}
.pitch h1{font-size:clamp(1.9rem,3.2vw,2.9rem);line-height:1.12;font-weight:800;letter-spacing:-.02em;max-width:520px;animation:fadeUp .9s .25s both}
.pitch h1 .rot{display:inline-block;color:var(--g);min-width:2ch}
.pitch h1 .rot::after{content:"";display:inline-block;width:3px;height:.9em;background:var(--g);margin-left:4px;vertical-align:-.08em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.pitch p{color:#c9d4e6;margin-top:14px;max-width:460px;line-height:1.6;animation:fadeUp .9s .4s both}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:560px;margin-top:34px}
.mini{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);border-radius:14px;padding:14px;animation:fadeUp .8s both,float 6s ease-in-out infinite}
.mini:nth-child(1){animation-delay:.55s,0s}.mini:nth-child(2){animation-delay:.7s,-2s}.mini:nth-child(3){animation-delay:.85s,-4s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.mini i{color:var(--g);font-size:1.25rem}
.mini b{display:block;font-size:.86rem;margin-top:8px}
.mini span{font-size:.72rem;color:#aebbd1}
.foot{font-size:.75rem;color:#8ea0bd;animation:fadeUp .8s 1s both}

/* ---------- formulário ---------- */
.side{display:grid;place-items:center;padding:32px 20px;position:relative;background:radial-gradient(circle at 1px 1px,#dfe5ee 1px,transparent 0) 0 0/22px 22px,linear-gradient(180deg,#f7f9fc,#eef2f8)}
.card{width:100%;max-width:400px;background:#fff;border-radius:22px;padding:40px 36px;box-shadow:0 30px 80px -20px rgba(11,37,69,.25),0 0 0 1px var(--line);animation:cardIn .7s cubic-bezier(.2,.8,.2,1) .15s both}
@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.card.shake{animation:shake .5s}
@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.hello{font-size:.85rem;color:var(--mut)}
.card h2{font-size:1.55rem;font-weight:800;margin:4px 0 26px;letter-spacing:-.01em}
.card h2 span{background:linear-gradient(90deg,var(--p),var(--g));-webkit-background-clip:text;background-clip:text;color:transparent}
.field{position:relative;margin-bottom:18px}
.field input{width:100%;height:56px;border:1.5px solid var(--line);border-radius:14px;padding:22px 46px 8px 46px;font-size:.98rem;background:#fbfcfe;outline:none;transition:border-color .2s,box-shadow .2s,background .2s;color:var(--ink)}
.field label{position:absolute;left:46px;top:50%;transform:translateY(-50%);color:var(--mut);font-size:.95rem;pointer-events:none;transition:all .18s ease}
.field>i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#9aa5b8;font-size:1.1rem;transition:color .2s}
.field input:focus{border-color:var(--g);background:#fff;box-shadow:0 0 0 4px rgba(201,162,39,.15)}
.field input:focus~i{color:var(--g)}
.field input:focus+label,.field input:not(:placeholder-shown)+label{top:15px;font-size:.7rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--p)}
.signup-choice-wrap{margin:0 0 16px}.signup-choice-wrap label{display:block;margin:0 0 6px;color:var(--mut);font-size:.78rem;font-weight:700;letter-spacing:.025em;text-transform:uppercase}.signup-choice{width:100%;min-height:48px;padding:10px 13px;border:1.5px solid var(--line);border-radius:12px;background:#fbfcfe;color:var(--ink);font:inherit;outline:none}.signup-choice:focus{border-color:var(--g);background:#fff;box-shadow:0 0 0 4px rgba(201,162,39,.15)}.signup-choice-hint{margin-top:6px;color:var(--mut);font-size:.76rem}.signup-choice-error{color:#b42318}
.eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:none;color:#9aa5b8;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:1.1rem}
.eye:hover{background:#f1f4f9;color:var(--p)}
.caps{display:none;align-items:center;gap:6px;font-size:.78rem;color:#b45309;background:#fff7e6;border-radius:10px;padding:7px 10px;margin:-8px 0 14px}
.caps.on{display:flex;animation:fadeUp .25s both}
.row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 22px;font-size:.85rem;color:var(--mut)}
.chk{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.chk input{width:17px;height:17px;accent-color:var(--p)}
.btn{position:relative;width:100%;height:54px;border:0;border-radius:14px;font-weight:700;font-size:1rem;color:var(--p);cursor:pointer;overflow:hidden;
  background:linear-gradient(135deg,var(--g),#e8c35a);box-shadow:0 14px 30px -10px rgba(201,162,39,.7);transition:transform .15s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 34px -10px rgba(201,162,39,.85)}
.btn:active{transform:translateY(0)}
.btn::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:shine 3.5s ease-in-out infinite}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
.btn .lbl{display:inline-flex;align-items:center;gap:8px;transition:opacity .2s}
.btn .spin{position:absolute;inset:0;display:grid;place-items:center;opacity:0}
.btn .spin::after{content:"";width:22px;height:22px;border-radius:50%;border:3px solid rgba(11,37,69,.25);border-top-color:var(--p);animation:rot .7s linear infinite}
.btn.loading .lbl{opacity:0}.btn.loading .spin{opacity:1}
@keyframes rot{to{transform:rotate(360deg)}}
.alert{display:flex;gap:10px;align-items:flex-start;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:12px;padding:11px 13px;font-size:.88rem;margin-bottom:18px;animation:fadeUp .35s both}
.alert.ok{background:#f0fdf4;color:#166534;border-color:#bbf7d0}
.secure{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:22px;font-size:.75rem;color:#98a2b3}
.secure i{color:var(--ok)}
.swap{text-align:center;font-size:.82rem;color:var(--mut);margin-top:18px}
.plano-escolhido{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.35);font-size:.84rem;color:#7a5c0e;margin-bottom:16px}
.plano-escolhido i{color:var(--g);font-size:1.05rem}
.plano-escolhido a{margin-left:auto;font-size:.78rem}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}

@media (max-width:960px){
  .wrap{grid-template-columns:1fr}
  .hero{padding:28px 22px 90px;min-height:auto}
  .pitch p,.cards,.foot{display:none}
  .pitch h1{font-size:1.6rem;margin-top:24px}
  .side{margin-top:-70px;align-items:start;padding:0 16px 32px}
  .card{padding:30px 22px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
