html, body { overflow-x: hidden; }

/* === MON ORCHESTRE - STYLES === */
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,600&display=swap');

/* Force Poppins partout dans l'app */
body { font-family: 'Poppins', sans-serif !important; }

/* Police Robusta remplacée par Poppins */

:root {
  --mo-bg:        #0b0f2e;
  --mo-bg-2:      #111740;
  --mo-bg-3:      #161d4a;
  --mo-card:      #141937;
  --mo-card-2:    #1a2050;
  --mo-border:    rgba(100, 120, 255, 0.18);
  --mo-border-hi: rgba(140, 160, 255, 0.35);
  --mo-blue:      #3d5aff;
  --mo-blue-light:#6a84ff;
  --mo-indigo:    #8b9fff;
  --mo-white:     #ffffff;
  --mo-cream:     #e8ecff;
  --mo-muted:     #7a85b8;
  --mo-muted-2:   #4e5a8a;
  --mo-green:     #27ae60;
  --mo-green-bg:  rgba(39,174,96,0.12);
  --mo-red:       #e74c3c;
  --mo-red-bg:    rgba(231,76,60,0.12);
  --mo-orange:    #e67e22;
  --mo-orange-bg: rgba(230,126,34,0.12);
  --mo-radius:    16px;
  --mo-radius-sm: 12px;
  --mo-radius-xs: 8px;
  --mo-shadow:    0 8px 40px rgba(0,0,20,0.6);
  --mo-glow:      0 0 40px rgba(61,90,255,0.15);
}

.mo-app * { box-sizing: border-box; margin: 0; padding: 0; }
.mo-auth-page {
  font-family: 'Poppins', sans-serif;
}
.mo-auth-page * { box-sizing: border-box; font-family: 'Poppins', sans-serif; }

.mo-app {
  font-family: 'Poppins', sans-serif;
  background: var(--mo-bg);
  color: var(--mo-cream);
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  position: relative;
}

.mo-app::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 20% -10%, rgba(61,90,255,0.12) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(61,90,255,0.08) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.mo-app > * { position: relative; z-index: 1; }

body:has(.mo-app) .entry-header,
body:has(.mo-app) .page-header { display: none !important; }
body:has(.mo-app) .entry-content,
body:has(.mo-app) .page-content,
body:has(.mo-app) .wp-block-post-content { max-width: 100% !important; padding: 0 !important; margin: 0 !important; }
body:has(.mo-app) #page,
body:has(.mo-app) #content,
body:has(.mo-app) #primary,
body:has(.mo-app) main.site-main,
body:has(.mo-app) article { padding: 0 !important; margin: 0 !important; max-width: 100% !important; width: 100% !important; }

/* HEADER */
.mo-header { background: rgba(17,23,64,0.95); border-bottom: 1px solid var(--mo-border); padding: 16px 32px; backdrop-filter: blur(12px); position: sticky; top: 0; z-index: 100; }
.mo-header-inner { display: flex; align-items: center; justify-content: space-between; max-width: 1200px; margin: 0 auto; }
.mo-logo { font-family: 'Poppins', sans-serif; font-size: 22px; font-weight: 800; color: var(--mo-white); letter-spacing: -0.5px; }
.mo-user-info { display: flex; align-items: center; gap: 12px; }
.mo-username { font-size: 14px; color: var(--mo-muted); }
.mo-badge { font-size: 11px; font-weight: 600; padding: 5px 14px; border-radius: 20px; letter-spacing: 0.8px; text-transform: uppercase; }
.mo-badge-director { background: rgba(61,90,255,0.2); color: var(--mo-blue-light); border: 1px solid rgba(61,90,255,0.4); }
.mo-badge-musician { background: rgba(139,159,255,0.15); color: var(--mo-indigo); border: 1px solid rgba(139,159,255,0.3); }

/* ONBOARDING */
.mo-onboarding { padding: 60px 32px; max-width: 900px; margin: 0 auto; }
.mo-onboarding-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.mo-card { background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: var(--mo-radius); padding: 36px 32px; text-align: center; transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s; }
.mo-card:hover { border-color: var(--mo-border-hi); transform: translateY(-3px); box-shadow: var(--mo-glow); }
.mo-card-icon { font-size: 44px; margin-bottom: 18px; }
.mo-card h2 { font-family: 'Poppins', sans-serif; font-size: 22px; color: var(--mo-white); margin-bottom: 10px; }
.mo-card p { color: var(--mo-muted); font-size: 14px; line-height: 1.6; margin-bottom: 28px; }

