:root {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: dark;
  --background: #151816;
  --surface: #1C211D;
  --surface-raised: #20251F;
  --text: #D9C59C;
  --text-muted: #C7C0B3;
  --copper: #B96F3D;
  --copper-light: #D6A17C;
  --copper-hover: #DEB18F;
  --line: #394038;
  --control-border: #819174;
  --error: #F2A99D;
  color: var(--text);
  background: var(--background);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: max(32px, env(safe-area-inset-top)) 24px max(32px, env(safe-area-inset-bottom));
}
main {
  width: 100%;
  max-width: 440px;
  padding: clamp(20px, 4vw, 32px);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 24px;
}
.wordmark { display: block; object-fit: contain; max-width: 100%; height: auto; margin: 0 auto 28px; }
.wordmark.compact { margin: 0 auto 28px; }
h1 { font-size: clamp(28px, 6vw, 44px); line-height: 1.15; letter-spacing: -.04em; margin: 0 0 20px; }
p { line-height: 1.65; color: var(--text-muted); }
label { display: block; margin: 22px 0 12px; font-size: 15px; font-weight: 550; }
input, button, .primary { font: inherit; min-height: 48px; border-radius: 12px; }
input { width: 100%; margin-top: 8px; padding: 13px; background: var(--background); color: var(--text); border: 1px solid var(--control-border); }
button, .primary {
  display: block;
  padding: 14px 20px;
  cursor: pointer;
  color: var(--background);
  background: var(--copper-light);
  border: 1px solid transparent;
  margin: 18px 0;
  width: 100%;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
button:hover:not(:disabled), .primary:hover { background: var(--copper-hover); }
button:focus-visible, input:focus-visible, a:focus-visible { outline: 3px solid var(--copper-light); outline-offset: 3px; }
button:disabled { opacity: .6; cursor: wait; }
.password-input { display: block; position: relative; }
.password-input input { min-width: 0; padding-right: 56px; }
.reveal { position: absolute; right: 2px; top: 10px; display: grid; place-items: center; width: 44px; min-height: 44px; margin: 0; padding: 8px; background: transparent; color: var(--text); border: 0; }
.reveal:hover:not(:disabled) { background: var(--line); }
#message { white-space: pre-wrap; overflow-wrap: anywhere; }
#message:empty { display: none; }
#message[data-state="error"] { color: var(--error); }
#users article { border: 1px solid var(--line); border-radius: 12px; margin-top: 16px; padding: 16px; background: var(--surface-raised); }
ol { padding-left: 20px; font-size: 13px; overflow-wrap: anywhere; }
[hidden] { display: none !important; }
.landing { max-width: 920px; text-align: center; background: transparent; border: 0; padding: 0; }
.landing > p { max-width: 560px; margin: 20px auto; }
.landing .primary { max-width: 300px; margin: 30px auto 52px; }
.eyebrow { font-size: 13px; letter-spacing: .04em; }
.benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; text-align: left; }
.benefits article { border: 1px solid var(--line); border-radius: 16px; padding: 20px; background: var(--surface); }
.benefits h2 { font-size: 18px; margin: 0 0 10px; }
.benefits p, .quiet { font-size: 14px; }
.quiet { margin-top: 36px !important; }
@media (max-width: 600px) {
  body { padding-left: 16px; padding-right: 16px; }
  .benefits { grid-template-columns: 1fr; gap: 16px; }
  .landing .wordmark { width: 220px; height: auto; margin-bottom: 24px; }
  .landing .primary { margin-bottom: 36px; max-width: none; }
  .landing { text-align: left; }
  .landing > .wordmark, .landing > p { margin-left: 0; }
}

.inline-login { max-width: 440px; margin: 30px auto 52px; text-align: left; }
.landing .inline-login > summary { list-style: none; margin: 0 auto; }
.inline-login > summary::-webkit-details-marker { display: none; }
.inline-login[open] > summary { margin-bottom: 16px; }
.login-form { padding: 0 20px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
@media (max-width: 600px) { .inline-login { max-width: none; margin-bottom: 36px; } }

/* One brand, preserving the original aspect ratio. */
.login-brands { display: grid; grid-template-columns: 1fr; align-items: center; gap: clamp(8px, 3vw, 20px); margin-bottom: 24px; }
.login-brands img { display: block; width: 100%; max-width: 100%; height: auto; max-height: 112px; object-fit: contain; }

#setup-qr { display: block; max-width: 100%; height: auto; margin: 16px auto; background: white; }
#setup-key, .security-codes { overflow-wrap: anywhere; white-space: pre-wrap; user-select: all; }
