/* ==========================================================================
   ECN GROUP - DASHBOARD & AUTHENTICATION DESIGN SYSTEM
   Thème : Luxe Haute Finance, Noir Obsidienne & Or 24K Métallique
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. BOUTONS UTILITAIRES DASHBOARD (ZÉRO BOUTON BLANC)
   -------------------------------------------------------------------------- */
button.btn, a.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 11px 22px;
  border-radius: var(--radius-pill);
  font-weight: 600;
  font-size: 0.88rem;
  letter-spacing: 0.5px;
  cursor: pointer;
  transition: all var(--transition-normal);
  border: none;
  text-decoration: none;
  background: transparent;
  color: var(--text-primary);
}

button.btn-outline, a.btn-outline, .btn-outline {
  background: rgba(18, 23, 36, 0.85) !important;
  color: var(--gold-light) !important;
  border: 1px solid var(--gold-border) !important;
  backdrop-filter: blur(12px);
}

button.btn-outline:hover, a.btn-outline:hover, .btn-outline:hover {
  background: rgba(212, 175, 55, 0.18) !important;
  border-color: var(--gold-primary) !important;
  color: #ffffff !important;
  box-shadow: var(--gold-glow-sm) !important;
  transform: translateY(-2px);
}

button.btn-primary, a.btn-primary, .btn-primary {
  background: var(--gold-gradient) !important;
  color: #050608 !important;
  box-shadow: 0 4px 18px rgba(212, 175, 55, 0.35) !important;
  font-weight: 700 !important;
  border: none !important;
}

button.btn-primary:hover, a.btn-primary:hover, .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 26px rgba(212, 175, 55, 0.55) !important;
  background: linear-gradient(135deg, #fff0c2 0%, #e0b842 50%, #c4962c 100%) !important;
}

/* --------------------------------------------------------------------------
   1. STYLES SPÉCIFIQUES À LA PAGE LOGIN / INSCRIPTION (login.html)
   -------------------------------------------------------------------------- */
.auth-page-body {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--bg-deep);
  position: relative;
  overflow-x: hidden;
}

.auth-header {
  padding: 24px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 10;
}

.auth-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-secondary);
  font-size: 0.88rem;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--gold-border);
  transition: all var(--transition-fast);
}

.auth-back-link:hover {
  color: var(--gold-light);
  border-color: var(--gold-primary);
  background: rgba(212, 175, 55, 0.08);
  transform: translateX(-3px);
}

.auth-main-container {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  position: relative;
  z-index: 5;
}

.auth-card {
  background: rgba(12, 16, 24, 0.88);
  border: 1px solid var(--gold-border-bright);
  border-radius: var(--radius-xl);
  padding: clamp(28px, 5vw, 44px);
  width: 100%;
  max-width: 490px;
  box-shadow: var(--shadow-elevated), var(--gold-glow-md);
  backdrop-filter: blur(24px);
  position: relative;
  overflow: hidden;
}

.auth-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--gold-gradient);
}

.auth-brand {
  text-align: center;
  margin-bottom: 28px;
}

.auth-logo {
  height: 58px;
  width: auto;
  margin: 0 auto 14px auto;
  filter: drop-shadow(0 0 15px rgba(212, 175, 55, 0.4));
}

.auth-title {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 1px;
}

.auth-sub {
  font-size: 0.85rem;
  color: var(--gold-light);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-top: 4px;
}

.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  background: var(--bg-surface-2);
  padding: 6px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(212, 175, 55, 0.2);
  margin-bottom: 28px;
}

.auth-tab-btn {
  padding: 10px 16px;
  border-radius: var(--radius-pill);
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
  text-align: center;
}

.auth-tab-btn.active {
  background: var(--gold-gradient);
  color: #050608;
  box-shadow: 0 2px 10px rgba(212, 175, 55, 0.4);
}

.auth-pane {
  display: none;
  animation: fadeIn 0.35s ease;
}

.auth-pane.active {
  display: block;
}

.auth-form-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.84rem;
  color: var(--text-secondary);
  margin-bottom: 24px;
}

.auth-remember {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.auth-forgot {
  color: var(--gold-light);
  transition: color var(--transition-fast);
}

.auth-forgot:hover {
  color: #ffffff;
  text-decoration: underline;
}

.auth-divider {
  display: flex;
  align-items: center;
  margin: 24px 0;
  color: var(--text-muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.auth-divider::before,
.auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(212, 175, 55, 0.18);
}

.auth-divider span {
  padding: 0 14px;
}

.btn-coldwallet-auth {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 20px;
  background: rgba(18, 23, 34, 0.8);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-pill);
  color: var(--gold-light);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.btn-coldwallet-auth:hover {
  background: rgba(212, 175, 55, 0.12);
  border-color: var(--gold-primary);
  color: #ffffff;
  box-shadow: var(--gold-glow-sm);
}

.auth-footer {
  text-align: center;
  padding: 20px;
  font-size: 0.78rem;
  color: var(--text-muted);
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

/* --------------------------------------------------------------------------
   2. DASHBOARD LAYOUT (dashboard.html)
   -------------------------------------------------------------------------- */
.dashboard-body {
  background: var(--bg-deep);
  color: var(--text-primary);
  font-family: var(--font-main);
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  overflow-x: hidden;
}

/* Sidebar Gauche de Navigation */
.dashboard-sidebar {
  width: 295px;
  background: #080a10;
  border-right: 1px solid var(--gold-border);
  height: 100vh;
  height: 100dvh;
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  z-index: 1000;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.sidebar-header {
  padding: 24px 20px 18px 20px;
  border-bottom: 1px solid rgba(212, 175, 55, 0.15);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.sidebar-logo {
  height: 42px;
  width: auto;
}

.sidebar-brand-text {
  display: flex;
  flex-direction: column;
}

.sidebar-brand-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
}

.sidebar-brand-sub {
  font-size: 0.65rem;
  color: var(--gold-light);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

/* Profil Résumé dans la Sidebar */
.sidebar-user-card {
  margin: 16px;
  padding: 14px;
  border-radius: var(--radius-md);
  background: var(--bg-surface-card);
  border: 1px solid rgba(212, 175, 55, 0.2);
  display: flex;
  align-items: center;
  gap: 12px;
}

.user-avatar-wrap {
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid var(--gold-primary);
  flex-shrink: 0;
}

.user-avatar-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.user-status-dot {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 10px;
  height: 10px;
  background: #10b981;
  border: 2px solid #080a10;
  border-radius: 50%;
}

.sidebar-user-info {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.sidebar-user-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: #ffffff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-user-badge {
  font-size: 0.7rem;
  color: var(--gold-light);
  font-weight: 600;
  letter-spacing: 0.5px;
}

/* Menu de Navigation de la Sidebar */
.sidebar-nav {
  flex: 1;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.sidebar-nav-title {
  font-size: 0.7rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 12px 12px 6px 12px;
  font-weight: 700;
}

.sidebar-nav-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  background: transparent;
  border: none;
  color: var(--text-secondary);
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition-fast);
  width: 100%;
  text-align: left;
  min-height: 42px;
  white-space: nowrap;
}

.sidebar-nav-btn > span:not(.sidebar-badge-count) {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}

.sidebar-nav-btn svg {
  color: var(--gold-muted);
  transition: color var(--transition-fast);
  flex-shrink: 0;
}

.sidebar-nav-btn:hover {
  background: rgba(212, 175, 55, 0.08);
  color: var(--gold-light);
}

.sidebar-nav-btn:hover svg {
  color: var(--gold-primary);
}

.sidebar-nav-btn.active {
  background: var(--gold-gradient-soft);
  border: 1px solid var(--gold-border);
  color: var(--gold-light);
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--gold-primary);
}

.sidebar-nav-btn.active svg {
  color: var(--gold-light);
}

.sidebar-badge-count {
  margin-left: auto;
  font-size: 0.65rem !important;
  padding: 2.5px 8px !important;
  border-radius: var(--radius-pill) !important;
  background: var(--gold-primary);
  color: #050608;
  font-weight: 800;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1.15;
  letter-spacing: 0.4px;
}

.sidebar-footer {
  padding: 16px 14px;
  border-top: 1px solid rgba(212, 175, 55, 0.15);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.btn-sidebar-logout {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #ef4444;
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
  width: 100%;
}

.btn-sidebar-logout:hover {
  background: rgba(239, 68, 68, 0.18);
  border-color: #ef4444;
}

/* --------------------------------------------------------------------------
   3. CONTENU PRINCIPAL DU DASHBOARD & TOPBAR
   -------------------------------------------------------------------------- */
.dashboard-main {
  flex: 1;
  margin-left: 295px;
  width: calc(100% - 295px);
  max-width: calc(100% - 295px);
  min-width: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg-deep);
  position: relative;
}

/* Topbar */
.dashboard-topbar {
  height: 75px;
  background: rgba(8, 10, 16, 0.88);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--gold-border);
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 900;
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.topbar-page-title {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: #ffffff;
}

.topbar-right {
  display: flex;
  align-items: center;
  gap: 18px;
}

.referral-quick-box {
  display: none;
  align-items: center;
  gap: 8px;
  background: var(--bg-surface-2);
  border: 1px solid var(--gold-border);
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
}

@media (min-width: 900px) {
  .referral-quick-box {
    display: flex;
  }
}

.referral-link-preview {
  color: var(--gold-light);
  font-family: monospace;
  font-weight: 600;
}

.btn-copy-ref {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  transition: color var(--transition-fast);
}

.btn-copy-ref:hover {
  color: var(--gold-primary);
}

.topbar-pack-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: var(--radius-pill);
  background: var(--gold-gradient-soft);
  border: 1px solid var(--gold-border-bright);
  color: var(--gold-light);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.btn-topbar-site {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-secondary);
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.02);
  transition: all var(--transition-fast);
}

.btn-topbar-site:hover {
  color: #fff;
  border-color: var(--gold-border);
  background: rgba(212, 175, 55, 0.08);
}

/* Bouton Burger Mobile pour la Sidebar */
.dashboard-mobile-toggle {
  display: none;
  background: transparent;
  border: none;
  color: var(--gold-light);
  cursor: pointer;
  padding: 6px;
}

/* Zone de Contenu Dynamique */
.dashboard-content-area {
  flex: 1;
  padding: 32px;
}

.dashboard-tab-panel {
  display: none;
  animation: fadeIn 0.4s ease forwards;
}

.dashboard-tab-panel.active {
  display: block;
}

/* --------------------------------------------------------------------------
   4. COMPOSANTS : VUE D'ENSEMBLE (OVERVIEW)
   -------------------------------------------------------------------------- */
.welcome-hero-card {
  background: linear-gradient(135deg, rgba(22, 28, 44, 0.9) 0%, rgba(10, 13, 20, 0.95) 100%);
  border: 1px solid var(--gold-border-bright);
  border-radius: var(--radius-xl);
  padding: clamp(24px, 4vw, 36px);
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  box-shadow: var(--shadow-card);
  position: relative;
  overflow: hidden;
}

.welcome-hero-card::after {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(212, 175, 55, 0.12) 0%, transparent 60%);
  border-radius: 50%;
  pointer-events: none;
}

