/*
 * Course Tracker - Styles principaux
 * VERSION CORRIGÉE - Compatible avec les menus mobiles
 *
 * CORRECTIONS APPLIQUÉES :
 * 1. Règles générales (*) supprimées pour éviter les conflits
 * 2. Z-index réduits pour ne pas bloquer les menus mobiles
 * 3. Isolation des styles du plugin
 * 4. Protection explicite des éléments de navigation
 */

/* ===== Variables CSS (overridden par inline :root du plugin) ===== */
:root {
  --ctrkr-button-bg: #1976d2;
  --ctrkr-button-text: #fff;
  --ctrkr-button-padding: 10px 24px;
  --ctrkr-button-radius: 5px;
  --ctrkr-nav-font-size: 1em;
  --ctrkr-heading-font-size: 1.25em;
  --ctrkr-nav-link-color: #222222;
  --ctrkr-nav-link-hover: #333333;
  --ctrkr-nav-active-color: inherit;
  --ctrkr-checkmark-color: #28a745;
  --ctrkr-checkmark-border: #28a745;
  --ctrkr-nav-line-height: 1.6;
}

/* ===== FIX 1 : NE PAS toucher à tous les éléments du site ===== */
/* SUPPRIMÉ : *, *::before, *::after { box-sizing: border-box; } */
/* Cette règle affectait TOUS les éléments du site, y compris le menu mobile */

/* FIX 2 : Appliquer box-sizing UNIQUEMENT aux éléments du plugin */
.ctrkr-nav,
.ctrkr-nav *,
.ctrkr-checkmark,
.ctrkr-course-outline,
.ctrkr-course-outline *,
.ctrkr-progress-bar-row,
.ctrkr-progress-bar-row *,
[class*="ctrkr-"],
[class*="ctrkr-"] * {
  box-sizing: border-box;
}

