html, body { height: 100%; margin: 0; padding: 0; overflow-x: hidden; }
body { min-height: 100vh; box-sizing: border-box; }
.card-icon { font-size: 2rem; color: #0d6efd; }

/* Sidebar fijo */
.sidebar {
  width: 250px;
  background-color: #e3f2fd;
  color: #0d47a1;
  position: fixed;
  top: 0; bottom: 0; left: 0;
  border-right: 1px solid #dee2e6;
}
.sidebar h4 {
  display: block; width: 100%;
  background-color: #1b82cc; color: #fff;
  padding: 10px 15px; margin: 0;
  border-bottom: 1px solid #90caf9;
  font-weight: 600;
}

/* Navbar y main respetan el sidebar */
.navbar { margin-left: 250px; width: calc(100% - 250px); }
.main { margin-left: 250px; padding: 5px; }

/* Móviles */
@media (max-width: 991px) {
  .sidebar { display: none; }
  .navbar { margin-left: 0; width: 100%; }
  .main { margin-left: 0; }
}

/* Enlaces del menú (escritorio y móvil) */
.sidebar .nav-link,
#offcanvasSidebar .nav-link {
  color: #0d47a1;
  font-weight: 500;
  border-radius: 0; /* 🔹 sin bordes redondeados */
}
.sidebar .nav-link:hover,
#offcanvasSidebar .nav-link:hover {
  background-color: #bbdefb;
}
.sidebar .nav-link.active,
#offcanvasSidebar .nav-link.active {
  color: #0d47a1;
  font-weight: 600;
  border-radius: 0; /* 🔹 sin bordes redondeados */
}

/* 🔹 Solo menús normales activos (sin submenú) muestran borde derecho */
.sidebar .nav-item:not(:has(ul.submenu)) > .nav-link.active,
#offcanvasSidebar .nav-item:not(:has(ul.submenu)) > .nav-link.active {
  border-right: 2px solid #0d47a1;
}

/* Submenús (sin forzar display: none/block; dejar a Bootstrap) */
.sidebar ul.submenu,
#offcanvasSidebar ul.submenu {
  padding-left: 0; margin: 0; list-style: none;
}
.sidebar ul.submenu > li > .nav-link,
#offcanvasSidebar ul.submenu > li > .nav-link {
  display: block; padding-left: 1.25rem;
}

/* Fix visual: durante .collapsing mantener vertical sin inline saltos */
.sidebar ul.submenu.collapsing,
#offcanvasSidebar ul.submenu.collapsing {
  display: block !important;
  height: auto !important;
  overflow: hidden;
}

/* 🔹 Resaltar submenús cuando están abiertos */
.sidebar ul.submenu.show,
#offcanvasSidebar ul.submenu.show {
  background-color: #d6eaf8;
  border-bottom: 2px solid #1b82cc; /* borde solo en el submenú */
  padding: 5px 0;
}
.sidebar ul.submenu.show .nav-link,
#offcanvasSidebar ul.submenu.show .nav-link {
  background-color: transparent;
  color: #0d47a1;
}
.sidebar ul.submenu.show .nav-link:hover,
#offcanvasSidebar ul.submenu.show .nav-link:hover {
  background-color: #1b82cc;
  color: #fff;
}