/* Layout : écran unique d'arcade — bandeau HUD, piste en canvas, commandes tactiles en bas */
:root{
  --night:#0d0b1f;
  --panel:#1a1636;
  --ink:#f3f0ff;
  --muted:#9d95cc;
  --pink:#ff4fa3;
  --cyan:#35c8ff;
  --green:#2fe08a;
  --red:#ff4d5e;
  --violet:#b84dff;
  --gold:#ffd23f;
  --display:"Bungee","Arial Black",Impact,sans-serif;
  --ui:"Chakra Petch","Segoe UI",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
[hidden]{display:none!important}
body{background:var(--night);color:var(--ink);font-family:var(--ui);overflow:hidden;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.app{height:100%;display:flex;flex-direction:column;gap:10px;padding-inline:16px;padding-block:10px;box-sizing:border-box;max-width:1100px;margin:0 auto}
.hud{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-weight:700;font-size:15px}
.hud .brand{font-family:var(--display);font-size:18px;color:var(--pink);letter-spacing:.02em;margin-right:auto}
.stat{display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}
.stat small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.stat b{font-size:18px}
.stat.warn b{color:var(--red)}
.bar{width:90px;height:8px;background:var(--panel);border-radius:4px;overflow:hidden;align-self:center}
.bar i{display:block;height:100%;width:0;background:var(--cyan);border-radius:4px}
#progBar i{background:var(--gold)}
.inv{color:var(--violet);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.stage{position:relative;flex:1;min-height:0;border-radius:14px;overflow:hidden;background:var(--night);box-shadow:0 0 0 1px #2a2452}
canvas{display:block;width:100%;height:100%}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(13,11,31,.78);backdrop-filter:blur(3px)}
.card{max-width:440px;width:100%;display:flex;flex-direction:column;gap:14px;text-align:left}
.card h1{font-family:var(--display);font-size:clamp(28px,7vw,44px);line-height:1;margin:0;color:var(--ink);text-wrap:balance}
.card h1 span{color:var(--pink)}
.card p{margin:0;color:var(--muted);line-height:1.45;font-size:15px}
.keys{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px;align-items:center}
kbd{font-family:var(--ui);font-weight:700;background:var(--panel);border:1px solid #3a3370;border-radius:6px;padding:2px 7px;font-size:12px;color:var(--ink);white-space:nowrap}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px 12px;font-size:13px}
.legend div{display:flex;align-items:center;gap:8px}
.sw{width:18px;height:12px;border-radius:2px;transform:skewX(-14deg);flex:none}
.btn{font-family:var(--display);font-size:18px;border:0;border-radius:10px;padding:12px 18px;background:var(--pink);color:#1a0a16;cursor:pointer;align-self:flex-start}
.btn:focus-visible,.pad button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.big{font-family:var(--display);font-size:22px;color:var(--gold)}
.pad{display:none;grid-template-columns:1fr 1fr 1.2fr 0.8fr;gap:8px;padding-bottom:env(safe-area-inset-bottom,0px)}
.pad button{font-family:var(--display);font-size:20px;height:62px;border-radius:12px;border:1px solid #3a3370;background:var(--panel);color:var(--ink);touch-action:none}
.pad button.on{background:#2c2660;border-color:var(--cyan)}
.pad .jump{background:var(--cyan);color:#06202c;border-color:var(--cyan)}
.pad .spd{display:grid;grid-template-rows:1fr 1fr;gap:6px}
.pad .spd button{height:28px;font-size:14px}
@media (pointer:coarse){.pad{display:grid}}

/* Ajouts de la version en ligne */
.home{color:var(--muted);text-decoration:none;font-size:24px;line-height:1;margin-right:-8px}
.home:hover{color:var(--pink)}
.sw.sw-green{background:var(--green)} .sw.sw-red{background:var(--red)}
.sw.gem{background:var(--pink);transform:rotate(45deg);width:11px;height:11px;border-radius:1px}
.sw.clock{background:var(--gold);clip-path:polygon(0 0,100% 0,0 100%,100% 100%);transform:none;width:12px;height:14px}
.row{display:flex;flex-wrap:wrap;gap:8px}
.btn.alt{background:var(--cyan);color:#06202c}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px #3a3370}
#eRank{color:var(--ink)}
#toast{position:absolute;top:14px;left:50%;transform:translateX(-50%);font-family:var(--display);font-size:22px;color:var(--gold);text-shadow:0 2px 0 #0d0b1f;pointer-events:none}
.lvls{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;max-height:46vh;overflow-y:auto}
.lvl{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--panel);border:1px solid #3a3370;border-radius:10px;padding:8px 4px;color:var(--ink);font-family:var(--ui);cursor:pointer}
.lvl b{font-family:var(--display);font-size:20px}
.lvl small{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.lvl:hover{border-color:var(--cyan)}
.tabs{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tabs button{background:var(--panel);border:1px solid #3a3370;border-radius:8px;padding:6px 10px;color:var(--ink);font-family:var(--ui);font-weight:700;cursor:pointer}
.tabs button[aria-pressed="true"]{border-color:var(--pink);color:var(--pink)}
.tabs .cur{font-family:var(--display);color:var(--gold);padding:0 6px}
#panelCard table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
#panelCard td,#panelCard th{text-align:left;padding:5px 8px;border-bottom:1px solid #2a2452}
#panelCard th{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
#panelCard tr.me td{color:var(--gold)}
#panelCard .err{color:var(--red)}
#ovPanel .card{max-height:100%;overflow-y:auto}
