.cslf-league-player .rating{
  font-size:12px;
  font-weight:600;
  color:#34d399;
  margin-top:4px;
}
.cslf-league-dashboard {
  --bg: #111827;
  --panel: #1f2937;
  --border: rgba(255,255,255,0.08);
  --accent: #22c55e;
  --muted: #9ca3af;
  --text: #f1f5f9;
  background: var(--bg) !important;
  color: var(--text) !important;
  border-radius: 18px;
  padding: 20px;
  box-shadow: 0 24px 48px rgba(15,23,42,0.35) !important;
  margin: 20px auto;
  font-size:11px;
}

.cslf-league-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
}

.cslf-league-id {
  display:flex;
  align-items:center;
  gap:16px;
}

.cslf-league-logo {
  width:60px;
  height:60px;
  object-fit:contain;
  background:rgba(15,23,42,0.6);
  border-radius:16px;
  padding:10px;
}

.cslf-league-title {
  font-size:20px;
  margin:0;
  color:#f8fafc !important;
}

.cslf-league-country {
  font-size:14px;
  color:var(--muted) !important;
}

.cslf-league-meta .badge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(34,197,94,0.12);
  color:#34d399;
  padding:6px 12px;
  border-radius:10px;
  font-weight:600;
  font-size:12px;
  margin-right:12px;
}

.cslf-season-select {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--muted);
}
.cslf-season-select.is-hidden {
  display:none!important;
}
.cslf-season-select span {
  display:none;
}
.cslf-season-switch {
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background:rgba(34,197,94,0.18) !important;
  color:#34d399 !important;
  border:1px solid rgba(34,197,94,0.55) !important;
  border-radius:999px !important;
  padding:6px 32px 6px 14px !important;
  font-size:13px !important;
  cursor:pointer;
  font-weight:600 !important;
  box-shadow:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 24 24'%3E%3Cpath fill='%2334d399' d='M12 15a1 1 0 0 1-.7-.29l-4-4a1 1 0 0 1 1.4-1.42L12 12.59l3.3-3.3a1 1 0 0 1 1.4 1.42l-4 4A1 1 0 0 1 12 15Z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:14px;
}
.cslf-season-switch option {
  background:#0f172a;
  color:#f8fafc;
}
.cslf-season-switch option:checked,
.cslf-season-switch option:hover {
  background:rgba(34,197,94,0.3);
  color:#f8fafc;
}
.cslf-season-switch:focus {
  outline:none;
  border-color:rgba(34,197,94,0.4);
}

.cslf-league-tabs {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
  overflow-x:auto;
  border-bottom:1px solid rgba(255,255,255,0.06) !important;
  padding-bottom:6px !important;
}
.cslf-league-tabs::-webkit-scrollbar {
  height:6px;
}
.cslf-league-tabs::-webkit-scrollbar-thumb {
  background:rgba(255,255,255,0.15);
  border-radius:999px;
}

.cslf-league-tab {
  background:transparent !important;
  border:none !important;
  color:var(--muted) !important;
  padding:8px 12px !important;
  border-radius:999px !important;
  font-weight:600 !important;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
  font-size:12px !important;
}
.cslf-league-tab:hover {
  color:var(--text) !important;
}
.cslf-league-tab.is-active {
  background:rgba(34,197,94,0.16) !important;
  color:#34d399 !important;
}

.cslf-league-content {
  position:relative;
  min-height:240px;
  border-radius:16px;
  background:var(--panel) !important;
  border:1px solid var(--border) !important;
  padding:18px !important;
  overflow:hidden;
}
.cslf-league-content.is-loading::after {
  content:"Chargement…";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(17,24,39,0.75);
  color:var(--muted);
  font-weight:600;
  letter-spacing:.08em;
}

.cslf-league-panel {
  display:none;
  gap:14px;
}
.cslf-league-panel.is-visible {
  display:block;
}
.cslf-league-panel,
.cslf-league-panel * {
  color:var(--text) !important;
}

.cslf-league-error {
  color:#f87171;
  text-align:center;
  padding:30px 10px;
}

