/* ===============================
   PAGE WRAPPER
   =============================== */

.page-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Header & footer take natural height */
.ieee-header,
.ieee-footer {
  flex-shrink: 0;
}

/* ===============================
   MAIN LAYOUT
   =============================== */

.app-layout {
  flex: 1;                 /* fills remaining height */
  display: grid;
  grid-template-columns: 1fr; /* mobile first */
  overflow: hidden;        /* prevents page scroll */
}

/* Desktop */
@media (min-width: 992px) {
  .app-layout {
    grid-template-columns:
      320px                /* LEFT MENU */
      minmax(0, 1fr)       /* CENTER */
      360px;               /* RIGHT DATES */
  }
}

/* ===============================
   SCROLLABLE COLUMNS
   =============================== */

/* Mobile default */
.sidebar,
.content,
.dates {
  height: auto;
  overflow: visible;
}

/* ===============================
   BACKGROUNDS
   =============================== */

.sidebar,
.dates {
  background: #f8f9fa;
}

.content {
  background: #ffffff;
  padding: 2rem;
  overflow-x: hidden;
}

@media (max-width: 991px) {
  .sidebar,
  .dates {
    display: none;
  }
}