:root{
  --tp-green:#2d810e;
  --tp-green-2:#0aa35a;
  --tp-bg:#f3f5f4;
  --tp-text:#0f1a12;
  --tp-muted:#6b7280;
  --tp-border:#e7ece8;
  --tp-soft:#f7f9f8;
  --tp-shadow:0 18px 50px rgba(0,0,0,.10);
  --tp-shadow-soft:0 10px 26px rgba(0,0,0,.08);
  --tp-radius:18px;
}

/* reset */
.tppmu-partants,
.tppmu-partants *{
  box-sizing:border-box;
}

.tppmu-partants table,
.tppmu-partants th,
.tppmu-partants td{
  box-shadow:none !important;
}

/* cote NP */
.tppmu-cote-np{
  color:#e11d48;
  font-weight:700;
}

/* cote en attente */
.tppmu-cote-wait{
  opacity:.65;
  font-weight:700;
}

/* wrapper */
.tppmu-partants{
  max-width:1240px;
  margin:22px auto 34px;
  padding:22px;
  border:1px solid var(--tp-border);
  border-radius:var(--tp-radius);
  background:#fff;
  box-shadow:var(--tp-shadow);
}

/* titre */
.tppmu-partants h3{
  margin:0 0 16px;
  font-size:22px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.tppmu-partants h3::after{
  content:"";
  width:88px;
  height:5px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--tp-green),var(--tp-green-2));
}

/* table desktop */
.tppmu-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--tp-border);
  box-shadow:var(--tp-shadow-soft);
}

.tppmu-table thead th{
  background:#f2f5f3;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  padding:14px;
  border-bottom:1px solid var(--tp-border);
}

.tppmu-table tbody td{
  padding:14px;
  font-size:14px;
  border-bottom:1px solid #eef2ef;
  vertical-align:middle;
  color:var(--tp-text);
}

.tppmu-table tbody tr:nth-child(even){
  background:var(--tp-soft);
}

.tppmu-table tbody tr:hover{
  background:rgba(45,129,14,.08);
}

/* badge numero desktop */
.tppmu-table td.tppmu-numcell{
  width:68px;
  padding:0 !important;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  color:#fff !important;
  font-variant-numeric:tabular-nums;
}

.tppmu-table td.tppmu-numcell::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:40px;
  height:40px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:var(--tp-green);
  box-shadow:0 10px 18px rgba(45,129,14,.20);
  z-index:0;
}

.tppmu-numlabel,
.tppmu-numval{
  position:relative;
  z-index:1;
  font-size:13px;
  font-weight:900;
  line-height:1;
  color:#fff !important;
  white-space:nowrap;
}

/* nom du cheval */
.tppmu-table td:nth-child(2) strong{
  font-weight:900;
}

/* liens */
.tppmu-table a{
  color:#142116;
  text-decoration:none;
  border-bottom:2px solid rgba(45,129,14,.18);
}

.tppmu-table a:hover{
  color:var(--tp-green);
}

/* alignement colonnes */
.tppmu-table td[data-label="Cde"],
.tppmu-table td[data-label="S/A"],
.tppmu-table td[data-label="Poids"],
.tppmu-table td[data-label="Dist"],
.tppmu-table td[data-label="Cotes"]{
  text-align:center;
  white-space:nowrap;
}

/* cotes en valeur */
.tppmu-table td[data-label="Cotes"]{
  font-weight:900;
  font-variant-numeric:tabular-nums;
  color:#111827;
}

/* jockey et entraineur */
.tppmu-table td[data-label="Jockeys"],
.tppmu-table td[data-label="Entraineurs"]{
  white-space:nowrap;
}

/* performances desktop */
.tppmu-table td[data-label="Performances"]{
  font-size:13px;
  color:var(--tp-muted);
  max-width:320px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* responsive mobile et tablette */
@media(max-width:1024px){

  .tppmu-partants{
    padding:18px 16px;
  }

  .tppmu-table thead{
    display:none;
  }

  .tppmu-table,
  .tppmu-table tbody,
  .tppmu-table tr,
  .tppmu-table td{
    display:block;
    width:100%;
  }

  .tppmu-table{
    border:none;
    box-shadow:none;
  }

  .tppmu-table tbody tr{
    margin-bottom:12px;
    border:1px solid var(--tp-border);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--tp-shadow-soft);
    display:grid;
    grid-template-columns:62px 1fr;
  }

  .tppmu-table tbody td{
    padding:8px 10px;
    font-size:12px;
    display:flex;
    justify-content:space-between;
    align-items:center;
  }

  .tppmu-table tbody td::before{
    content:attr(data-label);
    font-size:10px;
    font-weight:800;
    color:var(--tp-muted);
    text-transform:uppercase;
  }

  /* badge numero mobile */
  .tppmu-table td.tppmu-numcell{
    grid-column:1 / 2;
    grid-row:1;
    justify-self:start;
    align-self:center;

    width:46px;
    min-width:46px;
    max-width:46px;
    height:46px;
    min-height:46px;
    max-height:46px;

    margin:10px;
    padding:0 !important;

    border-radius:50%;
    background:var(--tp-green);
    border-bottom:none !important;

    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px;

    overflow:hidden;
    box-shadow:0 10px 18px rgba(45,129,14,.20);

    color:#fff !important;
  }

  .tppmu-table td.tppmu-numcell::before{
    content:none !important;
  }

  .tppmu-table td.tppmu-numcell .tppmu-numlabel{
    font-size:12px;
    font-weight:900;
    line-height:1;
    color:#fff !important;
  }

  .tppmu-table td.tppmu-numcell .tppmu-numval{
    font-size:14px;
    font-weight:900;
    line-height:1;
    color:#fff !important;
  }

  /* header card */
  .tppmu-table td:nth-child(2){
    grid-column:2 / -1;
    border-bottom:none;
    padding:10px 12px;
  }

  .tppmu-table td:nth-child(2)::before{
    content:none;
  }

  .tppmu-table td:nth-child(n+3){
    grid-column:1 / -1;
  }

  /* performances mobile */
  .tppmu-table td[data-label="Performances"]{
    max-width:none;
    white-space:normal;
  }
}

/* grille tablette */
@media(min-width:600px) and (max-width:1024px){
  .tppmu-table tbody{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
  }
}