.cslf-league-overview-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
}
.cslf-overview-standings{
  margin-top:24px;
}
.cslf-overview-table{
  width:100%;
  border-collapse:collapse;
  font-size:11px;
}
.cslf-overview-table th,
.cslf-overview-table td{
  padding:8px 10px;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.cslf-overview-table .team{
  display:flex;
  align-items:center;
  gap:8px;
}
.cslf-overview-table .team img{
  width:14px;
  height:14px;
  object-fit:contain;
}
.cslf-schedule-section{
  background:rgba(15,23,42,0.45);
  border:1px solid rgba(148,163,184,0.12);
  border-radius:16px;
  padding:16px;
  margin-bottom:22px;
}
.cslf-schedule-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}
.cslf-schedule-header h3{
  margin:0;
  font-size:15px;
  color:#f8fafc;
}
.cslf-schedule-nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.cslf-schedule-nav-btn{
  width:30px;
  height:30px;
  border-radius:50%;
  border:1px solid rgba(34,197,94,0.3);
  background:rgba(34,197,94,0.16);
  color:#34d399;
  font-size:14px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:all .2s ease;
}
.cslf-schedule-nav-btn:disabled{
  opacity:0.35;
  cursor:default;
}
.cslf-schedule-day{
  font-size:12px;
  color:#e2e8f0;
  text-transform:capitalize;
}
.cslf-schedule-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.cslf-schedule-date{
  font-size:12px;
  font-weight:600;
  color:#cbd5f5;
  background:rgba(148,163,184,0.18);
  border-radius:10px;
  padding:6px 12px;
  display:inline-flex;
  text-transform:capitalize;
}
.cslf-schedule-row{
  display:grid;
  grid-template-columns:180px 1fr 160px;
  gap:12px;
  align-items:center;
  background:rgba(15,23,42,0.55);
  border:1px solid rgba(255,255,255,0.05);
  border-radius:12px;
  padding:10px 14px;
}
.cslf-schedule-left{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:11px;
  color:rgba(203,213,225,0.85);
}
.cslf-schedule-left .round{
  font-weight:600;
  color:#f8fafc;
}
.cslf-schedule-center{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:11px;
  color:#f8fafc;
}
.cslf-schedule-center .team{
  display:flex;
  align-items:center;
  gap:6px;
  font-weight:600;
  text-align:left;
}
.cslf-schedule-center .team.is-away{
  justify-content:flex-end;
  text-align:right;
  flex-direction:row-reverse;
}
.cslf-schedule-center .team.is-away img{
  margin-left:0;
  margin-right:6px;
}
.cslf-schedule-center .team:last-child{
  justify-content:flex-end;
  text-align:right;
}
.cslf-schedule-center .team img{
  width:18px;
  height:18px;
  object-fit:contain;
}
.cslf-schedule-center .score{
  font-weight:700;
  font-size:13px;
  min-width:54px;
  text-align:center;
}
.cslf-schedule-pen{
  color:rgba(248,54,94,0.9);
  font-weight:600;
  font-size:10px;
  align-self:center;
}
.cslf-schedule-team--loser span{
  text-decoration:line-through;
  opacity:0.6;
}
.cslf-schedule-right{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:10px;
  color:rgba(203,213,225,0.8);
  text-align:right;
}
.cslf-schedule-right .status{
  font-weight:600;
  text-transform:capitalize;
  color:#34d399;
}
.cslf-schedule-right .venue{
  color:rgba(203,213,225,0.6);
}
.cslf-league-matches h3,
.cslf-league-overview-section h3 {
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
  color:#f8fafc !important;
}

@keyframes cslf-shimmer {
  0% { background-position:-200% 0; }
  100% { background-position:200% 0; }
}

