/* Copyright © 2026 Pantheas Académie. Licensed under GPL-2.0-or-later. */
.ffs-app{--ffs-navy:#122a43;--ffs-teal:#007e82;--ffs-orange:#eea534;--ffs-light:#f2f7f8;--ffs-line:#dce6eb;--ffs-muted:#5a6d7e;color:var(--ffs-navy);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.55;max-width:1320px;margin:24px auto;background:#fff;border:1px solid var(--ffs-line);border-radius:20px;overflow:hidden;box-shadow:0 14px 45px #122a4309;text-align:left;box-sizing:border-box}
.ffs-app *{box-sizing:border-box}.ffs-app h2,.ffs-app h3,.ffs-app h4{font-family:inherit;color:inherit;line-height:1.25;margin:0 0 16px}.ffs-app h2{font-size:clamp(25px,4vw,38px);font-weight:750}.ffs-app h3{font-size:22px}.ffs-app h4{font-size:17px}.ffs-app p{margin:0 0 18px}.ffs-app button,.ffs-app input,.ffs-app select,.ffs-app textarea{font:inherit}.ffs-app button,.ffs-app a.ffs-button{cursor:pointer;border:1px solid var(--ffs-line);border-radius:9px;background:#fff;color:var(--ffs-navy);padding:9px 14px;font-weight:600;line-height:1.35;box-shadow:none;text-decoration:none;min-height:42px;transition:background .15s,color .15s,border-color .15s}.ffs-app button:hover{background:#eaf4f5;border-color:#86b6b9}.ffs-app button:disabled{opacity:.55;cursor:default}.ffs-app .ffs-button{background:var(--ffs-teal);color:#fff;border-color:var(--ffs-teal);display:inline-block}.ffs-app .ffs-button:hover{background:#00666a;color:#fff}.ffs-app :focus-visible{outline:3px solid var(--ffs-orange);outline-offset:3px}.ffs-header{display:flex;justify-content:space-between;gap:20px;background:var(--ffs-navy);color:#fff;padding:32px 36px}.ffs-header h2{color:#fff;margin:9px 0}.ffs-header p{color:#c5d8e4;margin:0}.ffs-eyebrow{font-size:12px;font-weight:750;letter-spacing:2px;color:#6bddcf}.ffs-header-mark{font-size:80px;line-height:1;align-self:center;color:#6bddcf}.ffs-nav{display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px;background:var(--ffs-light);border-bottom:1px solid var(--ffs-line)}.ffs-nav button{border:0;background:transparent}.ffs-nav button.active{background:var(--ffs-teal);color:#fff}.ffs-content{padding:28px}.ffs-title-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.ffs-title-row h3{margin:0}.ffs-muted{font-size:16px;font-weight:400;color:var(--ffs-muted)}.ffs-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.ffs-app .ffs-stat{text-align:left;padding:22px;border-left:4px solid var(--ffs-teal);background:#fff}.ffs-stat strong{font-size:36px;display:block}.ffs-stat span{color:var(--ffs-muted)}.ffs-panel{background:var(--ffs-light);border:1px solid var(--ffs-line);padding:26px;border-radius:14px}.ffs-steps{padding-left:24px}.ffs-steps li{padding:6px 0}.ffs-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;background:var(--ffs-light);padding:18px;border-radius:13px;margin-bottom:24px;align-items:end}.ffs-app label{display:block;font-weight:600;margin:0}.ffs-app input:not([type=radio]):not([type=hidden]):not([type=checkbox]),.ffs-app select,.ffs-app textarea{width:100%;max-width:none;min-height:44px;border:1px solid #b6c8d3;border-radius:8px;background:#fff;color:var(--ffs-navy);padding:9px 11px;margin:6px 0 0;box-shadow:none}.ffs-app input:disabled{background:#e5ecef}.ffs-app input[type=radio]{accent-color:var(--ffs-teal);width:17px;height:17px;margin:0 6px 0 0}.ffs-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ffs-wide{grid-column:1/-1}.ffs-radio{border:1px solid var(--ffs-line);border-radius:10px;padding:12px 16px;margin:0;min-width:0}.ffs-radio legend{padding:0 5px;font-weight:600}.ffs-radio label{display:inline-flex;align-items:center;margin:5px 15px 5px 0;font-weight:400}.ffs-form-footer{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.ffs-form-error{color:#ad2636;display:block;margin-top:8px}.ffs-points{margin-top:24px}.ffs-points[hidden]{display:none}.ffs-hint{font-size:13px;color:var(--ffs-muted);margin:18px 0!important}.ffs-media{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:6px}.ffs-media-label{font-size:13px}.ffs-actions button{margin:3px}.ffs-app .ffs-danger{color:#ad2636}.ffs-app .ffs-link{background:transparent;color:var(--ffs-teal);border:0;padding:3px 0;font-weight:600;text-align:left;min-height:32px}.ffs-app .ffs-link:hover{color:#005e61;text-decoration:underline;background:transparent}.ffs-search{display:flex;gap:12px;align-items:end;margin-bottom:18px}.ffs-search label{max-width:420px;flex:1}.ffs-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:24px}.ffs-count{background:#f3b451;color:#122a43;border-radius:20px;padding:1px 7px;font-size:12px;margin-left:8px}.ffs-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}.ffs-app .ffs-club-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:24px;background:#fff}.ffs-club-card img{height:82px;width:100px;object-fit:contain;margin-bottom:20px}.ffs-club-card h4{margin-bottom:6px}.ffs-club-card small{font-weight:400;color:var(--ffs-muted);margin:10px 0}.ffs-monogram{background:#e4f3f1;color:var(--ffs-teal);display:grid;place-items:center;min-width:74px;height:74px;border-radius:18px;margin-bottom:20px;font-size:24px}.ffs-match-list{display:grid;gap:16px}.ffs-match{padding:20px;border:1px solid var(--ffs-line);border-radius:13px;background:#fff}.ffs-match-meta,.ffs-match footer{display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--ffs-muted)}.ffs-badge{display:inline-block;border-radius:20px;background:#edf2f5;color:#486279;padding:4px 10px;font-size:12px;font-weight:700;white-space:nowrap}.ffs-badge.played{background:#e2f4ed;color:#156843}.ffs-badge.pending,.ffs-badge.postponed{background:#fff1d9;color:#8d580c}.ffs-badge.cancelled{background:#fce9ed;color:#a12f45}.ffs-match-score{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:center;gap:20px;padding:20px 0}.ffs-match-score strong{font-size:27px;text-align:center;white-space:nowrap}.ffs-match-score strong span{color:#91a2ae;font-size:20px}.ffs-match-score button:last-child{text-align:right}.ffs-empty,.ffs-loading,.ffs-error,.ffs-login{padding:28px;border-radius:12px;background:var(--ffs-light)}.ffs-error{background:#fce9ed;color:#8d2739}.ffs-toast{position:fixed;bottom:24px;right:24px;z-index:100002;max-width:min(480px,90vw);background:#0b5f58;color:#fff;padding:16px 22px;border-radius:12px;box-shadow:0 6px 30px #0002}.ffs-toast.is-error{background:#9d2f41}.ffs-dialog{width:min(850px,94vw);max-height:90vh;border:0;border-radius:16px;padding:0;overflow:auto;color:#122a43}.ffs-dialog::backdrop{background:#122a4380}.ffs-modal-inner{border:0;box-shadow:none;margin:0;max-width:none;padding:28px;overflow:visible;border-radius:0}.ffs-detail{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px 20px;margin:20px 0}.ffs-detail dt{font-weight:700}.ffs-detail dd{margin:0;overflow-wrap:anywhere}.ffs-detail-logo{width:120px;max-height:120px;object-fit:contain}.ffs-prewrap{white-space:pre-wrap;margin-top:20px!important}.ffs-codes{display:grid;grid-template-columns:180px 1fr;gap:10px}.ffs-codes dd{margin:0}.ffs-app code{overflow-wrap:anywhere;font-size:13px}
@media(max-width:760px){.ffs-app{border-radius:12px;margin:12px auto;font-size:14px}.ffs-header{padding:24px 20px}.ffs-header-mark{display:none}.ffs-content{padding:18px}.ffs-nav{padding:12px;gap:4px}.ffs-nav button{font-size:13px;padding:9px 10px}.ffs-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ffs-panel{padding:18px}.ffs-form-grid{grid-template-columns:1fr}.ffs-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.ffs-title-row{align-items:flex-start}.ffs-title-row h3{font-size:20px}.ffs-match{padding:15px}.ffs-match-score{grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr);gap:10px}.ffs-match-score button{font-size:13px}.ffs-match-score strong{font-size:23px}.ffs-modal-inner{padding:20px}.ffs-codes{grid-template-columns:1fr}.ffs-detail{grid-template-columns:100px minmax(0,1fr)}.ffs-search{gap:8px}.ffs-card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media(prefers-reduced-motion:reduce){.ffs-app *{transition:none!important}}@media print{.ffs-nav,.ffs-filters,.ffs-search,.ffs-pagination{display:none}.ffs-app{box-shadow:none;border:0}.ffs-header{background:#fff;color:#122a43}.ffs-header h2,.ffs-header p{color:#122a43}.ffs-match{break-inside:avoid}}
.ffs-match-score button::before{content:attr(data-side);display:block;font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--ffs-muted);font-weight:500;margin-bottom:4px}
@media(max-width:480px){.ffs-match-score{grid-template-columns:1fr;gap:8px;padding:15px 0}.ffs-match-score button,.ffs-match-score button:last-child{text-align:center}.ffs-match-score strong{font-size:25px}.ffs-match-score button::before{margin-bottom:2px}}
/* Integrated competition editor, v1.1. */
.ffs-competition-name{max-width:740px}.ffs-app .ffs-add-round{margin:18px 0;background:#e7f5f2;color:#006e6d;border-color:#8cc6c0}.ffs-round-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:2px solid var(--ffs-line);padding:12px 0;margin-top:10px}.ffs-app .ffs-round-tab{display:flex;flex-direction:column;gap:4px;align-items:flex-start;color:#677885;background:#f4f7f9;padding:12px 17px;border-bottom:3px solid transparent}.ffs-app .ffs-round-tab.active{background:#e4f5f1;color:#006e6d;border-color:#84bdb7;border-bottom:3px solid var(--ffs-orange)}.ffs-round-tab small{font-weight:400;font-size:11px}.ffs-round-panel{margin-top:20px;border:1px solid var(--ffs-line);padding:24px;border-radius:14px}.ffs-round-panel .ffs-title-row h4{margin:0}.ffs-round-points{background:var(--ffs-light);padding:20px;border-radius:12px;margin:22px 0}.ffs-round-points[hidden]{display:none}.ffs-ranking-settings{margin-top:18px}.ffs-round-counts{margin-top:22px}.ffs-memberships{border-top:1px solid var(--ffs-line);padding-top:25px;margin-top:24px}.ffs-assign-box{padding:18px;background:var(--ffs-light);border-radius:12px;margin:18px 0}.ffs-available-teams{max-height:230px;overflow:auto;margin:14px 0}.ffs-available-teams label{display:flex;align-items:center;gap:10px;padding:9px 0;font-weight:400;border-bottom:1px solid var(--ffs-line)}.ffs-app .ffs-available-teams input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0;accent-color:var(--ffs-teal)}.ffs-group-summary{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.ffs-group-summary span{background:#e4f3f1;color:#126864;padding:6px 12px;border-radius:8px;font-size:13px}.ffs-bundle-footer{margin-top:24px;border-top:1px solid var(--ffs-line);padding-top:22px}.ffs-bundle-footer button{margin-right:10px}.ffs-public-ranking-settings{padding:20px;border:1px solid var(--ffs-line);background:#f8fbfc;border-radius:13px;margin-bottom:22px}.ffs-public-ranking-settings .ffs-link{margin-top:16px}.ffs-public-ranking-settings .ffs-hint{margin-bottom:0!important}@media(max-width:760px){.ffs-round-panel{padding:16px}.ffs-round-points{padding:12px}.ffs-round-tabs{gap:6px}.ffs-app .ffs-round-tab{padding:10px 12px;font-size:13px}.ffs-assign-box{padding:12px}.ffs-public-ranking-settings{padding:15px}.ffs-memberships .ffs-title-row{display:block}.ffs-memberships .ffs-title-row .ffs-muted{display:block;font-size:13px;margin-top:8px}} 
/* Compact forms and lists, v1.1.2. */
.ffs-app{font-size:14px;line-height:1.4;margin:16px auto;border-radius:14px}.ffs-app h2,.ffs-app h3,.ffs-app h4{margin-bottom:10px}.ffs-app h3{font-size:20px}.ffs-app p{margin-bottom:10px}.ffs-header{padding:22px 26px}.ffs-nav{padding:8px 16px;gap:4px}.ffs-content{padding:18px}.ffs-title-row{gap:10px;margin-bottom:12px}.ffs-app button,.ffs-app a.ffs-button{min-height:34px;padding:6px 10px}.ffs-app input:not([type=radio]):not([type=hidden]):not([type=checkbox]),.ffs-app select,.ffs-app textarea{min-height:34px;padding:5px 8px;margin-top:3px}.ffs-form-grid{gap:9px 12px}.ffs-radio{padding:6px 10px}.ffs-radio label{margin:3px 10px 3px 0}.ffs-panel{padding:16px}.ffs-filters{gap:8px;padding:12px;margin-bottom:14px}.ffs-form-footer{gap:8px;margin-top:14px}.ffs-hint{margin:10px 0!important}.ffs-actions button{margin:1px}.ffs-match-list{gap:9px}.ffs-match{padding:12px}.ffs-match-score{padding:10px 0;gap:12px}.ffs-search{gap:8px;margin-bottom:10px}.ffs-card-grid{gap:12px}.ffs-app .ffs-club-card{padding:15px}.ffs-stats{gap:10px;margin-bottom:14px}.ffs-app .ffs-stat{padding:14px}.ffs-pagination{margin-top:14px;gap:8px}.ffs-modal-inner{padding:18px}.ffs-app .ffs-add-round{margin:10px 0}.ffs-round-tabs{gap:5px;padding:7px 0;margin-top:5px}.ffs-app .ffs-round-tab{padding:7px 11px;gap:2px}.ffs-round-panel{margin-top:12px;padding:15px}.ffs-round-points{padding:12px;margin:12px 0}.ffs-ranking-settings,.ffs-round-counts{margin-top:12px}.ffs-memberships{padding-top:14px;margin-top:14px}.ffs-assign-box{padding:12px;margin:10px 0}.ffs-available-teams{margin:8px 0}.ffs-available-teams label{padding:5px 0;gap:8px}.ffs-group-summary{gap:6px;margin:10px 0}.ffs-group-summary span{padding:4px 8px}.ffs-bundle-footer{margin-top:14px;padding-top:12px}.ffs-public-ranking-settings{padding:12px;margin-bottom:14px}.ffs-public-ranking-settings .ffs-link{margin-top:8px}.ffs-opponents{display:grid;grid-template-columns:minmax(0,1fr) 165px minmax(0,1fr);gap:12px;align-items:start;padding:12px;background:var(--ffs-light);border:1px solid var(--ffs-line);border-radius:10px}.ffs-score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ffs-score-inputs label span{display:block;font-size:12px}.ffs-match-details{margin-top:12px}
@media(max-width:760px){.ffs-content,.ffs-modal-inner{padding:12px}.ffs-header{padding:16px}.ffs-opponents{grid-template-columns:1fr;gap:8px;padding:10px}.ffs-opponents>.ffs-field:last-child{grid-row:2}.ffs-score-inputs{grid-row:3}.ffs-app input:not([type=radio]):not([type=hidden]):not([type=checkbox]),.ffs-app select,.ffs-app textarea,.ffs-app button{min-height:38px}.ffs-form-grid{gap:8px}.ffs-round-panel,.ffs-panel{padding:12px}.ffs-nav{padding:8px}.ffs-match-score{gap:8px}.ffs-app .ffs-link{min-height:32px}.ffs-available-teams label{min-height:36px}}
/* Date-grouped fixtures, v1.1.5. */
.ffs-calendar-toolbar{margin-bottom:6px}.ffs-calendar-table .ffs-date-heading th{background:var(--ffs-teal);color:white;text-align:left;font-size:14px;padding:7px 12px}.ffs-calendar-table .ffs-calendar-row:nth-child(even){background:#f7fafb}.ffs-calendar-table .ffs-calendar-score{font-weight:750;text-align:center;white-space:nowrap;min-width:85px}.ffs-calendar-table small{display:block;font-size:11px;color:var(--ffs-muted);font-weight:400;margin-top:3px}.ffs-calendar-table .ffs-calendar-context{font-size:12px;min-width:150px}.ffs-calendar-table .ffs-link{min-height:28px;font-weight:500}.ffs-calendar-table td:first-child{white-space:nowrap}.ffs-calendar-table .ffs-actions button{padding:4px 6px;min-height:28px}@media(max-width:760px){.ffs-calendar-table{min-width:750px}.ffs-calendar-table .ffs-link{min-height:34px}.ffs-calendar-table .ffs-actions button{min-height:34px}.ffs-calendar-toolbar{margin-top:4px}}
/* Mobile consultation, v1.1.9. */
@media(max-width:760px){
.ffs-app[data-mode=public] .ffs-content{min-width:0}.ffs-app[data-mode=public] .ffs-filters{grid-template-columns:1fr}.ffs-app[data-mode=public] .ffs-card-grid{grid-template-columns:minmax(0,1fr)}.ffs-app[data-mode=public] .ffs-club-card{width:100%;overflow-wrap:anywhere}.ffs-app[data-mode=public] .ffs-search{flex-wrap:wrap}.ffs-app[data-mode=public] .ffs-search label{min-width:0;width:100%;flex-basis:100%}.ffs-app[data-mode=public] .ffs-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ffs-app[data-mode=public] .ffs-nav button{white-space:normal}
}
/* Simplified public mobile views, v1.2.0. */
.ffs-mobile-name{display:none}
@media(max-width:760px){
}
@media(max-width:760px){.ffs-app[data-mode=public] .ffs-club-card{display:grid;grid-template-columns:60px minmax(0,1fr);gap:5px 12px;align-items:center;padding:12px}.ffs-app[data-mode=public] .ffs-club-card img,.ffs-app[data-mode=public] .ffs-club-card .ffs-monogram{grid-column:1;grid-row:1 / span 2;width:60px;min-width:60px;height:60px;margin:0;border-radius:12px}.ffs-app[data-mode=public] .ffs-club-card h4{grid-column:2;grid-row:1;margin:0;font-size:16px;text-align:left;overflow-wrap:anywhere}.ffs-app[data-mode=public] .ffs-club-card>span:not(.ffs-monogram){grid-column:2;text-align:left}.ffs-app[data-mode=public] .ffs-club-card small{grid-column:2;margin:0;text-align:left}}
@media(max-width:760px){.ffs-app[data-mode=public] .ffs-ranking th:nth-child(1){white-space:nowrap;width:44px}}
.ffs-app .ffs-management-link{margin-top:12px;background:#fff;color:var(--ffs-teal);border-color:#fff}


.ffs-app .ffs-match-list .ffs-club-date-heading{background:var(--ffs-teal);color:#fff!important;padding:7px 12px;margin:6px 0 0;font-size:14px;border-radius:5px}

.ffs-app .ffs-match-list .ffs-club-competition-heading{background:#e4f2f2;color:#122a43;padding:6px 12px;margin:0;font-size:13px;font-weight:750;overflow-wrap:anywhere}

.ffs-app .ffs-sex-symbol{font-size:1.2em;font-weight:900;-webkit-text-stroke:.4px currentColor;display:inline-block;line-height:1;vertical-align:baseline}.ffs-app .ffs-sex-male{color:#1565c0}.ffs-app .ffs-sex-female{color:#c21875}

.ffs-match-detail-card{border:1px solid var(--ffs-line);border-radius:10px;overflow:hidden}.ffs-match-detail-date{background:var(--ffs-teal);color:#fff!important;font-weight:750;padding:8px 12px}.ffs-match-detail-competition{background:#e4f2f2;color:#122a43;font-weight:750;padding:7px 12px;overflow-wrap:anywhere}.ffs-match-detail-card .ffs-match{border:0;border-radius:0;margin:0}.ffs-match-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:4px 0 0}.ffs-match-detail-info>div{padding:8px 10px;background:var(--ffs-light);border-radius:6px;min-width:0}.ffs-match-detail-info dt{color:var(--ffs-muted);font-size:12px}.ffs-match-detail-info dd{margin:3px 0 0;font-weight:600;overflow-wrap:anywhere}.ffs-match-detail-card .ffs-match-score>*{min-width:0;overflow-wrap:anywhere}@media(max-width:480px){.ffs-match-detail-info{grid-template-columns:1fr}.ffs-match-detail-card .ffs-match-score{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)}.ffs-match-detail-card .ffs-match-score strong{font-size:24px}}

.ffs-team-groups{border:1px solid var(--ffs-line);border-radius:10px;overflow:hidden}.ffs-team-club-heading{background:var(--ffs-teal);color:white;display:flex;align-items:center;gap:9px;padding:7px 12px}.ffs-team-club-heading img{width:32px;height:32px;object-fit:contain;background:white;border-radius:5px}.ffs-app .ffs-team-club-heading .ffs-link{color:#fff!important;font-weight:750;text-align:left;padding:2px 0}.ffs-team-list-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.6fr) auto;gap:8px 12px;align-items:center;padding:10px 12px;background:#fff;border-bottom:1px solid var(--ffs-line)}.ffs-team-list-card:nth-child(even){background:#f7fafb}.ffs-app .ffs-team-list-name{text-align:left;font-weight:700;overflow-wrap:anywhere}.ffs-team-list-season{color:var(--ffs-muted);font-size:12px}.ffs-team-list-actions{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:760px){.ffs-team-list-card{grid-template-columns:minmax(0,1fr) auto}.ffs-team-list-season{grid-column:1;grid-row:2}.ffs-team-list-actions{grid-column:2;grid-row:1/3;justify-content:flex-end}.ffs-team-list-actions button{font-size:12px}}

.ffs-calendar-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ffs-app .ffs-week-active{background:var(--ffs-teal);color:white;border-color:var(--ffs-teal)}.ffs-team-detail{border:1px solid var(--ffs-line);border-radius:10px;overflow:hidden}.ffs-team-detail-body{padding:14px}.ffs-app .ffs-team-detail-matches{margin-top:14px}

.ffs-date-range{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.ffs-date-range label{font-size:12px;font-weight:600}.ffs-date-range input{display:block}.ffs-date-range .ffs-form-error{flex-basis:100%}@media(max-width:480px){.ffs-date-range{width:100%}.ffs-date-range label{flex:1;min-width:125px}}

.ffs-date-range-box{border:1px solid var(--ffs-line);border-radius:8px;padding:8px 12px 12px;margin:0;min-width:0}.ffs-date-range-box legend{color:var(--ffs-teal);font-weight:750;font-size:14px;padding:0 6px}.ffs-date-range-fields{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}@media(max-width:480px){.ffs-date-range-box{width:100%}}

.ffs-app .ffs-media{align-items:center}.ffs-app .ffs-logo-preview{display:block;width:72px;height:72px;object-fit:contain;border:1px solid var(--ffs-line);border-radius:8px;background:#fff;padding:4px;flex:0 0 72px}.ffs-app .ffs-club-address,.ffs-app .ffs-club-website{grid-column:1/-1}.ffs-club-leadership{border:1px solid var(--ffs-line);border-radius:12px;padding:16px;background:#fff}.ffs-club-leadership-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.ffs-club-leadership-heading h4{margin:0 0 5px}.ffs-club-leadership-heading .ffs-hint{margin:0!important}.ffs-club-leadership-table{width:100%;overflow-x:auto}.ffs-club-leadership-header,.ffs-club-leadership-summary,.ffs-club-leadership-editor{display:grid;grid-template-columns:minmax(130px,1.3fr) minmax(120px,1fr) minmax(120px,1fr) minmax(110px,.8fr) minmax(145px,1.2fr);gap:10px;align-items:center}.ffs-club-leadership-header{padding:8px 10px;background:var(--ffs-light);font-size:12px;font-weight:700;color:var(--ffs-muted);border-radius:7px 7px 0 0}.ffs-club-leadership-row{border-top:1px solid var(--ffs-line)}.ffs-club-leadership-summary,.ffs-club-leadership-editor{padding:10px}.ffs-club-leadership-summary>*,.ffs-club-leadership-editor>*{min-width:0}.ffs-club-leadership-cell{overflow-wrap:anywhere}.ffs-club-leadership-editor label{font-weight:400}.ffs-club-leadership-editor input:not([type=checkbox]),.ffs-club-leadership-editor select{margin:0!important;min-width:0}.ffs-club-leadership-responsible{display:flex!important;justify-content:center;align-items:center;min-height:40px}.ffs-club-leadership-responsible input{width:18px;height:18px;accent-color:var(--ffs-teal)}.ffs-club-leadership-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.ffs-club-leadership-actions button{min-height:36px;padding:6px 9px!important;font-size:12px}.ffs-club-leadership-list:empty:after{content:'Aucun membre ajouté.';display:block;padding:12px 10px;color:var(--ffs-muted);font-size:13px}.ffs-app .ffs-logo-upload{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ffs-line);border-radius:9px;background:#fff;color:var(--ffs-navy);padding:9px 12px;cursor:pointer;font-weight:600}.ffs-app .ffs-logo-upload input[type=file]{width:190px;max-width:55vw;min-height:0;border:0;padding:0;margin:0}
@media(max-width:700px){.ffs-club-leadership-header{display:none}.ffs-club-leadership-summary,.ffs-club-leadership-editor{grid-template-columns:1fr 1fr;gap:8px}.ffs-club-leadership-cell:before,.ffs-club-leadership-editor label:before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--ffs-muted);font-size:11px;font-weight:700}.ffs-club-leadership-summary .ffs-club-leadership-actions,.ffs-club-leadership-editor .ffs-club-leadership-actions{grid-column:1/-1}.ffs-club-leadership-responsible{justify-content:flex-start}.ffs-club-leadership-heading{flex-wrap:wrap}}

.ffs-app .ffs-logo-preview{order:-1}.ffs-app .ffs-club-year input{width:8ch!important;max-width:8ch!important}.ffs-app input[type=checkbox]{appearance:auto!important;display:inline-block!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;margin:0!important;padding:0!important;border:1px solid #61788a!important;border-radius:3px!important;background:#fff!important;accent-color:var(--ffs-teal);vertical-align:middle;cursor:pointer}.ffs-app input[type=checkbox]:checked{outline:2px solid #007e82;outline-offset:1px}
.ffs-club-form{display:grid;gap:14px}.ffs-club-form-block{min-width:0;border:1px solid var(--ffs-line);border-radius:12px;background:#fff;padding:14px}.ffs-club-form-block>h4{font-size:15px;margin:0 0 12px}.ffs-club-identity-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,3fr) minmax(86px,1fr);gap:12px;align-items:end}.ffs-club-identity-grid .ffs-club-name{grid-column:auto}.ffs-club-identity-grid .ffs-club-year input{width:100%!important;max-width:none!important}.ffs-club-colors-grid,.ffs-club-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ffs-club-contact-grid .ffs-club-address,.ffs-club-contact-grid .ffs-club-website,.ffs-club-contact-grid .ffs-wide{grid-column:1/-1}.ffs-club-logo-control{display:grid!important;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:12px!important;width:100%}.ffs-logo-preview-wrap{grid-column:1;grid-row:1;display:grid;place-items:center;width:84px;height:84px;border:1px solid var(--ffs-line);border-radius:10px;background:#f8fafb}.ffs-app .ffs-logo-preview{order:0;width:72px;height:72px;max-width:72px;object-fit:contain;border:0;padding:2px}.ffs-logo-placeholder{font-size:12px;color:var(--ffs-muted)}.ffs-logo-actions{grid-column:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.ffs-logo-actions .ffs-media-label{flex-basis:100%;color:var(--ffs-muted)}.ffs-logo-upload{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--ffs-line);border-radius:9px;background:#fff;color:var(--ffs-navy);font-weight:600;cursor:pointer}.ffs-app .ffs-logo-upload input[type=file]{width:190px;max-width:min(45vw,190px);min-height:0;margin:0;padding:0;border:0}.ffs-logo-library{white-space:nowrap}
@media(max-width:700px){.ffs-club-identity-grid{grid-template-columns:minmax(0,1fr) minmax(86px,.35fr)}.ffs-club-identity-grid .ffs-club-name{grid-column:1/-1}.ffs-club-colors-grid,.ffs-club-contact-grid{grid-template-columns:1fr}.ffs-club-contact-grid .ffs-club-address,.ffs-club-contact-grid .ffs-club-website,.ffs-club-contact-grid .ffs-wide{grid-column:1}.ffs-club-logo-control{grid-template-columns:72px minmax(0,1fr)}.ffs-logo-preview-wrap{width:72px;height:72px}.ffs-logo-actions{gap:6px}}
.ffs-club-form-block>h4{background:#007e82;color:#fff;margin:-14px -14px 14px;padding:9px 14px;border-radius:11px 11px 0 0}.ffs-club-logo-block .ffs-field>span{display:none}.ffs-logo-actions-box{border:1px solid var(--ffs-line);border-radius:10px;background:#f7fbfb;padding:10px}.ffs-logo-actions-box .ffs-logo-upload{border:0;background:transparent;padding:3px 6px}.ffs-club-leadership-heading{background:#007e82;color:#fff;margin:-16px -16px 14px;padding:10px 14px;border-radius:11px 11px 0 0;align-items:center}.ffs-club-leadership-heading h4{color:#fff;margin:0}.ffs-club-leadership-heading .ffs-hint{color:#e8f5f5;margin:4px 0 0!important}.ffs-club-leadership-heading>button{background:#fff;color:#005e61;border-color:#d8eeee}.ffs-club-table th{background:#00666a;color:#fff;border-bottom-color:#005b5f}.ffs-club-table tbody tr:nth-child(odd){background:#eaf4f3}.ffs-club-table tbody tr:nth-child(even){background:#fff}.ffs-club-table tbody tr:hover{background:#d9edeb}

.ffs-club-admin-logo-cell{width:92px;text-align:center!important}.ffs-club-admin-logo,.ffs-club-admin-monogram{display:inline-grid;place-items:center;width:74px;height:74px;object-fit:contain;vertical-align:middle}.ffs-club-admin-logo{border-radius:18px;background:#e4f3f1;padding:8px}.ffs-club-admin-monogram{border-radius:18px;background:#e4f3f1;color:var(--ffs-teal);font-size:24px;font-weight:600}

.ffs-club-table tbody tr:nth-child(odd) .ffs-club-admin-logo,.ffs-club-table tbody tr:nth-child(odd) .ffs-club-admin-monogram{background:#fff}

.ffs-club-teams-row>td{padding:0!important;background:#f7fafb!important}.ffs-club-teams-accordion{padding:14px 18px 16px 108px}.ffs-club-teams-accordion h4{margin:0 0 9px;font-size:15px}.ffs-club-teams-accordion ul{list-style:none;padding:0;margin:0;border:1px solid var(--ffs-line);border-radius:9px;overflow:hidden}.ffs-club-teams-accordion li{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.45fr);gap:10px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--ffs-line)}.ffs-club-teams-accordion li:last-child{border-bottom:0}.ffs-club-teams-accordion li>span{color:var(--ffs-muted);font-size:13px}@media(max-width:700px){.ffs-club-teams-accordion{padding:12px}.ffs-club-teams-accordion li{grid-template-columns:1fr;gap:3px}}

.ffs-club-detail .ffs-readonly-value{min-height:38px;margin-top:3px;padding:8px 10px;border:1px solid #d2dee5;border-radius:8px;background:#f8fafb;color:var(--ffs-navy);overflow-wrap:anywhere}.ffs-club-detail .ffs-readonly-value a{color:var(--ffs-teal);text-decoration:underline;overflow-wrap:anywhere}.ffs-club-readonly-logo{display:grid!important;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:12px}.ffs-club-readonly-logo .ffs-logo-preview-wrap{grid-column:1;grid-row:1}.ffs-club-readonly-logo .ffs-logo-preview{width:72px;height:72px;max-width:72px;border:0;background:transparent;padding:4px}.ffs-club-profile-monogram{display:grid;place-items:center;width:72px;height:72px;border-radius:14px;background:#e4f3f1;color:var(--ffs-teal);font-size:22px;font-weight:650}.ffs-club-logo-caption{grid-column:2;color:var(--ffs-muted)}.ffs-club-detail-direction-table{overflow-x:auto}.ffs-club-detail-direction-header,.ffs-club-detail-direction-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(100px,1fr) minmax(110px,1fr) minmax(95px,.7fr);gap:10px;align-items:center}.ffs-club-detail-direction-header{padding:8px 10px;background:var(--ffs-light);font-size:12px;font-weight:700;color:var(--ffs-muted);border-radius:7px 7px 0 0}.ffs-club-detail-direction-row{padding:9px 10px;border-top:1px solid var(--ffs-line);overflow-wrap:anywhere}.ffs-club-detail-responsible{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;background:#e4f3f1;color:#007e82;font-weight:800}@media(max-width:700px){.ffs-club-readonly-logo{grid-template-columns:72px minmax(0,1fr)}.ffs-club-detail-direction-header{display:none}.ffs-club-detail-direction-row{grid-template-columns:1fr 1fr;gap:7px}.ffs-club-detail-direction-row>*:nth-child(2):before{content:'Fonction : ';font-weight:700}.ffs-club-detail-direction-row>*:nth-child(3):before{content:'Saison : ';font-weight:700}.ffs-club-detail-direction-row>*:nth-child(4):before{content:'Responsable : ';font-weight:700}}

/* Liste publique des Clubs : structure indépendante des tableaux d’administration */
.ffs-club-public-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.ffs-club-public-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 18px;padding:12px 14px;border:1px solid var(--ffs-line);border-radius:10px;background:#fff}.ffs-club-public-item:nth-child(even){background:#eaf4f3}.ffs-club-public-main{display:flex;align-items:center;gap:14px;min-width:0}.ffs-club-public-logo{display:grid;place-items:center;flex:0 0 74px;width:74px;height:74px}.ffs-club-public-logo .ffs-club-admin-logo,.ffs-club-public-logo .ffs-club-admin-monogram{width:68px;height:68px}.ffs-club-public-copy{min-width:0;overflow-wrap:anywhere}.ffs-club-public-copy>strong{display:block;font-size:17px}.ffs-club-public-details{margin-top:4px;color:var(--ffs-muted);font-size:13px;line-height:1.45}.ffs-club-public-actions{display:flex;flex-flow:row nowrap;gap:8px;align-items:center}.ffs-club-public-actions button{margin:0;white-space:nowrap}.ffs-club-teams-panel{grid-column:1/-1;padding:12px 14px;border-radius:8px;background:#f7fafb}.ffs-club-teams-panel h4{margin:0 0 8px;font-size:15px}.ffs-club-team-list{list-style:none;margin:0;padding:0;border:1px solid var(--ffs-line);border-radius:8px;overflow:hidden}.ffs-club-team-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;background:#fff;border-bottom:1px solid var(--ffs-line)}.ffs-club-team-item:last-child{border-bottom:0}.ffs-club-team-copy{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}.ffs-club-team-copy>span{color:var(--ffs-muted);font-size:12px}.ffs-club-team-item>button{margin:0;white-space:nowrap}.ffs-club-empty{padding:14px;border:1px solid var(--ffs-line);border-radius:8px;background:#fff}
@media(max-width:700px){.ffs-club-public-list{gap:8px}.ffs-club-public-item{grid-template-columns:minmax(0,1fr);gap:8px;padding:8px 10px}.ffs-club-public-main{gap:8px}.ffs-club-public-logo{flex-basis:60px;width:60px;height:60px}.ffs-club-public-logo .ffs-club-admin-logo,.ffs-club-public-logo .ffs-club-admin-monogram{width:54px;height:54px;border-radius:12px}.ffs-club-public-logo .ffs-club-admin-logo{padding:5px}.ffs-club-public-logo .ffs-club-admin-monogram{font-size:17px}.ffs-club-public-copy>strong{font-size:15px}.ffs-club-public-details{display:none}.ffs-club-public-actions{display:flex;flex-flow:row nowrap;gap:6px;width:100%}.ffs-club-public-actions>button{flex:1 1 0;min-width:0;padding:7px 4px;font-size:12px;line-height:1.2;text-align:center;white-space:normal;overflow-wrap:anywhere}.ffs-club-teams-panel{padding:8px}.ffs-club-team-item{grid-template-columns:minmax(0,1fr);gap:4px;padding:8px}.ffs-club-team-copy{display:contents}.ffs-club-team-copy>strong{grid-column:1;font-size:14px}.ffs-club-team-copy>span{grid-column:1;font-size:12px}.ffs-club-team-item>button{grid-column:1;grid-row:3;justify-self:start;max-width:none;padding:6px 9px;font-size:12px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}}

/* List and grid layouts for all plugin data views */
.ffs-app .ffs-admin-record-list,.ffs-app .ffs-team-groups,.ffs-app .ffs-calendar-list,.ffs-app .ffs-ranking-list,.ffs-app .ffs-points-list,.ffs-app .ffs-membership-list{list-style:none;margin:0;padding:0}
.ffs-app .ffs-admin-record-list{display:grid;gap:8px}.ffs-app .ffs-admin-record{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:10px 12px;border:1px solid var(--ffs-line);border-radius:9px;background:#fff}.ffs-app .ffs-admin-record:nth-child(even){background:#f7fafb}.ffs-app .ffs-admin-club-record{grid-template-columns:76px minmax(0,1fr) auto}.ffs-admin-record-logo{display:grid;place-items:center}.ffs-admin-record-copy{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.ffs-admin-record-copy>strong{font-size:15px}.ffs-admin-record-id,.ffs-admin-record-info{font-size:12px;color:var(--ffs-muted)}.ffs-admin-record-actions{display:flex;flex-flow:row wrap;justify-content:flex-end;gap:6px}.ffs-admin-record-actions button{margin:0}.ffs-admin-record .ffs-club-teams-accordion{grid-column:1/-1;padding:10px 12px;border-radius:8px;background:#f2f7f8}.ffs-admin-record .ffs-club-teams-accordion h4{margin:0 0 8px}.ffs-admin-record .ffs-club-teams-accordion ul{list-style:none;padding:0;margin:0}.ffs-admin-record .ffs-club-teams-accordion li{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.4fr) auto;gap:8px;align-items:center;padding:7px 9px;background:#fff;border-bottom:1px solid var(--ffs-line)}.ffs-admin-record .ffs-club-teams-accordion li:last-child{border-bottom:0}.ffs-admin-record .ffs-club-teams-accordion li>span{font-size:12px;color:var(--ffs-muted)}
.ffs-app .ffs-team-groups{border:1px solid var(--ffs-line);border-radius:10px;overflow:hidden}.ffs-app .ffs-team-list-card,.ffs-app .ffs-team-club-heading{list-style:none}.ffs-app .ffs-team-club-heading{border-radius:0}.ffs-app .ffs-team-list-card{margin:0}
.ffs-app .ffs-calendar-list{display:grid;gap:0;border:1px solid var(--ffs-line);border-radius:10px;overflow:hidden}.ffs-calendar-group-title,.ffs-calendar-competition-title{list-style:none}.ffs-calendar-group-title{padding:7px 12px;background:var(--ffs-teal);color:#fff;font-weight:700}.ffs-calendar-competition-title{padding:6px 12px;background:#e4f2f2;color:var(--ffs-navy);font-weight:700;font-size:13px}.ffs-calendar-item{display:grid;grid-template-columns:64px minmax(0,1fr) 76px minmax(0,1fr) minmax(130px,.7fr) auto;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--ffs-line);background:#fff}.ffs-calendar-item:nth-child(even){background:#f7fafb}.ffs-calendar-time{font-size:12px;color:var(--ffs-muted)}.ffs-calendar-side{display:grid;min-width:0;text-align:center}.ffs-calendar-side>span,.ffs-calendar-team-label{font-size:10px;color:var(--ffs-muted)}.ffs-calendar-side button{min-width:0;white-space:normal;overflow-wrap:anywhere}.ffs-calendar-score{text-align:center;font-weight:750}.ffs-calendar-score small{display:block;font-size:10px;font-weight:400;color:var(--ffs-muted)}.ffs-calendar-context{font-size:11px;color:var(--ffs-muted);overflow-wrap:anywhere}.ffs-calendar-actions{display:flex;flex-flow:row wrap;gap:4px;justify-content:flex-end}.ffs-calendar-actions button{margin:0;padding:4px 6px;min-height:30px}
.ffs-ranking-wrap>h3{padding:9px 12px;background:var(--ffs-light);font-size:14px}.ffs-ranking-list{display:grid;gap:5px}.ffs-ranking-item{display:grid;grid-template-columns:44px minmax(170px,1fr) minmax(0,2.7fr);gap:8px;align-items:center;padding:8px;border:1px solid var(--ffs-line);border-radius:8px;background:#fff}.ffs-ranking-rank,.ffs-ranking-team{min-width:0}.ffs-ranking-rank{display:grid;text-align:center;color:var(--ffs-teal);font-weight:750}.ffs-ranking-item small{display:block;color:var(--ffs-muted);font-size:10px;font-weight:500}.ffs-ranking-team{display:grid;overflow-wrap:anywhere}.ffs-ranking-team button{max-width:100%;white-space:normal;overflow-wrap:anywhere}.ffs-ranking-stats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(34px,1fr);gap:4px}.ffs-ranking-stats>span{display:grid;place-content:center;text-align:center;padding:4px;background:var(--ffs-light);border-radius:5px}.ffs-ranking-stats strong{font-size:13px}
.ffs-points-list{display:grid;gap:6px}.ffs-points-list>li{display:grid;grid-template-columns:minmax(100px,1fr) repeat(2,minmax(120px,.8fr));gap:10px;align-items:end;padding:8px;border-bottom:1px solid var(--ffs-line)}.ffs-points-list label{display:grid;gap:3px;font-size:12px}.ffs-points-list input{width:100%}.ffs-membership-list{display:grid;gap:6px;margin-top:10px!important}.ffs-membership-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.55fr) auto;gap:10px;align-items:center;padding:8px 10px;background:#fff;border:1px solid var(--ffs-line);border-radius:8px}.ffs-membership-item>strong{overflow-wrap:anywhere}.ffs-membership-item label{font-size:12px}.ffs-membership-item button{margin:0}
@media(max-width:760px){.ffs-app .ffs-admin-record{grid-template-columns:minmax(0,1fr);gap:7px;padding:9px}.ffs-app .ffs-admin-club-record{grid-template-columns:58px minmax(0,1fr)}.ffs-admin-record-logo{grid-column:1;grid-row:1}.ffs-admin-record-copy{grid-column:2;grid-row:1}.ffs-admin-record-actions{grid-column:1/-1;justify-content:flex-start}.ffs-admin-record-actions button{flex:1 1 auto}.ffs-admin-record .ffs-club-teams-accordion{grid-column:1/-1}.ffs-admin-record .ffs-club-teams-accordion li{grid-template-columns:minmax(0,1fr) auto;gap:5px}.ffs-admin-record .ffs-club-teams-accordion li>strong{grid-column:1}.ffs-admin-record .ffs-club-teams-accordion li>span{grid-column:1}.ffs-admin-record .ffs-club-teams-accordion li>button{grid-column:2;grid-row:1/3;white-space:normal}.ffs-calendar-item{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:5px 7px;padding:9px}.ffs-calendar-time{grid-column:1/-1}.ffs-calendar-home{grid-column:1}.ffs-calendar-score{grid-column:2;align-self:center}.ffs-calendar-away{grid-column:3}.ffs-calendar-context,.ffs-calendar-actions{grid-column:1/-1}.ffs-calendar-context{font-size:11px}.ffs-calendar-actions{justify-content:flex-start}.ffs-calendar-actions button{flex:1 1 auto}.ffs-ranking-item{grid-template-columns:38px minmax(0,1fr);gap:5px}.ffs-ranking-rank{grid-column:1;grid-row:1}.ffs-ranking-team{grid-column:2;grid-row:1}.ffs-ranking-stats{grid-column:1/-1;grid-row:2;grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr))}.ffs-points-list>li{grid-template-columns:1fr 1fr;gap:8px}.ffs-points-list>li>strong{grid-column:1/-1}.ffs-points-list label{font-size:11px}.ffs-membership-item{grid-template-columns:minmax(0,1fr) auto;gap:7px}.ffs-membership-item>strong{grid-column:1/-1}.ffs-membership-item label{grid-column:1}.ffs-membership-item button{grid-column:2;grid-row:2}}
/* Neutralise WordPress theme list defaults; each data view owns its Grid/Flex layout. */
.ffs-app .ffs-admin-record-list,.ffs-app .ffs-club-leadership-list,.ffs-app .ffs-club-detail-direction-list,.ffs-app .ffs-team-groups,.ffs-app .ffs-calendar-list,.ffs-app .ffs-match-list,.ffs-app .ffs-ranking-list,.ffs-app .ffs-points-list,.ffs-app .ffs-membership-list,.ffs-app .ffs-available-teams,.ffs-app .ffs-group-summary{list-style:none;padding:0;margin:0}
.ffs-app .ffs-membership-list{margin-top:10px}
.ffs-app .ffs-admin-record-list,.ffs-app .ffs-club-leadership-list,.ffs-app .ffs-club-detail-direction-list,.ffs-app .ffs-team-groups,.ffs-app .ffs-match-list,.ffs-app .ffs-ranking-list,.ffs-app .ffs-points-list,.ffs-app .ffs-membership-list{display:grid}
.ffs-app .ffs-club-leadership-list{gap:6px}
.ffs-app .ffs-club-leadership-row,.ffs-app .ffs-club-detail-direction-row{list-style:none;min-width:0}
.ffs-app .ffs-available-teams{list-style:none}
/* Public standings: keep rank, team and its results on one compact row. */
.ffs-app[data-mode=public] .ffs-ranking-item{grid-template-columns:34px minmax(0,1fr) auto;gap:8px;min-width:0;}
.ffs-app[data-mode=public] .ffs-ranking-rank{display:block;font-weight:750;}
.ffs-app[data-mode=public] .ffs-ranking-rank small,.ffs-app[data-mode=public] .ffs-ranking-team>small{display:none;}
.ffs-app[data-mode=public] .ffs-ranking-team{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.ffs-app[data-mode=public] .ffs-ranking-team button{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ffs-app[data-mode=public] .ffs-ranking-stats{display:flex;flex-flow:row nowrap;gap:5px;}
.ffs-app[data-mode=public] .ffs-ranking-stats>span{display:inline-flex;align-items:baseline;gap:3px;padding:3px 6px;white-space:nowrap;}
.ffs-app[data-mode=public] .ffs-ranking-stats small{font-size:10px;}
.ffs-app .ffs-club-detail-inline-block{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:start;gap:0 14px;}
.ffs-app .ffs-club-detail-inline-block>h4{grid-column:1;align-self:start;margin:0;padding:7px 0;background:transparent;color:var(--ffs-teal);border-radius:0;}
.ffs-app .ffs-club-detail-inline-block>.ffs-club-colors-grid,.ffs-app .ffs-club-detail-inline-block>.ffs-club-contact-grid{grid-column:2;min-width:0;}
.ffs-app .ffs-club-detail-contact-block>.ffs-club-contact-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-grid .ffs-club-website{grid-column:auto;}
.ffs-app .ffs-club-detail-direction-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);}
.ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 24px;}
.ffs-app .ffs-club-detail-direction-row>*:nth-child(2):before,.ffs-app .ffs-club-detail-direction-row>*:nth-child(3):before{content:none!important;}
@media(max-width:700px){
  .ffs-app[data-mode=public] .ffs-ranking-item{grid-template-columns:28px minmax(0,1fr) auto;gap:5px;padding:6px;}
  .ffs-app[data-mode=public] .ffs-ranking-stats{gap:3px;}
  .ffs-app[data-mode=public] .ffs-ranking-stats>span{gap:2px;padding:3px 4px;font-size:12px;}
  .ffs-app .ffs-club-detail-inline-block{grid-template-columns:78px minmax(0,1fr);gap:0 8px;}
  .ffs-app .ffs-club-detail-contact-block>.ffs-club-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .ffs-app .ffs-club-detail-direction-row,.ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:6px;}
  .ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 20px;}
}
/* Public standings use the same labeled columns as the admin ranking. */
.ffs-app[data-mode=public] .ffs-ranking-list{display:grid;gap:0;border:1px solid var(--ffs-line);border-radius:9px;overflow:hidden;}
.ffs-app[data-mode=public] .ffs-ranking-header,.ffs-app[data-mode=public] .ffs-ranking-item{display:grid;grid-template-columns:52px minmax(150px,1.8fr) repeat(9,minmax(36px,.65fr));align-items:center;gap:0;min-width:0;margin:0;border:0;border-bottom:1px solid var(--ffs-line);border-radius:0;padding:9px 8px;background:#fff;text-align:center;}
.ffs-app[data-mode=public] .ffs-ranking-header{background:var(--ffs-light);font-weight:750;font-size:12px;}
.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=team],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=team]{text-align:left;}
.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=rank]{font-weight:750;color:var(--ffs-teal);}
.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=points]{font-weight:800;color:var(--ffs-teal);}
.ffs-app[data-mode=public] .ffs-ranking-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ffs-app[data-mode=public] .ffs-ranking-team button{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ffs-app .ffs-club-detail-inline-block{display:block;}
.ffs-app .ffs-club-detail-inline-block>h4{grid-column:auto;margin:-14px -14px 14px;padding:9px 14px;background:#007e82;color:#fff;border-radius:11px 11px 0 0;}
.ffs-app .ffs-club-detail-inline-block>.ffs-club-colors-grid,.ffs-app .ffs-club-detail-inline-block>.ffs-club-contact-grid{grid-column:auto;}
.ffs-app .ffs-club-detail-name-mobile,.ffs-app .ffs-year-mobile{display:none;}
.ffs-app .ffs-club-detail-colors .ffs-readonly-field{display:grid;grid-template-columns:minmax(75px,.45fr) minmax(0,1fr);align-items:center;gap:8px;}
.ffs-app .ffs-club-detail-colors .ffs-readonly-value{margin-top:0;}
.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-address,.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-website,.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-facebook,.ffs-app .ffs-club-detail-contact-block .ffs-wide{grid-column:1/-1;}
.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-phone,.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-email{grid-column:auto;}
.ffs-app .ffs-club-icon-field{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;}
.ffs-app .ffs-club-icon-label{display:grid;place-items:center;color:var(--ffs-teal);font-size:20px;line-height:1;}
.ffs-app .ffs-club-icon-label svg{display:block;width:20px;height:20px;color:#1877f2;}
.ffs-app .ffs-club-icon-label .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.ffs-app .ffs-club-icon-field .ffs-readonly-value{margin-top:0;}
.ffs-app .ffs-club-detail-direction-row,.ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.25fr) 24px;}
.ffs-app .ffs-club-detail-direction-row>*{min-width:0;overflow-wrap:anywhere;}
@media(max-width:700px){
  .ffs-app[data-mode=public] .ffs-ranking-header,.ffs-app[data-mode=public] .ffs-ranking-item{grid-template-columns:42px minmax(0,1fr) 46px 46px;padding:8px 5px;font-size:12px;}
  .ffs-app[data-mode=public] .ffs-ranking-header>[data-col=played],.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=won],.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=drawn],.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=lost],.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=for],.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=against],.ffs-app[data-mode=public] .ffs-ranking-header>[data-col=penalties],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=played],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=won],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=drawn],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=lost],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=for],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=against],.ffs-app[data-mode=public] .ffs-ranking-item>[data-col=penalties]{display:none;}
  .ffs-app .ffs-club-detail-name-mobile{display:block;grid-column:1/-1;font-size:17px;}
  .ffs-app .ffs-year-desktop{display:none;}.ffs-app .ffs-year-mobile{display:inline;}
  .ffs-app .ffs-club-detail-colors .ffs-club-colors-grid{grid-template-columns:1fr;gap:8px;}
  .ffs-app .ffs-club-detail-contact-block .ffs-club-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .ffs-app .ffs-club-detail-contact-block .ffs-club-contact-phone,.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-email{grid-column:span 1;}
  .ffs-app .ffs-club-detail-contact-block .ffs-club-contact-website,.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-facebook,.ffs-app .ffs-club-detail-contact-block .ffs-club-contact-address,.ffs-app .ffs-club-detail-contact-block .ffs-wide{grid-column:1/-1;}
  .ffs-app .ffs-club-detail-direction-row,.ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 24px;gap:5px;}
  .ffs-app .ffs-club-detail-direction-row>strong{grid-column:1/-1;}
  .ffs-app .ffs-club-detail-direction-row:not(.is-responsible) .ffs-club-detail-responsible-slot:before{content:none!important;}
}

/* Public ranking palette and legend, matching the admin view. */
.ffs-app[data-mode=public] .ffs-ranking-header{background:#00666a;color:#fff;}
.ffs-app[data-mode=public] .ffs-ranking-item:nth-child(even){background:#eaf4f3;}
.ffs-app[data-mode=public] .ffs-ranking-item:nth-child(odd){background:#fff;}
.ffs-app[data-mode=public] .ffs-ranking-legend{display:block;margin:10px 0 0!important;color:var(--ffs-muted);font-size:12px;line-height:1.5;}
/* Club detail refinements for desktop and mobile. */
.ffs-app .ffs-club-detail-name-line{display:block;grid-column:1/-1;font-size:18px;line-height:1.3;margin-bottom:2px;}
.ffs-app .ffs-club-detail-colors>h4{margin-bottom:6px;}
.ffs-app .ffs-club-detail-colors .ffs-club-colors-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.ffs-app .ffs-club-detail-contact-phone .ffs-readonly-value a,.ffs-app .ffs-club-detail-contact-email .ffs-readonly-value a{color:var(--ffs-teal);text-decoration:underline;overflow-wrap:anywhere;}
.ffs-app .ffs-club-detail-direction-row,.ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.25fr) 24px;}
@media(max-width:700px){
  .ffs-app .ffs-club-detail-name-line{font-size:16px;}
  .ffs-app .ffs-club-detail-colors .ffs-club-colors-grid{grid-template-columns:1fr;gap:6px;}
  .ffs-app .ffs-club-detail-colors>h4{margin-bottom:6px;}
  .ffs-app .ffs-club-detail-direction-row,.ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1fr) 18px;gap:3px;font-size:12px;}
  .ffs-app .ffs-club-detail-direction-row>strong{grid-column:auto;}
}

