:root{--lpl-bg:#08111f;--lpl-panel:#101d31;--lpl-panel2:#142641;--lpl-line:rgba(255,255,255,.10);--lpl-text:#f5f8ff;--lpl-muted:#96a8c2;--lpl-cyan:#27d8ff;--lpl-orange:#ff8b28;--lpl-green:#38d996;--lpl-red:#ff5e70;--lpl-gold:#f3c84b;--lpl-radius:18px}
.lpl-app{max-width:1240px;margin:0 auto;padding:28px 20px 70px;color:var(--lpl-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.lpl-app *{box-sizing:border-box}.lpl-player-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 26px}.lpl-player-nav a{color:#cfe0f7;text-decoration:none;padding:10px 14px;border:1px solid var(--lpl-line);border-radius:999px;background:rgba(255,255,255,.03);font-size:14px}.lpl-player-nav a:hover{border-color:var(--lpl-cyan);color:#fff}.lpl-page-head{padding:34px 36px;margin-bottom:26px;border:1px solid var(--lpl-line);border-radius:var(--lpl-radius);background:linear-gradient(135deg,rgba(39,216,255,.13),rgba(255,139,40,.08) 65%,rgba(255,255,255,.02));position:relative;overflow:hidden}.lpl-page-head:after{content:"";position:absolute;width:180px;height:180px;border:28px solid rgba(255,255,255,.035);border-radius:50%;right:-30px;top:-56px}.lpl-page-head>span,.lpl-eyebrow{color:var(--lpl-cyan);text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.14em}.lpl-page-head h1{margin:4px 0 8px;color:#fff;font-size:clamp(32px,5vw,58px);line-height:1}.lpl-page-head p{max-width:760px;margin:0;color:var(--lpl-muted);font-size:16px}.lpl-division-tabs,.lpl-chat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.lpl-division-tabs button,.lpl-chat-tabs button{border:1px solid var(--lpl-line);background:var(--lpl-panel);color:var(--lpl-muted);padding:11px 16px;border-radius:12px;font-weight:800;cursor:pointer}.lpl-division-tabs button.is-active,.lpl-chat-tabs button.is-active{color:#06121c;background:var(--lpl-cyan);border-color:var(--lpl-cyan)}.lpl-tab-panel{display:none}.lpl-tab-panel.is-active{display:block}.lpl-table-wrap{overflow:auto;border:1px solid var(--lpl-line);border-radius:var(--lpl-radius);background:rgba(10,20,35,.85)}.lpl-table{border-collapse:collapse;width:100%;min-width:860px}.lpl-table th,.lpl-table td{padding:14px 12px;border-bottom:1px solid var(--lpl-line);text-align:center}.lpl-table th{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--lpl-muted);background:rgba(255,255,255,.025)}.lpl-table td:nth-child(2),.lpl-table th:nth-child(2){text-align:left}.lpl-table tbody tr:hover{background:rgba(255,255,255,.025)}.lpl-table tr.promote{box-shadow:inset 4px 0 0 var(--lpl-green)}.lpl-table tr.playoff-up{box-shadow:inset 4px 0 0 var(--lpl-cyan)}.lpl-table tr.playoff-down{box-shadow:inset 4px 0 0 var(--lpl-orange)}.lpl-table tr.relegate{box-shadow:inset 4px 0 0 var(--lpl-red)}.lpl-zone{display:inline-block;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800;white-space:nowrap;background:rgba(255,255,255,.07)}.lpl-zone.promote{color:var(--lpl-green)}.lpl-zone.playoff-up{color:var(--lpl-cyan)}.lpl-zone.playoff-down{color:var(--lpl-orange)}.lpl-zone.relegate{color:var(--lpl-red)}.lpl-section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:34px 0 15px}.lpl-section-title h2{margin:0;color:#fff;font-size:26px}.lpl-round{margin-bottom:24px}.lpl-round h3{font-size:14px;color:var(--lpl-muted);text-transform:uppercase;letter-spacing:.12em}.lpl-match-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lpl-match-card{border:1px solid var(--lpl-line);border-radius:16px;padding:14px 16px;background:linear-gradient(145deg,var(--lpl-panel),rgba(12,25,44,.9))}.lpl-match-card.status-validated{border-color:rgba(56,217,150,.28)}.lpl-match-card.status-disputed{border-color:rgba(255,94,112,.42)}.lpl-match-meta{display:flex;justify-content:space-between;color:var(--lpl-muted);font-size:12px;margin-bottom:14px}.lpl-match-meta em{font-style:normal;color:var(--lpl-cyan)}.lpl-match-main{display:grid;grid-template-columns:1fr 70px 1fr;gap:12px;align-items:center}.lpl-match-main strong:last-child{text-align:right}.lpl-score{text-align:center;font-size:22px;font-weight:900;color:#fff}.lpl-score span{padding:0 5px;color:var(--lpl-muted)}.lpl-score.pending{font-size:11px;color:var(--lpl-orange);letter-spacing:.12em}.lpl-team-public-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.lpl-team-card{display:flex;gap:12px;align-items:center;padding:17px;border:1px solid var(--lpl-line);background:var(--lpl-panel);border-radius:16px}.lpl-team-card img,.lpl-team-mark{width:50px;height:50px;border-radius:14px;object-fit:cover}.lpl-team-mark{display:grid;place-items:center;background:linear-gradient(135deg,var(--lpl-cyan),#3b69ff);color:#041019;font-weight:950}.lpl-team-card h3{margin:0 0 4px;color:#fff;font-size:17px}.lpl-team-card p{margin:0;color:var(--lpl-muted);font-size:12px}.lpl-dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}.lpl-panel,.lpl-rules-card{border:1px solid var(--lpl-line);background:var(--lpl-panel);border-radius:var(--lpl-radius);padding:22px}.lpl-panel h2{margin-top:0}.lpl-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0}.lpl-facts div{padding:12px;border-radius:13px;background:rgba(255,255,255,.035)}.lpl-facts dt{font-size:11px;text-transform:uppercase;color:var(--lpl-muted);margin-bottom:4px}.lpl-facts dd{margin:0;font-weight:800}.lpl-player-match{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--lpl-line)}.lpl-player-match:last-child{border-bottom:0}.lpl-player-match h3{margin:4px 0;color:#fff}.lpl-player-match p{margin:0;color:var(--lpl-muted)}.lpl-final-score{font-size:30px}.lpl-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:12px 17px;background:linear-gradient(135deg,var(--lpl-cyan),#3888ff);color:#03101c!important;text-decoration:none!important;font-weight:900;cursor:pointer;box-shadow:0 8px 30px rgba(39,216,255,.13)}.lpl-btn.secondary{background:linear-gradient(135deg,var(--lpl-orange),#ffbd46)}.lpl-btn.small{padding:9px 12px;font-size:12px}.lpl-match-form{display:none;padding:20px;margin:0 0 14px;border:1px solid rgba(39,216,255,.26);border-radius:16px;background:#0c182a}.lpl-match-form.is-open{display:block}.lpl-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.lpl-match-form label,.lpl-form label,.lpl-accept-rules label{display:block;color:var(--lpl-muted);font-size:13px}.lpl-match-form input,.lpl-form input,.lpl-form select,.lpl-form textarea,.lpl-chat-form input{width:100%;margin-top:6px;border:1px solid var(--lpl-line);border-radius:10px;background:#071321;color:#fff;padding:11px 12px}.lpl-player-stat-box{padding:14px;border:1px solid var(--lpl-line);border-radius:13px}.lpl-player-stat-box strong{display:block;margin-bottom:8px;color:#fff}.lpl-help{color:var(--lpl-muted);font-size:12px}.lpl-notice{padding:16px 18px;border-radius:14px;margin:16px 0;border:1px solid var(--lpl-line);background:var(--lpl-panel)}.lpl-notice.success{border-color:rgba(56,217,150,.45)}.lpl-notice.danger{border-color:rgba(255,94,112,.45)}.lpl-notice.warning{border-color:rgba(255,139,40,.45)}.lpl-notice.info{border-color:rgba(39,216,255,.35)}.lpl-rules-card{line-height:1.75;color:#d6e1ef}.lpl-rules-card h2,.lpl-rules-card h3{color:#fff}.lpl-accept-rules{margin-top:18px;padding:20px;border:1px solid rgba(39,216,255,.35);border-radius:16px;background:rgba(39,216,255,.06)}.lpl-accept-rules label{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:#e8f2ff;margin-bottom:14px}.lpl-accept-rules input[type=checkbox]{margin-top:4px}.lpl-chat{border:1px solid var(--lpl-line);border-radius:var(--lpl-radius);background:var(--lpl-panel);padding:16px}.lpl-chat-messages{height:480px;overflow:auto;padding:10px;background:#071321;border:1px solid var(--lpl-line);border-radius:14px}.lpl-chat-line{max-width:80%;margin:8px 0;padding:10px 12px;border-radius:13px;background:#14243b}.lpl-chat-line.mine{margin-left:auto;background:#113746}.lpl-chat-line strong{display:block;font-size:12px;color:var(--lpl-cyan)}.lpl-chat-line span{display:block;color:#fff;white-space:pre-wrap;overflow-wrap:anywhere}.lpl-chat-line small{color:var(--lpl-muted);font-size:10px}.lpl-chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:10px}.lpl-empty{padding:22px;text-align:center;color:var(--lpl-muted);border:1px dashed var(--lpl-line);border-radius:14px}.lpl-login-box{max-width:520px;margin:60px auto}.lpl-login-box label{display:block;color:var(--lpl-muted)}.lpl-login-box input[type=text],.lpl-login-box input[type=password]{width:100%;padding:10px;background:#071321;color:#fff;border:1px solid var(--lpl-line);border-radius:10px}.lpl-login-box input[type=submit]{border:0;border-radius:10px;padding:11px 16px;background:var(--lpl-cyan);font-weight:900}.lpl-invite-page{max-width:760px}.lpl-form{display:grid;gap:14px}
@media(max-width:900px){.lpl-team-public-grid{grid-template-columns:repeat(2,1fr)}.lpl-dashboard-grid{grid-template-columns:1fr}.lpl-form-grid{grid-template-columns:repeat(2,1fr)}.lpl-match-grid{grid-template-columns:1fr}.lpl-facts{grid-template-columns:1fr}}
@media(max-width:560px){.lpl-app{padding:18px 12px 50px}.lpl-page-head{padding:24px 20px}.lpl-team-public-grid{grid-template-columns:1fr}.lpl-form-grid{grid-template-columns:1fr}.lpl-match-main{grid-template-columns:1fr 48px 1fr;font-size:13px}.lpl-player-match{align-items:flex-start;gap:12px}.lpl-chat-messages{height:400px}.lpl-chat-line{max-width:92%}}

.lpl-team-inline{display:inline-flex;align-items:center;gap:9px;font-weight:800}.lpl-team-inline img{width:30px;height:30px;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.05);padding:2px}.lpl-match-team{display:flex;align-items:center;gap:9px;min-width:0}.lpl-match-team.home{justify-content:flex-end;text-align:right}.lpl-match-team.away{justify-content:flex-start;text-align:left}.lpl-match-team img{width:38px;height:38px;object-fit:contain;border-radius:10px;background:rgba(255,255,255,.04);padding:3px;flex:0 0 auto}.lpl-match-team span{overflow:hidden;text-overflow:ellipsis}@media(max-width:560px){.lpl-match-team{gap:5px}.lpl-match-team img{width:28px;height:28px;border-radius:7px}}

/* V2.2 — fiches joueurs et RL Tracker */
.lpl-team-player-links a,.lpl-player-link{color:#fff;text-decoration:none;font-weight:800}.lpl-team-player-links a:hover,.lpl-player-link:hover{color:var(--lpl-cyan)}.lpl-team-player-links span{color:var(--lpl-muted)}
.lpl-player-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lpl-player-directory-card{display:flex;gap:14px;align-items:center;padding:18px;border:1px solid var(--lpl-line);border-radius:18px;background:linear-gradient(145deg,var(--lpl-panel),rgba(12,25,44,.92));text-decoration:none!important;color:inherit!important;transition:.18s ease}.lpl-player-directory-card:hover{transform:translateY(-2px);border-color:rgba(39,216,255,.45)}.lpl-player-directory-card img,.lpl-player-avatar{width:64px;height:64px;border-radius:16px;object-fit:contain;flex:0 0 auto;background:rgba(255,255,255,.04);padding:4px}.lpl-player-avatar{display:grid;place-items:center;background:linear-gradient(135deg,var(--lpl-cyan),#3b69ff);color:#041019;font-weight:950;font-size:18px}.lpl-player-directory-card h3{margin:4px 0;color:#fff;font-size:20px}.lpl-player-directory-card h3 small{font-size:10px;color:var(--lpl-orange);text-transform:uppercase;letter-spacing:.08em}.lpl-player-directory-card p{margin:4px 0;color:var(--lpl-muted);font-size:12px}.lpl-player-mini-stats{color:#cfe0f7!important}.lpl-back-link{color:var(--lpl-cyan);text-decoration:none;font-weight:800}.lpl-player-profile-head{display:flex;align-items:center;gap:22px;padding:28px;margin-bottom:18px;border:1px solid var(--lpl-line);border-radius:var(--lpl-radius);background:linear-gradient(135deg,rgba(39,216,255,.13),rgba(255,139,40,.07),rgba(255,255,255,.02))}.lpl-player-profile-head img,.lpl-player-profile-avatar{width:96px;height:96px;border-radius:24px;object-fit:contain;background:rgba(255,255,255,.05);padding:7px;flex:0 0 auto}.lpl-player-profile-avatar{display:grid;place-items:center;background:linear-gradient(135deg,var(--lpl-cyan),#3b69ff);color:#041019;font-size:26px;font-weight:950}.lpl-player-profile-head h1{margin:4px 0 6px;color:#fff;font-size:clamp(34px,5vw,58px)}.lpl-player-profile-head p{margin:0;color:var(--lpl-muted)}.lpl-profile-stat-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:14px}.lpl-profile-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.lpl-profile-numbers div,.lpl-rank-values div{padding:14px;border:1px solid var(--lpl-line);border-radius:14px;background:rgba(255,255,255,.03)}.lpl-profile-numbers strong,.lpl-rank-values strong{display:block;color:#fff;font-size:26px;line-height:1}.lpl-profile-numbers span,.lpl-rank-values span{display:block;color:var(--lpl-muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-top:7px}.lpl-epic-name{font-size:20px;color:#fff;font-weight:900}.lpl-rank-seasons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lpl-rank-card{border:1px solid rgba(39,216,255,.25);border-radius:18px;padding:20px;background:linear-gradient(145deg,rgba(39,216,255,.08),rgba(255,255,255,.02))}.lpl-rank-card.is-empty{border-style:dashed;opacity:.75}.lpl-rank-card h3{margin:6px 0 18px;color:#fff;font-size:24px}.lpl-rank-card p{color:var(--lpl-muted)}.lpl-rank-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lpl-rltracker-panel{margin-top:14px}
@media(max-width:1000px){.lpl-player-directory{grid-template-columns:repeat(2,1fr)}.lpl-profile-stat-grid{grid-template-columns:1fr}.lpl-profile-numbers{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.lpl-player-directory{grid-template-columns:1fr}.lpl-player-profile-head{align-items:flex-start;padding:20px}.lpl-player-profile-head img,.lpl-player-profile-avatar{width:72px;height:72px;border-radius:18px}.lpl-rank-seasons{grid-template-columns:1fr}.lpl-rank-values{grid-template-columns:repeat(3,1fr)}.lpl-rank-values strong{font-size:20px}}

/* V2.3 — bracket playoffs */
.lpl-bracket-section{margin:0 0 28px}.lpl-bracket-division-title{margin:22px 0 10px;color:#fff}.lpl-kicker{display:block;color:var(--lpl-orange);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.lpl-calendar-playoffs{margin-top:34px}.lpl-bracket-shell{overflow-x:auto;padding:8px 2px 18px}.lpl-bracket{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:58px;min-width:930px;position:relative;padding:6px 0 8px}.lpl-bracket-round{min-width:0}.lpl-bracket-round>h3{text-align:center;margin:0 0 14px;padding:9px 12px;border:1px solid var(--lpl-line);border-radius:10px;background:rgba(255,255,255,.035);color:#d9e6f6;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.lpl-bracket-round-body{min-height:470px;display:flex;flex-direction:column;justify-content:space-around;gap:18px}.lpl-bracket-match{position:relative;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:#17202c;box-shadow:0 10px 28px rgba(0,0,0,.18);overflow:visible}.lpl-bracket-round:not(.round-3) .lpl-bracket-match::after{content:"";position:absolute;right:-30px;top:50%;width:30px;border-top:2px solid rgba(210,224,240,.55)}.lpl-bracket-team{display:grid;grid-template-columns:28px 1fr 38px;align-items:center;min-height:42px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)}.lpl-bracket-team:last-child{border-bottom:0}.lpl-bracket-team img{width:24px;height:24px;object-fit:contain;margin-left:5px;border-radius:6px}.lpl-bracket-team span{padding:8px 8px;color:#f5f8fc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800}.lpl-bracket-team strong{height:100%;display:grid;place-items:center;background:rgba(255,255,255,.08);font-size:15px;color:#cbd7e6}.lpl-bracket-team.is-winner{background:linear-gradient(90deg,rgba(255,139,40,.08),rgba(255,139,40,.18))}.lpl-bracket-team.is-winner strong{background:var(--lpl-orange);color:#1a0d03}.lpl-bracket-team.is-winner span{color:#fff}.lpl-bracket-champion{position:absolute;right:0;bottom:-48px;width:calc((100% - 116px)/3);padding:10px 14px;border:1px solid rgba(255,139,40,.35);border-radius:10px;background:linear-gradient(135deg,rgba(255,139,40,.12),rgba(255,189,70,.05));text-align:center}.lpl-bracket-champion span{display:block;color:var(--lpl-orange);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.lpl-bracket-champion strong{display:block;color:#fff;font-size:17px;margin-top:2px}.lpl-calendar-playoffs .lpl-bracket{margin-bottom:48px}@media(max-width:700px){.lpl-bracket-shell{margin-left:-6px;margin-right:-6px}.lpl-bracket{min-width:850px;gap:44px}.lpl-bracket-round:not(.round-3) .lpl-bracket-match::after{right:-24px;width:24px}}

/* V2.4 — inscription publique */
.lpl-register-page{max-width:900px}.lpl-register-form{gap:18px}.lpl-register-form .lpl-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lpl-register-form label{font-weight:700;color:#d8e4f4}.lpl-register-form label .lpl-help{display:block;font-weight:400;margin-top:5px}.lpl-register-form .lpl-optional{font-weight:400;color:var(--lpl-muted)}.lpl-check{display:flex!important;align-items:flex-start;gap:10px!important;padding:14px;border:1px solid var(--lpl-line);border-radius:12px;background:rgba(255,255,255,.025)}.lpl-check input{width:auto!important;margin:3px 0 0!important}.lpl-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.lpl-register-actions{display:flex;gap:10px;flex-wrap:wrap}.lpl-registration-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lpl-registration-summary p{margin:0;padding:12px;border:1px solid var(--lpl-line);border-radius:12px;background:rgba(255,255,255,.025)}
@media(max-width:700px){.lpl-register-form .lpl-form-grid,.lpl-registration-summary{grid-template-columns:1fr}}
