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

html, body { height: 100%; }

body {
  margin: 0;
  overflow: hidden;
  background: var(--grafito);
  color: var(--texto);
  font-family: var(--fuente);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, p, ul, fieldset, legend, pre { margin: 0; padding: 0; }
ul { list-style: none; }
fieldset { border: 0; min-width: 0; }

button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }

[hidden] { display: none !important; }

:focus-visible { outline: 2px solid var(--ambar); outline-offset: 2px; }
::selection { background: rgba(255, 193, 7, 0.32); }

/* Barras de desplazamiento discretas */
* { scrollbar-width: thin; scrollbar-color: var(--riel) transparent; }

.icono { flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.icono--relleno { fill: currentColor; stroke-width: 1.4; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
