*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:#333;
  background:linear-gradient(135deg,#f5f5f5 0%,#e8e8e8 100%);
}
a{color:#337ab7;text-decoration:none}
a:hover{text-decoration:underline}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{
  width:min(430px,100%);
  padding:36px;
  border:1px solid #d8d8d8;
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 60px rgba(0,0,0,.14);
  text-align:center;
}
.login-seal{width:92px;height:92px;object-fit:contain}
.login-eyebrow{
  margin:18px 0 6px;
  color:#337ab7;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
h1{margin:0;color:#555;font-size:clamp(1.7rem,5vw,2.2rem);font-weight:400}
.login-copy{margin:10px 0 26px;color:#777;line-height:1.5}
.login-form{display:grid;gap:16px;text-align:left}
.login-form label{display:grid;gap:7px;color:#555;font-weight:700}
.login-form input{
  width:100%;
  padding:12px 13px;
  border:1px solid #c7c7c7;
  border-radius:4px;
  font:inherit;
}
.login-form input:focus{outline:3px solid rgba(51,122,183,.15);border-color:#337ab7}
.login-form button{
  margin-top:4px;
  padding:12px 16px;
  border:1px solid #2e6da4;
  border-radius:4px;
  background:#337ab7;
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.login-form button:hover{background:#286090}
.login-form button:disabled{opacity:.65;cursor:wait}
.login-message{min-height:1.25em;margin:0;color:#d9534f;font-size:.92rem;text-align:center}
code{font-family:Consolas,monospace}

.login-secondary-link{margin:4px 0 0;text-align:center;color:#777;font-size:.9rem;font-weight:400}
.login-secondary-link a{font-weight:700}
.register-card{width:min(560px,100%)}
.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.success-message{color:#3c763d!important}
@media(max-width:620px){.register-grid{grid-template-columns:1fr}}


.register-date-with-today { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; align-items:center; }
.register-date-with-today input { min-width:0; width:100%; }
.register-today-button {
  min-height:40px; padding:8px 11px; border:1px solid #b9cfe3; border-radius:4px;
  background:#f4f9fd; color:#337ab7; font:inherit; font-size:11px; font-weight:700; cursor:pointer;
}
.register-today-button:hover { border-color:#337ab7; background:#eaf4fb; }
@media (max-width:520px) {
  .register-date-with-today { grid-template-columns:1fr; }
  .register-today-button { width:100%; }
}
