/* ---- Pages de texte (légales, classement) ---- */
.page-texte{background:linear-gradient(125deg,#f0ede6 0%,#e9e7e1 61%,#f3f0ea);padding:40px 0 70px;min-height:calc(100vh - 72px)}
.legal,.classement{max-width:900px;margin:0 auto;background:#faf9f5;border:1px solid #e2dfd7;box-shadow:0 10px 35px rgba(50,49,43,.05);padding:36px 40px}
.legal h1,.classement h1{font:400 clamp(32px,4vw,48px)/1.05 var(--serif);letter-spacing:-.04em;margin:14px 0 8px}
.legal .maj{font:12px var(--mono);color:#6a706d;margin:0 0 22px}
.legal h2{font:600 20px/1.25 var(--serif);margin:30px 0 8px}
.legal p,.legal li{font:16px/1.65 var(--serif);color:#30393a}
.legal p{margin:0 0 10px}
.legal ul{margin:0 0 12px;padding-left:20px}
.legal a,.classement .lead a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.legal .fiche{list-style:none;padding:14px 18px;border:1px solid #dcd9d0;background:#fff}
.legal .resume{border:1px solid #9fb8e3;background:#e8eef9;padding:14px 18px;margin:0 0 6px}
.legal .resume p{margin:0;color:#0b2f73}
.tableau{width:100%;border-collapse:collapse;margin:8px 0 12px;font:14px/1.5 var(--serif)}
.tableau th,.tableau td{border:1px solid #dcd9d0;padding:10px 12px;text-align:left;vertical-align:top;background:#fff}
.tableau thead th{background:#f1eee6;font:600 13px var(--sans)}
/* classement */
.classement .lead{font:17px/1.55 var(--serif);color:#434a49;margin:0 0 22px;max-width:680px}
.onglets{display:flex;gap:6px;margin-bottom:14px}
.onglets button{font:600 13px var(--sans);padding:9px 14px;border:1px solid #c9c7c0;background:#fff;color:var(--ink);cursor:pointer}
.onglets button[aria-selected="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.mon-rang{border:1px solid #9fb8e3;background:#e8eef9;color:#0b2f73;padding:10px 14px;font:15px var(--serif);margin:0 0 12px}
.table-wrap{overflow-x:auto}
.tableau-classement{width:100%;border-collapse:collapse;font:15px var(--serif);background:#fff;border:1px solid #dcd9d0}
.tableau-classement th{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#6a706d;text-align:left;padding:10px 14px;border-bottom:1px solid #dcd9d0}
.tableau-classement td{padding:10px 14px;border-bottom:1px solid #eeebe4;word-break:break-word}
.tableau-classement td:nth-child(1){font:600 14px var(--mono);width:70px}
.tableau-classement td:nth-child(3){font-weight:600;color:var(--blue)}
.tableau-classement tr.moi td{background:#e8eef9}
.tableau-classement tbody tr:nth-child(-n+3) td:nth-child(1){color:var(--blue)}
.cta-classement{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;border-top:1px solid #dcd9d0;margin-top:22px;padding-top:18px}
.cta-classement p{font:16px var(--serif);margin:0}
/* page du test : pseudo, champ piège, préparation, rang */
.pseudo-box{margin:0 0 22px}
.pseudo-box label{display:block;font:600 16px var(--serif);margin-bottom:8px}
.pseudo-box input{width:100%;max-width:380px;font:17px var(--serif);padding:12px 14px;border:1px solid #b9b7b0;background:#fff;color:var(--ink)}
.pseudo-box input:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.pseudo-box input[aria-invalid="true"]{border-color:#c0503f}
.pseudo-help{font:13px/1.5 var(--serif);color:#5d6262;margin:8px 0 0;max-width:620px}
.pseudo-help a{color:var(--blue);text-decoration:underline}
.pseudo-error{font:600 14px var(--serif);color:#a3382b;margin:6px 0 0;min-height:0}
.pseudo-error:empty{display:none}
.piege{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.preparing{font:15px var(--serif);color:#0b2f73;background:#e8eef9;border:1px solid #9fb8e3;padding:12px 16px;margin:0 0 16px}
.rank-box{border:1px solid #9fb8e3;background:#f3f6fc;padding:18px 20px;margin-top:18px}
.rank-box h3{font:600 19px var(--serif);margin:0 0 6px}
.rank-box p{font:14px/1.55 var(--serif);color:#3f4645;margin:0 0 12px}
.app-footer{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;padding:18px 16px 96px;background:#e9e7e1;font:12px var(--sans)}
.app-footer a{color:#4a5150;text-decoration:underline;text-underline-offset:3px}
@media(max-width:650px){.legal,.classement{padding:22px 16px}.page-texte{padding:18px 0 50px}.tableau{font-size:13px}.tableau th,.tableau td{padding:8px}.tableau-classement td,.tableau-classement th{padding:8px 9px}.tableau-classement td:nth-child(4){font-size:12px}}
@media print{.app-footer{display:none}}
.lien-retrait{background:none;border:0;padding:0;font:14px var(--serif);color:#0b3a91;text-decoration:underline;cursor:pointer}
/* pays : champ du test, drapeaux et filtre du classement */
.pseudo-box .label-pays{margin-top:18px}
.pays-choix{display:flex;align-items:center;gap:10px;max-width:380px}
.pays-choix select{flex:1;min-width:0;font:17px var(--serif);padding:12px 14px;border:1px solid #b9b7b0;background:#fff;color:var(--ink)}
.pays-choix select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.pays-choix select[aria-invalid="true"]{border-color:#c0503f}
.drapeau{display:inline-block;vertical-align:-3px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.14);object-fit:cover}
.filtre-pays{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.filtre-pays label{font:600 14px var(--sans)}
.filtre-pays select{font:15px var(--sans);padding:8px 10px;border:1px solid #c9c7c0;background:#fff;color:var(--ink);max-width:100%}
.tableau-classement td .drapeau{margin-right:6px}
/* résultat du test : invitation au défi du jour */
.defi-resultat{margin:26px 0;padding:20px 22px;background:#fff;border:1px solid #dcd9d0;border-left:4px solid var(--blue)}
.defi-resultat h2{font:400 24px/1.2 var(--serif);margin:0 0 8px}
.defi-resultat p{font:16px/1.5 var(--serif);color:#3f4442;margin:0 0 14px}