/* ORCHESTRA HEADER */
.mo-orchestra-header { background: var(--mo-bg-2); border-bottom: 1px solid var(--mo-border); padding: 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.mo-orchestra-info h1 { font-family: 'Poppins', sans-serif; font-size: 36px; color: var(--mo-white); letter-spacing: -0.2px; margin-bottom: 4px; }
.mo-orchestra-info p { color: var(--mo-muted); font-size: 14px; }
.mo-invite-code { background: var(--mo-card); border: 1px solid var(--mo-border-hi); border-radius: var(--mo-radius); padding: 18px 28px; text-align: center; cursor: pointer; transition: all 0.2s; min-width: 180px; }
.mo-invite-code:hover { background: var(--mo-card-2); border-color: var(--mo-blue-light); box-shadow: var(--mo-glow); }
.mo-invite-label { display: block; font-size: 10px; color: var(--mo-muted); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 8px; font-weight: 600; }
.mo-invite-value { display: block; font-family: 'Poppins', sans-serif; font-size: 22px; color: var(--mo-white); letter-spacing: 0.5px; }
.mo-invite-hint { display: block; font-size: 11px; color: var(--mo-muted); margin-top: 6px; }

/* TABS */
.mo-tabs { display: flex; border-bottom: 1px solid var(--mo-border); background: var(--mo-bg-2); padding: 0 20px; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.mo-tabs::-webkit-scrollbar { display: none; }
.mo-tab { background: none; border: none; border-bottom: 2px solid transparent; color: var(--mo-muted); padding: 14px 14px; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.mo-tab-svg-icon { display: inline-flex; vertical-align: middle; margin-right: 5px; }
.mo-tab-svg-icon svg { width: 15px; height: 15px; color: currentColor; }
.mo-tab.active .mo-tab-svg-icon svg { color: var(--mo-blue-light); }
.mo-tab:hover { color: var(--mo-cream); }
.mo-tab.active { color: var(--mo-white); border-bottom-color: var(--mo-blue-light); }

/* TAB CONTENT */
.mo-tab-content { display: none; padding: 32px; max-width: 1200px; margin: 0 auto; }
.mo-tab-content.active { display: block; }
.mo-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.mo-count-badge {
  display: inline-flex;
  align-items: center;
  background: rgba(106,132,255,0.18);
  color: var(--mo-blue-light);
  border: 1px solid rgba(106,132,255,0.3);
  border-radius: 50px;
  font-size: 12px;
  font-weight: 600;
  font-family: 'Poppins', sans-serif;
  padding: 2px 10px;
  margin-left: 10px;
  vertical-align: middle;
  letter-spacing: 0.2px;
}
.mo-section-header h2 { font-family: 'Poppins', sans-serif; font-size: 22px; font-weight: 700; color: var(--mo-white); }

/* BUTTONS */
.mo-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: 50px; border: none; font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; text-decoration: none; }
.mo-btn-primary { background: var(--mo-white); color: var(--mo-bg); }
.mo-btn-primary:hover { background: var(--mo-cream); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(255,255,255,0.15); }
.mo-btn-danger  { background: var(--mo-red-bg); color: var(--mo-red); border: 1px solid rgba(231,76,60,0.25); }
.mo-btn-warning { background: rgba(230,126,34,0.12); color: #e67e22; border: 1px solid rgba(230,126,34,0.3); }
.mo-btn-warning:hover { background: rgba(230,126,34,0.2); }
.mo-btn-danger:hover { background: rgba(231,76,60,0.22); }
.mo-btn-sm { padding: 8px 16px; font-size: 13px; }
.mo-btn-full { width: 100%; justify-content: center; padding: 16px; margin-top: 8px; font-size: 14px; }

/* FORMS */
.mo-form-group { margin-bottom: 16px; }
.mo-form-group label { display: block; font-size: 14px; font-weight: 600; color: var(--mo-cream); margin-bottom: 8px; }
.mo-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 0; }
.mo-input { width: 100%; background: var(--mo-card-2); border: 1px solid var(--mo-border-hi); border-radius: var(--mo-radius-sm); color: var(--mo-cream); padding: 14px 18px; font-family: 'Poppins', sans-serif; font-size: 14px; transition: border-color 0.2s, box-shadow 0.2s; appearance: none; }
.mo-input:focus { outline: none; border-color: var(--mo-blue-light); box-shadow: 0 0 0 3px rgba(106,132,255,0.15); }
.mo-input::placeholder { color: var(--mo-muted); }
.mo-textarea { min-height: 90px; resize: vertical; }

/* POLLS */
.mo-polls-list { display: flex; flex-direction: column; gap: 16px; }
.mo-poll-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  display: flex;
  align-items: stretch;
  transition: border-color 0.2s, box-shadow 0.2s;
  margin-bottom: 20px;
}
.mo-poll-card:hover { border-color: var(--mo-border-hi); box-shadow: var(--mo-glow); }
.mo-poll-card .mo-poll-type-badge:first-child { border-radius: var(--mo-radius) 0 0 var(--mo-radius); }
/* Bande latérale type — identique aux événements */
.mo-poll-type-badge {
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  background: #94a3b8;
  color: #fff;
  width: 100px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  flex-shrink: 0;
}
.mo-poll-type-badge .badge-icon { display: none; }
.mo-poll-type-badge .badge-label { font-size: 13px; font-weight: 800; letter-spacing: 0.6px; text-align: center; line-height: 1.3; }

.mo-poll-prestation .mo-poll-type-badge { background: #e84393; color: #fff; }
.mo-poll-repetition .mo-poll-type-badge { background: #00b4d8; color: #fff; }
.mo-poll-concert    .mo-poll-type-badge { background: #7C3AED; color: #fff; }

.mo-poll-repas      .mo-poll-type-badge { background: #f59e0b; color: #fff; }
.mo-poll-sortie     .mo-poll-type-badge { background: #10B981; color: #fff; }
.mo-poll-autre      .mo-poll-type-badge { background: #94a3b8; color: #fff; }

/* Corps de la carte sondage */
.mo-poll-body { flex: 1; padding: 22px 24px; min-width: 0; }
.mo-poll-closed { opacity: 0.6; }
.mo-poll-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.mo-poll-top h3 { font-family: 'Poppins', sans-serif; font-size: 24px; font-weight: 700; font-style: normal; color: var(--mo-white); margin-bottom: 10px; }
.mo-poll-desc { color: var(--mo-muted); font-size: 16px; margin-bottom: 12px; line-height: 1.6; }
.mo-poll-meta { display: flex; flex-direction: column; gap: 0; }
.mo-poll-meta span { font-size: 15px; color: var(--mo-fg); }
.mo-poll-status-badge { font-size: 11px; font-weight: 600; padding: 5px 14px; border-radius: 20px; white-space: nowrap; flex-shrink: 0; text-transform: uppercase; letter-spacing: 0.8px; }
.mo-poll-status-badge.open { background: var(--mo-green-bg); color: var(--mo-green); border: 1px solid rgba(39,174,96,0.25); }
.mo-poll-status-badge.closed { background: rgba(122,133,184,0.1); color: var(--mo-muted); border: 1px solid rgba(122,133,184,0.2); }
.mo-poll-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 12px;
  margin-bottom: 18px;
}
.mo-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-xs);
  padding: 12px 8px;
  font-size: 12px;
  color: var(--mo-muted);
  min-height: 64px;
  height: 64px;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
}
.mo-stat .mo-stat-icon { font-size: 16px; line-height: 1; }
.mo-stat strong {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  display: block;
}
.mo-stat .mo-stat-label { font-size: 11px; color: var(--mo-muted); line-height: 1; }
.mo-stat.present strong { color: var(--mo-green); }
.mo-stat.absent  strong { color: var(--mo-red); }
.mo-stat.maybe   strong { color: var(--mo-orange); }
.mo-stat.no-response strong { color: var(--mo-muted); }
.mo-stat.pupitre { background: rgba(99,102,241,0.08); border-color: rgba(99,102,241,0.25); }
.mo-stat.pupitre strong { color: #818cf8; font-size: 16px; }
.mo-stat.pupitre-green { background: var(--mo-green-bg); border-color: rgba(39,174,96,0.4); }
.mo-stat.pupitre-green strong { color: var(--mo-green); font-size: 16px; }
.mo-stat.pupitre-orange { background: var(--mo-orange-bg); border-color: rgba(230,126,34,0.4); }
.mo-stat.pupitre-orange strong { color: var(--mo-orange); font-size: 16px; }
.mo-stat.pupitre-red { background: var(--mo-red-bg); border-color: rgba(231,76,60,0.4); }
.mo-stat.pupitre-red strong { color: var(--mo-red); font-size: 16px; }
/* Dans les sondages uniquement : le compteur pupitre prend la largeur de 2 colonnes */
.mo-poll-card .mo-stat.pupitre { grid-column: span 2; }

/* Panel breakdown dépliable */
.mo-breakdown-panel-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 8px 0 4px;
}
.mo-breakdown-panel-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--mo-border);
  border-radius: 0;
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  font-size: 14px;
}
.mo-breakdown-panel-item:first-child { border-top: 1px solid var(--mo-border); }
.mo-breakdown-panel-item.mo-breakdown-full {
  border-color: var(--mo-border);
  background: rgba(39,174,96,0.05);
}
.mo-poll-respond { margin-bottom: 14px; }
.mo-respond-label { font-size: 14px; color: var(--mo-muted); margin-bottom: 10px; display: block; font-weight: 500; }
.mo-respond-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.mo-respond-btn { padding: 10px 20px; border-radius: 50px; border: 1px solid var(--mo-border-hi); background: var(--mo-card-2); color: var(--mo-cream); font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.15s; }
.mo-respond-btn:hover { border-color: var(--mo-blue-light); }
.active-present { background: var(--mo-green-bg) !important; border-color: var(--mo-green) !important; color: var(--mo-green) !important; }
.active-absent  { background: var(--mo-red-bg) !important; border-color: var(--mo-red) !important; color: var(--mo-red) !important; }
.active-maybe   { background: var(--mo-orange-bg) !important; border-color: var(--mo-orange) !important; color: var(--mo-orange) !important; }
.mo-poll-actions { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 10px; }

/* Bouton toggle "Voir les réponses" */
.mo-poll-details-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  background: none;
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-xs);
  color: var(--mo-muted);
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 500;
  padding: 8px 12px;
  cursor: pointer;
  margin-top: 10px;
  transition: all 0.18s;
}
.mo-poll-details-toggle:hover {
  border-color: var(--mo-blue-light);
  color: var(--mo-blue-light);
  background: rgba(106,132,255,0.06);
}
.mo-poll-details-toggle-open {
  border-color: var(--mo-blue-light);
  color: var(--mo-blue-light);
  background: rgba(106,132,255,0.06);
}
.mo-poll-details-arrow { font-size: 11px; }
.mo-poll-details-link { margin-top: 14px; border-top: 1px solid var(--mo-border); padding-top: 14px; }
.mo-link { color: var(--mo-indigo); font-size: 13px; text-decoration: none; font-weight: 500; }
.mo-link:hover { color: var(--mo-blue-light); }
.mo-poll-details { margin-top: 12px; padding: 0 2px; }
/* Variante "Voir ma réponse" — légèrement différenciée */
.mo-reponse-toggle {
  margin-top: 8px;
  border-color: rgba(99,102,241,0.25);
}
.mo-reponse-toggle strong { color: var(--mo-cream); }
.mo-manage-toggle {
  margin-top: 10px;
  border-color: rgba(255,255,255,0.1);
  color: var(--mo-muted);
}
.mo-manage-toggle:hover, .mo-manage-toggle.mo-poll-details-toggle-open {
  border-color: var(--mo-border-hi);
  color: var(--mo-cream);
  background: rgba(255,255,255,0.04);
}
.mo-response-row { padding: 9px 0; border-bottom: 1px solid var(--mo-border); font-size: 14px; }
.mo-response-top { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; width: 100%; overflow: hidden; }
.mo-response-name { font-weight: 600; color: var(--mo-cream); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mo-response-time { font-size: 11px; color: var(--mo-muted-2); white-space: nowrap; flex-shrink: 0; margin-left: 4px; }
.mo-response-bottom { display: flex; align-items: center; gap: 6px; padding-left: 22px; margin-top: 3px; }
.mo-response-comment { color: var(--mo-muted); font-style: italic; font-size: 12px; }

/* EVENTS */
.mo-events-list { display: flex; flex-direction: column; gap: 20px; }
.mo-event-card { background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: var(--mo-radius); display: flex; flex-wrap: wrap; align-items: stretch; transition: border-color 0.2s, box-shadow 0.2s; }
/* Arrondir les coins du badge de type pour compenser l'absence d'overflow:hidden */
.mo-event-card .mo-event-type-badge:first-child { border-radius: var(--mo-radius) 0 0 var(--mo-radius); }
@media (max-width: 768px) {
  .mo-event-card .mo-event-type-badge:first-child { border-radius: var(--mo-radius) var(--mo-radius) 0 0; }
}
.mo-event-card:hover { border-color: var(--mo-border-hi); box-shadow: var(--mo-glow); }
.mo-event-type-badge { padding: 0 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; font-size: 13px; font-weight: 800; white-space: nowrap; background: #94a3b8; border-right: none; color: #fff; width: 100px; text-transform: uppercase; letter-spacing: 0.6px; }
.mo-event-type-badge .badge-icon { display: none; }
.mo-event-type-badge .badge-label { font-size: 13px; font-weight: 800; letter-spacing: 0.6px; text-align: center; line-height: 1.3; }
.mo-event-prestation .mo-event-type-badge { background: #e84393; border-right: none; color: #fff; }
.mo-event-repetition .mo-event-type-badge { background: #00b4d8; border-right: none; color: #fff; }
.mo-event-concert    .mo-event-type-badge { background: #7C3AED; border-right: none; color: #fff; }

.mo-event-sortie     .mo-event-type-badge { background: #10B981; border-right: none; color: #fff; }
.mo-event-repas      .mo-event-type-badge { background: #f59e0b; border-right: none; color: #fff; }
.mo-event-body { flex: 1; padding: 22px 24px; min-width: 0; }
/* Panels dépliants dans les cartes événements — pleine largeur */
.mo-event-card .mo-stat-panel,
.mo-event-card .mo-no-response-panel {
  flex: 0 0 100%;
  width: 100%;
  border-top: 1px solid var(--mo-border);
}
.mo-event-body h3 { font-family: 'Poppins', sans-serif; font-size: 24px; font-weight: 700; font-style: normal; color: var(--mo-white); margin-bottom: 8px; }
.mo-event-date { font-size: 15px; color: var(--mo-fg); font-weight: 500; margin-bottom: 0; }
.mo-event-meta { font-size: 15px; color: var(--mo-muted); margin-bottom: 0; }
.mo-event-desc { font-size: 15px; color: var(--mo-muted); margin: 10px 0; line-height: 1.6; }
.mo-event-extras { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mo-tag { background: var(--mo-card-2); border: 1px solid var(--mo-border-hi); border-radius: 20px; padding: 4px 12px; font-size: 12px; color: var(--mo-muted); font-weight: 500; }
.mo-event-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 24px 16px;
  border-top: 1px solid var(--mo-border);
}
/* Footer événement : empile les actions et le bouton agenda en colonne */
.mo-event-footer {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--mo-border);
  padding: 12px 24px;
}
.mo-event-footer .mo-poll-details-toggle {
  margin-top: 0;
}
.mo-event-footer .mo-event-actions {
  border-top: none;
  padding: 12px 0 8px;
}
.mo-event-footer .mo-agenda-btns {
  border-top: 1px solid var(--mo-border);
  padding: 10px 0 14px;
  width: 100%;
  box-sizing: border-box;
}
.mo-agenda-btns { display: none; }
@media (max-width: 768px) {
  .mo-agenda-btns { display: block; }
}
.mo-event-footer .mo-agenda-btn {
  width: 100%;
  justify-content: center;
}

/* MEMBERS */
.mo-members-list { display: flex; flex-direction: column; gap: 20px; }
.mo-member-card { background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: var(--mo-radius); padding: 18px 24px; display: flex; align-items: center; gap: 18px; transition: border-color 0.2s; }
.mo-member-card:hover { border-color: var(--mo-border-hi); }
/* .mo-member-avatar → voir section AVATAR PHOTO */
.mo-member-info { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.mo-member-name { font-weight: 600; color: var(--mo-white); font-size: 15px; }
.mo-member-instrument { font-size: 14px; color: var(--mo-blue-light); }
.mo-member-email { font-size: 12px; color: var(--mo-muted); }
.mo-member-presence-inline { margin-top: 8px; }
.mo-member-presence-title { font-size: 11px; font-weight: 600; color: var(--mo-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; }
.mo-member-presence-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.mo-presence-pill { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 20px; white-space: nowrap; }
.mo-member-date { font-size: 12px; color: var(--mo-muted-2); }

/* MODALS */
.mo-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(5,8,30,0.85); backdrop-filter: blur(6px); z-index: 10000; align-items: center; justify-content: center; padding: 20px; overflow-y: auto; }

.mo-modal-overlay.active { display: flex; }
.mo-modal { background: var(--mo-card); border: 1px solid var(--mo-border-hi); border-radius: var(--mo-radius); width: 100%; max-width: 580px; max-height: 90vh; overflow-y: auto; box-shadow: var(--mo-shadow), var(--mo-glow); animation: mo-slide-in 0.25s ease; box-sizing: border-box; }
@keyframes mo-slide-in { from { transform: translateY(-24px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.mo-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 24px 28px; border-bottom: 1px solid var(--mo-border); }
.mo-modal-header h2 { font-family: 'Poppins', sans-serif; font-size: 20px; font-weight: 700; color: var(--mo-white); }
.mo-modal-close { background: var(--mo-card-2); border: 1px solid var(--mo-border); color: var(--mo-muted); font-size: 16px; cursor: pointer; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.2s; }
.mo-modal-close:hover { border-color: var(--mo-border-hi); color: var(--mo-cream); }
.mo-modal-body { padding: 28px; }

/* MESSAGES */
.mo-msg { margin-top: 14px; padding: 12px 16px; border-radius: var(--mo-radius-xs); font-size: 14px; display: none; font-weight: 500; }
.mo-msg.success { background: var(--mo-green-bg); color: var(--mo-green); border: 1px solid rgba(39,174,96,0.25); display: block; }
.mo-msg.error   { background: var(--mo-red-bg);   color: var(--mo-red);   border: 1px solid rgba(231,76,60,0.25);  display: block; }

/* MISC */
.mo-empty { text-align: center; color: var(--mo-muted); padding: 48px 20px; font-size: 15px; }
.mo-empty-small { color: var(--mo-muted); font-size: 13px; text-align: center; padding: 14px 0; }
.mo-notice { background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: var(--mo-radius); padding: 24px; text-align: center; color: var(--mo-muted); }
.mo-notice a { color: var(--mo-blue-light); }
.mo-join-standalone { max-width: 420px; margin: 60px auto; display: flex; flex-direction: column; gap: 14px; padding: 0 20px; }
.mo-join-standalone h2 { font-family: 'Poppins', sans-serif; color: var(--mo-white); font-size: 26px; }

/* RESPONSIVE */

/* ===================== SECTIONS ÉVÉNEMENTS PAR RÉPONSE ===================== */
.mo-events-section { margin-bottom: 40px; display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 768px) {
  .mo-events-section { margin-bottom: 24px; gap: 12px; }
}
.mo-events-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--mo-muted);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--mo-border);
}
.mo-events-section-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.mo-events-section-dot.present { background: var(--mo-green); }
.mo-events-section-dot.maybe   { background: var(--mo-orange); }
.mo-events-section-dot.absent  { background: var(--mo-red); }
.mo-events-section-dot.none    { background: var(--mo-muted); }

/* ===================== RESET MOBILE ===================== */
* { -webkit-tap-highlight-color: transparent; }
input, textarea, select, button { font-size: 16px !important; font-family: 'Poppins', sans-serif !important; } /* évite le zoom iOS */

@media (max-width: 768px) {
  /* HEADER */
  .mo-header { padding: 10px 12px 10px 14px; }
  .mo-logo { font-size: 15px; flex-shrink: 0; }
  .mo-username { display: none; }
  .mo-badge { display: none; }
  .mo-btn-ghost { display: none; }
  /* header-inner : left flex+overflow, right ne déborde pas */
  .mo-header-inner { gap: 6px; width: 100%; box-sizing: border-box; }
  .mo-header-left { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; overflow: visible; }
  .mo-user-info { flex-shrink: 0; display: flex; align-items: center; gap: 6px; padding-right: 0; }
  /* Logo/Maestro : ne rétrécit jamais */
  .mo-logo, .mo-header-logo { flex-shrink: 0; }
  /* Nom orchestre : wrap sur 2 lignes max, ne déborde pas */
  .mo-header-orch { font-size: 12px; flex: 1 1 0; min-width: 0; overflow: hidden; white-space: normal; word-break: break-word; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  /* Code orchestre : pill compacte, taille fixe, ne grandit pas */
  .mo-invite-pill { padding: 5px 9px; gap: 4px; font-size: 11px; flex: 0 0 auto; max-width: 120px; overflow: hidden; }
  .mo-invite-pill-label { display: none; }
  .mo-invite-pill-code { font-size: 11px; letter-spacing: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* Cloche : marge à droite pour ne pas coller au bord */
  .mo-notif-btn { width: 36px; height: 36px; font-size: 17px; flex-shrink: 0; margin-right: 4px; }

  /* ORCHESTRA HEADER — masqué sur mobile, infos dans le header */
  .mo-orchestra-header { display: none; }

  /* TABS - scroll horizontal compact */
  .mo-tabs { padding: 0 12px; gap: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .mo-tabs::-webkit-scrollbar { display: none; }
  .mo-tab { padding: 14px 14px; font-size: 13px; white-space: nowrap; }

  /* CONTENU */
  .mo-tab-content { padding: 20px 16px; }
  .mo-section-header { flex-direction: column; align-items: flex-start; gap: 12px; }
  .mo-section-header h2 { font-size: 18px; }

  /* FORMULAIRES */
  .mo-form-row { grid-template-columns: 1fr; }
  .mo-input, .mo-textarea { padding: 12px 14px; }
  .mo-btn { padding: 12px 20px; font-size: 13px; }
  .mo-btn-full { width: 100%; justify-content: center; }

  /* SONDAGES */
  .mo-poll-card { flex-direction: column; }
  .mo-poll-card .mo-poll-type-badge:first-child { border-radius: var(--mo-radius) var(--mo-radius) 0 0; }
  .mo-poll-type-badge { flex-direction: row; padding: 10px 16px; min-width: auto; width: 100%; box-sizing: border-box; }
  .mo-poll-type-badge .badge-label { font-size: 13px; font-weight: 800; color: #fff; }
  .mo-poll-body { padding: 16px; }
  .mo-poll-top { flex-direction: column; gap: 10px; }
  .mo-poll-top h3 { font-size: 18px; }
  .mo-poll-actions { display: flex; flex-wrap: wrap; gap: 8px; }
  .mo-poll-actions .mo-btn { flex: 1 1 auto; justify-content: center; min-width: 120px; }
  /* respond-grid géré dans le bloc responsive dédié ci-dessous */

  /* ÉVÉNEMENTS */
  .mo-event-card { flex-direction: column; }
  .mo-event-type-badge { flex-direction: row; gap: 0; padding: 10px 16px; min-width: auto; width: 100%; box-sizing: border-box; border-right: none; border-bottom: none; }
  .mo-event-type-badge .badge-label { font-size: 13px; font-weight: 800; color: #fff; }
  .mo-event-body { padding: 16px; }
  .mo-event-body h3 { font-size: 18px; }
  .mo-card-title { font-size: 18px !important; }
  .mo-event-date { font-size: 14px; flex-wrap: wrap; gap: 4px; }
  .mo-event-meta { font-size: 14px; }
  .mo-event-actions { padding: 14px 16px 16px; justify-content: center; }
  /* Cartes historique et refusées */
  .mo-event-past .mo-event-body { padding: 14px 16px; }
  .mo-event-past h3 { font-size: 16px; margin-bottom: 6px; }
  .mo-event-past { margin-bottom: 14px; }
  .mo-refused-meta { gap: 6px; margin-top: 8px; }
  .mo-refused-meta .mo-event-date,
  .mo-refused-meta .mo-event-meta { font-size: 13px; }
  .mo-refused-date-label { font-size: 12px; flex-wrap: wrap; gap: 6px; }
  .mo-past-response-row { margin-top: 10px; font-size: 13px; }
  .mo-response-pill { font-size: 12px; padding: 3px 10px; }
  .mo-event-past .mo-event-actions { padding: 10px 16px 12px; }
  .mo-event-past .mo-event-type-badge { border-radius: var(--mo-radius) var(--mo-radius) 0 0; }
  .mo-agenda-btns { padding: 12px 0 16px; flex-direction: row; flex-wrap: wrap; gap: 8px; justify-content: center; }
  .mo-agenda-btn { font-size: 12px; padding: 8px 14px; }
  .mo-agenda-menu {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw - 32px);
    max-width: 340px;
    border-radius: 16px;
    top: auto;
    z-index: 300;
    -webkit-overflow-scrolling: touch;
  }
  .mo-agenda-choice {
    padding: 18px 20px;
    font-size: 15px;
    min-height: 56px;
  }

  /* MEMBRES */
  .mo-members-list { gap: 20px; }
  .mo-member-card { flex-wrap: wrap; gap: 0; padding: 0 !important; }
  .mo-member-card-top { flex-wrap: wrap !important; gap: 12px !important; padding: 14px 14px 12px !important; width: 100%; box-sizing: border-box; }
  .mo-member-info { flex: 1; min-width: 0; }
  .mo-member-right {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    justify-content: space-between;
    background: var(--mo-bg-2);
    border-top: 1px solid var(--mo-border);
    padding: 10px 14px;
    gap: 8px;
    box-sizing: border-box;
  }
  .mo-member-date { font-size: 12px; color: var(--mo-muted); flex-shrink: 0; }
  .mo-member-actions {
    width: 100%;
    display: flex;
    gap: 8px;
    order: 2;
  }
  .mo-member-actions .mo-btn {
    flex: 1;
    justify-content: center;
    font-size: 12px;
    padding: 8px 6px;
    min-width: 0;
    white-space: normal;
    word-break: break-word;
    overflow: visible;
    text-overflow: unset;
    text-align: center;
    line-height: 1.3;
    height: auto;
  }
  .mo-btn-presence {
    order: 1;
    flex-shrink: 0;
    font-size: 11px;
    padding: 6px 10px;
    margin-top: 0;
    white-space: nowrap;
  }
  .mo-member-right .mo-btn-presence { margin-left: auto; }

  /* MODAL */
  .mo-modal { max-width: 100%; margin: 0; border-radius: 20px 20px 0 0; max-height: 92vh; width: 100%; }
  .mo-modal-overlay.active { align-items: flex-end; justify-content: center; padding: 0; }
  .mo-modal-header { padding: 20px 24px 16px; }
  .mo-modal-body { padding: 8px 24px 36px; }

  /* NOTIFICATIONS */
  .mo-notif-panel { left: 0 !important; right: 0 !important; width: 100vw !important; top: 60px; border-radius: var(--mo-radius) var(--mo-radius) 0 0; border-left: none; border-right: none; }

  /* PROFIL */
  .mo-profile-top { flex-direction: column; align-items: center; text-align: center; gap: 12px; }
  .mo-profile-badges { justify-content: center; }
  .mo-stats-grid { grid-template-columns: 1fr 1fr; }

  /* ONBOARDING */
  .mo-onboarding { padding: 30px 16px; }
  /* Sur mobile : header-orch visible, invite code accessible */
  .mo-invite-pill-label { display: none; }
  .mo-header-orch { display: flex !important; }
}

@media (max-width: 480px) {
  /* Header encore plus compact */
  .mo-header { padding: 10px 12px; }
  .mo-logo { font-size: 16px; }
  .mo-badge { display: none; }
  .mo-btn-ghost { display: none; }

  /* Onglets : icônes seules si trop serré */
  .mo-tab { padding: 12px 10px; font-size: 12px; }

  /* Grille réponses : compacter */
  /* respond-grid : voir bloc responsive dédié */

  /* Stats profil */
  .mo-stats-grid { grid-template-columns: 1fr; }

  /* Sections événements */
  .mo-events-section-title { font-size: 11px; }

  /* Formulaires auth */
  .mo-auth-card { padding: 28px 20px; }

  /* Boutons actions directeur */
  .mo-poll-actions .mo-btn { font-size: 12px; padding: 9px 14px; min-width: 0; }
}

/* ===================== AUTH PAGES ===================== */
.mo-auth-wrap {
  min-height: 100vh;
  background: var(--mo-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  position: relative;
}
.mo-auth-wrap::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 20% -10%, rgba(61,90,255,0.15) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 110%, rgba(61,90,255,0.1) 0%, transparent 60%);
  pointer-events: none;
}

.mo-auth-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border-hi);
  border-radius: var(--mo-radius);
  padding: 40px 36px;
  width: 100%;
  max-width: 420px;
  position: relative;
  z-index: 1;
  box-shadow: var(--mo-shadow), var(--mo-glow);
}

.mo-auth-logo {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  color: var(--mo-white);
  text-align: center;
  margin-bottom: 24px;
  letter-spacing: -0.2px;
}

.mo-auth-title {
  font-family: 'Poppins', sans-serif;
  font-size: 28px;
  color: var(--mo-white);
  text-align: center;
  margin-bottom: 28px;
  letter-spacing: -0.3px;
}

.mo-auth-switch {
  text-align: center;
  margin-top: 20px;
  font-size: 13px;
  color: var(--mo-muted);
}
.mo-auth-switch a {
  color: var(--mo-white);
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.5px;
}
.mo-auth-switch a:hover { color: var(--mo-blue-light); }

.mo-select {
  cursor: pointer;
}
.mo-select option {
  background: var(--mo-card-2);
  color: var(--mo-cream);
}

/* ===================== MUSICIAN HERO ===================== */
.mo-musician-hero {
  background: var(--mo-bg-2);
  border-bottom: 1px solid var(--mo-border);
  padding: 28px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.mo-musician-hero-info {
  display: flex;
  align-items: center;
  gap: 18px;
}
.mo-musician-avatar {
  width: 60px; height: 60px;
  background: linear-gradient(135deg, var(--mo-blue), var(--mo-indigo));
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Poppins', sans-serif;
  font-size: 24px;
  color: var(--mo-white);
  flex-shrink: 0;
}
.mo-musician-hero h1 {
  font-family: 'Poppins', sans-serif;
  font-size: 26px;
  color: var(--mo-white);
  margin-bottom: 4px;
}
.mo-musician-instrument {
  font-size: 14px;
  color: var(--mo-blue-light);
  font-weight: 500;
}

/* ── Badges rôle + orchestre dans le profil ───────────────────── */
.mo-profile-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.mo-profile-badge {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  letter-spacing: 0.3px;
}
.mo-profile-badge-role {
  background: rgba(61,90,255,0.18);
  color: var(--mo-blue-light);
  border: 1px solid rgba(61,90,255,0.35);
}
.mo-profile-badge-orch {
  background: rgba(255,255,255,0.07);
  color: var(--mo-muted);
  border: 1px solid var(--mo-border-hi);
}
.mo-orchestra-badge {
  background: rgba(61,90,255,0.12);
  border: 1px solid rgba(61,90,255,0.25);
  border-radius: var(--mo-radius);
  padding: 12px 20px;
  text-align: center;
}
.mo-orchestra-badge-label {
  display: block;
  font-size: 10px;
  color: var(--mo-muted);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 4px;
}
.mo-orchestra-badge-name {
  display: block;
  font-family: 'Poppins', sans-serif;
  font-size: 18px;
  color: var(--mo-white);
}

/* Réponse existante */
.mo-my-response {
  font-size: 14px;
  color: var(--mo-muted);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.mo-response-pill {
  padding: 5px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.mo-response-pill.present { background: var(--mo-green-bg); color: var(--mo-green); border: 1px solid rgba(39,174,96,0.3); }
.mo-response-pill.absent  { background: var(--mo-red-bg);   color: var(--mo-red);   border: 1px solid rgba(231,76,60,0.3); }
.mo-response-pill.maybe   { background: var(--mo-orange-bg);color: var(--mo-orange);border: 1px solid rgba(230,126,34,0.3); }

/* ===================== PROFILE ===================== */
.mo-profile-wrap {
  max-width: 600px;
  margin: 0 auto;
  padding: 40px 24px;
}
.mo-profile-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 32px;
}
.mo-profile-avatar {
  width: 72px; height: 72px;
  background: linear-gradient(135deg, var(--mo-blue), var(--mo-indigo));
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Poppins', sans-serif;
  font-size: 28px;
  color: var(--mo-white);
  flex-shrink: 0;
}
.mo-profile-header h1 {
  font-family: 'Poppins', sans-serif;
  font-size: 28px;
  color: var(--mo-white);
  margin-bottom: 4px;
}
.mo-profile-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 32px;
}
.mo-profile-card h2 {
  font-family: 'Poppins', sans-serif;
  font-size: 18px;
  color: var(--mo-white);
  margin-bottom: 20px;
}
.mo-profile-divider {
  border-top: 1px solid var(--mo-border);
  margin: 28px 0;
}

/* Header profile btn */
.mo-profile-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  transition: opacity 0.2s;
}
.mo-profile-btn:hover { opacity: 0.8; }
.mo-avatar-sm {
  width: 32px; height: 32px;
  background: linear-gradient(135deg, var(--mo-blue), var(--mo-indigo));
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  color: var(--mo-white);
}
.mo-btn-ghost {
  background: transparent;
  color: var(--mo-muted);
  border: 1px solid var(--mo-border);
  font-size: 13px;
  padding: 7px 14px;
}
.mo-btn-ghost:hover { border-color: var(--mo-border-hi); color: var(--mo-cream); }

/* Onboarding simple */
.mo-onboarding-single {
  max-width: 420px;
  margin: 0 auto;
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 40px 36px;
  text-align: center;
}
.mo-onboarding-single .mo-card-icon { font-size: 48px; margin-bottom: 16px; }
.mo-onboarding-single h2 { font-family: 'Poppins', sans-serif; font-size: 24px; color: var(--mo-white); margin-bottom: 10px; }
.mo-onboarding-single p { color: var(--mo-muted); font-size: 14px; margin-bottom: 24px; }

/* ===================== AUTH PAGE (nouvelle) ===================== */
.mo-auth-page {
  min-height: 100vh;
  background: var(--mo-bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
  position: relative;
  gap: 0;
}
.mo-auth-page::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 20% -10%, rgba(61,90,255,0.15) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 110%, rgba(61,90,255,0.1) 0%, transparent 60%);
  pointer-events: none;
}
.mo-auth-page .mo-auth-logo {
  font-family: 'Poppins', sans-serif;
  font-size: 26px;
  font-weight: 800;
  color: var(--mo-white);
  margin-bottom: 28px;
  letter-spacing: -0.5px;
  position: relative;
  z-index: 1;
}
.mo-auth-tabs {
  display: flex;
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: 50px;
  padding: 4px;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
  box-shadow: 0 4px 24px rgba(0,0,0,0.4);
}
.mo-auth-tab {
  padding: 10px 28px;
  border-radius: 50px;
  border: none;
  background: transparent;
  color: var(--mo-muted);
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.mo-auth-tab.active {
  background: var(--mo-white);
  color: var(--mo-bg);
}
.mo-auth-page .mo-auth-card {
  background: var(--mo-card);
  border: 1px solid rgba(100,120,255,0.12);
  border-radius: var(--mo-radius);
  padding: 32px 32px 36px;
  width: 100%;
  max-width: 440px;
  position: relative;
  z-index: 1;
  box-shadow: 0 8px 48px rgba(0,0,0,0.35);
}

/* ===================== ONBOARDING CHOICES ===================== */
.mo-onboarding-page {
  max-width: 540px;
  margin: 0 auto;
  padding: 48px 32px;
}
.mo-onboarding-intro {
  text-align: center;
  margin-bottom: 40px;
}
.mo-onboarding-intro h1 {
  font-family: 'Poppins', sans-serif;
  font-size: 32px;
  font-weight: 800;
  color: var(--mo-white);
  margin-bottom: 8px;
}
.mo-onboarding-intro p { color: var(--mo-muted); font-size: 16px; }

/* Toggle mobile — caché sur desktop */
.mo-onboarding-toggle {
  display: none;
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: 50px;
  padding: 4px;
  margin-bottom: 24px;
  gap: 0;
}
.mo-onboarding-toggle-btn {
  flex: 1;
  padding: 12px 16px;
  border-radius: 50px;
  border: none;
  background: transparent;
  color: var(--mo-muted);
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.mo-onboarding-toggle-btn.active {
  background: var(--mo-white);
  color: var(--mo-bg);
}

.mo-onboarding-choices {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  align-items: start;
}
.mo-choice-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 36px 32px;
  transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
  box-sizing: border-box;
}
.mo-choice-card:hover { border-color: var(--mo-border-hi); box-shadow: var(--mo-glow); }
.mo-choice-icon { font-size: 44px; margin-bottom: 16px; }
.mo-choice-card h2 { font-family: 'Poppins', sans-serif; font-size: 22px; color: var(--mo-white); margin-bottom: 8px; }
.mo-choice-card p { color: var(--mo-muted); font-size: 14px; line-height: 1.6; margin-bottom: 24px; }
.mo-choice-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  margin-top: 80px;
}
.mo-choice-divider span {
  background: var(--mo-bg-3);
  border: 1px solid var(--mo-border);
  border-radius: 50%;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px;
  color: var(--mo-muted);
  font-weight: 600;
}

@media (max-width: 768px) {
  .mo-onboarding-page {
    padding: 24px 16px 40px;
  }
  .mo-onboarding-intro {
    margin-bottom: 24px;
  }
  .mo-onboarding-intro h1 {
    font-size: 24px;
  }
  .mo-onboarding-intro p {
    font-size: 14px;
  }
  /* Afficher le toggle sur mobile */
  .mo-onboarding-toggle {
    display: flex;
  }
  /* Grille → colonne unique */
  .mo-onboarding-choices {
    grid-template-columns: 1fr;
  }
  .mo-choice-divider {
    display: none;
  }
  .mo-choice-card {
    padding: 24px 20px;
    width: 100%;
    box-sizing: border-box;
  }
  .mo-choice-icon {
    font-size: 32px;
    margin-bottom: 10px;
  }
  .mo-choice-card h2 {
    font-size: 18px;
  }
  /* Masquer la card "créer" sur mobile seulement si le toggle est présent (cas musicien avec les 2 options) */
  .mo-onboarding-toggle ~ .mo-onboarding-choices #onboarding-create,
  body:has(.mo-onboarding-toggle) #onboarding-create {
    display: none;
  }
  /* Si le toggle n'existe pas (directeur seul), toujours afficher la card créer */
  .mo-onboarding-page:not(:has(.mo-onboarding-toggle)) #onboarding-create {
    display: block !important;
  }
}

/* ===================== HEADER AMÉLIORÉ ===================== */
.mo-header-left { display: flex; align-items: center; gap: 16px; }
.mo-header-orch {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  color: var(--mo-indigo);
  padding-left: 16px;
  border-left: 1px solid var(--mo-border);
}
.mo-invite-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(61,90,255,0.1);
  border: 1px solid rgba(61,90,255,0.25);
  border-radius: 50px;
  padding: 6px 14px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 13px;
}
.mo-invite-pill:hover { background: rgba(61,90,255,0.2); }
.mo-invite-pill-label { color: var(--mo-muted); }
.mo-invite-pill-code { font-family: 'Poppins', sans-serif; color: var(--mo-white); letter-spacing: -0.2px; font-size: 14px; }
.mo-invite-pill-hint { color: var(--mo-muted); }

/* PROFILE TOP */
.mo-profile-top {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}
.mo-profile-avatar-lg {
  width: 64px; height: 64px;
  background: linear-gradient(135deg, var(--mo-blue), var(--mo-indigo));
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Poppins', sans-serif;
  font-size: 26px;
  color: var(--mo-white);
  flex-shrink: 0;
}
.mo-profile-name { font-family: 'Poppins', sans-serif; font-size: 22px; color: var(--mo-white); margin-bottom: 4px; }

/* BOUTON VALIDER */
.mo-btn-validate {
  background: var(--mo-green-bg);
  color: var(--mo-green);
  border: 1px solid rgba(39,174,96,0.3);
}
.mo-btn-validate:hover { background: rgba(39,174,96,0.25); }

/* onboarding responsive — géré dans les styles du composant */

/* ===================== MASQUER WORDPRESS AUTOUR DE L'APP ===================== */

/* Masquer le titre de page WordPress */
.page-title,
.entry-title,
h1.page-title,
h1.entry-title,
.wp-block-post-title {
  display: none !important;
}

/* Masquer header/footer/nav du thème quand l'app est présente */
body:has(.mo-app) .site-header,
body:has(.mo-app) header.site-header,
body:has(.mo-app) #masthead,
body:has(.mo-app) .site-footer,
body:has(.mo-app) footer.site-footer,
body:has(.mo-app) #colophon,
body:has(.mo-app) .site-branding,
body:has(.mo-app) nav.main-navigation,
body:has(.mo-app) #site-navigation,
body:has(.mo-app) .wp-block-template-part,
body:has(.mo-app) header[class*="wp-block"],
body:has(.mo-app) footer[class*="wp-block"],
body:has(.mo-app) .wp-site-blocks > header,
body:has(.mo-app) .wp-site-blocks > footer,
body:has(.mo-app) .global-header,
body:has(.mo-app) .global-footer {
  display: none !important;
}

/* Pareil pour la page auth */
body:has(.mo-auth-page) .site-header,
body:has(.mo-auth-page) header.site-header,
body:has(.mo-auth-page) #masthead,
body:has(.mo-auth-page) .site-footer,
body:has(.mo-auth-page) footer.site-footer,
body:has(.mo-auth-page) #colophon,
body:has(.mo-auth-page) nav.main-navigation,
body:has(.mo-auth-page) #site-navigation,
body:has(.mo-auth-page) .wp-block-template-part,
body:has(.mo-auth-page) header[class*="wp-block"],
body:has(.mo-auth-page) footer[class*="wp-block"],
body:has(.mo-auth-page) .wp-site-blocks > header,
body:has(.mo-auth-page) .wp-site-blocks > footer,
body:has(.mo-auth-page) .global-header,
body:has(.mo-auth-page) .global-footer {
  display: none !important;
}

/* Supprimer les paddings/marges du thème */
body:has(.mo-app),
body:has(.mo-auth-page) {
  margin: 0 !important;
  padding: 0 !important;
  background: #0b0f2e !important;
}

body:has(.mo-app) .site-content,
body:has(.mo-app) #content,
body:has(.mo-app) .content-area,
body:has(.mo-app) #primary,
body:has(.mo-app) .site,
body:has(.mo-app) #page,
body:has(.mo-app) main,
body:has(.mo-app) article,
body:has(.mo-app) .entry-content,
body:has(.mo-app) .entry-header,
body:has(.mo-app) .wp-block-post-content,
body:has(.mo-auth-page) .site-content,
body:has(.mo-auth-page) #content,
body:has(.mo-auth-page) .content-area,
body:has(.mo-auth-page) #primary,
body:has(.mo-auth-page) .site,
body:has(.mo-auth-page) #page,
body:has(.mo-auth-page) main,
body:has(.mo-auth-page) article,
body:has(.mo-auth-page) .entry-content,
body:has(.mo-auth-page) .entry-header,
body:has(.mo-auth-page) .wp-block-post-content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* === LOGO UPLOAD === */
.mo-logo-upload-group { text-align: center; }
.mo-logo-upload {
  width: 100px; height: 100px; border-radius: 50%;
  border: 2px dashed var(--mo-blue);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  cursor: pointer; margin: 8px auto;
  transition: border-color 0.2s;
  background: var(--mo-card);
  overflow: hidden;
  position: relative;
}
.mo-logo-upload:hover { border-color: var(--mo-white); }
.mo-logo-upload img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 50%; display: block; }
#logo-placeholder { display: flex; flex-direction: column; align-items: center; gap: 4px; }

/* === LOGO HEADER === */
.mo-header-logo {
  width: 40px; height: 40px; border-radius: 50%;
  object-fit: cover; object-position: center;
  border: 1px solid rgba(61,90,255,0.25);
  flex-shrink: 0;
  display: block;
}

/* === INSTRUMENT BREAKDOWN === */
.mo-instrument-breakdown {
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-left: 3px solid var(--mo-green);
  border-radius: var(--mo-radius-sm);
  padding: 14px 16px;
  margin-bottom: 16px;
}
.mo-breakdown-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--mo-green);
  text-transform: uppercase;
  letter-spacing: -0.2px;
  margin-bottom: 10px;
}
.mo-breakdown-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mo-breakdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--mo-border);
  border-radius: 0;
  background: none;
  font-size: 14px;
  transition: background 0.15s;
}
.mo-breakdown-item:first-child { border-top: 1px solid var(--mo-border); }
.mo-breakdown-item:hover { background: rgba(255,255,255,0.02); }
.mo-breakdown-item.mo-breakdown-full {
  background: rgba(39,174,96,0.05);
}
.mo-breakdown-inst { color: var(--mo-cream); font-weight: 500; }
.mo-breakdown-count {
  background: var(--mo-green-bg);
  color: var(--mo-green);
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 12px;
  font-weight: 700;
}
/* Ratio X/Y */
.mo-breakdown-ratio {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  font-size: 13px;
  font-weight: 700;
  color: var(--mo-muted);
  background: var(--mo-card-2);
  border-radius: 10px;
  padding: 1px 8px;
  min-width: 36px;
  justify-content: center;
}
.mo-breakdown-ratio.ratio-green {
  color: var(--mo-green);
  background: rgba(39,174,96,0.12);
}
.mo-breakdown-ratio.ratio-orange {
  color: var(--mo-orange);
  background: var(--mo-orange-bg);
}
.mo-breakdown-ratio.ratio-red {
  color: var(--mo-red);
  background: var(--mo-red-bg);
}
.mo-breakdown-item.mo-breakdown-full .mo-breakdown-ratio {
  background: rgba(39,174,96,0.22);
}
.mo-breakdown-sep {
  font-weight: 400;
  opacity: 0.6;
  font-size: 11px;
  margin: 0 1px;
}
.mo-breakdown-ratio strong { font-weight: 800; }
.mo-response-instrument {
  font-size: 12px;
  color: var(--mo-blue-light);
  background: rgba(61,90,255,0.1);
  border-radius: 10px;
  padding: 2px 8px;
}
.mo-responses-list { display: flex; flex-direction: column; }
.mo-no-resp-section { margin-top: 14px; border-top: 1px solid var(--mo-border); padding-top: 10px; }
.mo-no-resp-title { font-size: 12px; font-weight: 600; color: var(--mo-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; }

/* === RESPOND GRID (bouton fixe + compteur dessous) === */
.mo-respond-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 10px;
  margin-top: 10px;
}
/* Présent + Absent : 1 col chacun sur la 1re ligne */
/* Peut-être : pleine largeur sur la 2e ligne */
.mo-respond-btn.mo-respond-btn-wide {
  grid-column: 1 / -1;
}
.mo-respond-btn {
  width: 100%;
  text-align: center;
  padding: 13px 10px;
  font-size: 15px;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.no-resp-placeholder {
  width: 100%;
  text-align: center;
  padding: 10px 8px;
  font-size: 22px;
  background: transparent !important;
  border-color: transparent !important;
  cursor: default !important;
  color: var(--mo-muted) !important;
}

/* === MEMBRE BOUTON RETIRER === */
.mo-member-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.mo-btn-secondary {
  background: rgba(106,132,255,0.15);
  color: var(--mo-blue-light);
  border: 1px solid rgba(106,132,255,0.3);
}
.mo-btn-secondary:hover { background: rgba(106,132,255,0.25); }

/* ===================== CLOCHE NOTIFICATIONS ===================== */
.mo-notif-btn {
  position: relative;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.08);
  color: var(--mo-white);
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
  padding: 0;
  line-height: 1;
}
.mo-notif-btn:hover {
  background: rgba(255,255,255,0.16);
  border-color: rgba(255,255,255,0.4);
  transform: scale(1.08);
}
.mo-notif-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #e74c3c;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  font-family: 'Poppins', sans-serif;
  line-height: 1;
  pointer-events: none;
}

