:root{--batt-red:#d71920;--batt-black:#111214;--batt-yellow:#f4c400;--batt-off:#f6f6f3;--batt-line:#e4e4df;--batt-female:#e83e8c;--batt-mixed:#1677d2;--batt-green:#14804a;--batt-radius:16px;--batt-shadow:0 8px 24px rgba(0,0,0,.07)}
.batt-fftt{font-family:inherit;color:var(--batt-black);max-width:1240px;margin:0 auto;padding:6px 8px 42px;box-sizing:border-box}.batt-fftt *{box-sizing:border-box}.batt-fftt button,.batt-fftt input,.batt-fftt select{font:inherit}.batt-fftt button{appearance:none}.batt-main-panel{display:none}.batt-main-panel.active{display:block}
.batt-main-tabs{display:grid;grid-template-columns:1fr 1fr 1.08fr;gap:5px;background:#fff;border:1px solid var(--batt-line);padding:5px;border-radius:14px;position:sticky;top:6px;z-index:25;box-shadow:0 6px 18px rgba(0,0,0,.09)}.batt-main-tab{border:0!important;background:#f2f2ef!important;color:#252525!important;padding:11px 5px;border-radius:10px;font-weight:950;font-size:10px;text-transform:uppercase;letter-spacing:.025em;cursor:pointer;min-height:44px}.batt-main-tab.active{background:var(--batt-black)!important;color:#fff!important;box-shadow:inset 0 -4px var(--batt-yellow)}
.batt-section{margin:24px 0}.batt-section-head{display:block;margin-bottom:13px}.batt-section-head h2{font-size:25px;line-height:1.02;margin:4px 0 0;text-transform:uppercase;letter-spacing:-.025em}.batt-section-intro{margin:7px 0 0;color:#646464;font-size:12px;line-height:1.45}.batt-section-line{display:block;height:4px;width:72px;background:linear-gradient(90deg,var(--batt-red) 0 42px,var(--batt-yellow) 42px 56px,var(--batt-black) 56px);margin-top:10px;border-radius:4px}.batt-eyebrow{font-size:10px;font-weight:950;letter-spacing:.13em;text-transform:uppercase;color:var(--batt-red)}.batt-empty{border:1px dashed #bbb;padding:18px 12px;border-radius:14px;text-align:center;color:#666;background:#fff;font-size:12px}.batt-muted{color:#777}.batt-data-note{font-size:11px;color:#5e5e5e;background:#fff8d7;border-left:4px solid var(--batt-yellow);padding:10px 11px;margin:13px 0 0;border-radius:0 9px 9px 0;line-height:1.4}
/* Effectif */
.batt-roster-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--batt-black);padding:10px;border-radius:14px;margin-bottom:10px}.batt-roster-filters label{display:grid;gap:4px;color:#ddd;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.045em}.batt-roster-filters label:first-child{grid-column:1/-1}.batt-roster-filters input,.batt-roster-filters select{width:100%;min-width:0;border:0;background:#fff!important;color:#111!important;border-radius:9px;padding:9px 9px;font-size:16px;line-height:1.2;text-transform:none;letter-spacing:0;min-height:42px}
.batt-table-wrap{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.batt-roster-table,.batt-roster-table tbody{display:block;width:100%}.batt-roster-table thead{display:none}.batt-roster-table tr.batt-player-row{display:grid;grid-template-columns:1fr auto auto;gap:7px 10px;background:#fff;border:1px solid var(--batt-line);border-radius:13px;margin-bottom:8px;padding:11px;box-shadow:0 4px 14px rgba(0,0,0,.045);cursor:pointer;outline:none}.batt-roster-table tr.batt-player-row:focus-visible{box-shadow:0 0 0 3px rgba(244,196,0,.5)}.batt-roster-table td{display:block;border:0;padding:0!important;font-size:11px;min-width:0}.batt-roster-table td:before{content:attr(data-label);display:block;font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#8a8a8a;font-weight:900;margin-bottom:2px}.batt-roster-table td:first-child{grid-column:1/-1;padding-right:44px!important;position:relative}.batt-roster-table td:first-child strong{display:block;font-size:15px;line-height:1.2}.batt-roster-table td:first-child small{display:block;color:#888;margin-top:2px}.batt-roster-table td:nth-child(2){grid-column:1}.batt-roster-table td:nth-child(3){grid-column:2}.batt-roster-table td:nth-child(4){grid-column:3;text-align:right}.batt-roster-table td:nth-child(5){grid-column:1}.batt-roster-table td:nth-child(6){grid-column:2}.batt-roster-table td:nth-child(7){grid-column:1/3}.batt-player-more{grid-column:3;grid-row:3/5;display:flex!important;align-items:flex-end;justify-content:flex-end}.batt-player-open{border:0!important;background:var(--batt-black)!important;color:#fff!important;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:950;min-height:38px;white-space:nowrap;cursor:pointer}.batt-sex-badge{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:950}.batt-sex-badge.female{background:#fde8f1;color:#a31255}.batt-sex-badge.male{background:#e6f2fd;color:#0c579c}.batt-progress-pill,.batt-level-pill{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;white-space:nowrap}.batt-progress-pill.up{background:#e7f7ee;color:#0d6f3d}.batt-progress-pill.down{background:#fdeaea;color:#a22121}.batt-level-pill{background:#f0f0ec;color:#333;border:1px solid #deded8}
.batt-progress-section{margin-top:20px;background:var(--batt-off);border-radius:14px;padding:14px}.batt-progress-section.batt-section{margin:24px 0}.batt-progress-head{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:8px}.batt-progress-head h3{font-size:20px;margin:3px 0 0;text-transform:uppercase}.batt-progress-head>span{font-size:9px;color:#777;font-weight:800;text-transform:uppercase;text-align:right}.batt-progress-row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;border-top:1px solid #ddd;padding:9px 0}.batt-progress-row:first-child{border-top:0}.batt-place{display:grid;place-items:center;width:27px;height:27px;background:var(--batt-black);color:#fff;border-radius:50%;font-size:10px;font-weight:950}.batt-progress-row:first-child .batt-place{background:var(--batt-red)}.batt-progress-row strong,.batt-progress-row small{display:block}.batt-progress-row small{font-size:9px;color:#777}.batt-delta{font-size:15px;font-weight:950}.batt-delta.up{color:var(--batt-green)}.batt-delta.down{color:#b22323}
/* Fiche joueur */
html.batt-sheet-open,html.batt-sheet-open body{overflow:hidden}.batt-player-sheet{position:fixed;inset:0;z-index:999999}.batt-player-sheet[hidden]{display:none!important}.batt-player-sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.56)}.batt-player-sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:92vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:12px 12px 28px;box-shadow:0 -15px 40px rgba(0,0,0,.2);overscroll-behavior:contain}.batt-sheet-handle{width:42px;height:5px;border-radius:99px;background:#d2d2d2;margin:0 auto 8px}.batt-player-sheet-close{position:sticky;top:0;z-index:2;float:right;border:0!important;width:38px;height:38px;border-radius:50%;background:var(--batt-black)!important;color:#fff!important;font-size:26px;line-height:1;cursor:pointer}.batt-player-loading,.batt-player-error{padding:40px 12px;text-align:center}.batt-player-detail-head{padding:14px 44px 12px 2px}.batt-player-detail-head h3{font-size:27px;line-height:1.05;margin:5px 0 8px;text-transform:uppercase}.batt-player-detail-meta{display:flex;gap:6px;flex-wrap:wrap}.batt-player-detail-meta span{background:#efefec;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850}.batt-player-kpis{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0 18px}.batt-player-kpis>div{background:var(--batt-black);color:#fff;border-radius:12px;padding:10px}.batt-player-kpis small{display:block;color:#bdbdbd;text-transform:uppercase;font-size:8px;font-weight:900;line-height:1.3}.batt-player-kpis strong{display:block;font-size:20px;margin-top:4px}.batt-player-kpis strong.up{color:#7ee2ae}.batt-player-kpis strong.down{color:#ff9d9d}.batt-player-detail-section{margin:17px 0}.batt-player-detail-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}.batt-history-list,.batt-best-perfs,.batt-recent-games{border:1px solid var(--batt-line);border-radius:12px;overflow:hidden;background:#fff}.batt-history-list>div,.batt-best-perfs>div,.batt-recent-games>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-bottom:1px solid var(--batt-line);font-size:11px}.batt-history-list>div:last-child,.batt-best-perfs>div:last-child,.batt-recent-games>div:last-child{border-bottom:0}.batt-best-perfs span strong,.batt-best-perfs span small,.batt-recent-games span strong,.batt-recent-games span small{display:block}.batt-best-perfs small,.batt-recent-games small{color:#777;font-size:9px;margin-top:2px}.batt-best-perfs b{color:var(--batt-green);white-space:nowrap}.batt-recent-games>div{display:grid;grid-template-columns:28px 1fr auto}.batt-game-result{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-weight:950}.batt-recent-games .win .batt-game-result{background:#e7f7ee;color:#0d6f3d}.batt-recent-games .loss .batt-game-result{background:#fdeaea;color:#a22121}.batt-recent-games b{font-size:10px;color:#555;white-space:nowrap}
/* Equipes */
.batt-team-select-wrap{display:grid;gap:5px;background:var(--batt-black);color:#fff;padding:10px;border-radius:12px;margin-bottom:10px;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}.batt-team-select{width:100%;min-height:44px;border:0;border-radius:9px;background:#fff!important;color:#111!important;padding:8px 10px;font-size:16px}.batt-tabs{display:none}.batt-tab{border:1px solid var(--batt-line)!important;background:#f5f5f2!important;color:#111!important;padding:10px 13px;border-radius:999px;font-size:11px;font-weight:950;cursor:pointer;white-space:nowrap}.batt-tab.active{background:var(--batt-black)!important;color:#fff!important;border-color:var(--batt-black)!important}.batt-tab.female:not(.active){box-shadow:inset 0 -3px var(--batt-female)}.batt-tab.mixed:not(.active){box-shadow:inset 0 -3px var(--batt-mixed)}
.batt-team-panel{display:none;background:#fff;border:1px solid var(--batt-line);border-radius:14px;padding:12px;box-shadow:var(--batt-shadow)}.batt-team-panel.active{display:block}.batt-team-panel.female{border-top:5px solid var(--batt-female)}.batt-team-panel.mixed{border-top:5px solid var(--batt-mixed)}.batt-team-title h3{font-size:24px;text-transform:uppercase;margin:7px 0 2px;line-height:1}.batt-team-title p{margin:0;color:#666;font-size:11px}.batt-team-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:8px;line-height:1;font-weight:950;text-transform:uppercase;letter-spacing:.05em;background:#eee}.batt-team-badge.female{color:#9f1453;background:#fde8f1}.batt-team-badge.mixed{color:#0b559a;background:#e6f2fd}.batt-next-match{display:grid;gap:8px;margin:14px 0;background:#f3f3ef;border-radius:12px;padding:11px;border-left:5px solid var(--batt-black)}.batt-next-match.home{background:#fff8cc;border-left-color:var(--batt-yellow)}.batt-next-match>div:first-child strong{display:block;margin-top:3px;font-size:13px}.batt-next-match>div:last-child{display:grid;grid-template-columns:auto auto;gap:5px 10px;font-size:10px;color:#555}.batt-next-match>div:last-child span:last-child{grid-column:1/-1}.batt-mini-label{font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:var(--batt-red)}.batt-team-grid{display:grid;grid-template-columns:1fr;gap:15px}.batt-team-block h4{font-size:11px;text-transform:uppercase;letter-spacing:.09em;margin:6px 0 8px}.batt-standings-wrap{overflow:hidden;border:1px solid var(--batt-line);border-radius:11px}.batt-standings{border-collapse:collapse;width:100%;table-layout:fixed}.batt-standings th,.batt-standings td{padding:9px 5px;border-bottom:1px solid var(--batt-line);font-size:10px;text-align:center}.batt-standings th{background:#f0f0ed;text-transform:uppercase;font-size:8px;color:#666}.batt-standings th:nth-child(2),.batt-standings td:nth-child(2){text-align:left}.batt-standings th:nth-child(3),.batt-standings td:nth-child(3),.batt-standings th:nth-child(4),.batt-standings td:nth-child(4),.batt-standings th:nth-child(5),.batt-standings td:nth-child(5),.batt-standings th:nth-child(6),.batt-standings td:nth-child(6){display:none}.batt-standings th:first-child,.batt-standings td:first-child{width:35px}.batt-standings th:last-child,.batt-standings td:last-child{width:44px}.batt-standings tr.is-batt{background:#fff5b5}.batt-team-schedule{display:grid;gap:8px}.batt-team-match{border:1px solid var(--batt-line);border-radius:11px;background:#fff;overflow:hidden}.batt-team-match.home{box-shadow:inset 4px 0 var(--batt-yellow)}.batt-team-match-main{display:grid;grid-template-columns:68px 1fr auto;gap:7px 9px;padding:10px}.batt-team-match-date strong,.batt-team-match-date small{display:block}.batt-team-match-date strong{font-size:10px}.batt-team-match-date small,.batt-team-match-fixture small{color:#777;font-size:9px;margin-top:2px}.batt-team-match-fixture strong{font-size:12px;line-height:1.25}.batt-team-match-fixture small{display:block;line-height:1.3;margin-top:4px}.batt-team-match-score{text-align:right}.batt-team-match-score strong{font-size:15px}.batt-team-match-score span{font-size:8px;color:#777;text-transform:uppercase;font-weight:900}.batt-detail-toggle{grid-column:1/-1;min-height:41px;width:100%;border:0!important;background:var(--batt-black)!important;color:#fff!important;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:900;cursor:pointer}.batt-detail-toggle:disabled{opacity:.38}.batt-location-icon{text-align:right;font-size:17px}.batt-match-detail{padding:4px 10px 9px;background:#fafaf8}.batt-detail-row{display:grid;grid-template-columns:1fr 45px 1fr;gap:5px;align-items:center;padding:7px 0;border-bottom:1px solid #e9e9e5;font-size:9px;line-height:1.25}.batt-detail-row:last-child{border-bottom:0}.batt-detail-row span:last-child{text-align:right}.batt-detail-row strong{text-align:center}
/* Evenements & filtres */
.batt-event-filterbox{background:#fff;border:1px solid var(--batt-line);border-radius:14px;padding:9px;margin-bottom:12px;box-shadow:0 4px 14px rgba(0,0,0,.04)}.batt-filter-context[hidden]{display:none!important}.batt-filter-row{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:5px 1px;scrollbar-width:none}.batt-filter-row::-webkit-scrollbar{display:none}.batt-filter-row>span{flex:0 0 auto;width:62px;font-size:8px;font-weight:950;text-transform:uppercase;color:#6f6f6f}.batt-filter{flex:0 0 auto;border:1px solid #d8d8d2!important;background:#f5f5f2!important;color:#151515!important;border-radius:999px;padding:8px 10px;font-size:9px;font-weight:950;white-space:nowrap;cursor:pointer;min-height:36px}.batt-filter.active{background:var(--batt-black)!important;color:#fff!important;border-color:var(--batt-black)!important;box-shadow:inset 0 -3px var(--batt-yellow)}.batt-source-filters{border-bottom:1px solid var(--batt-line);margin-bottom:3px;padding-bottom:8px}.batt-event-list{display:grid;gap:8px}.batt-event-card{display:grid;grid-template-columns:56px 1fr;gap:9px;padding:10px;border:1px solid var(--batt-line);border-radius:13px;background:#fff;position:relative;overflow:hidden}.batt-event-card.is-home{background:#fffdf0;border-color:#e4cf68;box-shadow:0 5px 16px rgba(180,145,0,.12)}.batt-event-card.female:before,.batt-event-card.mixed:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.batt-event-card.female:before{background:var(--batt-female)}.batt-event-card.mixed:before{background:var(--batt-mixed)}.batt-event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--batt-line);padding-right:8px;min-height:66px}.batt-event-date strong{font-size:24px;line-height:.9}.batt-event-date span{font-size:9px;text-transform:uppercase;font-weight:900;margin-top:3px}.batt-event-date small{font-size:8px;text-align:center;margin-top:5px;color:#666}.batt-event-main>div{display:flex;gap:5px;flex-wrap:wrap}.batt-source-badge,.batt-home-highlight{display:inline-flex;border-radius:999px;padding:4px 6px;font-size:7px;font-weight:950;letter-spacing:.04em}.batt-source-badge.fftt{background:#ececeb;color:#333}.batt-source-badge.google{background:#fff0c2;color:#725900}.batt-home-highlight{background:var(--batt-yellow);color:#111}.batt-event-main h3{font-size:13px;line-height:1.25;margin:6px 0 4px}.batt-event-main small,.batt-event-main p{display:block;margin:0;color:#696969;font-size:9px;line-height:1.35}.batt-event-side{display:none}
.batt-calendar-list{display:grid;gap:8px}.batt-calendar-row{display:grid;grid-template-columns:48px 1fr;gap:8px;padding:9px;border:1px solid var(--batt-line);border-radius:12px;background:#fff;position:relative;overflow:hidden}.batt-calendar-row.is-home{background:#fffdf0}.batt-calendar-row.female:before,.batt-calendar-row.mixed:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.batt-calendar-row.female:before{background:var(--batt-female)}.batt-calendar-row.mixed:before{background:var(--batt-mixed)}.batt-cal-date{display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--batt-line);padding-right:7px}.batt-cal-date strong{font-size:20px;line-height:1}.batt-cal-date span{font-size:8px;text-transform:uppercase;font-weight:900}.batt-cal-main{display:flex;gap:5px 6px;flex-wrap:wrap;align-items:center}.batt-cal-main>div{display:flex;gap:4px;flex-wrap:wrap}.batt-cal-main>.batt-event-title{width:100%;font-size:11px;line-height:1.25}.batt-cal-main>small{width:100%;font-size:8px;color:#707070;line-height:1.3}.batt-cal-side{grid-column:2;font-size:12px;margin-top:-3px}.batt-cal-side strong{display:inline-flex;background:var(--batt-black);color:#fff;border-radius:7px;padding:4px 7px}
@media(min-width:700px){
  .batt-fftt{padding:12px 14px 50px}.batt-main-tabs{top:10px;gap:8px;padding:7px;border-radius:17px}.batt-main-tab{font-size:12px;padding:13px 10px}.batt-section{margin:32px 0}.batt-section-head{display:flex;align-items:flex-end;gap:18px}.batt-section-head h2{font-size:34px}.batt-section-intro{font-size:14px}.batt-section-line{flex:1;width:auto;margin:0 0 6px;height:4px;background:linear-gradient(90deg,var(--batt-red) 0 82px,var(--batt-yellow) 82px 120px,var(--batt-black) 120px)}
  .batt-roster-filters{grid-template-columns:2fr repeat(5,minmax(110px,1fr));padding:13px}.batt-roster-filters label:first-child{grid-column:auto}.batt-roster-filters input,.batt-roster-filters select{font-size:13px;min-height:38px}.batt-table-wrap{overflow:auto;background:#fff;border:1px solid var(--batt-line);border-radius:16px;box-shadow:var(--batt-shadow)}.batt-roster-table{display:table;min-width:920px;border-collapse:collapse}.batt-roster-table thead{display:table-header-group}.batt-roster-table tbody{display:table-row-group}.batt-roster-table tr.batt-player-row{display:table-row;background:#fff;border:0;border-radius:0;margin:0;padding:0;box-shadow:none}.batt-roster-table tr.batt-player-row:hover{background:#fafaf7}.batt-roster-table th{background:#f0f0ed;color:#555;text-align:left;text-transform:uppercase;font-size:9px;letter-spacing:.08em;padding:10px;border-bottom:1px solid var(--batt-line)}.batt-roster-table td{display:table-cell!important;padding:10px!important;border-bottom:1px solid var(--batt-line);font-size:12px;vertical-align:middle;text-align:left!important}.batt-roster-table td:before{display:none}.batt-roster-table td:first-child{padding-right:10px!important}.batt-player-more{width:70px}.batt-player-open{min-height:32px;padding:6px 8px}.batt-player-sheet-panel{left:auto;right:18px;bottom:18px;width:min(620px,calc(100vw - 36px));max-height:90vh;border-radius:20px;padding:14px 18px 24px}.batt-player-kpis{grid-template-columns:repeat(4,1fr)}
  .batt-team-select-wrap{display:none}.batt-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.batt-team-panel{padding:20px}.batt-team-title h3{font-size:30px}.batt-next-match{display:flex;justify-content:space-between;align-items:center;padding:14px 15px}.batt-next-match>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end}.batt-next-match>div:last-child span:last-child{grid-column:auto}.batt-team-grid{grid-template-columns:minmax(330px,.9fr) minmax(420px,1.1fr);gap:18px}.batt-standings{min-width:460px;table-layout:auto}.batt-standings th,.batt-standings td{font-size:11px;padding:9px 7px}.batt-standings th:nth-child(3),.batt-standings td:nth-child(3),.batt-standings th:nth-child(4),.batt-standings td:nth-child(4),.batt-standings th:nth-child(5),.batt-standings td:nth-child(5),.batt-standings th:nth-child(6),.batt-standings td:nth-child(6){display:table-cell}.batt-team-match-main{grid-template-columns:100px 1fr 70px 58px}.batt-detail-toggle{grid-column:auto;width:auto;min-height:32px;padding:6px}.batt-detail-row{font-size:10px}
  .batt-event-filterbox{padding:12px}.batt-filter-row>span{width:78px}.batt-filter{font-size:10px;padding:8px 12px}.batt-event-card{grid-template-columns:68px 1fr auto;gap:13px;padding:13px}.batt-event-date strong{font-size:28px}.batt-event-main h3{font-size:15px}.batt-event-main small,.batt-event-main p{font-size:11px}.batt-event-side{display:block;align-self:center;font-size:20px}.batt-calendar-row{grid-template-columns:58px 1fr auto;align-items:center}.batt-cal-side{grid-column:auto;margin:0;text-align:right}
}
@media(max-width:370px){.batt-fftt{padding-left:5px;padding-right:5px}.batt-main-tab{font-size:9px}.batt-roster-filters{grid-template-columns:1fr}.batt-roster-filters label:first-child{grid-column:auto}.batt-roster-table tr.batt-player-row{grid-template-columns:1fr auto}.batt-roster-table td:nth-child(4),.batt-player-more{grid-column:2}.batt-roster-table td:nth-child(7){grid-column:1/-1}.batt-filter-row>span{width:54px}.batt-player-kpis{grid-template-columns:1fr 1fr}}

.batt-fftt [hidden]{display:none!important}
/* V0.7.0 — navigation 4 rubriques & corrections mobile-first */
.batt-main-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.batt-main-tab{font-size:9px;padding:10px 3px}.batt-source-badge.team{background:#ececeb;color:#333}.batt-source-badge.individual{background:#fff0c2;color:#725900}.batt-source-badge.other{background:#f0f0ed;color:#333}.batt-star-pill{background:#fff2a8!important;color:#5c4700!important}.batt-player-progress-summary{display:grid;grid-template-columns:110px 1fr;gap:9px;align-items:center;background:var(--batt-black);color:#fff;border-radius:14px;padding:10px;margin:4px 0 14px}.batt-player-progress-summary small{display:block;color:#bbb;font-size:8px;font-weight:900;text-transform:uppercase}.batt-player-progress-summary strong{display:block;margin-top:4px;font-size:20px}.batt-player-progress-summary strong.up{color:#7ee2ae}.batt-player-progress-summary strong.down{color:#ff9d9d}.batt-mini-chart{min-width:0;color:var(--batt-yellow)}.batt-mini-chart svg{display:block;width:100%;height:62px}.batt-mini-chart span{display:block;text-align:right;color:#ddd;font-size:8px;margin-top:-3px}.batt-recent-first{margin-top:10px}.batt-pool-other{margin-top:12px;border-top:1px solid var(--batt-line);padding-top:8px}.batt-pool-other summary{cursor:pointer;font-size:9px;text-transform:uppercase;font-weight:950;color:#666;list-style:none;display:flex;justify-content:space-between;gap:10px;padding:7px 1px}.batt-pool-other summary::-webkit-details-marker{display:none}.batt-pool-other summary span{background:#ecece8;border-radius:999px;padding:2px 7px}.batt-pool-other>div{display:grid;gap:5px}.batt-team-match.is-other{opacity:.72;background:#fafaf8;border-style:dashed}.batt-team-match.is-other .batt-team-match-main{grid-template-columns:65px 1fr auto;padding:7px 8px}.batt-team-match.is-other .batt-team-match-date strong,.batt-team-match.is-other .batt-team-match-fixture strong{font-size:9px;font-weight:750}.batt-team-match.is-other .batt-team-match-score strong{font-size:11px}.batt-individual-quick{margin:-2px 0 12px}.batt-individual-quick a{display:block;background:var(--batt-black);color:#fff!important;text-decoration:none;border-radius:12px;padding:12px 13px;font-size:11px;font-weight:900;box-shadow:inset 0 -4px var(--batt-yellow)}
@media(min-width:700px){.batt-main-tab{font-size:11px}.batt-roster-filters{grid-template-columns:2fr repeat(6,minmax(105px,1fr))}.batt-player-progress-summary{grid-template-columns:140px 1fr}.batt-mini-chart svg{height:72px}.batt-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.batt-tab{flex:0 0 auto}.batt-individual-quick{max-width:420px}}
@media(max-width:430px){.batt-main-tabs{overflow-x:auto;display:flex;scrollbar-width:none}.batt-main-tabs::-webkit-scrollbar{display:none}.batt-main-tab{flex:0 0 92px}.batt-main-tab:nth-child(3){flex-basis:106px}.batt-player-progress-summary{grid-template-columns:92px 1fr}.batt-player-progress-summary strong{font-size:17px}}
.batt-pool-other-title{font-size:9px;text-transform:uppercase;font-weight:950;color:#777;display:flex;justify-content:space-between;gap:10px;padding:7px 1px}.batt-pool-other-title span{background:#ecece8;border-radius:999px;padding:2px 7px}

/* V0.7.0 — identité visuelle BATT.club inspirée de la page Compétitions individuelles */
.batt-fftt{background:#efefef;padding-top:0}
.batt-main-tabs{top:0;background:#efefef;border:0;border-bottom:1px solid #cfcfcf;border-radius:0;box-shadow:none;padding:6px 0;gap:4px;overflow-x:auto;display:flex;scrollbar-width:none}
.batt-main-tabs::-webkit-scrollbar{display:none}
.batt-main-tab{flex:0 0 auto;min-width:104px;min-height:42px;border:1px solid #cfcfcf!important;border-radius:0;background:#e9e9e9!important;color:#111!important;font-size:8px;padding:9px 8px;line-height:1.15;box-shadow:none!important}
.batt-main-tab:nth-child(2){min-width:150px}.batt-main-tab:nth-child(3){min-width:155px}.batt-main-tab:nth-child(4){min-width:135px}
.batt-main-tab.active{background:#111214!important;color:#fff!important;border-color:#111214!important;box-shadow:inset 0 -4px var(--batt-red)!important;position:relative}
.batt-main-tab.active:after{content:"";position:absolute;right:8px;bottom:0;width:18px;height:4px;background:var(--batt-yellow)}
.batt-section{margin:18px 0;background:#efefef}
.batt-section-head{padding:9px 9px 10px;border-left:4px solid var(--batt-red);border-bottom:1px solid #d5d5d5;background:#f4f4f4;margin-bottom:10px}
.batt-section-head h2{font-size:20px;margin-top:2px}.batt-section-head .batt-eyebrow{font-size:8px;color:#666}.batt-section-intro{font-size:10px;color:#666;margin-top:4px}.batt-section-line{display:none}
.batt-roster-filters,.batt-team-select-wrap,.batt-event-filterbox{border-radius:0;background:#111214;box-shadow:inset 0 -3px var(--batt-yellow)}
.batt-roster-filters input,.batt-roster-filters select,.batt-team-select{border-radius:0!important;border:1px solid #d7d7d7!important}
.batt-roster-table tr.batt-player-row,.batt-team-panel,.batt-team-match,.batt-event-card,.batt-calendar-row,.batt-empty,.batt-player-sheet-panel,.batt-history-list,.batt-best-perfs,.batt-recent-games{border-radius:0}
.batt-roster-table tr.batt-player-row{border-color:#d4d4d4;box-shadow:none}.batt-roster-table tr.batt-player-row:nth-child(even){background:#fafafa}
.batt-player-open,.batt-detail-toggle{border-radius:0!important;background:#111214!important;box-shadow:inset 0 -3px var(--batt-yellow)}
.batt-level-pill,.batt-progress-pill{border-radius:2px}
.batt-team-select-wrap{padding:8px}.batt-tabs{gap:4px}.batt-tab{border-radius:0;background:#e7e7e7!important;border:1px solid #c9c9c9!important;color:#111!important;box-shadow:none!important}.batt-tab.active{background:#111214!important;color:#fff!important;border-color:#111214!important;box-shadow:inset 0 -4px var(--batt-yellow)!important}.batt-tab.female:not(.active){border-bottom:3px solid var(--batt-female)!important}.batt-tab.mixed:not(.active){border-bottom:3px solid var(--batt-mixed)!important}
.batt-team-block>h4,.batt-player-detail-section h4{background:#111214;color:#fff;padding:8px 9px;margin:0;border-left:4px solid var(--batt-red);font-size:9px;text-transform:uppercase;letter-spacing:.05em}.batt-team-block>h4:after,.batt-player-detail-section h4:after{content:"";display:inline-block;width:10px;height:10px;background:var(--batt-yellow);margin-left:7px;vertical-align:-1px}
.batt-standings-wrap{border:1px solid #d2d2d2;border-top:0}.batt-standings thead th{background:#111214;color:#fff}.batt-standings tr.is-batt td{background:#fff4bf}
.batt-next-match{border-radius:0;background:#f9f9f9;border:1px solid #d0d0d0}.batt-next-match.home{background:#fff4bf;border-color:#d8bc3f}
.batt-event-filterbox{border:0}.batt-filter{border-radius:0!important;background:#f1f1f1!important;color:#111!important;border:1px solid #d2d2d2!important}.batt-filter.active{background:var(--batt-red)!important;color:#fff!important;border-color:var(--batt-red)!important;box-shadow:inset 0 -3px var(--batt-yellow)}
.batt-event-card,.batt-calendar-row{box-shadow:none;border-color:#d0d0d0}.batt-event-card.is-home,.batt-calendar-row.is-home{background:#fff3b5;border-color:#d9bd48;box-shadow:none}
.batt-source-badge,.batt-home-highlight,.batt-team-badge{border-radius:1px}

/* Page existante des compétitions individuelles, affichée directement dans l'onglet */
.batt-individual-embed-section{background:#efefef}.batt-individual-embed-section .batt-section-head{margin-bottom:7px}
.batt-page-embed{position:relative;background:#efefef;border:1px solid #cfcfcf;min-height:780px;overflow:hidden}
.batt-page-embed-frame{display:block;width:100%;height:1200px;min-height:780px;border:0;background:#efefef}
.batt-page-embed-fallback{padding:8px;background:#111214;text-align:right}.batt-page-embed-fallback a{color:#fff!important;font-size:9px;font-weight:900;text-transform:uppercase;text-decoration:none}.batt-page-embed-fallback a:after{content:"";display:inline-block;width:12px;height:3px;background:var(--batt-yellow);margin-left:7px;vertical-align:middle}
.batt-page-embed.is-loaded .batt-page-embed-fallback{display:none}

/* Top progression FFTT — bloc de classement à la fin de l'effectif */
.batt-progress-ranking{padding:0!important;background:#efefef!important;border:1px solid #d0d0d0;border-radius:0!important;margin-top:18px!important}
.batt-ranking-titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;background:#111214;color:#fff;padding:11px 10px;border-bottom:4px solid var(--batt-red);position:relative}.batt-ranking-titlebar:after{content:"";position:absolute;right:0;bottom:-4px;width:42px;height:4px;background:var(--batt-yellow)}.batt-ranking-titlebar span{display:block;color:#bbb;font-size:7px;font-weight:900;letter-spacing:.13em}.batt-ranking-titlebar h3{margin:2px 0 0;font-size:18px;line-height:1;text-transform:uppercase}.batt-ranking-titlebar small{font-size:8px;color:#ddd;text-transform:uppercase;text-align:right;max-width:120px;line-height:1.25}
.batt-ranking-note{padding:8px 9px;background:#f6f6f6;color:#666;font-size:9px;border-bottom:1px solid #d4d4d4}
.batt-ranking-head{display:grid;grid-template-columns:28px minmax(0,1fr) 60px 70px;gap:7px;background:#111214;color:#fff;padding:7px 8px;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.batt-ranking-head span:nth-child(3),.batt-ranking-head span:nth-child(4){text-align:right}
.batt-ranking-list .batt-progress-row{display:grid;grid-template-columns:28px minmax(0,1fr) 60px 70px;gap:7px;align-items:center;padding:8px;border-top:1px solid #d4d4d4;background:#fff}.batt-ranking-list .batt-progress-row:nth-child(even){background:#f8f8f8}.batt-ranking-list .batt-progress-row.is-top{background:#fff8d8}.batt-ranking-list .batt-progress-row:first-child{border-top:0}.batt-ranking-list .batt-place{width:23px;height:23px;border-radius:0;background:#111214}.batt-ranking-list .is-top-1 .batt-place{background:var(--batt-red)}.batt-ranking-list .is-top-2 .batt-place,.batt-ranking-list .is-top-3 .batt-place{background:#444}.batt-progress-player{min-width:0}.batt-progress-player strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batt-progress-player small{font-size:7px}.batt-current-points,.batt-ranking-list .batt-delta{text-align:right;font-size:12px;font-weight:950}.batt-current-points small,.batt-ranking-list .batt-delta small{font-size:7px;font-weight:700}.batt-ranking-list .batt-delta.up{color:#08733f}.batt-ranking-list .batt-delta.down{color:#ad2525}

@media(min-width:700px){
  .batt-main-tabs{display:grid;grid-template-columns:1fr 1.35fr 1.35fr 1.15fr;gap:5px}.batt-main-tab,.batt-main-tab:nth-child(2),.batt-main-tab:nth-child(3),.batt-main-tab:nth-child(4){min-width:0;font-size:10px}
  .batt-section-head h2{font-size:27px}.batt-page-embed{min-height:1000px}.batt-page-embed-frame{min-height:1000px}
  .batt-ranking-head,.batt-ranking-list .batt-progress-row{grid-template-columns:36px minmax(220px,1fr) 100px 110px;padding-left:12px;padding-right:12px}.batt-progress-player strong{font-size:12px}.batt-current-points,.batt-ranking-list .batt-delta{font-size:14px}
}
@media(max-width:430px){
  .batt-fftt{padding-left:4px;padding-right:4px}.batt-main-tabs{margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}.batt-main-tab{font-size:7px;min-width:92px}.batt-main-tab:nth-child(2){min-width:132px}.batt-main-tab:nth-child(3){min-width:138px}.batt-main-tab:nth-child(4){min-width:118px}.batt-section-head{padding-left:7px}.batt-section-head h2{font-size:18px}.batt-page-embed{border-left:0;border-right:0;margin-left:-4px;margin-right:-4px}.batt-ranking-titlebar{align-items:flex-start;flex-direction:column}.batt-ranking-titlebar small{text-align:left;max-width:none}.batt-ranking-head{grid-template-columns:24px minmax(0,1fr) 50px 62px;padding-left:6px;padding-right:6px}.batt-ranking-list .batt-progress-row{grid-template-columns:24px minmax(0,1fr) 50px 62px;padding-left:6px;padding-right:6px}.batt-progress-player strong{font-size:10px}.batt-current-points,.batt-ranking-list .batt-delta{font-size:11px}}

/* V0.7.4 — ajouts ciblés Effectifs */
.batt-progress-jump{margin:8px 0 12px}.batt-progress-jump .batt-player-open{display:inline-flex;align-items:center;text-decoration:none}.batt-past-progress-image{margin-top:14px}.batt-past-progress-media{background:#fff;border:1px solid #d0d0d0;padding:6px}.batt-past-progress-media img{display:block;width:100%;height:auto}


/* V0.7.4.1 — compatibilité menu BATT.club : aucun calque sticky au-dessus du menu du site */
.batt-main-tabs{position:static!important;top:auto!important;z-index:auto!important}

/* V0.7.4.4 — optimisation CALENDRIER / navigation uniquement sur mobile.
   IMPORTANT : aucune règle desktop n'est modifiée ; ces règles cessent à 699px. */
@media (max-width:699px){
  /* Les encarts-titres éditoriaux sont inutiles sur smartphone : accès direct au contenu. */
  .batt-fftt .batt-section-head{display:none!important}

  /* Navigation du portail : 4 onglets fixes, grille 2 x 2, aucun scroll horizontal. */
  .batt-fftt .batt-main-tabs{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:4px!important;
    overflow:visible!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:5px 0!important;
  }
  .batt-fftt .batt-main-tab,
  .batt-fftt .batt-main-tab:nth-child(2),
  .batt-fftt .batt-main-tab:nth-child(3),
  .batt-fftt .batt-main-tab:nth-child(4){
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:46px!important;
    padding:8px 6px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    line-height:1.15!important;
    font-size:9px!important;
  }
  /* Libellé demandé sur mobile, sans modifier le texte desktop. */
  .batt-fftt .batt-main-tab[data-batt-main-tab="teams"]{font-size:0!important}
  .batt-fftt .batt-main-tab[data-batt-main-tab="teams"]:before{
    content:"Championnats par équipe";
    font-size:9px;
    line-height:1.15;
  }

  /* Calendrier complet : tout reste visible, sans bouton/panneau supplémentaire. */
  .batt-fftt #batt-calendar .batt-event-filterbox{
    padding:9px!important;
    margin:0 0 11px!important;
    overflow:visible!important;
  }
  .batt-fftt #batt-calendar .batt-filter-row{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:stretch!important;
    gap:5px!important;
    overflow:visible!important;
    padding:6px 0!important;
  }
  .batt-fftt #batt-calendar .batt-filter-row>span{
    display:block!important;
    width:100%!important;
    flex:0 0 100%!important;
    padding:0 0 2px!important;
    font-size:8px!important;
    line-height:1.2!important;
  }
  .batt-fftt #batt-calendar .batt-filter{
    flex:1 1 calc(33.333% - 4px)!important;
    min-width:0!important;
    min-height:42px!important;
    padding:7px 5px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-align:center!important;
    line-height:1.15!important;
    font-size:10px!important;
  }

  /* Source : 4 choix principaux en grille 2 x 2, sans scroll horizontal. */
  .batt-fftt #batt-calendar .batt-source-filters{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px!important;
    padding-bottom:9px!important;
  }
  .batt-fftt #batt-calendar .batt-source-filters>span{display:none!important}
  .batt-fftt #batt-calendar .batt-source-filters .batt-filter{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    padding:7px 4px!important;
  }
  .batt-fftt #batt-calendar .batt-source-filters .batt-filter[data-filter-value="team"]{font-size:0!important}
  .batt-fftt #batt-calendar .batt-source-filters .batt-filter[data-filter-value="team"]:before{
    content:"Championnats par équipe";
    font-size:10px;
    line-height:1.12;
  }

  /* Les libellés individuels sont plus longs : 2 colonnes, sans défilement. */
  .batt-fftt #batt-calendar [data-filter-context="individual"] .batt-filter{
    flex:1 1 calc(50% - 3px)!important;
  }

  /* Un peu plus de lisibilité des rendez-vous sur petit écran, sans changer la structure. */
  .batt-fftt #batt-calendar .batt-calendar-list{gap:8px!important}
  .batt-fftt #batt-calendar .batt-calendar-row{
    grid-template-columns:58px minmax(0,1fr)!important;
    padding:10px 8px!important;
    gap:9px!important;
  }
  .batt-fftt #batt-calendar .batt-cal-date strong{font-size:24px!important}
  .batt-fftt #batt-calendar .batt-cal-date span{font-size:9px!important}
  .batt-fftt #batt-calendar .batt-cal-main>.batt-event-title{font-size:12px!important;line-height:1.25!important}
  .batt-fftt #batt-calendar .batt-cal-main>small{font-size:9px!important;line-height:1.35!important}
}
