:root{
  color-scheme:dark;--bg:#050b12;--panel:#0b1825;--line:#29445a;--text:#f2f8fc;
  --muted:#91a8ba;--orange:#ff6900;--orange2:#ff9341;--cyan:#52ddff;--green:#48d99a;--red:#ff7480
}
*{box-sizing:border-box}html,body{min-height:100%}
body{margin:0;overflow-x:hidden;background:#050b12;color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}

/* Carretera nocturna animada. Todo es CSS y no sustituye el logotipo real. */
.auth-road-scene{position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,rgba(16,67,92,.75),transparent 30%),linear-gradient(#020710 0 49%,#08141d 49% 100%)}
.auth-road-scene:before{content:"";position:absolute;inset:0;background:radial-gradient(500px 340px at 12% 13%,rgba(37,151,196,.14),transparent 70%),radial-gradient(540px 340px at 88% 8%,rgba(255,105,0,.13),transparent 70%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:auto,auto,55px 55px,55px 55px}
.auth-horizon{position:absolute;left:-10%;right:-10%;top:47%;height:2px;background:linear-gradient(90deg,transparent,rgba(71,205,248,.44),rgba(255,118,32,.55),transparent);box-shadow:0 0 38px rgba(68,203,255,.3)}
.auth-road{position:absolute;left:50%;bottom:-18vh;width:min(1350px,160vw);height:69vh;transform:translateX(-50%);clip-path:polygon(44% 0,56% 0,96% 100%,4% 100%);background:linear-gradient(90deg,#020507,#111b21 18%,#18252d 50%,#111b21 82%,#020507);box-shadow:inset 100px 0 130px rgba(0,0,0,.66),inset -100px 0 130px rgba(0,0,0,.66)}
.auth-road:before,.auth-road:after{content:"";position:absolute;top:0;bottom:0;width:4px;background:linear-gradient(transparent,rgba(255,255,255,.8));box-shadow:0 0 11px rgba(255,255,255,.35)}
.auth-road:before{left:9%;transform:rotate(-7deg)}.auth-road:after{right:9%;transform:rotate(7deg)}
.auth-road i{position:absolute;left:calc(50% - 3px);top:-18%;width:6px;height:145%;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.88) 0 4.5%,transparent 4.5% 11%);transform:perspective(240px) rotateX(50deg);animation:laneFlow 1.25s linear infinite;filter:drop-shadow(0 0 5px rgba(255,255,255,.38))}
.auth-road i:nth-child(2){left:31%;opacity:.65}.auth-road i:nth-child(3){left:69%;opacity:.65}
.auth-light{position:absolute;bottom:14%;width:9px;height:9px;border-radius:50%;background:#ffb16e;box-shadow:0 0 8px #ff7c24,0 0 24px #ff4b17;animation:vehicleLight 6s linear infinite}
.auth-light-one{left:42%}.auth-light-two{right:38%;animation-delay:-3.2s;filter:hue-rotate(165deg)}
@keyframes laneFlow{to{background-position:0 150px}}@keyframes vehicleLight{0%{transform:translateY(-260px) scale(.25);opacity:0}20%{opacity:.9}100%{transform:translateY(190px) scale(2.8);opacity:0}}

.auth-page{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:34px 18px}
.auth-shell{display:grid;grid-template-columns:minmax(330px,1.05fr) minmax(360px,.85fr);width:min(100%,1010px);min-height:590px;border:1px solid rgba(91,162,199,.32);border-radius:28px;overflow:hidden;background:rgba(5,15,24,.79);box-shadow:0 36px 100px rgba(0,0,0,.62);backdrop-filter:blur(17px)}
.auth-hero{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:590px;padding:42px;background:linear-gradient(145deg,rgba(13,39,57,.87),rgba(7,22,34,.58));border-right:1px solid rgba(88,154,188,.23);overflow:hidden}
.auth-hero:after{content:"";position:absolute;right:-145px;bottom:-145px;width:380px;height:380px;border:1px solid rgba(81,220,255,.14);border-radius:50%;box-shadow:0 0 0 55px rgba(81,220,255,.025),0 0 0 110px rgba(81,220,255,.018)}
.auth-brand{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:9px;color:#fff}
.auth-real-logo{display:block;max-width:270px;max-height:112px;width:auto;height:auto;object-fit:contain;object-position:left center;filter:drop-shadow(0 9px 20px rgba(0,0,0,.32))}
.auth-wordmark{font-size:38px;line-height:1;letter-spacing:.14em;text-shadow:0 0 23px rgba(73,218,255,.25)}
.auth-brand>span{color:#a9bdca;font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
/* Compatibilidad con Recuperar/Cambiar contraseña, que comparten esta hoja. */
.auth-shell>.auth-brand{display:flex;min-height:590px;padding:42px;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,rgba(13,39,57,.87),rgba(7,22,34,.58));border-right:1px solid rgba(88,154,188,.23)}
.auth-shell>.auth-brand .auth-brand-mark{display:none}.auth-shell>.auth-brand div strong{display:block;font-size:38px;letter-spacing:.14em}.auth-shell>.auth-brand div span{display:block;margin-top:9px;color:#9fb5c4;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.auth-hero-copy{position:relative;z-index:2;margin:42px 0}.auth-kicker{display:inline-flex;padding:6px 10px;border:1px solid rgba(79,220,255,.35);border-radius:999px;background:rgba(32,161,201,.1);color:#73e7ff;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.auth-hero-copy h2{max-width:470px;margin:18px 0 13px;font-size:clamp(34px,4.3vw,54px);line-height:1.02;letter-spacing:-.045em}.auth-hero-copy p{max-width:430px;margin:0;color:#9bb1c1;font-size:14px;line-height:1.65}
.auth-route{position:relative;z-index:2;display:flex;align-items:center;gap:12px;color:#70899b;font-size:9px;font-weight:900;letter-spacing:.13em}.auth-route span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#31566c)}.auth-route span:last-child{background:linear-gradient(90deg,#31566c,transparent)}

.auth-card{align-self:center;margin:28px;padding:33px;border:1px solid rgba(71,120,148,.36);border-radius:21px;background:linear-gradient(145deg,rgba(15,32,48,.98),rgba(8,21,33,.98));box-shadow:0 23px 60px rgba(0,0,0,.32)}
.auth-security-pill{display:inline-flex;align-items:center;gap:7px;margin-bottom:19px;color:#79dca9;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.auth-security-pill i{width:7px;height:7px;border-radius:50%;background:#47d995;box-shadow:0 0 12px #47d995}
.auth-card h1{margin:0 0 8px;font-size:29px;line-height:1.12}.auth-intro{margin:0 0 24px;color:var(--muted);font-size:13px;line-height:1.55}
.auth-field{display:block;margin:0 0 16px}.auth-field>span{display:block;margin:0 0 7px;color:#c7d6e1;font-size:11px;font-weight:800;letter-spacing:.035em}
.auth-field input{width:100%;height:49px;padding:0 14px;border:1px solid #304b61;border-radius:11px;background:#06131f;color:#fff;font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}
.auth-field input:focus{border-color:var(--cyan);background:#081827;box-shadow:0 0 0 3px rgba(83,221,255,.12)}
.auth-password-wrap{position:relative}.auth-password-wrap input{padding-right:58px}.auth-eye{position:absolute;right:6px;top:6px;min-width:45px;height:37px;padding:0 7px;border:0;border-radius:8px;background:transparent;color:#9db2c3;cursor:pointer;font-size:11px;font-weight:800}.auth-eye:hover{background:#152b3e;color:#fff}
.auth-actions{display:grid;gap:10px}.auth-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:12px 16px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;font:inherit;font-weight:850;cursor:pointer;box-shadow:0 12px 25px rgba(255,106,0,.18);transition:transform .12s,filter .12s}.auth-button:hover{filter:brightness(1.08);transform:translateY(-1px)}.auth-button:active{transform:translateY(0)}.auth-button.secondary{border:1px solid #35516a;background:#102438;box-shadow:none;color:#dfeaf2;text-decoration:none}
.auth-links{display:flex;justify-content:center;gap:10px;margin-top:18px;color:var(--muted);font-size:13px}.auth-links a{color:#74def7;text-decoration:none}.auth-links a:hover{text-decoration:underline}
.auth-alert{margin:0 0 18px;padding:13px 14px;border:1px solid;border-radius:11px;font-size:13px;line-height:1.45}.auth-alert.error{border-color:rgba(255,110,122,.45);background:rgba(154,35,52,.22);color:#ffc0c6}.auth-alert.ok{border-color:rgba(70,217,149,.4);background:rgba(26,117,79,.22);color:#a6f0cd}.auth-alert.info{border-color:rgba(83,221,255,.35);background:rgba(29,104,129,.2);color:#b7edfa}
.auth-policy{margin:4px 0 18px;padding:13px 14px;border:1px solid #27445a;border-radius:11px;background:#0a1826;color:#91a9ba;font-size:12px;line-height:1.55}.auth-policy strong{color:#dce9f2}.auth-footer{margin:15px 0 0;text-align:center;color:#647c90;font-size:10px;line-height:1.5}.auth-code{display:inline-block;padding:2px 7px;border-radius:6px;background:#07111d;color:#ffad72;font-family:Consolas,monospace}

@media(max-width:820px){body{overflow:auto}.auth-page{padding:18px 12px}.auth-shell{display:block;width:min(100%,500px);min-height:0}.auth-hero{min-height:190px;padding:27px;border-right:0;border-bottom:1px solid rgba(88,154,188,.23)}.auth-shell>.auth-brand{min-height:145px;padding:26px;border-right:0;border-bottom:1px solid rgba(88,154,188,.23)}.auth-real-logo{max-width:230px;max-height:75px}.auth-wordmark{font-size:31px}.auth-hero-copy{margin:27px 0 4px}.auth-hero-copy h2{margin:10px 0 0;font-size:28px}.auth-hero-copy p,.auth-route{display:none}.auth-card{margin:14px;padding:27px 23px}}
@media(max-width:420px){.auth-hero{min-height:162px}.auth-hero-copy h2{font-size:24px}.auth-card h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Acceso R8: fotografía de flota y panel de producto actual. */
.auth-login-page{min-height:100vh;background:#06101a}
.auth-login-page .auth-road-scene{background:
  linear-gradient(90deg,rgba(2,9,16,.86) 0%,rgba(2,9,16,.68) 34%,rgba(2,9,16,.16) 68%,rgba(2,9,16,.35) 100%),
  linear-gradient(0deg,rgba(2,8,14,.72),transparent 48%),
  url('avanzx_login_fleet.png') center center/cover no-repeat}
.auth-login-page .auth-road-scene:before{content:"";position:absolute;inset:0;background:radial-gradient(900px 560px at 22% 44%,rgba(30,139,188,.13),transparent 68%),linear-gradient(115deg,rgba(255,255,255,.025),transparent 28%);background-size:auto}
.auth-login-page .auth-photo-glow{position:absolute;right:8%;bottom:8%;width:38vw;height:28vw;border-radius:50%;background:radial-gradient(circle,rgba(79,195,238,.1),transparent 68%);filter:blur(24px);animation:authAmbient 9s ease-in-out infinite alternate}
@keyframes authAmbient{from{opacity:.38;transform:scale(.94)}to{opacity:.78;transform:scale(1.05)}}
.auth-login-page .auth-page{place-items:center;padding:38px}
.auth-login-page .auth-shell{display:grid;grid-template-columns:minmax(380px,430px) minmax(420px,1fr);align-items:stretch;width:min(100%,1220px);min-height:650px;border:0;border-radius:30px;overflow:visible;background:transparent;box-shadow:none;backdrop-filter:none}
.auth-login-page .auth-card{grid-column:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center;margin:0;padding:46px 44px;border:1px solid rgba(151,197,224,.28);border-radius:26px;background:linear-gradient(145deg,rgba(9,24,37,.92),rgba(5,15,25,.82));box-shadow:0 38px 90px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.06);backdrop-filter:blur(22px) saturate(1.18)}
.auth-login-page .auth-brand{display:flex;align-items:flex-start;margin:0 0 30px;padding:0 0 25px;border-bottom:1px solid rgba(132,181,209,.2)}
.auth-login-page .auth-real-logo{max-width:320px;max-height:122px;filter:drop-shadow(0 12px 28px rgba(0,0,0,.4))}
.auth-login-page .auth-wordmark{font-size:42px}.auth-login-page .auth-brand>span{font-size:11px;color:#b9ccd8}
.auth-login-page .auth-security-pill{margin-bottom:17px;padding:6px 9px;border:1px solid rgba(73,210,153,.25);border-radius:999px;background:rgba(36,136,94,.12);width:max-content}
.auth-login-page .auth-card h1{font-size:34px;letter-spacing:-.025em}.auth-login-page .auth-intro{font-size:14px}
.auth-login-page .auth-field>span{font-size:12px}.auth-login-page .auth-field input{height:53px;border-color:rgba(105,151,180,.5);background:rgba(2,13,22,.72)}
.auth-login-page .auth-button{min-height:52px;border-radius:12px;box-shadow:0 13px 30px rgba(255,105,0,.22)}.auth-login-page .auth-button.secondary{background:rgba(21,48,68,.72);box-shadow:none}
.auth-login-page .auth-footer{font-size:11px;color:#7891a3}
.auth-login-page .auth-hero{grid-column:2;display:flex;flex-direction:column;justify-content:flex-end;min-height:650px;padding:46px 34px 32px 58px;border:0;background:transparent;overflow:visible}
.auth-login-page .auth-hero:after{display:none}.auth-login-page .auth-hero-copy{margin:0 0 31px;max-width:600px;padding:24px 27px;border-left:3px solid rgba(74,213,255,.72);border-radius:0 16px 16px 0;background:linear-gradient(90deg,rgba(3,13,22,.72),rgba(3,13,22,.16));backdrop-filter:blur(7px)}
.auth-login-page .auth-kicker{font-size:10px}.auth-login-page .auth-hero-copy h2{margin:17px 0 13px;font-size:clamp(38px,4.5vw,62px);line-height:.98;color:#fff;text-shadow:0 5px 28px rgba(0,0,0,.8)}.auth-login-page .auth-hero-copy p{max-width:520px;color:#d0dde5;font-size:14px;text-shadow:0 2px 12px rgba(0,0,0,.9)}
.auth-login-page .auth-route{color:#b5c6d1}.auth-login-page .auth-route span{background:linear-gradient(90deg,transparent,rgba(142,189,213,.62))}.auth-login-page .auth-route span:last-child{background:linear-gradient(90deg,rgba(142,189,213,.62),transparent)}
@media(max-width:900px){.auth-login-page .auth-page{padding:20px}.auth-login-page .auth-shell{display:block;width:min(100%,480px);min-height:0}.auth-login-page .auth-card{padding:35px 30px}.auth-login-page .auth-hero{display:none}.auth-login-page .auth-real-logo{max-width:280px;max-height:95px}}
@media(max-width:480px){.auth-login-page .auth-page{padding:12px}.auth-login-page .auth-card{padding:28px 22px;border-radius:21px}.auth-login-page .auth-brand{margin-bottom:24px}.auth-login-page .auth-real-logo{max-width:240px;max-height:82px}.auth-login-page .auth-card h1{font-size:29px}}
