/**
 * Upload Zone Styles
 *
 * Co-located CSS for the upload-zone JS module.
 * Include this file alongside upload-zone.js
 *
 * Uses BEM naming convention with .upload-zone__ prefix
 * Uses CSS custom properties for theming
 */

/* ============================================
   Custom Properties (can be overridden)
   ============================================ */
.upload-zone {
    --uz-primary: var(--color-primary, #3b82f6);
    --uz-primary-light: var(--color-primary-light, #dbeafe);
    --uz-success: var(--color-success, #059669);
    --uz-success-light: var(--color-success-light, #d1fae5);
    --uz-danger: var(--color-danger, #dc2626);
    --uz-gray-50: var(--color-gray-50, #f9fafb);
    --uz-gray-300: var(--color-gray-300, #d1d5db);
    --uz-gray-500: var(--color-gray-500, #6b7280);
    --uz-gray-600: var(--color-gray-600, #4b5563);
    --uz-gray-800: var(--color-gray-800, #1f2937);
    --uz-radius: var(--radius, 0.5rem);
}

/* ============================================
   Base Zone
   ============================================ */
.upload-zone {
    background: var(--uz-gray-50);
    border: 2px dashed var(--uz-gray-300);
    border-radius: var(--uz-radius);
    padding: 3rem 2rem;
    text-align: center;
    transition: all 0.2s ease;
    margin-bottom: 1.5rem;
}

/* Hover state */
.upload-zone:hover {
    border-color: var(--uz-primary);
    background: var(--uz-primary-light);
}

/* Drag over state */
.upload-zone--dragover {
    border-color: var(--uz-primary);
    background: var(--uz-primary-light);
    transform: scale(1.01);
}

/* Has file state */
.upload-zone--has-file {
    background: var(--uz-success-light);
    border-color: var(--uz-success);
    border-style: solid;
}

/* ============================================
   Empty State (Prompt)
   ============================================ */
.upload-zone__prompt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.upload-zone__icon {
    width: 4rem;
    height: 4rem;
    background: var(--uz-primary-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.upload-zone__icon svg {
    width: 2rem;
    height: 2rem;
    stroke: var(--uz-primary);
}

.upload-zone__text {
    font-size: 0.875rem;
    color: var(--uz-gray-600);
    margin: 0;
}

.upload-zone__hint {
    font-size: 0.75rem;
    color: var(--uz-gray-500);
    margin: 0;
}

/* Browse button (label wrapping hidden input) */
.upload-zone__browse-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: white;
    background: var(--uz-primary);
    border-radius: var(--uz-radius);
    cursor: pointer;
    transition: background 0.15s ease;
}

.upload-zone__browse-btn:hover {
    background: var(--color-primary-hover, #2563eb);
}

/* Hidden file input */
.upload-zone__input {
    display: none;
}

/* ============================================
   File Selected State
   ============================================ */
.upload-zone__file-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-align: left;
}

.upload-zone__file-icon {
    width: 3.5rem;
    height: 3.5rem;
    background: white;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.upload-zone__file-icon svg {
    width: 1.75rem;
    height: 1.75rem;
    stroke: var(--uz-success);
}

.upload-zone__file-details {
    flex: 1;
    min-width: 0;
}

.upload-zone__file-name {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    color: var(--uz-gray-800);
    margin-bottom: 0.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.upload-zone__file-meta {
    display: block;
    font-size: 0.875rem;
    color: var(--uz-gray-500);
}

/* Remove button */
.upload-zone__remove-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--uz-danger);
    background: white;
    border: 1px solid #fca5a5;
    border-radius: var(--uz-radius);
    cursor: pointer;
    transition: background 0.15s ease;
}

.upload-zone__remove-btn:hover {
    background: #fee2e2;
}

/* ============================================
   Responsive
   ============================================ */
@media (max-width: 480px) {
    .upload-zone {
        padding: 2rem 1rem;
    }

    .upload-zone__file-info {
        flex-direction: column;
        text-align: center;
    }

    .upload-zone__file-details {
        text-align: center;
    }
}
