/**
 * @file
 * Shared event module page shell and empty-state placement.
 *
 * Keeps module hub pages (Timeline, Contacts, Guests, Layouts, Menus,
 * Checklist, Planning Partners) aligned when switching secondary-header tabs.
 *
 * Gap from secondary header to module title matches budget: only #main top
 * padding (40px in colors.css). Module shells must not add margin-top or
 * padding-top before the page title.
 */

/* ========================================
   MODULE PAGE SHELL
   ======================================== */

.ep-timeline-page,
.ep-contacts-overview,
.ep-guests-overview,
.ep-event-layouts-list:not(.ep-events-page),
.ep-event-menus-list,
.ep-checklist-landing,
.ep-checklist-display,
.ep-planning-partners-overview.ep-event-layouts-list,
.ep-layout-list {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--ep-event-module-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ep-spacing-md);
  padding-right: var(--ep-spacing-md);
}

/* No extra top offset — budget reference uses #main padding-top only. */
body:has(.ep-event-secondary-header) .ep-timeline-page,
body:has(.ep-event-secondary-header) .ep-contacts-overview,
body:has(.ep-event-secondary-header) .ep-guests-overview,
body:has(.ep-event-secondary-header) .ep-event-layouts-list:not(.ep-events-page),
body:has(.ep-event-secondary-header) .ep-event-menus-list,
body:has(.ep-event-secondary-header) .ep-checklist-landing,
body:has(.ep-event-secondary-header) .ep-checklist-display,
body:has(.ep-event-secondary-header) .ep-planning-partners-overview.ep-event-layouts-list,
body:has(.ep-event-secondary-header) .ep-layout-list {
  margin-top: 0;
  padding-top: 0;
}

/* Title inside a padded module box — drop top padding so title aligns with budget. */
body:has(.ep-event-secondary-header) .ep-calendar-event,
body:has(.ep-event-secondary-header) .ep-calendar-user,
body:has(.ep-event-secondary-header) .ep-calendar-organisation,
body:has(.ep-event-secondary-header) .ep-guests-event,
body:has(.ep-event-secondary-header) .ep-notes-container {
  padding-top: 0;
}

/* ========================================
   EMPTY-STATE PAGE STABILITY
   ======================================== */

.ep-timeline-page.ep-module-empty .ep-timeline-intro {
  padding: 0;
  margin: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ep-timeline-page.ep-module-empty .ep-timeline-content,
.ep-contacts-overview:has(.ep-contacts-empty) .ep-contacts-layout,
.ep-guests-overview:has(.ep-contacts-empty) .ep-guests-layout {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ep-contacts-overview:has(.ep-contacts-empty) .ep-contacts-layout {
  gap: 0;
  width: 100%;
}

.ep-contacts-overview:has(.ep-contacts-empty) .ep-contacts-actions:empty {
  display: none;
}

.ep-contacts-overview:has(.ep-contacts-empty) .ep-contacts-content {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ep-event-layouts-list:not(.ep-events-page):not(.ep-team-hub):not(.ep-templates-hub):has(> .ep-contacts-empty),
.ep-event-menus-list:has(> .ep-contacts-empty),
.ep-checklist-landing:has(> .ep-contacts-empty),
.ep-planning-partners-overview:has(> .ep-contacts-empty) {
  display: flex;
  flex-direction: column;
  align-items: center;
}
