:root{--sidebar-width:16rem;--sidebar-width-collapsed:3rem;--sidebar-rail-width:4px}.sidebar-provider{width:100%;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:var(--cyber-border-width) solid var(--color-border);min-height:100vh;transition:width var(--transition-base), box-shadow var(--transition-base);z-index:40;flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.sidebar[data-state=open]{width:var(--sidebar-width)}.sidebar[data-state=closed]{width:var(--sidebar-width-collapsed)}.sidebar:before{content:"";width:var(--cyber-border-width);background:var(--color-primary);opacity:.3;z-index:1;position:absolute;top:0;bottom:0;right:0}.sidebar-header{align-items:center;gap:var(--space-sm);padding:calc(var(--space-md) + env(safe-area-inset-top,0px)) var(--space-md) var(--space-md);border-bottom:var(--cyber-border-width) solid var(--color-border);min-height:3.5rem;display:flex}.sidebar-footer{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md);border-top:var(--cyber-border-width) solid var(--color-border);margin-top:auto;display:flex}.sidebar-content{padding:var(--space-sm) 0;flex:1;overflow:hidden auto}.sidebar-content::-webkit-scrollbar{width:4px}.sidebar-content::-webkit-scrollbar-track{background:0 0}.sidebar-content::-webkit-scrollbar-thumb{background:var(--primary-color-6);border-radius:var(--radius-full)}.sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.sidebar-group{padding:var(--space-sm) 0}.sidebar-group-label{padding:var(--space-xs) var(--space-md);font-family:var(--cyber-font-mono);font-size:var(--font-size-xs);color:var(--color-on-surface-muted);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sidebar-group-content{flex-direction:column;display:flex}.sidebar-menu{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.sidebar-menu-item{flex-direction:column;display:flex}.sidebar-menu-item>a,.sidebar-menu-sub-item>a{width:100%;color:var(--color-on-surface);text-decoration:none;display:flex}.sidebar-menu-button{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-on-surface);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-left:2px solid transparent;display:flex;overflow:hidden}.sidebar-menu-button:hover{background:var(--primary-color-5);color:var(--color-primary)}.sidebar-menu-button:focus-visible{background:var(--primary-color-5);box-shadow:inset 0 0 0 1px var(--focused-border-color);outline:none}.sidebar-menu-button[data-active=true]{color:var(--color-primary);background:var(--primary-color-5);border-left-color:var(--color-primary);box-shadow:inset 2px 0 8px rgba(0,240,255,.08)}.sidebar-menu-sub{padding:0;padding-left:var(--space-lg);border-left:var(--cyber-border-width) solid var(--primary-color-6);margin:0;margin-left:var(--space-md);flex-direction:column;gap:1px;list-style:none;display:flex}.sidebar-menu-sub-item{display:flex}.sidebar-menu-sub-button{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--secondary-color-3);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--radius-sm);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;display:flex;overflow:hidden}.sidebar-menu-sub-button:hover{background:var(--primary-color-5);color:var(--color-primary)}.sidebar-menu-sub-button:focus-visible{box-shadow:inset 0 0 0 1px var(--focused-border-color);outline:none}.sidebar-menu-sub-button[data-active=true]{color:var(--color-primary);background:var(--primary-color-5)}.sidebar-trigger{border:var(--cyber-border-width) solid var(--color-border);border-radius:var(--radius);background:var(--primary-color-4);width:2rem;height:2rem;color:var(--color-on-surface);font-size:var(--font-size-base);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.sidebar-trigger:hover{color:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--cyber-neon-glow)}.sidebar-trigger:focus-visible{box-shadow:0 0 0 2px var(--focused-border-color), var(--cyber-neon-glow);outline:none}.sidebar-separator{height:var(--cyber-border-width);background:var(--color-border);margin:var(--space-sm) var(--space-md);border:none}.sidebar-inset{flex:1;min-width:0}.sidebar-rail{top:0;right:calc(-1 * var(--sidebar-rail-width) / 2);width:var(--sidebar-rail-width);cursor:col-resize;z-index:41;transition:background var(--transition-fast);background:0 0;border:none;padding:0;position:absolute;bottom:0}.sidebar-rail:hover{background:var(--color-primary);box-shadow:0 0 6px rgba(0,240,255,.4)}.sidebar[data-state=closed] .sidebar-group-label,.sidebar[data-state=closed] .sidebar-menu-sub,.sidebar[data-state=closed] .sidebar-menu-button span{display:none}.sidebar[data-state=closed] .sidebar-menu-button{padding:var(--space-sm);justify-content:center}.sidebar-backdrop{display:none}@media (width>=769px){.sidebar{position:relative;width:var(--sidebar-width)!important}.sidebar-backdrop{display:none!important}.sidebar-trigger,.sidebar-rail{display:none}.sidebar[data-state=closed] .sidebar-group-label,.sidebar[data-state=closed] .sidebar-menu-sub{display:block}.sidebar[data-state=closed] .sidebar-menu-button span{display:inline}.sidebar[data-state=closed] .sidebar-menu-button{padding:var(--space-sm) var(--space-md);justify-content:flex-start}}@media (width<=768px){.sidebar-backdrop{z-index:49;backdrop-filter:blur(10px);animation:sidebar-backdrop-in var(--transition-base) ease;background:rgba(5,7,16,.72);display:block;position:fixed;inset:0}.sidebar{z-index:50;width:min(88vw,21rem);transition:transform var(--transition-base), visibility var(--transition-base);background:linear-gradient(rgba(15,18,32,.98),rgba(9,11,22,.98));border-right:1px solid rgba(114,220,255,.14);border-top-right-radius:1.2rem;border-bottom-right-radius:1.2rem;position:fixed;top:0;bottom:0;left:0;box-shadow:0 24px 50px rgba(0,0,0,.4)}.sidebar-header{padding-top:calc(1rem + env(safe-area-inset-top,0px))}.sidebar-content{padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.sidebar[data-state=closed]{visibility:hidden;transform:translate(-100%)}.sidebar[data-state=open]{visibility:visible;transform:translate(0)}.sidebar-inset{width:100%}.sidebar-trigger{background:rgba(255,255,255,.04);border-color:rgba(114,220,255,.14);border-radius:.85rem;width:2.35rem;height:2.35rem}}[data-platform=mobile] .sidebar-backdrop{z-index:49;backdrop-filter:blur(10px);background:rgba(5,7,16,.72);inset:0;display:block!important;position:fixed!important}[data-platform=mobile] .sidebar{z-index:50;background:linear-gradient(rgba(15,18,32,.98),rgba(9,11,22,.98));border-right:1px solid rgba(114,220,255,.14);border-top-right-radius:1.2rem;border-bottom-right-radius:1.2rem;top:0;bottom:0;left:0;box-shadow:0 24px 50px rgba(0,0,0,.4);width:min(88vw,21rem)!important;position:fixed!important}[data-platform=mobile] .sidebar[data-state=closed]{visibility:hidden!important;transform:translate(-100%)!important}[data-platform=mobile] .sidebar[data-state=open]{visibility:visible!important;transform:translate(0)!important}[data-platform=mobile] .sidebar-inset{width:100%!important}[data-platform=mobile] .sidebar-trigger{background:rgba(255,255,255,.04);border-color:rgba(114,220,255,.14);border-radius:.85rem;width:2.35rem;height:2.35rem;display:flex!important}[data-platform=mobile] .sidebar-rail{display:none!important}[data-platform=mobile] .sidebar-header{padding-top:calc(1rem + env(safe-area-inset-top,0px))}[data-platform=mobile] .sidebar-content{padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}@keyframes sidebar-backdrop-in{0%{opacity:0}to{opacity:1}}