/* --- Sidebar and Overlay fix --- */ .sidebar { position: fixed; top: 48px; bottom: 0; left: 0; width: 85%; max-width: 320px; overflow-y: auto; background: #111; transform: translateX(-100%); transition: transform .3s ease; padding: 10px; z-index: 200; /* ABOVE overlay */ will-change: transform; } .sidebar.open { transform: translateX(0); } .overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); z-index: 150; /* BELOW sidebar */ opacity: 0; pointer-events: none; transition: opacity .3s; } .sidebar.open ~ .overlay { opacity: 1; pointer-events: all; } .content { margin-top: 48px; padding: 16px; transition: margin-left .3s ease; } /* Desktop layout */ @media (min-width: 900px) { .sidebar { transform: none !important; position: static; width: 280px; height: calc(100vh - 48px); z-index: auto; } .content { margin-left: 280px; } .overlay { display: none !important; } } /* Mobile layout */ @media (max-width: 899px) { .content { margin-left: 0 !important; } }