/* /public_html/assets/css/dashboard-calendar.css */

/* ========== CALENDRIER COMPLET (ADMIN) ========== */

.calendar-full-layout {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

@media (min-width: 960px) {
    .calendar-full-layout {
        display: grid;
        grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr);
        align-items: flex-start;
        gap: var(--space-4);
    }
}

.calendar-full-column-header {
    margin-bottom: 0.75rem;
}

.calendar-full-column-title {
    margin: 0 0 0.1rem;
    font-size: 1.05rem;
    font-weight: 600;
}

.calendar-full-column-subtitle {
    margin: 0;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.calendar-full-empty {
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

/* Liste des jours */

.calendar-full-days {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.calendar-full-day {
    border-radius: var(--radius-lg);
    padding: var(--space-3);
    background: var(--color-surface-soft);
    border: 1px solid var(--color-border-subtle);
    box-shadow: var(--shadow-subtle);
}

.calendar-full-day-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
}

.calendar-full-day-date {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.calendar-full-day-dow {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--color-text-muted);
}

.calendar-full-day-label {
    font-weight: 600;
}

.calendar-full-day-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: var(--color-text-muted);
}

.calendar-full-day-content {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.calendar-day-item {
    border-radius: 0.8rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--color-border-subtle);
    background: var(--color-surface);
    font-size: 0.85rem;
}

.calendar-day-item-course {
}

.calendar-day-item-event {
    background: color-mix(in srgb, var(--color-surface-soft) 90%, var(--color-accent-soft) 10%);
}

.calendar-day-item-event.is-highlight {
    border-color: color-mix(
        in srgb,
        var(--color-accent) 75%,
        var(--color-border-subtle) 25%
    );
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.45);
}

.calendar-day-item-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.3rem;
}

.calendar-event-type {
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--color-text-muted);
}

.calendar-event-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
}

