/* Self-contained login layout; no utility framework required. */
.login-page {
  background: #f1f5f2;
  background-image: radial-gradient(ellipse at 15% 15%, #e2ede5 0, transparent 50%), radial-gradient(ellipse at 90% 90%, #e4eee9 0, transparent 45%);
  color: #193c35;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.login-page .site-header { display: none; }
.login-page main.shell {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 48px 24px;
}
.login-layout {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  max-width: 480px;
  margin: 0;
  overflow: hidden;
  border: 1px solid #dce6df;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 70px -24px #244c3630, 0 2px 8px #244c3605;
}
.login-brand { display: inline-flex; align-items: center; gap: 12px; color: #193c35; font-size: 34px; font-weight: 700; letter-spacing: -1px; }
.login-brand:hover { color: #147c67; }
.login-brand-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: #147c67; color: #fff; font-size: 29px; }
.login-panel { align-self: center; padding: 40px; min-width: 0; }
.login-access { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 0 0 28px; color: #55766a; font-size: 10px; font-weight: 650; letter-spacing: 1.4px; }
.login-access svg { width: 15px; height: 15px; }
.login-card-heading { margin-bottom: 32px; text-align: center; }
.login-panel h1 { margin: 0 0 10px; font-size: 34px; line-height: 1.2; letter-spacing: -1.2px; font-weight: 650; }
.login-card-heading p { margin: 0; color: #73837c; font-size: 14px; line-height: 1.7; }
.login-panel form { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.login-field { margin-bottom: 22px; }
.login-field label { display: block; margin-bottom: 8px; color: #304c41; font-size: 13px; font-weight: 600; line-height: 20px; }
.login-field input { width: 100%; height: 50px; padding: 0 14px; background: #fbfcfb; border: 1px solid #d8e2dc; border-radius: 9px; color: #193c35; font-size: 16px; box-shadow: 0 1px 2px #183c3503; transition: border-color .15s, box-shadow .15s; }
.login-field input::placeholder { color: #88978e; font-size: 13px; }
.login-field input:hover { border-color: #a8c0b4; }
.login-field input:focus { outline: none; background: #fff; border-color: #228672; box-shadow: 0 0 0 3px #22867215; }
.login-field input[aria-invalid="true"] { border-color: #be6857; }
.login-password { position: relative; }
.login-password input { padding-right: 66px; }
.password-toggle { position: absolute; top: 3px; right: 4px; min-width: 52px; min-height: 44px; padding: 8px; border: 0; border-radius: 6px; color: #32705e; background: transparent; font-size: 12px; font-weight: 600; cursor: pointer; }
.password-toggle[hidden] { display: none; }
.password-toggle:hover { background: #edf4ee; }
.login-panel .button { display: flex; align-items: center; justify-content: center; gap: 14px; width: 100%; min-height: 50px; margin: 28px 0 0; padding: 12px 20px; border: 1px solid #147c67; border-radius: 9px; background: #147c67; box-shadow: 0 3px 5px #147c6718; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .15s, box-shadow .15s; }
.login-panel .button span { font-size: 20px; font-weight: 400; line-height: 1; }
.login-panel .button:hover { background: #106653; border-color: #106653; box-shadow: 0 4px 12px #147c6728; }
.login-panel .button:active { background: #0d5545; }
.login-page :focus-visible { outline-color: #228672; }
.login-help { margin: 28px 0 0; padding-top: 24px; border-top: 1px solid #edf0ed; color: #65776d; font-size: 12px; line-height: 1.8; text-align: center; }
.login-error { margin: 0 0 20px; padding: 12px 14px; border: 1px solid #efd2cb; border-radius: 8px; background: #fff5f2; color: #963d2c; font-size: 13px; }
.login-footer { display: flex; justify-content: center; gap: 12px; margin: 24px 0 0; color: #65776d; font-size: 11px; text-align: center; }
.login-footer span { color: #b2bfb6; }
@media (max-width: 700px) {
  .login-page main.shell { padding: 28px 20px; }
  .login-layout { grid-template-columns: 1fr; max-width: 460px; border-radius: 20px; }
  .login-panel { padding: 32px 28px; }
  .login-access { margin-bottom: 18px; }
  .login-card-heading { margin-bottom: 26px; }
  .login-panel h1 { font-size: 29px; }
  .login-help { margin-top: 24px; padding-top: 20px; }
  .login-footer { font-size: 10px; gap: 8px; }
}
@media (max-width: 380px) {
  .login-page main.shell { padding: 16px 12px; }
  .login-panel { padding-inline: 22px; }
  .login-panel form { padding: 0; }
  .login-footer { display: block; }
  .login-footer span { margin-inline: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .login-field input, .login-panel .button { transition: none; }
}