.welcome-text h2 {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  color: #ffffff;
  margin-bottom: 8px;
}

.welcome-text p {
  color: var(--text-secondary);
  font-size: 0.95rem;
  max-width: 550px;
}

.welcome-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* Grille de Métriques KPIs */
.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.kpi-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 22px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.kpi-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold-light);
  box-shadow: var(--gold-glow-sm);
  background: var(--bg-surface-2);
}

.kpi-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.kpi-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.kpi-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  background: var(--gold-gradient-soft);
  border: 1px solid var(--gold-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-light);
}

.kpi-value {
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 800;
  color: #ffffff;
  line-height: 1.1;
  margin-bottom: 6px;
}

.kpi-subtitle {
  font-size: 0.8rem;
  color: var(--gold-light);
  display: flex;
  align-items: center;
  gap: 6px;
}

/* --------------------------------------------------------------------------
   5. COMPOSANTS : MON PROFIL & SÉLECTEUR DE PACK
   -------------------------------------------------------------------------- */
.profile-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}

@media (min-width: 992px) {
  .profile-grid {
    grid-template-columns: 1fr 1.6fr;
  }
}

.profile-card-main {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 32px 24px;
  text-align: center;
  box-shadow: var(--shadow-card);
}

.profile-avatar-large {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 3px solid var(--gold-primary);
  margin: 0 auto 18px auto;
  overflow: hidden;
  box-shadow: var(--gold-glow-md);
}

.profile-avatar-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-name {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 4px;
}

.profile-id-tag {
  font-size: 0.8rem;
  color: var(--gold-light);
  font-family: monospace;
  margin-bottom: 20px;
}

.profile-details-list {
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-top: 1px solid rgba(212, 175, 55, 0.15);
  padding-top: 20px;
  margin-top: 20px;
}

.profile-detail-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.88rem;
}

.profile-detail-label {
  color: var(--text-muted);
}

.profile-detail-value {
  color: #ffffff;
  font-weight: 600;
}

/* Grille des 3 Packs Proposés */
.packs-selection-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.pack-tier-row {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
  transition: all var(--transition-normal);
}

.pack-tier-row.current-active {
  border: 2px solid var(--gold-primary);
  background: linear-gradient(135deg, rgba(22, 28, 44, 0.8) 0%, rgba(10, 13, 20, 0.95) 100%);
  box-shadow: var(--gold-glow-sm);
}

.pack-tier-info h4 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: #ffffff;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.pack-tier-price {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--gold-light);
}

.pack-tier-features {
  font-size: 0.86rem;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-top: 8px;
}

/* --------------------------------------------------------------------------
   6. COMPOSANTS : ARBRE MLM / RÉSEAU D'AFFILIATION
   -------------------------------------------------------------------------- */
.mlm-stats-banner {
  background: var(--bg-surface-card);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 24px 28px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
}

.mlm-ref-share-box {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg-surface-2);
  border: 1px solid var(--gold-border-bright);
  padding: 10px 18px;
  border-radius: var(--radius-pill);
  flex: 1;
  max-width: 480px;
}

.mlm-ref-input {
  background: transparent;
  border: none;
  color: var(--gold-light);
  font-family: monospace;
  font-size: 0.9rem;
  width: 100%;
  outline: none;
}

/* Visualisation Arborescente MLM */
.mlm-tree-wrapper {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 36px 20px;
  overflow-x: auto;
  text-align: center;
  margin-bottom: 30px;
}

.mlm-tree-node-card {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: var(--bg-surface-2);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-md);
  padding: 14px 20px;
  min-width: 180px;
  box-shadow: var(--shadow-card);
  position: relative;
  transition: all var(--transition-fast);
}

.mlm-tree-node-card:hover {
  border-color: var(--gold-light);
  transform: translateY(-3px);
  box-shadow: var(--gold-glow-sm);
}

.mlm-tree-node-card.root-node {
  border-color: var(--gold-primary);
  background: var(--gold-gradient-soft);
}

.mlm-tree-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid var(--gold-primary);
  margin-bottom: 8px;
  overflow: hidden;
}

.mlm-tree-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mlm-tree-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
}

.mlm-tree-tier {
  font-size: 0.72rem;
  color: var(--gold-light);
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 2px;
}

.mlm-connector-line {
  width: 2px;
  height: 28px;
  background: var(--gold-primary);
  margin: 0 auto;
}

.mlm-connector-line.extended {
  background: linear-gradient(180deg, rgba(56, 189, 248, 0.6) 0%, rgba(56, 189, 248, 0.2) 100%);
  height: 24px;
}

.mlm-branch-row {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Rubans & badges par niveau d'arborescence */
.mlm-level-ribbon {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 18px;
  border-radius: 20px;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin: 6px 0 16px 0;
  text-transform: uppercase;
}

.mlm-level-ribbon.level-1 {
  background: rgba(212, 175, 55, 0.12);
  border: 1px solid rgba(212, 175, 55, 0.4);
  color: var(--gold-light);
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.1);
}

.mlm-level-ribbon.level-2 {
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #34d399;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.1);
}

.mlm-level-ribbon.level-extended {
  background: rgba(56, 189, 248, 0.1);
  border: 1px solid rgba(56, 189, 248, 0.35);
  color: #38bdf8;
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.08);
}

.mlm-tree-node-card.level-1 {
  border-color: rgba(212, 175, 55, 0.35);
}

.mlm-tree-node-card.level-2 {
  border-color: rgba(16, 185, 129, 0.35);
  min-width: 170px;
}

.mlm-tree-node-card.level-extended {
  border-color: rgba(56, 189, 248, 0.3);
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.75) 0%, rgba(10, 15, 29, 0.85) 100%);
  min-width: 165px;
}

.mlm-tree-node-card.level-extended:hover {
  border-color: #38bdf8;
  box-shadow: 0 4px 16px rgba(56, 189, 248, 0.2);
}

/* Bannière d'explication du plan statutaire vs vue infinie */
.mlm-notice-box {
  background: linear-gradient(135deg, rgba(21, 26, 40, 0.85) 0%, rgba(11, 14, 22, 0.95) 100%);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-radius: var(--radius-lg);
  padding: 16px 20px;
  margin-bottom: 24px;
  text-align: left;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

/* --------------------------------------------------------------------------
   7. COMPOSANTS : COMMISSIONS & RETRAITS
   -------------------------------------------------------------------------- */
.commissions-balance-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
  margin-bottom: 30px;
}

.comm-balance-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 26px;
  position: relative;
}

.comm-balance-card.highlight {
  border-color: var(--gold-primary);
  background: linear-gradient(135deg, #151a28 0%, #0b0e16 100%);
  box-shadow: var(--gold-glow-sm);
}

.comm-amount {
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--gold-light);
  margin: 8px 0;
}

/* Tableau Historique des Commissions */
.dashboard-table-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 24px;
  overflow-x: auto;
}

.dashboard-table-title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 18px;
}

.dashboard-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.88rem;
}

.dashboard-table th {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(212, 175, 55, 0.2);
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 1px;
}

.dashboard-table td {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  color: var(--text-primary);
}

.dashboard-table tr:hover td {
  background: rgba(212, 175, 55, 0.03);
}

.status-badge-paid {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  font-size: 0.75rem;
  font-weight: 600;
}

.status-badge-pending {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
  font-size: 0.75rem;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   8. COMPOSANTS : FORMATIONS & MARKETPLACE
   -------------------------------------------------------------------------- */
.course-featured-player {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 24px;
  margin-bottom: 30px;
}

.course-player-screen {
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(212, 175, 55, 0.3);
  margin-bottom: 18px;
}

.course-player-screen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
}

.btn-play-course {
  position: absolute;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--gold-gradient);
  border: none;
  color: #050608;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--gold-glow-md);
  transition: transform var(--transition-fast);
}

.btn-play-course:hover {
  transform: scale(1.1);
}

.course-grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 22px;
}

.course-item-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--transition-normal);
}

.course-item-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold-light);
  box-shadow: var(--shadow-card);
}

.course-card-body {
  padding: 20px;
}

.course-progress-bar {
  width: 100%;
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-pill);
  overflow: hidden;
  margin: 12px 0;
}

.course-progress-fill {
  height: 100%;
  background: var(--gold-gradient);
  border-radius: var(--radius-pill);
}

/* Grille Marketplace Membre */
.market-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 24px;
}

.market-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all var(--transition-normal);
}

.market-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold-light);
  box-shadow: var(--gold-glow-sm);
}

.market-card-media {
  height: 190px;
  overflow: hidden;
  position: relative;
}

.market-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-normal);
}

.market-card:hover .market-card-media img {
  transform: scale(1.05);
}

.market-card-body {
  padding: 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* --------------------------------------------------------------------------
   8bis. DESIGN SYSTEM "NOS PARTENAIRES PRIVILÉGIÉS" (CŒUR DU PROJET ECN)
   -------------------------------------------------------------------------- */
.partenaires-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 26px;
  margin-bottom: 30px;
}

.partenaire-card {
  background: linear-gradient(165deg, rgba(16, 22, 34, 0.95) 0%, rgba(8, 11, 18, 0.98) 100%);
  border: 1px solid rgba(212, 175, 55, 0.22);
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.65);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.partenaire-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold-light), transparent);
  opacity: 0.35;
  transition: opacity 0.35s ease;
  z-index: 3;
}

.partenaire-card:hover {
  transform: translateY(-6px);
  border-color: rgba(212, 175, 55, 0.65);
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.8), 0 0 25px rgba(212, 175, 55, 0.25);
}

.partenaire-card:hover::before {
  opacity: 1;
}

/* Banner média de la carte partenaire */
.partenaire-card-media {
  position: relative;
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: #000;
}

.partenaire-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
  filter: brightness(0.92);
}

.partenaire-card:hover .partenaire-card-img {
  transform: scale(1.08);
  filter: brightness(1.05);
}

.partenaire-card-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(8,11,18,0.35) 50%, rgba(8,11,18,0.98) 100%);
  pointer-events: none;
}

.partenaire-card-badges {
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  z-index: 2;
  pointer-events: none;
}

.partenaire-category-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(10, 14, 23, 0.88);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.partenaire-category-pill .pill-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent-color, var(--gold-light));
  box-shadow: 0 0 8px var(--accent-color, var(--gold-light));
}

.partenaire-roi-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(16, 185, 129, 0.22);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(52, 211, 153, 0.45);
  color: #34d399;
  font-size: 0.74rem;
  font-weight: 800;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  box-shadow: 0 0 14px rgba(52, 211, 153, 0.25);
}

