:root{
  --glass: rgba(255,255,255,0.08);
  --glass2: rgba(255,255,255,0.12);
  --border: rgba(255,255,255,0.10);
}
[data-bs-theme="light"]{
  --glass: rgba(0,0,0,0.05);
  --glass2: rgba(0,0,0,0.08);
  --border: rgba(0,0,0,0.10);
}
.bg-app{
  min-height: 100vh;
  background:
    radial-gradient(1200px 600px at 10% 10%, rgba(0,255,170,0.12), transparent 60%),
    radial-gradient(900px 600px at 90% 20%, rgba(0,140,255,0.14), transparent 60%),
    radial-gradient(900px 600px at 30% 90%, rgba(255,0,170,0.10), transparent 60%),
    linear-gradient(135deg, rgba(0,0,0,0.55), rgba(0,0,0,0.75));
}
[data-bs-theme="light"].bg-app{
  background:
    radial-gradient(1200px 600px at 10% 10%, rgba(0,255,170,0.18), transparent 60%),
    radial-gradient(900px 600px at 90% 20%, rgba(0,140,255,0.18), transparent 60%),
    radial-gradient(900px 600px at 30% 90%, rgba(255,0,170,0.14), transparent 60%),
    linear-gradient(135deg, rgba(255,255,255,0.8), rgba(255,255,255,0.92));
}
.glass{
  background: var(--glass);
  border: 1px solid var(--border);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
.sidebar{
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: 270px;
  display: flex;
  flex-direction: column;
  z-index: 1030;
  transform: translateX(0);
  transition: transform .25s ease;
}
.sidebar.hidden{ transform: translateX(-110%); }
.topbar{
  position: sticky; top: 0; z-index: 1020;
}
.content{
  margin-left: 270px;
  padding: 16px;
}
@media (max-width: 991px){
  .sidebar{ transform: translateX(-110%); }
  .sidebar.show{ transform: translateX(0); }
  .content{ margin-left: 0; }
}
.nav-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  margin: 4px 8px;
  border-radius: 14px;
  color: var(--bs-body-color);
  text-decoration: none;
  transition: all .15s ease;
  border: 1px solid transparent;
}
.nav-item:hover{
  background: var(--glass2);
  border-color: var(--border);
  transform: translateY(-1px);
}
.nav-item.active{
  background: linear-gradient(135deg, rgba(0,255,170,0.18), rgba(0,140,255,0.14));
  border-color: var(--border);
}
.nav-item i{ font-size: 1.1rem; opacity: .95; }
.nav-item span{ font-weight: 600; letter-spacing:.2px; }
.card-kpi{
  border-radius: 18px;
  overflow:hidden;
  position:relative;
}
.card-kpi::after{
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(600px 180px at 10% 10%, rgba(255,255,255,0.10), transparent 60%);
  pointer-events:none;
}
.kpi-number{
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: -0.5px;
}
.pulse{
  animation: pulse .8s ease;
}
@keyframes pulse{
  0%{ transform: scale(1); }
  45%{ transform: scale(1.06); }
  100%{ transform: scale(1); }
}
.avatar{
  width: 34px; height: 34px;
  border-radius: 12px;
  display:grid; place-items:center;
  background: linear-gradient(135deg, rgba(0,255,170,0.35), rgba(0,140,255,0.35));
  border: 1px solid var(--border);
  font-weight: 800;
}
.table thead th{ white-space: nowrap; }
.badge-soft{
  background: var(--glass2);
  border: 1px solid var(--border);
  color: var(--bs-body-color);
}
