/**
 * =================================================================
 * ARQUIVO: style-fotos-admin.css
 * ESTILOS CSS PARA O FORMULÁRIO DE UPLOAD (FRONTEND) E VIEW (ADMIN)
 * Versão: 2.1.1 (Estilos do Admin View)
 * Autor: Michel Lima
 * =================================================================
 */

/* =================================================================
   1. TIPOGRAFIA E ESTILOS GERAIS (Frontend + Admin)
   ================================================================= */

/* Aplica a fonte Open Sans no container do shortcode E na página de admin */
.open-sans-font,
.open-sans-font .form-group label,
.open-sans-font .submit-btn,
.open-sans-font input,
.open-sans-font select,
.open-sans-font textarea {
    font-family: 'Open Sans', Arial, sans-serif;
}
.wrap.open-sans-font h1 {
    font-family: 'Open Sans', Arial, sans-serif;
}


/* Garante que o container do shortcode use os estilos base */
.senar-form-container .form-group label {
    font-weight: 700; /* Negrito */
}

/* Mensagens de Status (Frontend) */
.senar-form-message {
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    font-weight: 700;
}
.success-message {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}
.error-message {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* =================================================================
   2. LAYOUT DE 2 COLUNAS (Frontend)
   ================================================================= */

/* Container Flex principal */
.form-layout-wrapper {
    display: flex;
    flex-wrap: wrap; /* Permite quebrar em telas menores */
    gap: 20px; /* Espaço entre as colunas */
    margin-bottom: 30px;
}

/* Coluna da Esquerda (Upload) */
.upload-container {
    flex: 1; /* Ocupa espaço disponível */
    min-width: 250px; /* Largura mínima */
    flex-basis: 35%; /* Tenta ocupar 35% */
}

/* Coluna da Direita (Campos) */
.fields-container {
    flex: 1;
    min-width: 300px;
    flex-basis: 60%;
}

/* =================================================================
   3. CAIXA DE UPLOAD E PREVIEW (Frontend)
   ================================================================= */

/* Caixa de Preview (A "dropzone") */
.image-preview-box {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 250px; /* Altura fixa */
    border: 2px dashed #006C4C; /* Borda Verde SENAR */
    border-radius: 8px;
    background-color: #f0f7f4; /* Verde bem claro */
    cursor: pointer;
    overflow: hidden; /* Garante que a imagem não vaze */
    margin-bottom: 10px;
    padding: 10px;
    box-sizing: border-box;
}
.image-preview-box:hover {
    border-color: #004F36;
}

/* Imagem de preview (quando carregada) */
.image-preview-box img {
    max-width: 100%;
    max-height: 250px;
    height: auto;
    width: auto;
    object-fit: contain;
    border-radius: 4px;
}

/* Texto e ícone placeholder (antes do upload) */
.preview-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #006C4C;
    text-align: center;
}
.preview-placeholder .upload-icon {
    font-size: 2.5em;
    line-height: 1;
}
.preview-placeholder span {
    font-weight: 700;
    font-size: 1.1em;
}
.preview-placeholder small {
    font-weight: 400;
    font-size: 0.9em;
    color: #555;
}

/* Input de arquivo real (escondido, mas acessível) */
input[type="file"]#turma_imagem {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}

/* Botão falso (Label) que aciona o input[type="file"] */
.upload-button-label {
    display: block;
    width: 100%;
    text-align: center;
    padding: 10px;
    background-color: #f4f4f4;
    border: 1px solid #ccc;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 700;
}
.upload-button-label:hover {
    background-color: #e9e9e9;
}


/* =================================================================
   4. ESTILOS DE CAMPOS (Frontend)
   ================================================================= */

/* Garante que os campos no frontend ocupem 100% */
.senar-form-container select#q07_1_nome_instrutor,
.senar-form-container select#q07_2_curso_escolhido,
.senar-form-container input#imagem_titulo,
.senar-form-container textarea#imagem_detalhes {
    width: 100%;
}

/* =================================================================
   5. RESPONSIVIDADE (Frontend)
   ================================================================= */
@media (max-width: 768px) {
    /* Empilha as colunas em telas menores */
    .form-layout-wrapper {
        flex-direction: column;
    }

    .upload-container,
    .fields-container {
        flex-basis: 100%; /* Ocupa 100% da largura */
    }
}

/* =================================================================
   6. ANIMAÇÃO DE LOADING (Submit)
   ================================================================= */

/* Keyframes para o spinner */
@keyframes senarSpinner {
  to {
    transform: rotate(360deg);
  }
}

/* Estilo aplicado ao botão quando o JS adiciona .is-loading */
.submit-btn.is-loading,
input[type="submit"].is-loading {
    position: relative;
    color: transparent !important; 
    cursor: wait; 
}

/* O Spinner */
.submit-btn.is-loading::after,
input[type="submit"].is-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;  
    height: 20px; 
    margin-top: -10px;  
    margin-left: -10px; 
    border: 3px solid rgba(255, 255, 255, 0.5); 
    border-top-color: #ffffff; 
    border-radius: 50%;
    animation: senarSpinner 0.6s linear infinite;
}


/* =================================================================
   7. NOVO MÓDULO: GRID DE VISUALIZAÇÃO (Admin)
   ================================================================= */

.foto-grid-container {
    display: grid;
    /* Cria um grid responsivo: 
     * Tenta criar colunas de 350px, 
     * mas no mínimo 1 coluna de 100%
     */
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 20px;
    margin-top: 20px;
}

.foto-card {
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 1px 1px rgba(0,0,0,0.04);
    border-radius: 4px;
    overflow: hidden;
}

/* Container da imagem */
.foto-card-image {
    background-color: #f0f0f0;
    border-bottom: 1px solid #ddd;
}
.foto-card-image a {
    display: block;
    text-align: center;
}
.foto-card-image img {
    width: 100%;
    height: 250px; /* Altura fixa para todas as imagens */
    object-fit: cover; /* Garante que a imagem cubra o espaço */
    display: block;
}

/* Container dos detalhes */
.foto-card-details {
    padding: 15px;
}
.foto-card-details h3 {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 1.2em;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 10px;
}

/* Meta (Curso/Instrutor) */
.foto-card-meta {
    font-size: 0.9em;
    line-height: 1.5;
    margin-bottom: 15px;
    border-bottom: 1px dashed #eee;
    padding-bottom: 10px;
}
.foto-card-meta strong {
    color: #333;
}

/* Descrição (Detalhes) */
.foto-card-description {
    font-size: 0.9em;
    color: #555;
    line-height: 1.6;
}

/* Data */
.foto-card-date {
    font-size: 0.8em;
    color: #777;
    margin-top: 15px;
    margin-bottom: 0;
    border-top: 1px solid #eee;
    padding-top: 10px;
    text-align: right;
}