/* Custom scrollbar and theme tweaks built over Tailwind base */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: #0b0f17;
}

::-webkit-scrollbar-thumb {
    background: #1f2937;
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #374151;
}

.code-block:hover .copy-btn {
    opacity: 1;
}

/* ----------------------------------------------------
   STYLISH SIDEBAR MENU SELECTION WITH ACCENT RIBBON
---------------------------------------------------- */
/* Base navigation links properties override */
.nav-link {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0.5rem 1rem;
    color: #9ca3af; /* text-gray-400 equivalent */
    border-radius: 0.375rem; /* rounded-md */
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hover style background highlight transition */
.nav-link:hover {
    color: #ffffff;
    background-color: rgba(31, 41, 55, 0.4); /* subtle bg-gray-800/40 profile tint */
}

/* Selection Active state class triggered dynamically via IntersectionObserver */
.nav-link.active {
    color: #ffffff !important;
    background-color: rgba(79, 70, 229, 0.12) !important; /* Soft indigo-500 backdrop glow */
    font-weight: 500;
}

/* Elegant Left Ribbon Indicator Component Base Blueprint */
.nav-link::before {
    content: '';
    position: absolute;
    left: -2px; /* Inset slightly past left element boundary for precision styling alignment */
    top: 50%;
    transform: translateY(-50%) scaleY(0);
    width: 3.5px;
    height: 65%; /* Clean, inset ribbon wrapper that stops before link padding edges */
    background-color: #6366f1; /* Bright Indigo ribbon core accent */
    border-radius: 0 4px 4px 0; /* Smooth rounded corners on outer ribbon edge */
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
    opacity: 0;
}

/* Grow and fade active ribbon accent into view smoothly when active state binds */
.nav-link.active::before {
    transform: translateY(-50%) scaleY(1);
    opacity: 1;
}