:root{
  --ink:#0B0D12;--muted:#5E6878;--line:#E3E7EF;--soft:#F5F7FB;
  --brand:#1F5BFF;--brand-d:#1546CC;--brand-l:#E9EFFF;--brand-2:#5B8CFF;--navy:#0F1E4A;
  --good:#16A34A;--warn:#D97706;--bad:#DC2626;
  --f:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--fd:'Oswald','Plus Jakarta Sans',sans-serif;
  --hex:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:auto} /* smooth via JS: o CSS quebra os gatilhos do GSAP ScrollTrigger */
body{font-family:var(--f);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
img{max-width:100%;display:block}
.ic{flex:none;vertical-align:middle}
::selection{background:var(--brand);color:#fff}

/* ---------- fundo animado ---------- */
.bg-anim{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#fff;pointer-events:none}
.bg-anim::before{content:"";position:absolute;inset:0;background-image:radial-gradient(#D6E0FA 1.1px,transparent 1.2px);background-size:26px 26px;mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 30%,transparent 80%);opacity:.7}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.38;will-change:transform}
.blob.b1{width:520px;height:520px;background:#BCD0FF;top:-160px;right:-120px;animation:drift1 22s ease-in-out infinite alternate}
.blob.b2{width:420px;height:420px;background:#D9E4FF;bottom:-140px;left:-120px;animation:drift2 26s ease-in-out infinite alternate}
.blob.b3{width:300px;height:300px;background:#C9D8FF;top:40%;left:45%;opacity:.25;animation:drift1 30s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate(-120px,140px) scale(1.15)}}
@keyframes drift2{to{transform:translate(140px,-100px) scale(1.1)}}
.hx-f{position:absolute;color:var(--brand);opacity:.13;animation:floaty var(--d,18s) ease-in-out infinite;will-change:transform}
.hx-f svg{width:100%;height:100%;animation:spin var(--r,40s) linear infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-34px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- logo ---------- */
.logo{display:flex;align-items:center;gap:11px;font-weight:800;line-height:1.1}
.logo svg{width:38px;height:42px;flex:none;color:var(--brand)}
.logo small{display:block;font-size:10px;font-weight:700;color:var(--muted);letter-spacing:1.4px;text-transform:uppercase}

/* ---------- componentes ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-weight:700;font-size:14px;padding:11px 20px;border-radius:999px;background:var(--brand);color:#fff;transition:transform .15s var(--ease),background .15s,box-shadow .2s;white-space:nowrap;box-shadow:0 8px 20px -10px rgba(31,91,255,.7)}
.btn:hover{background:var(--brand-d);transform:translateY(-1px)}
.btn:active{transform:none}
.btn.line{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn.line:hover{box-shadow:inset 0 0 0 1.5px var(--brand);color:var(--brand-d)}
.btn.dark{background:var(--ink);box-shadow:none}.btn.dark:hover{background:var(--brand)}
.btn.ghost{background:transparent;color:var(--muted);box-shadow:none}.btn.ghost:hover{color:var(--ink);background:var(--soft)}
.btn.danger{background:#fff;color:var(--bad);box-shadow:inset 0 0 0 1.5px #F5C2C2}
.btn.sm{padding:7px 14px;font-size:13px}
.btn.lg{padding:15px 28px;font-size:15px}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--brand-l);color:var(--brand-d);white-space:nowrap}
.badge.good{background:#DCFCE7;color:#166534}.badge.warn{background:#FEF3C7;color:#92400E}.badge.bad{background:#FEE2E2;color:#991B1B}.badge.gray{background:#EDEFF4;color:#475063}

/* formulários */
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}
.field input:not([type=checkbox]):not([type=radio]):not([type=range]),.field select,.field textarea{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:11px 13px;font-weight:500;font-size:14px;color:var(--ink);outline:none;transition:border .15s,box-shadow .15s;width:100%}
.field textarea{resize:vertical;min-height:70px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(31,91,255,.12)}
.field .err,.errorlist{color:var(--bad);font-size:12.5px;font-weight:600;list-style:none;padding:0}
.field.has-err input,.field.has-err select,.field.has-err textarea{border-color:var(--bad)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr}}
input[type=range]{width:100%;accent-color:var(--brand)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* barra de rolagem: fundo branco, barra azul */
html{scrollbar-color:#1556FF #fff;scrollbar-width:thin}
*{scrollbar-color:#1556FF #fff}
::-webkit-scrollbar{width:12px;height:12px;background:#fff}
::-webkit-scrollbar-track{background:#fff}
::-webkit-scrollbar-thumb{background:#1556FF;border-radius:999px;border:3px solid #fff}
::-webkit-scrollbar-thumb:hover{background:#0B3FD6}
::-webkit-scrollbar-corner{background:#fff}

/* celular/tablet: campos com 16px para o navegador não dar zoom ao tocar */
@media(max-width:1024px),(pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}
}

/* preenchimento automático do navegador sem o fundo amarelo/azul */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,
textarea:-webkit-autofill,select:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px var(--af-bg,#F7F9FD) inset!important;box-shadow:0 0 0 1000px var(--af-bg,#F7F9FD) inset!important;
  -webkit-text-fill-color:var(--ink,#0B0D12)!important;caret-color:var(--ink,#0B0D12);
  transition:background-color 99999s ease-in-out 0s}
input:autofill{background:var(--af-bg,#F7F9FD)!important}
input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #fff inset,0 0 0 4px rgba(31,91,255,.14)!important;box-shadow:0 0 0 1000px #fff inset,0 0 0 4px rgba(31,91,255,.14)!important}
body.app input{--af-bg:#fff}