/* ===================== PANEL NOTIFICATIONS ===================== */
.mo-notif-overlay {
  position: fixed;
  inset: 0;
  z-index: 900;
  background: transparent;
}
.mo-notif-panel {
  position: fixed;
  top: 70px;
  right: 20px;
  width: 340px;
  max-height: 480px;
  background: var(--mo-card);
  border: 1px solid var(--mo-border-hi);
  border-radius: var(--mo-radius);
  box-shadow: var(--mo-shadow), 0 0 30px rgba(61,90,255,0.2);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.mo-notif-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid var(--mo-border);
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: var(--mo-white);
  flex-shrink: 0;
}
.mo-notif-clear {
  background: none;
  border: none;
  color: var(--mo-indigo);
  font-family: 'Poppins', sans-serif;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 10px;
  border-radius: 20px;
  transition: background 0.2s;
}
.mo-notif-clear:hover { background: rgba(139,159,255,0.15); }
#notif-list {
  overflow-y: auto;
  flex: 1;
  padding: 8px 0;
}
.mo-notif-empty {
  color: var(--mo-muted);
  font-size: 14px;
  text-align: center;
  padding: 28px 16px;
}
.mo-notif-item {
  padding: 12px 18px;
  border-bottom: 1px solid var(--mo-border);
  transition: background 0.15s;
}
.mo-notif-item:last-child { border-bottom: none; }
.mo-notif-item:hover { background: rgba(255,255,255,0.04); }
.mo-notif-item.unread { border-left: 3px solid var(--mo-blue); background: rgba(61,90,255,0.07); }
.mo-notif-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--mo-white);
  margin-bottom: 3px;
}
.mo-notif-msg {
  font-size: 12px;
  color: var(--mo-muted);
  margin-bottom: 4px;
}
.mo-notif-date {
  font-size: 11px;
  color: var(--mo-muted-2);
}

