/* filepond_widget.css */
/* CSS Variables for Light/Dark Theme Support */
:root {
    --fp-primary: #3bb594;
    --fp-primary-hover: #318c73;
    --fp-danger: #c74343;
    --fp-danger-hover: #9c3535;
    --fp-border: #c3c3c3;
    --fp-background: #f9f9f9;
    --fp-text: #333;
    --fp-text-size: 16px;
    --fp-text-light: #eee;
    --fp-modal-backdrop: rgba(0, 0, 0, 0.5);
    --fp-modal-bg: #fff;
    --fp-preview-bg: #fff;
    --fp-preview-border: #eee;
    --fp-progress-bg: #e9ecef;
    --fp-progress-fill: #3bb594;
    --fp-chunk-indicator: #3bb594;
    
    /* New variables for upload UI components */
    --fp-bulk-actions-border: #d4edda;
    --fp-file-icon-bg: #f8f9fa;
    --fp-file-icon-border: #ddd;
    --fp-file-icon-text: #6c757d;
    --fp-result-border: #d4edda;
    --fp-result-bg: #f8fff9;
    --fp-preview-image-border: #ddd;
}

/* Dark Mode */
body.rex-theme-dark {
    --fp-primary: #3bb594;
    --fp-primary-hover: #4dcaa8;
    --fp-danger: #c74343;
    --fp-danger-hover: #d65757;
    --fp-border: #404448;
    --fp-background: #2c3136;
    --fp-text: #f2f2f2;
    --fp-text-light: #bbb;
    --fp-modal-backdrop: rgba(0, 0, 0, 0.7);
    --fp-modal-bg: #35393d;
    --fp-preview-bg: #2c3136;
    --fp-preview-border: #404448;
    --fp-progress-bg: #404448;
    --fp-progress-fill: #3bb594;
    --fp-chunk-indicator: #3bb594;
    
    /* Dark mode overrides for upload UI components */
    --fp-bulk-actions-border: #404448;
    --fp-file-icon-bg: #2c3136;
    --fp-file-icon-border: #404448;
    --fp-file-icon-text: #bbb;
    --fp-result-border: #404448;
    --fp-result-bg: rgba(44, 49, 54, 0.6);
    --fp-preview-image-border: #404448;
}

/* Prefer dark theme support (Theme "auto" or no explicit theme) */
@media (prefers-color-scheme: dark) {
    body:not(.rex-theme-light):not(.rex-theme-dark) {
        --fp-primary: #3bb594;
        --fp-primary-hover: #4dcaa8;
        --fp-danger: #c74343;
        --fp-danger-hover: #d65757;
        --fp-border: #404448;
        --fp-background: #2c3136;
        --fp-text: #f2f2f2;
        --fp-text-light: #bbb;
        --fp-modal-backdrop: rgba(0, 0, 0, 0.7);
        --fp-modal-bg: #35393d;
        --fp-preview-bg: #2c3136;
        --fp-preview-border: #404448;
        --fp-progress-bg: #404448;
        --fp-progress-fill: #3bb594;
        --fp-chunk-indicator: #3bb594;
        
        /* Dark mode overrides for upload UI components */
        --fp-bulk-actions-border: #404448;
        --fp-file-icon-bg: #2c3136;
        --fp-file-icon-border: #404448;
        --fp-file-icon-text: #bbb;
        --fp-result-border: #404448;
        --fp-result-bg: rgba(44, 49, 54, 0.6);
        --fp-preview-image-border: #404448;
    }
}

/* FilePond Container */
.filepond--root {
    margin-bottom: 1rem;
    font-size:  var(--fp-text-size);
}

/* Panel */
.filepond--panel-root {
    border: 1px solid var(--fp-border);
    background-color: var(--fp-background);
}

/* Drop Label */
.filepond--drop-label {
    color: var(--fp-text);
}

.filepond--drop-label label {
    color: var(--fp-text);
    font-size:  var(--fp-text-size);
}

/* File Info */
.filepond--file-info {
    color: var(--fp-text-light);
    font-size:  var(--fp-text-size);
}

/* File Status */
.filepond--file-status {
    color: var(--fp-text-light);
}

/* Grid Layout */
.filepond--list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem;
}

/* Item Container */
.filepond--item {
    width: calc(33.33% - 0.5rem);
    margin: 0;
    border-radius: 4px;
    overflow: hidden;
}

/* Chunk Upload Status */
.filepond--chunk-status {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    background: rgba(0, 0, 0, 0.5);
    color: white;
    font-size: 12px;
    padding: 2px 5px;
    z-index: 1;
}

/* Chunk Indicator */
.filepond--chunk-indicator {
    position: absolute;
    top: 0;
    left: 0;
    height: 3px;
    background: var(--fp-chunk-indicator);
    z-index: 2;
    transition: width 0.3s ease;
}

/* Modal Styles */
.modal.fade .modal-dialog {
    transform: none;
}

