/* base.css — Silvia Joyería · estilos base de la app principal.
   Los tokens (colores, sombras, radios, tipografía) viven en tokens.css. */

/* Reset */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-sans);
    background-color: var(--gray-50);
    color: var(--gray-800);
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

/* Titulares */
h1 {
    font-size: clamp(1.5rem, 4vw, 2.25rem);
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: 1.5rem;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

h2 {
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 1rem;
}

/* Contenedor */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* Feedback táctil global en botones */
button:not(:disabled):active,
[type="submit"]:not(:disabled):active {
    transform: scale(0.97);
}

/* Números tabulares para columnas de datos */
.num {
    font-variant-numeric: tabular-nums;
}
