:root {
  --login-ink: #17324a;
  --login-muted: #64748b;
  --login-blue: #1769aa;
  --login-blue-dark: #0f527f;
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body.login-page {
  margin: 0; min-height: 100vh; min-height: 100dvh; color: var(--login-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: url('../Images/coreLogo1.png') center / cover fixed no-repeat; position: relative;
}
body.login-page::before {
  content: ""; position: fixed; inset: 0; z-index: 0; background: rgba(255,255,255,.76);
  backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
}
.login-shell {
  position: relative; z-index: 1; min-height: 100vh; min-height: 100dvh; display: grid;
  place-items: center; padding: 32px 20px;
}
.login-card-wrap { width: min(100%, 430px); height: 462px; perspective: 1000px; }
#card { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .65s cubic-bezier(.2,.75,.25,1); }
#card figure {
  position: absolute; inset: 0; display: block; margin: 0; overflow: hidden;
  border: 1px solid rgba(255,255,255,.72); border-radius: 22px; background: rgba(255,255,255,.92);
  box-shadow: 0 24px 70px rgba(15,52,78,.18), 0 4px 14px rgba(15,52,78,.08);
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
}
#card .back { transform: rotateY(180deg); }
#card.flipped { transform: rotateY(180deg); }
#card.spinout { transform: rotateY(1800deg); }
.login-card {
  width: min(100%, 430px); padding: 42px 40px 38px; border: 1px solid rgba(255,255,255,.72);
  border-radius: 22px; background: rgba(255,255,255,.92);
  box-shadow: 0 24px 70px rgba(15,52,78,.18), 0 4px 14px rgba(15,52,78,.08);
}
.login-card-inner { padding: 42px 40px 38px; }
.login-eyebrow { margin: 0 0 9px; color: var(--login-blue); font-size: .75rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.login-title { margin: 0; color: var(--login-ink); font-size: clamp(1.75rem,5vw,2.15rem); font-weight: 700; letter-spacing: -.035em; }
.login-subtitle { margin: 8px 0 28px; color: var(--login-muted); font-size: .95rem; }
.login-field { margin-bottom: 18px; }
.login-field label { display: block; margin-bottom: 7px; color: #334155; font-size: .86rem; font-weight: 650; }
.login-page .form-control {
  width: 100%; height: 48px; padding: 0 14px; border: 1px solid #cbd5e1; border-radius: 10px;
  background: rgba(255,255,255,.88); color: #172b3a; font: inherit; box-shadow: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.login-page .form-control:focus { outline: none; border-color: var(--login-blue); background: #fff; box-shadow: 0 0 0 4px rgba(23,105,170,.13); }
.login-button {
  width: 100%; min-height: 49px; margin-top: 6px; border: 0; border-radius: 10px;
  background: linear-gradient(135deg,var(--login-blue),var(--login-blue-dark)); color: #fff;
  font: inherit; font-weight: 700; cursor: pointer; box-shadow: 0 8px 20px rgba(23,105,170,.22);
  transition: transform .18s, box-shadow .18s, filter .18s;
}
.login-button:hover { filter: brightness(1.05); box-shadow: 0 10px 24px rgba(23,105,170,.3); }
.login-button:active { transform: translateY(1px); }
.login-button:focus-visible { outline: 3px solid rgba(23,105,170,.28); outline-offset: 3px; }
#capslockdiv { margin: 0 0 16px; padding: 9px 12px; border: 1px solid #f1c76b; border-radius: 8px; color: #854d0e; background: #fff8df; font-size: .86rem; text-align: center; }
.login-page .error, .login-page .success, .login-page .warning, .login-page .info {
  width: 100%; margin: 0 0 18px; padding: 12px 14px; border: 1px solid; border-radius: 9px;
  background-image: none; font-size: .9rem; text-align: left;
}
.login-page .error { color: #991b1b; border-color: #fecaca; background-color: #fef2f2; }
.login-page .success { color: #166534; border-color: #bbf7d0; background-color: #f0fdf4; }
.login-page .warning { color: #854d0e; border-color: #fde68a; background-color: #fffbeb; }
.login-page .info { color: #075985; border-color: #bae6fd; background-color: #f0f9ff; }
@media (max-width: 520px) {
  body.login-page { background-attachment: scroll; }
  body.login-page::before { background: rgba(255,255,255,.72); }
  .login-shell { padding: 20px 14px; }
  .login-card-wrap { height: 440px; }
  .login-card, .login-card-inner { padding: 34px 24px 30px; }
  #card figure, .login-card { border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) { #card, .login-button { transition: none; } }
