/* Thème aligné sur l'identité DÉLIRE Escalade (relevée sur delirescalade.com) :
   jaune vif #FFC62B, noir, blanc, gris clair ; accents pêche #F6CDB4 et vert forêt #2E5B34.
   Angles droits partout, titres en serif, actions en capitales. Aucun emoji dans l'interface. */
:root{
  --jaune:#FFC62B; --jaune-hover:#f0b41d; --noir:#000; --blanc:#fff;
  --peche:#F6CDB4; --vert:#2E5B34; --ink:#111; --muted:#5c5c5c;
  --line:#d9d9d9; --bg:#F4F4F4; --card:#fff; --danger:#b3261e;
  --serif:Georgia,"Times New Roman",serif;
  --cond:"Arial Narrow","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--noir);text-decoration-color:var(--jaune);text-decoration-thickness:2px}

/* En-tête blanc, marque noire en capitales épaisses, bordure basse noire */
.topbar{background:var(--blanc);color:var(--noir);display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;align-items:flex-end;padding:.85rem 1.2rem 0;border-bottom:4px solid var(--noir)}
.topbar .brand{color:var(--noir);font-weight:900;font-size:1.3rem;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:.55rem;padding-bottom:.75rem}
/* Onglets : visuel d'onglets posés sur la bordure basse de l'en-tête ; inactifs gris, actif jaune rattaché à la ligne */
.topbar .tabs{display:flex;flex-wrap:wrap;gap:.4rem;align-items:flex-end}
.tab{display:inline-flex;align-items:center;padding:.5rem 1rem .7rem;background:#ececec;border:2px solid var(--noir);border-bottom:none;margin-bottom:-4px;margin-top:.45rem;color:var(--noir);text-decoration:none;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.tab:hover{background:#dedede}
.tab.active{background:var(--jaune);color:var(--noir);margin-top:0;padding-top:.85rem}
@media (max-width:560px){
  .topbar{padding:.7rem .8rem 0}
  .topbar .tabs{width:100%;flex-wrap:nowrap}
  .tab{flex:1;justify-content:center;padding:.55rem .15rem .7rem;font-size:.82rem}
  .tab.active{padding-top:.8rem}
}
.wrap{max-width:980px;margin:0 auto;padding:1.2rem 1rem 3rem}
.foot{text-align:center;color:var(--muted);padding:1.5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}
.foot .admin-link{display:inline-block;margin-top:.6rem;color:#9a9a9a;font-size:.72rem;letter-spacing:.05em;text-decoration:none;text-transform:uppercase}
.foot .admin-link:hover{color:var(--noir);text-decoration:underline}
h1{font-family:var(--serif);font-weight:500;font-size:1.9rem;margin:.4rem 0 1rem}
h2{font-family:var(--serif);font-weight:500;font-size:1.35rem;margin:1.6rem 0 .6rem}
.muted{color:var(--muted);font-size:.92rem}
.card{background:var(--card);border:2px solid var(--noir);padding:1.1rem 1.2rem;margin:1rem 0;box-shadow:5px 5px 0 rgba(0,0,0,.08)}
.btn{display:inline-block;background:var(--blanc);border:2px solid var(--noir);color:var(--noir);padding:.55rem 1.1rem;text-decoration:none;cursor:pointer;font-family:var(--cond);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.btn:hover{background:#eee}
.btn-primary{background:var(--jaune);border-color:var(--noir);color:var(--noir)}
.btn-primary:hover{background:var(--jaune-hover)}
.btn-big{width:100%;padding:.95rem;font-size:1.15rem;margin-top:1.4rem}
.btn-danger{border-color:var(--danger);color:var(--danger)}
.btn-danger:hover{background:#fdecea}
.home-actions{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.home-actions .card{text-align:center}
.home-actions .big{font-family:var(--serif);font-size:1.3rem;display:block;margin-bottom:.4rem}
form .field{margin:.7rem 0}
label.lbl{display:block;font-weight:700;margin-bottom:.3rem;text-transform:uppercase;font-size:.82rem;letter-spacing:.05em}
input[type=text],input[type=number],input[type=password],select{width:100%;padding:.6rem .7rem;border:2px solid var(--noir);font-size:1rem;background:#fff;border-radius:0}
.flash{background:#eef4ee;border:2px solid var(--vert);color:var(--vert);padding:.7rem 1rem;margin:1rem 0;font-weight:600}
.errors{background:#fdecea;border:2px solid var(--danger);color:#7c1a15;padding:.4rem 1rem;margin:1rem 0}
.banner-done{background:var(--peche);border:2px solid var(--noir);color:var(--noir)}

/* Grille de blocs : grandes cases tactiles à angles droits */
.bloc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:.55rem}
.bloc-tile{position:relative}
.bloc-tile input{position:absolute;opacity:0;inset:0;cursor:pointer}
.bloc-tile span{display:flex;align-items:center;justify-content:center;height:64px;border:2px solid var(--noir);background:#fff;font-size:1.25rem;font-weight:800;user-select:none}
.bloc-tile input:checked + span{background:var(--jaune);color:var(--noir);box-shadow:inset 0 0 0 2px var(--noir)}
.bloc-tile input:focus-visible + span{outline:3px solid var(--vert);outline-offset:2px}
.speed-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.speed-field span{display:block;font-weight:700;margin-bottom:.3rem;text-transform:uppercase;font-size:.82rem;letter-spacing:.05em}
.speed-field input{font-size:1.2rem;text-align:center}

/* Classement */
table.rank{width:100%;border-collapse:collapse;background:#fff;border:2px solid var(--noir)}
table.rank th,table.rank td{padding:.65rem .7rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
table.rank th{background:var(--noir);color:#fff;font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em}
table.rank td.num,table.rank th.num{text-align:right}
table.rank tr.me td{background:#fff6da;font-weight:700}
.rank-scroll{overflow-x:auto}
.podium{display:inline-flex;align-items:center;justify-content:center;min-width:1.9rem;height:1.9rem;background:var(--jaune);border:2px solid var(--noir);font-weight:900;padding:0 .3rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}
.chips a{border:2px solid var(--noir);color:var(--noir);padding:.3rem .85rem;text-decoration:none;background:#fff;font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em}
.chips a.on{background:var(--noir);color:#fff}
.stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.stats .card{text-align:center;margin:0}
.stats .n{font-size:1.8rem;font-weight:900;color:var(--noir)}
.admin-nav{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.inline-form{display:inline}
.small{font-size:.85rem}
fieldset{border:0;padding:0;margin:0;min-width:0}