/* Corps de la carte partenaire */
.partenaire-card-body {
  padding: 20px 22px 14px 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.partenaire-header-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}

.partenaire-title {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  letter-spacing: 0.5px;
  line-height: 1.25;
}

.partenaire-sector-tag {
  font-size: 0.74rem;
  color: var(--gold-light);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.partenaire-tagline {
  font-size: 0.82rem;
  color: var(--gold-light);
  font-weight: 600;
  margin-bottom: 12px;
  line-height: 1.4;
}

.partenaire-summary {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.55;
  margin-bottom: 16px;
}

/* Puces / Caractéristiques clés */
.partenaire-features-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 16px;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.partenaire-feature-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: #e2e8f0;
  line-height: 1.35;
}

.partenaire-feature-item svg {
  flex-shrink: 0;
}

/* Encadré Conditions & Souscription */
.partenaire-pricing-box {
  background: rgba(18, 23, 36, 0.75);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-left: 3px solid var(--gold-primary);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  margin-bottom: 18px;
}

.partenaire-pricing-box .pricing-label {
  font-size: 0.72rem;
  color: var(--gold-light);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 700;
  margin-bottom: 2px;
}

.partenaire-pricing-box .pricing-value {
  font-size: 0.84rem;
  font-weight: 600;
  color: #ffffff;
  line-height: 1.35;
}

/* Footer & Boutons d'Action (Empilés, 100% largeur, zéro débordement) */
.partenaire-card-footer {
  padding: 0 22px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.btn-partenaire-detail {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 12px 16px !important;
  font-size: 0.86rem !important;
  font-weight: 700 !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: normal !important;
  line-height: 1.3 !important;
  box-sizing: border-box !important;
  border-radius: var(--radius-pill) !important;
}

.btn-partenaire-contact {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 11px 16px !important;
  font-size: 0.84rem !important;
  font-weight: 600 !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: normal !important;
  line-height: 1.3 !important;
  box-sizing: border-box !important;
  border-radius: var(--radius-pill) !important;
}

/* Backdrop du menu mobile */
.sidebar-backdrop,
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  z-index: 999;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.sidebar-backdrop.active,
.sidebar-overlay.open {
  display: block;
  opacity: 1;
}

/* Grilles responsives utilitaires */
.dashboard-two-col-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  margin-bottom: 30px;
}

.dashboard-three-col-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.form-row-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}

/* --------------------------------------------------------------------------
   9. RESPONSIVE DASHBOARD GLOBAL (SMARTPHONE, TABLETTE, ULTRA-PORTABLE)
   -------------------------------------------------------------------------- */

/* TABLETTES & PETITS ÉCRANS LAPTOP (<= 991px) */
@media (max-width: 991px) {
  .dashboard-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: 300px;
    max-width: 88vw;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 10px 0 50px rgba(0, 0, 0, 0.9);
  }

  .dashboard-sidebar.mobile-open {
    transform: translateX(0);
  }

  .dashboard-main {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  .dashboard-mobile-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
  }

  .dashboard-content-area {
    padding: 22px 18px !important;
  }

  .dashboard-topbar {
    padding: 0 18px !important;
  }
}

/* SMARTPHONES & TABLETTES PORTRAIT (<= 768px) */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
  }

  .dashboard-topbar {
    min-height: 60px !important;
    height: auto !important;
    padding: 10px 14px !important;
    gap: 10px !important;
  }

  .topbar-page-title {
    font-size: 1.15rem !important;
    max-width: 180px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .referral-quick-box {
    display: none !important;
  }

  .btn-topbar-site span.hide-mobile {
    display: none !important;
  }

  .btn-topbar-site {
    padding: 8px 10px !important;
  }

  .topbar-pack-badge {
    font-size: 0.72rem !important;
    padding: 4px 10px !important;
  }

  .dashboard-content-area {
    padding: 16px 12px !important;
  }

  /* Grilles passant à 1 colonne */
  .dashboard-kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }

  .kpi-card {
    padding: 16px !important;
  }

  .kpi-value {
    font-size: 1.45rem !important;
  }

  .partenaires-grid,
  .dashboard-two-col-grid,
  .dashboard-three-col-grid,
  .profile-grid,
  .commissions-balance-cards,
  .market-products-grid,
  .course-grid-cards {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .form-row-2col {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* Cartes Partenaires sur mobile */
  .partenaire-card-media {
    height: 180px !important;
  }

  .partenaire-card-body {
    padding: 18px 16px 12px 16px !important;
  }

  .partenaire-card-footer {
    padding: 0 16px 18px 16px !important;
  }

  .partenaire-title {
    font-size: 1.22rem !important;
  }

  /* Tableaux avec défilement tactile fluide */
  .dashboard-table-card {
    padding: 16px 12px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .dashboard-table {
    min-width: 520px !important;
    font-size: 0.8rem !important;
  }

  .dashboard-table th, 
  .dashboard-table td {
    padding: 10px 12px !important;
  }

  /* Modales optimisées pour petits écrans */
  .modal-overlay {
    padding: 12px !important;
  }

  .modal-overlay > div {
    width: 100% !important;
    max-width: 95vw !important;
    max-height: 90vh !important;
    padding: 20px 16px !important;
    box-sizing: border-box !important;
  }

  /* Neutralisation du zoom forcé iOS Safari sur les inputs */
  input.form-control,
  select.form-control,
  textarea.form-control {
    font-size: 16px !important;
  }

  /* Visionneuse de Parrainage */
  #imgCurrentSlideParrainage {
    max-height: 380px !important;
  }

  /* Arbre MLM */
  .mlm-tree-wrapper {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 14px 6px !important;
  }

  .mlm-branch-row {
    gap: 12px !important;
  }
}

/* SMARTPHONES ÉTROITS (<= 480px) */
@media (max-width: 480px) {
  .topbar-left {
    gap: 8px !important;
  }

  .topbar-page-title {
    font-size: 1.05rem !important;
    max-width: 140px;
  }

  .dashboard-content-area {
    padding: 14px 10px !important;
  }

  .dashboard-kpi-grid {
    grid-template-columns: 1fr !important;
  }

  .partenaire-card-media {
    height: 165px !important;
  }

  .partenaire-category-pill {
    font-size: 0.68rem !important;
    padding: 4px 10px !important;
  }

  .partenaire-roi-pill {
    font-size: 0.68rem !important;
    padding: 4px 10px !important;
  }

  .btn-partenaire-detail,
  .btn-partenaire-contact {
    padding: 10px 14px !important;
    font-size: 0.82rem !important;
  }

  .modal-overlay > div {
    padding: 16px 12px !important;
  }
}

/* Badges d'état des dossiers & statuts */
.badge-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.badge-status.paid {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.35);
  color: #34d399;
}

.badge-status.pending {
  background: rgba(245, 158, 11, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fbbf24;
}

.badge-status.rejected {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #f87171;
}

.badge-status.active {
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.35);
  color: #60a5fa;
}

.badge-status.suspended {
  background: rgba(107, 114, 128, 0.2);
  border: 1px solid rgba(107, 114, 128, 0.4);
  color: #9ca3af;
}

.badge-status.contacted {
  background: rgba(14, 165, 233, 0.15);
  border: 1px solid rgba(14, 165, 233, 0.45);
  color: #38bdf8;
}

.badge-status.signed {
  background: rgba(16, 185, 129, 0.18);
  border: 1px solid rgba(16, 185, 129, 0.45);
  color: #34d399;
}

.badge-status.archived {
  background: rgba(107, 114, 128, 0.15);
  border: 1px solid rgba(107, 114, 128, 0.35);
  color: #9ca3af;
}

/* --------------------------------------------------------------------------
   10. PIED DE PAGE PERMANENT DASHBOARD (ALIGNEMENT PARFAIT DESKTOP & MOBILE)
   -------------------------------------------------------------------------- */
.dashboard-footer {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin-top: auto;
  padding: 24px 20px 20px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
  font-size: 0.78rem;
  color: var(--text-muted);
  background: rgba(6, 8, 13, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1.5;
}

.dashboard-footer a {
  color: #38bdf8;
  text-decoration: underline;
  transition: color var(--transition-fast);
}

.dashboard-footer a:hover {
  color: var(--gold-light);
}

/* --------------------------------------------------------------------------
   11. STYLES DE LA SOUS-PAGE DÉDIÉE ADHÉSION & VERROUILLAGE FORMATION
   -------------------------------------------------------------------------- */
.adhesion-package-card {
  background: var(--bg-surface-card);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  transition: all var(--transition-normal);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.adhesion-package-card.highlight {
  border-color: var(--gold-border-bright);
  box-shadow: 0 0 25px rgba(212, 175, 55, 0.2);
  background: linear-gradient(145deg, rgba(22, 28, 44, 0.95) 0%, rgba(13, 17, 27, 0.98) 100%);
}

.adhesion-package-card:hover {
  transform: translateY(-3px);
  border-color: var(--gold-primary);
}

.formation-lock-overlay-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: #fca5a5;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ==========================================================================
   CARTES DE SYNTHÈSE ÉVÉNEMENTS & LIVES (OBSIDIAN & 24K GOLD LUXURY)
   ========================================================================== */
.events-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.event-kpi-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  position: relative;
  overflow: hidden;
  transition: all var(--transition-normal);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 180px;
}

.event-kpi-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.7);
}

.event-kpi-card.card-live {
  border-color: rgba(56, 189, 248, 0.4);
  background: linear-gradient(145deg, rgba(14, 27, 49, 0.85) 0%, rgba(8, 12, 22, 0.96) 100%);
  box-shadow: 0 6px 24px rgba(56, 189, 248, 0.1);
}
.event-kpi-card.card-live:hover {
  border-color: #38bdf8;
  box-shadow: 0 10px 36px rgba(56, 189, 248, 0.28);
}

.event-kpi-card.card-registered {
  border-color: rgba(16, 185, 129, 0.4);
  background: linear-gradient(145deg, rgba(10, 36, 26, 0.85) 0%, rgba(8, 12, 22, 0.96) 100%);
  box-shadow: 0 6px 24px rgba(16, 185, 129, 0.1);
}
.event-kpi-card.card-registered:hover {
  border-color: #10b981;
  box-shadow: 0 10px 36px rgba(16, 185, 129, 0.28);
}

.event-kpi-card.card-replays {
  border-color: var(--gold-border-bright);
  background: linear-gradient(145deg, rgba(38, 28, 10, 0.85) 0%, rgba(8, 12, 22, 0.96) 100%);
  box-shadow: 0 6px 24px rgba(212, 175, 55, 0.1);
}
.event-kpi-card.card-replays:hover {
  border-color: var(--gold-primary);
  box-shadow: var(--gold-glow-md);
}

.event-kpi-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.event-kpi-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.75px;
}

.event-kpi-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
}

.event-kpi-value {
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 4px;
  color: #ffffff;
}

.event-kpi-title {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.45;
  margin-bottom: 12px;
}

