/* Spotipharm — base resets & primitives.
 * Minimal, opinionated. Applies the brand defaults to bare HTML. */

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

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-variant-numeric: tabular-nums;
}

h1, h2, h3, h4 {
  margin: 0;
  color: var(--text-strong);
  font-weight: var(--fw-semibold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
}

p { margin: 0; }

/* Listes sans puce ni indentation par défaut (le DS le suppose : nav, listes
 * d'erreurs… ; reset fourni auparavant par le preflight Tailwind). */
ul, ol { margin: 0; padding: 0; list-style: none; }

a {
  color: var(--text-link);
  text-decoration: none;
}
a:hover { text-decoration: underline; }

/* Les contrôles de formulaire n'héritent pas de la police ni de la couleur par
 * défaut (héritage assuré auparavant par le preflight Tailwind, désormais retiré).
 * On le rétablit ici ; les composants .sp-* peuvent surcharger ensuite. */
button, input, select, textarea, optgroup {
  font: inherit;
  color: inherit;
}

/* Codes, EAN13, quantities */
code, kbd, samp, .mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

/* Uppercase eyebrow / column header */
.eyebrow {
  font-size: var(--text-2xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Accessible focus ring — keyboard only */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
  border-radius: var(--radius-xs);
}

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