/* Self-contained: this page does NOT load the app theme.
   Default = dark. A saved 'light' preference sets [data-bs-theme="light"]. */
:root {
  --login-bg: #0f172a;
  --login-surface: #111827;
  --login-surface-2: #1f2937;
  --login-border: #334155;
  --login-text: #e5e7eb;
  --login-primary: #87a3f8;
  --login-primary-hover: #9bb2fa;
  --login-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}
[data-bs-theme="light"] {
  --login-bg: #f0f2f5;
  --login-surface: #fff;
  --login-surface-2: #fff;
  --login-border: #ced4da;
  --login-text: #212529;
  --login-primary: #87a3f8;
  --login-primary-hover: #9bb2fa;
  --login-shadow: 0 2px 12px rgba(0, 0, 0, .1);
}

* { box-sizing: border-box; }
body {
  font-family: sans-serif;
  background: var(--login-bg);
  color: var(--login-text);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  margin: 0;
}
.card {
  background: var(--login-surface);
  color: var(--login-text);
  border: 1px solid var(--login-border);
  border-radius: 8px;
  box-shadow: var(--login-shadow);
  padding: 2rem;
  width: 100%;
  max-width: 360px;
}
h1 { margin: 0 0 1.5rem; font-size: 1.4rem; text-align: center; }
label { display: block; margin-bottom: .25rem; font-size: .875rem; font-weight: 500; }
input[type=text], input[type=password], input[type=email] {
  width: 100%;
  padding: .5rem .75rem;
  background: var(--login-surface-2);
  color: var(--login-text);
  border: 1px solid var(--login-border);
  border-radius: 4px;
  font-size: 1rem;
  margin-bottom: 1rem;
}
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus {
  outline: none;
  border-color: var(--login-primary);
  box-shadow: 0 0 0 .2rem rgba(135, 163, 248, .3);
}
button {
  width: 100%;
  padding: .6rem;
  background: var(--login-primary);
  color: #000;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  cursor: pointer;
}
button:hover { background: var(--login-primary-hover); }
.alert {
  background: rgba(220, 53, 69, .15);
  color: #ea868f;
  border: 1px solid rgba(220, 53, 69, .4);
  border-radius: 4px;
  padding: .75rem 1rem;
  margin-bottom: 1rem;
  font-size: .875rem;
}
[data-bs-theme="light"] .alert {
  background: #f8d7da;
  color: #842029;
  border-color: #f5c2c7;
}
.alert-success {
  background: rgba(25, 135, 84, .15);
  color: #75b798;
  border: 1px solid rgba(25, 135, 84, .4);
  border-radius: 4px;
  padding: .75rem 1rem;
  margin-bottom: 1rem;
  font-size: .875rem;
}
[data-bs-theme="light"] .alert-success {
  background: #d1e7dd;
  color: #0f5132;
  border-color: #badbcc;
}
.form-links {
  margin-top: 1rem;
  text-align: center;
  font-size: .875rem;
}
.form-links a {
  color: var(--login-primary);
  text-decoration: none;
}
.form-links a:hover { text-decoration: underline; }

/* Logo swap (rules normally live in the app theme, replicated here). */
[data-bs-theme="dark"]  .logo-light { display: none; }
[data-bs-theme="light"] .logo-dark  { display: none; }