.event-kpi-footer {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.74rem;
  flex-wrap: wrap;
  gap: 6px;
}

/* ==========================================================================
   ACTUALITÉS, KIOSQUE NEWSLETTER & CALENDRIER ÉDITORIAL AUTOMATIQUE
   ========================================================================== */
.news-ticker-bar {
  display: flex;
  align-items: center;
  background: linear-gradient(90deg, rgba(18, 23, 36, 0.95) 0%, rgba(10, 14, 23, 0.95) 100%);
  border: 1px solid rgba(56, 189, 248, 0.3);
  border-radius: var(--radius-md);
  padding: 8px 16px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
}

.news-ticker-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px;
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: #f87171;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1px;
  border-radius: 4px;
  margin-right: 14px;
  flex-shrink: 0;
}

.news-ticker-marquee {
  flex: 1;
  font-size: 0.84rem;
  color: #e2e8f0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.news-cat-filter-btn.active {
  background: var(--gold-gradient);
  color: #050608 !important;
  font-weight: 700;
  border-color: var(--gold-primary) !important;
}

.news-subtab-btn.active {
  background: var(--gold-gradient);
  color: #050608 !important;
  font-weight: 700;
}

.news-article-card {
  background: var(--bg-surface-1);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 22px;
  display: flex;
  flex-direction: column;
  transition: all var(--transition-fast);
  position: relative;
}

.news-article-card:hover {
  transform: translateY(-3px);
  border-color: rgba(56, 189, 248, 0.5);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.6);
}

.news-article-card.featured {
  border-color: rgba(212, 175, 55, 0.6);
  background: linear-gradient(145deg, rgba(21, 26, 40, 0.95) 0%, rgba(11, 14, 22, 0.98) 100%);
}

.newsletter-kiosk-card {
  background: linear-gradient(145deg, #121828 0%, #0a0e18 100%);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  display: flex;
  flex-direction: column;
  transition: all var(--transition-fast);
  position: relative;
}

.newsletter-kiosk-card:hover {
  transform: translateY(-3px);
  border-color: var(--gold-light);
  box-shadow: var(--gold-glow-sm);
}

.calendar-event-card {
  background: var(--bg-surface-1);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  transition: all var(--transition-fast);
}

.calendar-event-card:hover {
  border-color: rgba(56, 189, 248, 0.4);
  background: rgba(18, 23, 36, 0.8);
}

/* ==========================================================================
   NOUVEAUX STYLES ECN : CALENDRIER INTERACTIF, CHICK'IN MAP & SIMULATEUR,
   QUÊTES ECN, SOLDE COINS & DIDIT KYC
   ========================================================================== */

/* 1. Calendrier Mensuel Interactif ECN */
.ecn-calendar-container {
  background: linear-gradient(165deg, rgba(15, 21, 35, 0.95) 0%, rgba(6, 8, 13, 0.98) 100%);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 24px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
  margin-bottom: 32px;
}

.cal-header-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.cal-month-title {
  font-family: var(--font-display);
  font-size: 1.45rem;
  color: #fff;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.cal-nav-btn {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(212, 175, 55, 0.3);
  color: var(--gold-light);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--transition-fast);
  font-size: 1rem;
}

.cal-nav-btn:hover {
  background: var(--gold-primary);
  color: #050608;
  border-color: var(--gold-primary);
  box-shadow: var(--gold-glow-sm);
  transform: scale(1.05);
}

.cal-weekdays-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-bottom: 8px;
  text-align: center;
}

.cal-weekday-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--gold-light);
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 8px 0;
}

.calendar-days-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
}

.calendar-day-cell {
  min-height: 105px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--radius-md);
  padding: 8px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
  transition: all var(--transition-fast);
  position: relative;
  overflow: hidden;
}

.calendar-day-cell:hover {
  background: rgba(212, 175, 55, 0.06);
  border-color: rgba(212, 175, 55, 0.4);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
}

.calendar-day-cell.is-other-month {
  opacity: 0.28;
}

.calendar-day-cell.is-today {
  border-color: #38bdf8;
  background: rgba(56, 189, 248, 0.06);
}

.calendar-day-cell.is-today .cal-day-num {
  color: #38bdf8;
  font-weight: 800;
}

.calendar-day-cell.has-events {
  border-color: rgba(212, 175, 55, 0.45);
  background: linear-gradient(145deg, rgba(212, 175, 55, 0.07) 0%, rgba(13, 18, 31, 0.8) 100%);
}

.cal-day-num {
  font-size: 0.85rem;
  font-weight: 600;
  color: #cbd5e1;
}

.cal-events-container {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 4px;
}

.cal-event-pill {
  font-size: 0.68rem;
  padding: 3px 6px;
  border-radius: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
}

.cal-event-pill.pill-online {
  background: rgba(56, 189, 248, 0.2);
  color: #7dd3fc;
  border: 1px solid rgba(56, 189, 248, 0.4);
}

.cal-event-pill.pill-physical {
  background: rgba(212, 175, 55, 0.2);
  color: var(--gold-light);
  border: 1px solid rgba(212, 175, 55, 0.4);
}

.cal-event-pill.pill-live {
  background: rgba(239, 68, 68, 0.25);
  color: #fca5a5;
  border: 1px solid #ef4444;
  animation: pulseLive 2s infinite;
}

@keyframes pulseLive {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

/* 2. Quêtes ECN Gamification */
.ecn-quests-wrapper {
  background: linear-gradient(165deg, rgba(18, 24, 40, 0.95) 0%, rgba(8, 11, 18, 0.98) 100%);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: 24px;
  margin-bottom: 28px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.6);
}

.quest-progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}

.quest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.ecn-quest-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: var(--radius-lg);
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  transition: all var(--transition-fast);
}

.ecn-quest-card:hover {
  border-color: rgba(212, 175, 55, 0.35);
  background: rgba(212, 175, 55, 0.04);
}

.ecn-quest-card.is-completed {
  border-color: rgba(52, 211, 153, 0.4);
  background: rgba(16, 185, 129, 0.04);
}

.ecn-quest-card.is-claimed {
  border-color: rgba(255, 255, 255, 0.05);
  opacity: 0.72;
}

/* 3. Carte Dynamique Leaflet Chick'In & Simulateur */
#chickinMap {
  width: 100%;
  min-height: 540px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--gold-border);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.8);
  z-index: 10;
  overflow: hidden;
  position: relative;
  background: #070a12;
}

.leaflet-container {
  background: #050608 !important;
  font-family: var(--font-body) !important;
}

.leaflet-popup-content-wrapper {
  background: #0b0f19 !important;
  color: #fff !important;
  border: 1px solid var(--gold-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8) !important;
}

.leaflet-popup-tip {
  background: #0b0f19 !important;
  border: 1px solid var(--gold-border) !important;
}

.leaflet-bar a {
  background-color: #0b0f19 !important;
  color: var(--gold-light) !important;
  border-color: rgba(212, 175, 55, 0.3) !important;
}

.leaflet-bar a:hover {
  background-color: #141c30 !important;
  color: #fff !important;
}

.leaflet-control-attribution {
  background: rgba(5, 7, 12, 0.8) !important;
  color: #64748b !important;
  font-size: 10px !important;
}

.leaflet-control-attribution a {
  color: var(--gold-light) !important;
}

.leaflet-div-icon {
  background: transparent !important;
  border: none !important;
}

.chickin-custom-pin {
  background: transparent !important;
  border: none !important;
  cursor: pointer;
  transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.22s ease;
}

.chickin-custom-pin:hover {
  transform: scale(1.18) translateY(-4px) !important;
  z-index: 1000 !important;
}

.chickin-custom-pin.is-selected {
  transform: scale(1.26) translateY(-6px) !important;
  z-index: 2000 !important;
}

.chickin-leaflet-tooltip {
  background: rgba(11, 15, 25, 0.95) !important;
  color: #fff !important;
  border: 1px solid var(--gold-border) !important;
  border-radius: 8px !important;
  padding: 6px 12px !important;
  font-family: var(--font-body, 'Outfit', sans-serif) !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.9) !important;
}

.chickin-leaflet-tooltip::before {
  border-top-color: var(--gold-border) !important;
}

@keyframes chickinPinRadarPulse {
  0% { transform: scale(0.6); opacity: 0.9; }
  70% { transform: scale(2.2); opacity: 0; }
  100% { transform: scale(2.4); opacity: 0; }
}

.chickin-pin-radar {
  animation: chickinPinRadarPulse 2.2s infinite ease-out;
}

@media (max-width: 900px) {
  #chickinFloatingDetailCard {
    position: static !important;
    max-width: 100% !important;
    width: calc(100% - 24px) !important;
    margin: 12px auto !important;
  }
}

.custom-gold-pin {
  background: linear-gradient(135deg, #d4af37, #f59e0b);
  border: 2px solid #fff;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  box-shadow: 0 0 14px rgba(212, 175, 55, 0.8);
}

.custom-emerald-pin {
  background: linear-gradient(135deg, #10b981, #059669);
  border: 2px solid #fff;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  box-shadow: 0 0 14px rgba(16, 185, 129, 0.8);
}

/* 4. Simulateur de Rentabilité Chick'In */
.chickin-simulator-card {
  background: linear-gradient(165deg, rgba(16, 22, 38, 0.95) 0%, rgba(6, 8, 14, 0.98) 100%);
  border: 1.5px solid var(--gold-border);
  border-radius: var(--radius-xl);
  padding: clamp(20px, 3vw, 32px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.85);
  margin-top: 28px;
}

.sim-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.sim-kpi-card {
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-md);
  padding: 16px;
  text-align: center;
}

.sim-kpi-val {
  font-size: 1.5rem;
  font-weight: 800;
  margin-top: 6px;
  font-family: var(--font-display);
}

/* 5. Partenaires Grisés / En Attente */
.partenaire-card.is-pending {
  filter: grayscale(0.85);
  opacity: 0.65;
  position: relative;
  transition: all var(--transition-fast);
}

.partenaire-card.is-pending:hover {
  filter: grayscale(0.4);
  opacity: 0.85;
}

.pending-ribbon {
  background: rgba(245, 158, 11, 0.92);
  color: #050608;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 4px;
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 10;
  letter-spacing: 0.5px;
}

/* 6. Onboarding Tour Modal */
.tour-step-card {
  background: #0b0f19;
  border: 1.5px solid var(--gold-border);
  border-radius: var(--radius-xl);
  max-width: 600px;
  width: 90%;
  padding: clamp(20px, 4vw, 32px);
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.95);
  position: relative;
  text-align: center;
}

@media (max-width: 768px) {
  .calendar-day-cell {
    min-height: 70px;
    padding: 4px;
  }
  .cal-event-pill {
    font-size: 0.6rem;
    padding: 2px 4px;
  }
  #chickinMap {
    height: 340px;
  }
}

/* ==========================================================================
   7. CHICK'IN GLASSMORPHISM SHOWCASE & ACTIVE INVESTMENTS PORTFOLIO
   ========================================================================== */
