.flex { display: flex; }
.inline-flex { display: inline-flex; }
.center { align-items: center; justify-content: center; }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }
.gap-4 { gap: var(--space-4); }
.mt-2{ margin-top: var(--space-2); } .mt-3{ margin-top: var(--space-3); } .mt-4{ margin-top: var(--space-4); } .mt-5{ margin-top: var(--space-5); }
.mb-2{ margin-bottom: var(--space-2);} .mb-3{ margin-bottom: var(--space-3);} .mb-4{ margin-bottom: var(--space-4);} .mb-5{ margin-bottom: var(--space-5);}
.ml-auto { margin-left: auto; }
.text-muted { color: var(--muted-fg); }
.hidden { display: none !important; }
.w-full { width: 100%; }
.pre-wrap { white-space: pre-wrap; font-family: var(--font-sans); }

/* Readability helpers */
html.dark .text-outline-black {
  /* Multi-shadow outline + subtle halo */
  text-shadow:
    0 1px 0 #000,
    0 -1px 0 #000,
    1px 0 0 #000,
    -1px 0 0 #000,
    1px 1px 0 #000,
    -1px 1px 0 #000,
    1px -1px 0 #000,
    -1px -1px 0 #000,
    0 0 2px rgba(0,0,0,0.9);
}
@supports (-webkit-text-stroke: 1px black) {
  html.dark .text-outline-black {
    -webkit-text-stroke: 1px #000;
    text-shadow: 0 0 2px rgba(0,0,0,0.9);
  }
}