.calendar-event-badge {
    border-radius: var(--radius-pill);
    padding: 0.1rem 0.6rem;
    border: 1px solid var(--color-border-subtle);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.calendar-event-badge-highlight {
    border-color: transparent;
    background: linear-gradient(135deg, #fb7185, #f97316);
    color: #fff;
}

.calendar-day-item-main {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.calendar-day-item-time {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.calendar-day-item-line {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.calendar-day-style-badge {
    border-radius: 999px;
    padding: 0.1rem 0.6rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: #111827;
}

.calendar-day-level {
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.calendar-day-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.calendar-day-meta i {
    font-size: 0.8em;
    margin-right: 0.15rem;
}

.calendar-event-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.calendar-event-description {
    margin: 0.1rem 0 0;
    font-size: 0.85rem;
}

/* Badges d'état d’un cours */

.calendar-course-status-row {
    margin-top: 0.25rem;
}

.calendar-course-badge {
    display: inline-flex;
    align-items: center;
    border-radius: var(--radius-pill);
    padding: 0.05rem 0.55rem;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

/* annulé */
.calendar-course-badge.is-cancelled {
    background: rgba(248, 113, 113, 0.12);
    border: 1px solid rgba(248, 113, 113, 0.5);
    color: #fecaca;
    text-decoration: none;
}

/* jour d'origine d'un report */
.calendar-course-badge.is-rescheduled_from {
    background: rgba(234, 179, 8, 0.12);
    border: 1px solid rgba(234, 179, 8, 0.45);
    color: #facc15;
}

/* séance déplacée ici */
.calendar-course-badge.is-rescheduled_to {
    background: rgba(139, 92, 246, 0.12);
    border: 1px solid rgba(139, 92, 246, 0.45);
    color: #ddd6fe;
}

/* séance ponctuelle (extra) */
.calendar-course-badge.is-extra {
    background: rgba(59, 130, 246, 0.12);
    border: 1px solid rgba(59, 130, 246, 0.45);
    color: #bfdbfe;
}

/* clickable pour tooltip */
.calendar-course-badge-clickable {
    cursor: pointer;
}

/* Texte noir en mode clair */

:where(body.theme-light, html[data-theme="light"])
.calendar-course-badge.is-cancelled,
:where(body.theme-light, html[data-theme="light"])
.calendar-course-badge.is-rescheduled_from,
:where(body.theme-light, html[data-theme="light"])
.calendar-course-badge.is-rescheduled_to,
:where(body.theme-light, html[data-theme="light"])
.calendar-course-badge.is-extra {
    color: #111827;
}

/* Accent visuel cours annulés / reportés / extra (light) */

:where(body.theme-light, html[data-theme="light"])
.calendar-day-item-course.calendar-course-status-cancelled {
    background: linear-gradient(135deg, #fee2e2, #fef2f2);
    border-color: rgba(248, 113, 113, 0.9);
    color: #0f172a;
}

:where(body.theme-light, html[data-theme="light"])
.calendar-day-item-course.calendar-course-status-rescheduled_from {
    background: linear-gradient(135deg, #fef3c7, #fffbeb);
    border-color: rgba(234, 179, 8, 0.9);
    color: #0f172a;
}

:where(body.theme-light, html[data-theme="light"])
.calendar-day-item-course.calendar-course-status-rescheduled_to {
    background: linear-gradient(135deg, #ede9fe, #faf5ff);
    border-color: rgba(139, 92, 246, 0.9);
    color: #0f172a;
}

:where(body.theme-light, html[data-theme="light"])
.calendar-day-item-course.calendar-course-status-extra {
    background: linear-gradient(135deg, #e0f2fe, #eff6ff);
    border-color: rgba(59, 130, 246, 0.9);
    color: #0f172a;
}

/* Mode sombre : glow coloré */

html[data-theme="dark"] .calendar-day-item-course.calendar-course-status-cancelled {
    border-color: rgba(248, 113, 113, 0.9);
    box-shadow:
        0 0 0 1px rgba(248, 113, 113, 0.75),
        0 0 34px rgba(248, 113, 113, 0.45);
}

html[data-theme="dark"] .calendar-day-item-course.calendar-course-status-rescheduled_from {
    border-color: rgba(234, 179, 8, 0.9);
    box-shadow:
        0 0 0 1px rgba(234, 179, 8, 0.75),
        0 0 34px rgba(234, 179, 8, 0.45);
}

html[data-theme="dark"] .calendar-day-item-course.calendar-course-status-rescheduled_to {
    border-color: rgba(139, 92, 246, 0.9);
    box-shadow:
        0 0 0 1px rgba(139, 92, 246, 0.75),
        0 0 34px rgba(139, 92, 246, 0.45);
}

html[data-theme="dark"] .calendar-day-item-course.calendar-course-status-extra {
    border-color: rgba(59, 130, 246, 0.9);
    box-shadow:
        0 0 0 1px rgba(59, 130, 246, 0.75),
        0 0 34px rgba(59, 130, 246, 0.45);
}

/* Tooltip pour motif d'annulation / report */

.calendar-course-tooltip {
    max-width: 260px;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    font-size: 0.8rem;
    line-height: 1.3;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.45);
    background: var(--theme-surface, #020617);
    color: var(--theme-text, #e5e7eb);
    pointer-events: none;
    white-space: nowrap;
}

/* Impression */
/* Cache le chip "Imprimer" pour le moment */
#calendar-print-btn{
  display: none !important;
}

@media print {
    body {
        background: #ffffff !important;
    }

    header,
    .site-navbar,
    .main-footer,
    .theme-toggle,
    #public-view,
    .panel-header-common {               /* ✅ nouveau header commun */
        display: none !important;
    }

    #dashboard-view {
        box-shadow: none !important;
        padding: 0 !important;
    }

    .calendar-full-days {
        box-shadow: none !important;
    }

    .calendar-full-day {
        page-break-inside: avoid;
        break-inside: avoid;
    }
}

/* ====== Toggle 3 positions "État du cours" ====== */

.course-state-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 4px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.16);
    box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.35);
}

body.theme-light .course-state-toggle {
    background: rgba(148, 163, 184, 0.16);
    box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.35);
}

html[data-theme="dark"] .course-state-toggle {
    background: rgba(15, 23, 42, 0.9);
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.85);
}

.course-state-pill {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    border: none;
    background: transparent;
    border-radius: 9999px;
    padding: 6px 14px;
    font-size: 0.875rem;
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 140ms ease-out, opacity 140ms ease-out;
    color: rgba(15, 23, 42, 0.78);
}

html[data-theme="dark"] .course-state-pill {
    color: rgba(226, 232, 240, 0.85);
}

/* Pastille colorée qui glisse */

.course-state-highlight {
    position: absolute;
    inset: 3px;
    width: calc((100% - 6px) / 3);
    border-radius: 9999px;
    background: #16a34a;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.45);
    transform: translateX(0%);
    transition:
        transform 160ms ease-out,
        background-color 160ms ease-out,
        box-shadow 160ms ease-out;
    z-index: 0;
}

/* position + couleur */

.course-state-toggle[data-current-state="maintained"] .course-state-highlight {
    background: #16a34a;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.45);
    transform: translateX(0%);
}

.course-state-toggle[data-current-state="cancelled"] .course-state-highlight {
    background: #ef4444;
    box-shadow: 0 8px 18px rgba(239, 68, 68, 0.45);
    transform: translateX(100%);
}

.course-state-toggle[data-current-state="rescheduled"] .course-state-highlight {
    background: #f97316;
    box-shadow: 0 8px 18px rgba(249, 115, 22, 0.5);
    transform: translateX(200%);
}

/* texte actif */

.course-state-toggle[data-current-state="maintained"] .course-state-pill-maintained,
.course-state-toggle[data-current-state="cancelled"] .course-state-pill-cancelled,
.course-state-toggle[data-current-state="rescheduled"] .course-state-pill-rescheduled {
    color: #f9fafb;
    font-weight: 600;
}

/* autres estompés */

.course-state-toggle[data-current-state="maintained"] .course-state-pill-cancelled,
.course-state-toggle[data-current-state="maintained"] .course-state-pill-rescheduled,
.course-state-toggle[data-current-state="cancelled"] .course-state-pill-maintained,
.course-state-toggle[data-current-state="cancelled"] .course-state-pill-rescheduled,
.course-state-toggle[data-current-state="rescheduled"] .course-state-pill-maintained,
.course-state-toggle[data-current-state="rescheduled"] .course-state-pill-cancelled {
    opacity: 0.7;
}

/* =========================================================
   CALENDRIER COMPLET — FILTRES EN CHIPS (STYLE = PANEL COURS)
   ========================================================= */

.calendar-filters{
  display: grid;
  gap: 6px !important;
  justify-items: center;
  width: 100%;
}

/* 2 lignes (styles puis profs) */
.calendar-filter-row{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;         /* 1 ligne */
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-inline: 10px;
  padding-block: 6px !important; /* safe rings */
  gap: var(--calendar-chip-gap);
}
.calendar-filter-row::-webkit-scrollbar{ display:none; }

/* tailles fluides (comme cours) */
.calendar-filters{
  --calendar-chip-size: clamp(30px, 3.4vw, 38px);
  --calendar-chip-gap:  clamp(6px, 1.2vw, 10px);
  --calendar-chip-font: clamp(12px, 1.3vw, 14px);
}

/* Base commune */
.calendar-filter-row .filter-chip{
  padding: 0 !important;
  min-width: var(--calendar-chip-size) !important;
  min-height: var(--calendar-chip-size) !important;
  width: var(--calendar-chip-size) !important;
  height: var(--calendar-chip-size) !important;

  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  position: relative;
  overflow: visible !important;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none;

  transform: translateZ(0);
  will-change: transform, box-shadow, filter;
}

/* =========================
   STYLE CHIP (icône/txt)
   ========================= */
.calendar-style-chip{
  --chip-accent: var(--badge-color, var(--theme-primary));
}

/* icône bootstrap */
.calendar-style-chip .calendar-style-chip-icon{
  font-size: calc(var(--calendar-chip-size) * 0.48);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 220ms ease, opacity 220ms ease, filter 220ms ease;
}

/* fallback txt */
.calendar-style-chip .calendar-style-chip-txt{
  font-size: var(--calendar-chip-font);
  font-weight: 800;
  letter-spacing: .02em;
  transition: color 220ms ease, opacity 220ms ease, filter 220ms ease;
}

/* double ring collé */
.calendar-style-chip::after{
  content:"";
  position:absolute;
  inset: 0;
  border-radius: 999px;
  pointer-events:none;
  z-index: 5;

  box-shadow:
    0 0 0 var(--style-inner-w, 1px) var(--style-inner-color, rgba(148,163,184,0.30)),
    0 0 0 calc(var(--style-inner-w, 1px) + var(--style-outer-w, 1px))
      var(--style-outer-color, rgba(148,163,184,0.55));

  transition: box-shadow 420ms ease, filter 420ms ease;
}

/* OFF */
.calendar-style-chip:not(.is-active){
  --style-inner-w: 1px;
  --style-outer-w: 1px;
  --style-inner-color: rgba(148,163,184,0.22);
  --style-outer-color: rgba(148,163,184,0.50);
}
html[data-theme="dark"] .calendar-style-chip:not(.is-active){
  --style-inner-color: rgba(148,163,184,0.16);
  --style-outer-color: rgba(148,163,184,0.35);
}

/* ON */
.calendar-style-chip.is-active{
  --style-inner-w: 2px;
  --style-outer-w: 2px;
  --style-inner-color: color-mix(in srgb, var(--chip-accent) 70%, rgba(255,255,255,0.10));
  --style-outer-color: color-mix(in srgb, var(--chip-accent) 90%, rgba(148,163,184,0.10));
  filter: saturate(1.06);
}

/* Couleur icône : gris OFF / couleur style ON */
.calendar-style-chip:not(.is-active) .calendar-style-chip-icon,
.calendar-style-chip:not(.is-active) .calendar-style-chip-txt{
  color: color-mix(in srgb, var(--color-text-muted, #94a3b8) 85%, transparent) !important;
  opacity: .85;
  filter: saturate(0.65);
}
html[data-theme="dark"] .calendar-style-chip:not(.is-active) .calendar-style-chip-icon,
html[data-theme="dark"] .calendar-style-chip:not(.is-active) .calendar-style-chip-txt{
  color: rgba(148,163,184,0.75) !important;
  opacity: .8;
}
.calendar-style-chip.is-active .calendar-style-chip-icon,
.calendar-style-chip.is-active .calendar-style-chip-txt{
  color: var(--chip-accent) !important;
  opacity: 1;
  filter: saturate(1.15);
}

/* =========================
   TEACHER CHIP (avatar)
   ========================= */

.calendar-teacher-chip{
  position: relative;
}

/* avatar full size */
.calendar-teacher-chip .calendar-teacher-chip-avatar{
  position: absolute;
  inset: 0;
  border-radius: 999px;
  overflow: hidden;
  z-index: 1;
  display:flex;
  align-items:center;
  justify-content:center;
  background: color-mix(in srgb, var(--color-surface) 88%, #ffffff 12%);
}

.calendar-teacher-chip .calendar-teacher-chip-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}

.calendar-teacher-chip .calendar-teacher-chip-initials{
  position: relative;
  z-index: 2;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--color-text);
}

/* avatar N&B quand OFF */
.calendar-teacher-chip:not(.is-active) .calendar-teacher-chip-avatar img{
  filter: grayscale(1);
  opacity: .75;
}
.calendar-teacher-chip:not(.is-active) .calendar-teacher-chip-initials{
  opacity: .55;
}
html[data-theme="dark"] .calendar-teacher-chip:not(.is-active) .calendar-teacher-chip-avatar img{
  opacity: .85;
}

/* ring double (fine OFF / épais ON) */
.calendar-teacher-chip::after{
  content:"";
  position:absolute;
  inset: 0;
  border-radius: 999px;
  pointer-events:none;
  z-index: 5;

  box-shadow:
    0 0 0 var(--teacher-inner-w, 1px) var(--teacher-inner-color, rgba(148,163,184,0.25)),
    0 0 0 calc(var(--teacher-inner-w, 1px) + var(--teacher-outer-w, 1px))
      var(--teacher-outer-color, rgba(148,163,184,0.55));

  transition: box-shadow 420ms ease, filter 420ms ease;
}

/* OFF */
.calendar-teacher-chip:not(.is-active){
  --teacher-inner-w: 1px;
  --teacher-outer-w: 1px;
  --teacher-inner-color: rgba(148,163,184,0.22);
  --teacher-outer-color: rgba(148,163,184,0.50);
}
html[data-theme="dark"] .calendar-teacher-chip:not(.is-active){
  --teacher-inner-color: rgba(148,163,184,0.16);
  --teacher-outer-color: rgba(148,163,184,0.35);
}

/* ON */
.calendar-teacher-chip.is-active{
  --teacher-inner-w: 2px;
  --teacher-outer-w: 2px;

  /* accent piloté par JS (style sélectionné ou fallback) */
  --teacher-inner-color: color-mix(in srgb, var(--chip-ring-accent, #6366f1) 70%, rgba(255,255,255,0.10));
  --teacher-outer-color: color-mix(in srgb, var(--chip-ring-accent, #6366f1) 90%, rgba(148,163,184,0.10));

  filter: saturate(1.06);
}

/* =========================
   CHIP "TOUS" plus petite
   ========================= */

.calendar-style-chip--all{
  --all-scale: 0.80;
  width:  calc(var(--calendar-chip-size) * var(--all-scale)) !important;
  height: calc(var(--calendar-chip-size) * var(--all-scale)) !important;
  min-width:  calc(var(--calendar-chip-size) * var(--all-scale)) !important;
  min-height: calc(var(--calendar-chip-size) * var(--all-scale)) !important;
}

/* =========================================================
   CALENDRIER FULL — CHIPS (basé sur ui-controls-chips.css)
   ========================================================= */

.calendar-full-chip-stack{
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: center;
  margin-top: var(--space-2);
}

.calendar-full-chip-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
}

.calendar-full-chip-list{
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
}

/* tailles par “famille” */
.calendar-filter-chip--monthnav{ --chip-scale: .90; }
.calendar-filter-chip--type{ --chip-scale: 1; }
.calendar-filter-chip--student{ --chip-scale: 1; }
.calendar-filter-chip--style{ --chip-scale: 1.05; }
.calendar-filter-chip--teacher-avatar{ --chip-scale: 1.05; }
.calendar-filter-chip--month{ --chip-scale: 1; } /* c'est un chip texte */
.calendar-filter-chip--student{ --chip-size: 38px; }

/* Tous les styles = anneau multi-couleurs (via --chip-ring en JS) */
.calendar-filter-chip--allstyles::before{
  background: var(--chip-ring, rgba(255,255,255,0.08));
  opacity: .92;
}

/* Le chip “mois” est texte, pas icône */
.calendar-filter-chip--month.chip--text .chip__txt{
  font-size: clamp(0.72rem, 1.8vw, 0.88rem);
  letter-spacing: .01em;
  padding: 0 14px;
  white-space: nowrap;
}

.calendar-filter-chip--month{
  width: auto;
  min-width: clamp(92px, 22vw, 170px);
  padding: 0 6px;
}

/* Si tu veux que la rangée reste clean sur mobile */
@media (max-width: 719px){
  .calendar-full-chip-row{
    gap: var(--space-1);
  }
  .calendar-filter-chip--month{
    min-width: 150px;
  }
}

/* Cache les filtres natifs (listCombo) : on garde la logique JS */
.calendar-full-hidden-filters{
  display:none !important;
}

/* Chip mois un poil plus longue */
.calendar-filter-chip--month-short{
  min-width: 92px;
  justify-content: center;
}

/* Chip contenu unique : on évite qu’elle paraisse "perdue" */
.calendar-filter-chip--type-single{
  margin-left: var(--space-2);
}

/* =========================================
   CALENDRIER FULL — CHIPS RESPONSIVE GLOBAL
   ========================================= */

.calendar-full-panel{
  --chip-size: clamp(
    22px,
    calc(22px + (100vw - 320px) * 0.1),
    38px
  );

  --chip-gap: clamp(
    10px,
    calc(10px + (100vw - 320px) * 0.030769),
    12px
  );
}

/* Les rangées gardent le gap responsive */
.calendar-full-panel .courses-filter-row{
  gap: var(--chip-gap);
}

/* Les blocs de chips (styles / profs / mois / type / élèves) utilisent la même logique */
.calendar-full-panel .calendar-full-chip-list{
  display: inline-flex;
  align-items: center;
  gap: var(--chip-gap);
  flex-wrap: nowrap;
}

/* Les chips icône (reset, print, nav mois, type, styles, profs...) */
.calendar-full-panel .chip.chip--icon,
.calendar-full-panel .chip.chip--avatar,
.calendar-full-panel .chip.chip--action{
  width: calc(var(--chip-size) * var(--chip-scale, 1));
  height: calc(var(--chip-size) * var(--chip-scale, 1));
  min-width: calc(var(--chip-size) * var(--chip-scale, 1));
  min-height: calc(var(--chip-size) * var(--chip-scale, 1));
}

/* Taille icône à l’intérieur (cohérente) */
.calendar-full-panel .chip.chip--icon i{
  font-size: calc(var(--chip-size) * 0.48);
}

/* Chips texte (ex: mois au milieu) : hauteur identique, padding proportionnel */
.calendar-full-panel .chip.chip--text{
  min-height: var(--chip-size);
  height: var(--chip-size);
  padding-inline: clamp(10px, calc(var(--chip-size) * 0.55), 18px);
  font-size: clamp(.82rem, .9vw, .95rem);
}

/* Bonus : les wrappers d’actions suivent le même gap */
.calendar-full-panel .panel-inline-actions{
  gap: var(--chip-gap) !important;
}
