/* Hover effects for upload zone */
.upload-zone:hover {
    border-color: rgba(255, 255, 255, 0.6) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

/* Button hover effects */
.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25) !important;
}

/* Input focus effects */
.form-control:focus {
    box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
    border-color: #667eea;
}

/* Custom scrollbar for table container */
.table-container::-webkit-scrollbar {
    width: 8px;
}

.table-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.table-container::-webkit-scrollbar-thumb {
    background: #667eea;
    border-radius: 4px;
}

.table-container::-webkit-scrollbar-thumb:hover {
    background: #5a67d8;
}

.dml-top-loading-strip {
    display: none;
    position: fixed;
    top: 0;
    left: min(15vw, 260px);
    width: calc(100vw - min(15vw, 260px));
    height: 4px;
    z-index: 1100;
    overflow: hidden;
    background: rgba(74, 108, 247, 0.08);
    pointer-events: none;
}

.dml-top-loading-strip--active {
    display: block;
}

.dml-asymptotic-loading-bar {
    height: 100%;
    width: 0%;
    border-radius: 0 999px 999px 0;
    background: linear-gradient(90deg, #ff61ea00 0%, #ff8ef0 28%, #bb1bff 58%, #a259ff 78%, #ffabdc 100%);
    box-shadow: 0 0 14px #a259ff99, 0 0 22px #ffabdc99;
}

.dml-top-loading-strip--active .dml-asymptotic-loading-bar {
    animation: dml-asymptotic-progress 12s forwards, dml-loading-shimmer 1.4s linear infinite;
    background-size: 200% 100%;
}

@keyframes dml-asymptotic-progress {
    0% {
        width: 0%;
    }
    8% {
        width: 45%;
    }
    18% {
        width: 68%;
    }
    34% {
        width: 82%;
    }
    52% {
        width: 90%;
    }
    70% {
        width: 95%;
    }
    86% {
        width: 97.5%;
    }
    100% {
        width: 98.8%;
    }
}

@keyframes dml-loading-shimmer {
    0% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 200% 50%;
    }
}

@media (max-width: 768px) {
    .dml-top-loading-strip {
        left: 0;
        width: 100vw;
    }
}

@keyframes dml-blinking-glow {
    0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.3); }
    50% { box-shadow: 0 0 40px rgba(59, 130, 246, 0.6); }
}

.dml-heatmap-overlay-frame-wrapper--loading {
    animation: dml-blinking-glow 1.5s ease-in-out infinite;
    border-radius: 8px;
}