/* ===== Composants partagés : checkmark, liens, boutons ===== */
.ctrkr-checkmark {
  width: 1.3em;
  height: 1.3em;
  min-width: 1.3em;
  min-height: 1.3em;
  max-width: 1.3em;
  max-height: 1.3em;
  line-height: 1.3em;
  font-size: 0.85em;
  margin-right: 0.5em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  box-sizing: border-box;
  position: relative;
  border-radius: 50%;
  background: transparent;
  border: 2px solid var(--ctrkr-checkmark-border, #27ae60);
  color: var(--ctrkr-checkmark-border, #27ae60);
  text-align: center;
  transition: background 0.2s, color 0.2s, border 0.2s;
  font-family: inherit, Arial, sans-serif;
}

/* État terminé */
.ctrkr-checkmark-done,
.ctrkr-nav .ctrkr-done .ctrkr-checkmark,
.ctrkr-complete-indicator {
  background: var(--ctrkr-checkmark-color) !important;
  color: #fff !important;
  border: 2px solid var(--ctrkr-checkmark-border, var(--ctrkr-checkmark-color)) !important;
}

/* SVG icons */
.ctrkr-checkmark svg {
  width: 1em;
  height: 1em;
  display: block;
  margin: 0;
}
.ctrkr-checkmark-done svg,
.ctrkr-nav .ctrkr-done .ctrkr-checkmark svg {
  stroke: #fff;
  stroke-width: 2.5;
  fill: none;
}
.ctrkr-checkmark:not(.ctrkr-checkmark-done) svg,
.ctrkr-checkmark:not(.ctrkr-nav .ctrkr-done .ctrkr-checkmark) svg {
  stroke: var(--ctrkr-checkmark-border, #27ae60);
  stroke-width: 2.5;
  fill: none;
}

/* Liens de leçons */
.ctrkr-lesson-link {
  color: var(--ctrkr-nav-link-color, #1a71d2);
  font-size: 1.13em;
  font-weight: 500;
  text-decoration: none;
}
.ctrkr-lesson-link:hover { 
  text-decoration: underline; 
}

/* ===== Styles des boutons ===== */
.ctrkr-demo-btn,
.ctrkr-nav .button,
.ctrkr-nav button,
.ctrkr-nav .button-primary,
.button.ctrkr-complete-btn,
.button.ctrkr-continue-btn {
  background-color: var(--ctrkr-button-bg) !important;
  color: var(--ctrkr-button-text) !important;
  border: none !important;
  font-size: 1em !important;
  padding: var(--ctrkr-button-padding) !important;
  border-radius: var(--ctrkr-button-radius) !important;
  transition: background 0.18s, box-shadow 0.18s;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
  cursor: pointer;
}
.ctrkr-demo-btn:hover,
.ctrkr-nav .button:hover,
.ctrkr-nav button:hover,
.ctrkr-nav .button-primary:hover,
.button.ctrkr-complete-btn:hover,
.button.ctrkr-continue-btn:hover {
  background-color: color-mix(in srgb, var(--ctrkr-button-bg) 85%, #000 15%) !important;
}
.button.button-primary.ctrkr-complete-btn,
.button.button-primary.ctrkr-continue-btn {
  font-size: 1em !important;
}

/* ===== Sticky Bar ===== */
#ctrkr-sticky-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  /* FIX 3 : Z-index réduit pour ne pas bloquer les menus mobiles */
  z-index: 9990;
  padding: 10px 0;
  text-align: center;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.07);
}
#ctrkr-sticky-bar .button,
#ctrkr-sticky-bar .button.ctrkr-complete-btn {
  margin: 0 auto;
  display: inline-block;
}

/* ===== Navigation du cours ===== */
.ctrkr-nav {
  list-style: none;
  padding: var(--ctrkr-nav-padding-top, 1.8em) 0 0 0;
  margin: 0 0 1.2em 0;
  background: var(--ctrkr-menu-background, transparent);
  font-family: inherit, sans-serif;
  color: #222;
  font-size: var(--ctrkr-nav-font-size, 1em);
  text-align: left;
}

/* Items de liste */
.ctrkr-nav li:not(.ctrkr-parent-item) {
  display: flex;
  align-items: center;
  margin-bottom: calc(var(--ctrkr-nav-line-height, 1.6) * 0.35rem);
  font-family: inherit, sans-serif;
  font-size: var(--ctrkr-nav-font-size, 1em);
  font-weight: 500;
}

/* Titres de modules/parents */
.ctrkr-parent-item > strong > a {
  font-weight: bold;
  color: var(--ctrkr-nav-link-color, #156e3c);
  background: transparent;
  pointer-events: auto;
  text-align: left;
  font-family: inherit, sans-serif;
  font-size: var(--ctrkr-heading-font-size, 1.15em) !important;
  display: block;
  margin-bottom: var(--ctrkr-nav-parent-margin-bottom, 0.7em);
}
.ctrkr-parent-item > .ctrkr-checkmark { 
  display: none; 
}

/* Pas d'indentation par défaut */
.ctrkr-nav .ctrkr-parent-item > ul {
  margin-left: 0 !important;
  padding-left: 0 !important;
  border-left: 0 !important;
  padding-top: 0 !important;
}

/* Item actuel */
.ctrkr-nav .ctrkr-current > a,
.ctrkr-nav .ctrkr-current > strong > a {
  position: relative;
  color: var(--ctrkr-nav-active-color, inherit) !important;
  text-decoration: none !important;
  font-weight: bold;
}
.ctrkr-nav .ctrkr-current > a::after,
.ctrkr-nav .ctrkr-current > strong > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 2px;
  z-index: 2;
  display: block;
}

/* Sections et coming-soon */
.ctrkr-section > .ctrkr-label {
  font-weight: 700;
  font-size: var(--ctrkr-heading-font-size, calc(var(--ctrkr-nav-font-size, 1em) * 1.1));
  color: #222;
  display: block;
  margin: 1em 0 0.4em 0;
  letter-spacing: 0.01em;
  text-align: left;
}
.ctrkr-coming-soon > .ctrkr-label {
  opacity: 0.6;
  color: #888;
  font-style: italic;
  cursor: not-allowed;
  background: transparent;
  padding-left: 2em;
  display: block;
}

/* Liens */
.ctrkr-nav a,
.ctrkr-lesson-link {
  text-decoration: none;
  color: var(--ctrkr-nav-link-color);
  padding: 0;
  border-radius: 3px;
  transition: background 0.15s, color 0.15s;
  background: transparent;
  font-family: inherit, sans-serif;
  font-size: var(--ctrkr-nav-font-size, 1em);
  font-weight: 500;
  display: block;
  line-height: var(--ctrkr-nav-line-height, 1.6);
  margin: 0;
  padding-top: 0.15rem;
  padding-bottom: 0.15rem;
}
.ctrkr-nav a:hover,
.ctrkr-nav a:focus,
.ctrkr-lesson-link:hover,
.ctrkr-lesson-link:focus {
  color: var(--ctrkr-nav-link-hover);
  background: rgba(0,0,0,0.02);
  outline: none;
}

/* ===== Course Outline / Vue d'ensemble ===== */
.ctrkr-course-outline { 
  width: 100%; 
}
.ctrkr-course-outline-inner {
  border: 1px solid #ececec;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  width: 100%;
  margin: 24px 0 0 0;
}
.ctrkr-progress-bar-row {
  width: 100%;
  padding: 24px 24px 0 24px;
  box-sizing: border-box;
}
.ctrkr-progress-bar-label {
  font-weight: 500;
  font-size: 1.07em;
  color: #333;
  margin-bottom: 7px;
  display: block;
}
.ctrkr-progress-bar-outer {
  width: 100%;
  height: 18px;
  background: #eef2ea;
  border-radius: 9px;
  overflow: hidden;
}
.ctrkr-progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #31b237 70%, #67d95b 100%);
  border-radius: 9px;
  width: 0;
  transition: width 0.8s cubic-bezier(.77,0,.18,1);
}
.ctrkr-progress-bar-text {
  font-size: 0.97em;
  color: #333;
  margin-top: 5px;
  font-weight: 400;
  text-align: right;
}
.ctrkr-module-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  border-bottom: 1px solid #eee;
  background: #fafbfd;
  padding: 20px 0 12px 0;
}
.ctrkr-module-title,
.ctrkr-module-count {
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}
.ctrkr-module-title {
  font-weight: 700;
  font-size: var(--ctrkr-heading-font-size, 1.25em);
}
.ctrkr-module-count {
  font-size: 1.05em;
  color: #757575;
  font-weight: normal;
  text-align: right;
  margin-left: auto;
}

