/* Aviem Portal Login
   Design tokens carried over from the aviem.com rebuild mockups so the sign-in
   screen matches where the site is going. No amber here: that color belongs to
   the activation and crisis path, which has nothing to do with signing in. */

:root{
  --navy-deep:#081b33;
  --navy:#0D2545;
  --line:rgba(255,255,255,.14);
  --line-2:rgba(255,255,255,.24);
  --surface:rgba(255,255,255,.045);
  --text:#eaf1fb;
  --muted:#9db2d2;
  --muted-2:#7f97b8;
  --accent:#3d7bff;
  --bad:#ff8f8f;
  --ok:#7fe0b0;
}

*{box-sizing:border-box;}

body.aviem-login{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(1100px 620px at 78% 12%, rgba(61,123,255,.30), transparent 62%),
    linear-gradient(160deg,#103055 0%, #0b2140 55%, #081a32 100%);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 20px;
}

.grid{
  position:fixed;inset:0;pointer-events:none;opacity:.5;z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(120% 100% at 62% 32%,#000 40%,transparent 85%);
          mask-image:radial-gradient(120% 100% at 62% 32%,#000 40%,transparent 85%);
}

.shell{position:relative;z-index:2;width:100%;max-width:452px;}

.brand{display:block;margin:0 auto 34px;width:210px;}
.brand img{width:100%;height:auto;display:block;}

.card{
  border:1px solid var(--line);
  background:rgba(8,27,51,.62);
  backdrop-filter:blur(6px);
  border-radius:12px;
  padding:38px 36px 34px;
  box-shadow:0 24px 60px rgba(0,0,0,.34);
}

.kicker{
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted-2);font-weight:700;
}

.card h1{
  font-size:25px;font-weight:800;letter-spacing:-.01em;
  margin:12px 0 22px;line-height:1.2;
}

.lede{font-size:14.5px;color:var(--muted);margin:0 0 22px;line-height:1.6;}

label{
  display:block;font-size:12.5px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted);margin:0 0 8px;
}

input[type=text],input[type=password],input[type=email]{
  width:100%;
  padding:13px 14px;
  margin:0 0 20px;
  font-size:15.5px;
  color:#fff;
  background:var(--surface);
  border:1.5px solid var(--line);
  border-radius:6px;
  font-family:inherit;
  transition:border-color .15s, background .15s;
}
input[type=text]:focus,input[type=password]:focus,input[type=email]:focus{
  outline:none;
  border-color:var(--accent);
  background:rgba(255,255,255,.07);
}
input::placeholder{color:var(--muted-2);}

.row{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;margin:0 0 24px;flex-wrap:wrap;
}

.check{
  display:flex;align-items:center;gap:8px;margin:0;
  font-size:13px;font-weight:500;letter-spacing:0;
  text-transform:none;color:var(--muted);cursor:pointer;
}
.check input{margin:0;accent-color:var(--accent);width:15px;height:15px;}

.link{font-size:13px;font-weight:600;color:#8fb4ff;text-decoration:none;}
.link:hover{text-decoration:underline;}
.link.back{display:inline-block;margin-top:18px;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;
  border:1.5px solid var(--line-2);
  border-radius:6px;
  padding:14px 24px;
  font-size:15px;font-weight:700;font-family:inherit;
  background:transparent;color:#fff;cursor:pointer;
  transition:all .15s;
}
.btn:hover{border-color:#fff;}
.btn.solid{background:#fff;color:var(--navy);border-color:#fff;}
.btn.solid:hover{background:#e7eefb;}
.btn.ghost{margin-top:6px;}

.msg{
  font-size:14px;line-height:1.55;
  border-radius:6px;padding:13px 15px;margin:0 0 22px;
  border:1px solid var(--line);
}
.msg.bad{border-color:rgba(255,143,143,.42);background:rgba(255,143,143,.10);color:var(--bad);}
.msg.ok{border-color:rgba(127,224,176,.40);background:rgba(127,224,176,.09);color:var(--ok);}

.note{
  font-size:13px;color:var(--muted-2);line-height:1.6;
  margin:22px 0 0;padding-top:20px;border-top:1px solid var(--line);
}

.foot{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  margin:24px 2px 0;font-size:12.5px;color:var(--muted-2);flex-wrap:wrap;
}
.foot a{color:var(--muted-2);text-decoration:none;}
.foot a:hover{color:var(--text);}

@media(max-width:520px){
  .card{padding:30px 24px 28px;}
  .card h1{font-size:22px;}
  .brand{width:180px;margin-bottom:26px;}
}
