*{box-sizing:border-box}

:root{
  --bg:#343434;
  --card:#12aea8;
  --text:#151515;
  --white:#ffffff;
}

html,body{
  margin:0;
  min-height:100%;
  font-family:Arial,Helvetica,sans-serif;
}

body{
  background:var(--bg);
  color:var(--text);
}

.page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
}

.login-card{
  width:min(420px,100%);
  background:var(--card);
  border-radius:20px;
  padding:24px;
}

.brand{
  text-align:center;
  font-weight:800;
  font-size:30px;
  line-height:1.1;
  letter-spacing:.2px;
  color:#fff;
}

.subtitle{
  text-align:center;
  margin:5px 0 20px;
  color:#e9ffff;
  font-size:13px;
}

input[type="text"],
input[type="password"]{
  width:100%;
  height:50px;
  border:0;
  border-radius:16px;
  padding:0 16px;
  font-size:16px;
  margin-bottom:8px;
  outline:none;
}

input:focus{
  box-shadow:0 0 0 3px rgba(255,255,255,.42);
}

.login-options{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:8px 8px 12px;
  font-size:13px;
}

.remember{
  display:flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
}

.link-btn{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  font:inherit;
  cursor:pointer;
  text-decoration:underline;
}

.primary-btn,
.secondary-btn{
  width:100%;
  min-height:48px;
  border:0;
  border-radius:16px;
  background:#fff;
  font-size:17px;
  font-weight:700;
  cursor:pointer;
}

.primary-btn:hover,
.secondary-btn:hover{
  filter:brightness(.96);
}

.status-note{
  text-align:center;
  color:#064844;
  margin:12px 0 0;
  font-size:12px;
}

.forgot-panel{
  text-align:center;
}

.forgot-panel h2{
  margin:0 0 8px;
  color:#fff;
}

.forgot-panel p{
  margin:6px 0 14px;
}

.qr-placeholder{
  width:150px;
  height:150px;
  margin:14px auto;
  display:grid;
  place-items:center;
  background:#fff;
  border:2px dashed #555;
  font-weight:700;
  color:#555;
}

.small-note{
  font-size:12px;
}

.hidden{
  display:none;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

@media (max-width:520px){
  .page{
    padding:16px;
  }

  .login-card{
    padding:18px;
    border-radius:18px;
  }

  .brand{
    font-size:28px;
  }

  .subtitle{
    font-size:12px;
  }

  .login-options{
    align-items:flex-start;
  }
}