/* ===================== RÉPONSES MEMBRES (musicien) ===================== */
.mo-poll-member-responses {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--mo-border);
}
.mo-responses-toggle {
  font-size: 13px;
  font-weight: 600;
  color: var(--mo-indigo);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
}
.mo-responses-toggle:hover { color: var(--mo-blue-light); }

/* ===================== RÔLES MEMBRES ===================== */
.mo-member-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.mo-role-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  white-space: nowrap;
  font-family: 'Poppins', sans-serif;
}
.mo-role-founder {
  background: linear-gradient(135deg, rgba(255,215,0,0.2), rgba(255,165,0,0.15));
  color: #f0c040;
  border: 1px solid rgba(255,215,0,0.3);
}
.mo-role-admin {
  background: rgba(61,90,255,0.15);
  color: var(--mo-blue-light);
  border: 1px solid rgba(61,90,255,0.3);
}
.mo-role-member {
  background: rgba(122,133,184,0.12);
  color: var(--mo-muted);
  border: 1px solid rgba(122,133,184,0.2);
}
.mo-member-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.mo-btn-role-promote {
  background: rgba(61,90,255,0.15);
  color: var(--mo-blue-light);
  border: 1px solid rgba(61,90,255,0.3);
}
.mo-btn-role-promote:hover { background: rgba(61,90,255,0.28); }
.mo-btn-role-demote {
  background: rgba(230,126,34,0.12);
  color: var(--mo-orange);
  border: 1px solid rgba(230,126,34,0.3);
}
.mo-btn-role-demote:hover { background: rgba(230,126,34,0.22); }