.modal-content {
    background-color: var(--fp-modal-bg);
    color: var(--fp-text);
    border: 1px solid var(--fp-border);
    border-radius: 6px;
}

.modal-header {
    background-color: var(--fp-modal-bg);
    border-bottom: 1px solid var(--fp-border);
    padding: 1rem;
}

.modal-header .modal-title {
    color: var(--fp-text);
    font-size: 1.2rem;
    font-weight: 500;
}

.modal-header .close {
    color: var(--fp-text);
    text-shadow: none;
    opacity: 0.7;
    padding: 1rem;
    margin: -1rem;
}

.modal-header .close:hover {
    opacity: 1;
}

/* Preview Container */
.preview-container {
    background: var(--fp-preview-bg);
    border: 1px solid var(--fp-preview-border);
    border-radius: 4px;
    padding: 1rem;
    text-align: center;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.preview-container img,
.preview-container video {
    max-width: 100%;
    max-height: 300px;
    object-fit: contain;
}

/* File Icon Preview */
.file-icon-preview {
    padding: 2rem;
    text-align: center;
}

.file-icon-preview i {
    font-size: 4rem;
    color: var(--fp-text);
}

/* Metadata Form */
.metadata-form {
    padding: 1rem;
}

.metadata-form .form-group {
    margin-bottom: 1rem;
}

.metadata-form label {
    color: var(--fp-text);
    font-weight: 500;
}

.metadata-form .form-control {
    background-color: var(--fp-background);
    border-color: var(--fp-border);
    color: var(--fp-text);
    border-radius: 4px;
}

.metadata-form .form-control:focus {
    border-color: var(--fp-primary);
    box-shadow: 0 0 0 0.2rem rgba(59, 181, 148, 0.25);
}

.metadata-form .form-text {
    color: var(--fp-text-light);
}

/* File Info */
.file-info {
    text-align: center;
    color: var(--fp-text-light);
    padding: 0.5rem;
    background: var(--fp-background);
    border-radius: 4px;
    margin-top: 0.5rem;
    word-break: break-word;
}

/* Progress Bar */
.filepond--progress-indicator {
    background: var(--fp-primary);
}

/* Delete Button */
.filepond--file-action-button {
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
}

.filepond--file-action-button:hover {
    background-color: rgba(0, 0, 0, 0.75);
}

/* Token Input Group */
.fp-token-input-group {
    margin: 10px 0;
}

/* Bulk Actions */
.fp-bulk-actions {
    display: none;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid var(--fp-bulk-actions-border);
}

.fp-bulk-actions-text {
    margin-left: 10px;
}

/* File Icon Container */
.fp-file-icon {
    width: 80px;
    height: 80px;
    background: var(--fp-file-icon-bg);
    border: 1px solid var(--fp-file-icon-border);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.fp-file-icon i {
    font-size: 32px;
    margin-bottom: 4px;
}

.fp-file-icon small {
    font-size: 10px;
    color: var(--fp-file-icon-text);
    text-transform: uppercase;
    font-weight: bold;
}

/* Image Preview Fallback */
.fp-image-preview-fallback {
    display: none;
    width: 80px;
    height: 80px;
    background: var(--fp-file-icon-bg);
    border: 1px solid var(--fp-file-icon-border);
    border-radius: 4px;
}

/* When shown, the fallback should be flex to center the icon */
.fp-image-preview-fallback[style*="display: flex"],
.fp-image-preview-fallback.show {
    display: flex;
    align-items: center;
    justify-content: center;
}

.fp-image-preview-fallback i {
    font-size: 24px;
}

/* Lang Fields */
.fp-lang-fields {
    display: none;
    margin-top: 8px;
}

/* Media Upload Result */
.fp-media-upload-result {
    padding: 10px;
    border: 1px solid var(--fp-result-border);
    background-color: var(--fp-result-bg);
    margin-bottom: 10px;
    border-radius: 4px;
}

/* Media Upload Result Extended */
.fp-media-upload-result-extended {
    padding: 15px;
    border: 1px solid var(--fp-result-border);
    background-color: var(--fp-result-bg);
    margin-bottom: 10px;
    border-radius: 4px;
}

/* Preview Container for Media Widget */
.fp-preview-container {
    max-width: 80px;
    max-height: 80px;
}

.fp-preview-image {
    max-width: 80px;
    max-height: 80px;
    border-radius: 4px;
    border: 1px solid var(--fp-preview-image-border);
    object-fit: cover;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Results Container */
.fp-results-container {
    margin-top: 20px;
}

/* YForm Value Media File */
.rex-yform-value-mediafile img {
    max-width: 100px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .filepond--item {
        width: calc(50% - 0.5rem);
    }
    .modal-dialog {
        margin: 0.5rem;
    }
    .preview-container {
        min-height: 150px;
    }
}

@media (max-width: 480px) {
    .filepond--item {
        width: 100%;
    }
    .modal-body .row {
        flex-direction: column;
    }
    .modal-body .col-md-5,
    .modal-body .col-md-7 {
        width: 100%;
    }
}
