/* Project-specific overrides. Chloride lives in chloride.css. */

/* Auth pages use a narrower, more focused card than chloride's default narrow
   width. One value, in one place, rather than repeated inline on every
   account template. (The card reads --wrapper-max-narrow for data-width="narrow".) */
.auth-card {
  --wrapper-max-narrow: 22rem;
  --flow-space: var(--space-m);
}

.auth-card h1 + p {
  --flow-space: var(--space-3xs);
  color: var(--color-text-weak);
}

.center {
  text-align: center;
}

/* MESSAGES BLOCK
   The django.contrib.messages strip at the top of <main>: sits above the
   first region, so it needs its own top padding. */
.messages {
  --flow-space: var(--space-s);
  padding-block-start: var(--space-s);
}

/* Tight variant of the cluster composition, for rows that should read as one
   unit: small-button groups, a value with its tag. One value, in one place,
   rather than repeated inline across the templates. */
.cluster[data-gutter="tight"] {
  --gutter: var(--space-2xs);
}

/* ITEM-LIST BLOCK
   Hairline-divided rows for the account management lists (passkeys, email
   addresses). Rows are typically a repel: content left, actions right.
   No margin: 0 here; style.css loads after chloride.css, so at equal
   specificity it would beat .flow > * + * and crush the flow spacing around
   the list (the reset already zeroes the ul's own margin-block). */
.item-list {
  padding: 0;
  list-style: none;
}

/* When a row wraps (narrow screens), its two halves must still read as one
   item: keep the wrapped row gap (7→8) tighter than the flow spacing between
   items. Two-value --gutter = row gap, column gap. */
.item-list > .repel {
  --gutter: var(--space-2xs) var(--space-s);
}

.item-list > * {
  padding-block: var(--space-s);
}

.item-list > *:first-child {
  padding-block-start: 0;
}

.item-list > *:last-child {
  padding-block-end: 0;
}

.item-list > * + * {
  border-block-start: var(--stroke);
}

/* "or" separator between two auth options (e.g. passkey vs. email code):
   a centred label on a full-width hairline. */
.auth-divider {
  display: flex;
  align-items: center;
  gap: var(--space-s);
  color: var(--color-text-weak);
  font-size: var(--step--1);
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  border-block-start: var(--stroke);
}

.site-head__menu {
  margin: -0.6rem;
}
