/* @omnis/ui — framework reset.
   Imported after tokens.css; provides box-sizing, body defaults,
   scrollbar styling, focus outline, selection colour, link/button
   defaults, and the .mono utility class. Apps may override any of
   these in their own global stylesheet, but most don't need to. */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  background: var(--bg);
  color: var(--text);
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-family: var(--font-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--text-base);
  line-height: var(--leading-normal);
}

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); }
* { scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) transparent; }

::selection { background: var(--selection-bg); }

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
}

button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }

a { color: inherit; text-decoration: none; }

.mono {
  font-family: var(--font-mono), "IBM Plex Mono", Menlo, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  font-size: 0.95em;
  letter-spacing: var(--tracking-tight);
}

/* Circular icon controls (IconButton, Avatar). All icons in the UI
   sit inside a fixed-size circle — bordered on the transparent tones
   (muted/danger/nav), borderless on the filled tones (cta, avatar).
   This gives every icon the same visual footprint so the spacing
   between them matches the spacing-scale numbers exactly, and a
   shared press animation reads consistently across the app. */
.omnis-icon-btn {
  transition:
    transform 90ms ease,
    background-color 120ms ease,
    color 120ms ease,
    border-color 120ms ease;
}
.omnis-icon-btn:active:not(:disabled) {
  transform: scale(0.92);
}
