:root { --accent: #1976d2; }

body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  min-height: 100vh;
  transition: background .3s,color .3s;
  overflow-x:hidden;
}

/* Sidebar */
.sidebar {
  width:240px; position:fixed; top:0; bottom:0; left:0;
  background-color:rgba(255,255,255,0.95);
  border-right:1px solid rgba(0,0,0,0.1);
  backdrop-filter:blur(10px);
  z-index:2000; overflow-y:auto;
  transition:left .35s ease,opacity .35s ease;
}
html[data-theme=dark] .sidebar {
  background-color:rgba(20,22,25,0.85);
  border-color:rgba(255,255,255,0.1);
}
.sidebar-header {display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;}
.sidebar-header h4 {font-size:1.15rem;font-weight:600;margin:0;}
.sidebar-close-btn {border:none;background:transparent;color:inherit;font-size:1.4rem;display:none;}
.nav-link {color:inherit;font-weight:500;padding:.6rem 1.2rem;border-radius:6px;display:block;}
.nav-link:hover {background-color:rgba(25,118,210,0.1);color:var(--accent);}
.nav-link.active {background-color:var(--accent);color:#fff;}

.btn.btn-toggle {
  background:transparent;border:none;color:inherit;
  width:100%;text-align:left;padding:.65rem 1.25rem;
}
.btn.btn-toggle .bi-chevron-down {transition:transform .25s ease;}

/* Submenu Animation */
.submenu {overflow:hidden;max-height:0;padding-left:1.5rem;transition:max-height .35s ease;}
.submenu.show {max-height:300px;}
.submenu .nav-link {opacity:0;transform:translateY(-5px);transition:opacity .3s,transform .3s;}
.submenu.show .nav-link {opacity:1;transform:translateY(0);}

/* Overlay */
.sidebar-overlay {
  display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);
  backdrop-filter:blur(2px);z-index:1040;opacity:0;transition:opacity .3s ease;
}
.sidebar-overlay.active {display:block;opacity:1;}

/* Main content */
.main-content {padding:1.5rem;transition:margin-left .3s;}
@media(min-width:992px){.main-content{margin-left:240px;}}

/* Navbar top */
.navbar-top {display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;}
.theme-btn {background:transparent;border:none;font-size:1.4rem;color:inherit;}
.theme-btn:hover{color:var(--accent);}
.user-dropdown button {background:transparent;border:none;color:inherit;font-weight:600;}
.user-dropdown button:hover{color:var(--accent);}
.dropdown-menu{border-radius:8px;backdrop-filter:blur(10px);}
html[data-theme=dark] .dropdown-menu{background-color:rgba(20,22,25,0.9);border:1px solid rgba(255,255,255,0.1);}

/* Mobile */
@media(max-width:991px){
  .sidebar{left:-240px;opacity:0;}
  .sidebar.active{left:0;opacity:1;}
  .sidebar-close-btn{display:inline-block;}
  .main-content{margin-left:0!important;}
  body.sidebar-open #menuToggle{opacity:0;pointer-events:none;}
}