.border{
    border: 2px solid var(--color-spotify-green);
    margin: 2px; 
}

.flex{
    display: flex;
}

.grid {
    display: grid;
}

.justify-center{
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.justify-around {
    justify-content: space-around;
}

.align-center{
    align-items: center;
}

.align-start {
    align-items: flex-start;
}

.align-end {
    align-items: flex-end;
}

.bg-black{
    background: var(--color-black);
    color: var(--color-white);
}

.bg-gradient-primary {
    background: var(--gradient-primary);
}

.bg-gradient-secondary {
    background: var(--gradient-primary);
}

.bg-gradient-dark {
    background: var(--gradient-dark);
}

.invert{
    filter: invert(1);
}

.bg-grey{
    background: var(--color-dark-grey-1);
}

.rounded{
    border-radius: 8px;
}

.rounded-sm {
    border-radius: 4px;
}

.rounded-lg {
    border-radius: 12px;
}

.rounded-xl {
    border-radius: 16px;
}

.rounded-full {
    border-radius: 50%;
}

.m-1{
    margin: 4px;
}

.m-2 {
    margin: 8px;
}

.m-0 {
    margin: 0;
}

.p-1{
    padding: 6px;
}

.p-2 {
    padding: 8px;
}

.p-0 {
    padding: 0;
}

.roboto{
    font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-style: normal; 
}

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.font-bold {
    font-weight: 700;
}

.font-semibold {
    font-weight: 600;
}

.font-medium {
    font-weight: 500;
}

.font-light {
    font-weight: 300;
}

.text-sm {
    font-size: 0.875rem;
}

.text-base {
    font-size: 1rem;
}

.text-lg {
    font-size: 1.125rem;
}

.text-xl {
    font-size: 1.25rem;
}

.text-2xl {
    font-size: 1.5rem;
}

.text-3xl {
    font-size: 1.875rem;
}

.shadow-sm {
    box-shadow: var(--shadow-small);
}

.shadow-md {
    box-shadow: var(--shadow-medium);
}

.shadow-lg {
    box-shadow: var(--shadow-large);
}

.shadow-glow {
    box-shadow: var(--shadow-glow);
}

.transition-fast {
    transition: all var(--transition-fast);
}

.transition-normal {
    transition: all var(--transition-normal);
}

.transition-slow {
    transition: all var(--transition-slow);
}

.hover-scale:hover {
    transform: scale(1.05);
}

.hover-lift:hover {
    transform: translateY(-4px);
}

.cursor-pointer {
    cursor: pointer;
}

.overflow-hidden {
    overflow: hidden;
}

.overflow-auto {
    overflow: auto;
}

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.z-10 {
    z-index: 10;
}

.z-50 {
    z-index: 50;
}

.z-100 {
    z-index: 100;
}

.opacity-0 {
    opacity: 0;
}

.opacity-50 {
    opacity: 0.5;
}

.opacity-100 {
    opacity: 1;
}

/* Enhanced Scrollbar Styles */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-thumb {
    background: var(--gradient-primary);
    border-radius: 6px;
    transition: all var(--transition-normal);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-spotify-green);
}

::-webkit-scrollbar-track {
    background: var(--color-dark-grey-2);
    border-radius: 6px;
}

::-webkit-scrollbar-corner {
    background: var(--color-dark-grey-2);
}

/* Firefox Scrollbar */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--color-spotify-green) var(--color-dark-grey-2);
}

/* Animation Classes */
.animate-fade-in {
    animation: fadeIn 0.6s ease-out;
}

.animate-fade-in-up {
    animation: fadeInUp 0.6s ease-out;
}

.animate-slide-in-left {
    animation: slideInLeft 0.6s ease-out;
}

.animate-slide-in-right {
    animation: slideInRight 0.6s ease-out;
}

.animate-bounce {
    animation: bounce 1s ease-in-out;
}

.animate-pulse {
    animation: pulse 2s ease-in-out infinite;
}

.animate-spin {
    animation: rotate 1s linear infinite;
}

/* Glassmorphism Effect */
.glass {
    backdrop-filter: blur(20px);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Gradient Text */
.text-gradient-primary {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-gradient-secondary {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}