/* ===================== ÉVÉNEMENTS REFUSÉS (page dédiée) ===================== */
.mo-refused-card-full {
  background: var(--mo-card);
  border: 1px solid rgba(231,76,60,0.25);
  border-left: 4px solid var(--mo-red);
  border-radius: var(--mo-radius-sm);
  padding: 18px 20px;
  margin-bottom: 12px;
}
.mo-refused-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.mo-refused-card-full .mo-refused-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--mo-white);
  margin-bottom: 6px;
}
.mo-refused-card-full .mo-refused-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 13px;
  color: var(--mo-muted);
}
.mo-refused-date-label {
  font-style: italic;
  color: var(--mo-muted-2);
}
.mo-badge-refused {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  background: var(--mo-red-bg);
  color: var(--mo-red);
  border: 1px solid rgba(231,76,60,0.3);
  white-space: nowrap;
  flex-shrink: 0;
}
.mo-refused-card-full .mo-refused-reason {
  font-size: 13px;
  color: var(--mo-muted);
  background: rgba(231,76,60,0.06);
  border-radius: var(--mo-radius-xs);
  padding: 8px 12px;
  margin-top: 8px;
}

/* Anciens styles refused (section dépliable conservée pour compat) */
.mo-refused-section {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-sm);
  overflow: hidden;
}
.mo-refused-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: var(--mo-muted);
  border-bottom: 1px solid var(--mo-border);
  transition: background 0.15s;
}
.mo-refused-header:hover { background: rgba(255,255,255,0.03); }
.mo-refused-card {
  background: rgba(231,76,60,0.06);
  border-left: 3px solid var(--mo-red);
  border-radius: var(--mo-radius-xs);
  padding: 12px 14px;
  margin: 10px 14px;
}
.mo-refused-title { font-size: 14px; font-weight: 600; color: var(--mo-cream); margin-bottom: 6px; }
.mo-refused-meta { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; color: var(--mo-muted); margin-bottom: 6px; }
.mo-refused-reason { font-size: 12px; color: var(--mo-muted); font-style: italic; }

/* ===================== HEURE DE FIN / HORAIRES ===================== */
.mo-event-time {
  display: inline-block;
  margin-left: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mo-blue-light);
  background: rgba(61,90,255,0.1);
  border-radius: 20px;
  padding: 1px 9px;
}

/* ===================== BOUTONS AGENDA ===================== */
.mo-agenda-btns {
  display: flex;
  gap: 8px;
  padding: 12px 24px 14px;
  border-top: 1px solid var(--mo-border);
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  position: relative;
}
.mo-agenda-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Poppins', sans-serif;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 20px;
  text-decoration: none;
  transition: background 0.15s, transform 0.1s;
  cursor: pointer;
  white-space: nowrap;
  border: none;
}
.mo-agenda-btn:hover { transform: translateY(-1px); text-decoration: none; }
.mo-agenda-add {
  background: rgba(66,133,244,0.12);
  color: #4285f4;
  border: 1px solid rgba(66,133,244,0.3) !important;
}
.mo-agenda-add:hover { background: rgba(66,133,244,0.22); color: #4285f4; }
.mo-agenda-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: #1e2547;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  overflow: hidden;
  min-width: 220px;
  z-index: 300;
}
.mo-agenda-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mo-cream);
  text-decoration: none;
  transition: background 0.15s;
  font-family: 'Poppins', sans-serif;
  white-space: nowrap;
}
.mo-agenda-choice:hover { background: rgba(255,255,255,0.07); color: var(--mo-white); text-decoration: none; }
.mo-agenda-choice + .mo-agenda-choice { border-top: 1px solid rgba(255,255,255,0.07); }

/* =====================================================
   STATS DE PRÉSENCE - PROFIL
   ===================================================== */
.mo-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 8px;
  width: 100%;
  box-sizing: border-box;
}
.mo-presence-stat-card {
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-sm);
  padding: 18px;
  text-align: center;
  box-sizing: border-box;
  min-width: 0;
}
.mo-presence-stat-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--mo-muted);
  margin-bottom: 8px;
}
.mo-presence-stat-rate {
  font-size: 32px;
  font-weight: 800;
  font-family: 'Poppins', sans-serif;
  margin-bottom: 6px;
  line-height: 1;
}
.mo-presence-stat-rate.good   { color: var(--mo-green); }
.mo-presence-stat-rate.medium { color: var(--mo-orange); }
.mo-presence-stat-rate.low    { color: var(--mo-red); }
.mo-presence-stat-detail {
  font-size: 12px;
  color: var(--mo-cream);
  margin-bottom: 4px;
  white-space: normal;
  word-break: break-word;
}
.mo-presence-stat-absent {
  font-size: 12px;
  color: var(--mo-red);
  opacity: 0.8;
}
.mo-presence-stat-empty {
  font-size: 12px;
  color: var(--mo-muted);
  padding: 8px 0;
}
/* stats-grid responsive — géré dans le bloc 480px */

/* Notifications cliquables */
.mo-notif-item.clickable {
  cursor: pointer;
  transition: background 0.15s;
}
.mo-notif-item.clickable:hover {
  background: rgba(61,90,255,0.08);
  border-radius: var(--mo-radius-xs);
}

/* ===================== BOTTOM TAB BAR (mobile uniquement) ===================== */
.mo-bottom-bar {
  display: none; /* caché sur desktop */
}

@media (max-width: 768px) {
  /* Cacher le .mo-tabs horizontal sur mobile */
  .mo-tabs { display: none !important; }

  /* Afficher la bottom bar */
  .mo-bottom-bar {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(14, 18, 48, 0.97);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid var(--mo-border);
    z-index: 200;
    padding: 0;
    padding-bottom: env(safe-area-inset-bottom); /* iPhone X+ */
    min-height: 82px;
  }

  .mo-bottom-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    position: relative;
    transition: all 0.18s;
    min-height: 82px;
  }

  .mo-bottom-tab-icon {
    font-size: 32px;
    line-height: 1;
    transition: transform 0.18s;
  }

  /* SVG icons dans la barre du bas */
  .mo-bottom-tab-icon.mo-icon-svg svg {
    width: 28px;
    height: 28px;
    color: var(--mo-muted);
    transition: color 0.18s;
  }
  .mo-bottom-tab.active .mo-bottom-tab-icon.mo-icon-svg svg {
    color: var(--mo-blue-light);
  }

  .mo-bottom-tab-label {
    display: none;
  }

  .mo-bottom-tab.active .mo-bottom-tab-label {
    color: var(--mo-blue-light);
  }

  .mo-bottom-tab.active .mo-bottom-tab-icon {
    transform: translateY(-2px);
  }

  /* Indicateur actif : petite barre en haut du bouton */
  .mo-bottom-tab::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 32px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: var(--mo-blue-light);
    transition: transform 0.18s;
  }

  .mo-bottom-tab.active::before {
    transform: translateX(-50%) scaleX(1);
  }

  /* Donner de la place en bas au contenu pour que la bottom bar ne cache rien */
  .mo-tab-content {
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }

  /* Masquer le header orchestra-header compact sur mobile pour gagner de la place */
  .mo-orchestra-header .mo-invite-code {
    order: 2;
  }
}

/* Déconnexion dans profil (visible mobile) */
.mo-profile-logout {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--mo-border);
  display: none; /* caché desktop */
}
@media (max-width: 768px) {
  .mo-profile-logout { display: block; }
}

/* Abonnement et boutons de gestion — toujours visibles */
.mo-subscription-card .mo-btn {
  display: flex;
  width: 100%;
  box-sizing: border-box;
}

/* ===================== BOUTON COOKIE (plugin tiers) ===================== */
/* Sur mobile : déplacer en haut à gauche et réduire pour ne pas gêner la bottom bar */
@media (max-width: 768px) {
  /* CookieYes */
  .cky-btn-revisit-wrapper,
  #cky-btn-revisit-wrapper { bottom: auto !important; top: 12px !important; left: 12px !important; right: auto !important; transform: scale(0.75) !important; transform-origin: top left !important; }
  /* Complianz */
  .cc-window, .cc-banner { bottom: auto !important; top: 0 !important; font-size: 13px !important; }
  .cmplz-cookiebanner { bottom: auto !important; top: 0 !important; }
  /* Cookie Notice */
  #cookie-notice { bottom: auto !important; top: 0 !important; font-size: 12px !important; }
  /* Generic — tout widget/badge cookie flottant en bas */
  [class*="cookie"][class*="btn"],
  [id*="cookie"][class*="btn"],
  [class*="cookie-btn"],
  [class*="cookiebtn"] { bottom: auto !important; top: 12px !important; left: 12px !important; right: auto !important; }
}

