/* /public_html/assets/css/calendar/calendar-full.base.css
   Calendrier complet — architecture V49.5
*/
/* V49.8.40 — le date picker natif du dock reste un déclencheur invisible, y compris en tablette/paysage. */
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;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}


.calendar-modern-frame {
  --calendar-modern-navbar-height: var(--edq-navbar-height-current, 4.15rem);
  --calendar-modern-accent: #38bdf8;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: 100%;
  min-width: 0;
  background: var(--color-background, #020617);
}

.calendar-modern-hero-host,
.calendar-modern-dock-host {
  display: block;
  min-width: 0;
}

.calendar-full-mobile-title,
.calendar-full-mobile-monthbar,
.calendar-filter-bubbles-root,
.calendar-filter-bubbles-source,
.calendar-full-filters-panel,
.calendar-full-hidden-filters {
  display: none !important;
}

.calendar-full-smartbar-shell {
  width: min(36rem, 100%);
  border: 1px solid rgba(125,211,252,.14);
  background: rgba(2,6,23,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.calendar-full-smartbar-shell > i,
.calendar-full-smartbar-shell .ui-smartbar-search-clear {
  color: color-mix(in srgb, #7dd3fc 82%, var(--color-text-muted) 18%);
}

.calendar-modern-hero {
  position: relative;
  isolation: isolate;
  width: 100%;
  overflow: hidden;
  background:
    radial-gradient(circle at 84% 18%, rgba(45, 212, 191, .18), transparent 32%),
    radial-gradient(circle at 13% 100%, rgba(96, 165, 250, .18), transparent 36%),
    linear-gradient(120deg, rgba(4, 15, 36, .98), rgba(13, 25, 55, .96) 55%, rgba(7, 53, 62, .93));
  box-shadow: inset 0 -1px 0 rgba(125, 211, 252, .23);
}

.calendar-modern-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .24;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: linear-gradient(to right, #000, transparent 78%);
  mask-image: linear-gradient(to right, #000, transparent 78%);
}

.calendar-modern-hero__inner {
  display: grid;
  align-items: center;
  width: 100%;
}

.calendar-modern-hero__copy {
  min-width: 0;
}

.calendar-modern-hero__kicker {
  margin: 0 0 .18rem;
  color: #7dd3fc;
  font-size: .7rem;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.calendar-modern-hero h1 {
  margin: 0;
  color: #f8fafc;
  font-weight: 950;
  line-height: .94;
  letter-spacing: -.055em;
}

.calendar-modern-hero__description {
  margin: .42rem 0 0;
  color: rgba(226, 232, 240, .78);
  font-weight: 650;
  line-height: 1.35;
}

.calendar-modern-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
}

.calendar-modern-stat {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  border: 1px solid rgba(125, 211, 252, .18);
  background: rgba(2, 6, 23, .56);
  box-shadow: 0 .9rem 2.2rem rgba(2, 6, 23, .2), inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter: blur(16px) saturate(1.1);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
}

.calendar-modern-stat strong {
  color: var(--calendar-stat-color, #7dd3fc);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.04em;
}

.calendar-modern-stat span {
  margin-top: .28rem;
  color: rgba(226,232,240,.76);
  font-weight: 850;
  line-height: 1.15;
}

.calendar-modern-stat--violet { --calendar-stat-color: #c4b5fd; }
.calendar-modern-stat--orange { --calendar-stat-color: #fb923c; }
.calendar-modern-stat--teal { --calendar-stat-color: #2dd4bf; }

.calendar-modern-dock {
  position: relative;
  z-index: 34;
  width: 100%;
  border: 0;
  background: color-mix(in srgb, var(--color-background, #020617) 93%, transparent 7%);
  box-shadow: 0 .7rem 1.5rem rgba(2,6,23,.18);
  backdrop-filter: blur(22px) saturate(1.18);
  -webkit-backdrop-filter: blur(22px) saturate(1.18);
}

.calendar-modern-dock__inner {
  display: grid;
  align-items: center;
  width: 100%;
}

.calendar-modern-dock__month-nav,
.calendar-modern-dock__filters,
.calendar-modern-dock__actions,
.calendar-modern-dock__chips {
  display: flex;
  align-items: center;
}

.calendar-modern-dock__month-nav {
  gap: .36rem;
}

.calendar-modern-dock__nav,
.calendar-modern-dock__month,
.calendar-modern-dock__count,
.calendar-modern-chip,
.calendar-modern-dock__action {
  border: 1px solid color-mix(in srgb, var(--color-border-subtle) 70%, transparent 30%);
  background: color-mix(in srgb, var(--color-surface) 78%, transparent 22%);
  color: var(--color-text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.calendar-modern-dock__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
}

.calendar-modern-dock__month {
  color: #f8fafc;
  font: inherit;
  font-weight: 900;
  text-transform: capitalize;
}

.calendar-modern-dock__filters {
  justify-content: flex-start;
  min-width: 0;
  overflow: hidden;
}

.calendar-modern-dock__count {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  border-color: rgba(56,189,248,.38);
  border-radius: 999px;
  color: #7dd3fc;
  font-weight: 900;
  white-space: nowrap;
}

.calendar-modern-dock__chips {
  flex: 1 1 auto;
  justify-content: flex-start;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}

.calendar-modern-dock__chips::-webkit-scrollbar {
  display: none;
}

.calendar-modern-chip {
  --calendar-chip-color: #38bdf8;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  border-color: color-mix(in srgb, var(--calendar-chip-color) 42%, transparent 58%);
  border-radius: 999px;
  color: color-mix(in srgb, var(--calendar-chip-color) 76%, #fff 24%);
  font: inherit;
  font-weight: 850;
  white-space: nowrap;
  cursor: pointer;
}

.calendar-modern-chip--violet { --calendar-chip-color: #a78bfa; }
.calendar-modern-chip--orange { --calendar-chip-color: #fb923c; }
.calendar-modern-chip--teal { --calendar-chip-color: #2dd4bf; }
.calendar-modern-chip--rose { --calendar-chip-color: #fb7185; }
.calendar-modern-chip--green { --calendar-chip-color: #4ade80; }

.calendar-modern-dock__actions {
  justify-content: flex-end;
}

.calendar-modern-dock__action {
  position: static !important;
  inset: auto !important;
  margin: 0 !important;
  transform: none !important;
  white-space: nowrap;
}

.calendar-modern-dock__action#calendar-add-extra-btn {
  border-color: rgba(56,189,248,.52) !important;
  background: linear-gradient(135deg, rgba(14,165,233,.88), rgba(45,212,191,.82)) !important;
  color: #fff !important;
  box-shadow: 0 .8rem 1.8rem rgba(14,165,233,.18) !important;
}

.calendar-modern-dock__action#calendar-reset-filters[hidden] {
  display: none !important;
}

/* Smartbar : suggestions en véritables cartes EDQ. */
.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal {
  display: grid;
  gap: .42rem;
  padding: .55rem;
  border: 1px solid rgba(125,211,252,.2);
  border-radius: 1.1rem;
  background:
    radial-gradient(circle at 92% 0%, rgba(45,212,191,.12), transparent 36%),
    color-mix(in srgb, var(--color-surface, #071124) 92%, transparent 8%);
  box-shadow: 0 1.4rem 4rem rgba(2,6,23,.48), inset 0 1px 0 rgba(255,255,255,.055);
  backdrop-filter: blur(24px) saturate(1.18);
  -webkit-backdrop-filter: blur(24px) saturate(1.18);
  scrollbar-width: thin;
}

.calendar-full-smart-suggestions[hidden] {
  display: none !important;
}

.calendar-full-smart-suggestion {
  --ui-smartbar-accent: #38bdf8;
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  width: 100%;
  min-width: 0;
  min-height: 3.25rem;
  padding: .48rem .62rem;
  border: 1px solid color-mix(in srgb, var(--ui-smartbar-accent) 22%, rgba(148,163,184,.14) 78%);
  border-radius: .9rem;
  appearance: none;
  -webkit-appearance: none;
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--ui-smartbar-accent) 8%, transparent), transparent 58%),
    rgba(15,23,42,.28);
  color: var(--color-text, #f8fafc);
  font: inherit;
  text-align: left;
  cursor: pointer;
  opacity: 0;
  animation: calendar-smart-suggestion-in .2s ease forwards;
  animation-delay: calc(var(--ui-smartbar-index, 0) * 18ms);
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease, filter 150ms ease;
}

.calendar-full-smart-suggestion:hover,
.calendar-full-smart-suggestion:focus-visible,
.calendar-full-smart-suggestion.is-active {
  border-color: color-mix(in srgb, var(--ui-smartbar-accent) 68%, rgba(255,255,255,.18) 32%);
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--ui-smartbar-accent) 22%, transparent), transparent 62%),
    color-mix(in srgb, var(--ui-smartbar-accent) 10%, rgba(15,23,42,.42) 90%);
  box-shadow: 0 0 1.35rem color-mix(in srgb, var(--ui-smartbar-accent) 18%, transparent);
  filter: brightness(1.035);
  outline: none;
}

.calendar-full-smart-suggestion__icon {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid color-mix(in srgb, var(--ui-smartbar-accent) 36%, transparent);
  border-radius: .72rem;
  color: color-mix(in srgb, var(--ui-smartbar-accent) 82%, #fff 18%);
  background: color-mix(in srgb, var(--ui-smartbar-accent) 15%, transparent);
  box-shadow: 0 0 1rem color-mix(in srgb, var(--ui-smartbar-accent) 12%, transparent);
}

.calendar-full-smart-suggestion__copy {
  display: grid;
  min-width: 0;
  gap: .12rem;
}

.calendar-full-smart-suggestion strong,
.calendar-full-smart-suggestion em {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-full-smart-suggestion strong {
  color: var(--color-text, #f8fafc);
  font-size: .88rem;
  font-weight: 900;
  line-height: 1.1;
}

.calendar-full-smart-suggestion em {
  color: color-mix(in srgb, var(--color-text-muted, #94a3b8) 90%, transparent 10%);
  font-size: .7rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.1;
  text-transform: none;
}

.calendar-full-smart-suggestion__accept {
  color: color-mix(in srgb, var(--ui-smartbar-accent) 70%, var(--color-text-muted) 30%);
  font-size: .82rem;
  opacity: .58;
}

body.calendar-smart-focus-active:has(#calendar-full-panel-content) .calendar-full-smartbar-shell {
  position: relative;
  z-index: 4102;
}

body.calendar-smart-focus-active:has(#calendar-full-panel-content) .calendar-full-smart-suggestions {
  z-index: 4101 !important;
}

@keyframes calendar-smart-suggestion-in {
  from { opacity: 0; transform: translateY(-.22rem) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-full-smart-suggestion {
    animation: none !important;
    opacity: 1 !important;
  }
}

.calendar-print-view {
  display: none;
}

@media print {
  body:has(#calendar-full-panel-content) {
    background: #fff !important;
    color: #111827 !important;
    overflow: visible !important;
  }

  body:has(#calendar-full-panel-content) .app-header,
  body:has(#calendar-full-panel-content) .dashboard-sidebar,
  body:has(#calendar-full-panel-content) .mobile-shell-navbar,
  body:has(#calendar-full-panel-content) .calendar-modern-hero-host,
  body:has(#calendar-full-panel-content) .calendar-modern-dock-host,
  body:has(#calendar-full-panel-content) .calendar-desktop-workspace,
  body:has(#calendar-full-panel-content) .calendar-full-loader-host {
    display: none !important;
  }

  body:has(#calendar-full-panel-content) #app-root,
  body:has(#calendar-full-panel-content) #dashboard-app-shell,
  body:has(#calendar-full-panel-content) .dashboard-app-main,
  body:has(#calendar-full-panel-content) #dashboard-view,
  body:has(#calendar-full-panel-content) #dashboard-view > .calendar-full-panel,
  body:has(#calendar-full-panel-content) .calendar-full-shell-body,
  body:has(#calendar-full-panel-content) .calendar-full-shell,
  body:has(#calendar-full-panel-content) .calendar-full-content,
  body:has(#calendar-full-panel-content) .calendar-modern-frame,
  body:has(#calendar-full-panel-content) #calendar-full-body {
    position: static !important;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  body:has(#calendar-full-panel-content) .calendar-print-view {
    display: block !important;
    color: #111827 !important;
    font-family: Arial, sans-serif;
  }

  .calendar-print-view__header {
    margin-bottom: 1.2rem;
    padding-bottom: .65rem;
    border-bottom: 2px solid #111827;
  }

  .calendar-print-view__header p,
  .calendar-print-view__header h1 {
    margin: 0;
  }

  .calendar-print-view__header p {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .calendar-print-view__header h1 {
    margin-top: .25rem;
    font-size: 1.8rem;
    text-transform: capitalize;
  }

  .calendar-print-day {
    break-inside: avoid;
    margin: 0 0 1rem;
  }

  .calendar-print-day h2 {
    margin: 0 0 .45rem;
    padding: .3rem .45rem;
    background: #e5e7eb;
    color: #111827;
    font-size: 1rem;
  }

  .calendar-print-day__items {
    display: grid;
    gap: .35rem;
  }

  .calendar-print-day .calendar-day-item {
    break-inside: avoid;
    margin: 0 !important;
    padding: .45rem .55rem !important;
    border: 1px solid #9ca3af !important;
    border-radius: .45rem !important;
    background: #fff !important;
    color: #111827 !important;
    box-shadow: none !important;
  }

  .calendar-print-day .calendar-day-item *,
  .calendar-print-day .calendar-day-meta,
  .calendar-print-day .calendar-event-type,
  .calendar-print-day .calendar-day-level {
    color: #111827 !important;
    text-shadow: none !important;
  }
}

/* =========================================================
   V49.5.2 — Smartbar calendrier alignée sur le pattern EDQ
   ========================================================= */
.mobile-shell-navbar .calendar-full-smartbar-shell.ui-smartbar-search-shell,
.calendar-full-smartbar-shell.ui-smartbar-search-shell {
  --ui-smartbar-accent: #38bdf8;
  width: min(100%, 36rem) !important;
  max-width: min(36rem, calc(100vw - 1.5rem)) !important;
  height: 2.62rem !important;
  min-width: min(28rem, calc(100vw - 6rem)) !important;
  padding: 0 .72rem !important;
  border: 1px solid rgba(125, 211, 252, .16) !important;
  border-radius: 999px !important;
  background: rgba(2, 6, 23, .18) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035) !important;
  color: var(--color-text, #f8fafc) !important;
}

.calendar-full-smartbar-shell.ui-smartbar-search-shell:focus-within {
  border-color: color-mix(in srgb, var(--ui-smartbar-accent) 52%, rgba(255, 255, 255, .12) 48%) !important;
  background: color-mix(in srgb, var(--color-surface, #071124) 56%, transparent 44%) !important;
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--ui-smartbar-accent) 18%, transparent),
    0 .85rem 2.2rem color-mix(in srgb, var(--ui-smartbar-accent) 11%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, .06) !important;
}

.calendar-full-smartbar-shell.ui-smartbar-search-shell input {
  font-weight: 760 !important;
  letter-spacing: .005em !important;
}

.calendar-full-smartbar-shell.ui-smartbar-search-shell input::placeholder {
  color: color-mix(in srgb, var(--color-text-muted, #94a3b8) 88%, transparent 12%) !important;
  opacity: .9 !important;
}

.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal {
  display: grid !important;
  gap: .35rem !important;
  padding: .55rem !important;
  border: 1px solid color-mix(in srgb, #38bdf8 28%, transparent) !important;
  border-radius: 1.25rem !important;
  background:
    radial-gradient(circle at 12% 0%, color-mix(in srgb, #38bdf8 16%, transparent), transparent 48%),
    radial-gradient(circle at 100% 0%, color-mix(in srgb, #f472b6 18%, transparent), transparent 48%),
    color-mix(in srgb, var(--color-bg, #020617) 88%, transparent) !important;
  color: var(--color-text, #f8fafc) !important;
  box-shadow: 0 24px 70px color-mix(in srgb, #000 34%, transparent) !important;
  backdrop-filter: blur(24px) saturate(1.18) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.18) !important;
  scrollbar-width: none !important;
}

html[data-theme="light"] .calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal {
  background:
    radial-gradient(circle at 12% 0%, color-mix(in srgb, #bae6fd 38%, transparent), transparent 48%),
    radial-gradient(circle at 100% 0%, color-mix(in srgb, #fbcfe8 44%, transparent), transparent 48%),
    rgba(255, 255, 255, .86) !important;
  color: #0f172a !important;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .16) !important;
}

.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal::-webkit-scrollbar {
  display: none !important;
}

.calendar-full-smart-suggestion {
  --courses-smart-suggestion-color: var(--ui-smartbar-accent, #38bdf8);
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: .85rem !important;
  min-height: 4.1rem !important;
  padding: .72rem .9rem !important;
  border: 0 !important;
  border-radius: 1rem !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
}

.calendar-full-smart-suggestion.is-active,
.calendar-full-smart-suggestion:hover,
.calendar-full-smart-suggestion:focus-visible {
  outline: 0 !important;
  border-color: transparent !important;
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--ui-smartbar-accent) 24%, transparent), transparent 60%),
    color-mix(in srgb, var(--ui-smartbar-accent) 13%, transparent) !important;
  box-shadow: none !important;
  filter: none !important;
}

.calendar-full-smart-suggestion__icon {
  width: 2.7rem !important;
  height: 2.7rem !important;
  border: 0 !important;
  border-radius: .9rem !important;
  color: var(--ui-smartbar-accent, #38bdf8) !important;
  background: color-mix(in srgb, var(--ui-smartbar-accent, #38bdf8) 18%, transparent) !important;
  box-shadow: none !important;
}

.calendar-full-smart-suggestion strong {
  font-weight: 950 !important;
  letter-spacing: -.025em !important;
}

.calendar-full-smart-suggestion em {
  margin-top: .1rem !important;
  color: color-mix(in srgb, currentColor 58%, transparent) !important;
  font-size: .82rem !important;
  font-weight: 850 !important;
}

.calendar-full-smart-suggestion__accept {
  display: none !important;
}

@media (max-width: 1023px) {
  .mobile-shell-navbar .calendar-full-smartbar-shell.ui-smartbar-search-shell,
  .calendar-full-smartbar-shell.ui-smartbar-search-shell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

/* =========================================================
   V49.5.3 — Smartbar calendrier alignée sur le socle Cours/Élèves
   ========================================================= */
.mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar,
.calendar-full-smartbar-shell.courses-searchbar--navbar {
  --ui-smartbar-accent: #38bdf8;
  width: min(100%, 560px) !important;
  max-width: min(560px, calc(100vw - 2rem)) !important;
  min-width: min(30rem, calc(100vw - 6rem)) !important;
  height: 2.45rem !important;
  min-height: 2.45rem !important;
  margin: 0 auto !important;
  padding: .24rem .34rem .24rem .78rem !important;
  border: 1px solid color-mix(in srgb, var(--color-border-subtle, #94a3b8) 70%, transparent) !important;
  border-radius: 1rem !important;
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, #fff 18%, transparent), transparent 52%),
    color-mix(in srgb, var(--color-surface, #071124) 78%, transparent) !important;
  color: var(--theme-text, var(--color-text, #f8fafc)) !important;
  box-shadow:
    0 14px 36px color-mix(in srgb, #000 12%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 14%, transparent) !important;
  backdrop-filter: blur(18px) saturate(1.1) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.1) !important;
}

.calendar-full-smartbar-shell.courses-searchbar--navbar:focus-within {
  border-color: color-mix(in srgb, var(--theme-primary, #38bdf8) 58%, transparent) !important;
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--theme-primary, #38bdf8) 15%, transparent), transparent 54%),
    color-mix(in srgb, var(--color-surface, #071124) 84%, transparent) !important;
  box-shadow:
    0 16px 40px color-mix(in srgb, var(--theme-primary, #38bdf8) 14%, transparent),
    0 0 0 3px color-mix(in srgb, var(--theme-primary, #38bdf8) 16%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 18%, transparent) !important;
}

.calendar-full-smartbar-shell .courses-searchbar__label,
.calendar-full-smartbar-shell .courses-searchbar__clear {
  color: color-mix(in srgb, var(--theme-text-muted, var(--color-text-muted, #94a3b8)) 88%, transparent) !important;
}

.calendar-full-smartbar-shell .courses-searchbar__label span {
  font-size: .76rem !important;
}

.calendar-full-smartbar-shell .courses-searchbar__input {
  color: var(--theme-text, var(--color-text, #f8fafc)) !important;
  font-weight: 750 !important;
}

.calendar-full-smartbar-shell .courses-searchbar__input::placeholder {
  color: color-mix(in srgb, var(--theme-text-muted, var(--color-text-muted, #94a3b8)) 72%, transparent) !important;
}

.calendar-full-smartbar-shell .courses-searchbar__clear {
  width: 1.82rem !important;
  height: 1.82rem !important;
  border: 1px solid color-mix(in srgb, var(--color-border-subtle, #94a3b8) 55%, transparent) !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--color-surface-soft, #0f172a) 82%, transparent) !important;
}

.calendar-full-smartbar-shell .courses-searchbar__clear[hidden] {
  display: none !important;
}

.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal:empty,
.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal[hidden] {
  display: none !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal.is-opening {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.calendar-full-smart-suggestions.ui-smartbar-suggestions.is-portal.is-closing {
  opacity: 0 !important;
  transform: translateY(-.25rem) scale(.985) !important;
  pointer-events: none !important;
}

@media (max-width: 1023px) {
  .mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar,
  .calendar-full-smartbar-shell.courses-searchbar--navbar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .calendar-full-smartbar-shell .courses-searchbar__label span {
    display: none !important;
  }
}


/* =========================================================
   V49.5.4 — Smartbar Calendrier : comportement commun Élèves/Cours
   ========================================================= */
.calendar-full-smart-suggestions.courses-smart-suggestions.is-portal {
  z-index: 4101 !important;
}

.calendar-full-smart-suggestions.courses-smart-suggestions.is-portal:empty,
.calendar-full-smart-suggestions.courses-smart-suggestions.is-portal[hidden] {
  display: none !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.calendar-full-smart-suggestions.courses-smart-suggestions.is-portal.is-opening {
  animation: courses-smart-panel-in .2s cubic-bezier(.18, 1.18, .32, 1) both !important;
}

.calendar-full-smart-suggestions.courses-smart-suggestions.is-portal.is-closing {
  animation: courses-smart-panel-out .15s ease both !important;
  pointer-events: none !important;
}

.calendar-full-smart-suggestion.courses-smart-suggestion {
  --ui-smartbar-accent: var(--courses-smart-suggestion-color, #38bdf8);
  grid-template-columns: auto minmax(0, 1fr) !important;
  min-height: 4.15rem !important;
  padding: .72rem .9rem !important;
  border: 0 !important;
  border-radius: 1rem !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
  opacity: 1 !important;
  filter: none !important;
  animation: courses-smart-suggestion-in .18s ease both !important;
  animation-delay: calc(var(--ui-smartbar-index, 0) * 22ms) !important;
}

.calendar-full-smart-suggestion.courses-smart-suggestion:hover,
.calendar-full-smart-suggestion.courses-smart-suggestion:focus-visible,
.calendar-full-smart-suggestion.courses-smart-suggestion.is-active {
  outline: 0 !important;
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--courses-smart-suggestion-color, #38bdf8) 24%, transparent), transparent 60%),
    color-mix(in srgb, var(--courses-smart-suggestion-color, #38bdf8) 13%, transparent) !important;
  box-shadow: none !important;
  filter: none !important;
}

.calendar-full-smart-suggestion.courses-smart-suggestion > i {
  color: var(--courses-smart-suggestion-color, #38bdf8) !important;
  background: color-mix(in srgb, var(--courses-smart-suggestion-color, #38bdf8) 18%, transparent) !important;
}

.calendar-full-smart-suggestion.courses-smart-suggestion strong,
.calendar-full-smart-suggestion.courses-smart-suggestion em {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.calendar-smart-focus-active:has(#calendar-full-panel-content) .calendar-full-smartbar-shell.courses-searchbar--navbar {
  position: relative !important;
  z-index: 4102 !important;
}

.calendar-full-smart-focus-scrim.courses-smart-focus-scrim {
  z-index: 3000 !important;
}

@media (max-width: 1023px) {
  .mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar,
  .calendar-full-smartbar-shell.courses-searchbar--navbar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}


/* =========================================================
   V49.5.5 — Smartbar Calendrier : rendu strictement commun Élèves
   ========================================================= */
.mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar,
.mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar:focus-within,
.calendar-full-smartbar-shell.courses-searchbar--navbar,
.calendar-full-smartbar-shell.courses-searchbar--navbar:focus-within {
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-color: color-mix(in srgb, var(--color-border-subtle, #94a3b8) 58%, transparent) !important;
}

.mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar::before,
.mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar::after,
.calendar-full-smartbar-shell.courses-searchbar--navbar::before,
.calendar-full-smartbar-shell.courses-searchbar--navbar::after {
  display: none !important;
}

.calendar-full-smartbar-shell.courses-searchbar--navbar {
  min-width: min(30rem, calc(100vw - 6rem)) !important;
  max-width: min(560px, calc(100vw - 2rem)) !important;
}

.calendar-full-smartbar-shell .courses-searchbar__input {
  min-width: 0 !important;
}

@media (max-width: 1023px) {
  .mobile-shell-navbar .calendar-full-smartbar-shell.courses-searchbar--navbar,
  .calendar-full-smartbar-shell.courses-searchbar--navbar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}
