/* Ajouts pour la copie statique : menu qui supporte beaucoup de niveaux. */
.menu .levels{max-height:min(48vh,27rem);overflow-y:auto;overscroll-behavior:contain;padding-right:.35rem;scrollbar-width:thin;scrollbar-color:var(--color-signal,#f26522) transparent}
.menu .levels::-webkit-scrollbar{width:6px}
.menu .levels::-webkit-scrollbar-thumb{background:var(--color-signal,#f26522);border-radius:3px}
.menu .level{flex:0 0 auto}
.level .diff .today{display:inline-block;margin-left:.5rem;padding:.05rem .45rem;border-radius:999px;background:var(--color-signal,#f26522);color:#142018;letter-spacing:.06em;font-size:.62rem;vertical-align:1px}
@media (width<=720px){.menu .levels{max-height:none;overflow:visible}}
.touch button.down{font-size:1.4rem}
/* Écran d'arrivée : bouton « Niveau suivant » */
.sheet .next-level{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.1rem .75rem;width:100%;min-height:3.6rem;margin:0 0 .6rem;padding:.7rem 1.1rem;border-radius:1rem;text-align:left;font-size:1.1rem;box-shadow:0 8px 24px #f2652240}
.sheet .next-level .next-label{font-weight:800;letter-spacing:.02em}
.sheet .next-level .next-name{grid-column:1;font-size:.82rem;font-weight:600;opacity:.8}
.sheet .next-level kbd{grid-column:2;grid-row:1/span 2;font:inherit;font-size:.72rem;font-weight:700;padding:.2rem .45rem;border-radius:.4rem;border:1px solid #142018;opacity:.7}
.sheet .last-level{margin:0 0 .7rem;padding:.6rem .8rem;border:1px dashed var(--color-line);border-radius:.8rem;color:var(--color-muted);font-size:.92rem}
@media (pointer:coarse){.sheet .next-level kbd{display:none}}
/* Classement en ligne (leaderboard.js) */
.sheet:has(.lb){width:min(32rem,100% - 1.5rem);max-height:calc(100% - 1rem);overflow-y:auto}
.sheet:has(.lb) .rank{margin-bottom:.6rem}
.sheet:has(.lb) .rank td{padding:.26rem .3rem;font-size:.92rem}
.sheet .lb{margin:0 0 .7rem;padding:.55rem .7rem .5rem;border:1px solid var(--color-line);border-radius:.8rem;background:#0000001f}
.sheet .lb-title{margin:0 0 .35rem;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}
.sheet .lb-list{list-style:none;margin:0;padding:0;columns:2;column-gap:1rem}
.sheet .lb-list li{display:grid;grid-template-columns:2.2rem 1fr auto;gap:.3rem;padding:.12rem 0;font-size:.86rem;break-inside:avoid;font-variant-numeric:tabular-nums}
.sheet .lb-list li span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet .lb-list li.you{color:var(--color-signal);font-weight:700}
.sheet .lb-list li.far{column-span:all;border-top:1px dashed var(--color-line);margin-top:.2rem;padding-top:.3rem}
.sheet .lb-msg{margin:.3rem 0 0;font-size:.82rem;color:var(--color-muted)}
@media (max-width:520px){.sheet .lb-list{columns:1}}
.level .lb-top{display:block;grid-column:1/-1;margin-top:.3rem;font-size:.78rem;font-weight:600;color:var(--color-signal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Médailles (champ `medals` de levels.js, tools/medals.mjs) : disques en CSS, pas d'emoji */
.medal{display:inline-block;flex:0 0 auto;width:.78rem;height:.78rem;border-radius:50%;vertical-align:-1px;box-shadow:inset 0 0 0 1.5px #0003,0 1px 2px #0006}
.medal.gold{background:radial-gradient(circle at 35% 30%,#fff3b0,#f2c230 45%,#a87a12)}
.medal.silver{background:radial-gradient(circle at 35% 30%,#fff,#c9d0d6 45%,#7d8790)}
.medal.bronze{background:radial-gradient(circle at 35% 30%,#ffd9b0,#c97b3c 45%,#7a4319)}
.medal.none{background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-line)}
.medal.big{width:2.6rem;height:2.6rem;box-shadow:inset 0 0 0 3px #0003,0 4px 14px #0007}
.level .medals{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .7rem;margin-top:.35rem;font-size:.76rem;color:var(--color-muted);font-variant-numeric:tabular-nums}
.level .medals .got{display:inline-flex;align-items:center;gap:.3rem;font-weight:700;color:var(--color-paper)}
.level .medals .got.none{font-weight:600;color:var(--color-muted);opacity:.85}
.level .medals .targets{display:inline-flex;flex-wrap:wrap;gap:.15rem .55rem;margin-left:auto;opacity:.72}
.level .medals .tg{display:inline-flex;align-items:center;gap:.22rem}
.level .medals .tg .medal{width:.55rem;height:.55rem}
.level .medals .tg.on{opacity:1;color:var(--color-paper);font-weight:700}
.sheet .medal-result{display:flex;align-items:center;gap:.8rem;margin:0 0 .7rem;padding:.55rem .75rem;border:1px solid var(--color-line);border-radius:.8rem;background:#0000001f}
.sheet .medal-result.gold{border-color:#f2c23088}.sheet .medal-result.silver{border-color:#c9d0d688}.sheet .medal-result.bronze{border-color:#c97b3c88}
.sheet .medal-result .mr-text{display:flex;flex-direction:column;gap:.08rem;min-width:0}
.sheet .medal-result strong{font-family:var(--font-display);font-size:1.15rem;font-weight:600;line-height:1.15}
.sheet .medal-result .mr-line,.sheet .medal-result .mr-next{font-size:.84rem;color:var(--color-muted);font-variant-numeric:tabular-nums}
.sheet .medal-result .mr-rec{white-space:nowrap}
.sheet .medal-result .mr-rec .medal{width:.6rem;height:.6rem;margin-left:.3rem}
.sheet .medal-result .mr-next{color:var(--color-signal);font-weight:600}
@media (max-width:520px){.level .medals .targets{margin-left:0}.medal.big{width:2.1rem;height:2.1rem}.sheet .medal-result{gap:.6rem;padding:.45rem .6rem}}
