/* Authentication, recovery and protected installation share one visual base.
 * Account provisioning belongs to Administration, not this public page. */
:root {
  font-family: Inter, "Avenir Next", "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  color: #211d24;
  background: #f3f1f3;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  padding: 28px;
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #f8f6f8 0%, #ece8ee 100%);
}
.auth-card {
  width: min(100%, 460px);
  padding: 32px;
  background: #fff;
  border: 1px solid #ddd7e0;
  border-radius: 20px;
  box-shadow: 0 24px 70px rgba(48,39,55,.14);
}
.auth-card.wide { width: min(100%, 720px); }
.auth-product {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 8px;
  color: #302737;
  font-size: 27px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.045em;
  text-align: center;
}
.auth-product b { color: #e9633f; font-weight: 900; }
.brand { color: #70577a; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
h1 { font: 700 30px/1.2 Arial, sans-serif; color: #211d24; }
p { line-height: 1.6; }
#authIntro { margin: 20px 0 24px; color: #716b74; text-align: center; }
form { display: grid; gap: 18px; }
label { display: grid; gap: 6px; font-weight: 700; }
input {
  font: inherit;
  width: 100%;
  border: 1px solid #ddd7e0;
  border-radius: 8px;
  padding: 12px;
  background: #fff;
  color: #211d24;
}
button { font: inherit; font-weight: 700; min-height: 44px; cursor: pointer; }
button:disabled { opacity: .5; }
.auth-links { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.auth-link { border: 0; background: transparent; text-decoration: underline; text-underline-offset: 3px; }
input:focus-visible, button:focus-visible { outline: 3px solid rgba(233,99,63,.42); outline-offset: 2px; }
.help { font-size: 14px; color: #716b74; }
.error { color: #854740; }
.error:empty { display: none; }
.error:not(:empty) { padding: 10px 12px; border: 1px solid #b94d4d; border-radius: 9px; background: #fff; }
.error[data-kind="info"] { color: #245c48; border-color: #72b596; }
[hidden] { display: none !important; }
pre { white-space: pre-wrap; font: inherit; line-height: 1.7; }
@media (max-width: 520px) {
  body { padding: 16px; }
  .auth-card { padding: 24px 20px; }
  h1 { font-size: 25px; }
  .auth-product { font-size: 23px; gap: 6px; }
}
@media print {
  button, .help, .brand { display: none; }
  .auth-card { border: 0; box-shadow: none; width: 100%; padding: 0; }
  body { display: block; padding: 0; background: #fff; }
}
