/* ========================================
   UTILITY CLASSES
   ======================================== */

/* Line Clamp Utilities */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Tab States */
.tab-active {
    background-color: #4f46e5;
    color: white;
}

.tab-inactive {
    background-color: #312e81;
    color: #a5b4fc;
}

/* Button States */
button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(90deg,
            rgba(30, 41, 59, 0.8) 0%,
            rgba(51, 65, 85, 0.8) 50%,
            rgba(30, 41, 59, 0.8) 100%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 0.5rem;
}

/* Fade In Animation */
.fade-in {
    animation: fade-in 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Ripple */
.ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: scale(0);
    animation: ripple-effect 0.6s ease-out;
    pointer-events: none;
}
