
:root{
  --blue-950:#020d25;
  --blue-900:#041b43;
  --blue-850:#05275f;
  --blue-800:#063886;
  --blue-700:#075bc8;
  --blue-600:#0a73f0;
  --blue-500:#238aff;
  --white:#ffffff;
  --muted:#a8c1e8;
  --border:rgba(36,144,255,.58);
  --card:rgba(1,24,61,.79);
  --input:rgba(2,30,73,.9);
}

*{box-sizing:border-box}

html,body{
  width:100%;
  min-height:100%;
  margin:0;
}

body.login-page{
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 50% 38%,rgba(17,101,226,.42),transparent 34%),
    radial-gradient(circle at 88% 60%,rgba(5,91,217,.36),transparent 30%),
    linear-gradient(135deg,var(--blue-950) 0%,var(--blue-900) 34%,#07388b 68%,#042963 100%);
  color:var(--white);
  font-family:Arial,Helvetica,sans-serif;
}

.login-background{
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}

.login-background::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.15),transparent 30%,transparent 70%,rgba(0,0,0,.12)),
    radial-gradient(circle at center,transparent 0%,rgba(1,9,30,.38) 100%);
}

.login-glow{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:.42;
}

.glow-one{
  width:420px;
  height:420px;
  background:#0e65de;
  left:25%;
  top:15%;
}

.glow-two{
  width:500px;
  height:500px;
  background:#0066ff;
  right:-140px;
  bottom:-130px;
}

.login-lines{
  position:absolute;
  right:-10%;
  bottom:-15%;
  width:70%;
  height:80%;
  transform:rotate(-5deg);
  opacity:.18;
  background:
    repeating-linear-gradient(
      154deg,
      transparent 0,
      transparent 28px,
      rgba(72,156,255,.9) 29px,
      transparent 31px
    );
  mask-image:linear-gradient(to left,#000,transparent 85%);
}

.login-watermark{
  position:absolute;
  left:3%;
  top:43%;
  display:flex;
  flex-direction:column;
  align-items:center;
  color:rgba(30,122,235,.20);
}

.watermark-logo{
  width:160px;
  height:145px;
  border:3px solid rgba(32,126,240,.25);
  border-radius:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:58px;
  font-weight:900;
  margin-bottom:18px;
}

.login-watermark strong{font-size:24px}
.login-watermark span{font-size:13px;letter-spacing:5px;margin-top:8px}

.truck-watermark{
  position:absolute;
  right:2%;
  bottom:9%;
  width:360px;
  height:220px;
  opacity:.13;
  filter:drop-shadow(0 0 18px rgba(37,145,255,.5));
}

.truck-box{
  position:absolute;
  left:0;
  top:46px;
  width:215px;
  height:116px;
  border:3px solid #48a0ff;
  border-radius:4px;
}

.truck-cab{
  position:absolute;
  right:0;
  top:67px;
  width:135px;
  height:95px;
  border:3px solid #48a0ff;
  border-radius:30px 20px 8px 8px;
}

.truck-cab::before{
  content:"";
  position:absolute;
  left:24px;
  top:13px;
  width:70px;
  height:34px;
  border:2px solid #48a0ff;
  border-radius:12px 12px 4px 4px;
}

.truck-wheel{
  position:absolute;
  bottom:22px;
  width:44px;
  height:44px;
  border:5px solid #48a0ff;
  border-radius:50%;
}

.wheel-one{left:52px}
.wheel-two{right:48px}

.login-shell{
  position:relative;
  z-index:2;
  width:min(680px,calc(100% - 32px));
  min-height:100vh;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:38px 0 28px;
}

.login-branding{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-bottom:34px;
}

.login-brand-logo{
  width:82px;
  height:82px;
  flex:0 0 82px;
  border-radius:17px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg,#fff,#d9e6f8);
  color:#0c56b4;
  font-size:31px;
  font-weight:900;
  box-shadow:0 12px 30px rgba(0,0,0,.25);
}

.login-brand-text strong{
  display:block;
  font-size:31px;
  line-height:1.05;
  white-space:nowrap;
}

.login-brand-text span{
  display:block;
  color:#268dff;
  font-size:16px;
  font-weight:800;
  letter-spacing:7px;
  margin-top:11px;
}

.login-intro{
  text-align:center;
  margin-bottom:20px;
}

.login-intro h1{
  margin:0;
  font-size:25px;
  font-weight:500;
}

.login-divider{
  width:76px;
  height:3px;
  margin:18px auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,var(--blue-500),transparent);
}

