:root { color-scheme:dark; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; font-family:Inter,Arial,sans-serif; background:#070b12; color:#f8fafc; }
.login-page { position:relative; isolation:isolate; display:grid; min-height:100vh; place-items:center; overflow:hidden; padding:24px; background:radial-gradient(circle at 20% 40%,rgba(225,29,72,.12),transparent 35%),radial-gradient(circle at 80% 45%,rgba(14,165,233,.18),transparent 38%),linear-gradient(135deg,#070b12 0%,#0b111c 45%,#07101c 100%); }
.login-page::before,.login-page::after { position:absolute; z-index:-1; content:""; border-radius:50%; filter:blur(110px); pointer-events:none; }.login-page::before { width:32rem; height:32rem; left:-16rem; bottom:-16rem; background:rgba(225,29,72,.14); }.login-page::after { width:35rem; height:35rem; right:-17rem; top:-17rem; background:rgba(14,165,233,.18); }
.login-card { width:min(100%,440px); padding:32px; border:1px solid rgba(56,189,248,.3); border-radius:24px; text-align:center; background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(8,15,26,.98)); box-shadow:0 24px 80px rgba(0,0,0,.55),0 0 40px rgba(14,165,233,.08); animation:login-enter .35s ease both; }
.login-logo { width:68px; height:56px; object-fit:contain; filter:drop-shadow(0 0 18px rgba(225,29,72,.2)); }.login-product { margin:-2px 0 22px; color:#38bdf8; font-size:10px; font-weight:800; letter-spacing:2px; }.login-card h1 { margin:0; font-size:23px; }.login-subtitle { margin:8px 0 26px; color:#94a3b8; font-size:13px; }
form { text-align:left; } label { display:block; margin:15px 0 7px; color:#cbd5e1; font-size:11px; font-weight:750; }.field { position:relative; border:1px solid rgba(71,85,105,.7); border-radius:12px; background:#0b1320; color:#64748b; transition:.2s ease; }.field:focus-within { border-color:#38bdf8; box-shadow:0 0 0 3px rgba(56,189,248,.12),0 0 18px rgba(14,165,233,.08); }.field-icon { position:absolute; top:50%; left:16px; width:16px; height:16px; transform:translateY(-50%); color:#64748b; pointer-events:none; }.field input { width:100%; height:48px; padding:0 44px; border:0; outline:0; background:transparent; color:#f8fafc; font:13px Inter,Arial,sans-serif; }.field input::placeholder { color:#64748b; }.field button { position:absolute; top:50%; right:16px; display:grid; width:18px; height:18px; padding:0; place-items:center; transform:translateY(-50%); border:0; background:transparent; color:#64748b; cursor:pointer; transition:color .2s ease; }.field button:hover { color:#38bdf8; }.field button svg { width:16px; height:16px; }
.login-submit { position:relative; display:flex; width:100%; min-height:48px; align-items:center; justify-content:center; gap:8px; margin-top:22px; overflow:hidden; border:1px solid #38bdf8; border-radius:12px; background:linear-gradient(180deg,#2488c9 0%,#1f75b8 55%,#1d66a3 100%); color:white; font-weight:800; cursor:pointer; box-shadow:0 8px 24px rgba(14,165,233,.16); transition:.2s ease; }.login-submit svg { width:16px; height:16px; stroke-width:2; }.login-submit::before { position:absolute; inset:0; content:""; background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 45%); pointer-events:none; }.login-submit:hover:not(:disabled) { transform:translateY(-1px); background:linear-gradient(180deg,#2f9bdd 0%,#2386ca 50%,#1f75b8 100%); box-shadow:0 10px 30px rgba(14,165,233,.26),0 0 22px rgba(56,189,248,.18); }.login-submit:disabled { cursor:wait; opacity:.7; }.forgot-password { margin:17px 0 0; border:0; background:transparent; color:#38bdf8; font-size:11px; cursor:pointer; }.forgot-password:hover { color:#7dd3fc; text-decoration:underline; }.security-note { display:flex; align-items:center; justify-content:center; gap:8px; margin:24px 0 0; color:#64748b; font-size:10px; }.security-note svg { width:14px; height:14px; color:#38bdf8; stroke-width:1.8; }.login-error { margin:14px 0 0; padding:10px; border:1px solid rgba(239,68,68,.3); border-radius:9px; background:rgba(239,68,68,.08); color:#fca5a5; font-size:12px; text-align:center; } @keyframes login-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } } @media (max-width:480px) { .login-card { padding:27px 22px; border-radius:20px; }.login-card h1 { font-size:21px; } }

/* Ilustração decorativa do login: não interfere na autenticação. */
.login-page::before { width:65vw; height:70vh; left:-10%; bottom:-15%; background:radial-gradient(ellipse at 35% 70%,rgba(165,0,35,.13),rgba(100,0,25,.07) 32%,transparent 68%); }
.car-neon-wrapper { position:absolute; z-index:0; left:0; bottom:16px; width:48vw; min-width:520px; max-width:850px; pointer-events:none; }.car-neon-wrapper::after { position:absolute; right:10%; bottom:-10px; left:8%; height:25px; content:""; background:radial-gradient(ellipse,rgba(255,30,60,.16),rgba(255,30,60,.05) 45%,transparent 75%); filter:blur(12px); }.car-neon { display:block; width:100%; height:auto; opacity:.3; filter:drop-shadow(0 0 4px rgba(255,45,77,.65)) drop-shadow(0 0 12px rgba(255,45,77,.30)) drop-shadow(0 0 28px rgba(255,20,50,.14)); animation:neon-breath 5s ease-in-out infinite; }.login-card { position:relative; z-index:10; } @keyframes neon-breath { 0%,100% { opacity:.27; filter:drop-shadow(0 0 4px rgba(255,45,77,.55)) drop-shadow(0 0 14px rgba(255,45,77,.20)); } 50% { opacity:.33; filter:drop-shadow(0 0 5px rgba(255,45,77,.7)) drop-shadow(0 0 18px rgba(255,45,77,.28)); } } @media (max-width:1200px) { .car-neon-wrapper { width:42vw; min-width:0; } } @media (max-width:900px) { .car-neon-wrapper { width:520px; bottom:5px; left:-170px; opacity:.55; } } @media (max-width:640px) { .car-neon-wrapper { display:none; } } @media (prefers-reduced-motion:reduce) { .car-neon { animation:none; } }
/* Refinamento visual exclusivo da ilustração na tela de login. */
.car-neon-wrapper { left:28px; bottom:-6px; width:44vw; min-width:560px; max-width:720px; opacity:1; }
.car-neon-wrapper::before { position:absolute; z-index:-1; inset:20% 5% -10% 0; content:""; background:radial-gradient(ellipse at 35% 75%,rgba(180,0,40,.12),rgba(110,0,30,.05) 40%,transparent 70%); filter:blur(28px); }
.car-neon-wrapper::after { left:5%; right:auto; width:75%; bottom:0; height:18px; background:radial-gradient(ellipse,rgba(255,35,65,.12),transparent 70%); filter:blur(9px); }
.car-neon { opacity:.42; filter:drop-shadow(0 0 3px rgba(255,45,77,.75)) drop-shadow(0 0 9px rgba(255,45,77,.35)) drop-shadow(0 0 22px rgba(255,20,50,.14)); animation:neon-breath-refined 5s ease-in-out infinite; }
@keyframes neon-breath-refined { 0%,100% { opacity:.38; filter:drop-shadow(0 0 3px rgba(255,45,77,.68)) drop-shadow(0 0 8px rgba(255,45,77,.30)) drop-shadow(0 0 20px rgba(255,20,50,.12)); } 50% { opacity:.46; filter:drop-shadow(0 0 4px rgba(255,45,77,.80)) drop-shadow(0 0 10px rgba(255,45,77,.38)) drop-shadow(0 0 22px rgba(255,20,50,.14)); } }
@media (max-width:1200px) { .car-neon-wrapper { width:42vw; min-width:0; } }
@media (max-width:900px) { .car-neon-wrapper { width:520px; min-width:0; left:-170px; bottom:5px; } }

/* Comparativo local v66: tipografia integralmente regular na tela de login. */
body,
body * {
  font-weight:400 !important;
}
