/* ========================================================================== */
/*  NAME MATCHER - STILI COMUNI PER TUTTI I MODULI NM                         */
/* ========================================================================== */

/* Contenitore principale */
.matcher-container {
  font-family: 'Segoe UI', Roboto, sans-serif;
  max-width: 100%;
  margin: 0 auto;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

/* Header blu con contatore */
.matcher-header {
  padding: 12px 15px;
  background: #4a6fa5;
  color: white;
  border-radius: 8px 8px 0 0;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.matcher-header h3 {
  margin: 0;
  font-size: 18px;
}

/* Barra con radioGroupButtons (matchFilter) */
.matcher-filter {
  padding: 10px 15px 0 15px;
}

/* Riga con filtri sport / book / provider */
.matcher-filters-section {
  padding: 0 15px 5px 15px;
}

/* Pillolina con il conteggio */
.matcher-count,
.matcher-header-info {
  background: rgba(255, 255, 255, 0.3);
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 12px;
  margin-left: 10px;
}

/* Gruppi generici (se usati) */
.matcher-group {
  background-color: #a5c0e5 !important;
  border-radius: 6px;
  margin-bottom: 8px;
  padding: 10px 15px;
}

/* Box di dettaglio interno */
.matcher-details {
  background-color: #c4d5ee !important;
  padding: 8px 12px;
  margin-left: 16px;
  margin-top: 8px;
  border-radius: 4px;
}

/* Messaggio "nessun dato" / vuoto */
.empty-matcher,
.no-data-message {
  padding: 30px 20px;
  text-align: center;
  color: #6c757d;
  font-style: italic;
  background: #f8f9fa;
  border-radius: 0 0 8px 8px;
}

/* ========================================================================== */
/* LIVELLI DI GERARCHIA (sport / league / sottolivelli)                       */
/* ========================================================================== */

/* Livello 0, solitamente sport */
.matcher-level-0 {
  color: white;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

/* Livello 1, solitamente league o market */
.matcher-level-1 {
  color: #1c2e4a;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

/* Livello 2, solitamente selections o ultimi sotto livelli */
.matcher-level-2 {
  color: #1c2e4a;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

/* ========================================================================== */
/* RIGHE / ENTRY GENERICHE (book, provider, team, league, market, selection)  */
/* ========================================================================== */

/* Riga generica (fallback) */
.matcher-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 4px;
  margin-bottom: 6px;
  gap: 12px;
}

/* Riga specifica per teams / eventi (bookies + providers) */
.matcher-team,
.matcher-entry-provider-sport,
.matcher-entry-bookies-sport {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 4px;
  margin-bottom: 6px;
  gap: 12px;
}

/* Freccia centrale fra master / provider/book */
.matcher-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  font-size: 20px;
  color: #6c757d;
  padding: 0 4px;
}

/* Separatore verticale */
.matcher-separator {
  height: 50px;
  width: 1px;
  background-color: #ccc;
  margin: 0 25px;
  align-self: center;
}

/* Azioni (bottoni) a destra */
.matcher-actions {
  display: flex;
  gap: 20px;
  flex: 1;
  min-width: 150px;
  justify-content: flex-end;
  align-items: center;
}

/* Bottoni Accetta / Rifiuta */
.matcher-accept-btn,
.matcher-reject-btn {
  border: none;
  border-radius: 4px;
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
}

.matcher-accept-btn {
  background-color: #28a745;
  color: #fff;
}

.matcher-reject-btn {
  background-color: #dc3545;
  color: #fff;
}

/* Info “book” / “provider” se usi .book-info / .method-info */
.book-info {
  display: flex;
  flex-direction: column;
  flex: 2;
  min-width: 150px;
  color: #1c2e4a;
  font-size: 13px;
}

.method-info {
  flex: 2;
  color: #2c4770;
  min-width: 150px;
  font-size: 13px;
}

.book-name {
  font-weight: 500;
}

.sport-info {
  margin-top: 2px;
}

/* ========================================================================== */
/* ENTRY SPECIFICHE (come da tuo file originale)                              */
/* ========================================================================== */

/* book / provider name all'interno di ogni riga */
.matcher-entry-book-name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: unset;
  min-width: 100px;
  font-size: 12px;
  margin-right: 0px;
}

/* league name all'interno di ogni riga */
.matcher-entry-league-name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: unset;
  min-width: 200px;
  font-size: 12px;
  margin-right: 0px;
}

/* team name all'interno di ogni riga */
.matcher-entry-team-name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: unset;
  min-width: 225px;
  font-size: 12px;
  margin-right: 0px;
}

/* market name all'interno di ogni riga */
.matcher-entry-market-name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: unset;
  min-width: 300px;
  font-size: 12px;
  margin-right: 0px;
}

/* selection name all'interno di ogni riga */
.matcher-entry-selection-name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: unset;
  min-width: 150px;
  font-size: 12px;
  margin-right: 0px;
}

/* dettagli all'interno di ogni riga */
.matcher-entry-details {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: unset;
  min-width: 50px;
  font-size: 12px;
  margin-right: 0px;
}

/* ========================================================================== */
/* SWITCH (per selection / market)                                            */
/* ========================================================================== */

.matcher-action {
  display: flex;
  align-items: center;
  gap: 8px;
}

.switch-input {
  height: 0;
  width: 0;
  visibility: hidden;
}

.switch-label {
  cursor: pointer;
  text-indent: -9999px;
  width: 50px;
  height: 25px;
  background: grey;
  display: block;
  border-radius: 100px;
  position: relative;
}

.switch-label:after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 21px;
  height: 21px;
  background: white;
  border-radius: 90px;
  transition: 0.3s;
}

.switch-input:checked + .switch-label {
  background: #4CAF50;
}

.switch-input:checked + .switch-label:after {
  left: calc(100% - 2px);
  transform: translateX(-100%);
}

.switch-label:active:after {
  width: 28px;
}

/* ========================================================================== */
/* SCROLL PER LE LISTE DI EVENTI / RIGHE                                      */
/* ========================================================================== */

.matcher-events {
  max-height: 450px;
  overflow-y: auto;
}


/* RIGA FILTRI + BOTTONE (sports and teams) */ 
.matcher-filters-row {
  display: flex;
  flex-direction: row;
  gap: 10px;
  align-items: flex-end;        /* allinea in basso TUTTO */
  padding: 10px 15px 10px 15px; /* stesso padding sopra/sotto */
  flex-wrap: wrap;
}

/* Colonna filtri */
.matcher-filters-col {
  flex: 1 1 auto;
}

/* Contenitore interno dei filtri */
.matcher-filters-section {
  display: flex;
  flex-direction: row;
  gap: 15px;
  flex-wrap: wrap;
  align-items: flex-end;
  padding: 0;                   /* <--- niente padding qui */
}

/* Colonna bottone */
.matcher-apply-col {
  flex: 0 0 180px;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;        /* <--- importantissimo */
}

/* Dentro la riga dei filtri, i container dei picker NON devono avere margine sotto */
.matcher-filters-section .shiny-input-container,
.matcher-filters-section .form-group {
  margin-bottom: 0;
}




















