/* /public_html/assets/css/calendar/calendar-full.mobile.css
   Calendrier complet — mobile <= 719px, V49.5.1
*/

@media (max-width: 719px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-mobile-navbar-height: calc(env(safe-area-inset-top, 0px) + 3.55rem);
    --calendar-mobile-dock-height: 5.15rem;
    overflow-x: hidden;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel > .panel-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: var(--color-background, #020617) !important;
  }

  .calendar-modern-frame {
    display: grid !important;
    grid-template-rows: auto auto auto !important;
    min-height: 100svh;
    overflow: visible !important;
  }

  .calendar-modern-hero-host,
  .calendar-modern-dock-host {
    display: block !important;
  }

  .calendar-modern-hero__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: .72rem;
    min-height: 0;
    padding:
      calc(var(--calendar-mobile-navbar-height) + .45rem)
      .82rem
      .82rem;
  }

  .calendar-modern-hero__kicker {
    margin-bottom: .12rem;
    font-size: .61rem;
  }

  .calendar-modern-hero h1 {
    max-width: none;
    font-size: clamp(1.72rem, 9vw, 2.25rem);
    line-height: .96;
  }

  .calendar-modern-hero__description {
    display: -webkit-box;
    max-width: 100%;
    margin-top: .3rem;
    overflow: hidden;
    font-size: .75rem;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .calendar-modern-hero__stats {
    gap: .42rem;
  }

  .calendar-modern-stat {
    min-height: 3.65rem;
    padding: .56rem .52rem;
    border-radius: .82rem;
  }

  .calendar-modern-stat strong {
    font-size: clamp(1.12rem, 6vw, 1.42rem);
  }

  .calendar-modern-stat span {
    margin-top: .2rem;
    overflow: hidden;
    font-size: .58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .calendar-modern-dock {
    position: sticky !important;
    top: var(--calendar-mobile-navbar-height) !important;
    z-index: 40;
    min-height: var(--calendar-mobile-dock-height);
    box-shadow: 0 .85rem 1.8rem rgba(2,6,23,.28);
  }

  .calendar-modern-dock__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "month actions"
      "filters filters";
    gap: .38rem .48rem;
    min-height: var(--calendar-mobile-dock-height);
    padding: .4rem .62rem .46rem;
  }

  .calendar-modern-dock__month-nav {
    grid-area: month;
    min-width: 0;
  }

  .calendar-modern-dock__filters {
    grid-area: filters;
    gap: .38rem;
  }

  .calendar-modern-dock__actions {
    grid-area: actions;
    gap: .32rem;
  }

  .calendar-modern-dock__nav {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    border-radius: .68rem;
  }

  .calendar-modern-dock__month {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 9rem;
    min-height: 2rem;
    padding: 0 .65rem;
    overflow: hidden;
    border-radius: .68rem;
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .calendar-modern-dock__count {
    min-height: 1.86rem;
    padding: 0 .58rem;
    font-size: .66rem;
  }

  .calendar-modern-dock__chips {
    gap: .32rem;
  }

  .calendar-modern-chip {
    min-height: 1.86rem;
    padding: 0 .56rem;
    gap: .32rem;
    font-size: .65rem;
  }

  .calendar-modern-dock__action {
    display: inline-grid !important;
    place-items: center !important;
    width: 2rem !important;
    min-width: 2rem !important;
    height: 2rem !important;
    min-height: 2rem !important;
    padding: 0 !important;
    border-radius: .68rem !important;
  }

  .calendar-modern-dock__action .ui-btn__label,
  .calendar-modern-dock__action .ui-btn__label--full,
  .calendar-modern-dock__action .ui-btn__label--short,
  .calendar-modern-dock__action .btn-label,
  .calendar-modern-dock__action span:not(.ui-btn__icon) {
    display: none !important;
  }

  #calendar-full-body {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    padding: .55rem .58rem calc(env(safe-area-inset-bottom, 0px) + 1rem) !important;
    overflow: visible !important;
    background: var(--color-background, #020617);
  }

  .calendar-mobile-season-view {
    --calendar-mobile-season-weekdays-height: 3.9rem !important;
    display: block !important;
    min-height: 0 !important;
    padding: 0 0 calc(env(safe-area-inset-bottom, 0px) + 2rem) !important;
  }

  .calendar-mobile-season-sticky-head {
    position: sticky !important;
    top: calc(var(--calendar-mobile-navbar-height) + var(--calendar-mobile-dock-height)) !important;
    left: auto !important;
    right: auto !important;
    z-index: 34 !important;
    width: 100% !important;
    min-height: var(--calendar-mobile-season-weekdays-height) !important;
    margin: 0 !important;
    padding: .38rem .28rem .48rem !important;
    border-radius: 0 0 1rem 1rem;
    background: color-mix(in srgb, var(--color-background, #020617) 92%, transparent 8%);
    box-shadow: 0 .72rem 1.4rem rgba(2,6,23,.2);
    backdrop-filter: blur(20px) saturate(1.14);
    -webkit-backdrop-filter: blur(20px) saturate(1.14);
    pointer-events: none;
  }

  .calendar-mobile-season-sticky-head::before {
    inset: 0 !important;
    border-radius: inherit;
    background: linear-gradient(to bottom, rgba(2,6,23,.96), rgba(2,6,23,.78)) !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  .calendar-mobile-season-sticky-head::after {
    left: .35rem !important;
    right: .35rem !important;
    opacity: .42 !important;
  }

  .calendar-mobile-season-sticky-head__month {
    font-size: clamp(1.12rem, 5.8vw, 1.48rem) !important;
    line-height: 1 !important;
  }

  .calendar-mobile-season-sticky-head__weekdays {
    gap: .3rem !important;
    padding-inline: 0 !important;
  }

  .calendar-mobile-season-sticky-head__weekday {
    min-height: .8rem !important;
    font-size: .6rem !important;
  }

  .calendar-mobile-season-scroll {
    gap: 0 !important;
    padding-top: .46rem !important;
  }

  .calendar-mobile-season-month__inline-title {
    margin: .5rem .1rem .62rem !important;
    padding: 0 .08rem .48rem !important;
    font-size: clamp(1.02rem, 5.2vw, 1.35rem) !important;
    text-align: left !important;
  }

  .calendar-mobile-season-scroll .calendar-mobile-season-month + .calendar-mobile-season-month {
    margin-top: 2.2rem !important;
  }

  .calendar-mobile-season-scroll .calendar-mobile-season-month + .calendar-mobile-season-month .calendar-mobile-season-month__inline-title {
    margin-top: 0 !important;
  }

  .calendar-mobile-month-grid {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    grid-auto-rows: auto !important;
    gap: clamp(.28rem, 1.2vw, .42rem) !important;
    min-height: 0 !important;
    padding: .05rem !important;
  }

  .calendar-mobile-month-cell {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: .2rem !important;
    border: 1px solid color-mix(in srgb, var(--color-border-subtle) 72%, transparent 28%) !important;
    border-radius: .78rem !important;
    color: var(--color-text) !important;
    background:
      radial-gradient(circle at 25% 16%, rgba(255,255,255,.055), transparent 42%),
      color-mix(in srgb, var(--color-surface-soft) 78%, transparent 22%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
    transform: none !important;
    touch-action: manipulation;
  }

  .calendar-mobile-month-cell.has-items {
    border-color: color-mix(in srgb, #38bdf8 28%, var(--color-border-subtle) 72%) !important;
    cursor: pointer;
  }

  .calendar-mobile-month-cell:active:not([aria-disabled="true"]) {
    filter: brightness(1.08);
  }

  .calendar-mobile-month-cell.is-outside {
    opacity: .18 !important;
    pointer-events: none;
  }

  .calendar-mobile-month-cell.is-today {
    border-color: rgba(74,222,128,.72) !important;
    box-shadow: 0 0 0 1px rgba(74,222,128,.2), 0 0 1rem rgba(74,222,128,.16), inset 0 1px 0 rgba(255,255,255,.06) !important;
  }

  .calendar-mobile-month-cell.is-selected {
    border-color: rgba(56,189,248,.82) !important;
    background:
      radial-gradient(circle at 50% 35%, rgba(56,189,248,.2), transparent 65%),
      color-mix(in srgb, var(--color-surface-soft) 76%, #0c4a6e 24%) !important;
    box-shadow: 0 0 0 1px rgba(56,189,248,.24), 0 0 1.2rem rgba(56,189,248,.2), inset 0 1px 0 rgba(255,255,255,.08) !important;
  }

  .calendar-mobile-month-cell__day {
    position: relative !important;
    inset: auto !important;
    color: inherit !important;
    font-size: clamp(.72rem, 3.4vw, .88rem) !important;
    font-weight: 950 !important;
    line-height: 1 !important;
  }

  .calendar-mobile-month-cell__indicator {
    position: absolute !important;
    bottom: .25rem !important;
    display: block !important;
    width: .32rem !important;
    min-width: .32rem !important;
    height: .32rem !important;
    min-height: .32rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    box-shadow: 0 0 .55rem currentColor !important;
  }

  .calendar-mobile-month-cell__indicator--courses {
    left: calc(50% - .42rem) !important;
    right: auto !important;
    background: var(--calendar-day-course-accent, #38bdf8) !important;
    color: var(--calendar-day-course-accent, #38bdf8) !important;
  }

  .calendar-mobile-month-cell__indicator--events {
    right: calc(50% - .42rem) !important;
    left: auto !important;
    background: #c084fc !important;
    color: #c084fc !important;
  }

  .calendar-mobile-month-cell:not(:has(.calendar-mobile-month-cell__indicator--events)) .calendar-mobile-month-cell__indicator--courses,
  .calendar-mobile-month-cell:not(:has(.calendar-mobile-month-cell__indicator--courses)) .calendar-mobile-month-cell__indicator--events {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
  }

  .calendar-mobile-season-today-button {
    display: none !important;
  }

  .calendar-mobile-day-sheet {
    z-index: 80 !important;
    left: .58rem !important;
    right: .58rem !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + .58rem) !important;
    max-height: min(68svh, 38rem) !important;
    border-radius: 1.15rem !important;
    background:
      radial-gradient(circle at 90% 0%, rgba(56,189,248,.1), transparent 38%),
      color-mix(in srgb, var(--color-surface) 92%, transparent 8%) !important;
    box-shadow: 0 1.6rem 5rem rgba(2,6,23,.58) !important;
  }

  .mobile-shell-navbar.is-mobile-mode .calendar-full-smartbar-shell,
  .mobile-shell-navbar[data-mobile-shell-navbar].is-mobile-mode .calendar-full-smartbar-shell {
    display: inline-flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 2.35rem !important;
    padding-inline: .58rem !important;
    border: 1px solid rgba(125,211,252,.13);
    border-radius: .82rem;
    background: rgba(2,6,23,.24);
  }

  .calendar-full-smartbar-shell input {
    min-width: 0;
    font-size: .76rem;
  }

  .calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal {
    gap: .34rem;
    padding: .42rem;
    border-radius: .95rem;
  }

  .calendar-full-smart-suggestion {
    min-height: 3rem;
    gap: .58rem;
    padding: .42rem .5rem;
    border-radius: .78rem;
  }

  .calendar-full-smart-suggestion__icon {
    width: 2rem;
    height: 2rem;
    border-radius: .64rem;
  }

  .calendar-full-smart-suggestion strong {
    font-size: .8rem;
  }

  .calendar-full-smart-suggestion em {
    font-size: .64rem;
  }
}

/* V49.5.2 — navigation vers les mois voisins + respiration du jour actuel. */
@media (max-width: 719px) {
  .calendar-mobile-month-cell.is-outside {
    pointer-events: auto !important;
    cursor: pointer !important;
  }

  .calendar-mobile-month-cell.is-today {
    position: relative !important;
    overflow: visible !important;
    animation: calendar-mobile-today-breathe 3.4s ease-in-out infinite !important;
  }

  .calendar-mobile-month-cell.is-today::after {
    content: '';
    position: absolute;
    inset: -.16rem;
    z-index: -1;
    border-radius: .95rem;
    background: radial-gradient(circle at 50% 50%, rgba(74,222,128,.24), transparent 64%);
    pointer-events: none;
    animation: calendar-mobile-today-aura 3.4s ease-in-out infinite;
  }

  @keyframes calendar-mobile-today-breathe {
    0%, 100% {
      box-shadow: 0 0 0 1px rgba(74,222,128,.2), 0 0 1rem rgba(74,222,128,.15), inset 0 1px 0 rgba(255,255,255,.06) !important;
      filter: brightness(1);
    }
    50% {
      box-shadow: 0 0 0 2px rgba(74,222,128,.3), 0 0 1.55rem rgba(74,222,128,.28), inset 0 1px 0 rgba(255,255,255,.1) !important;
      filter: brightness(1.06);
    }
  }

  @keyframes calendar-mobile-today-aura {
    0%, 100% { opacity: .2; transform: scale(.98); }
    50% { opacity: .56; transform: scale(1.04); }
  }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-mobile-month-cell.is-today,
  .calendar-mobile-month-cell.is-today::after {
    animation: none !important;
  }
}


/* V49.8.24 - Calendrier mobile principal : consolidation largeur, sticky et masque. */
@media (max-width: 719px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-mobile-navbar-height: calc(env(safe-area-inset-top, 0px) + 3.55rem);
    --calendar-mobile-dock-height: 4.55rem;
    --calendar-mobile-weekdays-height: 1.82rem;
    --calendar-mobile-page-padding: clamp(.54rem, 2.6vw, .78rem);
    overflow-x: hidden !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content),
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #app-root,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    box-sizing: border-box !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-dashboard-shell-visible.calendar-mobile-dock-mask-active:has(#calendar-full-panel-content) .app-header::before {
    opacity: 1 !important;
    background:
      linear-gradient(to bottom, rgba(2,6,23,.98), rgba(2,6,23,.94) 72%, rgba(2,6,23,.84)) !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    backdrop-filter: blur(18px) saturate(1.08) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel > .panel-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    background: var(--color-background, #020617) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame {
    display: grid !important;
    grid-template-rows: auto auto auto !important;
    width: 100% !important;
    min-height: 100svh !important;
    overflow: visible !important;
    background: var(--color-background, #020617) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero-host {
    display: block !important;
    width: 100% !important;
    margin: calc(-1 * var(--calendar-mobile-navbar-height)) 0 0 !important;
    overflow: hidden !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero {
    width: 100% !important;
    min-height: calc(var(--calendar-mobile-navbar-height) + 5.45rem) !important;
    border-radius: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: end !important;
    width: 100% !important;
    min-height: calc(var(--calendar-mobile-navbar-height) + 5.45rem) !important;
    padding:
      calc(var(--calendar-mobile-navbar-height) + .72rem)
      var(--calendar-mobile-page-padding)
      .82rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero__stats {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero__kicker {
    margin-bottom: .14rem !important;
    font-size: .62rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero h1 {
    max-width: 100% !important;
    font-size: clamp(1.56rem, 7.8vw, 2.05rem) !important;
    line-height: .96 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero__description {
    display: -webkit-box !important;
    max-width: 100% !important;
    margin-top: .26rem !important;
    overflow: hidden !important;
    font-size: .78rem !important;
    line-height: 1.24 !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host {
    position: sticky !important;
    top: var(--calendar-mobile-navbar-height) !important;
    z-index: 45 !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    background: var(--color-background, #020617) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--calendar-mobile-navbar-height);
    z-index: 0;
    opacity: 0;
    pointer-events: none;
    background:
      linear-gradient(to bottom, rgba(2,6,23,.98), rgba(2,6,23,.96) 72%, rgba(2,6,23,.86));
    transition: opacity .16s ease;
  }

  body.is-dashboard-shell-visible.calendar-mobile-dock-mask-active:has(#calendar-full-panel-content) .calendar-modern-dock-host::before {
    opacity: 1;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock {
    position: relative !important;
    top: auto !important;
    z-index: 2 !important;
    min-height: var(--calendar-mobile-dock-height) !important;
    border-radius: 0 !important;
    background:
      linear-gradient(180deg, rgba(2,6,23,.98), rgba(2,6,23,.96)) !important;
    box-shadow: 0 .85rem 1.65rem rgba(2,6,23,.36) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__inner {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "month actions"
      "filters filters" !important;
    gap: .38rem .48rem !important;
    width: 100% !important;
    min-height: var(--calendar-mobile-dock-height) !important;
    padding: .34rem var(--calendar-mobile-page-padding) .42rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__month-nav {
    grid-area: month !important;
    min-width: 0 !important;
    position: relative !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__filters {
    grid-area: filters !important;
    gap: .38rem !important;
    min-width: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__actions {
    grid-area: actions !important;
    gap: .32rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__nav,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action {
    width: 2rem !important;
    min-width: 2rem !important;
    height: 2rem !important;
    min-height: 2rem !important;
    border-radius: .68rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__month {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 10rem !important;
    min-height: 2rem !important;
    padding: 0 .7rem !important;
    overflow: hidden !important;
    border-radius: .68rem !important;
    font-size: .76rem !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__count {
    min-height: 1.86rem !important;
    padding: 0 .58rem !important;
    font-size: .66rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__chips {
    gap: .32rem !important;
    min-width: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-chip {
    min-height: 1.86rem !important;
    padding: 0 .56rem !important;
    gap: .32rem !important;
    font-size: .65rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action {
    display: inline-grid !important;
    place-items: center !important;
    padding: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .ui-btn__label,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .ui-btn__label--full,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .ui-btn__label--short,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .btn-label,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action span:not(.ui-btn__icon) {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-date-picker {
    position: fixed !important;
    left: -9999px !important;
    top: -9999px !important;
    display: block !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body {
    width: auto !important;
    inline-size: auto !important;
    max-inline-size: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding:
      .5rem
      var(--calendar-mobile-page-padding)
      calc(env(safe-area-inset-bottom, 0px) + 1rem) !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    background: var(--color-background, #020617) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-view {
    --calendar-mobile-season-weekdays-height: var(--calendar-mobile-weekdays-height) !important;
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 0 calc(env(safe-area-inset-bottom, 0px) + 2rem) !important;
    overflow-x: hidden !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head {
    position: sticky !important;
    top: calc(var(--calendar-mobile-navbar-height) + var(--calendar-mobile-dock-height)) !important;
    z-index: 44 !important;
    width: 100% !important;
    min-height: var(--calendar-mobile-weekdays-height) !important;
    margin: 0 !important;
    padding: .32rem 0 .34rem !important;
    border-radius: 0 !important;
    background: var(--color-background, #020617) !important;
    box-shadow: 0 .72rem 1.2rem rgba(2,6,23,.38) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head::before {
    content: '';
    position: absolute;
    inset: 0 calc(-1 * var(--calendar-mobile-page-padding)) !important;
    z-index: -1;
    border-radius: 0 !important;
    background: var(--color-background, #020617) !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head::after {
    left: 0 !important;
    right: 0 !important;
    opacity: .46 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head__month {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head__weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: clamp(.32rem, 1.4vw, .44rem) !important;
    width: 100% !important;
    min-height: 1.08rem !important;
    padding: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head__weekday {
    min-width: 0 !important;
    min-height: .8rem !important;
    font-size: .6rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    padding-top: .46rem !important;
    overflow-x: hidden !important;
    background: transparent !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month {
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
    background: transparent !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__head,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__title,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__weekdays {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__inline-title {
    margin: .5rem 0 .62rem !important;
    padding: 0 0 .48rem !important;
    color: var(--color-text) !important;
    font-size: clamp(1.08rem, 5.5vw, 1.42rem) !important;
    font-weight: 950 !important;
    line-height: 1.04 !important;
    letter-spacing: -.035em !important;
    text-align: left !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll .calendar-mobile-season-month + .calendar-mobile-season-month {
    margin-top: 2.35rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll .calendar-mobile-season-month + .calendar-mobile-season-month .calendar-mobile-season-month__inline-title {
    margin-top: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    --calendar-mobile-grid-gap: clamp(.32rem, 1.25vw, .44rem);
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    grid-auto-rows: auto !important;
    gap: var(--calendar-mobile-grid-gap) !important;
    row-gap: clamp(.44rem, 1.55vw, .58rem) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell {
    position: relative !important;
    display: grid !important;
    place-items: start center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: .48rem .16rem .34rem !important;
    border: 1px solid color-mix(in srgb, var(--color-border-subtle) 72%, transparent 28%) !important;
    border-radius: .72rem !important;
    color: var(--color-text) !important;
    background:
      radial-gradient(circle at 25% 16%, rgba(255,255,255,.055), transparent 42%),
      color-mix(in srgb, var(--color-surface-soft) 78%, transparent 22%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
    transform: none !important;
    touch-action: manipulation !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell.has-items {
    border-color: color-mix(in srgb, #38bdf8 28%, var(--color-border-subtle) 72%) !important;
    cursor: pointer !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell.is-outside {
    opacity: .18 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__day {
    position: relative !important;
    inset: auto !important;
    align-self: start !important;
    justify-self: center !important;
    color: inherit !important;
    font-size: clamp(.72rem, 3.4vw, .9rem) !important;
    font-weight: 950 !important;
    line-height: 1 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__indicator {
    position: absolute !important;
    top: auto !important;
    bottom: .42rem !important;
    display: block !important;
    width: .32rem !important;
    min-width: .32rem !important;
    height: .32rem !important;
    min-height: .32rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transform: none !important;
    box-shadow: 0 0 .55rem currentColor !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__indicator--courses {
    left: calc(50% - .42rem) !important;
    right: auto !important;
    background: var(--calendar-day-course-accent, #38bdf8) !important;
    color: var(--calendar-day-course-accent, #38bdf8) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__indicator--events {
    right: calc(50% - .42rem) !important;
    left: auto !important;
    background: #c084fc !important;
    color: #c084fc !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell:not(:has(.calendar-mobile-month-cell__indicator--events)) .calendar-mobile-month-cell__indicator--courses,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell:not(:has(.calendar-mobile-month-cell__indicator--courses)) .calendar-mobile-month-cell__indicator--events {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-today-button {
    display: none !important;
  }
}

/* V49.8.25 - Calendrier mobile : jours intégrés au dock sticky, sans tête sticky flottante. */
@media (max-width: 719px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-mobile-navbar-height: calc(env(safe-area-inset-top, 0px) + 3.55rem);
    --calendar-mobile-dock-controls-height: 4.35rem;
    --calendar-mobile-weekdays-height: 1.82rem;
    --calendar-mobile-page-padding: clamp(.58rem, 2.7vw, .82rem);
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host {
    position: sticky !important;
    top: var(--calendar-mobile-navbar-height) !important;
    z-index: 48 !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    background: var(--color-background, #020617) !important;
    box-shadow: 0 .85rem 1.65rem rgba(2,6,23,.38) !important;
    overflow: visible !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock {
    position: relative !important;
    top: auto !important;
    min-height: auto !important;
    border-radius: 0 !important;
    background: var(--color-background, #020617) !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__inner {
    min-height: var(--calendar-mobile-dock-controls-height) !important;
    padding: .34rem var(--calendar-mobile-page-padding) .34rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: clamp(.32rem, 1.4vw, .44rem) !important;
    width: 100% !important;
    min-height: var(--calendar-mobile-weekdays-height) !important;
    padding: .34rem var(--calendar-mobile-page-padding) .38rem !important;
    border-top: 1px solid rgba(148,163,184,.12) !important;
    border-bottom: 1px solid rgba(148,163,184,.12) !important;
    background: var(--color-background, #020617) !important;
    box-shadow: 0 .75rem 1.25rem rgba(2,6,23,.36) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays span {
    min-width: 0 !important;
    color: color-mix(in srgb, var(--color-text-muted, #94a3b8) 74%, transparent 26%) !important;
    font-size: .6rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body {
    padding: .68rem var(--calendar-mobile-page-padding) calc(env(safe-area-inset-bottom, 0px) + 1.05rem) !important;
    overflow-x: hidden !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll {
    padding-top: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__inline-title {
    margin: .62rem 0 .62rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    --calendar-mobile-grid-gap: clamp(.3rem, 1.18vw, .4rem);
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: var(--calendar-mobile-grid-gap) !important;
    row-gap: clamp(.42rem, 1.45vw, .54rem) !important;
    box-sizing: border-box !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell {
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* V49.8.26 - Calendrier mobile principal : pivot planning-like stable, sans hero ni masque dynamique. */
@media (max-width: 719px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-mobile-navbar-height: calc(env(safe-area-inset-top, 0px) + 3.55rem);
    --calendar-mobile-dock-controls-height: 3.25rem;
    --calendar-mobile-weekdays-height: 1.82rem;
    --calendar-mobile-fixed-dock-height: calc(var(--calendar-mobile-dock-controls-height) + var(--calendar-mobile-weekdays-height));
    --calendar-mobile-page-padding: clamp(.72rem, 3.4vw, .98rem);
    overflow-x: hidden !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content),
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #app-root,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell {
    box-sizing: border-box !important;
    min-width: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header {
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header::before,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host::before,
  body.is-dashboard-shell-visible.calendar-mobile-dock-mask-active:has(#calendar-full-panel-content) .app-header::before,
  body.is-dashboard-shell-visible.calendar-mobile-dock-mask-active:has(#calendar-full-panel-content) .calendar-modern-dock-host::before {
    display: none !important;
    opacity: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel > .panel-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: clip !important;
    background: var(--color-background, #020617) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame {
    display: block !important;
    min-height: 100svh !important;
    overflow-y: visible !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero-host,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-hero {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host {
    position: fixed !important;
    top: var(--calendar-mobile-navbar-height) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 45 !important;
    display: block !important;
    inline-size: 100vw !important;
    max-inline-size: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border-bottom: 1px solid rgba(148,163,184,.13) !important;
    background:
      linear-gradient(180deg, rgba(2,6,23,.68), rgba(2,6,23,.48)) !important;
    box-shadow: 0 .65rem 1.6rem rgba(2,6,23,.24) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock {
    position: relative !important;
    top: auto !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "month actions" !important;
    align-items: center !important;
    gap: .38rem !important;
    inline-size: 100% !important;
    min-height: var(--calendar-mobile-dock-controls-height) !important;
    padding: .44rem var(--calendar-mobile-page-padding) .26rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__filters,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__count,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__chips,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-chip {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__month-nav {
    grid-area: month !important;
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    gap: .28rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__actions {
    grid-area: actions !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-width: 0 !important;
    gap: .26rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__nav,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action {
    display: inline-grid !important;
    place-items: center !important;
    flex: 0 0 1.98rem !important;
    inline-size: 1.98rem !important;
    min-inline-size: 1.98rem !important;
    block-size: 1.98rem !important;
    min-block-size: 1.98rem !important;
    padding: 0 !important;
    border-radius: .66rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__month {
    flex: 1 1 auto !important;
    min-inline-size: 0 !important;
    max-inline-size: min(8.45rem, 34vw) !important;
    min-block-size: 1.98rem !important;
    padding: 0 .6rem !important;
    overflow: hidden !important;
    border-radius: .66rem !important;
    font-size: .72rem !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .ui-btn__label,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .ui-btn__label--full,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .ui-btn__label--short,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action .btn-label,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__action span:not(.ui-btn__icon) {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: clamp(.28rem, 1.25vw, .42rem) !important;
    inline-size: 100% !important;
    min-block-size: var(--calendar-mobile-weekdays-height) !important;
    padding: .32rem var(--calendar-mobile-page-padding) .36rem !important;
    border-top: 1px solid rgba(148,163,184,.11) !important;
    background: transparent !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays span {
    min-width: 0 !important;
    color: color-mix(in srgb, var(--color-text-muted, #94a3b8) 76%, transparent 24%) !important;
    font-size: .6rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .08em !important;
    text-align: center !important;
    text-transform: uppercase !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-date-picker {
    position: fixed !important;
    left: -9999px !important;
    top: -9999px !important;
    display: block !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    min-inline-size: 1px !important;
    min-block-size: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body {
    inline-size: 100vw !important;
    max-inline-size: 100vw !important;
    margin: 0 !important;
    padding:
      calc(var(--calendar-mobile-navbar-height) + var(--calendar-mobile-fixed-dock-height) + .78rem)
      var(--calendar-mobile-page-padding)
      calc(env(safe-area-inset-bottom, 0px) + 1.35rem) !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    background: var(--color-background, #020617) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-sticky-head {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    overflow-x: clip !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-view {
    display: block !important;
    padding: 0 0 calc(env(safe-area-inset-bottom, 0px) + 2rem) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding-top: 0 !important;
    background: transparent !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month {
    display: block !important;
    background: transparent !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__head,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__title,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__weekdays {
    display: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__inline-title {
    position: relative !important;
    margin: .42rem .06rem .7rem !important;
    padding: 0 .02rem .5rem !important;
    color: var(--color-text) !important;
    font-size: clamp(1.08rem, 5.6vw, 1.46rem) !important;
    font-weight: 950 !important;
    line-height: 1.04 !important;
    letter-spacing: -.035em !important;
    text-align: left !important;
    text-wrap: balance !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__inline-title::after {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 1px !important;
    background: color-mix(in srgb, var(--color-border-subtle) 70%, transparent 30%) !important;
    opacity: .58 !important;
    pointer-events: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll .calendar-mobile-season-month + .calendar-mobile-season-month {
    margin-top: clamp(2.1rem, 6.2vw, 3rem) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-scroll .calendar-mobile-season-month + .calendar-mobile-season-month .calendar-mobile-season-month__inline-title {
    margin-top: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    --calendar-mobile-grid-gap: clamp(.34rem, 1.28vw, .44rem);
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    grid-auto-rows: auto !important;
    gap: var(--calendar-mobile-grid-gap) !important;
    row-gap: clamp(.46rem, 1.55vw, .58rem) !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell {
    position: relative !important;
    display: grid !important;
    place-items: start center !important;
    inline-size: 100% !important;
    max-inline-size: none !important;
    min-inline-size: 0 !important;
    block-size: auto !important;
    min-block-size: 0 !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: .5rem .14rem .35rem !important;
    border: 1px solid color-mix(in srgb, var(--color-border-subtle) 72%, transparent 28%) !important;
    border-radius: .72rem !important;
    overflow: hidden !important;
    color: var(--color-text) !important;
    background:
      radial-gradient(circle at 25% 16%, rgba(255,255,255,.055), transparent 42%),
      color-mix(in srgb, var(--color-surface-soft) 78%, transparent 22%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
    transform: none !important;
    touch-action: manipulation !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell.has-items {
    border-color: color-mix(in srgb, #38bdf8 28%, var(--color-border-subtle) 72%) !important;
    cursor: pointer !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell.is-outside {
    opacity: .18 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__day {
    position: relative !important;
    inset: auto !important;
    z-index: 2 !important;
    align-self: start !important;
    justify-self: center !important;
    color: inherit !important;
    font-size: clamp(.72rem, 3.35vw, .9rem) !important;
    font-weight: 950 !important;
    line-height: 1 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__indicator {
    position: absolute !important;
    top: auto !important;
    bottom: .42rem !important;
    z-index: 4 !important;
    display: block !important;
    inline-size: .32rem !important;
    min-inline-size: .32rem !important;
    block-size: .32rem !important;
    min-block-size: .32rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transform: none !important;
    box-shadow: 0 0 .55rem currentColor !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__indicator--courses {
    left: calc(50% - .42rem) !important;
    right: auto !important;
    background: var(--calendar-day-course-accent, #38bdf8) !important;
    color: var(--calendar-day-course-accent, #38bdf8) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell__indicator--events {
    right: calc(50% - .42rem) !important;
    left: auto !important;
    background: #c084fc !important;
    color: #c084fc !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell:not(:has(.calendar-mobile-month-cell__indicator--events)) .calendar-mobile-month-cell__indicator--courses,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-cell:not(:has(.calendar-mobile-month-cell__indicator--courses)) .calendar-mobile-month-cell__indicator--events {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-today-button {
    display: none !important;
  }
}

/* V49.8.27 - Calendrier mobile planning-like : recalage sous dock et navbar translucide réelle. */
@media (max-width: 719px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-mobile-navbar-height: var(--edq-navbar-height-current, calc(env(safe-area-inset-top, 0px) + 3.35rem));
    --calendar-mobile-dock-controls-height: 3.08rem;
    --calendar-mobile-weekdays-height: 1.72rem;
    --calendar-mobile-fixed-dock-height: calc(var(--calendar-mobile-dock-controls-height) + var(--calendar-mobile-weekdays-height));
    --calendar-mobile-page-padding: clamp(.7rem, 3.2vw, .94rem);
  }

  /* V49.8.26 avait coupé le voile natif de la navbar. On le réactive ici
     pour retrouver le rendu translucide habituel pendant que le calendrier
     défile derrière. */
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header::before,
  body.is-dashboard-shell-visible.calendar-mobile-dock-mask-active:has(#calendar-full-panel-content) .app-header::before {
    display: block !important;
    content: "" !important;
    opacity: 1 !important;
    height: calc(var(--calendar-mobile-navbar-height) + var(--edq-navbar-fade-height-current, 1.35rem)) !important;
    background:
      linear-gradient(
        180deg,
        color-mix(in srgb, var(--color-bg, #020617) 44%, transparent) 0%,
        color-mix(in srgb, var(--color-bg, #020617) 34%, transparent) 54%,
        color-mix(in srgb, var(--color-bg, #020617) 18%, transparent) 82%,
        transparent 100%
      ) !important;
    backdrop-filter: blur(25px) saturate(1.16) !important;
    -webkit-backdrop-filter: blur(25px) saturate(1.16) !important;
    -webkit-mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 62%,
      rgba(0,0,0,.72) 82%,
      rgba(0,0,0,.18) 96%,
      transparent 100%
    ) !important;
    mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 62%,
      rgba(0,0,0,.72) 82%,
      rgba(0,0,0,.18) 96%,
      transparent 100%
    ) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel > .panel-body,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-panel-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-shell,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-full-content,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-frame,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    overflow-x: clip !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host {
    top: var(--calendar-mobile-navbar-height) !important;
    left: 0 !important;
    right: 0 !important;
    inline-size: auto !important;
    max-inline-size: none !important;
    background:
      linear-gradient(180deg, rgba(2,6,23,.62), rgba(2,6,23,.43)) !important;
    backdrop-filter: blur(22px) saturate(1.16) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.16) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__inner {
    min-height: var(--calendar-mobile-dock-controls-height) !important;
    padding: .34rem var(--calendar-mobile-page-padding) .2rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays {
    min-block-size: var(--calendar-mobile-weekdays-height) !important;
    padding: .26rem var(--calendar-mobile-page-padding) .3rem !important;
  }

  /* Le shell mobile ajoute déjà la hauteur de navbar via #app-root. Le contenu
     ne doit donc compenser que le dock calendrier fixe + les jours. */
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) #calendar-full-body {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    margin: 0 !important;
    padding:
      calc(var(--calendar-mobile-fixed-dock-height) + .42rem)
      var(--calendar-mobile-page-padding)
      calc(env(safe-area-inset-bottom, 0px) + 1.35rem) !important;
    overflow-x: clip !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-season-month__inline-title {
    margin: .12rem 0 .64rem !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-mobile-month-grid {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    overflow: visible !important;
  }
}

/* V49.8.28 - Calendrier mobile planning-like : nappe navbar + dock continue.
   Audit : la V49.8.27 réactivait le voile natif de .app-header::before
   tandis que le dock calendrier dessinait son propre fond. Les deux nappes
   avaient une opacité et un masque différents, ce qui créait une frontière
   nette entre navbar et barre de calendrier. On revient au principe du
   planning hebdomadaire : un seul voile fixe, porté par le dock calendrier,
   remonte derrière la navbar et descend jusqu'après les jours de semaine. */
@media (max-width: 719px) {
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) {
    --calendar-mobile-top-glass-height: calc(
      var(--calendar-mobile-navbar-height, var(--edq-navbar-height-current, calc(env(safe-area-inset-top, 0px) + 3.35rem)))
      + var(--calendar-mobile-fixed-dock-height, 4.8rem)
      + .95rem
    );
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .app-header::before,
  body.is-dashboard-shell-visible.calendar-mobile-dock-mask-active:has(#calendar-full-panel-content) .app-header::before {
    display: none !important;
    opacity: 0 !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host {
    isolation: isolate !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock-host::before {
    content: '' !important;
    position: fixed !important;
    z-index: -1 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: var(--calendar-mobile-top-glass-height) !important;
    pointer-events: none !important;
    display: block !important;
    opacity: 1 !important;
    background:
      linear-gradient(
        180deg,
        color-mix(in srgb, var(--color-bg, #020617) 86%, transparent) 0%,
        color-mix(in srgb, var(--color-bg, #020617) 78%, transparent) 48%,
        color-mix(in srgb, var(--color-bg, #020617) 58%, transparent) 78%,
        transparent 100%
      ) !important;
    backdrop-filter: blur(24px) saturate(1.16) !important;
    -webkit-backdrop-filter: blur(24px) saturate(1.16) !important;
    -webkit-mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 76%,
      rgba(0,0,0,.86) 88%,
      transparent 100%
    ) !important;
    mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 76%,
      rgba(0,0,0,.86) 88%,
      transparent 100%
    ) !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__inner,
  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays {
    position: relative !important;
    z-index: 1 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.is-dashboard-shell-visible:has(#calendar-full-panel-content) .calendar-modern-dock__weekdays {
    border-top-color: color-mix(in srgb, var(--color-border-subtle, rgba(148,163,184,.28)) 42%, transparent) !important;
    border-bottom-color: color-mix(in srgb, var(--color-border-subtle, rgba(148,163,184,.28)) 54%, transparent) !important;
  }
}
