.widget{
  --pmr-red: #91102A;
  --pmr-red-dark: #5a0a1a;
  --pmr-dark: #222;
  --pmr-light: #f9f9f9;
  --pmr-gray: #cccccc;
  --pmr-border: #e6e6e6;
  --victoire: #3f6b4a;
  --defaite: #a6402f;
  --nul: #8a7a4a;
  --radius: 0.375rem;

  width: 100%;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--pmr-gray);
  border-radius: var(--radius);
  overflow:hidden;
  font-family: 'Roboto', sans-serif;
  color: var(--pmr-dark);
  box-sizing: border-box;
}
.widget *{ box-sizing:border-box; }

/* ---------- header ---------- */
.widget .header{
  background: var(--pmr-red);
  color: #fff;
  padding: 1.75rem 1.75rem 1.375rem;
  position: relative;
  overflow:hidden;
}
.widget .header::after{
  content:"";
  position:absolute; right:-2.5rem; top:-2.5rem;
  width:11.25rem; height:11.25rem;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius:50%;
}
.widget .header .club{
  font-family:'Montserrat', sans-serif;
  font-weight:800;
  text-transform: uppercase;
  letter-spacing: 0.125rem;
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  margin:0;
}
.widget .header .meta{
  margin-top:0.5rem;
  font-size:0.875rem;
  color: rgba(255,255,255,0.82);
}
.widget .header .meta b{ color:#fff; font-weight:600; }

/* ---------- tabs ---------- */
.widget .tabs{
  display:flex;
  background: var(--pmr-light);
  border-bottom: 1px solid var(--pmr-gray);
}
.widget .tab{
  flex:1;
  padding: 0.8125rem 0.625rem;
  text-align:center;
  font-size:0.8125rem;
  font-family:'Montserrat', sans-serif;
  font-weight:700;
  text-transform: uppercase;
  letter-spacing:0.0625rem;
  color: #777;
  background:transparent;
  border:none;
  cursor:pointer;
  border-bottom: 3px solid transparent;
  transition: color .15s, background .15s;
}
.widget .tab:hover{ color: var(--pmr-red); }
.widget .tab.active{
  color: var(--pmr-red);
  background:#fff;
  border-bottom-color: var(--pmr-red);
}

.widget .panel{ display:none; padding: 1.375rem 1.5rem 1.625rem; }
.widget .panel.active{ display:block; }

.widget .section-title{
  font-family:'Montserrat', sans-serif;
  font-weight:800;
  text-transform: uppercase;
  letter-spacing: 0.09375rem;
  font-size:1rem;
  margin: 0 0 0.875rem;
  color: var(--pmr-red);
  text-align:left;
}

/* ---------- classement ---------- */
.widget table.classement{
  width:100%;
  border-collapse: collapse;
  font-size: 0.84375rem;
}
.widget table.classement th{
  text-align:left;
  font-size:0.6875rem;
  text-transform: uppercase;
  letter-spacing:0.04em;
  color:#888;
  font-weight:600;
  padding: 0.375rem 0.5rem;
  border-bottom: 2px solid var(--pmr-gray);
}
.widget table.classement td{
  padding: 0.5rem;
  border-bottom: 1px solid #eee;
  white-space:nowrap;
}
.widget table.classement td.equipe{ white-space:normal; font-weight:500; }
.widget table.classement th.num, .widget table.classement td.num{ text-align:center; }
.widget table.classement tr.medoc td{
  background: #fbeaed;
  font-weight:700;
  color: var(--pmr-red-dark);
}
.widget table.classement td.rang{
  font-family:'Montserrat', sans-serif;
  font-weight:700;
  color: var(--pmr-red);
}
.widget table.classement tr.promo td.rang{ box-shadow: inset 3px 0 0 var(--victoire); padding-left:0.5625rem; }
.widget table.classement tr.releg td.rang{ box-shadow: inset 3px 0 0 var(--defaite); padding-left:0.5625rem; }

.widget .legend{
  margin-top:0.75rem;
  font-size:0.75rem;
  color:#777;
  display:flex; gap:1.125rem; flex-wrap:wrap;
}
.widget .legend span{ display:inline-flex; align-items:center; gap:0.375rem; }
.widget .legend i{ width:0.5625rem;height:0.5625rem;border-radius:50%; display:inline-block; }

/* ---------- résultats & calendrier ---------- */
.widget .match-list{ display:flex; flex-direction:column; gap:0.5rem; }
.widget .match{
  display:flex;
  align-items:center;
  gap:0.75rem;
  padding: 0.6875rem 0.875rem;
  border: 1px solid #eee;
  border-radius: var(--radius);
  background:#fdfdfd;
}
.widget .match.medoc{ background:#fbeaed; border-color:#f0cdd3; }
.widget .match .date{
  width:4.875rem;
  flex-shrink:0;
  font-size:0.75rem;
  color:#888;
  line-height:1.3;
}
.widget .match .date b{ display:block; color:var(--pmr-dark); font-size:0.8125rem; }
.widget .match .teams{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.625rem;
  font-size:0.875rem;
}
.widget .match .team{ flex:1; }
.widget .match .team.right{ text-align:right; }
.widget .match .team.medoc-name{ font-weight:700; color:var(--pmr-red-dark); }
.widget .match .score{
  font-family:'Montserrat', sans-serif;
  font-weight:800;
  font-size:1rem;
  min-width:4rem;
  text-align:center;
}
.widget .match .score .sep{ color:#bbb; margin:0 0.1875rem; font-weight:400; }
.widget .match .vs{
  min-width:4rem;
  text-align:center;
  color:#999;
  font-size:0.8125rem;
}
.widget .match .lieu{
  width:7.5rem;
  flex-shrink:0;
  text-align:right;
  font-size:0.75rem;
  color:#888;
}
.widget .badge{
  font-size:0.625rem;
  font-weight:700;
  padding:0.125rem 0.375rem;
  border-radius:0.125rem;
  margin-left:0.5rem;
  letter-spacing:0.03em;
}
.widget .badge.v{ background:#e5efe6; color:var(--victoire); }
.widget .badge.d{ background:#f4e4e0; color:var(--defaite); }
.widget .badge.n{ background:#f1ecd9; color:var(--nul); }

.widget .updated{
  text-align:center;
  font-size:0.71875rem;
  color:#999;
  padding: 0.875rem 0.625rem 1.125rem;
  border-top:1px solid var(--pmr-gray);
}

@media (max-width:35rem){
  .widget .match .lieu{ display:none; }
  .widget .match .date{ width:3.5rem; }
  .widget table.classement{ font-size:0.75rem; }
  .widget table.classement th, .widget table.classement td{ padding:0.375rem 0.3125rem; }
}