
body {
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: auto;
}
.nav-bg { background: rgba(5, 5, 5, 0.8); }
.sidebar-bg { background: rgba(5, 5, 5, 0.95); }
.touch-manip {
    touch-action: manipulation;
    -webkit-overflow-scrolling: touch;
}
.bg-grid-auth {
    background-image: linear-gradient(0deg, transparent 24%, rgba(255, 255, 255, .03) 25%, rgba(255, 255, 255, .03) 26%, transparent 27%, transparent 74%, rgba(255, 255, 255, .03) 75%, rgba(255, 255, 255, .03) 76%, transparent 77%, transparent);
    background-size: 60px 60px;
}
.drop-shadow-glow {
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, .5));
}
.label-style {
    font-size: 12px;
    font-weight: 700;
    color: #52525b;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: block;
}
.flex-center-gap {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.switch-style {
    position: relative;
    display: inline-block;
    width: 36px;
    height: 20px;
}
.slider-style {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #3f3f46;
    transition: 0.3s;
    border-radius: 20px;
}
.spin-reverse {
    animation: spin 1.5s linear infinite reverse;
}
.animate-shimmer {
    animation: shimmer 1s infinite;
}
@keyframes gridScroll { 0% { transform: translate(0,0) } 100% { transform: translate(40px,40px) } }
@keyframes pulseSlow { 0%, 100% { opacity: 0.15; transform: scale(1) } 50% { opacity: 0.25; transform: scale(1.05) } }
@keyframes spin { to { transform: rotate(360deg) } }
@keyframes shimmer { 0% { background-position: 200% 0 } 100% { background-position: -200% 0 } }
@keyframes shimmer { 0% { background-position: 200% 0 } 100% { background-position: -200% 0 } }


