::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.dark ::-webkit-scrollbar-thumb { background: #475569; }

.glass {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.dark .glass {
    background: rgba(15, 23, 42, 0.8);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

input[type="text"]::-ms-clear { display: none; width : 0; height: 0; }
input[type="text"]::-ms-reveal { display: none; width : 0; height: 0; }
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { display: none; }

input:focus, button:focus, select:focus {
    outline: none !important;
    box-shadow: none !important;
}

.smooth-transition { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }

.modal-overlay { opacity: 0; visibility: hidden; transition: all 0.4s ease; }
.modal-overlay.active { opacity: 1; visibility: visible; }
.modal-content { transform: scale(0.95) translateY(10px); opacity: 0; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.modal-overlay.active .modal-content { transform: scale(1) translateY(0); opacity: 1; }

.stagger-1 { animation-delay: 100ms; }
.stagger-2 { animation-delay: 200ms; }
.stagger-3 { animation-delay: 300ms; }
.stagger-4 { animation-delay: 400ms; }
.stagger-5 { animation-delay: 500ms; }
.stagger-6 { animation-delay: 600ms; }

#splash-screen {
    transition: opacity 0.8s ease-out, visibility 0.8s;
}
#splash-screen.hidden-splash {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.text-shadow-sm { text-shadow: 0 1px 2px rgba(0,0,0,0.1); }
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}