/* ===================== RÉPONSE SUR ÉVÉNEMENT CONFIRMÉ ===================== */
.mo-event-response {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--mo-border);
}
.mo-event-response-label {
  font-size: 14px;
  color: var(--mo-muted);
  font-weight: 500;
  display: block;
  margin-bottom: 10px;
}
.mo-event-resp-btns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
}
.mo-event-resp-btn {
  padding: 10px 8px;
  border-radius: 50px;
  border: 1px solid var(--mo-border-hi);
  background: var(--mo-card-2);
  color: var(--mo-muted);
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mo-event-resp-btn.mo-event-resp-btn-wide {
  grid-column: 1 / -1;
}
.mo-event-resp-btn:hover {
  border-color: var(--mo-blue-light);
  color: var(--mo-cream);
}
.mo-event-resp-btn.active-present {
  background: rgba(39,174,96,0.15);
  border-color: var(--mo-green);
  color: var(--mo-green);
  font-weight: 700;
}
.mo-event-resp-btn.active-maybe {
  background: rgba(230,168,76,0.15);
  border-color: var(--mo-orange);
  color: var(--mo-orange);
  font-weight: 700;
}
.mo-event-resp-btn.active-absent {
  background: rgba(235,87,87,0.15);
  border-color: var(--mo-red);
  color: var(--mo-red);
  font-weight: 700;
}
.mo-event-resp-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ===================== CHAMP LIEU GOOGLE PLACES ===================== */
.mo-location-wrap {
  position: relative;
}
.mo-location-input {
  padding-right: 36px !important;
}
/* Icône loupe dans le champ */
.mo-location-wrap::before {
  content: '🔍';
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  pointer-events: none;
  opacity: 0.5;
}

/* Preview après sélection */
.mo-location-preview {
  margin-top: 8px;
  background: rgba(99,182,255,0.07);
  border: 1px solid rgba(99,182,255,0.25);
  border-radius: 10px;
  padding: 10px 14px;
}
.mo-location-preview-link {
  color: var(--mo-blue-light);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  flex-wrap: wrap;
}
.mo-location-preview-link:hover {
  color: var(--mo-cream);
}
.mo-location-preview-addr {
  color: var(--mo-muted);
  font-size: 11px;
  font-weight: 400;
}
.mo-loc-arrow {
  font-size: 11px;
  opacity: 0.6;
  margin-left: 2px;
}

/* Dropdown autocomplete Google */
.pac-container {
  background: var(--mo-card) !important;
  border: 1px solid var(--mo-border-hi) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4) !important;
  margin-top: 4px !important;
  font-family: 'Poppins', sans-serif !important;
  overflow: hidden;
}
.pac-item {
  background: transparent !important;
  color: var(--mo-cream) !important;
  border-top: 1px solid var(--mo-border) !important;
  padding: 10px 14px !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 13px !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
}
.pac-item:first-child { border-top: none !important; }
.pac-item:hover, .pac-item-selected {
  background: rgba(99,182,255,0.1) !important;
}
.pac-icon { display: none !important; }
.pac-item-query {
  color: var(--mo-white) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}
.pac-matched { color: var(--mo-blue-light) !important; }
.pac-logo { display: none !important; }

/* Lien Maps sur les cartes événements */
.mo-location-link {
  color: var(--mo-blue-light);
  text-decoration: none;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.15s;
}
.mo-location-link:hover { color: var(--mo-cream); text-decoration: underline; }
.mo-location-link-icon { font-size: 11px; opacity: 0.7; }

/* Lien sur les sondages */
.mo-poll-location-link .mo-location-link { font-size: 14px; }

/* Poll stats responsive */
@media (max-width: 600px) {
  .mo-poll-stats { grid-template-columns: 1fr 1fr; gap: 8px; }
  .mo-stat { min-height: 60px; height: 60px; padding: 10px 6px; }
  .mo-stat .mo-stat-icon { font-size: 14px; }
  .mo-stat strong { font-size: 18px; }
  .mo-stat .mo-stat-label { font-size: 10px; }
}

/* ===================== AVATAR PHOTO ===================== */
/* Avatar de base : cercle avec initiale ou photo */
.mo-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mo-blue), var(--mo-blue-light));
  color: var(--mo-white);
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,0.15);
}
/* Grande version dans le profil */
.mo-profile-avatar-lg {
  width: 72px;
  height: 72px;
  font-size: 28px;
  border: 3px solid rgba(255,255,255,0.2);
}
/* Placeholder inscription */
.mo-avatar-placeholder-lg {
  width: 64px;
  height: 64px;
  font-size: 26px;
  background: var(--mo-card-2);
  border: 2px dashed var(--mo-border-hi);
  color: var(--mo-muted);
}
.mo-avatar-preview-img {
  width: 72px;
  height: 72px;
  font-size: 28px;
  border: 3px solid rgba(255,255,255,0.2);
}

/* Zone d'upload avatar */
.mo-avatar-upload-zone {
  display: flex;
  align-items: center;
  gap: 18px;
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 16px 18px;
  margin-bottom: 16px;
}
.mo-avatar-upload-reg {
  margin-bottom: 8px;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.mo-avatar-upload-reg .mo-avatar-upload-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
}
.mo-avatar-upload-reg .mo-file-label {
  justify-content: center;
}
.mo-avatar-preview {
  flex-shrink: 0;
}
.mo-avatar-upload-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mo-avatar-hint {
  margin: 0;
  font-size: 12px;
  color: var(--mo-muted);
}

/* Avatar dans les membres list */
.mo-member-avatar {
  width: 40px;
  height: 40px;
  font-size: 15px;
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 480px) {
  .mo-avatar-upload-zone { padding: 12px 14px; gap: 12px; }
  .mo-profile-avatar-lg, .mo-avatar-preview-img { width: 60px; height: 60px; font-size: 22px; }
  /* Inscription mobile : zone avatar en colonne */
  .mo-avatar-upload-reg .mo-avatar-upload-actions { width: 100%; }
  .mo-avatar-upload-reg .mo-file-label { width: 100%; justify-content: center; text-align: center; }
}
.mo-poll-cachet { display: inline-flex; align-items: center; gap: 4px; background: rgba(39,174,96,0.1); border: 1px solid rgba(39,174,96,0.3); border-radius: 50px; padding: 3px 10px; font-size: 14px; color: var(--mo-green); font-weight: 600; margin-top: 4px; }

/* ===================== ORCHESTRE INFO MODALE ===================== */
.mo-header-orch-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  border-radius: 8px;
  padding: 4px 6px;
  margin: -4px -6px;
  transition: background 0.15s;
  min-width: 0;
  overflow: visible;
}
.mo-header-orch-btn:hover {
  background: rgba(255,255,255,0.07);
}
.mo-orch-info-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mo-orch-info-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--mo-border);
}
.mo-orch-info-row:last-child { border-bottom: none; }
/* Stabilise la ligne contenant le code d'invitation : le label ne bouge pas quand le badge apparaît */
.mo-orch-info-row:has(.mo-invite-copy-col) {
  align-items: flex-start;
}
.mo-orch-info-row:has(.mo-invite-copy-col) .mo-orch-info-label {
  padding-top: 10px;
}
.mo-orch-info-icon {
  font-size: 20px;
  width: 32px;
  text-align: center;
  flex-shrink: 0;
}
.mo-orch-info-label {
  display: block;
  font-size: 11px;
  color: var(--mo-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}
.mo-orch-info-value {
  display: block;
  font-size: 15px;
  color: var(--mo-white);
  font-weight: 500;
}
.mo-orch-invite-code {
  cursor: pointer;
  font-family: 'Poppins', sans-serif;
  letter-spacing: 0.5px;
  color: var(--mo-blue-light) !important;
}
.mo-orch-invite-code:hover { text-decoration: underline; }

/* ===================== TOGGLE RÔLE INSCRIPTION ===================== */
.mo-reg-role-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.mo-reg-role-btn {
  flex: 1;
  padding: 10px;
  border-radius: var(--mo-radius-sm);
  border: 1px solid var(--mo-border);
  background: transparent;
  color: var(--mo-muted);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.mo-reg-role-btn.active {
  background: rgba(61,90,255,0.15);
  border-color: var(--mo-blue);
  color: var(--mo-white);
}
.mo-reg-role-hint {
  font-size: 13px;
  color: var(--mo-muted);
  margin: -8px 0 16px;
  line-height: 1.5;
}

/* Label qui enveloppe un input file — Safari compatible */
.mo-file-label {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.mo-file-label input[type="file"] {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}


/* Directeur seul : une seule carte, centrée sur desktop */
.mo-onboarding-page:not(:has(.mo-onboarding-toggle)) .mo-onboarding-choices {
  display: flex;
  justify-content: center;
}
.mo-onboarding-page:not(:has(.mo-onboarding-toggle)) .mo-choice-card {
  max-width: 520px;
  width: 100%;
}

/* ── Badge "⏰ Tardif" ─────────────────────────────────────────── */
.mo-badge-late {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--mo-orange);
  background: color-mix(in srgb, var(--mo-orange) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--mo-orange) 30%, transparent);
  border-radius: 20px;
  padding: 4px 10px;
  white-space: nowrap;
  vertical-align: middle;
}

/* ── Stat "Sans réponse" cliquable ─────────────────────────────── */
.mo-stat.mo-stat-clickable {
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, transform 0.1s;
  user-select: none;
  position: relative;
}
.mo-stat.mo-stat-clickable:hover {
  background: color-mix(in srgb, var(--mo-muted) 12%, var(--mo-card-2));
  border-color: var(--mo-muted);
}
.mo-stat.mo-stat-clickable:active { transform: scale(0.97); }
.mo-stat-hint {
  font-size: 13px;
  color: var(--mo-cream);
  line-height: 1;
  margin-top: 0px;
  opacity: 0.9;
}

/* ── Panel liste non-répondants ────────────────────────────────── */
.mo-no-response-panel {
  background: color-mix(in srgb, var(--mo-muted) 6%, var(--mo-card-2));
  border: 1px dashed color-mix(in srgb, var(--mo-muted) 30%, transparent);
  border-radius: var(--mo-radius-xs);
  padding: 12px 14px;
  margin-top: 8px;
  font-size: 13px;
}
.mo-no-response-panel .mo-responses-list { margin: 0; }
.mo-no-response-panel .mo-response-row {
  padding: 6px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--mo-muted) 12%, transparent);
}
.mo-no-response-panel .mo-response-row:last-child { border-bottom: none; }

/* ── Ligne label+badge au-dessus des boutons de vote ──────────── */
.mo-respond-top-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.mo-respond-top-row .mo-respond-label {
  margin-bottom: 0;
}

/* ── Modal infos orchestre ────────────────────────────────────── */
.mo-orch-info-rows {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 4px;
}
.mo-orch-info-rows .mo-orch-info-row {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 12px 0;
  border-bottom: 1px solid var(--mo-border);
}
.mo-orch-info-rows .mo-orch-info-row:last-child { border-bottom: none; }
.mo-orch-info-rows .mo-orch-info-label {
  font-size: 11px;
  color: var(--mo-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.mo-orch-info-rows .mo-orch-info-desc span:last-child {
  font-size: 14px;
  line-height: 1.5;
  color: var(--mo-cream);
}
.mo-invite-code-display {
  font-family: 'Poppins', monospace;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--mo-blue-light, #6ab0f5);
}

/* ── Modal orchestre : positionnement et titre responsive ─────── */
/* Centrage vertical avec scroll naturel, pas d'espace excessif en haut */
#orch-info-modal.mo-modal-overlay {
  align-items: flex-start;
  padding-top: clamp(16px, 8vh, 60px);
  padding-bottom: 20px;
}
#orch-info-modal .mo-modal {
  margin: 0 auto;
}
/* Titre responsive */
#orch-info-modal .mo-modal-header h2 {
  font-size: clamp(15px, 4vw, 20px);
  white-space: normal;
  word-break: break-word;
  line-height: 1.3;
}

/* ── Ligne code invitation + bouton copier ────────────────────── */
.mo-invite-copy-row {
  width: 100%;
}

/* ── Colonne : input + badge empilés verticalement ─────────────── */
.mo-invite-copy-col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1;
  min-width: 0;
}

/* ── Input code invitation (sélectionnable sur mobile) ────────── */
.mo-invite-code-input {
  font-family: 'Poppins', monospace;
  font-size: clamp(13px, 4vw, 18px);
  font-weight: 700;
  letter-spacing: clamp(1px, 0.5vw, 2px);
  color: var(--mo-blue-light, #6ab0f5);
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border-hi);
  border-radius: 8px;
  padding: 8px 10px;
  width: 100%;
  min-width: 0;
  flex: none;
  text-align: center;
  cursor: pointer;
  caret-color: transparent;
  -webkit-user-select: text;
  user-select: text;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mo-invite-code-input:focus {
  outline: none;
  border-color: var(--mo-blue-light, #6ab0f5);
}

/* ── Badge "Code copié" ───────────────────────────────────────── */
.mo-copy-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--mo-green);
  background: color-mix(in srgb, var(--mo-green) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--mo-green) 30%, transparent);
  border-radius: 20px;
  padding: 5px 10px;
  margin-top: 8px;
  letter-spacing: 0.2px;
  width: 100%;
  box-sizing: border-box;
  visibility: hidden;
  opacity: 0;
}

/* ── Badge "Enregistré ✓" après vote ─────────────────────────── */
.mo-badge-saved {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--mo-green);
  background: color-mix(in srgb, var(--mo-green) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--mo-green) 28%, transparent);
  border-radius: 20px;
  padding: 4px 10px;
  margin-top: 0;
  vertical-align: middle;
}

/* ── Flash highlight notification ────────────────────────────── */
@keyframes mo-notif-highlight {
  0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mo-blue-light) 50%, transparent); border-color: var(--mo-blue-light); }
  50%  { box-shadow: 0 0 0 6px color-mix(in srgb, var(--mo-blue-light) 15%, transparent); border-color: var(--mo-blue-light); }
  100% { box-shadow: none; border-color: var(--mo-border); }
}
.mo-highlight-notif {
  animation: mo-notif-highlight 1.8s ease forwards;
}

