/* Baseline element styling for web and desktop. Lifted from
   packages/ui/src/reset.web.css. Nothing here is a design decision a redesign
   needs to preserve, with two marked exceptions. */

*, *::before, *::after { box-sizing: border-box; }
html, body, #root { height: 100%; margin: 0; padding: 0; }

body {
  background: var(--surface-base);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
}

button {
  font: inherit; color: inherit; background: none; border: none; cursor: pointer;
  min-height: var(--tap-target-min);
}
/* Compact controls opt out of the tap-target floor explicitly, so the default
   stays accessible and the exception is visible in the markup. */
button.compact { min-height: auto; }

a { color: var(--accent); }
a:hover { color: var(--text-primary); }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-sm); }

/* EXCEPTION 1 — accessibility requirement, not an option. All chart annotation
   animation and UI motion is disabled for users who ask for it. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* EXCEPTION 2 — the scrollbar is themed deliberately. A default light scrollbar
   on a dark panel is the most common way a dark UI gives itself away. */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--line-strong); border-radius: var(--radius-full);
  border: 2px solid var(--surface-base);
}

/* Visible to a screen reader, not to the eye. Used where an icon carries the
   meaning visually and the text has to carry it otherwise. */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
