/* Smooth page transitions */
.page-transitioning {
    opacity: 0.95;
    transition: opacity 0.2s ease-in-out;
}

.form-submitting {
    opacity: 0.8;
    transition: opacity 0.3s ease-in-out;
}

/* Ensure dropdowns work properly during transitions */
.dropdown-menu {
    transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out;
}

.dropdown-menu.show {
    opacity: 1;
    transform: translateY(0);
}

/* Prevent layout shifts during component reinitialization */
.navbar {
    min-height: 56px; /* Bootstrap navbar default height */
}

/* Ensure proper z-index for dropdowns */
.dropdown-menu {
    z-index: 1000;
}

/* Smooth transitions for all interactive elements */
.btn, .nav-link, .dropdown-item {
    transition: all 0.15s ease-in-out;
}

/* Prevent text selection during rapid clicks */
.navbar-nav a {
    user-select: none;
}

/* Ensure proper focus states */
.dropdown-toggle:focus,
.nav-link:focus {
    outline: 2px solid #007bff;
    outline-offset: 2px;
}

/* Themed scrollbars (global) */
html {
    /* Firefox */
    scrollbar-width: thin;
    scrollbar-color: var(--color-accent, #7bd0d7) var(--color-background-2, #161b2f);
}

/* WebKit (Chrome, Edge, Safari) */
::-webkit-scrollbar {
    width: 10px;
    height: 8px; /* horizontal scrollers like stories */
}

::-webkit-scrollbar-track {
    background: color-mix(in srgb, var(--color-background-2, #161b2f) 70%, var(--color-background, #0f1324) 30%);
    border-radius: 8px;
}

::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--color-accent, #7bd0d7) 60%, var(--color-border, #2b3358) 40%);
    border-radius: 8px;
    border: 2px solid var(--color-background-2, #161b2f); /* creates inset groove */
}

::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--color-accent, #7bd0d7) 75%, var(--color-primary, #9aa4ff) 25%);
}

/* Remove default corner fill on dual scrollbars */
::-webkit-scrollbar-corner {
    background: transparent;
}