@import url("foundation.7dce835051f2.css");

html { color-scheme: light; }
body.app.is-auth.havre-auth {
  --color-surface: var(--havre-white);
  --color-surface-muted: var(--havre-paper);
  --color-surface-raised: var(--havre-white);
  --color-surface-sunken: var(--havre-paper);
  --color-text: var(--havre-ink);
  --color-text-muted: var(--havre-ink-muted);
  --color-text-subtle: var(--havre-ink-faint);
  --color-border: var(--havre-ink);
  --color-border-strong: var(--havre-ink);
  --color-primary: var(--havre-tenant-ink-a);
  --color-primary-contrast: var(--havre-tenant-ink-a-on);
  --color-accent: var(--havre-tenant-ink-a);
  --font-sans: var(--havre-font-ui);
  --text-body: var(--havre-text-m);
  --text-caption: var(--havre-text-s);
  --text-display: var(--havre-text-2xl);
  --text-heading: var(--havre-text-l);
  --radius-1: 0;
  --radius-pill: 0;
  --shadow-raise: none;
  --shadow-pop: none;
  background: var(--havre-paper);
  color: var(--havre-ink);
  font-family: var(--havre-font-ui);
  font-size: var(--havre-text-m);
  font-variant-numeric: tabular-nums;
}
.havre-auth .app-main { background: var(--havre-paper); }
.havre-auth .app-content { position: relative; }
.havre-auth .auth-card {
  max-width: 500px;
  padding: 32px;
  border: 2px solid var(--havre-ink);
  border-radius: 0;
  box-shadow: none;
}
.havre-auth .auth-card.is-wide { max-width: 620px; }
.havre-auth .auth-card.is-wider { max-width: 760px; }
.havre-auth .auth-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin-bottom: 28px;
  font-size: 23px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
}
.havre-auth .auth-brand svg { width: 26px; height: 26px; }
.havre-auth .auth-brand img { max-width: 72px; max-height: 40px; object-fit: contain; }
.havre-auth .auth-card h1 { font-weight: 800; letter-spacing: -0.02em; }
.havre-auth .auth-card h2 { font-weight: 700; }
.havre-auth .auth-card :is(a, .btn-ghost) { color: var(--havre-tenant-ink-a-text); }
.havre-auth .auth-card a:hover { text-decoration: underline; }
.havre-auth .form-field { gap: 8px; }
.havre-auth .form-field label { font-size: 14px; }
.havre-auth .form-field input:not([type="checkbox"]),
.havre-auth .form-field select,
.havre-auth .form-field textarea,
.havre-auth .input-affix {
  min-height: 48px;
  border: 2px solid var(--havre-ink);
  border-radius: 0;
  box-shadow: none;
}
.havre-auth .form-field textarea { height: auto; }
.havre-auth .form-field input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--havre-tenant-ink-a); }
.havre-auth .form-field input:focus,
.havre-auth .form-field select:focus,
.havre-auth .form-field textarea:focus,
.havre-auth .input-affix:focus-within { outline: 3px solid var(--havre-tenant-ink-a); outline-offset: 2px; box-shadow: none; }
.havre-auth .btn,
.havre-auth .auth-button {
  min-height: 44px;
  height: auto;
  border: 2px solid var(--havre-ink);
  border-radius: 0;
  font-size: 15px;
  font-weight: 700;
  box-shadow: none;
}
.havre-auth .btn-primary,
.havre-auth .auth-button--sso {
  background: var(--havre-tenant-ink-a);
  color: var(--havre-tenant-ink-a-on);
  border-color: var(--havre-ink);
}
.havre-auth .btn-primary:hover,
.havre-auth .auth-button--sso:hover { background: var(--havre-tenant-ink-a); color: var(--havre-tenant-ink-a-on); filter: brightness(.92); }
.havre-auth .btn-secondary,
.havre-auth .auth-button--google,
.havre-auth .auth-button--microsoft,
.havre-auth .auth-button--apple { background: var(--havre-white); color: var(--havre-ink); }
.havre-auth .btn-ghost { border-color: transparent; }
.havre-auth .btn:focus-visible,
.havre-auth .auth-button:focus-visible { outline: 3px solid var(--havre-ink); outline-offset: 2px; box-shadow: none; }
.havre-auth :is(.form-message, .info-block, .form-error-summary, .empty-state, .tag, .auth-workspace, .mfa-totp-qr) { border-radius: 0; box-shadow: none; }
.havre-auth .auth-card :is(.form-error-summary, .info-block, .auth-workspace, .mfa-totp-qr) { border-width: 2px; }
.havre-auth.is-verification-sent .auth-card { max-width: 560px; }
.havre-auth.is-verification-sent .auth-card h1 { font-size: clamp(32px, 5vw, 44px); line-height: 1.08; margin-bottom: 20px; }
.havre-auth.is-verification-sent .form-messages { margin-bottom: 24px; }
.havre-auth.is-verification-sent .form-message { padding: 16px 18px; background: var(--havre-paper); border: 0; border-left: 4px solid var(--havre-tenant-ink-a); color: var(--havre-ink); font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.havre-auth.is-verification-sent .auth-card .form-help { margin: 0 0 14px; font-size: 16px; line-height: 1.5; }
.havre-auth.is-verification-sent .form-actions { margin-top: 12px; }
.havre-auth .auth-card-footer,
.havre-auth .auth-card-legal,
.havre-auth .auth-card-aside,
.havre-auth .auth-card-section { border-color: var(--havre-ink); }
@media (max-width: 600px) {
  .havre-auth .app-content { padding: 0; }
  .havre-auth .auth-card { min-height: 100vh; max-width: none; padding: 28px 18px; border: 0; border-top: 16px solid var(--havre-tenant-ink-a); }
  .havre-auth .form-actions { align-items: stretch; }
}

.havre-auth .havre-language { position: fixed; top: 20px; right: 20px; z-index: 10; }
@media (max-width: 600px) {
  .havre-auth .auth-card { padding-top: 88px; }
}
