/* =====================================================================
   02 · BASE
   Reset mínimo, tipografía y utilidades genéricas.
   ===================================================================== */

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;color:inherit}
img{max-width:100%}
:focus-visible{outline:3px solid var(--pine);outline-offset:2px;border-radius:4px}

h1,h2,h3,h4{font-family:var(--display);font-weight:700;letter-spacing:.01em;line-height:1.1;margin:0}
h2{font-size:24px;margin:0 0 4px}
h3{font-size:19px}

.lead{color:var(--muted);margin:0 0 14px;max-width:70ch}
.note{color:var(--muted);font-size:13px;margin-top:10px;max-width:90ch}
.count{color:var(--muted);font-size:14px;margin:0 0 8px}
.dim{color:var(--muted)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.sec{margin:24px 0 10px}

/* Récord V/D/E coloreado */
.rec b{font-weight:600}
.rec .w{color:var(--good)} .rec .l{color:var(--bad)} .rec .d{color:var(--muted)}

/* Puesto (insignia) */
.rank{font-family:var(--display);font-weight:700;font-size:17px;display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;border-radius:var(--r-sm);padding:0 6px;background:var(--bg);flex:none}
.r1{background:var(--gold);color:#fff} .r2{background:var(--silver);color:#fff} .r3{background:var(--bronze);color:#fff}

/* Movimiento en el ranking */
.mv{font-size:12px;font-weight:700;margin-left:6px}
.mv.up{color:var(--good)} .mv.down{color:var(--bad)} .mv.new{color:var(--ember)}

.pts{font-family:var(--display);font-weight:700;font-size:18px}
.drop{color:var(--bad);font-weight:600}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--bg);color:var(--muted);margin-left:6px;vertical-align:1px}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* Utilidades usadas desde js/app.js */
.mv.flat{margin:0}
.pos{color:var(--good)} .neg{color:var(--bad)}

@media (min-width:600px){
  h2{font-size:28px}
  h3{font-size:20px}
}

@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