.cslf-dashboard-skeleton {
  position:absolute;
  inset:0;
  display:none;
  flex-direction:column;
  gap:16px;
  padding:18px;
  background:rgba(15,23,42,0.82);
  z-index:5;
  pointer-events:none;
}
.cslf-league-content.is-loading .cslf-dashboard-skeleton{
  display:flex;
}
.cslf-skeleton-section{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.cslf-skeleton-card{
  background:rgba(15,23,42,0.38);
  border:1px solid rgba(148,163,184,0.14);
  border-radius:12px;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.cslf-skeleton-row{
  display:flex;
  gap:10px;
}
.cslf-skeleton-line{
  flex:1;
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(71,85,105,0.25), rgba(148,163,184,0.45), rgba(71,85,105,0.25));
  background-size:200% 100%;
  animation:cslf-shimmer 1.6s ease-in-out infinite;
  opacity:.85;
}
.cslf-skeleton-line.is-sm{
  height:10px;
  flex:0 0 35%;
}
.cslf-skeleton-line.is-lg{
  height:16px;
  flex:0 0 55%;
}
.cslf-league-matchlist {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:18px;
}
.cslf-league-matchrow {
  background:rgba(15,23,42,0.55) !important;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.05) !important;
  padding:12px 14px !important;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.cslf-league-matchrow .line {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  font-weight:600;
  font-size:11px;
}
.cslf-league-matchrow .line.has-pen {
  grid-template-columns:auto 1fr auto 1fr;
}
.cslf-league-matchrow .team-badge{
  width:18px;
  height:18px;
  object-fit:contain;
}
.cslf-league-matchrow .team {
  flex:1;
  display:flex;
  align-items:center;
  gap:6px;
  text-align:left;
  color:var(--text);
}
.cslf-league-matchrow .team:last-child {
  text-align:right;
}
.cslf-league-matchrow .score {
  min-width:58px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}
.cslf-league-matchrow .cslf-match-penalties {
  font-size:9px;
  font-weight:700;
  color:#f8365e !important;
  margin-top:2px;
}
.cslf-league-matchrow .cslf-match-pen-label {
  color:rgba(248,54,94,0.9);
  font-weight:600;
  font-size:10px;
  align-self:center;
}
.cslf-league-matchrow .cslf-match-team--loser span {
  text-decoration:line-through;
  opacity:0.6;
}
.cslf-league-matchrow .meta {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:11px;
}
.cslf-league-matchrow .submeta{
  display:flex;
  justify-content:space-between;
  color:rgba(156,163,175,0.7);
  font-size:10px;
  margin-top:2px;
}
.cslf-league-matches-body{
  min-height:140px;
}

.cslf-league-stats {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:16px;
  background:transparent;
}
.cslf-league-card--stats {
  background:#1f2937;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.cslf-league-card--stats h3 {
  margin:0;
  font-size:16px;
  font-weight:700;
  color:var(--text);
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.cslf-league-stats-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px;
}
.cslf-league-dashboard .cslf-league-card {
  background:#1f2937 !important;
  border:1px solid rgba(255,255,255,0.08) !important;
  color:var(--text) !important;
}

.cslf-league-transfers {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.cslf-league-seasons {
  display:flex;
  flex-direction:column;
  gap:12px;
}
.cslf-league-season {
  display:flex;
  justify-content:space-between;
  flex-direction:column;
  gap:8px;
  background:rgba(15,23,42,0.6) !important;
  border:1px solid rgba(255,255,255,0.05) !important;
  padding:12px 14px !important;
  border-radius:10px;
}
.cslf-league-season .season-header {
  display:flex;
  align-items:center;
  gap:8px;
}
.cslf-league-season .badge {
  padding:4px 8px;
  background:rgba(34,197,94,0.2);
  color:#34d399;
  border-radius:8px;
  font-size:11px;
  font-weight:600;
}
.cslf-league-season .meta {
  display:flex;
  gap:12px;
  color:var(--muted);
  font-size:12px;
}
.season-champions{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}
.season-team{
  display:flex;
  flex-direction:column;
  gap:4px;
  background:rgba(15,23,42,0.55);
  border:1px solid rgba(255,255,255,0.04);
  border-radius:8px;
  padding:8px 10px;
  font-size:12px;
  color:var(--muted);
}
.season-team-label{
  font-weight:600;
  color:var(--text);
  font-size:12px;
}
.season-team-info{
  display:flex;
  align-items:center;
  gap:8px;
}
.season-team-info img{
  width:22px;
  height:22px;
  border-radius:50%;
  object-fit:cover;
}


.cslf-league-team-card {
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:16px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.cslf-league-team-header {
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.cslf-league-team-match {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:600;
  font-size:14px;
  color:var(--text);
}
.cslf-league-team-vs {
  flex:1;
  text-align:center;
}
.cslf-league-team-title {
  font-weight:700;
  font-size:16px;
  color:var(--text);
}
.cslf-league-team-date {
  font-size:12px;
  color:var(--muted);
  text-align:center;
}
.cslf-league-team-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px;
}
.cslf-league-player {
  display:flex;
  flex-direction:column;
  gap:8px;
  background:rgba(15,23,42,0.55);
  padding:12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.04);
  transition:background .2s ease, border-color .2s ease;
}
.cslf-league-player:hover {
  background:rgba(15,23,42,0.7);
  border-color:rgba(255,255,255,0.08);
}
.cslf-league-player > span:first-child {
  display:flex;
  align-items:center;
  gap:10px;
}
.cslf-league-player .name-stack {
  display:flex;
  flex-direction:column;
  gap:2px;
  flex:1;
}
.cslf-league-player .name-stack > span:first-child {
  font-weight:600;
  font-size:13px;
  color:var(--text);
}
.cslf-league-player .club {
  font-size:11px;
  color:var(--muted);
}
.cslf-league-player > img {
  width:40px;
  height:40px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,0.1);
}
.cslf-league-player-placeholder {
  width:40px;
  height:40px;
  border-radius:50%;
  background:linear-gradient(135deg, #34d399 0%, #22c55e 100%);
  border:2px solid rgba(255,255,255,0.1);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#ffffff;
  font-weight:700;
  font-size:14px;
  flex-shrink:0;
}
.cslf-league-player .meta {
  font-size:11px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:4px;
}
.cslf-league-player .meta img {
  width:18px;
  height:18px;
  object-fit:contain;
}
.cslf-league-player .rating {
  font-size:14px;
  font-weight:700;
  color:#34d399;
  text-align:right;
  margin-top:4px;
}

.cslf-view-full{
  border:none;
  background:transparent;
  color:#34d399;
  font-size:11px;
  cursor:pointer;
  margin-bottom:10px;
  padding:0;
  transition:color .2s ease;
}
.cslf-view-full:hover{
  color:#22c55e;
}

.cslf-modal-overlay.standings{
  position:fixed;
  inset:0;
  background:rgba(17,24,39,0.8);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
}
.cslf-modal-content.standings{
  background:var(--panel);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;
  width:90%;
  max-width:800px;
  max-height:85vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:20px;
}
.cslf-modal-content.standings h3{
  margin:0 0 12px;
  font-size:16px;
}
.cslf-modal-body{
  flex:1;
  overflow:auto;
}
.cslf-modal-content.standings .cslf-overview-table{
  font-size:12px;
}

.cslf-matches-controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.cslf-round-select{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--muted);
}
.cslf-round-switch{
  appearance:none;
  background:rgba(15,23,42,0.6);
  color:var(--text);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  padding:6px 10px;
  font-size:13px;
  cursor:pointer;
}
.cslf-round-switch:focus{
  outline:none;
  border-color:rgba(34,197,94,0.4);
}
.cslf-phase-switch{
  display:flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,0.04);
  padding:4px;
  border-radius:999px;
}
.cslf-phase-btn{
  border:none;
  background:transparent;
  color:var(--muted);
  font-size:12px;
  font-weight:600;
  padding:6px 12px;
  border-radius:999px;
  cursor:pointer;
  transition:all .2s ease;
}
.cslf-phase-btn:hover{
  color:var(--text);
}
.cslf-phase-btn.is-active{
  background:rgba(34,197,94,0.18);
  color:#34d399;
}