.chickin-glass-container {
  background: linear-gradient(145deg, rgba(15, 21, 35, 0.75) 0%, rgba(6, 8, 14, 0.9) 100%);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1.5px solid rgba(212, 175, 55, 0.35);
  border-radius: var(--radius-xl);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.9);
  overflow: hidden;
  margin-top: 14px;
}

.chickin-tab-bar {
  display: flex;
  gap: 8px;
  padding: 12px 18px;
  background: rgba(0, 0, 0, 0.5);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  overflow-x: auto;
  scrollbar-width: thin;
}

.chickin-tab-btn {
  padding: 8px 18px;
  border-radius: var(--radius-pill);
  font-size: 0.82rem;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.03);
  color: #cbd5e1;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.25s ease;
}

.chickin-tab-btn:hover {
  background: rgba(212, 175, 55, 0.12);
  border-color: rgba(212, 175, 55, 0.4);
  color: #fff;
  transform: translateY(-1px);
}

.chickin-tab-btn.active {
  background: var(--gold-gradient);
  border-color: var(--gold-primary);
  color: #050608;
  box-shadow: 0 4px 18px rgba(212, 175, 55, 0.4);
}

.chickin-glass-card {
  background: rgba(255, 255, 255, 0.025);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: var(--radius-lg);
  padding: 20px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}

.chickin-glass-card:hover {
  background: rgba(212, 175, 55, 0.04);
  border-color: rgba(212, 175, 55, 0.35);
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
}

.chickin-glow-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.pnl-row-highlight {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.85rem;
}

.pnl-row-highlight:last-child {
  border-bottom: none;
}

/* ==========================================================================
   8. TOPBAR GAMING COIN WIDGET & QUÊTES BUTTON
   ========================================================================== */
.topbar-game-coins {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, rgba(20, 26, 42, 0.95) 0%, rgba(9, 12, 20, 0.98) 100%);
  border: 1.5px solid rgba(212, 175, 55, 0.45);
  border-radius: 30px;
  padding: 4px 14px 4px 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5), inset 0 0 12px rgba(212, 175, 55, 0.12);
  transition: all 0.25s ease;
  user-select: none;
}

.topbar-game-coins:hover {
  border-color: var(--gold-light);
  box-shadow: 0 6px 22px rgba(212, 175, 55, 0.35), inset 0 0 16px rgba(212, 175, 55, 0.2);
  transform: translateY(-1px);
}

.coin-icon-svg {
  display: flex;
  align-items: center;
  justify-content: center;
  animation: coinGlowPulse 2.4s infinite ease-in-out;
}

@keyframes coinGlowPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 4px rgba(212, 175, 55, 0.4)); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 8px rgba(245, 158, 11, 0.8)); }
}

.coin-text-group {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.coin-amount-val {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.98rem;
  color: #fff;
  letter-spacing: 0.5px;
}

.coin-unit {
  font-size: 0.6rem;
  font-weight: 800;
  color: var(--gold-light);
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

.btn-topbar-quests {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.12) 0%, rgba(18, 23, 38, 0.9) 100%);
  border: 1px solid var(--gold-border);
  border-radius: 20px;
  padding: 6px 14px;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  transition: all 0.25s ease;
}

.btn-topbar-quests:hover {
  border-color: var(--gold-primary);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.22) 0%, rgba(26, 32, 54, 0.95) 100%);
  box-shadow: 0 0 16px rgba(212, 175, 55, 0.35);
  transform: translateY(-1px);
}

.badge-unclaimed-quests {
  background: linear-gradient(135deg, #f59e0b, #ef4444);
  color: #fff;
  font-weight: 800;
  font-size: 0.68rem;
  border-radius: 10px;
  padding: 2px 7px;
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.8);
  animation: pulseQuestBadge 1.5s infinite;
}

@keyframes pulseQuestBadge {
  0%, 100% { transform: scale(1); box-shadow: 0 0 8px rgba(239, 68, 68, 0.7); }
  50% { transform: scale(1.15); box-shadow: 0 0 16px rgba(245, 158, 11, 0.9); }
}

/* ==========================================================================
   9. KYC MANDATORY GATE & LOCK OVERLAY
   ========================================================================== */
.kyc-mandatory-gate {
  position: relative;
  transition: all 0.3s ease;
}

.is-kyc-locked {
  position: relative;
  opacity: 0.42;
  pointer-events: none;
  filter: grayscale(40%);
  user-select: none;
  transition: all 0.3s ease;
}

.is-kyc-locked::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(5, 7, 12, 0.5);
  backdrop-filter: blur(2px);
  z-index: 10;
  border-radius: inherit;
}

/* ==========================================================================
   10. SESSIONS LIST REDESIGN (LUXURY REFRAMED CARDS)
   ========================================================================== */
.event-card-luxury {
  background: linear-gradient(145deg, rgba(16, 22, 36, 0.85) 0%, rgba(9, 12, 20, 0.95) 100%);
  border: 1px solid rgba(212, 175, 55, 0.22);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.event-card-luxury:hover {
  border-color: rgba(212, 175, 55, 0.6);
  transform: translateY(-4px);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.75), 0 0 20px rgba(212, 175, 55, 0.15);
}

.event-card-luxury.is-live {
  border-color: #ef4444;
  box-shadow: 0 0 25px rgba(239, 68, 68, 0.25);
}

.event-card-thumb-wrap {
  position: relative;
  height: 160px;
  width: 100%;
  overflow: hidden;
  background: #000;
}

.event-card-thumb-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.event-card-luxury:hover .event-card-thumb-wrap img {
  transform: scale(1.05);
}

.event-card-thumb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(9, 12, 20, 0.95) 100%);
}

.event-card-date-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(10, 14, 24, 0.9);
  border: 1px solid var(--gold-border);
  border-radius: 10px;
  padding: 6px 10px;
  text-align: center;
  min-width: 48px;
  backdrop-filter: blur(8px);
}

.event-card-body {
  padding: 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.event-card-footer {
  padding: 14px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.25);
}

/* ==========================================================================
   11. CHICK'IN MOTION DESIGN & CHART CONTAINERS
   ========================================================================== */
.chickin-chart-wrapper {
  background: rgba(10, 14, 25, 0.75);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-radius: 14px;
  padding: 20px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
  position: relative;
  overflow: hidden;
}

.chickin-ticker-badge {
  display: flex;
  flex-direction: column;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(212, 175, 55, 0.2);
  border-radius: 10px;
}

.chickin-ticker-label {
  font-size: 0.68rem;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 700;
  letter-spacing: 0.5px;
}

.chickin-ticker-val {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
  margin-top: 2px;
}

@keyframes modalZoomIn {
  0% { opacity: 0; transform: scale(0.92); }
  100% { opacity: 1; transform: scale(1); }
}

.modal-zoom-animated {
  animation: modalZoomIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}



/* Icône dorée devant les titres de section du dashboard */
.ecn-title-icon { display: inline-block; width: 0.95em; height: 0.95em; color: var(--gold-light); vertical-align: -0.12em; margin-right: 0.45em; flex: none; }

