/*
///////////s.s.\\ Saverio Serravezza - °moosh°
// ()-()
//  \"/
//   `   //s.s.\\ Saverio Serravezza - °moosh°
//////////////////////////////////////////////
*/

/* ::s.s. Dark theme styles */

/* Media thumbnail aspect ratio */
.media-thumbnail {
    position: relative;
    padding-bottom: 40%;
    height: 80px;
    background: #0f172a;
}

.media-thumbnail > * {
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    object-fit: cover;
}

/* Media card hover effects */
.media-card {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.media-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

/* Hide elements with x-cloak */
[x-cloak] {
    display: none !important;
}

/* Loading animations */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.fa-spin {
    animation: spin 2s linear infinite;
}

/* Status indicators - Dark theme */
.status-indicator {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .grid-cols-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .md\:grid-cols-2 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .lg\:grid-cols-3,
    .xl\:grid-cols-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Dense grid for media */
@media (min-width: 1024px) {
    .media-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .media-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

/* File Manager Styles - Dark */
.file-manager-item {
    transition: all 0.2s ease-in-out;
    background: #1f2937;
}

.file-manager-item:hover {
    transform: translateY(-1px);
    border-color: #4b5563;
}

.file-preview {
    transition: transform 0.2s ease-in-out;
}

.file-preview:hover {
    transform: scale(1.05);
}

/* Breadcrumb - Dark */
.breadcrumb-item {
    transition: color 0.2s ease-in-out;
}

/* Dense grid for file manager */
@media (min-width: 1024px) {
    .file-manager-grid {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .file-manager-grid {
        grid-template-columns: repeat(10, minmax(0, 1fr));
    }
}

/* Upload progress */
.upload-progress {
    transition: width 0.3s ease-in-out;
}

/* File list styles - Dark */
.file-list-item {
    transition: all 0.2s ease-in-out;
}

.file-list-item:hover {
    background-color: #1f2937;
}

/* Upload button styles */
.upload-btn {
    transition: all 0.2s ease-in-out;
    backdrop-filter: blur(2px);
}

.upload-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* Folder hover effects */
.group:hover .upload-btn {
    animation: pulse-green 1s infinite;
}

@keyframes pulse-green {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4);
    }
    50% {
        box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.1);
    }
}

/* Action buttons spacing */
.action-buttons {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-end;
}

/* Scrollbar dark theme */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #1f2937;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: #4b5563;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #6b7280;
}

/* Toast notifications - Dark theme overrides */
.bg-green-50 {
    background-color: #064e3b !important;
}

.bg-red-50 {
    background-color: #7f1d1d !important;
}

.bg-yellow-50 {
    background-color: #78350f !important;
}

.bg-blue-50 {
    background-color: #1e3a8a !important;
}

.text-green-800 {
    color: #86efac !important;
}

.text-red-800 {
    color: #fca5a5 !important;
}

.text-yellow-800 {
    color: #fde047 !important;
}

.text-blue-800 {
    color: #93c5fd !important;
}

.border-green-200 {
    border-color: #065f46 !important;
}

.border-red-200 {
    border-color: #991b1b !important;
}

.border-yellow-200 {
    border-color: #92400e !important;
}

.border-blue-200 {
    border-color: #1e40af !important;
}

/* Modal backdrop */
.bg-opacity-75 {
    backdrop-filter: blur(4px);
}

/* Focus ring dark mode */
.focus\:ring-offset-2:focus {
    --tw-ring-offset-color: #111827;
}