/* Mobile club details: keep contact fields readable and stack each leader's details. */
@media(max-width:700px){
  .ffs-app .ffs-club-detail-contact-block .ffs-club-contact-grid .ffs-club-address,
  .ffs-app .ffs-club-detail-contact-block .ffs-club-contact-phone,
  .ffs-app .ffs-club-detail-contact-block .ffs-club-contact-email{grid-column:1/-1!important;}
  .ffs-app .ffs-club-detail-direction-row,
  .ffs-app .ffs-club-detail-direction-row.is-responsible{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;font-size:13px;align-items:start;}
  .ffs-app .ffs-club-detail-direction-row>strong{grid-column:1/-1;grid-row:1;}
  .ffs-app .ffs-club-detail-direction-row>span:nth-child(2){grid-column:1/-1;grid-row:2;}
  .ffs-app .ffs-club-detail-direction-row>span:nth-child(3){grid-column:1;grid-row:3;}
  .ffs-app .ffs-club-detail-direction-row>.ffs-club-detail-responsible-slot{grid-column:2;grid-row:3;display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap;}
  .ffs-app .ffs-club-detail-responsible-slot:before{content:none!important;}
  .ffs-app .ffs-club-detail-direction-row.is-responsible .ffs-club-detail-responsible-slot:before{content:'Responsable'!important;font-weight:600;font-size:12px;}
}

/* Desktop label above the responsible markers in the public club detail. */
.ffs-app .ffs-club-detail-direction-title{position:relative;}
.ffs-app .ffs-club-detail-direction-label{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:700;line-height:1.2;text-align:right;}
@media(max-width:700px){.ffs-app .ffs-club-detail-direction-label{display:none;}}

/* Pending result rows: make the score/date details easier to scan. */
.ffs-app .ffs-admin-proposal-record .ffs-admin-record-info{font-size:15px;font-weight:600;line-height:1.45;color:var(--ffs-navy);}
