:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{background-color:#0f1923;color:#e0e0e0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.app{max-width:1200px;margin:0 auto;padding:20px}header{text-align:center;padding:20px 0 10px}header h1{font-size:2rem;color:#4fc3f7}header p{color:#90a4ae;margin-top:5px}.onglets{display:flex;gap:5px;margin:20px 0;background:#1a2d3d;border-radius:12px;padding:5px}.onglet{flex:1;padding:12px 16px;border:none;background:transparent;color:#90a4ae;font-size:.95rem;font-weight:600;cursor:pointer;border-radius:8px;transition:all .2s}.onglet:hover{background:#253d50;color:#e0e0e0}.onglet.actif{background:#4fc3f7;color:#0f1923}.matchs-live-container{margin-top:10px}.matchs-live-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px;padding:8px 12px;background:#1a2d3d;border-radius:8px;font-size:.85rem}.maj-info{color:#78909c;font-size:.78rem}.btn-rafraichir{padding:5px 12px;background:#4fc3f7;color:#0f1923;border:none;border-radius:5px;cursor:pointer;font-weight:600;font-size:.82rem}.btn-rafraichir:hover{background:#81d4fa}.aucun-match{text-align:center;color:#78909c;padding:30px;font-style:italic}.liste-matchs-live{display:flex;flex-direction:column;gap:0}.sous-titre-matchs{margin:25px 0 8px;color:#78909c;font-size:.9rem;border-top:1px solid #253d50;padding-top:12px}.match-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#1a2d3d;border-bottom:1px solid #0f1923;cursor:pointer;transition:background .15s;font-size:.82rem;min-height:38px}.match-row:hover{background:#243d52}.match-row.en-cours{border-left:3px solid #f44336}.match-row.termine{border-left:3px solid #4caf50;opacity:.75}.match-row.row-edge{background:#1a3a2a;border-left:3px solid #00ff88}.match-row.row-alpha{background:#2a2a1a;border-left:3px solid #ff6f00}.match-row.row-alpha-lite{background:#2a261a;border-left:3px solid #ff9800}.match-row.row-phoenix{background:#2a1a1a;border-left:3px solid #e53935}.match-row.row-blaze{background:#2a1f0a;border-left:3px solid #ff6d00}.match-row.row-test{background:#7c4dff14!important;border-left:3px solid #7c4dff}.match-row.row-top{background:#ffd7001f!important;border-left:3px solid #ffd700}background: #1a1030; border-left: 3px solid #7c4dff; } .row-statut{flex-shrink:0;font-size:.7rem}.row-tournoi{width:110px;flex-shrink:0;color:#78909c;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-joueur{width:120px;flex-shrink:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-joueur.j1{text-align:right}.row-joueur.j2{text-align:left}.row-joueur.joueur-cible{color:#0f8;text-shadow:0 0 6px rgba(0,255,136,.3)}.row-joueur.joueur-cible-lite{color:#ffab40;text-shadow:0 0 6px rgba(255,171,64,.4)}.row-joueur.joueur-gagnant{color:#4caf50}.row-cote{width:40px;flex-shrink:0;text-align:center;color:#ff9800;font-weight:700;font-size:.78rem}.row-score{font-size:1.1rem;font-weight:800;color:#ffd600;width:20px;text-align:center;flex-shrink:0}.row-vs{color:#546e7a;font-size:.75rem;flex-shrink:0}.row-sets{flex:0 0 auto;display:flex;align-items:center;gap:0;font-size:.72rem;font-family:Courier New,monospace;min-width:0}.row-set-score{color:#fff59d;white-space:nowrap}.row-set-sep{color:#555;margin:0 3px}.row-h2h{flex:0 0 auto;display:flex;align-items:center;gap:2px;font-size:.7rem;margin-left:6px;min-width:0}.h2h-w{color:#0f8;font-size:.6rem}.h2h-l{color:#f44;font-size:.6rem}.h2h-ratio{color:#aaa;font-size:.65rem;margin-left:3px;font-weight:600}.h2h-none{color:#444}.row-signal{padding:2px 8px;border-radius:3px;font-size:.68rem;font-weight:700;white-space:nowrap;flex-shrink:0}.row-signals-cumul{display:flex;gap:3px;flex-shrink:1;flex-wrap:nowrap;max-width:200px;overflow:hidden}.row-signal-mini{padding:1px 5px;border-radius:3px;font-size:.6rem;font-weight:700;white-space:nowrap}.badge-edge{background:#0f8;color:#0f1923}.badge-alpha{background:#ff6f00;color:#fff}.badge-alpha-lite{background:#ff9800;color:#0f1923}.badge-phoenix{background:#e53935;color:#fff}.badge-blaze{background:#ff6d00;color:#fff}.badge-test{background:#7c4dff;color:#fff}.badge-top{background:linear-gradient(135deg,gold,#ff8c00);color:#000;font-weight:700}.badge-rejete{background:#555;color:#aaa}.badge-ml{background:#9b59b6;color:#fff}.badge-citadelle{background:#4caf50;color:#fff}.badge-rejete{background:#e5737333;color:#ef9a9a}.row-signal-vide{width:60px;flex-shrink:0;text-align:center;color:#37474f;font-size:.7rem}.row-cote-figee{padding:2px 8px;border-radius:3px;font-size:.75rem;font-weight:700;white-space:nowrap;flex-shrink:0;background:#1b5e20;color:#ffd600;border:1px solid #2e7d32}.row-btn{flex-shrink:0;color:#4fc3f7;font-size:.75rem;width:20px;text-align:center}.match-detail{background:#15232f;border-left:3px solid #4fc3f7;padding:12px 16px;margin-bottom:2px;font-size:.78rem;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:800px}}.detail-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.75rem;color:#78909c}.detail-joueurs{display:flex;align-items:center;gap:10px;margin-bottom:8px}.detail-j{flex:1;padding:6px 10px;background:#253d50;border-radius:5px}.detail-j.gagnant{background:#1b5e20;border:1px solid #4caf50}.detail-nom{font-weight:700;font-size:.85rem;display:block}.detail-info{font-size:.7rem;color:#90a4ae}.detail-score-central{text-align:center;flex-shrink:0}.detail-score{font-size:1.3rem;font-weight:800;color:#ffd600;display:block}.detail-sets-line{font-size:.72rem;color:#90a4ae;font-family:Courier New,monospace}.detail-signal{padding:5px 10px;margin:4px 0;border-radius:4px;font-size:.75rem;line-height:1.4}.signal-ml-actif{background:#9b59b61a;border-left:3px solid #9b59b6;color:#d7bde2}.signal-neutre{background:#78909c0d;color:#78909c;font-size:.7rem}.signal-citadelle-actif{background:#4caf5014;border-left:3px solid #4caf50;color:#a5d6a7}.signal-top-actif{background:#ffd7001a;border-left:3px solid #ffd700;color:#ffe082}.signal-alpha-actif{background:#ff6f001a;border-left:3px solid #ff6f00;color:#ffcc80}.signal-phoenix-actif{background:#e539351a;border-left:3px solid #e53935;color:#ef9a9a}.signal-blaze-actif{background:#ff6d001a;border-left:3px solid #ff6d00;color:#ffcc80}.signal-test-actif{background:#7c4dff1a;border-left:3px solid #7c4dff;color:#b39ddb}.signal-rejete{background:#f443360f;border-left:3px solid #e57373;color:#ef9a9a;font-size:.7rem}.signal-attente{background:#ff98000f;border-left:3px solid #ffb74d;color:#ffe0b2;font-size:.7rem}.signal-double{background:#ff98001a;border-left:3px solid #ff9800;color:#ffcc80}.detail-wr5{font-size:.7rem;opacity:.85;margin-left:8px}.detail-steps{font-size:.68rem;opacity:.85;margin-top:2px}.detail-analyse{padding:6px 10px;margin:4px 0;background:#4fc3f70d;border-left:3px solid #4fc3f7;border-radius:4px}.detail-confrontations{margin-top:6px;padding-top:4px;border-top:1px solid #253d50;font-size:.72rem}.recherche-container{margin-bottom:15px}.recherche-input{width:100%;padding:12px 16px;background:#1a2d3d;border:2px solid #253d50;border-radius:8px;color:#e0e0e0;font-size:1rem;outline:none;transition:border-color .2s}.recherche-input:focus{border-color:#4fc3f7}.recherche-input::placeholder{color:#546e7a}.compteur-joueurs{color:#78909c;font-size:.85rem;margin-bottom:10px}.liste-joueurs{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.carte-joueur{background:#1a2d3d;border-radius:10px;padding:15px;border-left:3px solid #4fc3f7}.joueur-entete{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.joueur-nom{font-weight:700;font-size:1rem;color:#e0e0e0}.joueur-elo{background:#4fc3f7;color:#0f1923;padding:3px 10px;border-radius:12px;font-weight:700;font-size:.8rem}.joueur-stats{display:flex;gap:15px;margin-bottom:10px}.stat{display:flex;flex-direction:column;align-items:center}.stat-valeur{font-weight:700;color:#4fc3f7;font-size:.9rem}.stat-label{font-size:.7rem;color:#78909c;text-transform:uppercase}.joueur-forme{display:flex;align-items:center;gap:8px}.forme-label{font-size:.75rem;color:#78909c}.forme-pastilles{display:flex;gap:3px}.forme-pastille{font-size:.7rem}.calculateur{background:#1a2d3d;border-radius:12px;padding:25px}.calculateur h2{color:#4fc3f7;margin-bottom:8px}.explication{color:#90a4ae;font-size:.9rem;margin-bottom:20px}.champs{display:flex;gap:15px;flex-wrap:wrap}.champ{flex:1;min-width:180px}.champ label{display:block;margin-bottom:5px;color:#90a4ae;font-size:.85rem;font-weight:600}.champ select,.champ input{width:100%;padding:10px;background:#0f1923;border:2px solid #253d50;border-radius:6px;color:#e0e0e0;font-size:.9rem;outline:none}.champ select:focus,.champ input:focus{border-color:#4fc3f7}button{padding:10px 25px;background:#4fc3f7;color:#0f1923;border:none;border-radius:8px;font-weight:700;font-size:1rem;cursor:pointer;transition:background .2s}button:hover{background:#81d4fa}.resultat-analyse{display:flex;gap:15px;margin-top:20px;flex-wrap:wrap}.analyse-joueur{flex:1;min-width:200px;padding:15px;border-radius:8px;background:#253d50}.analyse-joueur h3{margin-bottom:10px;font-size:1rem}.analyse-joueur p{margin-bottom:5px;font-size:.9rem}.analyse-joueur.value{border:2px solid #4caf50;background:#1b3a1b}.analyse-joueur.pas-value{border:2px solid #f44336;background:#3a1b1b}.verdict{font-weight:700;font-size:1.1rem;margin-top:8px}.resultat.erreur{margin-top:15px;padding:12px;background:#3a1b1b;border:1px solid #f44336;border-radius:6px;color:#ef9a9a}.signal-citadelle{font-size:.75rem;padding:5px 10px;margin-bottom:4px;border-radius:5px;line-height:1.4}.signal-citadelle.actif{background:#4caf5014;border-left:3px solid #4caf50;color:#a5d6a7}.signal-citadelle.rejete{background:#f443360f;border-left:3px solid #e57373;color:#ef9a9a;font-size:.7rem;opacity:.8}.signal-citadelle.attente{background:#ff98000f;border-left:3px solid #ffb74d;color:#ffe0b2;font-size:.7rem}.signal-citadelle strong{font-size:.78rem}.citadelle-steps{font-size:.68rem;opacity:.85;line-height:1.3;margin-top:2px}.carte-match-live{background:#1a2d3d;border-radius:6px;margin-bottom:4px;overflow:hidden}.carte-match-live.signal-strong{box-shadow:0 0 8px #00ff8826}.match-row-compact{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;border-radius:6px;background:#ffffff08;transition:background .15s;font-size:.9em;flex-wrap:nowrap;overflow:hidden}.match-row-compact:hover{background:#ffffff14}.match-row-compact.ouvert{background:#ffffff0f;border-bottom:1px solid rgba(255,255,255,.1);border-radius:6px 6px 0 0}.row-badge{flex-shrink:0;font-size:.75em}.row-j1,.row-j2{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.row-j1{text-align:right}.row-j2{text-align:left}.row-score{font-weight:700;color:#ffd600;white-space:nowrap;flex-shrink:0;min-width:32px;text-align:center}.row-sets{color:#90a4ae;font-size:.8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.row-total{color:#ff9800;font-size:.8em;white-space:nowrap;flex-shrink:0}.row-signal-badge{font-size:.7em;padding:1px 6px;border-radius:4px;white-space:nowrap;font-weight:700;flex-shrink:0}.row-signal-badge.edge{background:#0f83;color:#0f8}.row-signal-badge.citadelle-go{background:#4caf5033;color:#a5d6a7}.row-signal-badge.citadelle-rej{background:#ff525226;color:#ff8a80}.row-toggle{margin-left:auto;flex-shrink:0;font-size:.8em;color:#607d8b;padding:0 4px}.match-detail-accordion{padding:8px 10px;border-top:none;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}.signal-strong .match-row-compact{border-left:3px solid #00ff88}@media(max-width:500px){.row-sets{display:none}.row-j1,.row-j2{max-width:80px}}.signaux-colonnes{display:flex;gap:8px;margin:8px 0;min-height:60px}.signaux-col{flex:1;min-width:0;border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px}.signaux-externe{background:#7c4dff14;border:1px solid rgba(124,77,255,.25)}.signaux-nos{background:#00bcd414;border:1px solid rgba(0,188,212,.25)}.signaux-col-titre{font-weight:700;font-size:.85em;text-transform:uppercase;letter-spacing:.5px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:4px}.signaux-externe .signaux-col-titre{color:#b388ff}.signaux-nos .signaux-col-titre{color:#80deea}.signaux-col .signal-citadelle{margin:2px 0;padding:6px 8px;font-size:.85em}.signaux-col .notre-analyse-inner{padding:0}.signaux-col .analyse-filtres{gap:4px}.signaux-col .analyse-ligne{padding:3px 6px;font-size:.85em}.signaux-col .analyse-verdict{font-size:.85em;padding:6px 8px;margin-top:4px}@media(max-width:600px){.signaux-colonnes{flex-direction:column}}.notre-analyse{font-size:.75rem;padding:6px 10px;margin-top:4px;background:#4fc3f70d;border-left:3px solid #4fc3f7;border-radius:5px;line-height:1.5}.analyse-titre{font-weight:700;font-size:.8rem;color:#4fc3f7;margin-bottom:3px}.analyse-filtres{font-size:.72rem}.analyse-ligne{display:flex;align-items:baseline;gap:4px;padding:1px 0;line-height:1.3}.analyse-ligne.filtre-ok{color:#a5d6a7}.analyse-ligne.filtre-neutre{color:#90a4ae}.analyse-ligne.filtre-ko{color:#ef9a9a}.filtre-icone{flex-shrink:0}.filtre-texte{flex:1}.filtre-seuil{color:#546e7a;font-size:.65rem;flex-shrink:0}.analyse-verdict{margin-top:4px;padding:3px 8px;border-radius:4px;font-weight:700;font-size:.78rem;text-align:center}.verdict-go{background:#4caf5026;color:#66bb6a}.verdict-strong{background:#00ff881f;color:#0f8}.verdict-aucun{background:#78909c1a;color:#78909c}.double-signal{font-size:.75rem;padding:4px 10px;margin-top:3px;background:#ff98001a;border-left:3px solid #ff9800;border-radius:4px;color:#ffcc80}.confrontations{font-size:.72rem;margin-top:6px;padding-top:4px;border-top:1px solid #253d50}.confrontations-titre{font-weight:600;color:#78909c;font-size:.72rem}.confrontations-titre.aucune{font-style:italic;opacity:.6}.confrontations-liste{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px}.confrontation-item{display:inline-block;padding:1px 6px;margin:1px 2px;border-radius:3px;font-size:.68rem;white-space:nowrap}.confrontation-item.victoire-j1{background:#4caf5026}.confrontation-item.victoire-j2{background:#f4433626}.cumul-points{font-weight:700}.badge-techkie{background:#ff5722;color:#fff;padding:1px 6px;border-radius:3px;font-size:.65rem;font-weight:700;margin-left:4px}.badge-blacklist{margin-right:3px}.score-source{font-weight:600;color:#ffd600}.cote-live{font-size:.85rem;font-weight:700;color:#ff9800;margin-left:6px}.score-cote-container{display:flex;align-items:center;gap:4px;flex-shrink:0}.rating-live{font-size:.7rem;color:#90a4ae;margin-left:4px}.forme-jour{font-size:.7rem;color:#aed581;margin-left:4px}.signal-type{font-size:.7rem;opacity:.7}.chargement{text-align:center;padding:50px;color:#4fc3f7;font-size:1.2rem}.erreur-connexion{text-align:center;padding:50px;color:#f44336;font-size:1.1rem}@media(max-width:900px){.row-tournoi{width:80px}.row-joueur{width:90px}.row-sets,.row-h2h{display:none}}@media(max-width:600px){.match-row{font-size:.75rem;gap:4px;padding:6px 8px}.row-tournoi{display:none}.row-joueur{width:70px;font-size:.75rem}.row-cote{width:35px;font-size:.7rem}.detail-joueurs{flex-direction:column}.onglets{font-size:.8rem}.onglet{padding:10px 8px;font-size:.8rem}.champs{flex-direction:column}}.row-f1{border-left:3px solid #ff9800;background:#ff98000f}.badge-f1{background:#e65100;color:#fff;font-weight:700}.signal-f1-actif{background:#ff98001f;border-left:3px solid #ff9800;padding:6px 8px;border-radius:4px;font-size:.82rem;color:#ffe0b2}
