/* =============================================================
   sidebar-grupos.css
   Incluir en TODOS los módulos del coordinador:
   <link rel="stylesheet" href="<?=BASE_URL?>/assets/css/sidebar-grupos.css">
   ============================================================= */

/* ══════════════════════════════════════════════
   SIDEBAR — Grupos con color por módulo
   ══════════════════════════════════════════════ */
.sidebar-group {
  margin: 6px 0 2px;
  border-radius: 10px;
  overflow: hidden;
}

.sg-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 8px 14px 2px;
  display: block;
}

/* Los links dentro del grupo eliminan márgenes/radios propios */
.sidebar-group a {
  margin: 0 !important;
  border-radius: 0 !important;
  padding-left: 14px;
}
.sidebar-group a:last-child {
  border-radius: 0 0 8px 8px !important;
}

/* Separador entre secciones */
.sidebar-sep {
  height: 1px;
  background: rgba(255,255,255,.07);
  margin: 10px 8px;
}

/* ── Prácticas PPP — Azul ── */
.sidebar-group.g-practicas {
  background: rgba(59, 130, 246, .09);
  border-left: 3px solid #3b82f6;
}
.sidebar-group.g-practicas .sg-label        { color: #3b82f6; }
.sidebar-group.g-practicas a:hover,
.sidebar-group.g-practicas a.active         { background: rgba(59,130,246,.18); color: #2563eb; }

/* ── Vinculación — Verde ── */
.sidebar-group.g-vinculacion {
  background: rgba(16, 185, 129, .09);
  border-left: 3px solid #10b981;
}
.sidebar-group.g-vinculacion .sg-label      { color: #10b981; }
.sidebar-group.g-vinculacion a:hover,
.sidebar-group.g-vinculacion a.active       { background: rgba(16,185,129,.18); color: #059669; }

/* ── Titulación — Naranja ── */
.sidebar-group.g-titulacion {
  background: rgba(245, 158, 11, .09);
  border-left: 3px solid #f59e0b;
}
.sidebar-group.g-titulacion .sg-label       { color: #f59e0b; }
.sidebar-group.g-titulacion a:hover,
.sidebar-group.g-titulacion a.active        { background: rgba(245,158,11,.18); color: #d97706; }

/* ── Reportes CES — Morado ── */
.sidebar-group.g-reportes {
  background: rgba(139, 92, 246, .09);
  border-left: 3px solid #8b5cf6;
}
.sidebar-group.g-reportes .sg-label         { color: #8b5cf6; }
.sidebar-group.g-reportes a:hover,
.sidebar-group.g-reportes a.active          { background: rgba(139,92,246,.18); color: #7c3aed; }


/* ══════════════════════════════════════════════
   DASHBOARD — Cards de módulo con fondo de color
   ══════════════════════════════════════════════ */
.modulos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}
@media (max-width: 900px) { .modulos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .modulos-grid { grid-template-columns: 1fr; } }

.mcard {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 20px 18px;
  border-radius: 16px;
  border: 2px solid transparent;
  text-decoration: none !important;
  transition: transform .18s, box-shadow .18s;
  position: relative;
  overflow: hidden;
  color: inherit;
}
.mcard::before {
  content: '';
  position: absolute;
  right: -18px; top: -18px;
  width: 90px; height: 90px;
  border-radius: 50%;
  opacity: .12;
  background: currentColor;
}
.mcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.13);
}
.mcard-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.mcard-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
}
.mcard-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 20px;
  letter-spacing: .03em;
}
.mcard-num   { font-size: 38px; font-weight: 800; line-height: 1; }
.mcard-label { font-size: 14px; font-weight: 700; margin-top: 2px; }
.mcard-sub   { font-size: 11.5px; opacity: .6; margin-top: -6px; }

/* Prácticas PPP — Azul */
.mcard-practicas              { background: #dbeafe; border-color: #93c5fd; color: #1e3a8a; }
.mcard-practicas .mcard-icon  { background: #bfdbfe; color: #1d4ed8; }
.mcard-practicas .mcard-badge { background: #bfdbfe; color: #1e40af; }
.mcard-practicas .mcard-num   { color: #1d4ed8; }

/* Vinculación — Verde */
.mcard-vinculacion              { background: #dcfce7; border-color: #86efac; color: #14532d; }
.mcard-vinculacion .mcard-icon  { background: #bbf7d0; color: #15803d; }
.mcard-vinculacion .mcard-badge { background: #bbf7d0; color: #166534; }
.mcard-vinculacion .mcard-num   { color: #15803d; }

/* Titulación — Naranja */
.mcard-titulacion              { background: #fef3c7; border-color: #fcd34d; color: #78350f; }
.mcard-titulacion .mcard-icon  { background: #fde68a; color: #d97706; }
.mcard-titulacion .mcard-badge { background: #fde68a; color: #92400e; }
.mcard-titulacion .mcard-num   { color: #d97706; }

/* Reportes CES — Morado */
.mcard-reportes              { background: #ede9fe; border-color: #c4b5fd; color: #3b0764; }
.mcard-reportes .mcard-icon  { background: #ddd6fe; color: #7c3aed; }
.mcard-reportes .mcard-badge { background: #ddd6fe; color: #5b21b6; }
.mcard-reportes .mcard-num   { color: #7c3aed; }