:root{--sidebar-width-expanded: 260px;--sidebar-width-collapsed: 70px;--sidebar-bg: var(--card-bg);--sidebar-border: var(--border-color);--sidebar-shadow: 0 0 20px rgba(0, 0, 0, .05);--sidebar-item-hover: rgba(78, 115, 223, .08);--sidebar-item-active: rgba(78, 115, 223, .15);--sidebar-icon-size: 22px;--sidebar-text-color: var(--secondary-color);--sidebar-active-color: var(--primary-color);--sidebar-transition: all .3s ease;--sidebar-category-spacing: 24px;--sidebar-badge-bg: #f44336}.sidebar{background-color:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);height:calc(100vh - var(--header-height));position:sticky;top:var(--header-height);z-index:50;transition:var(--sidebar-transition),width .3s cubic-bezier(.34,1.56,.64,1),transform .3s ease,box-shadow .3s ease;overflow-x:hidden;box-shadow:var(--sidebar-shadow);will-change:width,transform;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased}.dark .sidebar{background-color:var(--dark-card-bg)!important;border-color:var(--dark-border-color)!important;box-shadow:0 0 20px #0003}.sidebar-header{height:64px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--sidebar-border);transition:var(--sidebar-transition)}.dark .sidebar-header{border-color:var(--dark-border-color)!important}.sidebar-title{font-weight:600;font-size:16px;color:var(--dark-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:var(--sidebar-transition)}.dark .sidebar-title{color:var(--light-text)}.sidebar-toggle{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--sidebar-transition);background-color:transparent;border:none;color:var(--secondary-color)}.sidebar-toggle:hover{background-color:var(--sidebar-item-hover);color:var(--primary-color)}.dark .sidebar-toggle:hover{background-color:#ffffff1a}.sidebar-toggle svg{width:20px;height:20px;transition:transform .3s ease}.sidebar-nav{padding:16px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-category{margin-top:var(--sidebar-category-spacing);padding:0 4px 8px}.sidebar-category:first-child{margin-top:0}.sidebar-category-title{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-text);padding:0 10px 8px;font-weight:600}.dark .sidebar-category-title{color:#ffffff80}.sidebar-nav a{display:flex;align-items:center;padding:10px 12px;border-radius:8px;color:var(--sidebar-text-color);text-decoration:none;transition:var(--sidebar-transition);position:relative;font-weight:500;margin-bottom:2px}.sidebar-nav a:hover{background-color:var(--sidebar-item-hover);color:var(--sidebar-active-color);transform:translate(2px)}.sidebar-nav a:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px;background-color:var(--sidebar-item-hover)}.sidebar-nav a.active{background-color:var(--sidebar-item-active);color:var(--sidebar-active-color);font-weight:600;box-shadow:0 2px 6px #4e73df26}.sidebar-nav a.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary-color);border-top-right-radius:4px;border-bottom-right-radius:4px}.dark .sidebar-nav a{color:var(--light-text)}.dark .sidebar-nav a:hover{background-color:#ffffff0d}.dark .sidebar-nav a.active{background-color:#4e73df40;color:var(--primary-color);box-shadow:0 2px 6px #4e73df33}.dark .sidebar-badge{background-color:var(--sidebar-badge-bg);box-shadow:0 2px 4px #0000004d}.sidebar-nav svg{width:var(--sidebar-icon-size);height:var(--sidebar-icon-size);flex-shrink:0;transition:var(--sidebar-transition)}.sidebar-nav a span{margin-left:16px;white-space:nowrap;transition:opacity .3s ease,visibility .2s ease;opacity:1;line-height:1.2;transform-origin:left center;font-size:15px;flex-grow:1}.sidebar-badge{min-width:18px;height:18px;border-radius:9px;background-color:var(--sidebar-badge-bg);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 6px;transition:var(--sidebar-transition);margin-left:10px}.sidebar.collapsed .sidebar-badge{position:absolute;top:6px;right:6px;transform-origin:center;transform:scale(.8);z-index:2;box-shadow:0 2px 4px #0003;animation:badge-pulse 2s infinite}@keyframes badge-pulse{0%{transform:scale(.8)}50%{transform:scale(.9)}to{transform:scale(.8)}}.sidebar-footer{padding:16px;border-top:1px solid var(--sidebar-border);margin-top:auto;font-size:12px;color:var(--muted-text);transition:var(--sidebar-transition)}.dark .sidebar-footer{border-color:var(--dark-border-color);color:var(--muted-text)}.sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar.collapsed .sidebar-title,.sidebar.collapsed .sidebar-nav a span,.sidebar.collapsed .sidebar-footer p{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}.sidebar.collapsed .sidebar-toggle svg{transform:rotate(180deg)}.sidebar.collapsed .sidebar-nav a{justify-content:center;padding:12px}.sidebar.collapsed .sidebar-nav a:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:var(--card-bg);color:var(--dark-text);padding:6px 10px;border-radius:4px;font-size:12px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;white-space:nowrap;box-shadow:0 2px 10px #0000001a;z-index:100}.sidebar.collapsed .sidebar-nav a:hover:after{opacity:1;visibility:visible}.dark .sidebar.collapsed .sidebar-nav a:after{background:var(--dark-card-bg);color:var(--light-text);box-shadow:0 2px 10px #0000004d}@media (max-width: 768px){.sidebar{position:fixed;left:-100%;top:var(--header-height);width:var(--sidebar-width-expanded)!important;height:calc(100% - var(--header-height));z-index:1000;transition:left .3s ease,transform .3s ease;box-shadow:0 4px 20px #00000026}.dark .sidebar{box-shadow:0 4px 20px #0000004d}.sidebar.mobile-open{left:0}.sidebar.collapsed{width:var(--sidebar-width-collapsed)!important}.sidebar-backdrop{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background-color:#00000080;z-index:999;display:none;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar.mobile-open+.sidebar-backdrop{display:block}.sidebar-toggle{width:40px;height:40px}.sidebar.collapsed .sidebar-nav a{justify-content:center;padding:10px}}