.cslf-league-standings-table {
  width:100%;
  border-collapse:collapse;
  font-size:12px;
}
.cslf-league-standings-table th,
.cslf-league-standings-table td {
  padding:10px 12px;
  border-bottom:1px solid rgba(148,163,184,0.16) !important;
  text-align:left !important;
  background:transparent !important;
  color:var(--text) !important;
}
.cslf-league-standings-table thead th{
  font-weight:600 !important;
  letter-spacing:.03em;
}
.cslf-league-standings-table tbody tr:hover {
  background:rgba(59,130,246,0.08) !important;
}
.cslf-league-standings-table tbody tr:nth-child(odd),
.cslf-league-standings-table tbody tr:nth-child(even){
  background:transparent !important;
}
.cslf-league-standings-table--mini{
  font-size:11px;
}
.cslf-league-standings-table--mini th,
.cslf-league-standings-table--mini td{
  padding:8px 10px !important;
}
.cslf-form-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:20px;
  border-radius:6px;
  font-size:10px;
  font-weight:700;
  background:rgba(148,163,184,0.15) !important;
  color:#e5e7eb !important;
  margin-right:4px;
}
.cslf-form-badge.is-win{
  background:rgba(34,197,94,0.25) !important;
  color:#34d399 !important;
}
.cslf-form-badge.is-loss{
  background:rgba(248,113,113,0.25) !important;
  color:#f87171 !important;
}
.cslf-form-badge.is-draw{
  background:rgba(148,163,184,0.25) !important;
  color:#cbd5f5 !important;
}

.cslf-league-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:20px;
  background:rgba(255,255,255,0.08);
  border-radius:6px;
  font-size:11px;
  color:var(--muted);
}

.cslf-league-empty {
  text-align:center;
  padding:40px 10px;
  color:var(--muted);
}

@media (max-width:768px) {
  .cslf-league-dashboard {
    padding:18px;
  }
  .cslf-league-top {
    flex-direction:column;
    align-items:flex-start;
  }
  .cslf-league-tabs {
    gap:8px;
  }
  .cslf-league-card {
    padding:14px;
  }
  .cslf-league-standings-table th,
  .cslf-league-standings-table td {
    padding:8px;
  }
  .cslf-league-team-list {
    grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  }
  .cslf-matches-controls{
    flex-direction:column;
    align-items:flex-start;
  }
  .cslf-phase-switch{
    width:100%;
    justify-content:space-between;
  }
}

