.mn-grad-page    { background: #fbfffe; }
.mn-grad-sidebar { background: #d9fff1; }
.mn-grad-head    { background: #f6fefc; }

  .mn-card-hover { transition: box-shadow .2s ease, transform .2s ease; }
  .mn-card-hover:hover {
    box-shadow: 0 6px 24px rgba(8,145,178,.18) !important;
    transform: translateY(-2px);
  }

  /* back link */
  .ci-back { font-size:1.1rem; font-weight:600; color:blue; text-decoration:none; }
  .ci-back:hover { color:#0ea87a; text-decoration:underline; }

  /* table header */
.mn-thead th {
  background: #ffffff;
  color: #0f4c75;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 3px solid #38bdf8;
  white-space: nowrap;
}

  /* table rows */
  .mn-table tbody tr { font-size: .9rem; transition: background .12s ease; }
  .mn-table tbody tr:hover { background: linear-gradient(90deg, #f0fdf9 0%, #f0f9ff 100%); }
  .mn-table td { vertical-align: middle; border-color: #e8f8f2; }

  /* app-type / status badges */
  .app-type-badge {
    display: inline-block;
    font-size: .72rem; font-weight: 700;
    letter-spacing: .04em; text-transform: uppercase;
    padding: 3px 9px; border-radius: 20px;
    background: #e0f2fe; color: #0369a1;
    white-space: nowrap;
  }
  .app-type-badge.online   { background: #dcfce7; color: #166534; }
  .app-type-badge.fixed    { background: #fef9c3; color: #854d0e; }

  /* status pills */
  .status-pill {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: .78rem; font-weight: 700;
    padding: 4px 10px; border-radius: 20px; white-space: nowrap;
  }
  .status-needs-info  { background: #fdf4ff; color: #7e22ce; border: 1px solid #e9d5ff; }
  .status-draft       { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
  .status-under-rev   { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
  .status-returned    { background: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }
  .status-default     { background: #f0f9ff; color: #0369a1; border: 1px solid #bae6fd; }

  /* action link buttons */
  .act-link {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: .9rem; font-weight: 600;
    padding: 3px 10px; border-radius: 6px;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
    
  }
  .act-edit   { background: #dcfce7; color: #166534; }
  .act-edit:hover  { background: #bbf7d0; color: #14532d; }
  .act-view   { background: #ffffff; color: #0369a1; }
  .act-view:hover  { background: #bae6fd; color: #0c4a6e; }
  .act-copy   { background: #fef9c3; color: #854d0e; }
  .act-copy:hover  { background: #fde68a; color: #713f12; }
  .act-delete { background: #fff1f2; color: #be123c; }
  .act-delete:hover{ background: #fecdd3; color: #9f1239; }
  
  /* primary admin badge */
  .primary-badge {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: .72rem; font-weight: 700;
    letter-spacing: .05em; text-transform: uppercase;
    padding: 3px 10px; border-radius: 20px;
    background: linear-gradient(90deg, #d1fae5 0%, #e0f2fe 100%);
    color: #0369a1; border: 1px solid #b2eadb;
    white-space: nowrap;
  }
  .mn-pill {
    display: inline-flex; align-items: center; gap: 8px;
    font-weight: 700; letter-spacing: .02em;
    padding: 12px 32px; border-radius: 10px; text-decoration: none;
    transition: opacity .15s ease, transform .15s ease, box-shadow .2s ease;
  }
  .mn-pill:hover {
    opacity: .88; transform: scale(1.03); text-decoration: none;
    box-shadow: 0 4px 14px rgba(8,145,178,.30);
  }
  .mn-pill-confirm {
    background: linear-gradient(90deg, #0ea87a 0%, #0891b2 100%);
    color: #fff !important;
  }
  .mn-pill-back {
    background: #e0f2fe; color: #0369a1 !important;
    border: 1.5px solid #bae6fd;
  }
  .mn-pill-back:hover { background: #bae6fd; }
  .mn-pill-cancel {
    background: #fff1f2; color: #be123c !important;
    border: 1.5px solid #fecdd3;
  }
  .mn-pill-cancel:hover { background: #fecdd3; }
  .mn-pill-delete {
  background: #fff1f2;
  color: #be123c !important;
  border: 2px solid #f87171;
}
.mn-pill-delete:hover {
  background: #fecdd3;
  box-shadow: 0 4px 14px rgba(220,38,38,.20) !important;
}
/* ── CEU modal ── */
.ceu-modal-header {
  background: linear-gradient(90deg, #0ea87a 0%, #0891b2 100%);
}

.ceu-table thead th {
  background: linear-gradient(90deg, #d1fae5 0%, #e0f2fe 100%);
  color: #0369a1;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 2px solid #b2eadb;
}
.ceu-table tbody tr:hover {
  background: linear-gradient(90deg, #f0fdf9 0%, #f0f9ff 100%);
}
.ceu-table td { vertical-align: middle; border-color: #e8f8f2; }

.ceu-badge {
  display: inline-block;
  font-size: .72rem; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 20px;
  background: #dcfce7; color: #166534;
  border: 1px solid #bbf7d0;
}

.btn-ceu-trigger {
  display: inline-flex; align-items: center; gap: 4px;
  font-weight: 600; padding: 3px 10px;
  border-radius: 6px; text-decoration: none;
  background: #dcfce7; color: #166534;
  border: none; cursor: pointer;
  transition: background .15s ease;
}
.btn-ceu-trigger:hover { background: #bbf7d0; color: #14532d; }
/* ── Course catalogue additions ── */

/* ══════════════════════════════════════════════════
   CATALOGUE INLINE LINKS
   replaces button-style act-link for catalogue pages
   ══════════════════════════════════════════════════ */
.cat-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #0000ff;
  font-weight: 600;
  text-decoration: none;
  transition: color .15s ease;
}
.cat-link:hover { color: #0ea87a; text-decoration: underline; }

.cat-link-register { color: #0000ff; }
.cat-link-register:hover { color: #14532d; }

/* ══════════════════════════════════════════════════
   CREDITS PILL — subtle, low contrast
   ══════════════════════════════════════════════════ */
.ceu-pill {
  display: inline-block;
  color: #374151;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 2px 8px;
  font-weight: 500;
  white-space: normal;
  line-height: 1.4;
}

/* ══════════════════════════════════════════════════
   CATALOGUE STATUS BADGES — updated
   ══════════════════════════════════════════════════ */
.status-open {
  background: transparent;
  color: #166534;
  border: none;
  padding: 0;
  font-weight: 600;
}
.status-closed {
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #cbd5e1;
}
.status-pill-cat {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-weight: 700;
}

/* ══════════════════════════════════════════════════
   MONTH GROUP HEADER — Option 4 frosted
   ══════════════════════════════════════════════════ */
.month-header {
  background: linear-gradient(90deg, #e0f2fe 0%, #dcfce7 100%);
  color: #0f4c75;
  font-weight: 800;
  border-left: 4px solid #0369a1;
  padding: 10px 18px;
  border-radius: 0;
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ══════════════════════════════════════════════════
   TYPE TOGGLE PILLS
   ══════════════════════════════════════════════════ */
.type-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  letter-spacing: .02em;
  padding: 8px 24px;
  border-radius: 20px;
  text-decoration: none;
  transition: opacity .15s ease, transform .15s ease;
}
.type-pill:hover { opacity: .88; transform: scale(1.03); text-decoration: none; }
.type-pill-fixed  { background: linear-gradient(90deg, #34d399, #38bdf8); color: #00205b !important; }
.type-pill-online { background: #e0f2fe; color: #0369a1 !important; border: 1.5px solid #bae6fd; }

/* ══════════════════════════════════════════════════
   FILTER CARD
   ══════════════════════════════════════════════════ */
.filter-card {
  background: #fff;
  border: 1px solid #b2eadb;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 24px;
  box-shadow: 0 2px 10px rgba(10,180,140,.07);
}

/* ══════════════════════════════════════════════════
   SEARCH BUTTON
   ══════════════════════════════════════════════════ */
.btn-search {
  color: #00205b;
  border: none;
  font-weight: 700;
  padding: 8px 28px;
  border-radius: 20px;
  transition: opacity .15s ease, transform .15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.btn-search:hover { opacity: .88; transform: scale(1.03); color: #00205b; }

/* ══════════════════════════════════════════════════
   CORE COMP BADGE
   ══════════════════════════════════════════════════ */
.core-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fef9c3;
  color: #854d0e;
  border: 1px solid #fde68a;
  border-radius: 20px;
  padding: 3px 10px;
  font-weight: 700;
  text-decoration: none;
}
.core-badge:hover { background: #fde68a; color: #713f12; text-decoration: none; }

/* ══════════════════════════════════════════════════
   SECTION HEADING STRIPE (course detail page)
   ══════════════════════════════════════════════════ */
.cc-heading-stripe {
  font-weight: 700;
  color: #004040;
  border-left: 5px solid #1a6fc4;
  padding-left: .75rem;
  margin-bottom: 1.25rem;
}

/* ══════════════════════════════════════════════════
   MOBILE — stacked card table layout
   ══════════════════════════════════════════════════ */
@media (max-width: 767px) {

  /* hide column headers — labels come from data-label */
  .mn-table thead { display: none; }

  /* each row becomes a card */
  .mn-table tbody tr {
    display: block;
    border: 1px solid #e0f7f0;
    border-radius: 10px;
    margin-bottom: 12px;
    padding: 10px 14px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(10,180,140,.07);
  }

  /* each cell becomes a labelled row */
  .mn-table td {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 6px 0;
    border: none;
    border-bottom: 1px solid #f0fdf4;
    white-space: normal !important;
    min-width: 0;
  }
  .mn-table td:last-child { border-bottom: none; }

  /* inject column label from data-label attribute */
  .mn-table td::before {
    content: attr(data-label);
    font-weight: 700;
    color: #0f4c75;
    text-transform: uppercase;
    letter-spacing: .04em;
    min-width: 90px;
    flex-shrink: 0;
    padding-top: 2px;
    font-size: .72rem;
  }

  /* month header — round all corners on mobile */
  .month-header { border-radius: 8px 8px 0 0; }

  /* filter form stacks vertically */
  .filter-card .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  /* type toggle wraps */
  .type-pill { padding: 7px 16px; }

  /* search button full width */
  .btn-search { width: 100%; }

  /* table card rounding on mobile */
  .mn-table ~ .card,
  .card.mn-card-hover { border-radius: 0 0 10px 10px !important; }
}

@media (max-width: 480px) {
  .mn-table td::before { min-width: 80px; }
  .type-pill { padding: 6px 12px; }
}