.local-catcoursesui-groups { margin-top: 16px; }
.local-catcoursesui-toolbar { display:flex; align-items:center; gap:10px; margin: 0 0 18px 0; width:100%; }
.local-catcoursesui-toolbar .local-catcoursesui-all { flex:0 0 76px; }
.local-catcoursesui-toolbar .local-catcoursesui-search { flex:1 1 auto; min-width:220px; }
.local-catcoursesui-toolbar .local-catcoursesui-sort { flex:0 0 230px; }
.local-catcoursesui-toolbar .local-catcoursesui-filter { flex:0 0 230px; }
.local-catcoursesui-toolbar .local-catcoursesui-view { flex:0 0 100px; }
.local-catcoursesui-section { border: 1px solid rgba(15,91,187,.18); border-radius: 12px; margin: 0 0 22px 0; background: #fff; overflow: hidden; }
.local-catcoursesui-header { display:flex; align-items:center; gap:14px; min-height:58px; padding: 10px 16px; color:#fff; font-weight:700; font-size:1.35rem; cursor:pointer; user-select:none; box-shadow: inset 0 -1px 0 rgba(255,255,255,.15); }
.local-catcoursesui-icon { width:40px; height:40px; border-radius:50%; background:#fff; color:var(--catcolor,#0f5bbb); display:flex; align-items:center; justify-content:center; flex:0 0 40px; overflow:hidden; font-size:1.15rem; }
.local-catcoursesui-iconimg { width:28px; height:28px; object-fit:contain; display:block; }
.local-catcoursesui-title { flex: 1 1 auto; }
.local-catcoursesui-count { background:#fff; color:var(--catcolor,#0f5bbb); border-radius:999px; padding:3px 12px; font-size:.9rem; font-weight:800; }
.local-catcoursesui-chevron { font-size:1.5rem; line-height:1; opacity:.95; }
.local-catcoursesui-cards { padding: 16px; }
.local-catcoursesui-cards-cards { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.local-catcoursesui-cards-list, .local-catcoursesui-cards-summary { display:block; padding: 0 16px 16px; margin: 0; }
.local-catcoursesui-section.is-collapsed .local-catcoursesui-cards { display:none; }
.local-catcoursesui-section.is-collapsed { border:0; }
.local-catcoursesui-section.is-collapsed .local-catcoursesui-header { border-radius: 12px; }
.local-catcoursesui-cards > .dashboard-card, .local-catcoursesui-cards > .card, .local-catcoursesui-cards > [data-region="course-content"] { width: auto !important; max-width: none !important; margin: 0 !important; }
.local-catcoursesui-cards .dashboard-card { min-width:0 !important; }
.local-catcoursesui-help { text-align:center; color:#6a737b; margin: 18px 0 8px; font-size:.95rem; }
.local-catcoursesui-meta { border:1px solid #d9e1ea; background:#f8fbff; border-radius:10px; padding:16px; margin:18px 0; max-width: 480px; }
.local-catcoursesui-meta h4 { margin:0 0 12px; font-size:1rem; }
.local-catcoursesui-meta .form-row { margin-bottom:12px; display:block; }
.local-catcoursesui-meta label { display:block; font-weight:600; margin-bottom:5px; }
.local-catcoursesui-meta input[type=color] { max-width:120px; padding:2px; }
.local-catcoursesui-preview { margin-top:8px; color:#6a737b; font-size:.9rem; }
.local-catcoursesui-preview img { max-width:48px; max-height:48px; object-fit:contain; padding:6px; border:1px solid #d9e1ea; border-radius:8px; background:#fff; }
@media (max-width: 1000px) { .local-catcoursesui-cards-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .local-catcoursesui-toolbar{flex-wrap:wrap;} .local-catcoursesui-toolbar .local-catcoursesui-search{flex-basis: calc(100% - 90px);} }
@media (max-width: 650px) { .local-catcoursesui-cards-cards { grid-template-columns: 1fr; } .local-catcoursesui-header{font-size:1.05rem;} .local-catcoursesui-toolbar > *{flex:1 1 100% !important;} }
.local-catcoursesui-nativebar .local-catcoursesui-filter { max-width: 230px; margin-left: 8px; }
.local-catcoursesui-root { width: 100% !important; }

/* v13 stability fixes */
.local-catcoursesui-root { display: block !important; width: 100% !important; max-width: 100% !important; }
.local-catcoursesui-root > .local-catcoursesui-groups { display: block !important; width: 100% !important; max-width: 100% !important; }
.local-catcoursesui-groups { display: block !important; width: 100% !important; }
.local-catcoursesui-section { width: 100% !important; box-sizing: border-box; }
.local-catcoursesui-section.is-collapsed { border: 1px solid rgba(15,91,187,.18) !important; background: transparent; }
.local-catcoursesui-section.is-collapsed .local-catcoursesui-header { width: 100%; box-sizing: border-box; }
.local-catcoursesui-nativebar { display: flex !important; align-items: center !important; gap: 10px !important; flex-wrap: nowrap !important; }
.local-catcoursesui-nativebar input[type="search"], .local-catcoursesui-nativebar input[placeholder*="Rechercher"] { flex: 1 1 auto !important; min-width: 200px !important; }
.local-catcoursesui-nativebar .local-catcoursesui-filter { flex: 0 0 230px !important; max-width: 230px !important; margin-left: 0 !important; }
@media (max-width: 900px){ .local-catcoursesui-nativebar { flex-wrap: wrap !important; } }


/* v14 fixes: keep collapsed category bars full-width inside Moodle/Boost card grids */
.local-catcoursesui-groups {
  grid-column: 1 / -1 !important;
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  clear: both !important;
}
.local-catcoursesui-root,
.local-catcoursesui-root .card-deck,
.local-catcoursesui-root .dashboard-card-deck {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}
.local-catcoursesui-section.is-collapsed,
.local-catcoursesui-section.is-collapsed .local-catcoursesui-header {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
}
.local-catcoursesui-section.is-collapsed .local-catcoursesui-title { white-space: nowrap; }


/* v15: keep Moodle native Liste/Résumé layout inside category groups */
.local-catcoursesui-cards-list > .course-listitem,
.local-catcoursesui-cards-summary > .course-listitem,
.local-catcoursesui-cards-summary > .course-summaryitem {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}
.local-catcoursesui-cards-list .list-image,
.local-catcoursesui-cards-summary .summary-image {
  min-height: 80px;
}
.local-catcoursesui-section-list .local-catcoursesui-cards,
.local-catcoursesui-section-summary .local-catcoursesui-cards {
  background: #fff;
}
.local-catcoursesui-section-list .local-catcoursesui-cards > :last-child,
.local-catcoursesui-section-summary .local-catcoursesui-cards > :last-child {
  border-bottom: 0 !important;
}

/* v26: cartes de cours modernes + survol type Netflix */
.local-catcoursesui-cards-cards > .dashboard-card.local-catcoursesui-coursecard,
.local-catcoursesui-cards-cards > .local-catcoursesui-coursecard {
  position: relative !important;
  overflow: hidden !important;
  min-height: 0 !important;
  border: 1px solid rgba(15, 23, 42, .12) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .08) !important;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
  cursor: pointer !important;
}
.local-catcoursesui-coursecard:hover,
.local-catcoursesui-coursecard:focus-within {
  transform: translateY(-3px) !important;
  box-shadow: 0 18px 36px rgba(15, 23, 42, .18) !important;
  border-color: rgba(15, 23, 42, .2) !important;
}
.local-catcoursesui-cardclick { position: relative; display: block; min-height: 300px; color: #0f172a; }
.local-catcoursesui-cardimage {
  height: 112px;
  background: linear-gradient(135deg, var(--coursecolor, #0f5bbb), #f8fbff);
  background-size: cover;
  background-position: center;
  border-radius: 13px 13px 0 0;
}
.local-catcoursesui-carddefault { padding: 14px 16px 48px; background:#fff; }
.local-catcoursesui-cardtitle {
  color:#075cc5;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.25;
  min-height: 2.55em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.local-catcoursesui-cardcat { margin-top: 6px; color:#1f2937; font-size:.98rem; }
.local-catcoursesui-cardinfo,
.local-catcoursesui-hoverinfo {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top: 18px;
  color:#334155;
  font-size:.9rem;
}
.local-catcoursesui-progress {
  height: 7px;
  margin-top: 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .12);
  overflow: hidden;
}
.local-catcoursesui-progress span { display:block; height:100%; width:0; border-radius:999px; background: var(--coursecolor, #0f5bbb); transition: width .25s ease; }
.local-catcoursesui-cardhover {
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition: opacity .22s ease;
  background: linear-gradient(180deg, rgba(15,23,42,.08) 0%, rgba(2,13,27,.78) 44%, rgba(2,13,27,.96) 100%);
  color:#fff;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-cardhover,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-cardhover { opacity:1; pointer-events:auto; }
.local-catcoursesui-hovercontent { position:absolute; left:16px; right:16px; bottom:18px; }
.local-catcoursesui-hovertitle { font-size:1.08rem; font-weight:800; line-height:1.22; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.local-catcoursesui-hovercat { margin-top:4px; opacity:.92; font-size:.95rem; }
.local-catcoursesui-hoverinfo { color:rgba(255,255,255,.92); justify-content:flex-start; margin-top:14px; }
.local-catcoursesui-progress-hover { background: rgba(255,255,255,.22); }
.local-catcoursesui-action {
  margin-top: 16px;
  border:0;
  border-radius: 10px;
  padding: 10px 17px;
  background: var(--coursecolor, #0f5bbb);
  color:#fff;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(0,0,0,.22);
}
.local-catcoursesui-action:hover,
.local-catcoursesui-action:focus { filter: brightness(.97); color:#fff; }
.local-catcoursesui-actionmenu { position:absolute; right:10px; bottom:10px; z-index:4; }
.local-catcoursesui-actionmenu .dropdown-toggle,
.local-catcoursesui-menu {
  width:36px;
  height:36px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  color:#0f172a;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-actionmenu .dropdown-toggle,
.local-catcoursesui-coursecard:hover .local-catcoursesui-menu { background:rgba(15,23,42,.38); color:#fff; }
.local-catcoursesui-actionmenu .dropdown-menu { cursor: default; }
@media (max-width: 650px) { .local-catcoursesui-cardclick { min-height: 285px; } .local-catcoursesui-cardimage { height: 105px; } }

/* v27: ajustements carte mix proposition 1 + hover Netflix */
.local-catcoursesui-cardtitle {
  color: #06203b !important;
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  min-height: 2.5em !important;
}
.local-catcoursesui-cardcat {
  color: #334155 !important;
}
.local-catcoursesui-cardinfo,
.local-catcoursesui-hoverinfo {
  justify-content: flex-start !important;
  gap: 28px !important;
  color: #06203b !important;
  font-size: .95rem !important;
}
.local-catcoursesui-cardinfo span,
.local-catcoursesui-hoverinfo span {
  white-space: nowrap;
}
.local-catcoursesui-carddefault {
  padding-bottom: 32px !important;
}
.local-catcoursesui-cardhover {
  top: 112px !important;
  background: linear-gradient(180deg, rgba(6,32,59,.86) 0%, rgba(2,13,27,.97) 100%) !important;
  border-radius: 0 0 13px 13px !important;
}
.local-catcoursesui-hovercontent {
  position: static !important;
  padding: 14px 16px 16px !important;
}
.local-catcoursesui-hovertitle {
  font-size: 1.02rem !important;
  font-weight: 750 !important;
  min-height: 2.45em;
}
.local-catcoursesui-hovercat {
  margin-top: 3px !important;
}
.local-catcoursesui-hoverinfo {
  color: rgba(255,255,255,.94) !important;
  margin-top: 12px !important;
  gap: 18px !important;
}
.local-catcoursesui-actionmenu {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .18s ease !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-actionmenu,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-actionmenu {
  opacity: 1 !important;
  pointer-events: auto !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-cardimage,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-cardimage {
  filter: none !important;
}
.local-catcoursesui-action {
  background: var(--coursecolor, #0f5bbb) !important;
  min-width: 150px;
}
@media (max-width: 650px) {
  .local-catcoursesui-cardhover { top: 105px !important; }
}

/* v28: corrections finales carte mixte proposition 1 + Netflix */
.local-catcoursesui-cardtitle {
  color: #06203b !important;
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  min-height: auto !important;
  margin-bottom: 4px !important;
}
.local-catcoursesui-cardclick { min-height: 292px !important; }
.local-catcoursesui-carddefault { padding: 14px 16px 34px !important; }
.local-catcoursesui-cardinfo,
.local-catcoursesui-hoverinfo {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  margin-top: 26px !important;
  color: #06203b !important;
  font-size: .95rem !important;
  font-weight: 500 !important;
}
.local-catcoursesui-cardinfo [data-local-catcoursesui-objectives],
.local-catcoursesui-hoverinfo [data-local-catcoursesui-objectives] { margin-right: 28px !important; }
.local-catcoursesui-ico {
  width: 20px !important;
  height: 20px !important;
  display: inline-block !important;
  flex: 0 0 20px !important;
  background-color: currentColor !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
}
.local-catcoursesui-ico-target {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v4M22 12h-4M12 22v-4M2 12h4'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v4M22 12h-4M12 22v-4M2 12h4'/%3E%3C/svg%3E") !important;
}
.local-catcoursesui-ico-clock {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") !important;
}
.local-catcoursesui-progressrow {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  margin-top: 14px !important;
}
.local-catcoursesui-progressrow .local-catcoursesui-progress {
  flex: 1 1 auto !important;
  margin-top: 0 !important;
}
.local-catcoursesui-percent {
  flex: 0 0 auto !important;
  min-width: 42px !important;
  text-align: right !important;
  color: #06203b !important;
  font-weight: 700 !important;
}
.local-catcoursesui-cardhover {
  inset: 0 !important;
  top: 0 !important;
  border-radius: 13px !important;
  background: linear-gradient(180deg, rgba(6,32,59,0) 0%, rgba(6,32,59,.08) 30%, rgba(6,32,59,.72) 56%, rgba(2,13,27,.96) 100%) !important;
  color: #fff !important;
}
.local-catcoursesui-hovercontent {
  position: absolute !important;
  left: 16px !important;
  right: 16px !important;
  bottom: 14px !important;
  padding: 0 !important;
}
.local-catcoursesui-hovertitle {
  color: #fff !important;
  text-shadow: 0 2px 5px rgba(0,0,0,.35) !important;
  font-size: 1.02rem !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  min-height: auto !important;
  -webkit-line-clamp: 2 !important;
}
.local-catcoursesui-hovercat { color: rgba(255,255,255,.96) !important; }
.local-catcoursesui-hoverinfo {
  color: #fff !important;
  margin-top: 14px !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.25) !important;
}
.local-catcoursesui-progressrow-hover .local-catcoursesui-percent { color: #fff !important; }
.local-catcoursesui-progress-hover { background: rgba(255,255,255,.28) !important; }
.local-catcoursesui-action {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin-top: 16px !important;
  min-height: 42px !important;
  padding: 10px 18px !important;
  border-radius: 10px !important;
  line-height: 1 !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  background: var(--coursecolor, #0f5bbb) !important;
  color: #fff !important;
}
.local-catcoursesui-play {
  width: 0 !important;
  height: 0 !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 11px solid currentColor !important;
}
.local-catcoursesui-favorite {
  position: absolute !important;
  right: 58px !important;
  bottom: 14px !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(15,23,42,.34) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.25rem !important;
  z-index: 5 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .18s ease !important;
}
.local-catcoursesui-actionmenu {
  right: 12px !important;
  bottom: 14px !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-favorite,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-favorite,
.local-catcoursesui-coursecard:hover .local-catcoursesui-actionmenu,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-actionmenu {
  opacity: 1 !important;
  pointer-events: auto !important;
}
.local-catcoursesui-actionmenu .dropdown-toggle,
.local-catcoursesui-menu {
  background: rgba(15,23,42,.34) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.22) !important;
}
.local-catcoursesui-coursecard:not(:hover):not(:focus-within) .local-catcoursesui-actionmenu,
.local-catcoursesui-coursecard:not(:hover):not(:focus-within) .local-catcoursesui-favorite {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* v29: correction hover transparent, suppression superposition texte, actions hover */
.local-catcoursesui-coursecard:hover .local-catcoursesui-carddefault,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-carddefault {
  opacity: 0 !important;
  visibility: hidden !important;
}
.local-catcoursesui-carddefault {
  transition: opacity .16s ease, visibility .16s ease !important;
}
.local-catcoursesui-cardhover {
  background: linear-gradient(180deg,
    rgba(6,32,59,0) 0%,
    rgba(6,32,59,0) 34%,
    rgba(6,32,59,.42) 52%,
    rgba(6,32,59,.82) 68%,
    rgba(2,13,27,.97) 100%) !important;
}
.local-catcoursesui-hovercontent {
  bottom: 16px !important;
}
.local-catcoursesui-hovertitle {
  max-width: calc(100% - 10px) !important;
  overflow: hidden !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}
.local-catcoursesui-hoverinfo {
  margin-top: 12px !important;
}
.local-catcoursesui-progressrow-hover {
  margin-top: 12px !important;
}
.local-catcoursesui-action {
  margin-top: 14px !important;
  min-height: 44px !important;
  padding: 10px 20px !important;
  border-radius: 10px !important;
  box-sizing: border-box !important;
}
.local-catcoursesui-actionmenu,
.local-catcoursesui-favorite {
  width: 42px !important;
  height: 42px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  background: rgba(15,23,42,.34) !important;
  backdrop-filter: blur(3px) !important;
  color: #fff !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}
.local-catcoursesui-actionmenu {
  display: flex !important;
  right: 14px !important;
  bottom: 16px !important;
  z-index: 6 !important;
}
.local-catcoursesui-favorite {
  right: 66px !important;
  bottom: 16px !important;
  z-index: 6 !important;
}
.local-catcoursesui-actionmenu .dropdown,
.local-catcoursesui-actionmenu [data-region="course-action-menu"] {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.local-catcoursesui-actionmenu .dropdown-toggle,
.local-catcoursesui-actionmenu button:not(.dropdown-item),
.local-catcoursesui-menu {
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 1.35rem !important;
  line-height: 1 !important;
}
.local-catcoursesui-actionmenu .dropdown-toggle::after { display: none !important; }
.local-catcoursesui-favorite.is-active { background: var(--coursecolor, #0f5bbb) !important; }
.local-catcoursesui-coursecard:not(:hover):not(:focus-within) .local-catcoursesui-actionmenu,
.local-catcoursesui-coursecard:not(:hover):not(:focus-within) .local-catcoursesui-favorite {
  opacity: 0 !important;
  pointer-events: none !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-actionmenu,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-actionmenu,
.local-catcoursesui-coursecard:hover .local-catcoursesui-favorite,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-favorite {
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* v30: hover sans superposition + actions Moodle préservées */
.local-catcoursesui-coursecard {
  isolation: isolate !important;
}
.local-catcoursesui-carddefault {
  position: relative !important;
  z-index: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.local-catcoursesui-cardhover {
  z-index: 3 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-carddefault,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-carddefault {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-carddefault *,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-carddefault * {
  opacity: 0 !important;
  visibility: hidden !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-cardhover,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-cardhover {
  opacity: 1 !important;
  pointer-events: none !important;
}
.local-catcoursesui-action,
.local-catcoursesui-favorite,
.local-catcoursesui-actionmenu {
  pointer-events: auto !important;
}
.local-catcoursesui-actionmenu {
  overflow: visible !important;
  display: flex !important;
}
.local-catcoursesui-actionmenu .dropdown-menu {
  pointer-events: auto !important;
}
.local-catcoursesui-actionmenu .dropdown-toggle,
.local-catcoursesui-actionmenu button:not(.dropdown-item),
.local-catcoursesui-menu {
  font-size: 0 !important;
  position: relative !important;
}
.local-catcoursesui-actionmenu .dropdown-toggle::before,
.local-catcoursesui-actionmenu button:not(.dropdown-item)::before,
.local-catcoursesui-menu::before {
  content: '⋮' !important;
  font-size: 1.55rem !important;
  line-height: 1 !important;
  color: #fff !important;
  font-weight: 800 !important;
}
.local-catcoursesui-actionmenu .dropdown-toggle i,
.local-catcoursesui-actionmenu button:not(.dropdown-item) i,
.local-catcoursesui-actionmenu .icon {
  display: none !important;
}
.local-catcoursesui-favorite span {
  display: block !important;
  line-height: 1 !important;
}

/* v31: hover lisible + favori via webservice + menu rond */
.local-catcoursesui-hovercat {
  display: none !important;
}
.local-catcoursesui-hovercontent {
  bottom: 18px !important;
}
.local-catcoursesui-hovertitle {
  margin-bottom: 14px !important;
  max-width: calc(100% - 8px) !important;
  line-height: 1.18 !important;
}
.local-catcoursesui-hoverinfo {
  margin-top: 0 !important;
}
.local-catcoursesui-action {
  height: 44px !important;
  min-height: 44px !important;
  line-height: 1 !important;
}
.local-catcoursesui-favorite,
.local-catcoursesui-actionmenu {
  width: 44px !important;
  height: 44px !important;
}
.local-catcoursesui-actionmenu .dropdown,
.local-catcoursesui-actionmenu [data-region="course-action-menu"],
.local-catcoursesui-actionmenu .dropdown-toggle,
.local-catcoursesui-actionmenu button:not(.dropdown-item),
.local-catcoursesui-menu {
  width: 44px !important;
  height: 44px !important;
}
.local-catcoursesui-favorite[disabled] {
  opacity: .55 !important;
  cursor: wait !important;
}

/* v34: réserve davantage de hauteur pour l'image en vue normale */
.local-catcoursesui-cardimage {
  height: 132px !important;
}
.local-catcoursesui-cardclick {
  min-height: 312px !important;
}
@media (max-width: 650px) {
  .local-catcoursesui-cardimage { height: 124px !important; }
  .local-catcoursesui-cardclick { min-height: 304px !important; }
}


/* v41: dimensions fixes pour que le masque dégradé couvre toute la carte,
   même quand le titre tient sur une seule ligne. */
.local-catcoursesui-cards-cards > .dashboard-card.local-catcoursesui-coursecard,
.local-catcoursesui-cards-cards > .local-catcoursesui-coursecard {
  height: 332px !important;
  min-height: 332px !important;
  max-height: 332px !important;
}
.local-catcoursesui-cardclick {
  height: 100% !important;
  min-height: 332px !important;
}
.local-catcoursesui-carddefault {
  min-height: calc(332px - 132px) !important;
  box-sizing: border-box !important;
}
.local-catcoursesui-cardtitle {
  min-height: 2.5em !important;
}
.local-catcoursesui-cardhover {
  height: 100% !important;
  min-height: 332px !important;
}
.local-catcoursesui-hovertitle {
  min-height: 2.36em !important;
}
@media (max-width: 650px) {
  .local-catcoursesui-cards-cards > .dashboard-card.local-catcoursesui-coursecard,
  .local-catcoursesui-cards-cards > .local-catcoursesui-coursecard {
    height: 322px !important;
    min-height: 322px !important;
    max-height: 322px !important;
  }
  .local-catcoursesui-cardclick,
  .local-catcoursesui-cardhover {
    min-height: 322px !important;
  }
  .local-catcoursesui-carddefault {
    min-height: calc(322px - 124px) !important;
  }
}

/* v45 : bouton info + modale d'information cours */
.local-catcoursesui-info {
  position: absolute !important;
  top: 10px !important;
  right: 62px !important;
  z-index: 8 !important;
  width: 44px !important;
  height: 44px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.14) !important;
  color: var(--coursecolor, #7134b8) !important;
  font-weight: 900 !important;
  font-size: 20px !important;
  line-height: 1 !important;
}
.local-catcoursesui-info:hover { transform: translateY(-1px); }
body.local-catcoursesui-modalopen { overflow: hidden !important; }
.local-catcoursesui-infomodal { position: fixed; inset: 0; z-index: 10550; }
.local-catcoursesui-infobackdrop { position:absolute; inset:0; background:rgba(5,10,25,.55); backdrop-filter: blur(3px); }
.local-catcoursesui-infopanel { position:absolute; inset: 3.5vh 3.5vw; background:#fff; border-radius:22px; overflow:auto; box-shadow:0 28px 90px rgba(0,0,0,.35); color:#0f172a; }
.local-catcoursesui-infoclose { position:fixed; top:calc(3.5vh + 18px); right:calc(3.5vw + 18px); z-index:2; width:44px; height:44px; border:0; border-radius:999px; background:#fff; box-shadow:0 12px 30px rgba(15,23,42,.18); font-size:32px; line-height:1; }
.local-catcoursesui-infohero { min-height:320px; padding:54px 64px; background:linear-gradient(90deg,#020817,#1f1640); background-size:cover; background-position:center; color:#fff; }
.local-catcoursesui-infohero span { display:inline-block; padding:7px 15px; border-radius:999px; background:#6d3df3; font-weight:800; font-size:13px; }
.local-catcoursesui-infohero h2 { margin:18px 0 0; font-size:56px; line-height:1; font-weight:900; color:#fff; }
.local-catcoursesui-infohero h3 { margin:8px 0 18px; font-size:34px; font-weight:900; color:#fff; text-transform:uppercase; }
.local-catcoursesui-infohero p { max-width:560px; font-size:17px; line-height:1.55; }
.local-catcoursesui-infohero button { margin-top:18px; border:0; border-radius:10px; background:#6d3df3; color:#fff; padding:15px 22px; font-weight:800; }
.local-catcoursesui-infostats { display:grid; grid-template-columns:repeat(6,1fr); gap:0; margin:-22px 32px 18px; background:#fff; border-radius:16px; box-shadow:0 12px 32px rgba(15,23,42,.10); overflow:hidden; }
.local-catcoursesui-infostats > div { padding:22px 24px; border-right:1px solid #edf0f7; color:#6d3df3; font-size:28px; }
.local-catcoursesui-infostats small, .local-catcoursesui-infostats em { display:block; color:#667085; font-size:13px; font-style:normal; }
.local-catcoursesui-infostats strong { display:block; color:#0f172a; font-size:18px; margin-top:3px; }
.local-catcoursesui-infogrid { display:grid; grid-template-columns:1.08fr 1fr 1.12fr; gap:20px; padding:0 32px 18px; }
.local-catcoursesui-infocol { display:flex; flex-direction:column; gap:18px; }
.local-catcoursesui-infopanel section { background:#fff; border:1px solid #edf0f7; border-radius:16px; box-shadow:0 10px 24px rgba(15,23,42,.06); padding:22px 26px; }
.local-catcoursesui-infopanel h4 { margin:0 0 16px; font-size:18px; font-weight:900; color:#101828; }
.local-catcoursesui-infopanel p, .local-catcoursesui-infopanel li { font-size:14px; line-height:1.55; }
.local-catcoursesui-infopanel ul { margin:0; padding-left:0; list-style:none; }
.local-catcoursesui-infopanel ul li { position:relative; padding-left:28px; margin:9px 0; }
.local-catcoursesui-infopanel ul li:before { content:'✓'; position:absolute; left:0; top:1px; width:18px; height:18px; border-radius:50%; background:#6d3df3; color:#fff; text-align:center; font-size:12px; line-height:18px; font-weight:900; }
.local-catcoursesui-path ol { margin:0; padding:0 0 0 12px; list-style:none; border-left:3px solid #7a4cf4; }
.local-catcoursesui-path li { display:flex; align-items:center; gap:14px; margin:16px 0; }
.local-catcoursesui-path li span { width:32px; height:32px; margin-left:-29px; border-radius:50%; background:#6d3df3; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:900; }
.local-catcoursesui-person { display:flex; align-items:center; gap:16px; margin:12px 0; }
.local-catcoursesui-avatar { width:62px; height:62px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#eef0f6; font-size:28px; flex:0 0 auto; }
.local-catcoursesui-similars { margin:0 32px 28px; }
.local-catcoursesui-similars > div { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.local-catcoursesui-modal-similar { min-height:78px; display:flex; align-items:center; gap:12px; border:1px solid #edf0f7; border-radius:14px; padding:12px; box-shadow:0 8px 18px rgba(15,23,42,.05); }
.local-catcoursesui-modal-num { width:38px; height:38px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; flex:0 0 auto; }
.local-catcoursesui-modal-similar strong { display:block; font-size:15px; }
.local-catcoursesui-modal-similar small { display:block; color:#344054; }
.local-catcoursesui-modal-simimg { width:60px; height:45px; background-size:cover; background-position:center; margin-left:auto; border-radius:8px; }
.local-catcoursesui-meta textarea.form-control { min-height:82px; }
@media (max-width: 1100px) {
  .local-catcoursesui-infostats { grid-template-columns:repeat(3,1fr); }
  .local-catcoursesui-infogrid { grid-template-columns:1fr; }
  .local-catcoursesui-similars > div { grid-template-columns:1fr 1fr; }
}
@media (max-width: 700px) {
  .local-catcoursesui-infopanel { inset:0; border-radius:0; }
  .local-catcoursesui-infohero { padding:38px 24px; }
  .local-catcoursesui-infohero h2 { font-size:42px; }
  .local-catcoursesui-infostats { grid-template-columns:1fr 1fr; margin:0; border-radius:0; }
  .local-catcoursesui-infogrid, .local-catcoursesui-similars { padding:16px; margin:0; }
  .local-catcoursesui-similars > div { grid-template-columns:1fr; }
}

/* v47 : bouton information aligné avec les actions + modale aux couleurs du cours */
.local-catcoursesui-info {
  top: auto !important;
  right: 118px !important;
  bottom: 16px !important;
  z-index: 6 !important;
  width: 44px !important;
  height: 44px !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 999px !important;
  background: rgba(15,23,42,.34) !important;
  backdrop-filter: blur(3px) !important;
  box-shadow: none !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 900 !important;
  font-size: 20px !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  pointer-events: auto !important;
}
.local-catcoursesui-coursecard:not(:hover):not(:focus-within) .local-catcoursesui-info {
  opacity: 0 !important;
  pointer-events: none !important;
}
.local-catcoursesui-coursecard:hover .local-catcoursesui-info,
.local-catcoursesui-coursecard:focus-within .local-catcoursesui-info {
  opacity: 1 !important;
  pointer-events: auto !important;
}
.local-catcoursesui-infohero span,
.local-catcoursesui-infohero button,
.local-catcoursesui-infopanel ul li:before,
.local-catcoursesui-path li span {
  background: var(--coursecolor, #6d3df3) !important;
}
.local-catcoursesui-infostats > div,
.local-catcoursesui-infopanel h4,
.local-catcoursesui-path ol {
  color: var(--coursecolor, #6d3df3) !important;
  border-color: rgba(var(--coursecolor-rgb, 109,61,243), .55) !important;
}
.local-catcoursesui-infostats {
  box-shadow: 0 12px 32px rgba(var(--coursecolor-rgb, 109,61,243), .12) !important;
}
.local-catcoursesui-role {
  display:inline-block;
  margin-left:10px;
  padding:3px 8px;
  border-radius:999px;
  background: rgba(var(--coursecolor-rgb, 109,61,243), .12);
  color: var(--coursecolor, #6d3df3);
  font-size:12px;
  font-weight:800;
}
.local-catcoursesui-avatar[style*="background-image"] {
  background-size: cover !important;
  background-position: center !important;
  background-color: #eef0f6 !important;
}
.local-catcoursesui-modal-similar {
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.local-catcoursesui-modal-similar:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 26px rgba(15,23,42,.10);
}


/* v48 : section Modale d'information dans les paramètres du cours */
.local-catcoursesui-meta {
  border: 1px solid #dfe4ef;
  border-radius: 12px;
  padding: 0;
  margin: 24px 0;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15,23,42,.05);
}
.local-catcoursesui-meta legend {
  width: 100%;
  padding: 14px 18px;
  margin: 0;
  border-bottom: 1px solid #edf0f7;
  font-size: 1rem;
  font-weight: 700;
}
.local-catcoursesui-meta-inner { padding: 18px; }
.local-catcoursesui-meta h4 { margin: 0 0 16px; font-weight: 800; }
.local-catcoursesui-formrow {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  margin-bottom: 14px;
}
.local-catcoursesui-formrow > label { font-weight: 700; padding-top: 7px; }
.local-catcoursesui-field small { display: block; margin-top: 6px; color: #64748b; }
.local-catcoursesui-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
  padding: 10px;
  border: 1px solid #e5eaf3;
  border-radius: 10px;
  background: #fbfcff;
}
.local-catcoursesui-checklist-scroll {
  max-height: 220px;
  overflow: auto;
}
.local-catcoursesui-check {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin: 0;
  font-weight: 500;
}
.local-catcoursesui-check input { margin-top: 3px; }
@media (max-width: 760px) {
  .local-catcoursesui-formrow { grid-template-columns: 1fr; gap: 6px; }
  .local-catcoursesui-checklist { grid-template-columns: 1fr; }
}

/* v49 : section native "Carte d'information" dans les paramètres du cours */
.local-catcoursesui-meta {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}
.local-catcoursesui-meta legend {
  border-bottom: 1px solid #dfe4ea !important;
  padding: .75rem 0 !important;
}
.local-catcoursesui-meta-inner {
  padding: 1rem 0 !important;
}
.local-catcoursesui-imagepreview {
  margin-top: 8px;
  color: #64748b;
  font-size: .875rem;
}
.local-catcoursesui-imagepreview img {
  max-width: 260px;
  max-height: 120px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #dfe4ef;
  display: block;
}


/* v50 : vraie section Moodle séparée dans course/edit.php */
.local-catcoursesui-infocard-section {
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.local-catcoursesui-infocard-section > legend {
  width: 100%;
  margin: 0;
  padding: .75rem 0 !important;
  border-bottom: 1px solid #dfe4ea !important;
  font-size: inherit;
}
.local-catcoursesui-infocard-form {
  padding: 1rem 0 !important;
}
.local-catcoursesui-infocard-form .local-catcoursesui-formrow {
  margin-left: 0;
  margin-right: 0;
}

/* v51 : la section Modale d'information se comporte comme une section Moodle repliée,
   au-dessus des boutons Enregistrer/Annuler. */
.local-catcoursesui-infocard-section {
  border-bottom: 1px solid #dfe4ea !important;
  margin: 0 0 .75rem 0 !important;
}
.local-catcoursesui-infocard-section > legend.ftoggler {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-top: 1px solid #dfe4ea !important;
  border-bottom: 1px solid #dfe4ea !important;
}
.local-catcoursesui-infocard-section > legend.ftoggler .fheader {
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  width: 100% !important;
  text-align: left !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  min-height: 48px !important;
  padding: .5rem 0 !important;
  color: #1f2933 !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.local-catcoursesui-infocard-section > legend.ftoggler .fheader::before {
  content: '›';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 4px;
  background: #eef6ff;
  color: #0d6efd;
  font-size: 2rem;
  line-height: 1;
  transition: transform .15s ease;
}
.local-catcoursesui-infocard-section:not(.collapsed) > legend.ftoggler .fheader::before {
  transform: rotate(90deg);
}
.local-catcoursesui-infocard-section.collapsed .local-catcoursesui-infocard-form {
  display: none !important;
}
.local-catcoursesui-infocard-section .local-catcoursesui-infocard-form {
  padding: 1rem 0 1.25rem 0 !important;
}


/* v58 : ajustements modale demandés */
.local-catcoursesui-infohero .local-catcoursesui-categorytag {
  background: var(--categorycolor, #6d3df3) !important;
  color: #fff !important;
}
.local-catcoursesui-infopanel .local-catcoursesui-infogrid section > h4,
.local-catcoursesui-infopanel .local-catcoursesui-similars > h4,
.local-catcoursesui-infopanel h4 {
  color: #00000f !important;
}
.local-catcoursesui-introtext {
  max-width: 720px;
  margin: 14px 0 4px !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.local-catcoursesui-path li {
  position: relative;
  padding-right: 46px;
}
.local-catcoursesui-path li div small {
  display: block;
  margin-top: 3px;
  color: #667085;
  font-size: .82rem;
  font-weight: 500;
}
.local-catcoursesui-path li em {
  margin-left: auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2px solid #98a2b3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-style: normal;
  font-weight: 900;
  font-size: 14px;
  color: #fff;
  flex: 0 0 auto;
}
.local-catcoursesui-path li.local-catcoursesui-path-complete em {
  background: #12b8a6;
  border-color: #12b8a6;
}
.local-catcoursesui-path li.local-catcoursesui-path-current {
  background: rgba(var(--coursecolor-rgb, 109,61,243), .11);
  border-radius: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
}
.local-catcoursesui-path li.local-catcoursesui-path-current em {
  background: #fff;
  border-color: var(--coursecolor, #6d3df3);
  color: var(--coursecolor, #6d3df3);
}
.local-catcoursesui-path li.local-catcoursesui-path-todo span {
  background: #d8dee9 !important;
  color: #00000f !important;
}
