:root{--vert:#3c3eae;--vert-clair:#5658d6;--accent:#2d8cff;--or:#f5a623;--ok:#1fa463;--fond:#f4f6fb;--blanc:#fff;--texte:#1a1c3a;--doux:#6b6f8d;--ligne:#e5e7f2;--erreur:#e0444e}*{box-sizing:border-box}body{margin:0;background:var(--fond);color:var(--texte);font-family:system-ui,-apple-system,sans-serif}.carte{max-width:420px;margin:48px auto;background:var(--blanc);border-radius:16px;padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.08)}.titre{color:var(--vert);font-size:22px;margin:0 0 4px}.sous-titre{color:#666;font-size:14px;margin:0 0 20px}label{display:block;font-size:13px;font-weight:600;margin:14px 0 4px}input[type=email],input[type=password],input[type=text]{width:100%;padding:11px 12px;border:1px solid var(--ligne);border-radius:10px;font-size:15px;background:#fafbff}input:focus{outline:2px solid var(--vert);border-color:var(--vert)}.bouton{width:100%;margin-top:20px;padding:13px;border:none;border-radius:10px;background:var(--vert);color:#fff;font-size:15px;font-weight:700;cursor:pointer}.bouton:disabled{opacity:.6;cursor:wait}.lien{color:var(--vert);text-decoration:underline;cursor:pointer}.erreur,.lien{font-size:13px}.erreur{color:var(--erreur)}.erreur,.ok{margin-top:12px}.ok{color:var(--vert);font-size:14px}.rgpd{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#555;margin-top:16px}.rgpd input{margin-top:2px}.pied{text-align:center;margin-top:18px;font-size:13px}.nav{max-width:560px;margin:0 auto;display:flex;gap:4px;padding:12px 16px 0}.nav a{flex:1 1;text-align:center;padding:9px 4px;border-radius:10px;font-size:13px;font-weight:600;color:#555;text-decoration:none}.nav a.actif{background:var(--vert);color:#fff}.jour{max-width:560px;margin:18px auto 6px;padding:0 16px;font-size:13px;font-weight:700;color:#555;text-transform:capitalize}.match-card{max-width:560px;margin:8px auto;padding:14px 16px;background:var(--blanc);border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.match-haut{font-size:12px;color:#777;margin-bottom:8px}.match-haut,.match-ligne{display:flex;justify-content:space-between}.match-ligne{align-items:center;gap:8px}.equipe{flex:1 1;font-weight:700;font-size:15px}.equipe.ext{text-align:right}.score-input{width:46px;height:44px;text-align:center;font-size:18px;font-weight:700;border:1px solid var(--ligne);border-radius:10px;background:#fafbff}.score-input:disabled{background:#efeee6;color:#555}.tiret{color:#999;font-weight:700}.cotes{display:flex;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--vert);font-weight:600}.statut-prono{font-size:12px;margin-top:8px;min-height:16px}.statut-prono.ok{color:var(--vert)}.statut-prono.err{color:var(--erreur)}.statut-prono.lock{color:#8a6d1a}.score-final{font-size:18px;font-weight:800;padding:0 8px}.km-gagnes{font-weight:800;color:var(--vert)}.km-zero{font-weight:700;color:#999}.choix-liste{display:flex;flex-direction:column;gap:6px;margin-top:10px}.choix{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border:1px solid var(--ligne);border-radius:10px;background:var(--blanc);cursor:pointer;font-size:14px}.choix.sel{border:2px solid var(--vert);background:#eef5f1;font-weight:700}.choix .km{color:var(--vert);font-weight:700;font-size:13px}.bandeau-verrou{max-width:560px;margin:10px auto;padding:10px 16px;border-radius:10px;background:#fdf3dd;color:#7a5c10;font-size:13px}.hero{max-width:460px;margin:0 auto;padding:36px 24px 8px;color:#fff}.hero-bandeau{font-size:13px;letter-spacing:2px;opacity:.8}.hero h1{font-size:30px;margin:6px 0 4px}.hero p{opacity:.88;margin:0;font-size:15px;line-height:1.5}.page-auth{min-height:100vh;background:linear-gradient(160deg,#3c3eae,#5658d6);padding-bottom:40px}.onglets-auth{display:flex;gap:6px;margin-bottom:14px}.onglets-auth button{flex:1 1;padding:10px;border:0;border-radius:8px;font-weight:700;cursor:pointer;background:var(--fond);color:var(--doux);font-size:14px}.onglets-auth button.actif{background:var(--vert);color:#fff}.duo{display:flex;gap:8px}.duo>div{flex:1 1}.crit{font-size:11px;color:var(--doux)}.crit.ok{color:var(--ok);font-weight:600}.criteres{display:flex;flex-wrap:wrap;gap:2px 10px;margin:4px 0 6px}.aide{font-size:12px;margin:2px 0 6px}.aide.ok{color:var(--ok)}.aide.ko{color:var(--erreur)}.consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--doux);margin-top:10px;cursor:pointer;line-height:1.4}.consent input{margin-top:2px;flex-shrink:0}.consent a{color:var(--accent);font-weight:700}.ob-page{min-height:100vh;flex-direction:column;padding:32px 24px;max-width:460px;margin:0 auto}.ob-page,.ob-points{display:flex;justify-content:center}.ob-points{gap:6px;margin:20px 0}.ob-point{width:8px;height:8px;border-radius:50%;background:var(--ligne)}.ob-point.actif{background:var(--vert)}.grille-ecuries{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;max-width:460px;margin:14px auto;padding:0 16px}.ecurie-card{border-radius:14px;padding:14px;color:#fff;cursor:pointer;border:3px solid transparent}.ecurie-card.sel{border-color:var(--or)}.ecurie-nom{font-weight:800;font-size:15px}.ecurie-desc{font-size:11px;opacity:.85;margin-top:4px;line-height:1.35}.bonus-ligne{display:flex;gap:8px;margin-top:10px}.bonus-btn{flex:1 1;padding:8px 6px;border:1px solid var(--ligne);border-radius:9px;background:var(--blanc);font-size:12px;font-weight:700;color:var(--doux);cursor:pointer}.bonus-btn.actif{border:2px solid var(--or);background:#fff8ea;color:#8a5e00}.bonus-btn:disabled{opacity:.45;cursor:not-allowed}.bandeau-bonus{max-width:560px;margin:6px auto 0;padding:0 16px;font-size:12px;color:var(--doux)}.legale{max-width:720px;padding:28px 20px 60px;background:var(--blanc);border-radius:14px;margin:20px auto 30px}.legale h1{color:var(--vert);font-size:22px;margin-bottom:4px}.legale .maj{color:var(--doux);font-size:12px;margin-bottom:18px}.legale h2,.legale h3,.legale strong{color:var(--texte)}.legale h2{font-size:17px;margin:22px 0 8px}.legale li,.legale p{font-size:14px;line-height:1.65;color:#333}.legale ol,.legale ul{padding-left:22px;margin:8px 0}.legale table{border-collapse:collapse;width:100%;font-size:12px;margin:12px 0}.legale td,.legale th{border:1px solid var(--ligne);padding:6px 8px;vertical-align:top}.legale a{color:var(--accent)}.retour-legale{display:inline-block;margin:18px 0 0 20px;color:var(--vert);font-weight:700;font-size:13px;text-decoration:none}.liens-legaux{max-width:460px;margin:18px auto 0;padding:0 16px;text-align:center;font-size:12px}.liens-legaux a{color:hsla(0,0%,100%,.85);margin:0 8px}