/* FIX 4 : S'assurer qu'il n'y a pas de bullets */
.ctrkr-course-outline .ctrkr-lesson-list,
.ctrkr-course-outline .ctrkr-lesson-list li {
  list-style: none !important;
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
.ctrkr-lesson-list {
  padding-left: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

/* Lignes de leçons */
.ctrkr-lesson {
  display: flex;
  align-items: center;
  padding: 18px 24px;
  border-bottom: 1px solid #eee;
  text-align: left;
  list-style: none !important;
}

.ctrkr-lesson .ctrkr-checkmark {
  width: 1.6em;
  height: 1.6em;
  border-radius: 50%;
  border: 2px solid var(--ctrkr-checkmark-border, #31b237);
  background: #fff;
  vertical-align: middle;
  box-sizing: border-box;
  margin-right: 12px;
  position: relative;
  transition: background 0.3s;
}
.ctrkr-checkmark-done {
  border-color: var(--ctrkr-checkmark-border, #31b237);
  background: var(--ctrkr-checkmark-color, #31b237) !important;
}

.ctrkr-checkmark svg {
  display: block;
  width: 1.1em;
  height: 1.1em;
}
.ctrkr-checkmark-done svg {
  stroke: #fff;
  stroke-width: 2.5;
  fill: none;
}
.ctrkr-checkmark:not(.ctrkr-checkmark-done) svg {
  stroke: var(--ctrkr-checkmark-border, #31b237);
  stroke-width: 2.5;
  fill: none;
}

/* ===== Texte de progression & flèches ===== */
.ctrkr-progress-text-arrows {
  display: flex;
  align-items: center;
  gap: 12px;
  width: auto;
}
.ctrkr-arrow-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 32px;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.18s;
  box-shadow: none;
  line-height: 1;
  outline: none;
}
.ctrkr-arrow-btn:focus,
.ctrkr-arrow-btn:hover {
  background: #f5f8fa;
}
.ctrkr-arrow-btn svg {
  display: block;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  vertical-align: middle;
  pointer-events: none;
}
.ctrkr-progress-text {
  font-size: 1.13em;
  font-weight: 500;
  display: block;
  line-height: 1.2;
  margin: 0;
  padding: 0;
}

/* ===== Admin accordions ===== */
.ctrkr-accordion { 
  cursor: pointer; 
  padding: 12px 18px; 
  width: 100%; 
  text-align: left; 
  border: none; 
  outline: none; 
  background: #f3f3f3; 
  margin-bottom: 0; 
  font-size: 1.1em; 
}
.ctrkr-accordion.active, 
.ctrkr-accordion:hover { 
  background: #e2e2e2; 
}
.ctrkr-panel { 
  display: none; 
  padding: 0 18px; 
  background: #fff; 
  border: 1px solid #ddd; 
  border-top: none; 
  margin-bottom: 18px; 
}
.ctrkr-panel.open { 
  display: block; 
}

/* ===== FIX 5 : Protection des menus mobiles (tous thèmes) ===== */
@media (max-width: 899px) {
  /* S'assurer que les éléments du plugin ne bloquent JAMAIS les menus mobiles */
  .mobile-menu,
  .mobile-navigation,
  #mobile-menu,
  .nav-mobile,
  button[aria-controls*="mobile"],
  button[aria-controls*="navigation"],
  .menu-toggle,
  .hamburger,
  [class*="mobile-toggle"],
  [class*="nav-toggle"],
  
  /* OceanWP spécifique */
  #site-header,
  .mobile-menu-icon,
  .oceanwp-mobile-menu-icon,
  a.mobile-menu,
  #mobile-dropdown,
  #mobile-fullscreen,
  #sidr-main,
  #sidr,
  .sidr,
  #sidr-close,
  
  /* Autres thèmes populaires */
  .responsive-menu-icon,
  #responsive-menu-button,
  .et_mobile_menu,
  #et-top-navigation,
  .mobile-menu-wrapper {
    position: relative !important;
    z-index: 99999 !important;
    pointer-events: auto !important;
  }
}

/* ===== Responsive adjustments ===== */
@media (max-width: 600px) {
  .ctrkr-course-title {
    padding: 0.85em 0.6em 0.5em 0.6em;
    font-size: var(--ctrkr-heading-font-size, 1em);
  }
  .ctrkr-section > .ctrkr-label {
    margin: 0.6em 0 0.3em 0;
    font-size: var(--ctrkr-heading-font-size, 1em);
  }
  .ctrkr-nav a,
  .ctrkr-lesson-link {
    padding: 0.22em 0.07em;
  }
  .ctrkr-course-outline-inner {
    border-radius: 10px;
    margin: 14px 0 0 0;
  }
  .ctrkr-progress-bar-row {
    padding: 16px 10px 0 10px;
  }
  .ctrkr-module-title-row {
    flex-direction: column;
    align-items: flex-start;
    padding: 16px 0 8px 0;
  }
  .ctrkr-module-title,
  .ctrkr-module-count {
    padding-left: 12px;
    padding-right: 12px;
  }
  .ctrkr-module-count {
    margin: 0 0 4px 0;
    align-self: flex-start;
    text-align: left;
  }
  .ctrkr-lesson {
    padding: 13px 12px;
  }
  .ctrkr-progress-text-arrows {
    gap: 6px;
  }
  .ctrkr-arrow-btn {
    width: 32px;
    height: 28px;
  }
  .ctrkr-arrow-btn svg {
    width: 18px;
    height: 18px;
  }
  .ctrkr-progress-text {
    font-size: 1em;
  }
}