/* ── Événements passés ───────────────────────────────────────── */
.mo-event-past {
  opacity: 0.75;
  border-style: dashed;
}
.mo-event-past h3 {
  color: var(--mo-muted);
}
.mo-event-body .mo-refused-reason {
  font-size: 13px;
  color: var(--mo-muted);
  background: rgba(231,76,60,0.06);
  border-radius: var(--mo-radius-xs);
  padding: 8px 12px;
  margin-top: 8px;
}
.mo-past-response-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  font-size: 13px;
  flex-wrap: wrap;
}
.mo-refused-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 6px;
}
.mo-refused-date-label {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.mo-past-response-label {
  color: var(--mo-muted);
  flex-shrink: 0;
}
.mo-response-pill.none {
  color: var(--mo-muted);
  font-style: italic;
}

/* ── Badge type sur les cartes sondage ──────────────────────────── */
/* ── Badge saved inline (après "Réponse :") ─────────────────────── */
.mo-respond-top-row .mo-badge-saved {
  margin-top: 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--mo-green);
  background: color-mix(in srgb, var(--mo-green) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--mo-green) 28%, transparent);
  border-radius: 20px;
  padding: 4px 10px;
  display: none;
  vertical-align: middle;
}

/* ── Champs obligatoires * ─────────────────────────────────────── */
.mo-required {
  color: #e74c3c !important;
  font-weight: 700;
  margin-left: 2px;
}

/* ── Historique : sous-sections passés / refusés ──────────────── */
.mo-history-section {
  margin-bottom: 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.mo-history-section-title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--mo-muted);
  padding: 10px 0 12px 0;
  border-bottom: 1px solid var(--mo-border);
  margin-bottom: 2px;
}

/* ══════════════════════════════════════════════════════════════
   BLOC "MA RÉPONSE" UNIFIÉ
══════════════════════════════════════════════════════════════ */
.mo-ma-reponse-block {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--mo-border);
}
.mo-ma-reponse-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 10px;
  flex-wrap: wrap;
  min-height: 28px;
}
.mo-ma-reponse-label {
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--mo-muted);
}
/* Badge En attente */
.mo-badge-pending {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--mo-muted);
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: 20px;
  padding: 4px 10px;
  vertical-align: middle;
}

/* ══════════════════════════════════════════════════════════════
   INFOS CARTES SONDAGE / ÉVÉNEMENT — espacement unifié
══════════════════════════════════════════════════════════════ */
.mo-card-title {
  font-size: 24px !important;
  font-weight: 700;
  font-style: normal;
  margin-bottom: 10px;
  margin-top: 0;
}
.mo-card-desc {
  font-size: 14px !important;
  color: var(--mo-muted);
  margin: 4px 0 0 0;
  line-height: 1.5;
}
/* Toutes les lignes d'info : espacement identique */
.mo-meta-row,
.mo-event-date,
.mo-event-time-row,
.mo-event-meta,
.mo-poll-location-link {
  display: block;
  font-size: 15px;
  color: var(--mo-fg);
  margin: 0 0 5px 0;
  line-height: 1.4;
}
.mo-meta-deadline {
  font-size: 14px;
  color: var(--mo-muted);
  margin: 2px 0 5px 0;
}

/* ── Badge deadline ───────────────────────────────────────────── */
.mo-deadline-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  background: rgba(61,90,255,0.12);
  color: var(--mo-blue-light);
  border: 1px solid rgba(61,90,255,0.3);
  margin: 4px 0 2px;
}
.mo-deadline-badge strong { font-weight: 800; }
.mo-deadline-urgent {
  background: rgba(245,158,11,0.13);
  color: #f59e0b;
  border-color: rgba(245,158,11,0.35);
}
.mo-deadline-expired {
  background: rgba(239,68,68,0.12);
  color: #f87171;
  border-color: rgba(239,68,68,0.3);
}
/* Cachet : un peu d'espace avant */
.mo-cachet-badge,
.mo-cachet-sm {
  margin-top: 6px;
  display: inline-flex;
}

/* ══════════════════════════════════════════════════════════════
   BADGE CACHET HARMONISÉ
══════════════════════════════════════════════════════════════ */
.mo-cachet-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--mo-muted);
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: 20px;
  padding: 3px 10px;
  margin-top: 4px;
}

/* ══════════════════════════════════════════════════════════════
   MINI AVATAR DANS LES LISTES DE RÉPONSES
══════════════════════════════════════════════════════════════ */
.mo-resp-avatar {
  display: inline-block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  border: 1px solid var(--mo-border);
  vertical-align: middle;
}
/* mo-response-row defined above */


/* ══════════════════════════════════════════════════════════════
   ESPACEMENT UNIFORME DES FORMULAIRES
══════════════════════════════════════════════════════════════ */

/* mo-form-row doit avoir le même espacement bas que mo-form-group */
.mo-form-row {
  margin-bottom: 16px;
}
/* Éviter le double espacement quand mo-form-group est dans mo-form-row */
.mo-form-row .mo-form-group {
  margin-bottom: 0;
}

/* Zone upload avatar dans l'inscription */
.mo-avatar-upload-reg {
  margin-bottom: 16px;
}
#reg-avatar-msg {
  margin-bottom: 16px !important;
}

/* Bouton principal dans les modals et auth */
.mo-modal-body .mo-btn-full,
.mo-auth-card .mo-btn-full {
  margin-top: 8px;
}

/* Séparateur dans les modals */
.mo-modal-body .mo-msg {
  margin-top: 8px;
  margin-bottom: 0;
}

/* Cachet taille 14 */
.mo-cachet-sm {
  font-size: 14px !important;
  padding: 3px 9px;
}

/* ══════════════════════════════════════════════════════════════
   BILAN ANNUEL
══════════════════════════════════════════════════════════════ */
.mo-bilan-section {
  margin: 4px 0 8px;
}
.mo-bilan-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--mo-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 12px;
}
.mo-bilan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 10px;
}
.mo-bilan-card {
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: 12px;
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}
.mo-bilan-icon  { display: none; }
.mo-bilan-count {
  font-size: 22px;
  font-weight: 800;
  color: var(--mo-cream);
  line-height: 1.1;
}
.mo-bilan-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--mo-muted);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  line-height: 1.2;
}
.mo-bilan-cachet  .mo-bilan-count { color: var(--mo-green); }
.mo-bilan-refused .mo-bilan-count { color: var(--mo-red); }
.mo-bilan-presence .mo-bilan-count { color: var(--mo-blue-light); }

@media (max-width: 480px) {
  .mo-bilan-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Carte musiciens en évidence au-dessus du bilan */
.mo-bilan-grid-top {
  margin-bottom: 10px;
}
.mo-bilan-grid-top .mo-bilan-card {
  background: color-mix(in srgb, var(--mo-indigo) 10%, var(--mo-card-2));
  border-color: rgba(139,159,255,0.3);
}
.mo-bilan-membres .mo-bilan-count { color: var(--mo-indigo); }

/* ── Panels stat (présents/absents/peut-être) ───────────────────── */
.mo-stat-panel {
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: 10px;
  padding: 10px 12px;
  margin-top: 6px;
  font-size: 13px;
}

/* ── Modal orchestre : header avec logo + nom ───────────────────── */
.mo-modal-header-orch {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--mo-border);
}
.mo-modal-orch-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.mo-modal-orch-logo {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  border: 2px solid var(--mo-border-hi);
  flex-shrink: 0;
  display: block;
}
.mo-modal-orch-name {
  font-size: 17px;
  font-weight: 700;
  color: var(--mo-cream);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Modal Valider & créer l'événement ──────────────────────────── */
#validate-modal.mo-modal-overlay,
#refuse-modal.mo-modal-overlay {
  align-items: center;
  justify-content: center;
  padding: 20px;
}
#validate-modal .mo-modal,
#refuse-modal .mo-modal {
  max-width: 460px;
  width: 100%;
  margin: auto;
  border-radius: var(--mo-radius);
}
#validate-modal .mo-modal-header h2,
#refuse-modal .mo-modal-header h2 {
  font-size: clamp(14px, 4vw, 18px);
  white-space: normal;
  word-break: break-word;
  line-height: 1.3;
}

@media (max-width: 480px) {
  #validate-modal.mo-modal-overlay,
  #refuse-modal.mo-modal-overlay {
    align-items: center;
    padding: 16px;
  }
  #validate-modal .mo-modal,
  #refuse-modal .mo-modal {
    border-radius: 16px;
    max-height: 85vh;
  }
}

/* ── Bouton Déconnexion dans le profil ──────────────────────────── */
.mo-logout-divider {
  border: none;
  border-top: 1px solid var(--mo-border);
  margin: 28px 0 20px;
}
.mo-btn-logout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 20px;
  border-radius: var(--mo-radius);
  border: 1px solid rgba(231,76,60,0.3);
  background: rgba(231,76,60,0.08);
  color: var(--mo-red);
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
  box-sizing: border-box;
}
.mo-btn-logout:hover {
  background: rgba(231,76,60,0.15);
  border-color: rgba(231,76,60,0.5);
  text-decoration: none;
  color: var(--mo-red);
}
.mo-profile-logout {
  margin-top: 8px;
}

/* ── Titres de section dans le profil ───────────────────────────── */
.mo-profile-section-title {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--mo-white);
  margin-bottom: 16px;
  text-align: center;
  width: 100%;
}

/* ── Bouton Supprimer mon compte ───────────────────────────────── */
.mo-btn-delete-account {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 20px;
  border-radius: var(--mo-radius);
  border: 1px solid rgba(148,163,184,0.3);
  background: transparent;
  color: var(--mo-muted);
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  box-sizing: border-box;
  margin-top: 10px;
}
.mo-btn-delete-account:hover {
  background: rgba(148,163,184,0.1);
  border-color: rgba(148,163,184,0.5);
  color: var(--mo-cream);
}

/* Bouton notifications push */
.mo-push-active {
  background: var(--mo-green-bg) !important;
  border-color: var(--mo-green) !important;
  color: var(--mo-green) !important;
  cursor: pointer;
}
.mo-push-active:hover {
  background: rgba(231,76,60,0.1) !important;
  border-color: var(--mo-red) !important;
  color: var(--mo-red) !important;
}

/* Icône cloche push dans liste membres */
.mo-push-badge {
  font-size: 14px;
  opacity: 0.85;
  margin-left: 4px;
}
.mo-pwa-badge {
  font-size: 14px;
  opacity: 0.85;
  margin-left: 4px;
  title: "App installée";
}

/* Section notifications push : mobile uniquement */
.mo-push-section { display: none; }
@media (max-width: 768px) {
  .mo-push-section { display: block; }
  #mo-push-btn {
    white-space: normal;
    word-break: break-word;
    height: auto;
    min-height: 44px;
    line-height: 1.3;
    padding: 10px 16px;
    text-align: center;
  }
}

/* ===================== INFOS ===================== */
.mo-info-form {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 20px;
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.mo-info-list { display: flex; flex-direction: column; gap: 10px; }
.mo-info-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 18px 22px;
  transition: border-color 0.2s;
}
.mo-info-card:hover { border-color: var(--mo-border-hi); }
.mo-info-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.mo-info-card-title {
  font-size: 18px;
  font-weight: 700;
  font-family: 'Poppins', sans-serif;
  color: var(--mo-white);
  flex: 1;
  line-height: 1.3;
}
.mo-info-delete {
  background: none;
  border: none;
  color: var(--mo-muted);
  cursor: pointer;
  font-size: 13px;
  padding: 2px 6px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
  line-height: 1;
}
.mo-info-delete:hover { color: var(--mo-red); background: var(--mo-red-bg); }
.mo-info-card-message {
  font-size: 15px;
  color: var(--mo-cream);
  line-height: 1.6;
  margin-bottom: 10px;
  white-space: pre-wrap;
  padding-top: 2px;
}
.mo-info-card-meta {
  font-size: 12px;
  color: var(--mo-muted);
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  border-top: 1px solid var(--mo-border);
  padding-top: 8px;
  margin-top: 4px;
}

@media (max-width: 768px) {
  .mo-info-form { padding: 14px; }
  .mo-info-card { padding: 14px 16px; }
  .mo-info-card-title { font-size: 16px; }
  .mo-info-card-message { font-size: 14px; }
}