/* Parcours du membre (vue d'ensemble) */
.journey { margin: 0 0 26px; padding: 20px 22px 18px; border-radius: 20px; border: 1px solid var(--gold-border); background: linear-gradient(150deg, rgba(212, 175, 55, 0.08) 0%, rgba(10, 13, 21, 0.92) 55%); }
.journey-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.journey-head span { font-family: var(--font-display); font-size: 1.05rem; color: #fff; }
.journey-head b { font-size: 0.78rem; color: var(--gold-light); letter-spacing: 0.06em; }
.journey-track { position: relative; height: 4px; margin: 0 9% 16px; border-radius: 4px; background: rgba(255, 255, 255, 0.08); }
.journey-track i { position: absolute; inset: 0 auto 0 0; border-radius: 4px; background: linear-gradient(90deg, #8c6a1e, var(--gold-light)); box-shadow: 0 0 12px rgba(212, 175, 55, 0.5); transition: width 1s cubic-bezier(.2, .8, .2, 1); }
.journey-steps { list-style: none; margin: -36px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.journey-steps li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding-top: 0; }
.journey-dot { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 2px solid rgba(255, 255, 255, 0.14); background: #0b0f19; color: #64748b; margin-bottom: 6px; transition: transform .3s ease; }
.journey-dot svg { display: block; width: 18px; height: 18px; }
.journey-steps li.is-done .journey-dot { border-color: var(--gold-primary); background: var(--gold-gradient); color: #0b0e17; }
.journey-steps li.is-wait .journey-dot { border-color: #fbbf24; color: #fbbf24; }
.journey-steps li.is-todo .journey-dot { border-color: var(--gold-light); color: var(--gold-light); }
.journey-steps li.is-current .journey-dot { transform: scale(1.12); box-shadow: 0 0 0 6px rgba(212, 175, 55, 0.12), 0 0 22px rgba(212, 175, 55, 0.45); animation: journey-pulse 2.2s ease-in-out infinite; }
@keyframes journey-pulse { 50% { box-shadow: 0 0 0 10px rgba(212, 175, 55, 0.06), 0 0 30px rgba(212, 175, 55, 0.6); } }
.journey-steps strong { font-size: 0.84rem; color: #fff; }
.journey-steps li.is-lock strong { color: #94a3b8; }
.journey-steps small { font-size: 0.72rem; color: var(--text-muted); line-height: 1.35; }
.journey-cta { margin-top: 6px; border: 0; border-radius: 999px; padding: 6px 12px; background: var(--gold-gradient); color: #0b0e17; font: inherit; font-size: 0.74rem; font-weight: 700; cursor: pointer; transition: transform .2s ease; }
.journey-cta:hover { transform: translateY(-1px); }
@media (max-width: 760px) {
  .journey-track { display: none; }
  .journey-steps { margin-top: 0; grid-template-columns: 1fr; gap: 8px; }
  .journey-steps li { flex-direction: row; flex-wrap: wrap; text-align: left; align-items: center; gap: 4px 12px; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, 0.02); }
  .journey-steps li.is-current { background: rgba(212, 175, 55, 0.08); border: 1px solid rgba(212, 175, 55, 0.3); }
  .journey-dot { width: 34px; height: 34px; margin: 0; }
  .journey-steps small { flex-basis: 100%; padding-left: 46px; margin-top: -4px; }
  .journey-cta { margin: 2px 0 0 46px; }
}
@media (prefers-reduced-motion: reduce) { .journey-steps li.is-current .journey-dot { animation: none; } }

/* Connexion : anneau doré autour du logo + version téléphone */
.auth-brand { position: relative; }
.auth-logo { position: relative; z-index: 1; filter: drop-shadow(0 6px 16px rgba(212, 175, 55, 0.35)); }
.auth-brand::before { content: ''; position: absolute; top: -9px; left: 50%; width: 76px; height: 76px; margin-left: -38px; border-radius: 50%; border: 1.5px dashed rgba(212, 175, 55, 0.5); animation: auth-ring 16s linear infinite; pointer-events: none; }
@keyframes auth-ring { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .auth-brand::before { animation: none; } }
@media (max-width: 480px) {
  .auth-header { padding: 14px 16px; gap: 8px; }
  .auth-back-link { padding: 8px 12px; font-size: 0.78rem; white-space: nowrap; }
  .auth-header .badge-gold { padding: 6px 10px; font-size: 0.62rem; white-space: nowrap; }
  .auth-main-container { padding: 18px 12px 32px; }
  .auth-card { padding: 26px 18px; border-radius: 22px; }
  .auth-form-options { flex-wrap: wrap; gap: 10px; }
  .auth-form-options > a { margin-left: auto; }
}

/* ==========================================================================
   DASHBOARD SUR TÉLÉPHONE : barre du haut épurée + navigation rapide en bas
   ========================================================================== */
.dash-bottom-nav { display: none; }
@media (max-width: 991px) {
  .dash-bottom-nav {
    position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 950; display: grid; grid-template-columns: repeat(5, 1fr);
    padding: 6px; border-radius: 20px; background: rgba(9, 12, 20, 0.94); border: 1px solid rgba(212, 175, 55, 0.35);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.65); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    padding-bottom: max(6px, env(safe-area-inset-bottom));
  }
  .dash-bottom-nav button { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 7px 2px; border: 0; border-radius: 14px; background: transparent; color: #8b94a8; font: inherit; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.02em; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
  .dash-bottom-nav button svg { display: block; transition: transform .25s cubic-bezier(.2, .8, .2, 1); }
  .dash-bottom-nav button.is-on { color: var(--gold-light); background: rgba(212, 175, 55, 0.12); }
  .dash-bottom-nav button.is-on svg { transform: translateY(-2px) scale(1.08); filter: drop-shadow(0 0 6px rgba(212, 175, 55, 0.6)); }
  .dash-bottom-nav button:active { transform: scale(0.94); }
  .dashboard-content-area { padding-bottom: 104px !important; }
  .ecn-chat-launcher { bottom: 92px !important; }
}
@media (max-width: 600px) {
  .topbar-left { flex: 1; min-width: 0; }
  .topbar-page-title { max-width: none !important; min-width: 0; flex: 1; }
  .topbar-right { gap: 8px !important; flex-shrink: 0; }
  .topbar-pack-badge, .btn-topbar-site { display: none !important; }
  .topbar-game-coins .coin-unit { display: none; }
  .topbar-game-coins { padding: 6px 10px !important; }
  .btn-topbar-quests { padding: 8px !important; font-size: 0 !important; gap: 0 !important; }
  .btn-topbar-quests svg { width: 18px; height: 18px; }
  .btn-topbar-quests .badge-unclaimed-quests { font-size: 0.62rem; }
  .notif-dropdown-panel { position: fixed !important; left: 10px !important; right: 10px !important; top: 70px !important; width: auto !important; }
}
@media (max-width: 420px) { .topbar-page-title { font-size: 0.92rem !important; letter-spacing: 0; } }

/* ==========================================================================
   ONGLET COMMISSIONS : TABLEAU DE BORD DES GAINS (dash-commission-charts.js)
   ========================================================================== */
.comm-analytics { margin: 4px 0 28px; }
.comm-analytics-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.comm-period, .comm-filter { display: inline-flex; gap: 4px; padding: 4px; border-radius: 12px; background: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.07); }
.comm-period button, .comm-filter button { border: 0; background: transparent; color: var(--text-muted); font-family: inherit; font-weight: 700; font-size: 0.76rem; padding: 7px 12px; border-radius: 9px; cursor: pointer; transition: background 0.2s, color 0.2s; }
.comm-period button:hover, .comm-filter button:hover { color: #fff; }
.comm-period button.is-on, .comm-filter button.is-on { background: var(--gold-primary); color: #0b0f19; }
.comm-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.comm-kpi { padding: 16px 18px; border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(20, 27, 45, 0.75) 0%, rgba(11, 15, 25, 0.95) 100%); border: 1px solid rgba(255, 255, 255, 0.07); min-width: 0; }
.comm-kpi > span { display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
.comm-kpi > b { display: block; font-family: var(--font-display); font-size: 1.55rem; line-height: 1.15; color: #fff; margin: 6px 0 4px; }
.comm-kpi > small { display: block; font-size: 0.76rem; color: var(--text-secondary); }
.comm-kpi > small.is-up { color: #34d399; }
.comm-kpi > small.is-down { color: #f87171; }
.comm-cap { height: 6px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); overflow: hidden; margin: 2px 0 6px; }
.comm-cap i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, #34d399, #d4af37); transition: width 0.8s ease; }
.comm-cap i.is-high { background: linear-gradient(90deg, #f59e0b, #f87171); }
.comm-charts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.comm-chart-card { min-width: 0; padding: 18px; border-radius: var(--radius-lg); background: rgba(13, 18, 31, 0.85); border: 1px solid rgba(212, 175, 55, 0.18); }
.comm-chart-card.is-wide { grid-column: span 2; }
.comm-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.comm-card-head .comm-period button { padding: 6px 10px; font-size: 0.72rem; }
.comm-chart-card h4 { margin: 0 0 2px; font-family: var(--font-display); font-size: 1.02rem; color: #fff; }
.comm-chart-card p { margin: 0 0 12px; font-size: 0.78rem; color: var(--text-muted); }
.comm-canvas { position: relative; height: 280px; }
.comm-canvas.is-donut { height: 270px; }
.comm-donut-center { position: absolute; left: 0; right: 0; top: 40%; transform: translateY(-50%); text-align: center; pointer-events: none; }
.comm-donut-center b { display: block; font-family: var(--font-display); font-size: 1.2rem; color: var(--gold-light); }
.comm-donut-center span { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.comm-top-empty { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; font-size: 0.84rem; color: var(--text-muted); background: rgba(13, 18, 31, 0.85); }
.comm-top-empty[hidden] { display: none; }
.comm-empty { text-align: center; padding: 30px 20px; border-radius: var(--radius-lg); border: 1px dashed var(--gold-border); background: rgba(255, 255, 255, 0.02); }
.comm-empty h4 { margin: 10px 0 6px; font-family: var(--font-display); font-size: 1.05rem; color: #fff; }
.comm-empty p { margin: 0 auto 14px; max-width: 540px; font-size: 0.84rem; line-height: 1.5; color: var(--text-secondary); }
.comm-empty[hidden], .comm-charts[hidden] { display: none; }
#dashCommissionsTableBody[data-filter="commission"] tr[data-kind="retrait"],
#dashCommissionsTableBody[data-filter="retrait"] tr[data-kind="commission"] { display: none; }
@media (max-width: 1100px) {
  .comm-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comm-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comm-chart-card.is-wide { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .comm-kpis { gap: 10px; }
  .comm-kpi { padding: 12px 14px; }
  .comm-kpi > b { font-size: 1.2rem; }
  .comm-charts { grid-template-columns: 1fr; }
  .comm-canvas { height: 240px; }
}

/* ==========================================================================
   SOUS-PAGE ÉVOLUTION DE FORMULE (dash-evolution.js)
   ========================================================================== */
.evo-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; margin-bottom: 22px; }
.evo-head h3 { font-family: var(--font-display); font-size: 1.5rem; color: #fff; margin: 8px 0 6px; }
.evo-head p { color: var(--text-secondary); font-size: 0.9rem; max-width: 640px; margin: 0; }
.evo-current { padding: 14px 18px; border-radius: var(--radius-md); border: 1px solid var(--gold-border); background: linear-gradient(145deg, rgba(212, 175, 55, 0.1), rgba(11, 15, 25, 0.95)); min-width: 230px; }
.evo-current span { display: block; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.evo-current b { display: block; font-family: var(--font-display); font-size: 1.15rem; color: var(--gold-light); margin: 4px 0 2px; }
.evo-current small { font-size: 0.78rem; color: var(--text-secondary); }
.evo-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.evo-main { display: grid; gap: 18px; min-width: 0; }
.evo-card { padding: 22px; border-radius: var(--radius-lg); background: rgba(13, 18, 31, 0.85); border: 1px solid rgba(212, 175, 55, 0.18); min-width: 0; }
.evo-card h4 { font-family: var(--font-display); color: #fff; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.evo-title { font-size: 1rem; }
.evo-top p { color: var(--text-secondary); margin: 0; }
.evo-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin-bottom: 20px; }
.evo-option { position: relative; display: block; padding: 18px 16px; border-radius: var(--radius-md); border: 1.5px solid rgba(255, 255, 255, 0.1); background: rgba(0, 0, 0, 0.25); cursor: pointer; transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s; }
.evo-option:hover { transform: translateY(-3px); border-color: rgba(212, 175, 55, 0.45); }
.evo-option.is-on { border-color: var(--gold-primary); box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15), 0 14px 30px rgba(0, 0, 0, 0.4); background: linear-gradient(160deg, rgba(212, 175, 55, 0.12), rgba(0, 0, 0, 0.25)); }
.evo-option input { position: absolute; opacity: 0; pointer-events: none; }
.evo-option-tag { display: inline-block; font-size: 0.64rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-light); border: 1px solid var(--gold-border); border-radius: 999px; padding: 2px 8px; margin-bottom: 8px; }
.evo-option b { display: block; font-family: var(--font-display); color: #fff; font-size: 1.05rem; }
.evo-option em { display: block; font-style: normal; font-family: var(--font-display); color: var(--gold-light); font-size: 1.35rem; margin: 6px 0 10px; }
.evo-option em small { font-family: var(--font-main, inherit); font-size: 0.72rem; color: var(--text-muted); }
.evo-option ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.evo-option li { display: flex; gap: 6px; font-size: 0.8rem; color: var(--text-secondary); line-height: 1.4; }
.evo-option li svg { color: #34d399; margin-top: 2px; }
.evo-check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.84rem; color: var(--text-secondary); margin: 0 0 12px; cursor: pointer; line-height: 1.45; }
.evo-check input { margin-top: 3px; accent-color: var(--gold-primary); width: 16px; height: 16px; flex: none; }
.evo-check a { color: var(--gold-light); }
.evo-steps { list-style: none; margin: 6px 0 18px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; position: relative; }
.evo-steps li { position: relative; text-align: center; padding-top: 2px; }
.evo-steps li::before { content: ''; position: absolute; top: 17px; left: calc(-50% + 20px); right: calc(50% + 20px); height: 2px; background: rgba(255, 255, 255, 0.1); }
.evo-steps li:first-child::before { display: none; }
.evo-steps li.is-done::before, .evo-steps li.is-wait::before, .evo-steps li.is-todo::before, .evo-steps li.is-error::before { background: linear-gradient(90deg, #34d399, var(--gold-primary)); }
.evo-steps i { position: relative; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; margin: 0 auto 8px; border-radius: 50%; font-style: normal; font-weight: 800; font-size: 0.85rem; background: rgba(255, 255, 255, 0.06); color: var(--text-muted); border: 1.5px solid rgba(255, 255, 255, 0.12); }
.evo-steps .is-done i { background: rgba(16, 185, 129, 0.18); color: #34d399; border-color: #34d399; }
.evo-steps .is-wait i { background: rgba(212, 175, 55, 0.15); color: var(--gold-light); border-color: var(--gold-primary); animation: evo-pulse 1.8s ease-in-out infinite; }
.evo-steps .is-todo i { background: var(--gold-primary); color: #0b0f19; border-color: var(--gold-primary); }
.evo-steps .is-error i { background: rgba(239, 68, 68, 0.15); color: #f87171; border-color: #f87171; }
@keyframes evo-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.45); } 50% { box-shadow: 0 0 0 7px rgba(212, 175, 55, 0); } }
.evo-steps b { display: block; font-size: 0.8rem; color: #fff; }
.evo-steps small { display: block; font-size: 0.72rem; color: var(--text-muted); margin-top: 2px; }
.evo-track-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.evo-track-head h4 { margin: 8px 0 0; font-size: 1.15rem; }
.evo-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.evo-facts div { padding: 12px 14px; border-radius: var(--radius-md); background: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.06); }
.evo-facts span { display: block; font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
.evo-facts b { display: block; color: #fff; font-size: 0.95rem; margin-top: 4px; }
.evo-message { padding: 12px 14px; border-radius: var(--radius-md); border-left: 3px solid var(--gold-primary); background: rgba(212, 175, 55, 0.07); margin-bottom: 14px; }
.evo-message span { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold-light); font-weight: 700; }
.evo-message p { margin: 4px 0 0; color: #e2e8f0; font-size: 0.88rem; }
.evo-note { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: var(--radius-md); background: rgba(56, 189, 248, 0.07); border: 1px solid rgba(56, 189, 248, 0.22); color: #cbd5e1; font-size: 0.86rem; line-height: 1.5; }
.evo-note svg { color: #38bdf8; margin-top: 2px; }
.evo-pay { display: grid; gap: 12px; margin-top: 6px; }
.evo-pay .form-group { margin: 0; }
.evo-pay-amount { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(212, 175, 55, 0.14), rgba(0, 0, 0, 0.3)); border: 1px solid var(--gold-border); }
.evo-pay-amount span { font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); }
.evo-pay-amount b { font-family: var(--font-display); font-size: 1.6rem; color: var(--gold-light); }
.evo-pay-amount small { color: var(--text-secondary); font-size: 0.8rem; }
.evo-wallet { display: grid; grid-template-columns: 120px 1fr; gap: 14px; align-items: center; padding: 14px; border-radius: var(--radius-md); background: rgba(0, 0, 0, 0.35); border: 1px solid rgba(255, 255, 255, 0.07); }
.evo-wallet.is-sepa { grid-template-columns: 1fr; }
.evo-wallet img { width: 120px; height: 120px; border-radius: 10px; background: #fff; padding: 6px; }
.evo-wallet span { display: block; font-size: 0.74rem; color: var(--gold-light); font-weight: 700; margin-bottom: 6px; }
.evo-wallet code { display: block; word-break: break-all; color: #e2e8f0; font-size: 0.8rem; margin-bottom: 8px; }
.evo-wallet p { margin: 0 0 6px; color: #e2e8f0; font-size: 0.86rem; }
.evo-wallet p code { display: inline; color: var(--gold-light); }
.evo-rules ul { margin: 0; padding-left: 18px; display: grid; gap: 10px; }
.evo-rules li { font-size: 0.84rem; color: var(--text-secondary); line-height: 1.5; }
.evo-rules li b { color: #fff; }
.evo-rules h4 svg { color: var(--gold-light); }
.evo-history { display: grid; gap: 10px; }
.evo-history > div { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 12px; align-items: center; padding: 12px 14px; border-radius: var(--radius-md); background: rgba(0, 0, 0, 0.25); border: 1px solid rgba(255, 255, 255, 0.05); }
.evo-history span { font-size: 0.78rem; color: var(--text-muted); }
.evo-history b { color: #fff; font-size: 0.88rem; }
.evo-history em { font-style: normal; font-size: 0.74rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.evo-history em.is-ok { color: #34d399; background: rgba(16, 185, 129, 0.12); }
.evo-history em.is-ko { color: #f87171; background: rgba(239, 68, 68, 0.12); }
.evo-history p { grid-column: 1 / -1; margin: 0; font-size: 0.8rem; color: var(--text-secondary); }
.evo-banner { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; margin: 0 0 18px; border-radius: var(--radius-md); border: 1px solid var(--gold-border); background: linear-gradient(135deg, rgba(212, 175, 55, 0.12), rgba(11, 15, 25, 0.9)); font-size: 0.86rem; color: #e2e8f0; }
@media (max-width: 1100px) { .evo-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .evo-card { padding: 16px; }
  .evo-current { min-width: 0; width: 100%; }
  .evo-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 16px; }
  .evo-steps li::before { display: none; }
  .evo-facts { grid-template-columns: 1fr; }
  .evo-wallet { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .evo-history > div { grid-template-columns: 1fr auto; }
  .evo-history span { grid-column: 1 / -1; }
}

/* ==========================================================================
   DASHBOARD SUR TÉLÉPHONE : finitions ergonomiques de toutes les sous-pages
   (beaucoup de blocs ont des styles en ligne, d'où les sélecteurs [style*=] et !important)
   ========================================================================== */
@media (max-width: 991px) {
  /* Le pied de page dégage la barre de navigation du bas (liens légaux visibles) */
  .dashboard-body .dashboard-content-area { padding-bottom: 24px !important; }
  .dashboard-body .dashboard-footer { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  /* Bulle d'assistance plus discrète, masquée sous le menu et les fenêtres */
  .dashboard-body .ecn-chat-launcher { width: 48px !important; height: 48px !important; right: 14px !important; }
  .dashboard-body .ecn-chat-launcher-icon { width: 28px !important; height: 28px !important; }
  .dashboard-body:has(.dashboard-sidebar.mobile-open) .ecn-chat-launcher,
  .dashboard-body:has(.modal-overlay[style*="display: flex"]) .ecn-chat-launcher { display: none !important; }
  .dashboard-body .sidebar-nav-btn { min-height: 44px; }
}

@media (max-width: 600px) {
  /* Barre du haut : titre sur deux lignes au lieu d'être coupé */
  .dashboard-body .topbar-page-title { white-space: normal !important; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; text-overflow: clip !important; font-size: 0.84rem !important; line-height: 1.2; }

  /* En-têtes de cartes : le badge passe à la ligne au lieu d'écraser le titre */
  .dashboard-body .dashboard-content-area [style*="justify-content: space-between"] { flex-wrap: wrap; row-gap: 8px; column-gap: 10px; }
  .dashboard-body .dashboard-content-area [class*="status-badge"], .dashboard-body .badge-pack-status { white-space: nowrap; }
  .dashboard-body .dashboard-content-area .kpi-card[style*="padding: 26px"] { padding: 18px 16px !important; }
  /* Boutons côte à côte devenus trop étroits : un par ligne */
  .dashboard-body .dashboard-content-area .btn[style*="flex: 1"] { flex-basis: 100% !important; }
  /* Grilles prévues pour l'ordinateur (colonnes de 320 px et plus) : une colonne */
  .dashboard-body .dashboard-content-area [style*="minmax(320px"], .dashboard-body .dashboard-content-area [style*="minmax(340px"] { grid-template-columns: 1fr !important; }

  /* Accueil : boutons d'accueil compacts */
  .dashboard-body .welcome-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px !important; }
  .dashboard-body .welcome-actions .btn { width: 100%; padding: 11px 6px; font-size: 0.8rem; white-space: nowrap; }
  .dashboard-body .welcome-actions .btn:first-child { grid-column: 1 / -1; }
  /* Indicateurs en grille 2 × 2 au lieu de quatre grandes cartes empilées */
  .dashboard-body .dashboard-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .dashboard-body .dashboard-kpi-grid .kpi-card { padding: 14px 12px !important; border-radius: 16px; }
  .dashboard-body .dashboard-kpi-grid .kpi-card-header { align-items: flex-start; gap: 6px; margin-bottom: 8px; }
  .dashboard-body .dashboard-kpi-grid .kpi-title { font-size: 0.6rem; letter-spacing: 0.06em; line-height: 1.3; }
  .dashboard-body .dashboard-kpi-grid .kpi-icon { width: 28px; height: 28px; flex-shrink: 0; }
  .dashboard-body .dashboard-kpi-grid .kpi-icon svg { width: 15px; height: 15px; }
  .dashboard-body .dashboard-kpi-grid .kpi-value { font-size: 1.12rem !important; margin-bottom: 4px; }
  .dashboard-body .dashboard-kpi-grid .kpi-subtitle { flex-wrap: wrap; gap: 2px 6px; font-size: 0.68rem; line-height: 1.35; }
  /* Quêtes : carrousel à faire glisser, les récompenses à réclamer en premier */
  .dashboard-body .ecn-quests-wrapper { padding: 16px 0 12px; border-radius: 18px; }
  .dashboard-body .ecn-quests-wrapper > :not(.quest-grid) { padding-left: 14px; padding-right: 14px; }
  .dashboard-body #containerQuestsList { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 14px; padding: 2px 14px 10px; scrollbar-width: none; }
  .dashboard-body #containerQuestsList::-webkit-scrollbar { display: none; }
  .dashboard-body #containerQuestsList > .ecn-quest-card { flex: 0 0 80%; scroll-snap-align: start; }
  .dashboard-body #containerQuestsList > .is-completed { order: -1; }
  .dashboard-body #containerQuestsList > .is-claimed { order: 1; }

  /* Profil : titre des formules sur toute la largeur, badges en dessous */
  .dashboard-body .pack-tier-row { padding: 18px 16px; }
  .dashboard-body .pack-tier-info h4 { flex-wrap: wrap; row-gap: 6px; }

  /* Partenaires : pastilles de la photo sur deux lignes, sous le ruban « en cours d'intégration » */
  .dashboard-body .partenaire-card-badges { flex-wrap: wrap; align-items: flex-start; gap: 6px; }
  .dashboard-body .partenaire-card-badges > span { white-space: nowrap; }
  .dashboard-body .partenaire-card.is-pending .partenaire-card-badges { top: 48px; }
  .dashboard-body .partenaire-header-row { flex-wrap: wrap; row-gap: 4px; }
  /* Partenaires : sous-menu en onglets qui défilent */
  .dashboard-body .m-subnav { flex-wrap: nowrap !important; overflow-x: auto; gap: 8px !important; margin: 0 -10px 20px !important; padding: 0 10px 12px !important; scrollbar-width: none; }
  .dashboard-body .m-subnav::-webkit-scrollbar { display: none; }
  .dashboard-body .m-subnav > .btn { flex: 0 0 auto; white-space: nowrap; font-size: 0.8rem !important; padding: 9px 14px !important; }

  /* Réseau : en-tête d'activation empilé */
  .dashboard-body #mlmActivationGate { padding: 22px 16px !important; }
  .dashboard-body #mlmActivationGate > div:first-child { flex-direction: column; align-items: flex-start !important; gap: 10px !important; }
  .dashboard-body #mlmActivationGate h3 { font-size: 1.15rem !important; }

  /* Commissions : cartes de solde plus compactes */
  .dashboard-body .commissions-balance-cards { gap: 12px !important; margin-bottom: 20px; }
  .dashboard-body .comm-balance-card { padding: 18px 16px; }
  .dashboard-body .comm-amount { font-size: 1.8rem; margin: 6px 0; }
  .dashboard-body .comm-canvas canvas { max-width: 100%; }

  /* Support et dossiers partenaires : trois indicateurs sur une ligne, recherche en pleine largeur */
  .dashboard-body #tab-support [style*="minmax(180px"], .dashboard-body #tab-partenaires [style*="minmax(160px"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  .dashboard-body #tab-support [style*="minmax(180px"] > div, .dashboard-body #tab-partenaires [style*="minmax(160px"] > div { padding: 10px !important; }
  .dashboard-body #tab-support [style*="minmax(180px"] > div > span:first-child, .dashboard-body #tab-partenaires [style*="minmax(160px"] > div > :first-child { font-size: 0.58rem !important; line-height: 1.3; }
  .dashboard-body #tab-support div:has(> .badge-gold) { flex-wrap: wrap; }
  .dashboard-body #tab-support .badge-gold { white-space: nowrap; }
  .dashboard-body #btnOpenCreateTicketModal { width: 100%; justify-content: center; }
  .dashboard-body #tab-support div:has(> #inputSearchUserTickets) { flex: 1 1 100%; }
  .dashboard-body #inputSearchUserTickets { width: 100% !important; }

  /* Tableaux : chaque ligne devient une carte lisible, sans défilement horizontal */
  .dashboard-body .dashboard-table-card { overflow-x: visible !important; padding: 14px 12px !important; }
  .dashboard-body .dashboard-table { min-width: 0 !important; }
  .dashboard-body .dashboard-table thead { display: none; }
  .dashboard-body .dashboard-table, .dashboard-body .dashboard-table tbody, .dashboard-body .dashboard-table tr, .dashboard-body .dashboard-table td { display: block; width: 100%; }
  .dashboard-body .dashboard-table tr { margin-bottom: 10px; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 14px; background: rgba(255, 255, 255, 0.02); }
  .dashboard-body .dashboard-table td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 0 !important; border: 0 !important; text-align: right; }
  .dashboard-body .dashboard-table td + td { border-top: 1px dashed rgba(255, 255, 255, 0.07) !important; }
  .dashboard-body .dashboard-table td::before { content: attr(data-label); flex: 0 0 auto; max-width: 46%; text-align: left; font-family: var(--font-body); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-muted); }
  .dashboard-body .dashboard-table td[colspan] { display: block; text-align: center; }
  .dashboard-body .dashboard-table td[colspan]::before { content: none; }

  /* Fenêtres : panneau qui monte du bas, champs empilés */
  .dashboard-body .modal-overlay { align-items: flex-end !important; padding: 0 !important; }
  .dashboard-body .modal-overlay > div { max-width: 100% !important; max-height: 92vh !important; margin: 0 !important; border-radius: 22px 22px 0 0 !important; padding-bottom: max(16px, env(safe-area-inset-bottom)) !important; animation: ecn-sheet-up 0.32s cubic-bezier(0.2, 0.8, 0.2, 1); }
  .dashboard-body .modal-overlay .m-stack { grid-template-columns: 1fr !important; gap: 12px !important; }
  .dashboard-body .modal-overlay .btn-close-modal { width: 40px !important; height: 40px !important; flex-shrink: 0; }
}
@keyframes ecn-sheet-up { from { transform: translateY(48px); opacity: 0.6; } }
@media (prefers-reduced-motion: reduce) { .dashboard-body .modal-overlay > div { animation: none !important; } }

/* ---------------------------------------------------------------------------
   Cartes partenaires : la même carte pour tous, membre ou aperçu, aux couleurs
   de chaque partenaire (visuel avec logo, informations, actions)
   --------------------------------------------------------------------------- */
.dashboard-body .pc-card { --pc: #d4af37; --pc-ink: #0b0f19; border-radius: 22px; border-color: color-mix(in srgb, var(--pc) 36%, transparent); background: radial-gradient(130% 55% at 50% 0%, color-mix(in srgb, var(--pc) 9%, transparent), transparent 62%), linear-gradient(165deg, rgba(16, 22, 34, 0.96), rgba(7, 10, 16, 0.99)); }
.dashboard-body .pc-card.ck-teaser { --pc: #f39323; --pc-ink: #141414; }
.dashboard-body .pc-card.ff-teaser { --pc: #f0b740; --pc-ink: #0a1226; }
.dashboard-body .pc-card.sx-teaser { --pc: #f59e0b; --pc-ink: #0b0f19; }
.dashboard-body .pc-card.ks-teaser { --pc: #a974ff; --pc-ink: #ffffff; }
.dashboard-body .pc-card.sz-teaser { --pc: #28d6a0; --pc-ink: #08291e; }
.dashboard-body .pc-card::before { background: linear-gradient(90deg, transparent, var(--pc), transparent); }
.dashboard-body .pc-card:hover { border-color: var(--pc); box-shadow: 0 22px 50px rgba(0, 0, 0, 0.75), 0 0 34px color-mix(in srgb, var(--pc) 24%, transparent); }
.dashboard-body .pc-card > div:first-child { border-bottom: 1px solid color-mix(in srgb, var(--pc) 32%, transparent); }

.dashboard-body .pc-card .partenaire-card-body { padding: 20px 22px 4px; }
.dashboard-body .pc-card .partenaire-header-row { align-items: center; flex-wrap: wrap; row-gap: 6px; margin-bottom: 4px; }
.dashboard-body .pc-card .partenaire-title { font-size: 1.3rem; }
.dashboard-body .pc-card .partenaire-sector-tag { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; padding: 4px 10px; border-radius: 999px; color: color-mix(in srgb, var(--pc) 72%, #fff); background: color-mix(in srgb, var(--pc) 11%, transparent); border: 1px solid color-mix(in srgb, var(--pc) 30%, transparent); }
.dashboard-body .pc-card .partenaire-tagline { font-size: 0.8rem; color: color-mix(in srgb, var(--pc) 78%, #fff); margin-bottom: 10px; }
.dashboard-body .pc-card .partenaire-summary { font-size: 0.84rem; margin-bottom: 14px; }
.dashboard-body .pc-card .ck-teaser-chips span { color: color-mix(in srgb, var(--pc) 70%, #fff); border-color: color-mix(in srgb, var(--pc) 42%, transparent); background: color-mix(in srgb, var(--pc) 7%, transparent); }

.dashboard-body .pc-features { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(255, 255, 255, 0.07); display: grid; gap: 8px; }
.dashboard-body .pc-features li { display: flex; align-items: flex-start; gap: 10px; font-size: 0.8rem; line-height: 1.45; color: #dfe5ee; }
.dashboard-body .pc-tick { flex: none; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: var(--pc); background: color-mix(in srgb, var(--pc) 16%, transparent); }
.dashboard-body .pc-terms { margin-top: 16px; padding: 12px 14px; border-radius: 14px; display: grid; gap: 3px; background: linear-gradient(135deg, color-mix(in srgb, var(--pc) 12%, transparent), rgba(255, 255, 255, 0.015)); border: 1px solid color-mix(in srgb, var(--pc) 26%, transparent); }
.dashboard-body .pc-terms-label { font-size: 0.62rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in srgb, var(--pc) 75%, #fff); }
.dashboard-body .pc-terms strong { font-size: 0.85rem; font-weight: 600; line-height: 1.45; color: #fff; }
.dashboard-body .pc-terms small { font-size: 0.72rem; color: var(--text-muted); }

.dashboard-body .pc-card .partenaire-card-footer { padding: 18px 22px 22px; }
.dashboard-body .pc-card .btn-primary.ck-teaser-btn { background: linear-gradient(135deg, color-mix(in srgb, var(--pc) 52%, #fff), var(--pc) 55%, color-mix(in srgb, var(--pc) 78%, #000)) !important; border: 1px solid var(--pc) !important; color: var(--pc-ink) !important; box-shadow: 0 12px 28px -12px var(--pc) !important; transition: transform 0.25s ease, filter 0.25s ease !important; }
.dashboard-body .pc-card .btn-primary.ck-teaser-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.dashboard-body .pc-card .btn-partenaire-contact { background: color-mix(in srgb, var(--pc) 7%, transparent) !important; border: 1px solid color-mix(in srgb, var(--pc) 40%, transparent) !important; color: color-mix(in srgb, var(--pc) 72%, #fff) !important; }
.dashboard-body .pc-card .btn-partenaire-contact:hover { background: color-mix(in srgb, var(--pc) 15%, transparent) !important; border-color: var(--pc) !important; }

/* Partenaire en cours d'intégration : même gabarit, visuel éteint et cadenas */
.dashboard-body .pc-pending { opacity: 0.8; }
.dashboard-body .pc-pending:hover { opacity: 1; }
.dashboard-body .pc-pending-media { position: relative; height: 150px; overflow: hidden; background: #05070b; }
.dashboard-body .pc-pending-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.85) brightness(0.42); transform: scale(1.04); transition: filter 0.6s ease, transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1); }
.dashboard-body .pc-pending:hover .pc-pending-media img { filter: grayscale(0.5) brightness(0.55); transform: scale(1.09); }
.dashboard-body .pc-pending-lock { position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; color: var(--pc); background: rgba(5, 7, 11, 0.7); border: 1px solid color-mix(in srgb, var(--pc) 45%, transparent); box-shadow: 0 0 30px color-mix(in srgb, var(--pc) 25%, transparent); backdrop-filter: blur(6px); }
.dashboard-body .pc-pending .btn-partenaire-contact { cursor: default; }
.dashboard-body .pc-soon-title { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; margin: 10px 0 -8px; font-family: var(--font-body); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-muted); }
.dashboard-body .pc-soon-title::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(255, 255, 255, 0.12), transparent); }

@media (max-width: 480px) {
  .dashboard-body .pc-card:not(.pc-pending) > div:first-child { height: 200px; }
  .dashboard-body .pc-card .partenaire-card-body { padding: 18px 16px 4px; }
  .dashboard-body .pc-card .partenaire-card-footer { padding: 16px 16px 18px; }
}