.login-card{
  width:100%;
  padding:34px 36px 36px;
  border:1px solid var(--border);
  border-radius:17px;
  background:linear-gradient(160deg,rgba(1,31,77,.88),rgba(1,20,52,.83));
  box-shadow:
    0 24px 65px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(12px);
}

.login-error{
  padding:12px 14px;
  margin-bottom:20px;
  border:1px solid rgba(255,103,103,.55);
  border-radius:10px;
  background:rgba(133,18,32,.36);
  color:#ffd8dd;
  font-weight:700;
  font-size:14px;
}

.login-field{margin-bottom:26px}

.login-field label{
  display:block;
  margin-bottom:10px;
  color:#fff;
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
}

.login-input-wrap{
  position:relative;
  display:flex;
  align-items:center;
}

.login-input-wrap input{
  width:100%;
  height:57px;
  padding:0 52px 0 53px;
  border:1px solid rgba(47,144,255,.74);
  border-radius:9px;
  outline:none;
  background:var(--input);
  color:#fff;
  font-size:16px;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}

.login-input-wrap input::placeholder{color:#7895bf}

.login-input-wrap input:focus{
  border-color:#4da2ff;
  background:rgba(3,38,89,.98);
  box-shadow:0 0 0 3px rgba(27,128,255,.18);
}

.login-input-icon{
  position:absolute;
  left:18px;
  z-index:1;
  color:#1680ff;
  font-size:18px;
  line-height:1;
}

.lock-icon{font-size:16px}

.password-toggle{
  position:absolute;
  right:13px;
  width:38px;
  height:38px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#1680ff;
  font-size:22px;
  cursor:pointer;
}

.password-toggle:hover{background:rgba(31,132,255,.12)}

.login-submit{
  width:100%;
  height:58px;
  margin-top:3px;
  border:0;
  border-radius:9px;
  background:linear-gradient(90deg,#086be6,#075dd5);
  color:#fff;
  font-size:17px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 12px 26px rgba(0,84,213,.28);
  transition:transform .15s ease,filter .15s ease;
}

.login-submit:hover{
  transform:translateY(-1px);
  filter:brightness(1.08);
}

.login-submit span{font-size:21px;margin-right:8px}

.login-footer{
  margin-top:25px;
  color:#d9e7ff;
  font-size:13px;
  text-align:center;
}

@media(max-width:800px){
  .login-watermark,.truck-watermark{display:none}
  .login-shell{justify-content:flex-start;padding-top:44px}
  .login-branding{margin-bottom:28px}
  .login-brand-text strong{font-size:24px;white-space:normal}
  .login-brand-text span{font-size:12px;letter-spacing:4px}
  .login-brand-logo{width:68px;height:68px;flex-basis:68px;font-size:26px}
}

@media(max-width:540px){
  .login-shell{width:min(100% - 22px,680px);padding-top:28px}
  .login-branding{gap:12px;align-items:flex-start}
  .login-brand-text strong{font-size:20px}
  .login-brand-text span{font-size:10px;letter-spacing:3px;margin-top:7px}
  .login-brand-logo{width:58px;height:58px;flex-basis:58px;border-radius:13px;font-size:22px}
  .login-intro h1{font-size:21px}
  .login-card{padding:24px 18px}
  .login-input-wrap input{height:54px;font-size:15px}
  .login-footer{font-size:11px}
}
