:root{--fond: #0f172a;--carte: #1e293b;--bordure: #334155;--texte: #f1f5f9;--texte-doux: #94a3b8;--accent: #22c55e;--accent-fonce: #16a34a;--danger: #f87171;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--texte);background:var(--fond);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;min-height:100dvh}.accueil,.ecran{min-height:100dvh;max-width:420px;margin:0 auto;padding:max(1.5rem,env(safe-area-inset-top)) 1.5rem max(1.5rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1.5rem}.accueil{justify-content:center;gap:2rem}.titre{text-align:center}.logo{border-radius:18px}h1{margin:.5rem 0 .25rem;font-size:2.4rem;letter-spacing:.02em}.titre-ecran{margin:0;font-size:1.8rem}.sous-titre{margin:0;color:var(--texte-doux)}.sous-titre-ecran{margin:0 0 .75rem;font-size:1.1rem;display:flex;justify-content:space-between;align-items:baseline}.compte{color:var(--texte-doux);font-size:.95rem;font-weight:500}.retour{align-self:flex-start;background:none;border:none;color:var(--texte-doux);font-size:1rem;font-family:inherit;padding:.25rem 0;cursor:pointer}.boutons{display:flex;flex-direction:column;gap:.9rem}.boutons.bas{margin-top:auto}.btn{width:100%;padding:1rem;border-radius:14px;border:none;font-size:1.1rem;font-weight:600;font-family:inherit;cursor:pointer}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-principal{background:var(--accent);color:#052e16}.btn-principal:active:not(:disabled){background:var(--accent-fonce)}.btn-secondaire{background:var(--carte);color:var(--texte);border:1px solid var(--bordure)}.btn-lien{background:transparent;color:var(--texte-doux);font-weight:500}.btn-danger{background:var(--danger);color:#450a0a}.btn-installer{background:transparent;color:var(--accent);border:1px dashed var(--accent);font-size:1rem}.btn-petit{width:auto;padding:.6rem 1.2rem;font-size:1rem}.mini{background:var(--fond);color:var(--texte-doux);border:1px solid var(--bordure);border-radius:10px;padding:.35rem .7rem;font-family:inherit;font-size:.95rem;cursor:pointer}.mini-danger{background:var(--danger);color:#450a0a;border-color:var(--danger);font-weight:600}.formulaire{display:flex;flex-direction:column;gap:1.2rem}.formulaire label{display:flex;flex-direction:column;gap:.5rem;color:var(--texte-doux);font-size:.95rem}.formulaire input{background:var(--carte);border:1px solid var(--bordure);border-radius:12px;color:var(--texte);padding:.9rem 1rem;font-size:1.1rem;font-family:inherit}.formulaire input:focus{outline:2px solid var(--accent);border-color:transparent}.champ-code{text-transform:uppercase;letter-spacing:.4em;font-size:1.6rem!important;font-weight:700;text-align:center}.message{min-height:1.5em;margin:0;text-align:center;color:var(--accent)}.info{margin:0;padding:.8rem 1rem;border-radius:12px;background:var(--carte);border:1px solid var(--bordure);text-align:center}.erreur{margin:0;color:var(--danger);text-align:center}.note{margin:0;text-align:center;color:var(--texte-doux);font-size:.9rem}.pied{text-align:center;font-size:.8rem;color:#475569}.carte-code{background:var(--carte);border:1px solid var(--bordure);border-radius:18px;padding:1.2rem;text-align:center}.etiquette{margin:0;color:var(--texte-doux);font-size:.9rem}.code{margin:.3rem 0 .9rem;font-size:3rem;font-weight:800;letter-spacing:.3em;padding-left:.3em;color:var(--accent)}.liste-joueurs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.liste-joueurs li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:var(--carte);border:1px solid var(--bordure);border-radius:12px;padding:.7rem .9rem;min-height:3rem}.nom-joueur{font-size:1.05rem;overflow-wrap:anywhere}.toi{color:var(--texte-doux);font-size:.9rem}.confirmation{display:flex;gap:.4rem;flex:none}.confirmation-large{display:flex;flex-direction:column;gap:.6rem;text-align:center}.confirmation-large p{margin:0}.fond-guide{position:fixed;inset:0;background:#020617bf;display:flex;align-items:flex-end;justify-content:center;padding:1rem;z-index:10}.guide{width:100%;max-width:420px;background:var(--carte);border:1px solid var(--bordure);border-radius:20px;padding:1.5rem 1.25rem max(1.25rem,env(safe-area-inset-bottom))}.guide h2{margin:0 0 1rem;font-size:1.3rem;text-align:center}.guide ol{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:.9rem}.guide li{display:flex;align-items:center;gap:.9rem;line-height:1.4}.icone-etape{flex:none;width:44px;height:44px;border-radius:12px;background:var(--fond);color:#60a5fa;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700}
