/* App Portal — login page styles
 *
 * Centred card on the page background.  Uses semantic --surface/--border
 * tokens so the card looks correct in both light and dark themes.
 */

.login-body {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 1rem;
  padding-top: calc(var(--header-height) + 1rem);
}

.login-card {
  max-width: 420px;
  width: 100%;
  padding: 2rem;
  text-align: center;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  box-shadow: var(--shadow);
}

.login-logo {
  display: block;
  height: 64px;
  width: auto;
  margin: 0 auto 1rem;
}
/* On the dark surface the orange wordmark loses contrast — invert to white,
   per /check-branding "white logo on charcoal/dark backgrounds". Light mode
   keeps the original orange logo. */
[data-bs-theme="dark"] .login-logo {
  filter: brightness(0) invert(1);
}

.login-card h1 {
  color: var(--herotel-orange);
  margin-bottom: 0.5rem;
  font-weight: 700;
  font-size: 1.5rem;
}
.login-card .lead {
  color: var(--text-2);
  margin-bottom: 1.5rem;
}

.login-card .btn-microsoft {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
  background: var(--herotel-orange);
  border: 1px solid var(--herotel-orange);
  color: #fff;
  font-weight: 600;
  padding: 0.6rem 1.25rem;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.login-card .btn-microsoft:hover {
  background: #e64800;
  border-color: #e64800;
  color: #fff;
}

.login-card .btn-microsoft .btn-icon-loading { display: none; }
.login-card .btn-microsoft.is-loading .btn-icon-default { display: none; }
.login-card .btn-microsoft.is-loading .btn-icon-loading { display: inline-block; }
.login-card .btn-microsoft.is-loading {
  opacity: 0.9;
  pointer-events: none;
  cursor: progress;
}
