/* Meetles Venue Manager — styles front légers, alignés sur le thème BuddyBoss.
   Volontairement minimal : on réutilise les variables/typo du thème et on ne
   définit que la mise en page propre à ce module. */

.mvm-app { margin: 0; }
.mvm-loading { padding: 1.5em 0; color: var(--bb-body-text-color, #5a5a5a); }

.mvm-section-title {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 1.5em 0 .75em;
}

/* Cartes établissement */
.mvm-venue {
  border: 1px solid var(--bb-content-border-color, #e7e9ec);
  border-radius: var(--bb-block-radius, 8px);
  padding: 1em 1.25em;
  margin-bottom: 1em;
  background: var(--bb-content-background-color, #fff);
}
.mvm-venue__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5em;
  flex-wrap: wrap;
}
.mvm-venue__id { display: flex; align-items: center; gap: 10px; }
.mvm-venue__logo { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; border: 1px solid var(--bb-content-border-color, #e7e9ec); background: #fff; flex: 0 0 auto; }
.mvm-venue__name { font-weight: 600; font-size: 1.05rem; }
.mvm-venue__city { color: var(--bb-body-text-color, #777); font-size: .9rem; }

/* Liste des tables */
.mvm-tables { list-style: none; margin: .75em 0 0; padding: 0; }
.mvm-table-row {
  display: block;
  padding: .65em 0;
  border-top: 1px solid var(--bb-content-alternate-color, #f1f2f4);
}
.mvm-table-row:first-child { border-top: 0; }
.mvm-table-row__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75em;
  flex-wrap: wrap;
}
.mvm-table-row__main { display: flex; align-items: center; gap: .6em; flex-wrap: wrap; }
.mvm-table-row__label { font-weight: 500; }
.mvm-table-row__cap { color: var(--bb-body-text-color, #777); font-size: .9rem; }
.mvm-table-row__actions { display: flex; align-items: center; gap: .5em; flex-shrink: 0; }

/* Récap établissement */
.mvm-recap {
  display: flex; flex-wrap: wrap; gap: 1.25em;
  margin: .25em 0 .5em; padding: .6em .9em;
  background: var(--bb-content-alternate-color, #f6f7f9);
  border-radius: var(--bb-block-radius, 8px);
  font-size: .9rem; color: var(--bb-body-text-color, #555);
}
.mvm-recap__item strong { color: var(--bb-headings-color, #1f2937); font-size: 1.05em; }

/* Sessions rattachées à une table */
.mvm-sessions { margin: .5em 0 0; padding-left: .25em; }
.mvm-sessions-list { list-style: none; margin: 0; padding: 0; }
.mvm-session-row { padding: .6em 0; font-size: .9rem; }
.mvm-session-wrap { display: flex; align-items: center; gap: 1em; flex-wrap: wrap; }
.mvm-session-info { flex: 1 1 240px; min-width: 0; }
.mvm-session-line { display: flex; align-items: center; gap: .5em; flex-wrap: wrap; }

/* Table de jeu vue de dessus + sièges */
.mvm-ring { position: relative; flex: 0 0 auto; }
.mvm-table {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--bb-content-alternate-color, #f3f4f6);
  border: 1px solid var(--bb-content-border-color, #e2e4e8);
}
.mvm-table--full { background: #e7f6ee; border-color: #bfe6cf; }
.mvm-ring-n { font-size: .85rem; font-weight: 600; color: var(--bb-headings-color, #1f2937); }
.mvm-table--full .mvm-ring-n { color: #2f9e6f; }
.mvm-seat {
  position: absolute; border-radius: 50%;
  background: var(--bb-content-alternate-color, #f3f4f6);
  border: 1.5px dashed var(--bb-content-border-color, #c9ccd1);
}
.mvm-seat--occ { background: #2f9e6f; border: 1.5px solid #2f9e6f; }
.mvm-session-when { color: var(--bb-body-text-color, #888); font-size: .82rem; }
.mvm-session-count { color: var(--bb-body-text-color, #555); font-size: .82rem; font-weight: 600; }

/* Barre de remplissage */
.mvm-bar { margin-top: .3em; height: 6px; border-radius: 999px; background: var(--bb-content-alternate-color, #edeff2); overflow: hidden; max-width: 320px; }
.mvm-bar > span { display: block; height: 100%; background: var(--bb-primary-button-background-regular, #385dff); border-radius: 999px; }
.mvm-bar--full > span { background: #2f7d32; }

.mvm-badge {
  font-size: .72rem;
  padding: .15em .55em;
  border-radius: 999px;
  background: #eef6ee;
  color: #2f7d32;
}
.mvm-badge--off { background: #f3f3f3; color: #888; }

/* Formulaire inline */
.mvm-form { margin-top: .75em; display: grid; gap: .6em; }
.mvm-form__row { display: flex; gap: .6em; flex-wrap: wrap; }
.mvm-form label { display: block; font-size: .85rem; margin-bottom: .2em; color: var(--bb-body-text-color, #555); }
.mvm-form input[type="text"],
.mvm-form input[type="number"],
.mvm-form textarea {
  width: 100%;
  padding: .5em .65em;
  border: 1px solid var(--bb-content-border-color, #d7dade);
  border-radius: 6px;
  font: inherit;
}
.mvm-form .mvm-field--label { flex: 1 1 220px; }
.mvm-form .mvm-field--cap { flex: 0 0 110px; }

/* ------------------------------------------------------------------ */
/* Boutons — spécificité renforcée pour résister aux resets du thème.  */
/* ------------------------------------------------------------------ */
.mvm-app .mvm-btn,
.mvm-venue-cta .mvm-btn {
  display: inline-block !important;
  cursor: pointer;
  font: inherit;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  padding: .6em 1.2em !important;
  border-radius: var(--bb-button-radius, 8px) !important;
  border: 1px solid var(--bb-primary-button-background-regular, #385dff) !important;
  text-decoration: none !important;
  transition: opacity .15s ease;
}
.mvm-app .mvm-btn:hover,
.mvm-venue-cta .mvm-btn:hover { opacity: .9; }
.mvm-app .mvm-btn[aria-disabled="true"],
.mvm-venue-cta .mvm-btn[aria-disabled="true"] { opacity: .55; cursor: default; pointer-events: none; }

.mvm-app .mvm-btn--primary,
.mvm-venue-cta .mvm-btn--primary {
  background: var(--bb-primary-button-background-regular, #385dff) !important;
  color: var(--bb-primary-button-text-regular, #fff) !important;
}
.mvm-app .mvm-btn--ghost,
.mvm-venue-cta .mvm-btn--ghost {
  background: var(--bb-content-background-color, #fff) !important;
  color: var(--bb-primary-button-background-regular, #385dff) !important;
}
.mvm-btn--small { padding: .35em .75em !important; font-size: .85rem; }
.mvm-btn--danger { color: #c0392b !important; border-color: #e3b6b1 !important; background: transparent !important; }

.mvm-link { background: none; border: 0; cursor: pointer; color: var(--bb-primary-button-background-regular, #385dff); font: inherit; padding: 0; }

/* Recherche ajout établissement */
.mvm-add { margin: 1em 0 0; }
.mvm-add .mvm-search { width: 100%; padding: .5em .65em; border: 1px solid var(--bb-content-border-color, #d7dade); border-radius: 6px; font: inherit; }
.mvm-search-results { list-style: none; margin: .5em 0 0; padding: 0; border: 1px solid var(--bb-content-border-color, #e7e9ec); border-radius: 6px; overflow: hidden; }
.mvm-search-results:empty { display: none; }
.mvm-search-result { padding: .55em .75em; display: flex; justify-content: space-between; gap: .5em; align-items: center; border-top: 1px solid var(--bb-content-alternate-color, #f1f2f4); }
.mvm-search-result:first-child { border-top: 0; }

/* Messages */
.mvm-msg { padding: .6em .85em; border-radius: 6px; margin: .75em 0; font-size: .92rem; }
.mvm-msg--ok { background: #eef6ee; color: #2f7d32; }
.mvm-msg--err { background: #fdecea; color: #c0392b; }

/* ------------------------------------------------------------------ */
/* Bloc CTA sur la fiche Venue (sous la carte de contact)              */
/* ------------------------------------------------------------------ */
.mvm-venue-cta {
  display: block;
  clear: both;
  margin: 1em 0 1.25em;
}
.mvm-venue-note {
  font-size: .88rem;
  color: var(--bb-body-text-color, #777);
  margin: .5em 0 0;
}
