.container { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; }
.container-wide { width: min(1280px, calc(100% - 2rem)); margin-inline: auto; }

/* Soft geometric wash used on guest / auth surfaces */
.geo-atmosphere {
  background-color: var(--color-background);
  background-image:
    radial-gradient(ellipse 85% 55% at 8% -5%, rgba(26, 61, 43, 0.14), transparent 58%),
    radial-gradient(ellipse 70% 45% at 100% 0%, rgba(201, 146, 42, 0.12), transparent 52%),
    radial-gradient(ellipse 55% 40% at 70% 100%, rgba(61, 107, 88, 0.08), transparent 55%),
    var(--pattern-geo);
  background-size: auto, auto, auto, var(--pattern-size);
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  color: var(--color-primary);
}
.brand-lockup .brand-mark {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0.65rem;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, var(--color-primary) 0%, var(--color-primary-hover) 100%);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  box-shadow: inset 0 0 0 2px rgba(201, 146, 42, 0.55);
  letter-spacing: -0.02em;
}
.brand-lockup .brand-wordmark {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--color-primary);
}

.text-muted { color: var(--color-text-muted); }
.text-success { color: var(--color-success); }
.text-danger { color: var(--color-danger); }
.text-warning { color: var(--color-warning); }
.text-sm { font-size: 0.875rem; }
.text-xs { font-size: 0.8125rem; }
.fw-600 { font-weight: 600; }
.money, .financial-total {
  font-variant-numeric: tabular-nums;
  font-family: var(--font-mono);
  font-weight: 600;
  letter-spacing: -0.01em;
}
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.stack-2 > * + * { margin-top: var(--space-2); }
.stack-3 > * + * { margin-top: var(--space-3); }
.stack-4 > * + * { margin-top: var(--space-4); }
.stack-6 > * + * { margin-top: var(--space-6); }
.grid { display: grid; gap: var(--space-4); }
.grid-2 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 720px) {
  .grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.flex { display: flex; }
.flex-between { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.flex-wrap { flex-wrap: wrap; }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }
.gap-4 { gap: var(--space-4); }
.mt-0 { margin-top: 0; }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mb-0 { margin-bottom: 0; }
.mb-4 { margin-bottom: var(--space-4); }
.hidden { display: none !important; }