/* ===================== PARTITIONS ===================== */
.mo-folder-form {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 18px 20px;
  margin-bottom: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.mo-folder-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  margin-bottom: 10px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.mo-folder-card:hover { border-color: var(--mo-border-hi); }
.mo-folder-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
}
.mo-folder-icon { font-size: 18px; flex-shrink: 0; }
.mo-folder-name { font-size: 15px; font-weight: 600; color: var(--mo-white); flex: 1; }
.mo-folder-delete {
  background: none;
  border: none;
  color: var(--mo-muted);
  cursor: pointer;
  font-size: 16px;
  padding: 8px 10px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
  min-width: 36px;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mo-folder-delete:hover { color: var(--mo-red); background: var(--mo-red-bg); }
.mo-folder-rename {
  background: none;
  border: none;
  color: var(--mo-muted);
  cursor: pointer;
  font-size: 16px;
  padding: 8px 10px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
  min-width: 36px;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mo-folder-rename:hover { color: var(--mo-blue-light); background: rgba(106,132,255,0.12); }
/* Champ de renommage inline */
.mo-folder-rename-input {
  flex: 1;
  background: var(--mo-bg-2);
  border: 1px solid var(--mo-blue-light);
  border-radius: var(--mo-radius-xs);
  color: var(--mo-white);
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  padding: 3px 8px;
  outline: none;
}

/* Modale de renommage */
.mo-rename-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5,8,30,0.7);
  z-index: 99999;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 80px 20px 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.mo-rename-modal {
  background: var(--mo-card);
  border: 1px solid var(--mo-border-hi);
  border-radius: var(--mo-radius);
  padding: 24px;
  width: 100%;
  max-width: 360px;
  box-shadow: var(--mo-shadow);
  flex-shrink: 0;
}
.mo-rename-modal-title {
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--mo-white);
  margin-bottom: 14px;
}
.mo-rename-modal-input {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 16px;
}
.mo-rename-modal-btns {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.mo-folder-rename-confirm {
  background: var(--mo-blue-light);
  border: none;
  border-radius: var(--mo-radius-xs);
  color: var(--mo-bg);
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  padding: 4px 10px;
  flex-shrink: 0;
}
.mo-folder-rename-cancel {
  background: none;
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-xs);
  color: var(--mo-muted);
  cursor: pointer;
  font-size: 13px;
  padding: 4px 8px;
  flex-shrink: 0;
}
.mo-folder-content {
  border-top: 1px solid var(--mo-border);
  padding: 12px 18px 16px;
}
.mo-upload-zone {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.mo-upload-hint { font-size: 12px; color: var(--mo-muted); }
.mo-scores-list { display: flex; flex-direction: column; gap: 10px; }

@media (max-width: 768px) {
  .mo-scores-list { gap: 12px; }
  .mo-score-item { margin-bottom: 0; }
}
.mo-scores-empty { font-size: 13px; color: var(--mo-muted); padding: 6px 0; }
.mo-score-uploading { font-size: 13px; color: var(--mo-muted); padding: 8px 0; }
.mo-score-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: var(--mo-card-2);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-xs);
  transition: border-color 0.15s;
}
.mo-score-item:hover { border-color: var(--mo-border-hi); }
.mo-score-link {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  text-decoration: none;
  color: var(--mo-cream);
  min-width: 0;
}
.mo-score-link:hover .mo-score-name { color: var(--mo-blue-light); }
.mo-score-icon { font-size: 16px; flex-shrink: 0; }
.mo-score-name { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mo-score-size { font-size: 11px; color: var(--mo-muted); flex-shrink: 0; }
.mo-score-delete {
  background: none;
  border: none;
  color: var(--mo-muted);
  cursor: pointer;
  font-size: 13px;
  padding: 2px 6px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
}
.mo-score-delete:hover { color: var(--mo-red); background: var(--mo-red-bg); }

@media (max-width: 768px) {
  .mo-folder-header { padding: 12px 14px; }
  .mo-folder-content { padding: 10px 14px 14px; }
  .mo-folder-name { font-size: 14px; }
  .mo-score-item { padding: 8px 10px; }
}

/* ===================== STATS MEMBRES ===================== */
/* La carte membre utilise flex-direction:column pour permettre le panel stats dépliant */
.mo-member-card {
  flex-direction: column;
  align-items: stretch;
  padding: 0 !important;
  overflow: hidden;
}
.mo-member-card + .mo-member-card {
  margin-top: 0; /* le gap de mo-members-list gère l'espacement */
}
.mo-member-card-top { padding: 18px 24px; display: flex; align-items: center; gap: 18px; }
.mo-member-stats-panel {
  border-top: 1px solid var(--mo-border);
  padding: 14px 24px 16px;
  background: var(--mo-bg-2);
}
.mo-member-stats-loading { font-size: 13px; color: var(--mo-muted); padding: 4px 0; }
.mo-member-stats-grid {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.mo-member-stat-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius-xs);
  padding: 12px 18px;
  min-width: 120px;
  text-align: center;
}
.mo-member-stat-label { font-size: 12px; color: var(--mo-muted); margin-bottom: 4px; }
.mo-member-stat-rate { font-size: 24px; font-weight: 700; font-family: 'Poppins', sans-serif; line-height: 1; margin-bottom: 4px; }
.mo-member-stat-detail { font-size: 12px; color: var(--mo-muted); }

@media (max-width: 768px) {
  .mo-member-card-top { padding: 14px 16px; }
  .mo-member-stats-panel { padding: 12px 16px 14px; }
  .mo-member-stat-card { min-width: 100px; padding: 10px 14px; }
}

.mo-btn-presence { margin-top: 6px; font-size: 12px; }

/* Bilan export */
.mo-bilan-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  flex-wrap: wrap;
  gap: 8px;
}
.mo-bilan-header .mo-bilan-title { margin-bottom: 0; }
.mo-bilan-export-btns { display: flex; gap: 8px; }

/* Liens légaux en bas du profil */
.mo-legal-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--mo-border);
}
.mo-legal-link {
  font-size: 11px;
  color: var(--mo-muted);
  text-decoration: none;
  transition: color 0.15s;
}
.mo-legal-link:hover { color: var(--mo-cream); }
.mo-legal-sep { font-size: 11px; color: var(--mo-muted); }

/* Bouton Mon profil — desktop : séparé visuellement */
.mo-tab.mo-tab-profile {
  margin-left: auto;
  border-left: 1px solid var(--mo-border);
  padding-left: 20px;
  color: var(--mo-cream);
  font-weight: 600;
}
.mo-tab.mo-tab-profile:hover { color: var(--mo-blue-light); }
.mo-tab.mo-tab-profile.active { color: var(--mo-blue-light); }

/* Bouton profil mobile — icône uniquement, plus grand */
@media (max-width: 768px) {
  .mo-bottom-tab.mo-bottom-tab-profile {
    border-left: 1px solid var(--mo-border);
    margin-left: 4px;
  }
  .mo-bottom-tab.mo-bottom-tab-profile .mo-bottom-tab-icon {
    font-size: 26px;
  }
}

/* Bouton support */
a.mo-btn-secondary.mo-btn-full {
  margin-top: 20px;
  font-size: 14px;
  font-weight: 600;
}

/* ===================== STRIPE / PAIEMENT ===================== */
.mo-onboarding-step {
  width: 100%;
}

.mo-stripe-cancel-msg {
  background: var(--mo-red-bg);
  color: var(--mo-red);
  border: 1px solid var(--mo-red);
  border-radius: var(--mo-radius);
  padding: 12px 16px;
  margin-bottom: 20px;
  text-align: center;
  font-size: 14px;
}
.mo-pricing-grid {
  display: flex;
  gap: 16px;
  margin: 24px 0;
  flex-wrap: wrap;
  justify-content: center;
}
.mo-pricing-card {
  flex: 1;
  min-width: 200px;
  background: var(--mo-card);
  border: 2px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 24px 20px;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}
.mo-pricing-card:hover { border-color: var(--mo-border-hi); transform: translateY(-2px); }
.mo-pricing-card.mo-pricing-selected { border-color: var(--mo-blue-light); background: var(--mo-card-2); }
.mo-pricing-featured { border-color: var(--mo-indigo, #6366F1); position: relative; }
.mo-pricing-badge { font-size: 12px; font-weight: 700; color: var(--mo-muted); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
.mo-trial-pill { display: inline-block; background: linear-gradient(135deg, #16a34a, #15803d); color: #fff; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; margin-bottom: 10px; }
.mo-trial-banner { background: linear-gradient(135deg, rgba(74,222,128,0.15), rgba(34,197,94,0.1)); border: 1px solid rgba(74,222,128,0.4); border-radius: 12px; padding: 14px 20px; text-align: center; font-size: 15px; color: var(--mo-cream); margin-bottom: 20px; line-height: 1.7; }
.mo-pricing-price { font-size: 32px; font-weight: 800; color: var(--mo-white); font-family: 'Poppins', sans-serif; }
.mo-pricing-price span { font-size: 14px; font-weight: 400; color: var(--mo-muted); }
.mo-pricing-desc { font-size: 13px; color: var(--mo-muted); margin-top: 8px; line-height: 1.5; }
/* promo section removed */
.mo-payment-summary { background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: var(--mo-radius); padding: 16px 20px; margin-top: 16px; }
.mo-payment-summary #summary-text { font-size: 15px; color: var(--mo-cream); margin-bottom: 14px; }
.mo-payment-note { font-size: 12px; color: var(--mo-muted); text-align: center; margin-top: 8px; }

/* Section abonnement profil */
.mo-subscription-card {
  background: var(--mo-card);
  border: 1px solid var(--mo-border);
  border-radius: var(--mo-radius);
  padding: 16px 18px;
  margin-bottom: 16px;
}
.mo-sub-status, .mo-sub-end {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  padding: 4px 0;
  color: var(--mo-muted);
}

@media (max-width: 768px) {
}

/* Header liste fichiers avec bouton tout télécharger */
.mo-scores-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 4px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--mo-border);
}
.mo-scores-count {
  font-size: 12px;
  color: var(--mo-muted);
}

.mo-score-rename {
  background: none;
  border: none;
  color: var(--mo-muted);
  cursor: pointer;
  font-size: 13px;
  padding: 2px 5px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s, background 0.15s;
}
.mo-score-rename:hover { color: var(--mo-blue-light); background: var(--mo-card-2); }

/* ===================== NAVIGATION DOSSIERS ===================== */
.mo-folder-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 14px;
}
.mo-bc-home, .mo-bc-item {
  background: none;
  border: none;
  color: var(--mo-blue-light);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  padding: 0;
  font-family: 'Poppins', sans-serif;
}
.mo-bc-home:hover, .mo-bc-item:hover { text-decoration: underline; }
.mo-bc-sep { color: var(--mo-muted); font-size: 12px; }
.mo-bc-current { color: var(--mo-cream); font-weight: 600; font-size: 14px; }
.mo-folder-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--mo-blue-light);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 12px;
  padding: 6px 0;
}
.mo-folder-back:hover { text-decoration: underline; }

/* =====================================================
   CALENDRIER
   ===================================================== */
.mo-cal-legend { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.mo-cal-legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--mo-muted); }
.mo-cal-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

.mo-cal-month { margin-bottom: 40px; }
.mo-cal-month-title { font-family: 'Poppins', sans-serif; font-size: 18px; font-weight: 700; color: var(--mo-white); margin-bottom: 16px; text-transform: capitalize; }

.mo-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 16px; }
.mo-cal-dow { text-align: center; font-size: 11px; font-weight: 600; color: var(--mo-muted); text-transform: uppercase; letter-spacing: 0.5px; padding: 6px 0; }
.mo-cal-cell { background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: 8px; min-height: 52px; padding: 6px; display: flex; flex-direction: column; align-items: center; gap: 3px; transition: border-color 0.2s; }
.mo-cal-cell.mo-cal-empty { background: transparent; border-color: transparent; }
.mo-cal-cell.mo-cal-today { border-color: var(--mo-blue-light); background: rgba(106,132,255,0.08); }
.mo-cal-cell.mo-cal-today .mo-cal-day-num { color: var(--mo-blue-light); font-weight: 700; }
.mo-cal-cell.mo-cal-has-event { border-color: var(--mo-border-hi); }
.mo-cal-day-num { font-size: 13px; color: var(--mo-cream); line-height: 1; }
.mo-cal-event-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }

.mo-cal-event-list { display: flex; flex-direction: column; gap: 8px; }
.mo-cal-event-item { display: flex; align-items: center; gap: 10px; background: var(--mo-card); border: 1px solid var(--mo-border); border-radius: 10px; padding: 10px 14px; cursor: pointer; transition: border-color 0.2s; }
.mo-cal-event-item:hover { border-color: var(--mo-border-hi); }
.mo-cal-event-color { width: 4px; height: 36px; border-radius: 4px; flex-shrink: 0; }
.mo-cal-event-date { font-size: 13px; font-weight: 600; color: var(--mo-cream); min-width: 36px; }
.mo-cal-event-title { flex: 1; font-size: 14px; font-weight: 500; color: var(--mo-white); }
.mo-cal-event-type { font-size: 11px; font-weight: 600; }
.mo-cal-event-resp { font-size: 16px; margin-left: auto; }

@media (max-width: 768px) {
  .mo-cal-cell { min-height: 40px; padding: 4px; border-radius: 6px; }
  .mo-cal-day-num { font-size: 11px; }
  .mo-cal-event-dot { width: 8px; height: 8px; }
  .mo-cal-month-title { font-size: 16px; }
  .mo-cal-event-item { padding: 8px 12px; }
}

/* Bouton retour page onboarding */
.mo-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--mo-muted);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.2s;
}
.mo-back-btn:hover { color: var(--mo-cream); text-decoration: none; }

/* Highlight notification target */
.mo-highlight-notif {
  animation: mo-notif-highlight 2.5s ease;
}
@keyframes mo-notif-highlight {
  0%   { box-shadow: 0 0 0 3px rgba(61,90,255,0); }
  20%  { box-shadow: 0 0 0 3px rgba(61,90,255,0.6); background: rgba(61,90,255,0.08); }
  100% { box-shadow: 0 0 0 3px rgba(61,90,255,0); background: transparent; }
}
