*, *::before, *::after { box-sizing: border-box; }
html, body{ max-width:100%; overflow-x:hidden; margin-bottom:0!important; padding-bottom:0!important; min-height:600px; }
#crm-container,.crm-container,#crm-main-content-wrapper{ max-width:100%; overflow-x:hidden; }
.crm-event-list{ margin-bottom:0!important; padding-bottom:0!important; }
.crm-page-title-wrapper h1,.crm.page-title{ display:none!important; }

.mealcal{ margin-top:12px; width:100%; max-width:100%; }
.mealcal__header{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; width:100%; max-width:100%; }
.mealcal__legend{ display:flex; gap:10px; align-items:center; font-weight:600; flex-wrap:wrap; }
.mealcal__legendSep{ opacity:.6; padding:0 4px; }

.mealcal__chip{
  display:inline-flex; align-items:center; justify-content:center;
  padding:4px 8px; border-radius:999px;
  font-size:12px; font-weight:800;
  border:1px solid rgba(0,0,0,.10);
  white-space:nowrap;
}
.mealcal__chip--repas{ background: rgba(255, 167, 38, .25); }
.mealcal__chip--prep{ background: rgba(255, 241, 118, .45); }
.mealcal__chip--service{ background: rgba(144, 202, 249, .45); }

.mealcal__dot{ width:10px; height:10px; border-radius:999px; display:inline-block; vertical-align:middle; }
.mealcal__dot--ok{ background:#2e7d32; }
.mealcal__dot--no{ background:#c62828; opacity:.55; }

.mealcal__nav{ margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.mealcal__btn{ padding:8px 10px; border-radius:10px; border:1px solid #ddd; background:#fff; cursor:pointer; font:inherit; max-width:100%; }
.mealcal__btn:hover{ background:rgba(0,0,0,.03); }
.mealcal__btn--primary{ padding:8px 12px; font-weight:800; }

.mealcal__months{ display:grid; gap:12px; width:100%; max-width:100%; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }
@media (max-width:360px){ .mealcal__months{ grid-template-columns:1fr; } }

.mealcal__month{ background:#fafafa; border:1px solid #eee; border-radius:12px; padding:12px; width:100%; max-width:100%; overflow:hidden; }
.mealcal__title{ font-weight:800; margin-bottom:8px; }

.mealcal__grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; width:100%; max-width:100%; min-width:0; }
.mealcal__dow{ font-size:12px; font-weight:700; opacity:.7; text-align:center; padding:4px 0; min-width:0; }

.mealcal__day{
  position:relative;
  border-radius:12px;
  background:#fff;
  border:1px solid #eee;
  user-select:none;
  min-height:54px;
  min-width:0;
  padding:8px 8px 10px;
}
.mealcal__day--empty{ background:transparent; border-color:transparent; }
.mealcal__day--no{ opacity:.55; }

.mealcal__daynum{
  font-weight:800;
  text-align:left;
  line-height:1;
  margin-bottom:8px; /* space before event pills */
}

.mealcal__stack{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.mealcal__ev{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  text-decoration: none;
  color: inherit;

  border-radius: 10px;
  padding: 10px 10px 8px;   /* padding top un peu plus grand */
  border: 1px solid rgba(0,0,0,.08);

  font-weight: 800;
  font-size: 12px;
  line-height: 1.1;

  /* réserve de la place pour la pastille au-dessus */
  margin-top: 10px;
}

.mealcal__evLabel{ opacity:.95;padding-top: 2px; }

.mealcal__evBadge{
  position: absolute;
  top: -12px;               /* place la pastille au-dessus */
  left: 50%;
  transform: translateX(-50%);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 22px;
  height: 18px;
  padding: 0 6px;

  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;

  color: #fff;
  background: #2e7d32;      /* vert */

  z-index: 2;
  pointer-events: none;     /* clic toujours sur le lien */
}

.mealcal__evBadge--full{ background:#c62828!important; }

/* force background even if theme overrides <a> */
.mealcal .mealcal__ev.mealcal__ev--repas{
  background: rgba(255, 167, 38, .22) !important;   /* orange clair */
}
.mealcal .mealcal__ev.mealcal__ev--prep{
  background: rgba(255, 241, 118, .42) !important;  /* jaune clair */
}
.mealcal .mealcal__ev.mealcal__ev--service{
  background: rgba(144, 202, 249, .42) !important;  /* bleu clair */
}

.mealcal__debug{
  font:12px/1.35 monospace;
  background:#eef7ff;
  border:1px solid #9ec9ff;
  padding:8px;
  margin:8px 0;
  overflow:auto;
}

.mealcal__ev.is-disabled{
  opacity: .55;
  cursor: not-allowed;
  pointer-events: auto; /* on garde le hover mais on bloque click via JS */
  filter: grayscale(15%);
}

@media (max-width:420px){
  #mealcalNextMeal{ flex:1 0 100%; width:100%; }
  .mealcal__month{ padding:8px; }
  .mealcal__grid{ gap:4px; }
  .mealcal__day{ padding:7px; min-height:52px; }
  .mealcal__dow{ font-size:11px; padding:2px 0; }
  .mealcal__btn{ padding:6px 8px; font-size:13px; }
  .mealcal__ev{ padding:6px 7px; font-size:12px; }
}